From 4704a96ef7b09c1111c9baf813441a9e3a7b4960 Mon Sep 17 00:00:00 2001 From: phoebus-84 Date: Fri, 2 Feb 2024 02:19:47 +0100 Subject: [PATCH 01/11] feat: on boarding skelethon --- package.json | 2 +- pnpm-lock.yaml | 959 +++++++++++--------- src/lib/components/onBoarding/First.svelte | 12 + src/lib/components/onBoarding/Second.svelte | 11 + src/lib/components/onBoarding/Third.svelte | 14 + src/lib/components/onBoarding/utils.ts | 8 + src/routes/(protected)/+layout.ts | 3 + src/routes/on-boarding/+page.svelte | 23 + 8 files changed, 580 insertions(+), 452 deletions(-) create mode 100644 src/lib/components/onBoarding/First.svelte create mode 100644 src/lib/components/onBoarding/Second.svelte create mode 100644 src/lib/components/onBoarding/Third.svelte create mode 100644 src/lib/components/onBoarding/utils.ts create mode 100644 src/routes/on-boarding/+page.svelte diff --git a/package.json b/package.json index f1c039db..1a73f6cf 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "@capacitor/keyboard": "5.0.6", "@capacitor/preferences": "^5.0.6", "@capacitor/status-bar": "5.0.6", - "@efstajas/svelte-stepper": "^0.1.5", + "@efstajas/svelte-stepper": "^0.2.1", "@fontsource-variable/gantari": "^5.0.9", "@ionic/core": "^7.4.3", "@slangroom/core": "^1.6.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3ec4625d..bea769ac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,8 +45,8 @@ dependencies: specifier: 5.0.6 version: 5.0.6(@capacitor/core@5.4.2) '@efstajas/svelte-stepper': - specifier: ^0.1.5 - version: 0.1.5(svelte@4.0.5) + specifier: ^0.2.1 + version: 0.2.1(svelte@4.0.5) '@fontsource-variable/gantari': specifier: ^5.0.9 version: 5.0.9 @@ -87,7 +87,7 @@ dependencies: devDependencies: '@capacitor/assets': specifier: ^3.0.4 - version: 3.0.4(@types/node@20.10.0)(typescript@5.0.2) + version: 3.0.4(@types/node@20.11.16)(typescript@5.0.2) '@capacitor/cli': specifier: 5.4.2 version: 5.4.2 @@ -117,7 +117,7 @@ devDependencies: version: 4.14.202 '@vite-pwa/sveltekit': specifier: ^0.2.7 - version: 0.2.7(@sveltejs/kit@1.20.4)(vite-plugin-pwa@0.17.2) + version: 0.2.7(@sveltejs/kit@1.20.4)(vite-plugin-pwa@0.17.5) autoprefixer: specifier: ^10.4.16 version: 10.4.16(postcss@8.4.31) @@ -144,10 +144,10 @@ devDependencies: version: 4.0.5 svelte-check: specifier: ^3.4.3 - version: 3.4.3(@babel/core@7.23.3)(postcss@8.4.31)(svelte@4.0.5) + version: 3.4.3(@babel/core@7.23.9)(postcss@8.4.31)(svelte@4.0.5) svelte-preprocess: specifier: ^5.0.4 - version: 5.0.4(@babel/core@7.23.3)(postcss@8.4.31)(svelte@4.0.5)(typescript@5.0.2) + version: 5.0.4(@babel/core@7.23.9)(postcss@8.4.31)(svelte@4.0.5)(typescript@5.0.2) tailwindcss: specifier: ^3.3.3 version: 3.3.3 @@ -159,7 +159,7 @@ devDependencies: version: 5.0.2 vite: specifier: ^4.5.2 - version: 4.5.2(@types/node@20.10.0) + version: 4.5.2(@types/node@20.11.16) vitest: specifier: ^0.34.6 version: 0.34.6 @@ -208,25 +208,33 @@ packages: chalk: 2.4.2 dev: true - /@babel/compat-data@7.23.3: - resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + dev: true + + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.3: - resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} + /@babel/core@7.23.9: + resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.23.4 - '@babel/generator': 7.23.4 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helpers': 7.23.4 - '@babel/parser': 7.23.4 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.4 - '@babel/types': 7.23.4 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helpers': 7.23.9 + '@babel/parser': 7.23.9 + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -236,13 +244,13 @@ packages: - supports-color dev: true - /@babel/generator@7.23.4: - resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==} + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.9 '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.22 jsesc: 2.5.2 dev: true @@ -250,64 +258,64 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.9 dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.9 dev: true - /@babel/helper-compilation-targets@7.22.15: - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.23.3 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.22.1 + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.22.3 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.3): - resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} + /@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.9): + resolution: {integrity: sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.3): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.3): - resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} + /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.9): + resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/core': 7.23.9 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4 lodash.debounce: 4.0.8 @@ -325,38 +333,38 @@ packages: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.4 + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.9 dev: true /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.9 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.9 dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -368,7 +376,7 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.9 dev: true /@babel/helper-plugin-utils@7.22.5: @@ -376,25 +384,25 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.3): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.9): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.3): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -404,21 +412,21 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.9 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.9 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.9 dev: true /@babel/helper-string-parser@7.23.4: @@ -431,8 +439,8 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option@7.22.15: - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} dev: true @@ -441,17 +449,17 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.22.15 - '@babel/types': 7.23.4 + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 dev: true - /@babel/helpers@7.23.4: - resolution: {integrity: sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==} + /@babel/helpers@7.23.9: + resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.4 - '@babel/types': 7.23.4 + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 transitivePeerDependencies: - supports-color dev: true @@ -465,856 +473,856 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser@7.23.4: - resolution: {integrity: sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==} + /@babel/parser@7.23.9: + resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.4 + '@babel/types': 7.23.9 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.3): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.3): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.3) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.9): + resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.9): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.9): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.3): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.9): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.3): + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.3): + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.9): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.9): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.9): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.3): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.9): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.9): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.3): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.9): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.3): - resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} + /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.3): + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.3): + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-classes@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==} + /@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.9): + resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.22.15 + '@babel/template': 7.23.9 dev: true - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.3): + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.3): + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==} + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.9): + resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/core': 7.23.9 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.3): + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.3): + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} + /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.3): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.9): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.3): + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.3): + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.3): + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.3 - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.9 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.3): + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.3): + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.3): + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.3): + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==} + /@babel/preset-env@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.3 - '@babel/core': 7.23.3 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.9 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.3) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.3) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.3) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.3) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.3) - babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.3) - babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.3) - babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.3) - core-js-compat: 3.33.3 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.9) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.9) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.23.9) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.9) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.9) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.23.9) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.9) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.9) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.9) + babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.9) + babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.23.9) + babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.9) + core-js-compat: 3.35.1 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.3): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.9): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.4 + '@babel/types': 7.23.9 esutils: 2.0.3 dev: true @@ -1322,42 +1330,42 @@ packages: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true - /@babel/runtime@7.23.4: - resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==} + /@babel/runtime@7.23.9: + resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.14.0 + regenerator-runtime: 0.14.1 dev: true - /@babel/template@7.22.15: - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + /@babel/template@7.23.9: + resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.4 - '@babel/parser': 7.23.4 - '@babel/types': 7.23.4 + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 dev: true - /@babel/traverse@7.23.4: - resolution: {integrity: sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==} + /@babel/traverse@7.23.9: + resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.4 - '@babel/generator': 7.23.4 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.4 - '@babel/types': 7.23.4 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.23.4: - resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==} + /@babel/types@7.23.9: + resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.23.4 @@ -1405,7 +1413,7 @@ packages: '@capacitor/core': 5.6.0 dev: false - /@capacitor/assets@3.0.4(@types/node@20.10.0)(typescript@5.0.2): + /@capacitor/assets@3.0.4(@types/node@20.11.16)(typescript@5.0.2): resolution: {integrity: sha512-9t/u2i9vSEWDfarzDJmQEgi07Tozyw2mKZYTkybb2Zkc8ufqR0S6ZzDBmWbsTtOTVwRr0uU9Rx3c8AVbA1xDtA==} engines: {node: '>=10.3.0'} hasBin: true @@ -1413,7 +1421,7 @@ packages: '@capacitor/cli': 5.4.2 '@ionic/utils-array': 2.1.6 '@ionic/utils-fs': 3.1.7 - '@trapezedev/project': 7.0.10(@types/node@20.10.0)(typescript@5.0.2) + '@trapezedev/project': 7.0.10(@types/node@20.11.16)(typescript@5.0.2) commander: 8.3.0 debug: 4.3.4 fs-extra: 10.1.0 @@ -1578,10 +1586,10 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@efstajas/svelte-stepper@0.1.5(svelte@4.0.5): - resolution: {integrity: sha512-4y8cQ1xMg775+f1nWtxQ+avauSBV2x+8MgvMrCiPY0CHhzNzWKL3uEjHnNUjuxfP4fAX19nkCWIj9eEL1E3mgw==} + /@efstajas/svelte-stepper@0.2.1(svelte@4.0.5): + resolution: {integrity: sha512-++1nVZ7P/ZpUTxsX5osSuM7VaxqOldWA1UmC9a2WN1QqZyvBd/IUHPc7KIJuQ+RfCMwpNg7mg+tDZwqyZUuMHA==} peerDependencies: - svelte: ^3.54.0 + svelte: ^4.0.0 dependencies: esm-env: 1.0.0 svelte: 4.0.5 @@ -1912,7 +1920,7 @@ packages: resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.22 dev: true /@jridgewell/sourcemap-codec@1.4.15: @@ -1924,6 +1932,13 @@ packages: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + /@jridgewell/trace-mapping@0.3.22: + resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: @@ -2089,7 +2104,7 @@ packages: prettier: 3.0.3 dev: true - /@rollup/plugin-babel@5.3.1(@babel/core@7.23.3)(rollup@2.79.1): + /@rollup/plugin-babel@5.3.1(@babel/core@7.23.9)(rollup@2.79.1): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -2100,7 +2115,7 @@ packages: '@types/babel__core': optional: true dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@babel/helper-module-imports': 7.22.15 '@rollup/pluginutils': 3.1.0(rollup@2.79.1) rollup: 2.79.1 @@ -2366,7 +2381,7 @@ packages: sirv: 2.0.3 svelte: 4.0.5 undici: 5.22.1 - vite: 4.5.2(@types/node@20.10.0) + vite: 4.5.2(@types/node@20.11.16) transitivePeerDependencies: - supports-color @@ -2381,7 +2396,7 @@ packages: '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.0.5)(vite@4.5.2) debug: 4.3.4 svelte: 4.0.5 - vite: 4.5.2(@types/node@20.10.0) + vite: 4.5.2(@types/node@20.11.16) transitivePeerDependencies: - supports-color @@ -2399,7 +2414,7 @@ packages: magic-string: 0.30.5 svelte: 4.0.5 svelte-hmr: 0.15.3(svelte@4.0.5) - vite: 4.5.2(@types/node@20.10.0) + vite: 4.5.2(@types/node@20.11.16) vitefu: 0.2.5(vite@4.5.2) transitivePeerDependencies: - supports-color @@ -2408,7 +2423,7 @@ packages: resolution: {integrity: sha512-k822Is3jGroqOTKF0gAFm80LmhFJWBAyZvNtyuXq6uQUzDDe2fj/gHwixP6VFzlpaWKLP7IuR609Xv8gwJCXyg==} dev: true - /@trapezedev/project@7.0.10(@types/node@20.10.0)(typescript@5.0.2): + /@trapezedev/project@7.0.10(@types/node@20.11.16)(typescript@5.0.2): resolution: {integrity: sha512-UjwsStjhHq/+D1bWREmFDoyKql+qFIgJX93zQLg7R6CyWZUdtlGP2hU3l7tsVRtjJBVXpVu5mj8tdwJJoABO3A==} dependencies: '@ionic/utils-fs': 3.1.7 @@ -2433,7 +2448,7 @@ packages: replace: 1.2.2 tempy: 1.0.1 tmp: 0.2.1 - ts-node: 10.9.2(@types/node@20.10.0)(typescript@5.0.2) + ts-node: 10.9.2(@types/node@20.11.16)(typescript@5.0.2) xcode: 3.0.1 xml-js: 1.6.11 xpath: 0.0.32 @@ -2497,8 +2512,8 @@ packages: resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} dev: true - /@types/node@20.10.0: - resolution: {integrity: sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==} + /@types/node@20.11.16: + resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==} dependencies: undici-types: 5.26.5 @@ -2519,7 +2534,7 @@ packages: /@types/resolve@1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 20.10.0 + '@types/node': 20.11.16 dev: true /@types/slice-ansi@4.0.0: @@ -2530,7 +2545,7 @@ packages: resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} dev: true - /@vite-pwa/sveltekit@0.2.7(@sveltejs/kit@1.20.4)(vite-plugin-pwa@0.17.2): + /@vite-pwa/sveltekit@0.2.7(@sveltejs/kit@1.20.4)(vite-plugin-pwa@0.17.5): resolution: {integrity: sha512-XyEHbXNmBBpfP2EWRsHqoPOFLF/WIuchN6OdtxFojTXV/sSJRWiULxXOzDuApQBfqdsHqlg9AJ9Su8vwjT27KA==} engines: {node: '>=16.14 || >=18'} peerDependencies: @@ -2538,7 +2553,7 @@ packages: vite-plugin-pwa: '>=0.16.5 <1' dependencies: '@sveltejs/kit': 1.20.4(svelte@4.0.5)(vite@4.5.2) - vite-plugin-pwa: 0.17.2(vite@4.5.2)(workbox-build@7.0.0)(workbox-window@7.0.0) + vite-plugin-pwa: 0.17.5(vite@4.5.2)(workbox-build@7.0.0)(workbox-window@7.0.0) dev: true /@vitest/expect@0.34.6: @@ -2617,6 +2632,12 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /add-stream@1.0.0: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} dev: true @@ -2813,8 +2834,8 @@ packages: postcss-value-parser: 4.2.0 dev: true - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + /available-typed-arrays@1.0.6: + resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==} engines: {node: '>= 0.4'} dev: true @@ -2837,38 +2858,38 @@ packages: resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} dev: true - /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.3): - resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} + /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.9): + resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.23.3 - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.23.3): - resolution: {integrity: sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==} + /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.23.9): + resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) - core-js-compat: 3.33.3 + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) + core-js-compat: 3.35.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.3): - resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} + /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.9): + resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) transitivePeerDependencies: - supports-color dev: true @@ -2962,6 +2983,17 @@ packages: update-browserslist-db: 1.0.13(browserslist@4.22.1) dev: true + /browserslist@4.22.3: + resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001582 + electron-to-chromium: 1.4.654 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.3) + dev: true + /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true @@ -2998,7 +3030,7 @@ packages: dependencies: function-bind: 1.1.2 get-intrinsic: 1.2.2 - set-function-length: 1.1.1 + set-function-length: 1.2.0 dev: true /callsites@3.1.0: @@ -3029,6 +3061,10 @@ packages: resolution: {integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==} dev: true + /caniuse-lite@1.0.30001582: + resolution: {integrity: sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==} + dev: true + /cardinal@2.1.1: resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} hasBin: true @@ -3461,10 +3497,10 @@ packages: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} - /core-js-compat@3.33.3: - resolution: {integrity: sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==} + /core-js-compat@3.35.1: + resolution: {integrity: sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==} dependencies: - browserslist: 4.22.1 + browserslist: 4.22.3 dev: true /core-util-is@1.0.3: @@ -3761,6 +3797,10 @@ packages: resolution: {integrity: sha512-V0ZhSu1BQZKfG0yNEL6Dadzik8E1vAzfpVOapdSiT9F6yapEJ3Bk+4tZ4SMPdWiUchCgnM/ByYtBzp5ntzDMIA==} dev: true + /electron-to-chromium@1.4.654: + resolution: {integrity: sha512-hjfFa+Vj4WGLRVTlCQa+IivBkpcp+boGxMQfusOC/me5Y5NfU4wX7wyw+K9p8Cw4tl0BVIZGH2n7y/jMc3w4pg==} + dev: true + /elementtree@0.1.7: resolution: {integrity: sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==} engines: {node: '>= 0.4.0'} @@ -3816,7 +3856,7 @@ packages: dependencies: array-buffer-byte-length: 1.0.0 arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 + available-typed-arrays: 1.0.6 call-bind: 1.0.5 es-set-tostringtag: 2.0.2 es-to-primitive: 1.2.1 @@ -3836,14 +3876,14 @@ packages: is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 is-string: 1.0.7 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 is-weakref: 1.0.2 object-inspect: 1.13.1 object-keys: 1.1.1 - object.assign: 4.1.4 + object.assign: 4.1.5 regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 + safe-array-concat: 1.1.0 + safe-regex-test: 1.0.2 string.prototype.trim: 1.2.8 string.prototype.trimend: 1.0.7 string.prototype.trimstart: 1.0.7 @@ -3852,7 +3892,7 @@ packages: typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 + which-typed-array: 1.1.14 dev: true /es-set-tostringtag@2.0.2: @@ -3860,7 +3900,7 @@ packages: engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.2 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 hasown: 2.0.0 dev: true @@ -4423,8 +4463,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 @@ -4610,7 +4650,7 @@ packages: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 dev: true /is-arrayish@0.2.1: @@ -4639,7 +4679,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-callable@1.2.7: @@ -4657,7 +4697,7 @@ packages: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-docker@2.2.1: @@ -4696,7 +4736,7 @@ packages: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-number@7.0.0: @@ -4739,7 +4779,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-regexp@1.0.0: @@ -4767,7 +4807,7 @@ packages: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-symbol@1.0.4: @@ -4791,11 +4831,11 @@ packages: text-extensions: 2.4.0 dev: true - /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.13 + which-typed-array: 1.1.14 dev: true /is-unicode-supported@2.0.0: @@ -4859,7 +4899,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.10.0 + '@types/node': 20.11.16 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -5408,6 +5448,10 @@ packages: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} dev: true + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true + /nodemon@2.0.22: resolution: {integrity: sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==} engines: {node: '>=8.10.0'} @@ -5594,8 +5638,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 @@ -6260,14 +6304,14 @@ packages: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} dev: true - /regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} dev: true /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.23.4 + '@babel/runtime': 7.23.9 dev: true /regexp-to-ast@0.5.0: @@ -6383,11 +6427,11 @@ packages: peerDependencies: rollup: ^2.0.0 dependencies: - '@babel/code-frame': 7.23.4 + '@babel/code-frame': 7.23.5 jest-worker: 26.6.2 rollup: 2.79.1 serialize-javascript: 4.0.0 - terser: 5.24.0 + terser: 5.27.0 dev: true /rollup@2.79.1: @@ -6417,8 +6461,8 @@ packages: dependencies: mri: 1.2.0 - /safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + /safe-array-concat@1.1.0: + resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} engines: {node: '>=0.4'} dependencies: call-bind: 1.0.5 @@ -6435,8 +6479,9 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + /safe-regex-test@1.0.2: + resolution: {integrity: sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 @@ -6547,11 +6592,12 @@ packages: /set-cookie-parser@2.6.0: resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - /set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + /set-function-length@1.2.0: + resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.1 + function-bind: 1.1.2 get-intrinsic: 1.2.2 gopd: 1.0.1 has-property-descriptors: 1.0.1 @@ -6966,7 +7012,7 @@ packages: engines: {node: '>= 0.4'} dev: true - /svelte-check@3.4.3(@babel/core@7.23.3)(postcss@8.4.31)(svelte@4.0.5): + /svelte-check@3.4.3(@babel/core@7.23.9)(postcss@8.4.31)(svelte@4.0.5): resolution: {integrity: sha512-O07soQFY3X0VDt+bcGc6D5naz0cLtjwnmNP9JsEBPVyMemFEqUhL2OdLqvkl5H/u8Jwm50EiAU4BPRn5iin/kg==} hasBin: true peerDependencies: @@ -6979,7 +7025,7 @@ packages: picocolors: 1.0.0 sade: 1.8.1 svelte: 4.0.5 - svelte-preprocess: 5.0.4(@babel/core@7.23.3)(postcss@8.4.31)(svelte@4.0.5)(typescript@5.2.2) + svelte-preprocess: 5.0.4(@babel/core@7.23.9)(postcss@8.4.31)(svelte@4.0.5)(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - '@babel/core' @@ -7001,7 +7047,7 @@ packages: dependencies: svelte: 4.0.5 - /svelte-preprocess@5.0.4(@babel/core@7.23.3)(postcss@8.4.31)(svelte@4.0.5)(typescript@5.0.2): + /svelte-preprocess@5.0.4(@babel/core@7.23.9)(postcss@8.4.31)(svelte@4.0.5)(typescript@5.0.2): resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} engines: {node: '>= 14.10.0'} requiresBuild: true @@ -7039,7 +7085,7 @@ packages: typescript: optional: true dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@types/pug': 2.0.9 detect-indent: 6.1.0 magic-string: 0.27.0 @@ -7050,7 +7096,7 @@ packages: typescript: 5.0.2 dev: true - /svelte-preprocess@5.0.4(@babel/core@7.23.3)(postcss@8.4.31)(svelte@4.0.5)(typescript@5.2.2): + /svelte-preprocess@5.0.4(@babel/core@7.23.9)(postcss@8.4.31)(svelte@4.0.5)(typescript@5.2.2): resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} engines: {node: '>= 14.10.0'} requiresBuild: true @@ -7088,7 +7134,7 @@ packages: typescript: optional: true dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.9 '@types/pug': 2.0.9 detect-indent: 6.1.0 magic-string: 0.27.0 @@ -7256,13 +7302,13 @@ packages: unique-string: 3.0.0 dev: true - /terser@5.24.0: - resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==} + /terser@5.27.0: + resolution: {integrity: sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==} engines: {node: '>=10'} hasBin: true dependencies: '@jridgewell/source-map': 0.3.5 - acorn: 8.11.2 + acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 dev: true @@ -7379,7 +7425,7 @@ packages: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /ts-node@10.9.2(@types/node@20.10.0)(typescript@5.0.2): + /ts-node@10.9.2(@types/node@20.11.16)(typescript@5.0.2): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -7398,7 +7444,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.10.0 + '@types/node': 20.11.16 acorn: 8.11.2 acorn-walk: 8.3.0 arg: 4.1.3 @@ -7473,7 +7519,7 @@ packages: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 dev: true /typed-array-byte-length@1.0.0: @@ -7483,18 +7529,18 @@ packages: call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 dev: true /typed-array-byte-offset@1.0.0: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 + available-typed-arrays: 1.0.6 call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 dev: true /typed-array-length@1.0.4: @@ -7502,7 +7548,7 @@ packages: dependencies: call-bind: 1.0.5 for-each: 0.3.3 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 dev: true /typescript@5.0.2: @@ -7628,6 +7674,17 @@ packages: picocolors: 1.0.0 dev: true + /update-browserslist-db@1.0.13(browserslist@4.22.3): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.3 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -7680,8 +7737,8 @@ packages: - terser dev: true - /vite-plugin-pwa@0.17.2(vite@4.5.2)(workbox-build@7.0.0)(workbox-window@7.0.0): - resolution: {integrity: sha512-aVH9sxcTDumiWYiNcLrFqu+FdL79I2cT5EhlVe5V6nGcC64yQNGT1jamMytwi+OdfXl4VYic0LtoJ6JHMkM3ZQ==} + /vite-plugin-pwa@0.17.5(vite@4.5.2)(workbox-build@7.0.0)(workbox-window@7.0.0): + resolution: {integrity: sha512-UxRNPiJBzh4tqU/vc8G2TxmrUTzT6BqvSzhszLk62uKsf+npXdvLxGDz9C675f4BJi6MbD2tPnJhi5txlMzxbQ==} engines: {node: '>=16.0.0'} peerDependencies: vite: ^3.1.0 || ^4.0.0 || ^5.0.0 @@ -7691,14 +7748,14 @@ packages: debug: 4.3.4 fast-glob: 3.3.2 pretty-bytes: 6.1.1 - vite: 4.5.2(@types/node@20.10.0) + vite: 4.5.2(@types/node@20.11.16) workbox-build: 7.0.0 workbox-window: 7.0.0 transitivePeerDependencies: - supports-color dev: true - /vite@4.5.2(@types/node@20.10.0): + /vite@4.5.2(@types/node@20.11.16): resolution: {integrity: sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -7726,7 +7783,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.10.0 + '@types/node': 20.11.16 esbuild: 0.18.20 postcss: 8.4.31 rollup: 3.29.4 @@ -7777,7 +7834,7 @@ packages: vite: optional: true dependencies: - vite: 4.5.2(@types/node@20.10.0) + vite: 4.5.2(@types/node@20.11.16) /vitest@0.34.6: resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} @@ -7881,15 +7938,15 @@ packages: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} dev: true - /which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + /which-typed-array@1.1.14: + resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 + available-typed-arrays: 1.0.6 call-bind: 1.0.5 for-each: 0.3.3 gopd: 1.0.1 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /which@2.0.2: @@ -7931,10 +7988,10 @@ packages: engines: {node: '>=16.0.0'} dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) - '@babel/core': 7.23.3 - '@babel/preset-env': 7.23.3(@babel/core@7.23.3) - '@babel/runtime': 7.23.4 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.3)(rollup@2.79.1) + '@babel/core': 7.23.9 + '@babel/preset-env': 7.23.9(@babel/core@7.23.9) + '@babel/runtime': 7.23.9 + '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.9)(rollup@2.79.1) '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) '@surma/rollup-plugin-off-main-thread': 2.2.3 diff --git a/src/lib/components/onBoarding/First.svelte b/src/lib/components/onBoarding/First.svelte new file mode 100644 index 00000000..a6b43e9d --- /dev/null +++ b/src/lib/components/onBoarding/First.svelte @@ -0,0 +1,12 @@ + + +
+ 1 + On-boarding + Next +
+ diff --git a/src/lib/components/onBoarding/Second.svelte b/src/lib/components/onBoarding/Second.svelte new file mode 100644 index 00000000..1634e9e9 --- /dev/null +++ b/src/lib/components/onBoarding/Second.svelte @@ -0,0 +1,11 @@ + + +
+ 2 + On-boarding + Next +
diff --git a/src/lib/components/onBoarding/Third.svelte b/src/lib/components/onBoarding/Third.svelte new file mode 100644 index 00000000..f35b105d --- /dev/null +++ b/src/lib/components/onBoarding/Third.svelte @@ -0,0 +1,14 @@ + + +
+ 3 + On-boarding + Complete on boarding +
diff --git a/src/lib/components/onBoarding/utils.ts b/src/lib/components/onBoarding/utils.ts new file mode 100644 index 00000000..39153a66 --- /dev/null +++ b/src/lib/components/onBoarding/utils.ts @@ -0,0 +1,8 @@ +import { goto } from "$app/navigation"; +import { getPreference, setPreference } from "$lib/preferences"; + +export const isAlreadyBoarded = getPreference("isBoarded", false); +export const completeOnBoarding = ()=>{ + setPreference('isBoarded', 'true', true) + goto("/home") +} \ No newline at end of file diff --git a/src/routes/(protected)/+layout.ts b/src/routes/(protected)/+layout.ts index 4c158564..ea80afc0 100644 --- a/src/routes/(protected)/+layout.ts +++ b/src/routes/(protected)/+layout.ts @@ -1,8 +1,11 @@ +import { isAlreadyBoarded } from '$lib/components/onBoarding/utils'; import { getKeypairPreference } from '$lib/preferences/keypair'; import { isAppLocked, lockApp } from '$lib/preferences/locked.js'; import { redirect } from '@sveltejs/kit'; export const load = async () => { + const boarded = await isAlreadyBoarded + if (!(Boolean(boarded))) throw redirect(303, '/on-boarding'); const keypair = await getKeypairPreference(); if (!Boolean(keypair)) throw redirect(303, '/login'); diff --git a/src/routes/on-boarding/+page.svelte b/src/routes/on-boarding/+page.svelte new file mode 100644 index 00000000..6c444230 --- /dev/null +++ b/src/routes/on-boarding/+page.svelte @@ -0,0 +1,23 @@ + + + From cc2b14dc40d97e9a31cac696e2a743aadc11d2b4 Mon Sep 17 00:00:00 2001 From: phoebus-84 Date: Fri, 2 Feb 2024 02:57:09 +0100 Subject: [PATCH 02/11] fix: fix flow in android --- src/lib/components/onBoarding/Third.svelte | 2 +- src/lib/components/onBoarding/utils.ts | 12 +++++++++--- src/routes/(protected)/+layout.ts | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/lib/components/onBoarding/Third.svelte b/src/lib/components/onBoarding/Third.svelte index f35b105d..13b89f53 100644 --- a/src/lib/components/onBoarding/Third.svelte +++ b/src/lib/components/onBoarding/Third.svelte @@ -10,5 +10,5 @@
3 On-boarding - Complete on boarding + completeOnBoarding()}>Complete on boarding
diff --git a/src/lib/components/onBoarding/utils.ts b/src/lib/components/onBoarding/utils.ts index 39153a66..0dcf4aaa 100644 --- a/src/lib/components/onBoarding/utils.ts +++ b/src/lib/components/onBoarding/utils.ts @@ -1,8 +1,14 @@ import { goto } from "$app/navigation"; import { getPreference, setPreference } from "$lib/preferences"; -export const isAlreadyBoarded = getPreference("isBoarded", false); -export const completeOnBoarding = ()=>{ - setPreference('isBoarded', 'true', true) +const ISBOARDED_KEY = 'isBoarded'; + +export const completeOnBoarding = async ()=>{ + await setPreference(ISBOARDED_KEY, 'true', false) goto("/home") +} +export async function isAlreadyBoarded(): Promise { + const isAlreadyBoardedString = await getPreference(ISBOARDED_KEY, false); + if (!isAlreadyBoardedString) return false; + return true } \ No newline at end of file diff --git a/src/routes/(protected)/+layout.ts b/src/routes/(protected)/+layout.ts index ea80afc0..b395bcec 100644 --- a/src/routes/(protected)/+layout.ts +++ b/src/routes/(protected)/+layout.ts @@ -4,7 +4,7 @@ import { isAppLocked, lockApp } from '$lib/preferences/locked.js'; import { redirect } from '@sveltejs/kit'; export const load = async () => { - const boarded = await isAlreadyBoarded + const boarded = await isAlreadyBoarded() if (!(Boolean(boarded))) throw redirect(303, '/on-boarding'); const keypair = await getKeypairPreference(); if (!Boolean(keypair)) throw redirect(303, '/login'); From 88c4fe4ce08c375fe268326e8c125451ed71a164 Mon Sep 17 00:00:00 2001 From: phoebus-84 <83974413+phoebus-84@users.noreply.github.com> Date: Mon, 19 Feb 2024 18:18:55 +0100 Subject: [PATCH 03/11] fix: use d-components var for fonts (#149) --- tailwind.config.cjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tailwind.config.cjs b/tailwind.config.cjs index 2c6fc199..606aae5f 100644 --- a/tailwind.config.cjs +++ b/tailwind.config.cjs @@ -6,8 +6,8 @@ export default { theme: { extend: { fontFamily: { - sans: ['"Gantari Variable"', 'sans-serif'], - icon: ['"Material Symbols Rounded"'] + sans: 'var(--sans-font-family)', + icon: 'var(--icon-font-family)' }, colors: { surface: 'var(--surface)', From afb563bdb5816acffa5e3640e3285bb91c6af626 Mon Sep 17 00:00:00 2001 From: phoebus-84 <83974413+phoebus-84@users.noreply.github.com> Date: Mon, 19 Feb 2024 18:19:21 +0100 Subject: [PATCH 04/11] feat: add settings and uniforme header (#148) --- src/lib/components/languageSwitcher.svelte | 21 -------- src/lib/components/molecules/Header.svelte | 51 +++++++++++++++++++ src/lib/components/molecules/Settings.svelte | 24 +++++++++ src/lib/i18n/index.ts | 6 +-- src/lib/tabs/TabPage.svelte | 11 +--- src/routes/+layout.svelte | 4 +- .../(auth)/login/(methods)/+layout.svelte | 11 ++-- .../[id]/credential-offer/+page.svelte | 13 +---- .../(protected)/request/[id]/+page.svelte | 13 ++--- 9 files changed, 89 insertions(+), 65 deletions(-) delete mode 100644 src/lib/components/languageSwitcher.svelte create mode 100644 src/lib/components/molecules/Header.svelte create mode 100644 src/lib/components/molecules/Settings.svelte diff --git a/src/lib/components/languageSwitcher.svelte b/src/lib/components/languageSwitcher.svelte deleted file mode 100644 index 5be00c0c..00000000 --- a/src/lib/components/languageSwitcher.svelte +++ /dev/null @@ -1,21 +0,0 @@ - - - - { - await setLanguagePreference(e.detail.value); - await goto(i18n.route($page.url.pathname), e.detail.value); - }} - class="w-fit" -> - {#each availableLanguageTags as tag} - {tag} - {/each} - diff --git a/src/lib/components/molecules/Header.svelte b/src/lib/components/molecules/Header.svelte new file mode 100644 index 00000000..45cc4cfa --- /dev/null +++ b/src/lib/components/molecules/Header.svelte @@ -0,0 +1,51 @@ + + + + + {#if backButton} + + window.history.back()} + on:keydown={() => window.history.back()} + aria-hidden + > + + + + {/if} + + + + + + + + + + + + + + + Settings + + + Close + + + + + + + diff --git a/src/lib/components/molecules/Settings.svelte b/src/lib/components/molecules/Settings.svelte new file mode 100644 index 00000000..07b7eabb --- /dev/null +++ b/src/lib/components/molecules/Settings.svelte @@ -0,0 +1,24 @@ + +
+
+ Language + { + await setLanguagePreference(e.detail.value); + await goto(i18n.route($page.url.pathname), e.detail.value); + }} + > + {#each availableLanguageTags as language} + {language} +
+ {/each} +
+
+
diff --git a/src/lib/i18n/index.ts b/src/lib/i18n/index.ts index 8ee4dac3..503266bc 100644 --- a/src/lib/i18n/index.ts +++ b/src/lib/i18n/index.ts @@ -18,11 +18,7 @@ export const i18n = createI18n(runtime, { // it: '/richiesta/[id]' // } }, - prefixDefaultLanguage: 'always', - textDirection: { - en: 'ltr', - it: 'ltr' - } + prefixDefaultLanguage: 'always' }); export type Langs = ReturnType; diff --git a/src/lib/tabs/TabPage.svelte b/src/lib/tabs/TabPage.svelte index a20345ef..d0664279 100644 --- a/src/lib/tabs/TabPage.svelte +++ b/src/lib/tabs/TabPage.svelte @@ -1,5 +1,5 @@ - - - - - - {title} - - +
{title}
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index b3c6da9d..2e377ad0 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -19,11 +19,11 @@ /> diff --git a/src/routes/[[lang]]/(auth)/login/(methods)/+layout.svelte b/src/routes/[[lang]]/(auth)/login/(methods)/+layout.svelte index 74fda0cd..2244838b 100644 --- a/src/routes/[[lang]]/(auth)/login/(methods)/+layout.svelte +++ b/src/routes/[[lang]]/(auth)/login/(methods)/+layout.svelte @@ -1,18 +1,13 @@ - - - - - - - +
{m.Login()}
diff --git a/src/routes/[[lang]]/(protected)/[id]/credential-offer/+page.svelte b/src/routes/[[lang]]/(protected)/[id]/credential-offer/+page.svelte index 0cb51f54..d7dd67f0 100644 --- a/src/routes/[[lang]]/(protected)/[id]/credential-offer/+page.svelte +++ b/src/routes/[[lang]]/(protected)/[id]/credential-offer/+page.svelte @@ -1,5 +1,4 @@ - - - -
- -

{m.Credential_offer()}

-
-
-
-
+
{m.Credential_offer()}
diff --git a/src/routes/[[lang]]/(protected)/request/[id]/+page.svelte b/src/routes/[[lang]]/(protected)/request/[id]/+page.svelte index d122c090..cb86bfa4 100644 --- a/src/routes/[[lang]]/(protected)/request/[id]/+page.svelte +++ b/src/routes/[[lang]]/(protected)/request/[id]/+page.svelte @@ -1,18 +1,13 @@ - - - -
-

{m.Wallet()}

-
-
-
-
+
+ {m.Wallet()} +
{JSON.stringify(data)} From ed3e91bd449ed088da12fe4bdee5f9cee53506c1 Mon Sep 17 00:00:00 2001 From: phoebus-84 Date: Tue, 20 Feb 2024 16:50:48 +0100 Subject: [PATCH 05/11] fix: allow a fake pubblic relying party to be called --- src/lib/components/organisms/scanner/tools.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/components/organisms/scanner/tools.ts b/src/lib/components/organisms/scanner/tools.ts index b2eb14b6..b7366d24 100644 --- a/src/lib/components/organisms/scanner/tools.ts +++ b/src/lib/components/organisms/scanner/tools.ts @@ -24,7 +24,7 @@ const credentialSchema = z.object({ export type Credential = z.infer; -const allowedDomains = ['http://192.168.1.36:3000/verify-credential', 'https://beta.signroom.io']; +const allowedDomains = ['http://oracle1.zenswarm.forkbomb.eu:3366/verify-credential', 'https://beta.signroom.io']; function isUrlAllowed(url: string): boolean { return allowedDomains.includes(url); From 5bcb7b762559334579c6e8918443e38c4a341114 Mon Sep 17 00:00:00 2001 From: phoebus-84 <83974413+phoebus-84@users.noreply.github.com> Date: Thu, 22 Feb 2024 14:03:11 +0100 Subject: [PATCH 06/11] feat: credentials empty state and store credentials (#158) - feat: wallet empty state - feat: save credentials in preferences - chore: remove fakeCredentials - fix: add new strings to messages closes: #153 --- messages/en.json | 5 +- src/lib/assets/empty.png | Bin 0 -> 9739 bytes src/lib/fakeCredentials.js | 54 -------------- src/lib/preferences/credentials.ts | 66 ++++++++++++++++++ src/lib/preferences/index.ts | 9 +++ src/lib/tabs/TabPage.svelte | 6 +- .../[id]/credential-offer/+page.svelte | 25 ++++++- .../[[lang]]/(protected)/wallet/+page.svelte | 52 ++++++++++---- 8 files changed, 142 insertions(+), 75 deletions(-) create mode 100644 src/lib/assets/empty.png delete mode 100644 src/lib/fakeCredentials.js create mode 100644 src/lib/preferences/credentials.ts diff --git a/messages/en.json b/messages/en.json index 1956708e..5bb51c51 100644 --- a/messages/en.json +++ b/messages/en.json @@ -40,5 +40,8 @@ "Credential_offer": "Credential offer", "Get_this_credential": "Get this credential", "Decline": "Decline", - "Scan": "Scan" + "Scan": "Scan", + "Nothing_in_your_wallet": "Nothing in your wallet", + "Start_getting_your_first_credential": "Start getting your first credential", + "See_issuance_services": "See issuance services" } diff --git a/src/lib/assets/empty.png b/src/lib/assets/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..97387dc66d7bde6637d92707fc6c638bbd3521bf GIT binary patch literal 9739 zcmV+mCiK~fP)jelFj3CjrY}q0Ol1V@QeA`5KPp|pu>Bq}XWaU~VjKpd->9ZOu zD^oR^+?vqPPz#U}-fHD2=^Pi7a6Jr>Y;)(%m1JaOuyg1CJt8V**oq6)HSuRk%SmC; zDPlC5E`5*1{O#mP6Sg!}m+yW3^}kgwUAoi)2a=8w&%rQZj2t~I;5JeCS#AH%% z59L9FZ<&&DBKOHnTX$TQY>4#ZnItd2C~n-ON#9piRx03gB%-yXa2(Jdteau$Lgwb? zN?CT0zjyzzmnBm9W8@kz`;Hkz!IH(VzVzU-ii!#Yjp-Z<)WUTWM5#X^Awdd+kdIBc zchsQRX-U2Vt~+?GWJB!Re~2hmUe8aS{3kz9Go^&Wp}-P~?f`=_J`h5dmzO8|;@iDo z(byOL1A++(Bb`A_Z5{dk$Df$fxmf`a$5n&UiLo5Da1H`Wxb6WH9v&|H(_dd6(XZd2 zm6cW1aj9UL8XKEPR{%c8!>`}q4@m}@326lr<_f4==@_6cWfua+eNs{qx_NSiVql<~ z()Ym8wBvExckJvkvWWnTId1&4N1rS&FPCF{Xd}!}*fFSR(n$!_A6Sk>FkXY?wEU*Y z4<)#`DVM_wVWc}@wW{6ZmRacsHyoh?ierEh?%KhKWJ8I*q@;vZDkJ^<28J){j40Ak zKth}-UD^5Xz5eu%qehJ~B_}6aFn*-4Pf(Y#6M%uuyN`Fxdv?md-u*s5eCX%{JxMl1 z2IS{_{Q^I}>86>1n0A2gM1NB|2K{k54!)9q#E22>Q%}7W@a4LF?WSy5Em(9po)avnlqSD=KuJou`9bRUNeo8>=Y+THh8)RO;`yC~lS%i&4v5e%bn zb@z@tQ+V`yy%@kMy5HCqpa&iIGsz0gu|+StjJjK{JV*MfuYOuP8NjW;B4J3tFORlX!>Vi z#^(3Oj~}n6#m&77r?GHiyoO{eDk_q_^7_{c!Kr+G$FI8`N`br<$mMST2pKSH%lh@} zPl9Df3rAzQUP7Or>cm(LYamg9Ja_J#?7E@1E%f#Yc)@5ic=U!;?2$!ihv9&6WMqnwlD^U&xqnm2cn*NDjx7UIOOG z#>bBZqM3krGW>c()7Z!_v+2$PXq8e)?z(ekcIu9e(+?fmb|E`En=Qa@LKcH1n%#JYj%Oh zjvh${59s&FOMjdD9Ed1-c*;VkrR!1jxwL>tHgF+XtQPrd{ekt2M7pj?Z+P6^$c8|Y z;hMI#T-)^HS>)#(zk&73;)#av_3{40d2(=3$BrIBVxprU{}uq}c(wVrP#CgU$)kUN zX;~t^4Gt+>CmaI|T|?J1=rb4Dc7qHUM6!>+{CSR-m+y+4ynN5TtUw}=aIw+X^S3@g zNW4X2e)H{m_`ffW5s{RmM&4Mq>BrR*5A51d2{0ukC84DwpkVT13SL9J#r+F}HWK37 zsWt2*`U>I1{vtSA%ZHD-D`NbVTT>yo=GmJHr*3$Z|8!5b@(k^_|!?{lq4$U{u3(=~WkhNBaX zCmPPkFc{eC>S|f!h}qA`SeF-j+kM2+Ds=NUZr)Dp5g0rA`uOnH5aYw@n%Xj8%^8kx zrB*9fdh^&(Bsyxy%@(sM+h{SLu^5eK>S}6^FM4iX35ZY@l}crW_!vJ5$w&k;ie$63 zjFf;ja9F~j3n}*NpEB!V-+d_u{XG1GmxGb(H3iZZNH!eE*}3_|5rHenQOrRXRR#C) zF=yc#cI{62)?($(SWMe^bn5k=6QM5$jCJNhb` z1)JeONF{%$cw$@^s=;&w*SVybS zJ^GT*7RhMit`bLwL;VMW`zS#L@}IAL8WAxhZe@d79lv+~@1(Z2j@T1$mz#b24}t<& zPn-=X*wkG7JsRMLE46Z5Y0}-Z;ygV(JS{*-_%-XzW^>ks3um`}^v*vr1gpqzG6^m# z!L64kPMpXy&EMajCns*bjE{xwmu`tfHdA^@GoU&dSWp?T-qi zJpu{0$xh?9-h^%Ji0O;^hK90Jr;CA*Rv;k(66!O@jvgHr8xz~#Xf~7?nlzbaqrU## zH=jLTUS4j&Je8KT8Gah}~9u!Cl`+!2uW+zUX7>h2f zTqbMaI9_2rbL`mBH-7l$t>ZvIzEB(8QG>z2fD6mGySsDXzFGy96)j;4=~~B%!s9M2 zf3rKniT(QFt^|n2{@)`n3?48z=I!s2H+mb4rke=`MH>)HWZ-?CD z87pTgF&lNIBgTwihQ-}@vq9UGX@S`B&3`|giLNT<9&f+>c8d@q9qXNqQ^dm0fw_>vMi7=Qb}{(AKr zn##(|>gp44{vSoj(2W`QMDG#jFv2jz|bVco90cuON2;7$z7ZLL%pNCP>xH3}m6hyM|9I!d9lxgD zAz>9S5C;dkA@|%pi?7tDa6TXb_1dOSa*nLWHHTso-WJ03^m@1!Q3Su+j9HIHzW)CD zUpb;U&=<&tXjNrF;bg#NU=mjTXzbW~KK1waS6~kvVa*|r9wnTZSHl{}&(`c(I4EMs z!DHzs;&BN}UjbS;>Pk{D6865x;deZU`QuBTCp`qgl|;*?So-ES3zVMT|8YbGl7gbW zfH7Z|zIXM|hK2?lUb**TEY78c@ zBO)T?Ne?_X>Z{~~zpB-`H*<0eDA_2S4rt*JKsc#hujjj?b(w`jH*)UWxy;d{M`bT9 z{p`hr&A#1d<%0qp`bwE$_0+I@Vj}ImzVR4Vz1eyM53V!DekXUTk9GWK5X{8ZYtl+ zRW-H!ol)*b3ukYw9w>SbHMO;5>$c?AB@#)?UJf0$aH2&McMN^!qvYWyvI_>Et*Ckf zh}WMuF|eKvJ9SY|AT*jrP0Hqvuyur4XbsUZ3n#V_2e7HBsVEBoK4nhdkAOSMx2d`niy;$vUR)n?DOc(?Ufu6v`me{ z78a8M6-o{lr;2@3F6&aFMH7S(u?A8;F7bgW!I48#H*foel8u7m3P82`-g}aUh>yk9 z-)$03jMcDO#Ax*Lzu|`IK@(>_@xH6lXA6zhDB1&slcz^eu~xZ5P~U2Sz$GrFZB7kW zVE=v5hY1*~6`pJGs;RA`t?4M*4P5;^X7mWMY4bLx>^_Z(wb5ia+gi20gm7rpa3Ac_ z(o)4+|J(4k$z*;UVl}#;vK_zyhA1pLO(>cN975BmCC&(}GBN0NXH_Z{zx|gO!|{Z( zv1}3~+dCg^__VsV;l7=__fiG2oxo1P=X-H4I(q|ly+Xy-SyfvfA0JXzQ*353Q1PkLM>ZsXat0Sr;UK7E8X6iHe?Q+wx`2|Rvp`84;fx7y#DK6+(!c+Jer@fdgJ}V)ut6O& z>-O6wrye*=Xq_a5EhbNz(6ZJK7uXs=RI9D6wvsYbAdA|cUIA|d-~8U@G0!}G=ufa_9Q zRaK>fr!3-Yyi19zQSO|K`R36W@QO1U@ zBwE1n@#FZ{kyuJ$8(<{lm8@f5*-sBAo$|7>T@b&SfNX!*BaSca!o(bq4qGwn-hcar z)DJ$}x&~&lS#Z%*gyM?8oD(hXZU$O2v1lSE_v9b6fXi7&e7>&$Cy#H}e*KkJtHm6g zm9#}TB3QYSk`g@}ngx&C_Uh1^?#%G@AMh@rxFVd*!d(qlN(o%aI`$=KwHMBKdU~2c z`M0!wtz`k~k|j%!a5z2TdJ4_SwC!7sM%^AlaYbM(LX+MXaWU!boGAfBSz-DanM`KJ zqGhXXnF+ac#W%K8z|KMjI2sKGgQhTR_ls6y)ewry0%vQg>RyDiFU#R9=97B8-dtT> zZNU`+VhyE;7Q$hY4i5mDK_etDo76Ss=Tr*vc3<+bDY_TVzAPs!tRI;+ZN4%jB!slK zZiqkhG!YnShP<4SWm#=h)OE#}_@osm6zzetFUv`oFg^;YB9Ta}*g>K7>z8XHWW{(+ zqtO`Oe(jlkdVS-X;lpTMGsTtR?8|b{D9L23dgsm!{C)yrFG^dqNjSmEaRUbqL`Ph= zX4U&2Mn(*-2o4G$6c?fDW0H1f;q1$Da4Z<~dVaeou@_})T&dN$6$pp91bueK!E?us z?0q>ZGJ*;yHt-R)r=n6_5Q1J!5bd|RVtTaJ5t3rwYf7OMG-&87<+1=fp>!^j}5gi?E0mV`a z>{VBtD=u%+)UF^DJm_vYm%`bXoZhuWcaoNMT?%Jzq-5dDX9dDp&``B?PP_Jp!{86H=3H=a zu&Jr3NjD%Yq;g8)1dX$+me@GRnM;@`E(K>Xm0{!8@bGZ1Ex`oQkqsHGX=!Pe(9lrh zzFnIyWTqW>X?*-mG$BqwL7F!&ad(m9UIJEZZGO4)I=aWV6?b#=_V(5-|KOGV7L#r> zO^8!aG{^Jv=G}iM-p|R&!J9To*U>G930k?jx;m3yuW$PDvv>Z332|!WD4ZRbgVbqt zd7yKMPqpb&c8G9-%!zB~FfeS&IezHuU*{)G)oC?p#L0kF70$i~8pTCmib${5oQ0Ht z6>``3ROc<60BcH03csSj)zwu4DqX|r{KJc#Z5a>leHKJZ-6#a$%5{ypq1@BclfxVw z=?V)cLRiLQs;#ZndwF>^mKCMvH>qn@5+?#y70{Fbg$NuEb#>?XZp+|S{-L#kh-)I8 z0PE7FOU*zyJ=||Rad7?T{elDYoh6?0<&)ktB|y=PjT<(u`Q*cYXM?_B-m_;_Lk1lr>)es960a~ow{t%84D+hD46Io zff?1U`sD5BheSm+9QnghODeps1+G(%jQBwJJC3*vn%^ zk0gB^8OO5-1%(KsNmqxvoeJ^WWxkmdl;jX$yxC*8P}6Lql~Sk2WrNc;@5TS!uMVC52M}J59gx`WKV2k4aKe z5S;uOvYKIv`HscoL>z8KE-k6=Q4$dDn} z*Rlzd;-#n4U+T*V@tEi+a?jnfiK`2HfKWIsFzJ2zbne;e>T3RRTPwXqbS2^VQ~|bS z7%^gm9wgGn;=IF!jMcbSY%bH65D`9@47(w^VD~S{^MBp&!QT@T#-*Zbft&I9`gjov z=K;3b_;JmOGTfRfCMM>xRVIXVooLbmU^jz+curAYU$0v7*6L>zE*^_FZQf4$3iOTY zbp~DOnzVyEixmom5nN~nQUtO^OPAl>FKqA~a6g2VDS~k|_?B(kGR$Uc1j9&LW*ukU zH?1!M3m|6Pnt1Zbzf4W^@$soEFE2+AkGtIYT~0U=6DLk&g+1rIzgW8`Ij`WTRqWF;g{pHo(LR-x1BiK78ywf_D5(|_Lh*+Uo3=4P@itHv1B!^1-t z5D;MS^z<}VRaIf~-w1>=SS%Jj$8oy++>A1?eobHnwMKnoL*?016&K3$3xD3c=DXAR zncpi_szdPnzM!ChVtr%P_qo{_8_gzTn#E!)v@)bIe9$08)b$Zc_Oxqlgm4y) zz~>VR`$6WRtuJddwY9^B4a421u9$~oNjJgT>|2_Fbow1z*AL4FOcF4FQn2_^P;%v2Sx4&&3$x1bTp%QW9*~p3eF@x3(Mqc1clRF{c57llSWt+Y zQWYs>Wy+?eCXesdC8x?1ig1QuRZ=M%f$zoYp4!@a>ZqFv6+FiV#%ZS%Uq^AZr0n99mZ76}N46z3)Jbs!_&ppYd2QnElUEGCf4n;Sk# z!2QHnvE_VpTj7SCGW}1ZW+&bMh^wnxq(sUp#a%^z+qI|BWHR?X#mbIgF`JGYO<8qk zd*U}lw-OEq6K-g*di82Km|Az3y}fQ2m-Lv*)9*QA$AF7iFnVOnp6v7kn|A;D!zqZ< zG+M2;2^1(jBsR@J9PU~_Tf8PYIXV2bhslTmWfx;!{&l#|04Z^0y%c6l)@(NOR*^Kj z|BTW`@ddY)h400}b(O>C%7A3@xEpWsj2k*Kq+jUZ;CKGLaGzh$KxJS^Bv?lmPdBAk zIxDFXuXVhy;m41DL7-&Sy2vDv*WaYoXBK?5Q~eSQ5y zm0rHV9-dy2M-KmG7 zxgM^s!7d1gi9q-wY+zuZ0^BLD(CdcBjU7KL8Pqwua4j)b)9bYb#f9lh&g37;0HQUC zL<3R82!q{%n^j)zVs;}g`JII8i7u+>z9Jc=MMXstu!_78hL#g!3cLk(hXLY9z&gr6 zaFGKcWk^6FR>UlhRY+~%XQAsVd+g~~#ze)8nBeBFydGmm7Z=ya)5Rs{f7`k1oJ1-M zl1QY%;`edZGzV6g%)RRl_53+wBH{Yi!}Z6D&^w}uEpTw)Mvt+vvDkb_8`eMQ{Pd}b z*3DaY^tvk}#%cv8Pb}ZNZTS)0`4t8#s*gsD)v%$buvsPPMO^YDir>X%J0u2IY={H| z_mn3aSYz}qc=Bm98V0UC1MVpcgp(rKK>cLI7!rjWypI+V2*&1O!e;oa0`R~1u0eSN(kPSnC~Ie7is zH9&f76bT7&30OH7`0+hodE?8cS-JAX?K^go-oPaaK`|5oDsWC z_cF=40}K#QBE*eitVkd>#h4PSB+x}=ATC6ul?AKFf>lJaNkPC7F9riC5maDNb>-bu zIOMUhqr6AOPZ^?AdZ>az`bVt&X8F%XvmD%0g~~VKC@4tX9t+o_BMM0eR!#=Nr4oKv?~lLSvF=3n$&op^`J^Xd zC0t|DoZBnvtIuy<`qD$IK@?GADH^<_g##1W*DQ)SI2f@GaPHi>60ne{m@<&im4N7l z)k7^OqJ>032V7J<6w8=zWckYSz-*`4zgYCMkR+C-C za3XB29Jn5;TW8LVojhayh95R=>9JVOY}Th2=O2ExtSAG^vUEVUCYaH+;DhU7hB68H z!`_P3>=7+vL`-*JYYh~1@G)3LX+uK;3O5oUo}{|EnvW?l_lUsDSzlj|xknkMIpCUO zih~tW8n)vPV@HWhCSxCbbaBF{F}K_Y=LU-$!d+rDMpqq~1zy9X6Wm^qtZ#xy_-!&i%l!U&=0O5oUP5p~d2#ov9)mMy%B z3KLvQOo-_Y?8lFmQgl^?GzXFo&*xXQVC9Y&KME?VZ0Lx1-*FH-y10R#3bCWBn|sK2 z>(=bkX-!In!Yx>)aE*lDRuz6-M1;H2UC2M;p}pqV(PA+boIL*P1De{iW#Am)Iyg*t zo5@w;H$;!9l(rChTH+VO1hO8KGIe?3;WWR%fh*nIy&of82;2^M*bOn7@-sy%fo!|M zqG1iB78S^a3m4+ww;nroj8L+53v92csPgg)mH9i(;RU~x1zdS?Ns9?Z9hi*KRpl)n zDyrg#AmKpN!dof)j_7{M3iHw%@^g-r3oa@Wmj8GlByVknf&g~JqW2QR!h%P*+oUe+U|ANBt;t62r|zSJ z!?ymEX*QjF?h$j1nC3uW$^-L`wrLJ-(F=quahyNHsW#x$pk7d`#jP#Bh zJ~G70f#_3LTfh6~A5LTMRd}r_BqT&185wEB4hJ@tyIrt{L=#`&46~GK%JihT8MFWV z)0S<&sIDa;jy+URfjnQDT?Dh376Nh|`0KbH2+Oj}lx%$uwyr4=2EI^Td+1HGvzThs3Q3W| zec?x-WTRkO-RH-IsIr1(lz^4QGDIXGmdaVN8yDQiZMRJjU$(@do&Dpz2{iGTpHbq9 zg8#g?_BoY@-(wp$Z@(hxa19vl!b+^Bl&2q_`2@O;s6gU=2QY)7Z!P-QlxP&~1!Hq7 z-nZJ^c4{njX%nGqg`irRU{=9B3N(wKz5m@)1(|=VtvUZWXSJMbeLfOx@}%)(+SEy! zqWt5}KJ&SPlMNgvJnh0Ghii?Y};(*(}eLEKx7G{D3qX7gE0}xM-&3V9W)UqtAh3B;JnhsPa zeib&ZS?hz<{S7iCenjE+xX6FB+#&P;?iNfVPQG3JOQU Z{{u6%ld}?~^(z1X002ovPDHLkV1nm-?0^6O literal 0 HcmV?d00001 diff --git a/src/lib/fakeCredentials.js b/src/lib/fakeCredentials.js deleted file mode 100644 index cded349d..00000000 --- a/src/lib/fakeCredentials.js +++ /dev/null @@ -1,54 +0,0 @@ -function getRandomIssuer() { - const issuers = [ - 'Didroom', - 'Forkbomb BV', - 'Italian Government', - 'Random Authority A', - 'Random Authority B' - ]; - return issuers[Math.floor(Math.random() * issuers.length)]; -} - -function getRandomExpirationDate() { - const currentDate = new Date(); - const futureDate = new Date( - currentDate.getFullYear() + Math.floor(Math.random() * 5), - Math.floor(Math.random() * 12), - Math.floor(Math.random() * 28) + 1 - ); - - const year = futureDate.getFullYear(); - const month = (futureDate.getMonth() + 1).toString().padStart(2, '0'); - const day = futureDate.getDate().toString().padStart(2, '0'); - - return `${year}-${day}-${month}`; -} - -const credentialsInfo = [ - { name: 'Over 13', description: 'This credential proves that you are over 13 years old' }, - { name: 'Over 18', description: 'This credential proves that you are over 18 years old' }, - { - name: 'Age range 18-65', - description: 'This credential proves that you are in a specific age range (18-65)' - }, - { name: 'Residency proof', description: 'This credential proves your residency status' }, - { name: 'Address proof', description: 'This credential serves as proof of your address' }, - { name: 'Email proof', description: 'This credential proves the validity of your email address' }, - { name: 'Diploma', description: 'This credential proves that you have earned a diploma' }, - { - name: 'Driving license', - description: 'This credential serves as proof of your driving license' - }, - { name: 'Vaccination', description: 'This credential proves that you have been vaccinated' }, - { name: 'Proof of employment', description: 'This credential proves your employment status' }, - { name: 'Proof of humanity', description: 'This credential proves that you are alive' } -]; - -const fakeCredentials = credentialsInfo.map((credential) => ({ - ...credential, - issuer: getRandomIssuer(), - expirationDate: getRandomExpirationDate(), - verified: Boolean(Math.random() < 0.6) // 80% chance of being verified -})); - -export default fakeCredentials; diff --git a/src/lib/preferences/credentials.ts b/src/lib/preferences/credentials.ts new file mode 100644 index 00000000..9168fdf7 --- /dev/null +++ b/src/lib/preferences/credentials.ts @@ -0,0 +1,66 @@ +import TEE from '$lib/nativeHooks/TEEPlugin'; +import { getStructuredPreferences, setStructuredPreferences } from '.'; + +// + +export const CREDENTIALS_PREFERENCES_KEY = 'credentials'; + +export type Credential = { + id: string; + issuer: string; + name: string; + description: string; + expirationDate: string; + verified: boolean; +}; + +const generateId = (credentials?: Credential[]) => { + let id = Math.random().toString(36).substring(7); + if (!credentials) return id; + const ids = credentials.map((c) => c.id); + while (ids.includes(id)) { + id = Math.random().toString(36).substring(7); + } + return id; +}; + +export async function setCredentialPreference(credential: Omit) { + await TEE.generateKey(); + + const credentials = await getCredentialsPreference(); + const c = { + ...credential, + id: generateId(credentials) + }; + if (credentials) { + credentials.push(c); + await setStructuredPreferences(CREDENTIALS_PREFERENCES_KEY, credentials, true); + return; + } + + await setStructuredPreferences(CREDENTIALS_PREFERENCES_KEY, [c], true); +} + +export async function getCredentialsPreference(): Promise { + return await getStructuredPreferences(CREDENTIALS_PREFERENCES_KEY, true); +} + +export async function removeCredentialPreference(id: string) { + const credentials = await getCredentialsPreference(); + if (!credentials) return; + const newCredentials = credentials.filter((credential) => credential.id !== id); + await setStructuredPreferences(CREDENTIALS_PREFERENCES_KEY, newCredentials, true); +} + +export async function updateCredentialPreference(credential: Credential) { + const credentials = await getCredentialsPreference(); + if (!credentials) return; + const newCredentials = credentials.map((c) => (c.id === credential.id ? credential : c)); + await setStructuredPreferences(CREDENTIALS_PREFERENCES_KEY, newCredentials, true); +} + +export async function getCredentialPreference(id: string): Promise { + const credentials = await getCredentialsPreference(); + if (!credentials) return; + return credentials.find((credential) => credential.id === id); +} diff --git a/src/lib/preferences/index.ts b/src/lib/preferences/index.ts index a1ec67a5..0de665d0 100644 --- a/src/lib/preferences/index.ts +++ b/src/lib/preferences/index.ts @@ -46,3 +46,12 @@ export const getStructuredPreferences = async ( } return undefined; }; + +export const setStructuredPreferences = async ( + key: string, + value: T, + confidential: boolean = false +) => { + await setPreference(key, JSON.stringify(value), confidential); +} + diff --git a/src/lib/tabs/TabPage.svelte b/src/lib/tabs/TabPage.svelte index d0664279..461b22e6 100644 --- a/src/lib/tabs/TabPage.svelte +++ b/src/lib/tabs/TabPage.svelte @@ -9,9 +9,7 @@
{title}
- -
- -
+ +
diff --git a/src/routes/[[lang]]/(protected)/[id]/credential-offer/+page.svelte b/src/routes/[[lang]]/(protected)/[id]/credential-offer/+page.svelte index d7dd67f0..2046684b 100644 --- a/src/routes/[[lang]]/(protected)/[id]/credential-offer/+page.svelte +++ b/src/routes/[[lang]]/(protected)/[id]/credential-offer/+page.svelte @@ -8,15 +8,38 @@ import { LottiePlayer } from '@lottiefiles/svelte-lottie-player'; import { m } from '$lib/i18n'; import Header from '$lib/components/molecules/Header.svelte'; + import { setCredentialPreference } from '$lib/preferences/credentials'; export let data: any; const { credential } = data; let isModalOpen: boolean = false; let isCredentialVerified: boolean = false; + function getRandomExpirationDate() { + const currentDate = new Date(); + const futureDate = new Date( + currentDate.getFullYear() + Math.floor(Math.random() * 5), + Math.floor(Math.random() * 12), + Math.floor(Math.random() * 28) + 1 + ); + + const year = futureDate.getFullYear(); + const month = (futureDate.getMonth() + 1).toString().padStart(2, '0'); + const day = futureDate.getDate().toString().padStart(2, '0'); + + return `${year}-${day}-${month}`; + } + const getCredential = () => { isModalOpen = true; setTimeout(() => { isCredentialVerified = true; + setCredentialPreference({ + name: credential.name, + issuer: credential.issuer, + description: credential.description, + verified: Boolean(Math.random() < 0.6), // 80% chance of being verified + expirationDate: getRandomExpirationDate() + }); setTimeout(() => { isModalOpen = false; goto('/home'); @@ -88,4 +111,4 @@
-
+ \ No newline at end of file diff --git a/src/routes/[[lang]]/(protected)/wallet/+page.svelte b/src/routes/[[lang]]/(protected)/wallet/+page.svelte index b1a62a7a..16e1d9c6 100644 --- a/src/routes/[[lang]]/(protected)/wallet/+page.svelte +++ b/src/routes/[[lang]]/(protected)/wallet/+page.svelte @@ -1,8 +1,9 @@ @@ -10,16 +11,37 @@

{m.My_issued_credentials()}

{m.Explore_and_manage_your_verified_credentials()}

-
- {#each fakeCredentials as credential} - - {/each} -
- + {#await getCredentialsPreference()} +
+ +
+ {:then credentials} + {#if !credentials} +
+ empty + {m.Nothing_in_your_wallet()} + {m.Start_getting_your_first_credential()} + + {m.See_issuance_services()} + +
+ {:else} +
+ {#each credentials as credential} + + {/each} +
+ {/if} + {:catch error} +
+ Error + {error.message} +
+ {/await}
From 9a533301fd2529fbb71e24e12c73cf2ff6f4e7d5 Mon Sep 17 00:00:00 2001 From: phoebus-84 <83974413+phoebus-84@users.noreply.github.com> Date: Thu, 22 Feb 2024 14:04:23 +0100 Subject: [PATCH 07/11] fix: json schema generation (#150) Co-authored-by: Puria Nafisi Azizi --- messages/en.json | 1 + src/lib/JSONSchemaForms/JSONSchemaForm.svelte | 11 ++++----- src/lib/JSONSchemaForms/utils.ts | 8 ++++--- src/lib/forms/form.svelte | 3 ++- .../[id]/credential-offer/+page.svelte | 24 ++++++++++++------- 5 files changed, 28 insertions(+), 19 deletions(-) diff --git a/messages/en.json b/messages/en.json index 5bb51c51..f26f9873 100644 --- a/messages/en.json +++ b/messages/en.json @@ -41,6 +41,7 @@ "Get_this_credential": "Get this credential", "Decline": "Decline", "Scan": "Scan", + "We_are_generating_this_credential": "We are generating this credential", "Nothing_in_your_wallet": "Nothing in your wallet", "Start_getting_your_first_credential": "Start getting your first credential", "See_issuance_services": "See issuance services" diff --git a/src/lib/JSONSchemaForms/JSONSchemaForm.svelte b/src/lib/JSONSchemaForms/JSONSchemaForm.svelte index 4cde3749..d7f52e54 100644 --- a/src/lib/JSONSchemaForms/JSONSchemaForm.svelte +++ b/src/lib/JSONSchemaForms/JSONSchemaForm.svelte @@ -6,11 +6,12 @@ import { Form, FormError } from '$lib/forms'; import ErrorDisplay from '$lib/components/errorDisplay.svelte'; import { objectSchemaToSuperformsValidators } from './errors'; - import { m } from '$lib/i18n'; + import { unlockApp } from '$lib/preferences/locked'; // export let schema: ObjectSchema; + export let id: string; export let onSubmit: (data: Record) => Promise | void = () => {}; // @@ -24,7 +25,9 @@ validators: objectSchemaToSuperformsValidators(schema), onUpdate: async ({ form }) => { try { + await unlockApp(); await onSubmit(form.data); + } catch (e) { setError(form, parseFormException(e)); } @@ -40,7 +43,7 @@ } -
+
{#each Object.entries(schema.properties) as [fieldName, field]} {@const required = schema.required?.includes(fieldName)} @@ -50,9 +53,5 @@ - -
- {m.Submit()} -
diff --git a/src/lib/JSONSchemaForms/utils.ts b/src/lib/JSONSchemaForms/utils.ts index a0e8c9dd..7af80327 100644 --- a/src/lib/JSONSchemaForms/utils.ts +++ b/src/lib/JSONSchemaForms/utils.ts @@ -1,12 +1,14 @@ -import Ajv, { type Options } from 'ajv'; +import { type Options } from 'ajv'; import addFormats from 'ajv-formats'; import type { SuperValidated, ZodValidation } from 'sveltekit-superforms'; import type z from 'zod'; +import Ajv2020 from 'ajv/dist/2020'; + // -export function createAjv(options: Options = {}): Ajv { - const ajv = new Ajv(options); +export function createAjv(options: Options = {}): Ajv2020 { + const ajv = new Ajv2020(options); addFormats(ajv); return ajv; } diff --git a/src/lib/forms/form.svelte b/src/lib/forms/form.svelte index 64a5f8f4..d726e394 100644 --- a/src/lib/forms/form.svelte +++ b/src/lib/forms/form.svelte @@ -52,11 +52,12 @@ -
+ diff --git a/src/routes/[[lang]]/(protected)/[id]/credential-offer/+page.svelte b/src/routes/[[lang]]/(protected)/[id]/credential-offer/+page.svelte index 2046684b..f60a37cf 100644 --- a/src/routes/[[lang]]/(protected)/[id]/credential-offer/+page.svelte +++ b/src/routes/[[lang]]/(protected)/[id]/credential-offer/+page.svelte @@ -46,6 +46,11 @@ }, 3000); }, 5000); }; + + const cleanSchema = () => { + const schema = credential.expand.templates[0].schema; + schema; + };
{m.Credential_offer()}
@@ -69,15 +74,16 @@
- - {}} /> - - - - -
{credential.expand.templates[0].schema}
+
+ + + + + + +
- {m.Get_this_credential()} {m.Decline()} @@ -88,7 +94,7 @@
{#if !isCredentialVerified} - We are generating this credential + {m.We_are_generating_this_credential()} Date: Thu, 22 Feb 2024 14:05:49 +0100 Subject: [PATCH 08/11] fix: modify ios camera permission rationale (#159) fix: #152 --- ios/App/App/Info.plist | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ios/App/App/Info.plist b/ios/App/App/Info.plist index eb838579..9cf9a589 100644 --- a/ios/App/App/Info.plist +++ b/ios/App/App/Info.plist @@ -4,8 +4,8 @@ NSFaceIDUsageDescription For a secure log in. - NSCameraUsageDescription - The app enables the scanning of various barcodes. + NSCameraUsageDescription + The app needs camera usage for scanning credentials qrcode. CFBundleDevelopmentRegion en CFBundleDisplayName From 3a8cce7c1f94742941cc5a9e2b8be65057156748 Mon Sep 17 00:00:00 2001 From: phoebus-84 <83974413+phoebus-84@users.noreply.github.com> Date: Thu, 22 Feb 2024 14:07:06 +0100 Subject: [PATCH 09/11] feat: no camera permission granted state (#157) close: #151 --------- Co-authored-by: Puria Nafisi Azizi --- messages/en.json | 2 + src/lib/assets/camera.png | Bin 0 -> 1317 bytes .../organisms/scanner/Scanner.svelte | 63 +++++++++++++----- src/routes/+layout.svelte | 4 +- 4 files changed, 49 insertions(+), 20 deletions(-) create mode 100644 src/lib/assets/camera.png diff --git a/messages/en.json b/messages/en.json index f26f9873..fb63a3d5 100644 --- a/messages/en.json +++ b/messages/en.json @@ -41,6 +41,8 @@ "Get_this_credential": "Get this credential", "Decline": "Decline", "Scan": "Scan", + "No_camera_access": "No camera access", + "To_scan_QR_codes_allow_us_to_use_your_camera_in_Settings": "o scan QR codes allow us to use your camera in Settings > Privacy > Camera", "We_are_generating_this_credential": "We are generating this credential", "Nothing_in_your_wallet": "Nothing in your wallet", "Start_getting_your_first_credential": "Start getting your first credential", diff --git a/src/lib/assets/camera.png b/src/lib/assets/camera.png new file mode 100644 index 0000000000000000000000000000000000000000..91e6495072e4297539ace2b7dc437bb617ad6e94 GIT binary patch literal 1317 zcmV+=1={+FP)_Z43 zBI1kR&iA}?FOe9gVe@aFK0ZZc-V-r|B7Y$_4LtUaoPmLghf5ldk+HZSJx=$ZW&N8^ z|4T$#J2uG)oIo!W`4|~aR*-%Fb#`(6z)ZxSkBe>kqd?8Am|q%#h#?(wluguAcM(S9 ztTs5k3?UAMA?;egg;}G3o|itDa#P?B)GP(%=%3q(*Gt*J%4D@~mZhg zVgzatBT$PNffXbIIk=Ix<_z9nQp7NrSd4y{J16;(La`NI#K{rzhAVyhk9;EOY2_js zLxKT^2j66a552Awlz(Qg`-yUW5j^5PG7(uk`sa7PQ8-yQF!q6e>?NlYE zx`>8%K@4_E0isZT5&2QC7?5SQwWqnNV<7=A$O5-w3OLXHZr11b=W(Ejnus3$)U3)M zs`LAsx7gzGpoGeF=JjuX_sbkgv|8cNK7Y|G9(s>W2qSKZyat*F$WQ@hjLb|ux+wA@ za$Ss4Imb=dB6)m1BY_~IBGQrRp=M#xe^HMA3j`4pk*CqYv#&Zx0DFa(lG9pDL~kH+ zP`(U2t-YW%iipVHI>&5C2>TX&skKo=L~qOhi4mL(AQC%@i0Bjp-9@0Cp)&{|BBE4U zcUM-%GU;G+5w-KyMJT6q^v@SvMDogiB5f`a839Z5L!^v=hmLQF&Qy}(-4==$(--km zB>r@^KIy_JaxBq5U;OC|`xz3(H}DXViEoMCCtcfPT>SGF0ZYWXRwvUkc!8!Q5y$dw zoMxpN*Q7%L5fK~k+ei>6bS^Eki{s6cB&W2{p_Npe$Zfef65{CBB8SkSzGSeymy|Uc zi1qhLir93oUDeHz0q!$|U}=eL+Gp$@cPF4irri;;jhfQA^BUjzP}Q^!eTvgNCq&WM zfN1)0HSKQYxJ?M7Qj5d&Fh{-O#6FpVEJQk$Nwf2(Ax_0$iw9p!fPbIKVRCR zd1Zp?eqy-Xg4U=qW{XbQYWzz3(vB+1jhhs+ozV1tMBiYPS{=4NZdTNqzBj3^@SUcc zo0bUoNzBvM6347;c_d!DD)FwVz6Il2%;RE67COKLm$ng(HHY(78rISVg-ll@Si^h) z=eJ3`Br>98`dGlzoSlK?lDz2yB<$?T@Yp*{S8;OpdKYy4KlMRX1Zoi@P>UFWTEqyj zh(pvYjW@Wk_DZH^?^B_{B9?6m1Jo>zG5y)SINa?i-Rp7R;Qnk2ABy{fh#@nuXrboT zxRrm}jA!1NtNkY)8>V(NAB6RB23y}f&Ccc?dmq{qn0B)}to!=$ bZY=)|cud03h9bu=00000NkvXXu0mjfDAs9N literal 0 HcmV?d00001 diff --git a/src/lib/components/organisms/scanner/Scanner.svelte b/src/lib/components/organisms/scanner/Scanner.svelte index 7574abb9..26d6b047 100644 --- a/src/lib/components/organisms/scanner/Scanner.svelte +++ b/src/lib/components/organisms/scanner/Scanner.svelte @@ -1,8 +1,9 @@
{m.QR_SCAN()} - + + +
- -
- -

{m.Scan_QR_to_verify_or_obtain_credentials_()}

-
-

{m.Make_sure_to_scan_the_full_QR_surface_()}

-
+ {#await awaitPermissions()} +
+ +
+ {:then permissionsGranted} + {#if !permissionsGranted} +
+ No camera permissions allowed + +

{m.No_camera_access()}

+
+ + {m.To_scan_QR_codes_allow_us_to_use_your_camera_in_Settings()} + +
+ {:else} + +
+ +

{m.Scan_QR_to_verify_or_obtain_credentials_()}

+
+

{m.Make_sure_to_scan_the_full_QR_surface_()}

+
+ {/if} + {/await}
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 2e377ad0..74479a7a 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -19,11 +19,11 @@ /> From 8681a91ef555bc15bcb43e2feaa5d445609a818d Mon Sep 17 00:00:00 2001 From: phoebus-84 Date: Fri, 23 Feb 2024 15:27:28 +0100 Subject: [PATCH 10/11] feat: style up the onboarding --- src/lib/components/onBoarding/First.svelte | 17 ++++--- src/lib/components/onBoarding/Second.svelte | 19 +++++--- .../onBoarding/StepsController.svelte | 46 +++++++++++++++++++ src/lib/components/onBoarding/Third.svelte | 22 +++++---- src/lib/components/onBoarding/dot.svelte | 3 ++ src/lib/components/onBoarding/utils.ts | 2 +- src/lib/ionic/forms/input.svelte | 17 +++++++ src/routes/[[lang]]/on-boarding/+page.svelte | 8 ++-- 8 files changed, 106 insertions(+), 28 deletions(-) create mode 100644 src/lib/components/onBoarding/StepsController.svelte create mode 100644 src/lib/components/onBoarding/dot.svelte diff --git a/src/lib/components/onBoarding/First.svelte b/src/lib/components/onBoarding/First.svelte index a6b43e9d..6b6a43d6 100644 --- a/src/lib/components/onBoarding/First.svelte +++ b/src/lib/components/onBoarding/First.svelte @@ -1,12 +1,17 @@ -
- 1 - On-boarding - Next +placeholder +
+ Welcome to DID Wallet, + your friendly and trustable open-source wallet. + Lorem ipsum dolor sit amet consectetur. Adipiscing mauris sagittis amet arcu mauris leo. + stepController.move(e.detail.value)} />
- diff --git a/src/lib/components/onBoarding/Second.svelte b/src/lib/components/onBoarding/Second.svelte index 1634e9e9..73d6c17f 100644 --- a/src/lib/components/onBoarding/Second.svelte +++ b/src/lib/components/onBoarding/Second.svelte @@ -1,11 +1,16 @@ -
- 2 - On-boarding - Next +placeholder +
+ Create your DID + Lorem ipsum dolor sit amet consectetur. Adipiscing mauris sagittis amet arcu mauris leo. + stepController.move(e.detail.value)} />
diff --git a/src/lib/components/onBoarding/StepsController.svelte b/src/lib/components/onBoarding/StepsController.svelte new file mode 100644 index 00000000..abca9cd2 --- /dev/null +++ b/src/lib/components/onBoarding/StepsController.svelte @@ -0,0 +1,46 @@ + + +
+
+ {#each Array.from(Array(total).keys()) as page} + {#if page === index} + + {:else} + + {/if} + {/each} +
+ + + {#if index === total - 1} + Complete + {:else} + Skip + {/if} + +
diff --git a/src/lib/components/onBoarding/Third.svelte b/src/lib/components/onBoarding/Third.svelte index 13b89f53..07c02cb1 100644 --- a/src/lib/components/onBoarding/Third.svelte +++ b/src/lib/components/onBoarding/Third.svelte @@ -1,14 +1,16 @@ -
- 3 - On-boarding - completeOnBoarding()}>Complete on boarding +placeholder +
+ Manage VC (verifiable credentials) in one place + Lorem ipsum dolor sit amet consectetur. Adipiscing mauris sagittis amet arcu mauris leo. + stepController.move(e.detail.value)} />
diff --git a/src/lib/components/onBoarding/dot.svelte b/src/lib/components/onBoarding/dot.svelte new file mode 100644 index 00000000..17d25c82 --- /dev/null +++ b/src/lib/components/onBoarding/dot.svelte @@ -0,0 +1,3 @@ + + + diff --git a/src/lib/components/onBoarding/utils.ts b/src/lib/components/onBoarding/utils.ts index 0dcf4aaa..c7c3f252 100644 --- a/src/lib/components/onBoarding/utils.ts +++ b/src/lib/components/onBoarding/utils.ts @@ -7,7 +7,7 @@ export const completeOnBoarding = async ()=>{ await setPreference(ISBOARDED_KEY, 'true', false) goto("/home") } -export async function isAlreadyBoarded(): Promise { +export async function isAlreadyBoarded(): Promise { const isAlreadyBoardedString = await getPreference(ISBOARDED_KEY, false); if (!isAlreadyBoardedString) return false; return true diff --git a/src/lib/ionic/forms/input.svelte b/src/lib/ionic/forms/input.svelte index 7cf1d33e..642005fc 100644 --- a/src/lib/ionic/forms/input.svelte +++ b/src/lib/ionic/forms/input.svelte @@ -27,9 +27,26 @@ class:ion-invalid={errorText} class:ion-touched={errorText} label-placement="stacked" + fill="outline" + class="custom" {value} on:ionInput={(e) => { updateValue(e.detail.value); }} /> + diff --git a/src/routes/[[lang]]/on-boarding/+page.svelte b/src/routes/[[lang]]/on-boarding/+page.svelte index 6c444230..6e4af2e7 100644 --- a/src/routes/[[lang]]/on-boarding/+page.svelte +++ b/src/routes/[[lang]]/on-boarding/+page.svelte @@ -7,17 +7,17 @@ const steps = [ makeStep({ component: First, - props: undefined + props: {index: 0, total: 3} }), makeStep({ component: Second, - props: undefined + props: {index: 1, total: 3} }), makeStep({ component: Third, - props: undefined + props: {index: 2, total: 3} }) ]; - + From 672a464ab1f7644015023379c03b22de0e721fec Mon Sep 17 00:00:00 2001 From: phoebus-84 Date: Fri, 23 Feb 2024 15:38:23 +0100 Subject: [PATCH 11/11] i18n: add messagges --- messages/en.json | 6 +++++- src/lib/components/onBoarding/First.svelte | 7 ++++--- src/lib/components/onBoarding/Second.svelte | 5 ++++- src/lib/components/onBoarding/Third.svelte | 7 +++++-- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/messages/en.json b/messages/en.json index fb63a3d5..59cb39cd 100644 --- a/messages/en.json +++ b/messages/en.json @@ -46,5 +46,9 @@ "We_are_generating_this_credential": "We are generating this credential", "Nothing_in_your_wallet": "Nothing in your wallet", "Start_getting_your_first_credential": "Start getting your first credential", - "See_issuance_services": "See issuance services" + "See_issuance_services": "See issuance services", + "Welcome_to_DID_Wallet": "Welcome to DID Wallet", + "your_friendly_and_trustable_opensource_wallet_": "your friendly and trustable open-source wallet.", + "Create_your_DID": "Create your DID", + "Manage_VC_verifiable_credentials_in_one_place": "Manage VC (verifiable credentials) in one place" } diff --git a/src/lib/components/onBoarding/First.svelte b/src/lib/components/onBoarding/First.svelte index 6b6a43d6..b84235a4 100644 --- a/src/lib/components/onBoarding/First.svelte +++ b/src/lib/components/onBoarding/First.svelte @@ -1,15 +1,16 @@ placeholder
- Welcome to DID Wallet, - your friendly and trustable open-source wallet. + {m.Welcome_to_DID_Wallet()}, + {m.your_friendly_and_trustable_opensource_wallet_()} Lorem ipsum dolor sit amet consectetur. Adipiscing mauris sagittis amet arcu mauris leo. diff --git a/src/lib/components/onBoarding/Second.svelte b/src/lib/components/onBoarding/Second.svelte index 73d6c17f..9fe5efa2 100644 --- a/src/lib/components/onBoarding/Second.svelte +++ b/src/lib/components/onBoarding/Second.svelte @@ -1,14 +1,17 @@ placeholder
- Create your DID + {m.Create_your_DID()} Lorem ipsum dolor sit amet consectetur. Adipiscing mauris sagittis amet arcu mauris leo. diff --git a/src/lib/components/onBoarding/Third.svelte b/src/lib/components/onBoarding/Third.svelte index 07c02cb1..c5903e5b 100644 --- a/src/lib/components/onBoarding/Third.svelte +++ b/src/lib/components/onBoarding/Third.svelte @@ -1,14 +1,17 @@ placeholder
- Manage VC (verifiable credentials) in one place + {m.Manage_VC_verifiable_credentials_in_one_place()} Lorem ipsum dolor sit amet consectetur. Adipiscing mauris sagittis amet arcu mauris leo.