fix(core): update

This commit is contained in:
Philipp Kunz 2023-05-01 12:44:59 +02:00
parent 257b995ca0
commit 6f425906e5
5 changed files with 257 additions and 2 deletions

View File

@ -16,6 +16,7 @@
"@gitzone/tsbuild": "^2.1.65",
"@gitzone/tsrun": "^1.2.39",
"@gitzone/tstest": "^1.0.74",
"@pushrocks/smartntml": "^2.0.1",
"@pushrocks/tapbundle": "^5.0.4",
"@types/node": "^18.16.3"
},

View File

@ -36,6 +36,9 @@ devDependencies:
'@gitzone/tstest':
specifier: ^1.0.74
version: 1.0.74(@types/node@18.16.3)
'@pushrocks/smartntml':
specifier: ^2.0.1
version: 2.0.1
'@pushrocks/tapbundle':
specifier: ^5.0.4
version: 5.0.4
@ -113,6 +116,13 @@ packages:
js-tokens: 4.0.0
dev: true
/@babel/runtime@7.21.5:
resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.13.11
dev: true
/@cspotcode/source-map-support@0.8.1:
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
@ -120,6 +130,50 @@ packages:
'@jridgewell/trace-mapping': 0.3.9
dev: true
/@designestate/dees-comms@1.0.22:
resolution: {integrity: sha512-zZ2AwCy49sj1fNyeSMtAxcN4qAGiP5+OjJCtY88YjrNbvD83v4GZpjci0nFUPuvOkCoeo18Uw8xgZSDy8lc59Q==}
dependencies:
'@apiglobal/typedrequest': 2.0.12
'@apiglobal/typedrequest-interfaces': 1.0.20
'@pushrocks/smartdelay': 2.0.13
broadcast-channel: 3.7.0
transitivePeerDependencies:
- supports-color
dev: true
/@designestate/dees-domtools@2.0.30:
resolution: {integrity: sha512-/v2BG8gAErBOiAXsoqWZmGgvRu2S1n9nd1LgXaYsJ4sj3zokUaeXzpuGrvz7j5yMXZujSpPVf075YQSn5Tgw+w==}
dependencies:
'@apiglobal/typedrequest': 2.0.12
'@designestate/dees-comms': 1.0.22
'@pushrocks/lik': 6.0.2
'@pushrocks/smartdelay': 3.0.1
'@pushrocks/smartjson': 5.0.5
'@pushrocks/smartpromise': 4.0.2
'@pushrocks/smartrouter': 1.0.16
'@pushrocks/smartrx': 3.0.0
'@pushrocks/smartstate': 2.0.6
'@pushrocks/smarturl': 3.0.6
'@pushrocks/webrequest': 3.0.21
'@pushrocks/websetup': 3.0.16
'@pushrocks/webstore': 2.0.5
lit: 2.7.3
sweet-scroll: 4.0.0
transitivePeerDependencies:
- supports-color
dev: true
/@designestate/dees-element@2.0.20:
resolution: {integrity: sha512-qHzBitO37f1t2nBn/qy/F/ZTJ2Vxjl9alG1Bjsdw0nklC1jyW6Y8B3pdK9tN8xV+zIo7IcXubl0JLwgINI8nfw==}
dependencies:
'@designestate/dees-domtools': 2.0.30
'@pushrocks/isounique': 1.0.5
'@pushrocks/smartrx': 3.0.0
lit: 2.7.3
transitivePeerDependencies:
- supports-color
dev: true
/@esbuild/linux-loong64@0.14.54:
resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==}
engines: {node: '>=12'}
@ -213,6 +267,14 @@ packages:
- utf-8-validate
dev: true
/@happy-dom/global-registrator@8.9.0:
resolution: {integrity: sha512-Kw/YMNv1kmH862kQUzXM6K0Y4AW5b0I/+2EIopVc7edurBwY8LHSKd5gJzEEQvdgapSeDJowhOCgL0tkhJWi4A==}
dependencies:
happy-dom: 8.9.0
transitivePeerDependencies:
- encoding
dev: true
/@jridgewell/resolve-uri@3.1.1:
resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
engines: {node: '>=6.0.0'}
@ -421,6 +483,12 @@ packages:
dependencies:
'@pushrocks/smartpromise': 3.1.10
/@pushrocks/smartdelay@3.0.1:
resolution: {integrity: sha512-I+i/QhC6kLsXsWyW19UgD1vH2r1YWVxK19VMxt2CEuvxMyC6tuCd0vqud9vv5JxaxsJwxWlOsrURkgL4tXeILQ==}
dependencies:
'@pushrocks/smartpromise': 4.0.2
dev: true
/@pushrocks/smartenv@5.0.5:
resolution: {integrity: sha512-VWON1OJ4qV2/9hzJbgRquRekaO9am3b8W82tgCwgO6LBg23ea2tanfd+gESVMbRFduxHVoFLvlhSBcDGM5zsLA==}
dependencies:
@ -597,6 +665,17 @@ packages:
systeminformation: 5.17.12
dev: true
/@pushrocks/smartntml@2.0.1:
resolution: {integrity: sha512-HO59zb9QxK2cDRGpB3KfeGpbw3r+w8843lkM6FS8LcRKfxbE/WGmEPJRPVtV/WEiEIVe4TwLXrlr3hYInetQ6A==}
dependencies:
'@designestate/dees-element': 2.0.20
'@happy-dom/global-registrator': 8.9.0
'@pushrocks/smartpromise': 3.1.10
transitivePeerDependencies:
- encoding
- supports-color
dev: true
/@pushrocks/smartparam@1.1.6:
resolution: {integrity: sha512-1El/F2QTWYDGy4Nh6vz9Ry1JVg1FEeyexB7Uvi4zHElpXYVxwso6xImRTLj+SW50JAg7nwEZ+ljkzTG9XvnwWA==}
dependencies:
@ -669,6 +748,12 @@ packages:
- supports-color
dev: true
/@pushrocks/smartrouter@1.0.16:
resolution: {integrity: sha512-x5lMYOk9Wh6pS7LrGlpmXQ88ObnXi5wC1svQLnS5XraEjiSUhYAIbsM5QJ5YX4VSdhKZ9n59fsdA7/idg9BEYQ==}
dependencies:
path-to-regexp: 6.2.1
dev: true
/@pushrocks/smartrx@2.0.27:
resolution: {integrity: sha512-aFRpGxDZgHH1mpmkRBTFwuIVqFiDxk22n2vX2gW4hntV0nJGlt9M9dixMFFXGUjabwX9hHW7y60QPJm2rKaypA==}
dependencies:
@ -741,6 +826,16 @@ packages:
- supports-color
dev: true
/@pushrocks/smartstate@2.0.6:
resolution: {integrity: sha512-r/eHEFbC9jJgvtUFwiox+cRsDbQ6ce9IMgKHIR4BjTVC+Z9L7bD6o9SC7KHc8SLqUTPI5Is6q8O4wEe5qK0Caw==}
dependencies:
'@pushrocks/isohash': 2.0.1
'@pushrocks/lik': 6.0.2
'@pushrocks/smartjson': 5.0.5
'@pushrocks/smartpromise': 4.0.2
'@pushrocks/smartrx': 3.0.0
dev: true
/@pushrocks/smartstream@2.0.3:
resolution: {integrity: sha512-Zz1amk2FgqWyZFQE8WonKhNMreETm50pqDanp2g9uJBCNwFHIppJD4Qbpy/FFEFfp4Rs326hoBCWbZwU/FEymw==}
dependencies:
@ -854,6 +949,14 @@ packages:
- supports-color
dev: true
/@pushrocks/websetup@3.0.16:
resolution: {integrity: sha512-90mHfn7JldJG19dhymHkO8UEV0SKWqZIL2245ShS6aMTrkO72Rkj2gNOK9ESdDeuWvcZ4AGyMwISsCK0NBgacg==}
dependencies:
'@pushrocks/smartdelay': 2.0.13
'@pushrocks/smartpromise': 3.1.10
'@tsclass/tsclass': 3.0.48
dev: true
/@pushrocks/webstore@2.0.5:
resolution: {integrity: sha512-O91dyT0o7xgeJsgftopa7NrE+sZxAQRr8i3UOZ6+UhyJx95v3kssPiE6aJ2uNsESKl3IlDq6RInLr1zbyFsqkg==}
dependencies:
@ -1490,6 +1593,11 @@ packages:
engines: {node: ^4.5.0 || >= 5.9}
dev: true
/big-integer@1.6.51:
resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==}
engines: {node: '>=0.6'}
dev: true
/binary-extensions@2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
engines: {node: '>=8'}
@ -1563,6 +1671,19 @@ packages:
fill-range: 7.0.1
dev: true
/broadcast-channel@3.7.0:
resolution: {integrity: sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==}
dependencies:
'@babel/runtime': 7.21.5
detect-node: 2.1.0
js-sha3: 0.8.0
microseconds: 0.2.0
nano-time: 1.0.0
oblivious-set: 1.0.0
rimraf: 3.0.2
unload: 2.2.0
dev: true
/buffer-crc32@0.2.13:
resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=}
dev: true
@ -1832,6 +1953,10 @@ packages:
dependencies:
type-fest: 1.4.0
/css.escape@1.5.1:
resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==}
dev: true
/dayjs@1.11.7:
resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==}
@ -1930,6 +2055,10 @@ packages:
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
dev: true
/detect-node@2.1.0:
resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
dev: true
/devtools-protocol@0.0.1019158:
resolution: {integrity: sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ==}
dev: true
@ -2593,6 +2722,20 @@ packages:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
dev: true
/happy-dom@8.9.0:
resolution: {integrity: sha512-JZwJuGdR7ko8L61136YzmrLv7LgTh5b8XaEM3P709mLjyQuXJ3zHTDXvUtBBahRjGlcYW0zGjIiEWizoTUGKfA==}
dependencies:
css.escape: 1.5.1
he: 1.2.0
iconv-lite: 0.6.3
node-fetch: 2.6.7
webidl-conversions: 7.0.0
whatwg-encoding: 2.0.0
whatwg-mimetype: 3.0.0
transitivePeerDependencies:
- encoding
dev: true
/has-flag@3.0.0:
resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=}
engines: {node: '>=4'}
@ -2723,6 +2866,13 @@ packages:
safer-buffer: 2.1.2
dev: true
/iconv-lite@0.6.3:
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
engines: {node: '>=0.10.0'}
dependencies:
safer-buffer: 2.1.2
dev: true
/idb@7.1.1:
resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==}
@ -2906,6 +3056,10 @@ packages:
/js-base64@3.7.5:
resolution: {integrity: sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==}
/js-sha3@0.8.0:
resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==}
dev: true
/js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
dev: true
@ -3209,6 +3363,10 @@ packages:
picomatch: 2.3.1
dev: true
/microseconds@0.2.0:
resolution: {integrity: sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==}
dev: true
/mime-db@1.52.0:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
engines: {node: '>= 0.6'}
@ -3281,6 +3439,12 @@ packages:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
dev: true
/nano-time@1.0.0:
resolution: {integrity: sha1-sFVPaa2J4i0JB/ehKwmTpdlhN+8=}
dependencies:
big-integer: 1.6.51
dev: true
/nanocolors@0.2.13:
resolution: {integrity: sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==}
dev: true
@ -3347,6 +3511,10 @@ packages:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines: {node: '>= 0.4'}
/oblivious-set@1.0.0:
resolution: {integrity: sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==}
dev: true
/observable-fns@0.6.1:
resolution: {integrity: sha512-9gRK4+sRWzeN6AOewNBTLXir7Zl/i3GB6Yl26gK4flxz8BXVpD3kt8amREmWNb0mxYOGDotvE5a4N+PtGGKdkg==}
dev: true
@ -3468,6 +3636,10 @@ packages:
resolution: {integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=}
dev: true
/path-to-regexp@6.2.1:
resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
dev: true
/path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
@ -3700,6 +3872,10 @@ packages:
typeson: 6.1.0
typeson-registry: 1.0.0-alpha.39
/regenerator-runtime@0.13.11:
resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
dev: true
/relateurl@0.2.7:
resolution: {integrity: sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=}
engines: {node: '>= 0.10'}
@ -4008,6 +4184,10 @@ packages:
has-flag: 4.0.0
dev: true
/sweet-scroll@4.0.0:
resolution: {integrity: sha512-mR6fRsAQANtm3zpzhUE73KAOt2aT4ZsWzNSggiEsSqdO6Zh4gM7ioJG81EngrZEl0XAc3ZvzEfhxggOoEBc8jA==}
dev: true
/symbol-tree@3.2.4:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
@ -4207,6 +4387,13 @@ packages:
engines: {node: '>= 10.0.0'}
dev: true
/unload@2.2.0:
resolution: {integrity: sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==}
dependencies:
'@babel/runtime': 7.21.5
detect-node: 2.1.0
dev: true
/unorm@1.6.0:
resolution: {integrity: sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==}
engines: {node: '>= 0.4.0'}
@ -4266,6 +4453,23 @@ packages:
resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==}
engines: {node: '>=10.4'}
/webidl-conversions@7.0.0:
resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
engines: {node: '>=12'}
dev: true
/whatwg-encoding@2.0.0:
resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
engines: {node: '>=12'}
dependencies:
iconv-lite: 0.6.3
dev: true
/whatwg-mimetype@3.0.0:
resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
engines: {node: '>=12'}
dev: true
/whatwg-url@5.0.0:
resolution: {integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0=}
dependencies:

