From ffa0710e3f6895c6f7bea0e58e18c89047c7c4f7 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 13 Oct 2022 18:04:14 -0700 Subject: tickets --- src/lib/tickets.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/lib/tickets.js (limited to 'src/lib') diff --git a/src/lib/tickets.js b/src/lib/tickets.js new file mode 100644 index 00000000..b0ca0ac0 --- /dev/null +++ b/src/lib/tickets.js @@ -0,0 +1,52 @@ +export default [ + 'QmPbFkiXNuaQyfwD4W9GcXP7qWaNd6wFd9KCnJir5mes1J', + 'QmPVjvbaMxSJRpDxMLYTdUWQbknej1vYLckBQ2pAgxZgJN', + 'QmVasycSFzCYhyXrcvTE7mN3d6W78RFnrhzg5cRF6Dp6Zq', + 'QmTmnhjpTBjZdeHwXgT9Dftc3uWMW73qsZpZ5ECrTyiKKZ', + 'QmWDBiyVPyFkzUrEdvy7DSJe1rBQpene1m6quKAtyjBP6a', + 'QmcxxzQZwgG7SE9QbHNvoTiCi6Dhs9rrz9roqvxm2JQA88', + 'Qmd9ThEpXLLHimEzRUWEFrAGLSw5PAHzn2SmwfCnjNLwWt', + 'Qmc7pWw1yxc2ARBWitDMYiyPkWK61NsXXU8oYAQwNAvcx1', + 'QmX9Hgw1rMFUgBBuq8QfZZDzLjN5xCED19fwFdDeDDqwmr', + 'QmconCAyNyaagqKvvfKCbG7Eu8c6vCtkv2ivvxMoFN9YwA', + 'QmWbFmvViy5gx4JdD5sw5YJETet4ZQcXtYgijYnrsnSZ3a', + 'QmP6QiiJwoqkduZMqdd5e5htHZ4aYHCsvEu7WEEUknKYa5', + 'QmefHk8hvBUHsuKugntok5u75Q8i886cnPwsj4LZZB6uWg', + 'QmdrSDK5ByYHxc88hfDu8hQgK5XYFpXSfPorUXdyTbE437', + 'QmZ6ZycjRzYpsjnLm1Lfgk1fXXDdhcYRkyfmqYJZVGwADy', + 'QmSkBxS5yLPjB2VPs89oQRZANsoyodK6s8s52E8GKXr2zt', + 'QmSn8TCPwq3UZ1Z4eyko76CvQo2H2Hyef1NGboDQN22m5i', + 'QmP6CTH5zrKMzZwtjy7VaK9NXiq4Gw53kmuRjUbJjeovoe', + 'QmdwT4yvz9Xf8g3t6irKRoh3Wa7MwRQrcUJckQxyQe1Bc5', + 'QmcwuHH3bD5JExqjDvKqRQ3V5xEVGqs94qPNVDzaCqJa5a', + 'QmRfVduHwn8sXwSoyfgZpxSi8L7EjP4LMp6fmijo9VApDp', + 'Qmc4TGj1Ahbg9HJ9WDXDm2bXsNkT4zRDp8Wdw9wqqdEwuH', + 'QmY8uQiHMWA8ztf2wAurNFW7eiTHQEUiLTQ2vGceMwVqz3', + 'QmXiXbaD12F4mkbUSQcKhWshkPU4oi29cUawZGnPk86VVU', + 'QmZaiAGjvBZBw4suz33s9JQNzY2Kshean2mQQPCa6gKMQe', + 'Qme8bDSdzX7tanPYf672xXW8vPdkLkeSLqLzHJqidRXsYJ', + 'QmRJirjuUKgh2AMyBF4jNquaXHFPBtDJf3gKFC614hX7qu', + 'QmdRoSKSgabcrpekNBPB6T47RBtJnCETYE8ry2a3P37MUe', + 'QmXoqArruHSghrUGW35vVQHPknBG5Cj939iWWHHXU3B616', + 'QmYCxtDuoHLMAFhNpifUsLU9ptAeFKwyxSiSEJhDQLMZtN', + 'QmQZQBw8wgzUsrmVDEejdePK23AEJbk9aUracvxLPyHz2x', + 'QmSsbu7U3i62AQKuYqfisRo5E6nqdMZfHRKWYJgouaXDxD', + 'QmaP4adVQuWyqtN4QCXeYXj4nr19Je4EqsaTG1zM9ywqFS', + 'QmPPsvgfXsiN3wNqdAwHAhQVpw6SZWNpry9Na6R2Xb7zXY', + 'QmR7z6wQmcfZUvRsVK83GRRboyvwZEDQujLwumMY33nAit', + 'QmQXgkgorDLPUyQpFbW8aLUW6jioQjUKamtXw5UuNCttDg', + 'QmcwYBeXt1BPfdSrtSrXFpWctRZ7RDHvmKTttC5hPPTSzG', + 'QmTUexZnw3xPy3YVdUsqJALwTvy2qFax5b3QpJVMvTCJQb', + 'QmNLkYXFUvctpfeeDTZxruZE2f834EUnYMM6JJUeTcUB4J', + 'QmT7544UaTPgKFYMCpPE4unXphNGX71BLZBPKLkxAijSmj', + 'QmTpVR4dqX1QV4fae5pZ1ACtRcANHwEWCLwpMXFmwE95Sm', + 'Qmdfyps5fW8d8wstXMfpvpei2DTmaADBWgmxLT7e7uan4P', + 'QmUSK8byipYoG3H97QpmPrHw9vYrvHygyhkiM81XmaKyxS', + 'QmQUGRvp96LTw5i8Ly9f5LoMvUpeQHCLGNqC88KV74wEHK', + 'Qma693TFLh9Z1MeBFzhPHi6Yk4tmTcZY2jogwJ8cPkU2B4', + 'QmNu8FyMpmkFdbCXGRVG8mKJtMvvCoLP8LNzFsxBQwxQeS', + 'QmWZHE87PKujL1MGLuFgP3D12o5GQxYbvbeTRgr12f1XMu', + 'QmcZJn8gPGd3poS9yuiNJh6iP4cn9uy5fnypky71r4sSSw', + 'QmTwrAF4E9ucpdnrUZFj6EfrQamGv7Qyn7ceSx1DUQYceC', + 'QmexssxU5iTXypgNqrmrQwMDJnTNxyZUxor5wDLnwb5TZp' +]; -- cgit v1.2.3 From 5e3d4133760962db28c4f3a595f0566bd59391ff Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 17 Oct 2022 15:31:08 -0700 Subject: thanks page --- package.json | 14 +- pnpm-lock.yaml | 406 +++++++++++--------------- src/components/AppHeader.svelte | 2 +- src/components/Avatar.svelte | 2 +- src/lib/socket.js | 4 +- src/lib/store.js | 1 + src/lib/upload.js | 1 + src/routes/+layout.svelte | 14 +- src/routes/launch/+page.svelte | 2 +- src/routes/launch/purchase/+page.server.js | 5 +- src/routes/launch/purchase/+page.svelte | 3 +- src/routes/launch/thanks/[asset]/+page.svelte | 34 +++ 12 files changed, 233 insertions(+), 255 deletions(-) create mode 100644 src/routes/launch/thanks/[asset]/+page.svelte (limited to 'src/lib') diff --git a/package.json b/package.json index 783edda5..b00befb7 100644 --- a/package.json +++ b/package.json @@ -11,28 +11,28 @@ }, "devDependencies": { "@sveltejs/adapter-node": "next", - "@sveltejs/kit": "1.0.0-next.505", + "@sveltejs/kit": "1.0.0-next.516", "@zerodevx/svelte-toast": "^0.7.2", "autoprefixer": "^10.4.12", "bip21": "^2.0.3", "bitcoin-address-validation": "^2.2.1", "bolt11": "^1.4.0", "date-fns": "^2.29.3", - "leaflet": "^1.9.1", + "leaflet": "^1.9.2", "leaflet.markercluster": "^1.5.3", - "postcss": "^8.4.17", + "postcss": "^8.4.18", "prettier": "^2.7.1", - "prettier-plugin-svelte": "^2.7.1", + "prettier-plugin-svelte": "^2.8.0", "qr-code-styling": "1.6.0-rc.1", "qr-scanner": "^1.4.1", "screenfull": "^6.0.2", - "svelte": "^3.50.1", - "svelte-outclick": "^3.1.0", + "svelte": "^3.52.0", + "svelte-outclick": "^3.2.0", "svelte-pincode": "^2.1.2", "svelte-preprocess": "^4.10.7", "sveltekit-i18n": "^2.2.2", "tailwindcss": "^3.1.8", - "vite": "^3.1.4" + "vite": "^3.1.8" }, "type": "module" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7e9ce090..04bec42b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,67 +1,59 @@ lockfileVersion: 5.4 specifiers: - '@stripe/stripe-js': ^1.41.0 '@sveltejs/adapter-node': next - '@sveltejs/kit': 1.0.0-next.505 + '@sveltejs/kit': 1.0.0-next.516 '@zerodevx/svelte-toast': ^0.7.2 autoprefixer: ^10.4.12 bip21: ^2.0.3 bitcoin-address-validation: ^2.2.1 bolt11: ^1.4.0 - cookie: ^0.5.0 date-fns: ^2.29.3 - leaflet: ^1.9.1 + leaflet: ^1.9.2 leaflet.markercluster: ^1.5.3 - postcss: ^8.4.17 + postcss: ^8.4.18 prettier: ^2.7.1 - prettier-plugin-svelte: ^2.7.1 + prettier-plugin-svelte: ^2.8.0 qr-code-styling: 1.6.0-rc.1 qr-scanner: ^1.4.1 screenfull: ^6.0.2 - stripe: ^10.14.0 - svelte: ^3.50.1 - svelte-outclick: ^3.1.0 + svelte: ^3.52.0 + svelte-outclick: ^3.2.0 svelte-pincode: ^2.1.2 svelte-preprocess: ^4.10.7 - svelte-stripe: ^0.0.19 sveltekit-i18n: ^2.2.2 tailwindcss: ^3.1.8 - vite: ^3.1.4 + vite: ^3.1.8 devDependencies: - '@stripe/stripe-js': 1.41.0 '@sveltejs/adapter-node': 1.0.0-next.98 - '@sveltejs/kit': 1.0.0-next.505_svelte@3.50.1+vite@3.1.4 + '@sveltejs/kit': 1.0.0-next.516_svelte@3.52.0+vite@3.1.8 '@zerodevx/svelte-toast': 0.7.2 - autoprefixer: 10.4.12_postcss@8.4.17 + autoprefixer: 10.4.12_postcss@8.4.18 bip21: 2.0.3 bitcoin-address-validation: 2.2.1 bolt11: 1.4.0 - cookie: 0.5.0 date-fns: 2.29.3 - leaflet: 1.9.1 - leaflet.markercluster: 1.5.3_leaflet@1.9.1 - postcss: 8.4.17 + leaflet: 1.9.2 + leaflet.markercluster: 1.5.3_leaflet@1.9.2 + postcss: 8.4.18 prettier: 2.7.1 - prettier-plugin-svelte: 2.7.1_nk6d2fkgcllkkdynqbuearcure + prettier-plugin-svelte: 2.8.0_lrllcp5xtrkmmdzifit4hd52ze qr-code-styling: 1.6.0-rc.1 qr-scanner: 1.4.1 screenfull: 6.0.2 - stripe: 10.14.0 - svelte: 3.50.1 - svelte-outclick: 3.1.0 + svelte: 3.52.0 + svelte-outclick: 3.2.0 svelte-pincode: 2.1.2 - svelte-preprocess: 4.10.7_r763xggw3my2ousygwguxmp6ru - svelte-stripe: 0.0.19 - sveltekit-i18n: 2.2.2_svelte@3.50.1 - tailwindcss: 3.1.8_postcss@8.4.17 - vite: 3.1.4 + svelte-preprocess: 4.10.7_vidagnlh55bt6yxji7dk5y5wla + sveltekit-i18n: 2.2.2_svelte@3.52.0 + tailwindcss: 3.1.8_postcss@8.4.18 + vite: 3.1.8 packages: - /@esbuild/android-arm/0.15.10: - resolution: {integrity: sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==} + /@esbuild/android-arm/0.15.11: + resolution: {integrity: sha512-PzMcQLazLBkwDEkrNPi9AbjFt6+3I7HKbiYF2XtWQ7wItrHvEOeO3T8Am434zAozWtVP7lrTue1bEfc2nYWeCA==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -69,8 +61,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.15.10: - resolution: {integrity: sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==} + /@esbuild/linux-loong64/0.15.11: + resolution: {integrity: sha512-geWp637tUhNmhL3Xgy4Bj703yXB9dqiLJe05lCUfjSFDrQf9C/8pArusyPUbUbPwlC/EAUjBw32sxuIl/11dZw==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -117,7 +109,7 @@ packages: estree-walker: 2.0.2 glob: 8.0.3 is-reference: 1.2.1 - magic-string: 0.26.5 + magic-string: 0.26.7 rollup: 2.79.1 dev: true @@ -160,10 +152,6 @@ packages: picomatch: 2.3.1 dev: true - /@stripe/stripe-js/1.41.0: - resolution: {integrity: sha512-9cbv1CO/fF37qDiHFCxkRgSJjlIZLV0bl+m6zu4dUObRnfYq5bpczCByOvhiSWtbrKqNhYL1j+otPSogRfSqGw==} - dev: true - /@sveltejs/adapter-node/1.0.0-next.98: resolution: {integrity: sha512-eo89sswzm3ntZJgaQzz2MneqMqBfQWQj6b8VtImlHeq2AB+RSodippmKY0RyPcIJ0hJqdDc4DubU7XMDKkoTew==} dependencies: @@ -173,8 +161,8 @@ packages: rollup: 2.79.1 dev: true - /@sveltejs/kit/1.0.0-next.505_svelte@3.50.1+vite@3.1.4: - resolution: {integrity: sha512-vg2WvWiUB7useJZOKbdM8WOXv10WD7SVDER74IXd1t/TWb/uXHzwMQ/ZAsXZFdxQsz1cDGFub3iC76PW+j58Pg==} + /@sveltejs/kit/1.0.0-next.516_svelte@3.52.0+vite@3.1.8: + resolution: {integrity: sha512-n0oGcv7xpgJ81ld1oER5HVREP4TdeDUJ8S64XNDcl3Y2xfQLKk8C4SLYQw2D6V+DxUm8V3aRrj7N7/tm4CQm6A==} engines: {node: '>=16.14'} hasBin: true requiresBuild: true @@ -182,28 +170,27 @@ packages: svelte: ^3.44.0 vite: ^3.1.0 dependencies: - '@sveltejs/vite-plugin-svelte': 1.0.8_svelte@3.50.1+vite@3.1.4 + '@sveltejs/vite-plugin-svelte': 1.0.9_svelte@3.52.0+vite@3.1.8 '@types/cookie': 0.5.1 cookie: 0.5.0 - devalue: 3.1.3 + devalue: 4.0.1 kleur: 4.1.5 - magic-string: 0.26.5 + magic-string: 0.26.7 mime: 3.0.0 - node-fetch: 3.2.10 sade: 1.8.1 set-cookie-parser: 2.5.1 sirv: 2.0.2 - svelte: 3.50.1 + svelte: 3.52.0 tiny-glob: 0.2.9 undici: 5.11.0 - vite: 3.1.4 + vite: 3.1.8 transitivePeerDependencies: - diff-match-patch - supports-color dev: true - /@sveltejs/vite-plugin-svelte/1.0.8_svelte@3.50.1+vite@3.1.4: - resolution: {integrity: sha512-1xkVTB4pm6zuign858FzVYE9Fdw9MQBOlxrdd85STV0NvTDmcofcRpcrK+zcIyT8SZ2dseHLu8hvDwzssF6RfA==} + /@sveltejs/vite-plugin-svelte/1.0.9_svelte@3.52.0+vite@3.1.8: + resolution: {integrity: sha512-+SDrAnT7TDi8sdj4OfD2SC4s9DNrpNVBrue8fT2PmKks9Ddu0JIfSeX91wXZb/1xHz4EkGb+rli8GTRI0yGOjg==} engines: {node: ^14.18.0 || >= 16} peerDependencies: diff-match-patch: ^1.0.5 @@ -217,20 +204,20 @@ packages: debug: 4.3.4 deepmerge: 4.2.2 kleur: 4.1.5 - magic-string: 0.26.5 - svelte: 3.50.1 - svelte-hmr: 0.15.0_svelte@3.50.1 - vite: 3.1.4 + magic-string: 0.26.7 + svelte: 3.52.0 + svelte-hmr: 0.15.0_svelte@3.52.0 + vite: 3.1.8 transitivePeerDependencies: - supports-color dev: true - /@sveltekit-i18n/base/1.2.1_svelte@3.50.1: + /@sveltekit-i18n/base/1.2.1_svelte@3.52.0: resolution: {integrity: sha512-F8gqG2+KAOeT0o2wYlUrW3TRCX7zaD7rBy/1CEVNw0irfw9TgFf/ODmhubkHHT3+6Zk+SMz8RNgeuffBfAMbJw==} peerDependencies: svelte: ^3.x dependencies: - svelte: 3.50.1 + svelte: 3.52.0 optionalDependencies: '@sveltekit-i18n/parser-default': 1.0.3 dev: true @@ -242,7 +229,7 @@ packages: /@types/bn.js/4.11.6: resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} dependencies: - '@types/node': 18.8.0 + '@types/node': 18.11.0 dev: true /@types/cookie/0.5.1: @@ -253,8 +240,8 @@ packages: resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} dev: true - /@types/node/18.8.0: - resolution: {integrity: sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==} + /@types/node/18.11.0: + resolution: {integrity: sha512-IOXCvVRToe7e0ny7HpT/X9Rb2RYtElG1a+VshjwT00HxrM2dWBApHQoqsI6WiY7Q03vdf2bCrIGzVrkF/5t10w==} dev: true /@types/offscreencanvas/2019.7.0: @@ -272,7 +259,7 @@ packages: /@types/sass/1.43.1: resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==} dependencies: - '@types/node': 18.8.0 + '@types/node': 18.11.0 dev: true /@zerodevx/svelte-toast/0.7.2: @@ -310,7 +297,7 @@ packages: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} dev: true - /autoprefixer/10.4.12_postcss@8.4.17: + /autoprefixer/10.4.12_postcss@8.4.18: resolution: {integrity: sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -318,11 +305,11 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.21.4 - caniuse-lite: 1.0.30001414 + caniuse-lite: 1.0.30001420 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.17 + postcss: 8.4.18 postcss-value-parser: 4.2.0 dev: true @@ -433,10 +420,10 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001414 - electron-to-chromium: 1.4.271 + caniuse-lite: 1.0.30001420 + electron-to-chromium: 1.4.283 node-releases: 2.0.6 - update-browserslist-db: 1.0.9_browserslist@4.21.4 + update-browserslist-db: 1.0.10_browserslist@4.21.4 dev: true /bs58/4.0.1: @@ -481,8 +468,8 @@ packages: engines: {node: '>= 6'} dev: true - /caniuse-lite/1.0.30001414: - resolution: {integrity: sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==} + /caniuse-lite/1.0.30001420: + resolution: {integrity: sha512-OnyeJ9ascFA9roEj72ok2Ikp7PHJTKubtEJIQ/VK3fdsS50q4KWy+Z5X0A1/GswEItKX0ctAp8n4SYDE7wTu6A==} dev: true /chokidar/3.5.3: @@ -540,11 +527,6 @@ packages: hasBin: true dev: true - /data-uri-to-buffer/4.0.0: - resolution: {integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==} - engines: {node: '>= 12'} - dev: true - /date-fns/2.29.3: resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} engines: {node: '>=0.11'} @@ -567,8 +549,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /defined/1.0.0: - resolution: {integrity: sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==} + /defined/1.0.1: + resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} dev: true /detect-indent/6.1.0: @@ -582,12 +564,12 @@ packages: hasBin: true dependencies: acorn-node: 1.8.2 - defined: 1.0.0 - minimist: 1.2.6 + defined: 1.0.1 + minimist: 1.2.7 dev: true - /devalue/3.1.3: - resolution: {integrity: sha512-9KO89Cb+qjzf2CqdrH+NuLaqdk9GhDP5EhR4zlkR51dvuIaiqtlkDkGzLMShDemwUy21raSMdu+kpX8Enw3yGQ==} + /devalue/4.0.1: + resolution: {integrity: sha512-Oksbel8g2rv5ivcCyImF1RXEU2FcS1OtCwVs4tJCCeVws/Dp9EE15fUbEsNr/xLD3ZxsQURBCDf56Lk1CgwCpg==} dev: true /didyoumean/1.2.2: @@ -598,8 +580,8 @@ packages: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} dev: true - /electron-to-chromium/1.4.271: - resolution: {integrity: sha512-BCPBtK07xR1/uY2HFDtl3wK2De66AW4MSiPlLrnPNxKC/Qhccxd59W73654S3y6Rb/k3hmuGJOBnhjfoutetXA==} + /electron-to-chromium/1.4.283: + resolution: {integrity: sha512-g6RQ9zCOV+U5QVHW9OpFR7rdk/V7xfopNXnyAamdpFgCHgZ1sjI8VuR1+zG2YG/TZk+tQ8mpNkug4P8FU0fuOA==} dev: true /elliptic/6.5.4: @@ -618,8 +600,8 @@ packages: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} dev: true - /esbuild-android-64/0.15.10: - resolution: {integrity: sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==} + /esbuild-android-64/0.15.11: + resolution: {integrity: sha512-rrwoXEiuI1kaw4k475NJpexs8GfJqQUKcD08VR8sKHmuW9RUuTR2VxcupVvHdiGh9ihxL9m3lpqB1kju92Ialw==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -627,8 +609,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.15.10: - resolution: {integrity: sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==} + /esbuild-android-arm64/0.15.11: + resolution: {integrity: sha512-/hDubOg7BHOhUUsT8KUIU7GfZm5bihqssvqK5PfO4apag7YuObZRZSzViyEKcFn2tPeHx7RKbSBXvAopSHDZJQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -636,8 +618,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.10: - resolution: {integrity: sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==} + /esbuild-darwin-64/0.15.11: + resolution: {integrity: sha512-1DqHD0ms3AhiwkKnjRUzmiW7JnaJJr5FKrPiR7xuyMwnjDqvNWDdMq4rKSD9OC0piFNK6n0LghsglNMe2MwJtA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -645,8 +627,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.10: - resolution: {integrity: sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==} + /esbuild-darwin-arm64/0.15.11: + resolution: {integrity: sha512-OMzhxSbS0lwwrW40HHjRCeVIJTURdXFA8c3GU30MlHKuPCcvWNUIKVucVBtNpJySXmbkQMDJdJNrXzNDyvoqvQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -654,8 +636,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.10: - resolution: {integrity: sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==} + /esbuild-freebsd-64/0.15.11: + resolution: {integrity: sha512-8dKP26r0/Qyez8nTCwpq60QbuYKOeBygdgOAWGCRalunyeqWRoSZj9TQjPDnTTI9joxd3QYw3UhVZTKxO9QdRg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -663,8 +645,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.10: - resolution: {integrity: sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==} + /esbuild-freebsd-arm64/0.15.11: + resolution: {integrity: sha512-aSGiODiukLGGnSg/O9+cGO2QxEacrdCtCawehkWYTt5VX1ni2b9KoxpHCT9h9Y6wGqNHmXFnB47RRJ8BIqZgmQ==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -672,8 +654,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.10: - resolution: {integrity: sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==} + /esbuild-linux-32/0.15.11: + resolution: {integrity: sha512-lsrAfdyJBGx+6aHIQmgqUonEzKYeBnyfJPkT6N2dOf1RoXYYV1BkWB6G02tjsrz1d5wZzaTc3cF+TKmuTo/ZwA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -681,8 +663,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.10: - resolution: {integrity: sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==} + /esbuild-linux-64/0.15.11: + resolution: {integrity: sha512-Y2Rh+PcyVhQqXKBTacPCltINN3uIw2xC+dsvLANJ1SpK5NJUtxv8+rqWpjmBgaNWKQT1/uGpMmA9olALy9PLVA==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -690,8 +672,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.10: - resolution: {integrity: sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==} + /esbuild-linux-arm/0.15.11: + resolution: {integrity: sha512-TJllTVk5aSyqPFvvcHTvf6Wu1ZKhWpJ/qNmZO8LL/XeB+LXCclm7HQHNEIz6MT7IX8PmlC1BZYrOiw2sXSB95A==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -699,8 +681,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.15.10: - resolution: {integrity: sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==} + /esbuild-linux-arm64/0.15.11: + resolution: {integrity: sha512-uhcXiTwTmD4OpxJu3xC5TzAAw6Wzf9O1XGWL448EE9bqGjgV1j+oK3lIHAfsHnuIn8K4nDW8yjX0Sv5S++oRuw==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -708,8 +690,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.15.10: - resolution: {integrity: sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==} + /esbuild-linux-mips64le/0.15.11: + resolution: {integrity: sha512-WD61y/R1M4BLe4gxXRypoQ0Ci+Vjf714QYzcPNkiYv5I8K8WDz2ZR8Bm6cqKxd6rD+e/rZgPDbhQ9PCf7TMHmA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -717,8 +699,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.10: - resolution: {integrity: sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==} + /esbuild-linux-ppc64le/0.15.11: + resolution: {integrity: sha512-JVleZS9oPVLTlBhPTWgOwxFWU/wMUdlBwTbGA4GF8c38sLbS13cupj+C8bLq929jU7EMWry4SaL+tKGIaTlqKg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -726,8 +708,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.10: - resolution: {integrity: sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==} + /esbuild-linux-riscv64/0.15.11: + resolution: {integrity: sha512-9aLIalZ2HFHIOZpmVU11sEAS9F8TnHw49daEjcgMpBXHFF57VuT9f9/9LKJhw781Gda0P9jDkuCWJ0tFbErvJw==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -735,8 +717,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.10: - resolution: {integrity: sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==} + /esbuild-linux-s390x/0.15.11: + resolution: {integrity: sha512-sZHtiXXOKsLI3XGBGoYO4qKBzJlb8xNsWmvFiwFMHFzA4AXgDP1KDp7Dawe9C2pavTRBDvl+Ok4n/DHQ59oaTg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -744,8 +726,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.10: - resolution: {integrity: sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==} + /esbuild-netbsd-64/0.15.11: + resolution: {integrity: sha512-hUC9yN06K9sg7ju4Vgu9ChAPdsEgtcrcLfyNT5IKwKyfpLvKUwCMZSdF+gRD3WpyZelgTQfJ+pDx5XFbXTlB0A==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -753,8 +735,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.10: - resolution: {integrity: sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==} + /esbuild-openbsd-64/0.15.11: + resolution: {integrity: sha512-0bBo9SQR4t66Wd91LGMAqmWorzO0TTzVjYiifwoFtel8luFeXuPThQnEm5ztN4g0fnvcp7AnUPPzS/Depf17wQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -762,8 +744,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.15.10: - resolution: {integrity: sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==} + /esbuild-sunos-64/0.15.11: + resolution: {integrity: sha512-EuBdTGlsMTjEl1sQnBX2jfygy7iR6CKfvOzi+gEOfhDqbHXsmY1dcpbVtcwHAg9/2yUZSfMJHMAgf1z8M4yyyw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -771,8 +753,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.15.10: - resolution: {integrity: sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==} + /esbuild-windows-32/0.15.11: + resolution: {integrity: sha512-O0/Wo1Wk6dc0rZSxkvGpmTNIycEznHmkObTFz2VHBhjPsO4ZpCgfGxNkCpz4AdAIeMczpTXt/8d5vdJNKEGC+Q==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -780,8 +762,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.10: - resolution: {integrity: sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==} + /esbuild-windows-64/0.15.11: + resolution: {integrity: sha512-x977Q4HhNjnHx00b4XLAnTtj5vfbdEvkxaQwC1Zh5AN8g5EX+izgZ6e5QgqJgpzyRNJqh4hkgIJF1pyy1be0mQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -789,8 +771,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.10: - resolution: {integrity: sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==} + /esbuild-windows-arm64/0.15.11: + resolution: {integrity: sha512-VwUHFACuBahrvntdcMKZteUZ9HaYrBRODoKe4tIWxguQRvvYoYb7iu5LrcRS/FQx8KPZNaa72zuqwVtHeXsITw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -798,34 +780,34 @@ packages: dev: true optional: true - /esbuild/0.15.10: - resolution: {integrity: sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==} + /esbuild/0.15.11: + resolution: {integrity: sha512-OgHGuhlfZ//mToxjte1D5iiiQgWfJ2GByVMwEC/IuoXsBGkuyK1+KrjYu0laSpnN/L1UmLUCv0s25vObdc1bVg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.15.10 - '@esbuild/linux-loong64': 0.15.10 - esbuild-android-64: 0.15.10 - esbuild-android-arm64: 0.15.10 - esbuild-darwin-64: 0.15.10 - esbuild-darwin-arm64: 0.15.10 - esbuild-freebsd-64: 0.15.10 - esbuild-freebsd-arm64: 0.15.10 - esbuild-linux-32: 0.15.10 - esbuild-linux-64: 0.15.10 - esbuild-linux-arm: 0.15.10 - esbuild-linux-arm64: 0.15.10 - esbuild-linux-mips64le: 0.15.10 - esbuild-linux-ppc64le: 0.15.10 - esbuild-linux-riscv64: 0.15.10 - esbuild-linux-s390x: 0.15.10 - esbuild-netbsd-64: 0.15.10 - esbuild-openbsd-64: 0.15.10 - esbuild-sunos-64: 0.15.10 - esbuild-windows-32: 0.15.10 - esbuild-windows-64: 0.15.10 - esbuild-windows-arm64: 0.15.10 + '@esbuild/android-arm': 0.15.11 + '@esbuild/linux-loong64': 0.15.11 + esbuild-android-64: 0.15.11 + esbuild-android-arm64: 0.15.11 + esbuild-darwin-64: 0.15.11 + esbuild-darwin-arm64: 0.15.11 + esbuild-freebsd-64: 0.15.11 + esbuild-freebsd-arm64: 0.15.11 + esbuild-linux-32: 0.15.11 + esbuild-linux-64: 0.15.11 + esbuild-linux-arm: 0.15.11 + esbuild-linux-arm64: 0.15.11 + esbuild-linux-mips64le: 0.15.11 + esbuild-linux-ppc64le: 0.15.11 + esbuild-linux-riscv64: 0.15.11 + esbuild-linux-s390x: 0.15.11 + esbuild-netbsd-64: 0.15.11 + esbuild-openbsd-64: 0.15.11 + esbuild-sunos-64: 0.15.11 + esbuild-windows-32: 0.15.11 + esbuild-windows-64: 0.15.11 + esbuild-windows-arm64: 0.15.11 dev: true /escalade/3.1.1: @@ -854,14 +836,6 @@ packages: reusify: 1.0.4 dev: true - /fetch-blob/3.2.0: - resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} - engines: {node: ^12.20 || >= 14.13} - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 3.2.1 - dev: true - /fill-range/7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -869,13 +843,6 @@ packages: to-regex-range: 5.0.1 dev: true - /formdata-polyfill/4.0.10: - resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} - engines: {node: '>=12.20.0'} - dependencies: - fetch-blob: 3.2.0 - dev: true - /fraction.js/4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} dev: true @@ -1051,16 +1018,16 @@ packages: engines: {node: '>=6'} dev: true - /leaflet.markercluster/1.5.3_leaflet@1.9.1: + /leaflet.markercluster/1.5.3_leaflet@1.9.2: resolution: {integrity: sha512-vPTw/Bndq7eQHjLBVlWpnGeLa3t+3zGiuM7fJwCkiMFq+nmRuG3RI3f7f4N4TDX7T4NpbAXpR2+NTRSEGfCSeA==} peerDependencies: leaflet: ^1.3.1 dependencies: - leaflet: 1.9.1 + leaflet: 1.9.2 dev: true - /leaflet/1.9.1: - resolution: {integrity: sha512-5FcDAMTLAuOq0RisQQbTFatl8Sl4bM0gMrBfuHbl7CYbYJv45BfCS8oU3T644MLjleBq1Ncq541QEA1pqUGTFA==} + /leaflet/1.9.2: + resolution: {integrity: sha512-Kc77HQvWO+y9y2oIs3dn5h5sy2kr3j41ewdqCMEUA4N89lgfUUfOBy7wnnHEstDpefiGFObq12FdopGRMx4J7g==} dev: true /lilconfig/2.0.6: @@ -1078,8 +1045,8 @@ packages: sourcemap-codec: 1.4.8 dev: true - /magic-string/0.26.5: - resolution: {integrity: sha512-yXUIYOOQnEHKHOftp5shMWpB9ImfgfDJpapa38j/qMtTj5QHWucvxP4lUtuRmHT9vAzvtpHkWKXW9xBwimXeNg==} + /magic-string/0.26.7: + resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} engines: {node: '>=12'} dependencies: sourcemap-codec: 1.4.8 @@ -1138,15 +1105,15 @@ packages: brace-expansion: 2.0.1 dev: true - /minimist/1.2.6: - resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + /minimist/1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} dev: true /mkdirp/0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true dependencies: - minimist: 1.2.6 + minimist: 1.2.7 dev: true /mri/1.2.0: @@ -1173,20 +1140,6 @@ packages: resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} dev: true - /node-domexception/1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - dev: true - - /node-fetch/3.2.10: - resolution: {integrity: sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - data-uri-to-buffer: 4.0.0 - fetch-blob: 3.2.0 - formdata-polyfill: 4.0.10 - dev: true - /node-gyp-build/4.5.0: resolution: {integrity: sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==} hasBin: true @@ -1244,29 +1197,29 @@ packages: engines: {node: '>=0.10.0'} dev: true - /postcss-import/14.1.0_postcss@8.4.17: + /postcss-import/14.1.0_postcss@8.4.18: resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} engines: {node: '>=10.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.17 + postcss: 8.4.18 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.1 dev: true - /postcss-js/4.0.0_postcss@8.4.17: + /postcss-js/4.0.0_postcss@8.4.18: resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.3.3 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.17 + postcss: 8.4.18 dev: true - /postcss-load-config/3.1.4_postcss@8.4.17: + /postcss-load-config/3.1.4_postcss@8.4.18: resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} peerDependencies: @@ -1279,17 +1232,17 @@ packages: optional: true dependencies: lilconfig: 2.0.6 - postcss: 8.4.17 + postcss: 8.4.18 yaml: 1.10.2 dev: true - /postcss-nested/5.0.6_postcss@8.4.17: + /postcss-nested/5.0.6_postcss@8.4.18: resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.17 + postcss: 8.4.18 postcss-selector-parser: 6.0.10 dev: true @@ -1305,8 +1258,8 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss/8.4.17: - resolution: {integrity: sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==} + /postcss/8.4.18: + resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.4 @@ -1314,14 +1267,14 @@ packages: source-map-js: 1.0.2 dev: true - /prettier-plugin-svelte/2.7.1_nk6d2fkgcllkkdynqbuearcure: - resolution: {integrity: sha512-H33qjhCBZyd9Zr1A5hUAYDh7j0Mf97uvy7XcA7CP4nNSYrNcPvBUf7wI8K9NptWTIs0S41QtgTWmJIUiGlEBtw==} + /prettier-plugin-svelte/2.8.0_lrllcp5xtrkmmdzifit4hd52ze: + resolution: {integrity: sha512-QlXv/U3bUszks3XYDPsk1fsaQC+fo2lshwKbcbO+lrSVdJ+40mB1BfL8OCAk1W9y4pJxpqO/4gqm6NtF3zNGCw==} peerDependencies: prettier: ^1.16.4 || ^2.0.0 svelte: ^3.2.0 dependencies: prettier: 2.7.1 - svelte: 3.50.1 + svelte: 3.52.0 dev: true /prettier/2.7.1: @@ -1507,7 +1460,7 @@ packages: hasBin: true dependencies: buffer-crc32: 0.2.13 - minimist: 1.2.6 + minimist: 1.2.7 sander: 0.5.1 sourcemap-codec: 1.4.8 dev: true @@ -1539,37 +1492,29 @@ packages: min-indent: 1.0.1 dev: true - /stripe/10.14.0: - resolution: {integrity: sha512-cXqUdZvrU20KElhLjzw/kW5t2SLLUENqeEftaiQXLogkUdNHyz/L12S4WHmQ8h0KHHFhxO39I7Q9GkJO1MMzzw==} - engines: {node: ^8.1 || >=10.*} - dependencies: - '@types/node': 18.8.0 - qs: 6.11.0 - dev: true - /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} dev: true - /svelte-hmr/0.15.0_svelte@3.50.1: + /svelte-hmr/0.15.0_svelte@3.52.0: resolution: {integrity: sha512-Aw21SsyoohyVn4yiKXWPNCSW2DQNH/76kvUnE9kpt4h9hcg9tfyQc6xshx9hzgMfGF0kVx0EGD8oBMWSnATeOg==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: '>=3.19.0' dependencies: - svelte: 3.50.1 + svelte: 3.52.0 dev: true - /svelte-outclick/3.1.0: - resolution: {integrity: sha512-1p/4UAuBfgfltMByTXjE3wbNAYaPihsB9HkhYrKgkiUgZSUtQ+Tpr/gxLu0LIsgft1EKt1izWg/VfzO+f5lQUA==} + /svelte-outclick/3.2.0: + resolution: {integrity: sha512-mQ8myBEnB4GoVlwSkQ6tmTtLKHz2ZmZJ9WKgolEGjKf6DzbO3eqkFZIZgzLFU1PR/GQngdPativJzrL3/oeQ+Q==} dev: true /svelte-pincode/2.1.2: resolution: {integrity: sha512-TlW0PScUjPR3Abaptcgw0gP+52F+1nlDlXy8zvnO9DVgkESm9kvwFY4RRj0po5aDy/Tp0docNiQmoaLKVTLMiw==} dev: true - /svelte-preprocess/4.10.7_r763xggw3my2ousygwguxmp6ru: + /svelte-preprocess/4.10.7_vidagnlh55bt6yxji7dk5y5wla: resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==} engines: {node: '>= 9.11.2'} requiresBuild: true @@ -1614,34 +1559,28 @@ packages: '@types/sass': 1.43.1 detect-indent: 6.1.0 magic-string: 0.25.9 - postcss: 8.4.17 + postcss: 8.4.18 sorcery: 0.10.0 strip-indent: 3.0.0 - svelte: 3.50.1 + svelte: 3.52.0 dev: true - /svelte-stripe/0.0.19: - resolution: {integrity: sha512-Q0C/MxthhSV7TFdBTz3qsYxvbYVFsoeP42mMVrYUpizhASR7HwmF+N1YBNOCWM8Ttk/RAegY/4AqJVNHb4fDkQ==} - dependencies: - '@stripe/stripe-js': 1.41.0 - dev: true - - /svelte/3.50.1: - resolution: {integrity: sha512-bS4odcsdj5D5jEg6riZuMg5NKelzPtmsCbD9RG+8umU03TeNkdWnP6pqbCm0s8UQNBkqk29w/Bdubn3C+HWSwA==} + /svelte/3.52.0: + resolution: {integrity: sha512-FxcnEUOAVfr10vDU5dVgJN19IvqeHQCS1zfe8vayTfis9A2t5Fhx+JDe5uv/C3j//bB1umpLJ6quhgs9xyUbCQ==} engines: {node: '>= 8'} dev: true - /sveltekit-i18n/2.2.2_svelte@3.50.1: + /sveltekit-i18n/2.2.2_svelte@3.52.0: resolution: {integrity: sha512-6eygICleGCSL7elY7A3trF8XUhV+mlW56ZSoD0UUKXlw+Y6u0MTTHDq48u1LyY73SfnlbPHXgTarhTjZ0BvUKA==} peerDependencies: svelte: ^3.x dependencies: - '@sveltekit-i18n/base': 1.2.1_svelte@3.50.1 + '@sveltekit-i18n/base': 1.2.1_svelte@3.52.0 '@sveltekit-i18n/parser-default': 1.0.3 - svelte: 3.50.1 + svelte: 3.52.0 dev: true - /tailwindcss/3.1.8_postcss@8.4.17: + /tailwindcss/3.1.8_postcss@8.4.18: resolution: {integrity: sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==} engines: {node: '>=12.13.0'} hasBin: true @@ -1661,11 +1600,11 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.17 - postcss-import: 14.1.0_postcss@8.4.17 - postcss-js: 4.0.0_postcss@8.4.17 - postcss-load-config: 3.1.4_postcss@8.4.17 - postcss-nested: 5.0.6_postcss@8.4.17 + postcss: 8.4.18 + postcss-import: 14.1.0_postcss@8.4.18 + postcss-js: 4.0.0_postcss@8.4.18 + postcss-load-config: 3.1.4_postcss@8.4.18 + postcss-nested: 5.0.6_postcss@8.4.18 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 quick-lru: 5.1.1 @@ -1704,8 +1643,8 @@ packages: busboy: 1.6.0 dev: true - /update-browserslist-db/1.0.9_browserslist@4.21.4: - resolution: {integrity: sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==} + /update-browserslist-db/1.0.10_browserslist@4.21.4: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -1725,8 +1664,8 @@ packages: safe-buffer: 5.2.1 dev: true - /vite/3.1.4: - resolution: {integrity: sha512-JoQI08aBjY9lycL7jcEq4p9o1xUjq5aRvdH4KWaXtkSx7e7RpAh9D3IjzDWRD4Fg44LS3oDAIOG/Kq1L+82psA==} + /vite/3.1.8: + resolution: {integrity: sha512-m7jJe3nufUbuOfotkntGFupinL/fmuTNuQmiVE7cH2IZMuf4UbfbGYMUT3jVWgGYuRVLY9j8NnrRqgw5rr5QTg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -1744,19 +1683,14 @@ packages: terser: optional: true dependencies: - esbuild: 0.15.10 - postcss: 8.4.17 + esbuild: 0.15.11 + postcss: 8.4.18 resolve: 1.22.1 rollup: 2.78.1 optionalDependencies: fsevents: 2.3.2 dev: true - /web-streams-polyfill/3.2.1: - resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} - engines: {node: '>= 8'} - dev: true - /wif/2.0.6: resolution: {integrity: sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==} dependencies: diff --git a/src/components/AppHeader.svelte b/src/components/AppHeader.svelte index f9413efb..4e631971 100644 --- a/src/components/AppHeader.svelte +++ b/src/components/AppHeader.svelte @@ -35,7 +35,7 @@ $tempProfileFiles && $tempProfileFiles.banner ? `url(${$tempProfileFiles.banner})` : subject?.banner - ? `url(/api/public/${subject.username}-banner.png)` + ? `url(/api/public/${subject.username}-banner.webp)` : undefined; diff --git a/src/components/Avatar.svelte b/src/components/Avatar.svelte index ed1a499a..d0a4e0f2 100644 --- a/src/components/Avatar.svelte +++ b/src/components/Avatar.svelte @@ -14,7 +14,7 @@ {user.username} diff --git a/src/lib/socket.js b/src/lib/socket.js index 02d73a48..7cce0071 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -4,6 +4,7 @@ import { success } from '$lib/utils'; import { env } from '$env/dynamic/public'; const socketUrl = env.PUBLIC_SOCKET; +const btc = env.PUBLIC_BTC; let interval, socket, token; @@ -20,7 +21,8 @@ export const messages = (data) => ({ payment() { let { amount, invoice } = data; - console.log('INVOICE', invoice); + if (get(user).account_id !== data.account_id ) return; + if (invoice) { invoices.set({ ...get(invoices), [invoice.uuid]: invoice }); } diff --git a/src/lib/store.js b/src/lib/store.js index c64ad39f..765e14cf 100644 --- a/src/lib/store.js +++ b/src/lib/store.js @@ -29,6 +29,7 @@ const persistLocal = (key, defaultValue) => { export const redirect = writable(); export const rate = writable(); +export const user = writable(); export const selectedRate = writable(); export const token = persistSession('token'); export const invoices = writable({}); diff --git a/src/lib/upload.js b/src/lib/upload.js index 099e2f30..6354b7f4 100644 --- a/src/lib/upload.js +++ b/src/lib/upload.js @@ -1,4 +1,5 @@ export const upload = async (file, type, progress, token) => { + console.log("FILE", file) let url = `/api/upload/${type}`; let formData = new FormData(); formData.append('file', file); diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 42d249f4..0064cce0 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -3,7 +3,7 @@ import '../app.css'; import { onMount } from 'svelte'; import { connect } from '$lib/socket'; - import { selectedRate, rate } from '$lib/store'; + import { selectedRate, rate, user } from '$lib/store'; import { page } from '$app/stores'; import { browser } from '$app/environment'; import { goto } from '$app/navigation'; @@ -14,12 +14,16 @@ const localeLocalStorageKey = 'sveltekit-i18n-locale'; export let data; - let { user, rate: r, token, rates } = data; + let r, u, token, rates; + $: update(data); - let update = () => ({ user, rate: r, token, rates } = data); - $rate = r; + let update = () => { + ({ user: u, rate: r, token, rates } = data); + $rate = r; + $user = u; + }; - $: $selectedRate = user && $rate * (rates[user.currency] / rates.USD); + $: $selectedRate = u && r * (rates[u.currency] / rates.USD); onMount(() => { let localStorageLocale = localStorage.getItem(localeLocalStorageKey); diff --git a/src/routes/launch/+page.svelte b/src/routes/launch/+page.svelte index da1c779c..74638257 100644 --- a/src/routes/launch/+page.svelte +++ b/src/routes/launch/+page.svelte @@ -29,7 +29,7 @@

- Come join us at our launch party celebrating our new design and 10 years since our first commit! + Come join us at our launch party celebrating our new design and 10 years since our first commit!

When

diff --git a/src/routes/launch/purchase/+page.server.js b/src/routes/launch/purchase/+page.server.js index 03da1e35..b9b20f28 100644 --- a/src/routes/launch/purchase/+page.server.js +++ b/src/routes/launch/purchase/+page.server.js @@ -1,5 +1,6 @@ import { auth, get, post } from '$lib/utils'; import tickets from '$lib/tickets'; +import { redirect } from "@sveltejs/kit"; export const load = async ({ parent }) => { let p = await parent(); @@ -11,7 +12,7 @@ export const actions = { internal: async ({ cookies, request, parent }) => { let { ticket } = Object.fromEntries(await request.formData()); - let r = await post( + let { asset } = await post( '/assets', { name: `Launch Party Ticket ${ticket}`, @@ -25,7 +26,7 @@ export const actions = { auth(cookies) ); - console.log(r); + throw redirect(307, `/launch/thanks/${asset}`); }, lightning: async ({ cookies, request }) => { diff --git a/src/routes/launch/purchase/+page.svelte b/src/routes/launch/purchase/+page.svelte index 68c19076..a7a2b51c 100644 --- a/src/routes/launch/purchase/+page.svelte +++ b/src/routes/launch/purchase/+page.svelte @@ -5,6 +5,7 @@ import { goto } from '$app/navigation'; export let data; + export let form; let amount = 25000; let { @@ -37,7 +38,7 @@

- Confirm Purchase + Confirm Purchase

+ import { page } from '$app/stores'; + + export let data; + let { user } = data; + let { asset } = $page.params; + + +
+
+

+ Thanks! +

+ +

We look forward to seeing you!

+ +

+ We've minted your ticket as an NFT on the Liquid Blockchain as a proof of purchase and commemorative token. It may confer some special benefits in the future. +

+
+ + +
-- cgit v1.2.3 From 02af363d2f0d552a72dc1c90bf8d785e04465d3a Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 17 Oct 2022 23:29:32 -0700 Subject: invoice redirect --- .env | 3 -- .env.sample | 3 ++ .gitignore | 1 + src/components/RegisterOrLogin.svelte | 6 ++-- src/hooks.server.js | 4 +-- src/lib/socket.js | 4 +-- src/lib/store.js | 3 +- src/lib/upload.js | 2 +- src/lib/utils.js | 11 +++++++ src/routes/+layout.server.js | 9 ++---- src/routes/+layout.svelte | 3 +- src/routes/[username]/dashboard/+page.server.js | 1 + src/routes/invoice/[id]/+page.svelte | 6 ++-- src/routes/launch/+page.server.js | 6 ++++ src/routes/launch/+page.svelte | 22 +++++++++----- src/routes/launch/purchase/+page.server.js | 37 +++++++++++++++++------- src/routes/launch/purchase/+page.svelte | 16 +++++----- src/routes/launch/purchase/card/+page.server.js | 7 ++--- src/routes/launch/purchase/card/+page.svelte | 18 ++++++------ src/routes/launch/thanks/[asset]/+page.server.js | 1 + src/routes/launch/thanks/[asset]/+page.svelte | 4 ++- src/routes/launch/ticket/+page.svelte | 9 +++--- src/routes/login/+page.server.js | 4 +-- src/routes/register/+page.server.js | 4 +-- src/routes/register/+page.svelte | 2 -- 25 files changed, 115 insertions(+), 71 deletions(-) delete mode 100644 .env create mode 100644 .env.sample create mode 100644 src/routes/[username]/dashboard/+page.server.js create mode 100644 src/routes/launch/+page.server.js create mode 100644 src/routes/launch/thanks/[asset]/+page.server.js (limited to 'src/lib') diff --git a/.env b/.env deleted file mode 100644 index 468bbf9c..00000000 --- a/.env +++ /dev/null @@ -1,3 +0,0 @@ -PUBLIC_COINOS_URL=http://localhost:3119 -PUBLIC_BTC=5ac9f65c0efcc4775e0baec4ec03abdde22473cd3cf33c0419ca290e0751b225 -PUBLIC_SOCKET=ws://localhost:3119/ws diff --git a/.env.sample b/.env.sample new file mode 100644 index 00000000..468bbf9c --- /dev/null +++ b/.env.sample @@ -0,0 +1,3 @@ +PUBLIC_COINOS_URL=http://localhost:3119 +PUBLIC_BTC=5ac9f65c0efcc4775e0baec4ec03abdde22473cd3cf33c0419ca290e0751b225 +PUBLIC_SOCKET=ws://localhost:3119/ws diff --git a/.gitignore b/.gitignore index dad6f805..75631d29 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ node_modules /build /.svelte-kit /package +.env diff --git a/src/components/RegisterOrLogin.svelte b/src/components/RegisterOrLogin.svelte index 0b954387..7f254400 100644 --- a/src/components/RegisterOrLogin.svelte +++ b/src/components/RegisterOrLogin.svelte @@ -3,7 +3,7 @@ import { enhance } from '$app/forms'; import { Icon } from '$comp'; import { focus } from '$lib/utils'; - import { redirect } from '$lib/store'; + import { loginRedirect } from '$lib/store'; import { t } from '$lib/translations'; export let form; @@ -40,8 +40,8 @@ {/if}
- {#if $redirect} - + {#if $loginRedirect} + {/if}
diff --git a/src/hooks.server.js b/src/hooks.server.js index 58882771..a5b1eef3 100644 --- a/src/hooks.server.js +++ b/src/hooks.server.js @@ -2,9 +2,8 @@ import { auth, get } from '$lib/utils'; export async function handle({ event, resolve }) { let token = event.cookies.get('token'); - if (token) { - event.request.headers.set('authorization', `Bearer ${token}`); + if (token) { try { event.locals.user = await get('/me', auth(event.cookies)); } catch (e) { @@ -13,7 +12,6 @@ export async function handle({ event, resolve }) { } const response = await resolve(event); - response.headers.set('x-custom-header', 'potato'); return response; } diff --git a/src/lib/socket.js b/src/lib/socket.js index 7cce0071..fb77333f 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -1,5 +1,5 @@ import { get } from 'svelte/store'; -import { invoices, newPayment, rate } from '$lib/store'; +import { invoices, newPayment, rate, user } from '$lib/store'; import { success } from '$lib/utils'; import { env } from '$env/dynamic/public'; @@ -21,7 +21,7 @@ export const messages = (data) => ({ payment() { let { amount, invoice } = data; - if (get(user).account_id !== data.account_id ) return; + if (get(user).account_id !== data.account_id) return; if (invoice) { invoices.set({ ...get(invoices), [invoice.uuid]: invoice }); diff --git a/src/lib/store.js b/src/lib/store.js index 765e14cf..ffafa70b 100644 --- a/src/lib/store.js +++ b/src/lib/store.js @@ -27,7 +27,8 @@ const persistLocal = (key, defaultValue) => { return s; }; -export const redirect = writable(); +export const invoiceRedirect = writable(); +export const loginRedirect = writable(); export const rate = writable(); export const user = writable(); export const selectedRate = writable(); diff --git a/src/lib/upload.js b/src/lib/upload.js index 6354b7f4..0e8a2908 100644 --- a/src/lib/upload.js +++ b/src/lib/upload.js @@ -1,5 +1,5 @@ export const upload = async (file, type, progress, token) => { - console.log("FILE", file) + console.log('FILE', file); let url = `/api/upload/${type}`; let formData = new FormData(); formData.append('file', file); diff --git a/src/lib/utils.js b/src/lib/utils.js index 54e965d9..76ce5077 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -9,6 +9,17 @@ export function scroll(section) { const base = browser ? '' : env.PUBLIC_COINOS_URL; +export const g = (url, fetch, headers) => + fetch(base + url, { headers }) + .then((r) => r.text()) + .then((body) => { + try { + return JSON.parse(body); + } catch (e) { + throw new Error(body); + } + }); + export const get = (url, headers = {}) => fetch(base + url, { headers }) .then((r) => r.text()) diff --git a/src/routes/+layout.server.js b/src/routes/+layout.server.js index 7f6e8801..6af13a06 100644 --- a/src/routes/+layout.server.js +++ b/src/routes/+layout.server.js @@ -5,7 +5,8 @@ import { env } from '$env/dynamic/public'; export const { PUBLIC_BTC: btc } = env; -export async function load({ cookies, request, url, params }) { +export async function load({ cookies, locals, request, url, params }) { + url.pathname; let token = cookies.get('token'); let user; let rates; @@ -16,11 +17,7 @@ export async function load({ cookies, request, url, params }) { } if (token && token !== 'undefined') { - try { - user = await get('/me', auth(cookies)); - } catch (e) { - throw redirect(307, '/logout'); - } + user = locals.user; if (protectedRoutes.find((p) => url.pathname.match(p))) { if (user.username !== params.username) throw error(404, 'user not found'); diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 0064cce0..5cc75b30 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -14,7 +14,8 @@ const localeLocalStorageKey = 'sveltekit-i18n-locale'; export let data; - let r, u, token, rates; + + let r, u, token, rates; $: update(data); let update = () => { diff --git a/src/routes/[username]/dashboard/+page.server.js b/src/routes/[username]/dashboard/+page.server.js new file mode 100644 index 00000000..b6206324 --- /dev/null +++ b/src/routes/[username]/dashboard/+page.server.js @@ -0,0 +1 @@ +export const load = ({ parent }) => parent(); diff --git a/src/routes/invoice/[id]/+page.svelte b/src/routes/invoice/[id]/+page.svelte index 04a31813..8e9e6ff4 100644 --- a/src/routes/invoice/[id]/+page.svelte +++ b/src/routes/invoice/[id]/+page.svelte @@ -1,7 +1,7 @@ @@ -29,7 +32,12 @@

- Come join us at our launch party celebrating our new design and 10 years since our first commit! + Come join us at our launch party celebrating our new design and 10 years since our first commit!

When

@@ -58,7 +66,7 @@
diff --git a/src/routes/launch/purchase/+page.server.js b/src/routes/launch/purchase/+page.server.js index b9b20f28..ff5efc84 100644 --- a/src/routes/launch/purchase/+page.server.js +++ b/src/routes/launch/purchase/+page.server.js @@ -1,16 +1,18 @@ import { auth, get, post } from '$lib/utils'; import tickets from '$lib/tickets'; -import { redirect } from "@sveltejs/kit"; +import { redirect } from '@sveltejs/kit'; +import { env } from '$env/dynamic/private'; +import { invalidateAll } from '$app/navigation'; +import { browser } from '$app/environment'; export const load = async ({ parent }) => { - let p = await parent(); - let t = await get('/ticket'); - return { ...p, ...t }; + let tickets = await get('/tickets'); + return { ...(await parent()), tickets }; }; export const actions = { - internal: async ({ cookies, request, parent }) => { - let { ticket } = Object.fromEntries(await request.formData()); + internal: async ({ cookies, request }) => { + let { ticket } = await get('/ticket'); let { asset } = await post( '/assets', @@ -26,7 +28,9 @@ export const actions = { auth(cookies) ); - throw redirect(307, `/launch/thanks/${asset}`); + await post('/ticket', { asset }, { authorization: `Bearer ${env.LAUNCH}` }); + + throw redirect(307, `/launch/thanks/${asset}`); }, lightning: async ({ cookies, request }) => { @@ -35,10 +39,9 @@ export const actions = { let rates = await get('/rates'); let invoice = { - amount: parseInt(form.get('amount')), - tip: parseInt(form.get('tip')), + amount: 25000, network: 'lightning', - prompt: form.get('prompt') === 'true', + prompt: false, rate: rates[form.get('currency')] }; @@ -50,3 +53,17 @@ export const actions = { }, bitcoin: () => console.log('YYEAH') }; + +export async function POST({ request }) { + let { address, amount, confirmed } = await request.json(); + if (!confirmed) return; + + if (request.headers.get('x-webhook') !== env.WEBHOOK) { + throw new Error('access denied'); + } + + let username = invoices[address]; + amount = Math.round(amount / 2100); + + await post('/send', { username, asset, amount }, { authorization: `Bearer ${token}` }); +} diff --git a/src/routes/launch/purchase/+page.svelte b/src/routes/launch/purchase/+page.svelte index a7a2b51c..d31d20f0 100644 --- a/src/routes/launch/purchase/+page.svelte +++ b/src/routes/launch/purchase/+page.svelte @@ -1,21 +1,21 @@ @@ -18,7 +20,7 @@ We've minted your ticket as an NFT on the Liquid Blockchain as a proof of purchase and commemorative token. It may confer some special benefits in the future. + > as a proof of purchase and commemorative token.

diff --git a/src/routes/launch/ticket/+page.svelte b/src/routes/launch/ticket/+page.svelte index acf3b7a5..229c18f0 100644 --- a/src/routes/launch/ticket/+page.svelte +++ b/src/routes/launch/ticket/+page.svelte @@ -1,5 +1,4 @@ - - + diff --git a/src/routes/login/+page.server.js b/src/routes/login/+page.server.js index 94981ff7..aa8797f9 100644 --- a/src/routes/login/+page.server.js +++ b/src/routes/login/+page.server.js @@ -4,7 +4,7 @@ import { login } from '$lib/utils'; export const actions = { default: async ({ cookies, request }) => { let form = Object.fromEntries(await request.formData()); - let { username, password, redirect: r } = form; + let { username, password, loginRedirect } = form; let user = { username, password }; try { @@ -13,6 +13,6 @@ export const actions = { return invalid(400, { error: 'Login failed' }); } - throw redirect(303, r || `/${user.username}/dashboard`); + throw redirect(303, loginRedirect || `/${user.username}/dashboard`); } }; diff --git a/src/routes/register/+page.server.js b/src/routes/register/+page.server.js index bfe1a9b7..c5751d4c 100644 --- a/src/routes/register/+page.server.js +++ b/src/routes/register/+page.server.js @@ -4,7 +4,7 @@ import { post, login } from '$lib/utils'; export const actions = { default: async ({ cookies, request }) => { let form = Object.fromEntries(await request.formData()); - let { username, password, redirect: r } = form; + let { username, password, loginRedirect } = form; let user = { username, password }; let error; @@ -23,6 +23,6 @@ export const actions = { } if (error) return invalid(400, { error }); - throw redirect(307, r || `/${user.username}/dashboard`); + throw redirect(307, loginRedirect || `/${user.username}/dashboard`); } }; diff --git a/src/routes/register/+page.svelte b/src/routes/register/+page.svelte index aa0e66e0..fd9e4417 100644 --- a/src/routes/register/+page.svelte +++ b/src/routes/register/+page.svelte @@ -5,9 +5,7 @@ afterNavigate(async () => { try { - console.log('whoa'); await invalidateAll(); - console.log('no'); } catch (e) { console.log(e); } -- cgit v1.2.3 From ad24f34434368d3767fd147d80d45adc3c28f106 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 18 Oct 2022 21:03:27 -0700 Subject: tickets wip --- src/lib/socket.js | 3 +- src/lib/store.js | 1 - src/routes/invoice/[id]/+page.svelte | 5 ++- src/routes/invoice/[id]/paid/+page.svelte | 2 +- src/routes/launch/+page.svelte | 33 +++++++++------ src/routes/launch/purchase/+page.server.js | 19 ++++++++- src/routes/launch/purchase/+page.svelte | 28 +++---------- src/routes/launch/ticket/+page.server.js | 9 ++++ src/routes/launch/ticket/+page.svelte | 32 +++++++++++++-- static/icons/party.svg | 64 +++++++++++++++++++++++++++++ static/images/loft.jpg | Bin 0 -> 286853 bytes 11 files changed, 150 insertions(+), 46 deletions(-) create mode 100644 src/routes/launch/ticket/+page.server.js create mode 100644 static/icons/party.svg create mode 100644 static/images/loft.jpg (limited to 'src/lib') diff --git a/src/lib/socket.js b/src/lib/socket.js index fb77333f..b385db9d 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -19,13 +19,14 @@ export const messages = (data) => ({ rate.set(data); }, - payment() { + async payment() { let { amount, invoice } = data; if (get(user).account_id !== data.account_id) return; if (invoice) { invoices.set({ ...get(invoices), [invoice.uuid]: invoice }); } + newPayment.set(true); if (amount > 0) { success(`Received ${amount} sats!`); diff --git a/src/lib/store.js b/src/lib/store.js index ffafa70b..e317ed24 100644 --- a/src/lib/store.js +++ b/src/lib/store.js @@ -27,7 +27,6 @@ const persistLocal = (key, defaultValue) => { return s; }; -export const invoiceRedirect = writable(); export const loginRedirect = writable(); export const rate = writable(); export const user = writable(); diff --git a/src/routes/invoice/[id]/+page.svelte b/src/routes/invoice/[id]/+page.svelte index 8e9e6ff4..cfff251e 100644 --- a/src/routes/invoice/[id]/+page.svelte +++ b/src/routes/invoice/[id]/+page.svelte @@ -1,7 +1,7 @@ +{$invoices[id]?.memo}
diff --git a/src/routes/launch/ticket/+page.server.js b/src/routes/launch/ticket/+page.server.js new file mode 100644 index 00000000..59ea966e --- /dev/null +++ b/src/routes/launch/ticket/+page.server.js @@ -0,0 +1,9 @@ +import { get } from '$lib/utils'; + +export const load = async ({ cookies, parent }) => { + let { user } = await parent(); + let tickets = await get('/tickets'); + let ticket = tickets.findIndex((t) => user.accounts.find((a) => a.asset === t)); + console.log("TICK", ticket) + return { ticket }; +}; diff --git a/src/routes/launch/ticket/+page.svelte b/src/routes/launch/ticket/+page.svelte index 229c18f0..2585c57c 100644 --- a/src/routes/launch/ticket/+page.svelte +++ b/src/routes/launch/ticket/+page.svelte @@ -1,4 +1,28 @@ - + + +
+
+

+ Your Ticket +

+ + Ticket + + +
+
diff --git a/static/icons/party.svg b/static/icons/party.svg new file mode 100644 index 00000000..f33b9fc1 --- /dev/null +++ b/static/icons/party.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/images/loft.jpg b/static/images/loft.jpg new file mode 100644 index 00000000..39ca49ab Binary files /dev/null and b/static/images/loft.jpg differ -- cgit v1.2.3 From b7571e82c8c2e52ecf8565cfb2ab99a7620673ad Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 18 Oct 2022 21:58:17 -0700 Subject: handle card payment --- src/components/Calendar.svelte | 15 +++ src/components/Card.svelte | 14 ++ src/components/Lock.svelte | 14 ++ src/components/index.js | 3 + src/lib/ticket.js | 31 +++++ src/routes/invoice/[id]/+page.svelte | 1 - src/routes/launch/purchase/+page.server.js | 49 +------ src/routes/launch/purchase/+page.svelte | 44 +++--- src/routes/launch/purchase/card/+page.server.js | 16 ++- src/routes/launch/purchase/card/+page.svelte | 169 ++++++++++-------------- src/routes/launch/ticket/+page.server.js | 1 - 11 files changed, 181 insertions(+), 176 deletions(-) create mode 100644 src/components/Calendar.svelte create mode 100644 src/components/Card.svelte create mode 100644 src/components/Lock.svelte create mode 100644 src/lib/ticket.js (limited to 'src/lib') diff --git a/src/components/Calendar.svelte b/src/components/Calendar.svelte new file mode 100644 index 00000000..ce1841f3 --- /dev/null +++ b/src/components/Calendar.svelte @@ -0,0 +1,15 @@ + + + + diff --git a/src/components/Card.svelte b/src/components/Card.svelte new file mode 100644 index 00000000..44ab635f --- /dev/null +++ b/src/components/Card.svelte @@ -0,0 +1,14 @@ + + + diff --git a/src/components/Lock.svelte b/src/components/Lock.svelte new file mode 100644 index 00000000..11475acf --- /dev/null +++ b/src/components/Lock.svelte @@ -0,0 +1,14 @@ + + + diff --git a/src/components/index.js b/src/components/index.js index 08ec217a..d0af4c38 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -1,3 +1,6 @@ +export { default as Card } from './Card.svelte'; +export { default as Lock } from './Lock.svelte'; +export { default as Calendar } from './Calendar.svelte'; export { default as Avatar } from './Avatar.svelte'; export { default as Left } from './Left.svelte'; export { default as Numpad } from './Numpad.svelte'; diff --git a/src/lib/ticket.js b/src/lib/ticket.js new file mode 100644 index 00000000..4d342d28 --- /dev/null +++ b/src/lib/ticket.js @@ -0,0 +1,31 @@ +import { auth, get, post } from '$lib/utils'; +import { env } from '$env/dynamic/private'; +import tickets from '$lib/tickets'; + +export const createTicket = async (cookies, username) => { + let { ticket } = await get('/ticket'); + + let { address } = await post( + '/invoice', + { invoice: { network: 'liquid' }, user: { username } }, + auth(cookies) + ); + + let { asset } = await post( + '/assets', + { + address, + name: `Launch Party Ticket ${ticket}`, + ticker: 'LPT', + precision: 0, + asset_amount: '1', + token_amount: 0, + domain: 'coinos.io', + filename: tickets[ticket] + }, + { authorization: `Bearer ${env.LAUNCH}` } + ); + + await post('/ticket', { asset }, { authorization: `Bearer ${env.LAUNCH}` }); + return asset; +}; diff --git a/src/routes/invoice/[id]/+page.svelte b/src/routes/invoice/[id]/+page.svelte index cfff251e..84b03593 100644 --- a/src/routes/invoice/[id]/+page.svelte +++ b/src/routes/invoice/[id]/+page.svelte @@ -55,7 +55,6 @@ $: invoiceAmountFiatFormatted = f(amountFiat, currency); -{$invoices[id]?.memo}
- - -
- -
+
+
+ + + +
- - - + + + +
{/if}
diff --git a/src/routes/launch/purchase/card/+page.server.js b/src/routes/launch/purchase/card/+page.server.js index eaa8d5f3..34a2a8e1 100644 --- a/src/routes/launch/purchase/card/+page.server.js +++ b/src/routes/launch/purchase/card/+page.server.js @@ -1,16 +1,19 @@ import { env } from '$env/dynamic/private'; +import { error, redirect } from '@sveltejs/kit'; +import { post, auth } from '$lib/utils'; +import { createTicket } from "$lib/ticket"; let stripe = 'https://api.stripe.com/v1'; export const actions = { - default: async ({ request }) => { + default: async ({ cookies, request }) => { let form = await request.formData(); let headers = new Headers(); headers.set('Authorization', 'Basic ' + new Buffer(env.STRIPE + ':').toString('base64')); let body = new URLSearchParams({ - 'card[number]': form.get('number'), + 'card[number]': form.get('number').replace(/\s+/g, ''), 'card[exp_month]': form.get('expiry').slice(0, 2), 'card[exp_year]': form.get('expiry').slice(-2), 'card[cvc]': form.get('cvc') @@ -29,8 +32,13 @@ export const actions = { description: 'launch ticket' }); - let r = await fetch(`${stripe}/charges`, { body, headers, method }).then((r) => r.json()); + let { status } = await fetch(`${stripe}/charges`, { body, headers, method }).then((r) => + r.json() + ); + + if (status !== 'succeeded') throw error(500, { message: 'Card payment failed' }); + let asset = await createTicket(cookies, form.get('username')); - console.log(r); + throw redirect(307, `/launch/thanks/${asset}`); } }; diff --git a/src/routes/launch/purchase/card/+page.svelte b/src/routes/launch/purchase/card/+page.svelte index 79240078..2ab5fb86 100644 --- a/src/routes/launch/purchase/card/+page.svelte +++ b/src/routes/launch/purchase/card/+page.svelte @@ -1,109 +1,80 @@ -
- + + - + + - + + -
- -
- +
+ +
+ +
diff --git a/src/routes/launch/ticket/+page.server.js b/src/routes/launch/ticket/+page.server.js index 59ea966e..054a88be 100644 --- a/src/routes/launch/ticket/+page.server.js +++ b/src/routes/launch/ticket/+page.server.js @@ -4,6 +4,5 @@ export const load = async ({ cookies, parent }) => { let { user } = await parent(); let tickets = await get('/tickets'); let ticket = tickets.findIndex((t) => user.accounts.find((a) => a.asset === t)); - console.log("TICK", ticket) return { ticket }; }; -- cgit v1.2.3 From f3db48617478c58a7813bc3b0587c5ed53df4da5 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 18 Oct 2022 23:04:39 -0700 Subject: prettier --- src/components/Calendar.svelte | 29 ++++++++++++------------- src/lib/ticket.js | 4 ++-- src/routes/launch/+page.svelte | 7 +++--- src/routes/launch/purchase/+page.server.js | 2 +- src/routes/launch/purchase/card/+page.server.js | 4 ++-- src/routes/launch/ticket/+page.server.js | 4 ++-- 6 files changed, 24 insertions(+), 26 deletions(-) (limited to 'src/lib') diff --git a/src/components/Calendar.svelte b/src/components/Calendar.svelte index ce1841f3..7504f48e 100644 --- a/src/components/Calendar.svelte +++ b/src/components/Calendar.svelte @@ -1,15 +1,14 @@ - - - - + + + diff --git a/src/lib/ticket.js b/src/lib/ticket.js index 4d342d28..708c10f4 100644 --- a/src/lib/ticket.js +++ b/src/lib/ticket.js @@ -3,7 +3,7 @@ import { env } from '$env/dynamic/private'; import tickets from '$lib/tickets'; export const createTicket = async (cookies, username) => { - let { ticket } = await get('/ticket'); + let { ticket } = await get('/ticket'); let { address } = await post( '/invoice', @@ -27,5 +27,5 @@ export const createTicket = async (cookies, username) => { ); await post('/ticket', { asset }, { authorization: `Bearer ${env.LAUNCH}` }); - return asset; + return asset; }; diff --git a/src/routes/launch/+page.svelte b/src/routes/launch/+page.svelte index ec649b92..1110e86e 100644 --- a/src/routes/launch/+page.svelte +++ b/src/routes/launch/+page.svelte @@ -58,10 +58,9 @@

- We'll introduce our new interface for merchants to take bitcoin payments, discuss how we - can get all of Metro Vancouver on a bitcoin economy, and enjoy tasty food and drinks from The LoftThe Loft!

diff --git a/src/routes/launch/purchase/+page.server.js b/src/routes/launch/purchase/+page.server.js index 828e50b3..2ecce695 100644 --- a/src/routes/launch/purchase/+page.server.js +++ b/src/routes/launch/purchase/+page.server.js @@ -41,5 +41,5 @@ export const actions = { let { uuid } = await post('/invoice', { invoice, user }, auth(cookies)); throw redirect(307, `/invoice/${uuid}`); - }, + } }; diff --git a/src/routes/launch/purchase/card/+page.server.js b/src/routes/launch/purchase/card/+page.server.js index 34a2a8e1..1f564f78 100644 --- a/src/routes/launch/purchase/card/+page.server.js +++ b/src/routes/launch/purchase/card/+page.server.js @@ -1,7 +1,7 @@ import { env } from '$env/dynamic/private'; import { error, redirect } from '@sveltejs/kit'; import { post, auth } from '$lib/utils'; -import { createTicket } from "$lib/ticket"; +import { createTicket } from '$lib/ticket'; let stripe = 'https://api.stripe.com/v1'; @@ -37,7 +37,7 @@ export const actions = { ); if (status !== 'succeeded') throw error(500, { message: 'Card payment failed' }); - let asset = await createTicket(cookies, form.get('username')); + let asset = await createTicket(cookies, form.get('username')); throw redirect(307, `/launch/thanks/${asset}`); } diff --git a/src/routes/launch/ticket/+page.server.js b/src/routes/launch/ticket/+page.server.js index d2b51cfc..0362eb7d 100644 --- a/src/routes/launch/ticket/+page.server.js +++ b/src/routes/launch/ticket/+page.server.js @@ -3,7 +3,7 @@ import { get } from '$lib/utils'; export const load = async ({ cookies, parent }) => { let { user } = await parent(); let tickets = await get('/tickets'); - let ticket = tickets.findIndex((t) => user.accounts.find((a) => a.asset === t)); - let asset = tickets[ticket]; + let ticket = tickets.findIndex((t) => user.accounts.find((a) => a.asset === t)); + let asset = tickets[ticket]; return { asset, ticket }; }; -- cgit v1.2.3 From a005ef51ee46618a1875dee4559ccddfec41dfcd Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 21 Oct 2022 13:29:04 -0700 Subject: move 2fa to separate step --- src/components/RegisterOrLogin.svelte | 199 ++++++++++++++++++++-------------- src/lib/utils.js | 13 ++- src/routes/login/+page.server.js | 8 +- src/routes/login/+page.svelte | 1 + 4 files changed, 132 insertions(+), 89 deletions(-) (limited to 'src/lib') diff --git a/src/components/RegisterOrLogin.svelte b/src/components/RegisterOrLogin.svelte index 7f254400..bf2d2084 100644 --- a/src/components/RegisterOrLogin.svelte +++ b/src/components/RegisterOrLogin.svelte @@ -1,4 +1,6 @@ -- cgit v1.2.3 From a67f9cbc9f609aa56e445fe8f422ba3be14e9345 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 21 Oct 2022 21:18:10 -0700 Subject: pin code input --- src/components/Qr.svelte | 4 +- src/lib/upload.js | 1 - src/lib/utils.js | 1 - src/routes/[username]/settings/+page.server.js | 4 +- src/routes/[username]/settings/+page.svelte | 28 +++++-- src/routes/[username]/settings/_account.svelte | 18 +++- src/routes/[username]/settings/_security.svelte | 104 +++++++++++++++++++----- 7 files changed, 125 insertions(+), 35 deletions(-) (limited to 'src/lib') diff --git a/src/components/Qr.svelte b/src/components/Qr.svelte index 0ae028b9..3870abe0 100644 --- a/src/components/Qr.svelte +++ b/src/components/Qr.svelte @@ -57,8 +57,8 @@ {#if mask}
{/if} -
-
+
+