diff --git a/package.json b/package.json index b12af0c..0cbbdb1 100644 --- a/package.json +++ b/package.json @@ -19,14 +19,15 @@ "@git.zone/tsrun": "^1.2.46", "@git.zone/tstest": "^1.0.81", "@push.rocks/tapbundle": "^5.0.15", - "@types/node": "^20.6.0" + "@types/node": "^20.8.0" }, "dependencies": { "@push.rocks/isohash": "^2.0.1", "@push.rocks/lik": "^6.0.5", "@push.rocks/smartjson": "^5.0.10", "@push.rocks/smartpromise": "^4.0.3", - "@push.rocks/smartrx": "^3.0.6" + "@push.rocks/smartrx": "^3.0.6", + "@push.rocks/webstore": "^2.0.13" }, "files": [ "ts/**/*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2553e98..6df2073 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,6 +20,9 @@ dependencies: '@push.rocks/smartrx': specifier: ^3.0.6 version: 3.0.6 + '@push.rocks/webstore': + specifier: ^2.0.13 + version: 2.0.13 devDependencies: '@git.zone/tsbuild': @@ -30,16 +33,16 @@ devDependencies: version: 2.0.9 '@git.zone/tsrun': specifier: ^1.2.46 - version: 1.2.46(@types/node@20.6.0) + version: 1.2.46(@types/node@20.8.0) '@git.zone/tstest': specifier: ^1.0.81 - version: 1.0.81(@types/node@20.6.0)(sinon@15.2.0) + version: 1.0.81(@types/node@20.8.0)(sinon@16.0.0) '@push.rocks/tapbundle': specifier: ^5.0.15 - version: 5.0.15(sinon@15.2.0) + version: 5.0.15(sinon@16.0.0) '@types/node': - specifier: ^20.6.0 - version: 20.6.0 + specifier: ^20.8.0 + version: 20.8.0 packages: @@ -81,7 +84,7 @@ packages: '@push.rocks/smartrx': 3.0.6 '@push.rocks/smartsitemap': 2.0.2 '@push.rocks/smarttime': 4.0.5 - '@push.rocks/webstore': 2.0.9 + '@push.rocks/webstore': 2.0.13 '@tsclass/tsclass': 4.0.42 '@types/express': 4.17.17 body-parser: 1.20.2 @@ -118,7 +121,6 @@ packages: /@apiglobal/typedrequest-interfaces@2.0.1: resolution: {integrity: sha512-Oi7pNU4vKo5UvcCJmqkH43Us237Ws/Pp/WDYnwnonRnTmIMd+6QjNfN/gXcPnP6tbamk8r8Xzcz9mgnSDM2ysw==} - dev: true /@babel/code-frame@7.22.13: resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} @@ -383,13 +385,13 @@ packages: - supports-color dev: true - /@git.zone/tsrun@1.2.46(@types/node@20.6.0): + /@git.zone/tsrun@1.2.46(@types/node@20.8.0): resolution: {integrity: sha512-8miFVBle9Mnjx+uPGI/P+EuWcIOXWjBAkdjN5IYbdp5Ytt4xQODCLh4JSnC9h56UeU1nUxCAxZeJs2e9TXrivA==} hasBin: true dependencies: '@push.rocks/smartfile': 10.0.31 '@push.rocks/smartshell': 3.0.3 - ts-node: 10.9.1(@types/node@20.6.0)(typescript@5.1.6) + ts-node: 10.9.1(@types/node@20.8.0)(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - '@swc/core' @@ -398,13 +400,13 @@ packages: - supports-color dev: true - /@git.zone/tstest@1.0.81(@types/node@20.6.0)(sinon@15.2.0): + /@git.zone/tstest@1.0.81(@types/node@20.8.0)(sinon@16.0.0): resolution: {integrity: sha512-OUTACsOmvvzbKay4i1hbBaToLzo/OaCYV1PiYpoK9S2BJMbVJAik+ZbdixbJugoLrw7bR9velYgT66lnS6OZUA==} hasBin: true dependencies: '@api.global/typedserver': 3.0.4 '@git.zone/tsbundle': 2.0.9 - '@git.zone/tsrun': 1.2.46(@types/node@20.6.0) + '@git.zone/tsrun': 1.2.46(@types/node@20.8.0) '@push.rocks/consolecolor': 2.0.1 '@push.rocks/smartbrowser': 2.0.6 '@push.rocks/smartdelay': 3.0.5 @@ -412,7 +414,7 @@ packages: '@push.rocks/smartlog': 3.0.3 '@push.rocks/smartpromise': 4.0.3 '@push.rocks/smartshell': 3.0.3 - '@push.rocks/tapbundle': 5.0.15(sinon@15.2.0) + '@push.rocks/tapbundle': 5.0.15(sinon@16.0.0) figures: 5.0.0 transitivePeerDependencies: - '@swc/core' @@ -529,7 +531,7 @@ packages: lit-html: 1.4.1 dev: true - /@open-wc/testing@2.5.33(sinon@15.2.0): + /@open-wc/testing@2.5.33(sinon@16.0.0): resolution: {integrity: sha512-+EJNs0i+VV4nE+BrG70l2DNGXOZTSrluruaaU06HUSk57ZlKa+kIxWmkLxCOLlbgnQgrPrQWxbs3lgB1tIx/YA==} dependencies: '@open-wc/chai-dom-equals': 0.12.36 @@ -543,7 +545,7 @@ packages: chai-a11y-axe: 1.5.0 chai-dom: 1.11.0(chai@4.3.8)(mocha@6.2.3) mocha: 6.2.3 - sinon-chai: 3.7.0(chai@4.3.8)(sinon@15.2.0) + sinon-chai: 3.7.0(chai@4.3.8)(sinon@16.0.0) transitivePeerDependencies: - bufferutil - sinon @@ -955,10 +957,10 @@ packages: js-yaml: 3.14.1 dev: true - /@push.rocks/tapbundle@5.0.15(sinon@15.2.0): + /@push.rocks/tapbundle@5.0.15(sinon@16.0.0): resolution: {integrity: sha512-vVTVmQCovYq9xhif96z7wN8pFiB3UB9MZSkqMDgfNTWhlU19ZZR1azCZn+zXsYxgJmD8wKNYhvZYgdRz73KbBg==} dependencies: - '@open-wc/testing': 2.5.33(sinon@15.2.0) + '@open-wc/testing': 2.5.33(sinon@16.0.0) '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartenv': 5.0.5 '@push.rocks/smartexpect': 1.0.21 @@ -978,11 +980,11 @@ packages: '@push.rocks/smartenv': 5.0.5 '@push.rocks/smartjson': 5.0.10 '@push.rocks/smartpromise': 4.0.3 - '@push.rocks/webstore': 2.0.9 + '@push.rocks/webstore': 2.0.13 dev: true - /@push.rocks/webstore@2.0.9: - resolution: {integrity: sha512-B/a/M+udyr0pByGdOEcWyY+gugIx36YJXWwNUrslh9XjIWs+0NKSFJRnZKuVYSCHOnc/WblAOceSlGVwFmYVBw==} + /@push.rocks/webstore@2.0.13: + resolution: {integrity: sha512-w5Q3g1TT5SDIXukAAoYVuWud+Y5ysS8qiBqPU00/re895VVZhUOSNJMNU6jyneZigmbWtwSLsxDkZHlsHWpfuA==} dependencies: '@apiglobal/typedrequest-interfaces': 2.0.1 '@push.rocks/lik': 6.0.5 @@ -992,7 +994,6 @@ packages: '@push.rocks/smartrx': 3.0.6 fake-indexeddb: 4.0.2 idb: 7.1.1 - dev: true /@pushrocks/consolecolor@2.0.1: resolution: {integrity: sha512-iOFCHVeFZ2OywbdwSxVI4/wokkcLrXVdHLgvMmkNhJ220eeLgjNZWx3EJo3vNW3zq5ybCSCUIq0878djBxrWpw==} @@ -1321,7 +1322,7 @@ packages: /@types/accepts@1.3.5: resolution: {integrity: sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==} dependencies: - '@types/node': 20.6.0 + '@types/node': 20.8.0 dev: true /@types/babel__code-frame@7.0.3: @@ -1332,7 +1333,7 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.36 - '@types/node': 20.6.0 + '@types/node': 20.8.0 dev: true /@types/buffer-json@2.0.1: @@ -1358,21 +1359,21 @@ packages: /@types/clean-css@4.2.6: resolution: {integrity: sha512-Ze1tf+LnGPmG6hBFMi0B4TEB0mhF7EiMM5oyjLDNPE9hxrPU0W+5+bHvO+eFPA+bt0iC1zkQMoU/iGdRVjcRbw==} dependencies: - '@types/node': 20.6.0 + '@types/node': 20.8.0 source-map: 0.6.1 dev: true /@types/co-body@6.1.1: resolution: {integrity: sha512-I9A1k7o4m8m6YPYJIGb1JyNTLqRWtSPg1JOZPWlE19w8Su2VRgRVp/SkKftQSwoxWHGUxGbON4jltONMumC8bQ==} dependencies: - '@types/node': 20.6.0 + '@types/node': 20.8.0 '@types/qs': 6.9.8 dev: true /@types/connect@3.4.36: resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} dependencies: - '@types/node': 20.6.0 + '@types/node': 20.8.0 dev: true /@types/content-disposition@0.5.6: @@ -1393,13 +1394,13 @@ packages: '@types/connect': 3.4.36 '@types/express': 4.17.17 '@types/keygrip': 1.0.2 - '@types/node': 20.6.0 + '@types/node': 20.8.0 dev: true /@types/cors@2.8.14: resolution: {integrity: sha512-RXHUvNWYICtbP6s18PnOCaqToK8y14DnLd75c6HfyKf228dxy7pHNOQkxPtvXKp/hINFMDjbYzsj63nnpPMSRQ==} dependencies: - '@types/node': 20.6.0 + '@types/node': 20.8.0 dev: true /@types/debounce@1.2.1: @@ -1413,7 +1414,7 @@ packages: /@types/express-serve-static-core@4.17.36: resolution: {integrity: sha512-zbivROJ0ZqLAtMzgzIUC4oNqDG9iF0lSsAqpOD9kbs5xcIM3dTiyuHvBc7R8MtWBp3AAWGaovJa+wzWPjLYW7Q==} dependencies: - '@types/node': 20.6.0 + '@types/node': 20.8.0 '@types/qs': 6.9.8 '@types/range-parser': 1.2.4 '@types/send': 0.17.1 @@ -1431,21 +1432,21 @@ packages: /@types/from2@2.3.2: resolution: {integrity: sha512-s1pdctxW2+CA4FOxxTBRxC3RKQL9Br1a2s2LngP4jh1BI84JBL3mDXj87EwcckN9z/IXp8o3ySmvZveGEAAwqw==} dependencies: - '@types/node': 20.6.0 + '@types/node': 20.8.0 dev: true /@types/fs-extra@11.0.1: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} dependencies: '@types/jsonfile': 6.1.1 - '@types/node': 20.6.0 + '@types/node': 20.8.0 dev: true /@types/glob@8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.6.0 + '@types/node': 20.8.0 dev: true /@types/html-minifier@4.0.2: @@ -1495,7 +1496,7 @@ packages: /@types/jsonfile@6.1.1: resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} dependencies: - '@types/node': 20.6.0 + '@types/node': 20.8.0 dev: true /@types/keygrip@1.0.2: @@ -1518,7 +1519,7 @@ packages: '@types/http-errors': 2.0.1 '@types/keygrip': 1.0.2 '@types/koa-compose': 3.2.5 - '@types/node': 20.6.0 + '@types/node': 20.8.0 dev: true /@types/mime-types@2.1.1: @@ -1544,8 +1545,8 @@ packages: resolution: {integrity: sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==} dev: true - /@types/node@20.6.0: - resolution: {integrity: sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==} + /@types/node@20.8.0: + resolution: {integrity: sha512-LzcWltT83s1bthcvjBmiBvGJiiUe84NWRHkw+ZV6Fr41z2FbIzvc815dk2nQ3RAKMuN2fkenM/z3Xv2QzEpYxQ==} /@types/parse5@6.0.3: resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} @@ -1574,7 +1575,7 @@ packages: resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} dependencies: '@types/mime': 1.3.2 - '@types/node': 20.6.0 + '@types/node': 20.8.0 dev: true /@types/serve-static@1.15.2: @@ -1582,7 +1583,7 @@ packages: dependencies: '@types/http-errors': 2.0.1 '@types/mime': 3.0.1 - '@types/node': 20.6.0 + '@types/node': 20.8.0 dev: true /@types/shortid@0.0.29: @@ -1612,7 +1613,7 @@ packages: /@types/through2@2.0.38: resolution: {integrity: sha512-YFu+nHmjxMurkH1BSzA0Z1WrKDAY8jUKPZctNQn7mc+/KKtp2XxnclHFXxdB1m7Iqnzb5aywgP8TMK283LezGQ==} dependencies: - '@types/node': 20.6.0 + '@types/node': 20.8.0 /@types/trusted-types@2.0.3: resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==} @@ -1643,14 +1644,14 @@ packages: /@types/ws@7.4.7: resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} dependencies: - '@types/node': 20.6.0 + '@types/node': 20.8.0 dev: true - /@types/yauzl@2.10.0: - resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} + /@types/yauzl@2.10.1: + resolution: {integrity: sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw==} requiresBuild: true dependencies: - '@types/node': 20.6.0 + '@types/node': 20.8.0 dev: true optional: true @@ -1945,7 +1946,6 @@ packages: /base64-arraybuffer-es6@0.7.0: resolution: {integrity: sha512-ESyU/U1CFZDJUdr+neHRhNozeCv72Y7Vm0m1DCbjX3KBjT6eYocvAJlSk6+8+HkVwXlT1FNxhGW6q3UKAlCvvw==} engines: {node: '>=6.0.0'} - dev: true /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -2509,7 +2509,6 @@ packages: resolution: {integrity: sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==} dependencies: webidl-conversions: 4.0.2 - dev: true /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -2567,7 +2566,7 @@ packages: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.14 - '@types/node': 20.6.0 + '@types/node': 20.8.0 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 @@ -2779,7 +2778,7 @@ packages: get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: - '@types/yauzl': 2.10.0 + '@types/yauzl': 2.10.1 transitivePeerDependencies: - supports-color dev: true @@ -2788,7 +2787,6 @@ packages: resolution: {integrity: sha512-SdTwEhnakbgazc7W3WUXOJfGmhH0YfG4d+dRPOFoYDRTL6U5t8tvrmkf2W/C3W1jk2ylV7Wrnj44RASqpX/lEw==} dependencies: realistic-structured-clone: 3.0.0 - dev: true /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -3250,7 +3248,6 @@ packages: /idb@7.1.1: resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} - dev: true /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -3795,7 +3792,6 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true /log-symbols@2.2.0: resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} @@ -4418,7 +4414,6 @@ packages: /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} - dev: true /puppeteer@15.5.0: resolution: {integrity: sha512-+vZPU8iBSdCx1Kn5hHas80fyo0TiVyMeqLGv/1dygX2HKhAZjO9YThadbRTCoTYq0yWw+w/CysldPsEekDtjDQ==} @@ -4532,7 +4527,6 @@ packages: domexception: 1.0.1 typeson: 6.1.0 typeson-registry: 1.0.0-alpha.39 - dev: true /regexp.prototype.flags@1.5.0: resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} @@ -4748,18 +4742,18 @@ packages: engines: {node: '>=14'} dev: true - /sinon-chai@3.7.0(chai@4.3.8)(sinon@15.2.0): + /sinon-chai@3.7.0(chai@4.3.8)(sinon@16.0.0): resolution: {integrity: sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==} peerDependencies: chai: ^4.0.0 sinon: '>=4.0.0' dependencies: chai: 4.3.8 - sinon: 15.2.0 + sinon: 16.0.0 dev: true - /sinon@15.2.0: - resolution: {integrity: sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==} + /sinon@16.0.0: + resolution: {integrity: sha512-B8AaZZm9CT5pqe4l4uWJztfD/mOTa7dL8Qo0W4+s+t74xECOgSZDDQCBjNgIK3+n4kyxQrSTv2V5ul8K25qkiQ==} dependencies: '@sinonjs/commons': 3.0.0 '@sinonjs/fake-timers': 10.3.0 @@ -5091,14 +5085,13 @@ packages: engines: {node: '>=8'} dependencies: punycode: 2.3.0 - dev: true /tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true dev: true - /ts-node@10.9.1(@types/node@20.6.0)(typescript@5.1.6): + /ts-node@10.9.1(@types/node@20.8.0)(typescript@5.1.6): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -5117,7 +5110,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.6.0 + '@types/node': 20.8.0 acorn: 8.10.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -5215,12 +5208,10 @@ packages: base64-arraybuffer-es6: 0.7.0 typeson: 6.1.0 whatwg-url: 8.7.0 - dev: true /typeson@6.1.0: resolution: {integrity: sha512-6FTtyGr8ldU0pfbvW/eOZrEtEkczHRUtduBnA90Jh9kMPCiFNnXIon3vF41N0S4tV1HHQt4Hk1j4srpESziCaA==} engines: {node: '>=0.1.14'} - dev: true /uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} @@ -5320,12 +5311,10 @@ packages: /webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - dev: true /webidl-conversions@6.1.0: resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} engines: {node: '>=10.4'} - dev: true /whatwg-url@5.0.0: resolution: {integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0=} @@ -5341,7 +5330,6 @@ packages: lodash: 4.17.21 tr46: 2.1.0 webidl-conversions: 6.1.0 - dev: true /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 5f172a7..4b9c713 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smartstate', - version: '2.0.9', + version: '2.0.10', description: 'a package that handles state in a good way' } diff --git a/ts/smartstate.classes.smartstate.ts b/ts/smartstate.classes.smartstate.ts index d39523c..4c0adc3 100644 --- a/ts/smartstate.classes.smartstate.ts +++ b/ts/smartstate.classes.smartstate.ts @@ -21,7 +21,7 @@ export class Smartstate { public getStatePart( statePartNameArg: string & StatePartNameType, initialArg?: PayloadType, - initMode?: 'soft' | 'mandatory' | 'force' + initMode?: 'soft' | 'mandatory' | 'force' | 'persistent' ): StatePart { if (this.statePartMap[statePartNameArg as any]) { if (initialArg && (!initMode || initMode !== 'soft')) { diff --git a/ts/smartstate.classes.statepart.ts b/ts/smartstate.classes.statepart.ts index 79525ef..bbdbc67 100644 --- a/ts/smartstate.classes.statepart.ts +++ b/ts/smartstate.classes.statepart.ts @@ -7,8 +7,30 @@ export class StatePart { public stateStore: TStatePayload; private cumulativeDeferred = plugins.smartpromise.cumulativeDefer(); - constructor(nameArg: TStatePartName) { + private webStore: plugins.webstore.WebStore | null = null; // Add WebStore instance + + constructor(nameArg: TStatePartName, webStoreOptions?: plugins.webstore.IWebStoreOptions) { this.name = nameArg; + + // Initialize WebStore if webStoreOptions are provided + if (webStoreOptions) { + this.webStore = new plugins.webstore.WebStore(webStoreOptions); + this.initWebStore(); + } + } + + /** + * initializes the webstore + */ + private async initWebStore() { + if (this.webStore) { + await this.webStore.init(); + const storedState = await this.webStore.get(String(this.name)); + if (storedState) { + this.stateStore = storedState; + this.notifyChange(); + } + } } /** @@ -22,9 +44,14 @@ export class StatePart { * sets the stateStore to the new state * @param newStateArg */ - public setState(newStateArg: TStatePayload) { + public async setState(newStateArg: TStatePayload) { this.stateStore = newStateArg; this.notifyChange(); + + // Save state to WebStore if initialized + if (this.webStore) { + await this.webStore.set(String(this.name), newStateArg); + } } /** diff --git a/ts/smartstate.plugins.ts b/ts/smartstate.plugins.ts index 6e53570..5aae475 100644 --- a/ts/smartstate.plugins.ts +++ b/ts/smartstate.plugins.ts @@ -2,5 +2,6 @@ import * as isohash from '@push.rocks/isohash'; import * as smartjson from '@push.rocks/smartjson'; import * as smartpromise from '@push.rocks/smartpromise'; import * as smartrx from '@push.rocks/smartrx'; +import * as webstore from '@push.rocks/webstore'; -export { isohash, smartjson, smartpromise, smartrx }; +export { isohash, smartjson, smartpromise, smartrx, webstore }; diff --git a/tsconfig.json b/tsconfig.json index f5fa78c..dfe5a55 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,9 +3,12 @@ "experimentalDecorators": true, "useDefineForClassFields": false, "target": "ES2022", - "module": "ES2022", - "moduleResolution": "nodenext", + "module": "NodeNext", + "moduleResolution": "NodeNext", "esModuleInterop": true, - "verbatimModuleSyntax": true, - } + "verbatimModuleSyntax": true + }, + "exclude": [ + "dist_*/**/*.d.ts" + ] }