View File

@ -0,0 +1,44 @@
import { expect, tap } from '@pushrocks/tapbundle';
import * as smartntml from '@pushrocks/smartntml';
const smartntmlInstance = new smartntml.Smartntml();
import * as webstore from '../ts/index.js';
let testWebstore: webstore.WebStore;
tap.test('first test', async () => {
testWebstore = new webstore.WebStore({
dbName: 'mytest-db',
storeName: 'mytest-store',
});
expect(testWebstore).toBeInstanceOf(webstore.WebStore);
});
tap.test('should allow storing a string', async () => {
await testWebstore.set('mystring', 'heythere');
expect(await testWebstore.get('mystring')).toEqual('heythere');
});
tap.test('should allow storing an object', async () => {
await testWebstore.set('testProp1', {
wow: 'wowVal',
});
console.log(JSON.stringify(await testWebstore.get('testProp1')));
});
tap.test('should overwrite a value', async () => {
await testWebstore.set('testProp1', {
wow: 'wowVal2',
});
console.log(JSON.stringify(await testWebstore.get('testProp1')));
});
tap.test('should correctly check the existence of keys', async () => {
const resultNotThere = await testWebstore.check('notThere');
const resultThere = await testWebstore.check('testProp1');
expect(resultNotThere).toBeFalse();
expect(resultThere).toBeTrue();
});
tap.start();

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@pushrocks/webstore',
version: '2.0.6',
version: '2.0.7',
description: 'high performance storage in the browser using indexed db'
}

View File

@ -24,8 +24,14 @@ export class WebStore<T = any> {
this.initCalled = true;
const smartenv = new plugins.smartenv.Smartenv();
if (!smartenv.isBrowser) {
if (!smartenv.isBrowser && !globalThis.indexedDB) {
console.log('hey');
console.log(globalThis.indexedDB);
await smartenv.getSafeNodeModule('fake-indexeddb/auto');
if (!globalThis.indexedDB) {
const mod = await smartenv.getSafeNodeModule('fake-indexeddb');
globalThis.indexedDB = new mod.IDBFactory();
}
}
this.db = await plugins.idb.openDB(this.options.dbName, 1, {