From 0ffcb9c345759e8917af9d8ca58fea91d180309e Mon Sep 17 00:00:00 2001 From: Merul Dhiman Date: Mon, 24 Mar 2025 22:06:53 +0530 Subject: [PATCH 1/2] feat: setup uuidv5 --- infrastructure/w3id/package.json | 7 +- infrastructure/w3id/src/utils/uuid.ts | 17 + infrastructure/w3id/tests/utils/uuid.test.ts | 9 + pnpm-lock.yaml | 574 ++++++++++++++++--- 4 files changed, 513 insertions(+), 94 deletions(-) create mode 100644 infrastructure/w3id/src/utils/uuid.ts create mode 100644 infrastructure/w3id/tests/utils/uuid.test.ts diff --git a/infrastructure/w3id/package.json b/infrastructure/w3id/package.json index 26128de1..5d1709ee 100644 --- a/infrastructure/w3id/package.json +++ b/infrastructure/w3id/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "description": "", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", + "test": "vitest", "dev": "tsc --watch", "check-format": "prettier --check \"src/**/*.ts\"", "format": "npx @biomejs/biome format --write ./src", @@ -22,7 +22,10 @@ "uuid": "^11.1.0" }, "devDependencies": { - "typescript": "^5.8.2" + "@ngneat/falso": "^7.3.0", + "@types/node": "^22.13.10", + "typescript": "^5.8.2", + "vitest": "^3.0.9" }, "main": "./dist/node/index.js", "module": "./dist/browser/index.js", diff --git a/infrastructure/w3id/src/utils/uuid.ts b/infrastructure/w3id/src/utils/uuid.ts new file mode 100644 index 00000000..f3c663f3 --- /dev/null +++ b/infrastructure/w3id/src/utils/uuid.ts @@ -0,0 +1,17 @@ +import { v4 as uuidv4, v5 as uuidv5 } from "uuid"; + +/** + * Generates a UUIDv5 taking namespace from a random UUIDv4 and taking `name` + * part as entropy from the creator of the identifier + * + * @param {String} entropy + * @param {String} namespace - uuid namespace + * @returns string + */ + +export function generateUuid( + entropy: string, + namespace: string = uuidv4(), +): string { + return uuidv5(entropy, namespace); +} diff --git a/infrastructure/w3id/tests/utils/uuid.test.ts b/infrastructure/w3id/tests/utils/uuid.test.ts new file mode 100644 index 00000000..a0113468 --- /dev/null +++ b/infrastructure/w3id/tests/utils/uuid.test.ts @@ -0,0 +1,9 @@ +import { generateUuid } from "../../src/utils/uuid"; +import falso from "@ngneat/falso"; +import { describe, test } from "vitest"; + +describe("UUIDv5 Generation", () => { + test("Create UUID", () => { + const id = generateUuid(falso.randText()); + }); +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c1ef25e8..9d8064f2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,27 +51,27 @@ importers: '@storybook/addon-essentials': specifier: ^8.6.7 version: 8.6.7(@types/react@19.0.12)(storybook@8.6.7(prettier@3.5.3)) - - '@storybook/addon-svelte-csf': - specifier: ^5.0.0-next.28 - version: 5.0.0-next.28(@storybook/svelte@8.6.7(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2))(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)))(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)) + '@storybook/addon-interactions': + specifier: ^8.6.7 + version: 8.6.8(storybook@8.6.7(prettier@3.5.3)) '@storybook/blocks': specifier: ^8.6.7 version: 8.6.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.7(prettier@3.5.3)) '@storybook/experimental-addon-test': specifier: ^8.6.7 - - version: 8.6.7(@vitest/browser@3.0.9(@types/node@22.13.10)(playwright@1.51.1)(typescript@5.6.3)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))(vitest@3.0.9))(@vitest/runner@3.0.9)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.7(prettier@3.5.3))(vitest@3.0.9(@types/node@22.13.10)(@vitest/browser@3.0.9)(jiti@2.4.2)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.13.10)(typescript@5.6.3))) + version: 8.6.7(@vitest/browser@3.0.9)(@vitest/runner@3.0.9)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.7(prettier@3.5.3))(vitest@3.0.9) '@storybook/svelte': specifier: ^8.6.7 version: 8.6.7(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2) '@storybook/sveltekit': specifier: ^8.6.7 - version: 8.6.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)))(postcss@8.5.3)(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)) + version: 8.6.7(@babel/core@7.26.10)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)))(postcss@8.5.3)(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)) '@storybook/test': specifier: ^8.6.7 version: 8.6.7(storybook@8.6.7(prettier@3.5.3)) - + '@storybook/testing-library': + specifier: ^0.2.2 + version: 0.2.2 '@sveltejs/adapter-static': specifier: ^3.0.6 version: 3.0.8(@sveltejs/kit@2.20.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)))(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))) @@ -101,10 +101,13 @@ importers: version: 3.0.9(@types/node@22.13.10)(playwright@1.51.1)(typescript@5.6.3)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))(vitest@3.0.9) '@vitest/coverage-v8': specifier: ^3.0.9 - version: 3.0.9(@vitest/browser@3.0.9(@types/node@22.13.10)(playwright@1.51.1)(typescript@5.6.3)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))(vitest@3.0.9))(vitest@3.0.9(@types/node@22.13.10)(@vitest/browser@3.0.9)(jiti@2.4.2)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.13.10)(typescript@5.6.3))) + version: 3.0.9(@vitest/browser@3.0.9)(vitest@3.0.9) autoprefixer: specifier: ^10.4.21 version: 10.4.21(postcss@8.5.3) + cupertino-pane: + specifier: ^1.4.22 + version: 1.4.22 daisyui: specifier: ^5.0.6 version: 5.0.6 @@ -122,7 +125,10 @@ importers: version: 5.23.2 svelte-check: specifier: ^4.0.0 - version: 4.1.5(picomatch@2.3.1)(svelte@5.23.2)(typescript@5.6.3) + version: 4.1.5(svelte@5.23.2)(typescript@5.6.3) + svelte-gestures: + specifier: ^5.1.3 + version: 5.1.3 tailwindcss: specifier: ^4.0.14 version: 4.0.14 @@ -144,9 +150,18 @@ importers: specifier: ^11.1.0 version: 11.1.0 devDependencies: + '@ngneat/falso': + specifier: ^7.3.0 + version: 7.3.0 + '@types/node': + specifier: ^22.13.10 + version: 22.13.10 typescript: specifier: ^5.8.2 version: 5.8.2 + vitest: + specifier: ^3.0.9 + version: 3.0.9(@types/node@22.13.10)(@vitest/browser@3.0.9)(jiti@2.4.2)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2)) packages/eslint-config: devDependencies: @@ -199,6 +214,32 @@ packages: resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.26.8': + resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.26.10': + resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.26.10': + resolution: {integrity: sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.26.5': + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-string-parser@7.25.9': resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} @@ -207,6 +248,14 @@ packages: resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.26.10': + resolution: {integrity: sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.26.10': resolution: {integrity: sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==} engines: {node: '>=6.0.0'} @@ -216,6 +265,14 @@ packages: resolution: {integrity: sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==} engines: {node: '>=6.9.0'} + '@babel/template@7.26.9': + resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.26.10': + resolution: {integrity: sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==} + engines: {node: '>=6.9.0'} + '@babel/types@7.26.10': resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==} engines: {node: '>=6.9.0'} @@ -484,7 +541,6 @@ packages: resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@hugeicons/core-free-icons@1.0.13': resolution: {integrity: sha512-H0TwkJmvYXdAeUYvNXdQ4b94Xv6vIxZu2aQK+8fnm6Gho74yDrLH9pNqLk931OY8pVvLxPgEOZEDtBO2aZacng==} @@ -592,6 +648,9 @@ packages: '@next/eslint-plugin-next@15.2.3': resolution: {integrity: sha512-eNSOIMJtjs+dp4Ms1tB1PPPJUQHP3uZK+OQ7iFY9qXpGO6ojT6imCL+KcUOqE/GXGidWbBZJzYdgAdPHqeCEPA==} + '@ngneat/falso@7.3.0': + resolution: {integrity: sha512-JDjy2D+fLMAIl0x9i9B9DCsmrr9UcqjLoAbjf+xKdXOkSyoU8t2DKi84Jvn9Uwj9lX02dsHAQuq3JZDUiqn22w==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -745,6 +804,11 @@ packages: peerDependencies: storybook: ^8.6.7 + '@storybook/addon-interactions@8.6.8': + resolution: {integrity: sha512-tSSUmZFAJ3PcxEoysGxdLd8p6HnioYR5oLU55n2CNL5Wdj79sHDX8JoCegrkzQuvZy50z3D72mhvsI+RJB3LLg==} + peerDependencies: + storybook: ^8.6.8 + '@storybook/addon-measure@8.6.7': resolution: {integrity: sha512-4dkkCltjKRcJH+ZMv5nbNT0LBQfcXIydVfN9mAvhDsiPFD5eZcHbN4XVfUslECWgrkaa/a6FE1W9PNEUBjCJaA==} peerDependencies: @@ -755,15 +819,6 @@ packages: peerDependencies: storybook: ^8.6.7 - '@storybook/addon-svelte-csf@5.0.0-next.28': - resolution: {integrity: sha512-Ojj6m8xEd3rlVP7PkNYv/0st4M0NZdSYWwnCowhsw3ItBasmyB8jmP5Ht2WmwH+EIUYq0mMfsRI7Rb6Yl63QbQ==} - peerDependencies: - '@storybook/svelte': ^0.0.0-0 || ^8.2.0 || ^9.0.0-0 - '@sveltejs/vite-plugin-svelte': ^4.0.0 || ^5.0.0 - storybook: ^0.0.0-0 || ^8.2.0 || ^9.0.0-0 - svelte: ^5.0.0 - vite: ^5.0.0 || ^6.0.0 - '@storybook/addon-toolbars@8.6.7': resolution: {integrity: sha512-gR+mRs+Cc5GINZdKgE7afJLFCSMHkz40+zzdrPu6yY2P4B3UOvuQpt+zC/Er5YQ31EEjIvM6/XMQTM0i2db8AA==} peerDependencies: @@ -813,9 +868,6 @@ packages: '@storybook/csf@0.1.12': resolution: {integrity: sha512-9/exVhabisyIVL0VxTCxo01Tdm8wefIXKXfltAPTSr8cbLn5JAxGQ6QV3mjdecLGEOucfoVhAKtJfVHxEK1iqw==} - '@storybook/csf@0.1.13': - resolution: {integrity: sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==} - '@storybook/experimental-addon-test@8.6.7': resolution: {integrity: sha512-laA3Tx6shWDROS+TUTd70i7oDXog7dyKcM9tAEAvqf9acSkcGrGOm/MKAFZtefUx+wZeYaAVjpCER/v0MaN1qQ==} peerDependencies: @@ -846,6 +898,11 @@ packages: peerDependencies: storybook: ^8.6.7 + '@storybook/instrumenter@8.6.8': + resolution: {integrity: sha512-FgfIINbA5svlIIBMc+q4hdIEdLRT+8i6R76BUeKj5btD8tYxWY4LywMeItZx8uyaFGFjYlFdMKnyXCmSnFXnaQ==} + peerDependencies: + storybook: ^8.6.8 + '@storybook/manager-api@8.6.7': resolution: {integrity: sha512-BA8RxaLP07WGF660LWo7qB3Jomr/+MPuCZmuKPqXxPhfIovqYjr0hnugxJBjEah0ic31aNX4NucNfDRuV7F5sA==} peerDependencies: @@ -892,6 +949,15 @@ packages: peerDependencies: storybook: ^8.6.7 + '@storybook/test@8.6.8': + resolution: {integrity: sha512-wMJkWWcfPK374uw3JPpgMBkPYkIhYPxqRVp/KAJR/h10YIhSAXg7yiH1LYmmNAwrmvI7Uc3KZZ9fX/Qvot5uRg==} + peerDependencies: + storybook: ^8.6.8 + + '@storybook/testing-library@0.2.2': + resolution: {integrity: sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==} + deprecated: In Storybook 8, this package functionality has been integrated to a new package called @storybook/test, which uses Vitest APIs for an improved experience. When upgrading to Storybook 8 with 'npx storybook@latest upgrade', you will get prompted and will get an automigration for the new package. Please migrate when you can. + '@storybook/theming@8.6.7': resolution: {integrity: sha512-F/i4XS5bew9dvtNiHvDJF0mko1IUbPM9PUjTYPaw6cK8ytS0kdec703MsJ/GUA7seeEWBeGdZjV3ua0pys650A==} peerDependencies: @@ -1099,6 +1165,10 @@ packages: resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} engines: {node: '>=18'} + '@testing-library/dom@9.3.4': + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} + engines: {node: '>=14'} + '@testing-library/jest-dom@6.5.0': resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} @@ -1310,6 +1380,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} @@ -1478,6 +1551,9 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie@0.6.0: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} @@ -1501,6 +1577,9 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + cupertino-pane@1.4.22: + resolution: {integrity: sha512-tXAPAetECWcuzXbgFt2vaFViEXSTcjJkKmCpphRcf4ADRf2fDBrEEGqQ5RAqGs7Hsp3TYWqajAm62s7WC9jBTQ==} + daisyui@5.0.6: resolution: {integrity: sha512-/e/9Gw/2y9oawBJlWkJMSEhRXdmfOLvcPl+6q/x2rPEdIVOtebs1t3ex2vwySl9vCRs1GGNBKCiL+P60Ps/wUw==} @@ -1528,18 +1607,14 @@ packages: dedent-js@1.0.1: resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} + deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -1648,6 +1723,9 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + es-iterator-helpers@1.2.1: resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} engines: {node: '>= 0.4'} @@ -1671,9 +1749,6 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - es-toolkit@1.33.0: - resolution: {integrity: sha512-X13Q/ZSc+vsO1q600bvNK4bxgXMkHcf//RxCmYDaRY5DAcT+eoXjY5hoAPGMdRnWQjvyLEcyauG3b6hz76LNqg==} - es6-promise@3.3.1: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} @@ -1789,9 +1864,6 @@ packages: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} - esrap@1.2.2: - resolution: {integrity: sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==} - esrap@1.4.5: resolution: {integrity: sha512-CjNMjkBWWZeHn+VX+gS8YvFwJ5+NDhg8aWZBSFJPR8qQduDNjbJodA2WcwCm7uQa5Rjqj+nZvVmceg1RbHFB9g==} @@ -1910,6 +1982,10 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -1942,6 +2018,10 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} @@ -2205,6 +2285,11 @@ packages: resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -2214,6 +2299,11 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} @@ -2332,6 +2422,9 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -2441,6 +2534,10 @@ packages: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -2710,6 +2807,9 @@ packages: scheduler@0.25.0: resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + seedrandom@3.0.5: + resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -2794,6 +2894,10 @@ packages: std-env@3.8.1: resolution: {integrity: sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==} + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + storybook@8.6.7: resolution: {integrity: sha512-9gktoFMQDSCINNGQH869d/sar9rVtAhr0HchcvDA6bssAqgQJvTphY4qC9lH54SxfTJm/7Sy+BKEngMK+dziJg==} hasBin: true @@ -2857,12 +2961,6 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte-ast-print@0.4.2: - resolution: {integrity: sha512-hRHHufbJoArFmDYQKCpCvc0xUuIEfwYksvyLYEQyH+1xb5LD5sM/IthfooCdXZQtOIqXz6xm7NmaqdfwG4kh6w==} - engines: {node: '>=18'} - peerDependencies: - svelte: ^5.0.0 - svelte-check@4.1.5: resolution: {integrity: sha512-Gb0T2IqBNe1tLB9EB1Qh+LOe+JB8wt2/rNBDGvkxQVvk8vNeAoG+vZgFB/3P5+zC7RWlyBlzm9dVjZFph/maIg==} engines: {node: '>= 18.0.0'} @@ -2871,6 +2969,9 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 typescript: '>=5.0.0' + svelte-gestures@5.1.3: + resolution: {integrity: sha512-ELOlzuH9E4+S1biCCTfusRlvzFpnqRPlljEqayoBTu5STH42u0kTT45D1m3Py3E9UmIyZTgrSLw6Fus/fh75Dw==} + svelte-preprocess@5.1.4: resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==} engines: {node: '>= 16.0.0'} @@ -3120,6 +3221,10 @@ packages: resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true @@ -3272,6 +3377,9 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -3306,10 +3414,79 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/compat-data@7.26.8': + optional: true + + '@babel/core@7.26.10': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.10 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) + '@babel/helpers': 7.26.10 + '@babel/parser': 7.26.10 + '@babel/template': 7.26.9 + '@babel/traverse': 7.26.10 + '@babel/types': 7.26.10 + convert-source-map: 2.0.0 + debug: 4.4.0 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + optional: true + + '@babel/generator@7.26.10': + dependencies: + '@babel/parser': 7.26.10 + '@babel/types': 7.26.10 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + optional: true + + '@babel/helper-compilation-targets@7.26.5': + dependencies: + '@babel/compat-data': 7.26.8 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 + optional: true + + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.26.10 + '@babel/types': 7.26.10 + transitivePeerDependencies: + - supports-color + optional: true + + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.10 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/helper-string-parser@7.25.9': {} '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-option@7.25.9': + optional: true + + '@babel/helpers@7.26.10': + dependencies: + '@babel/template': 7.26.9 + '@babel/types': 7.26.10 + optional: true + '@babel/parser@7.26.10': dependencies: '@babel/types': 7.26.10 @@ -3318,6 +3495,26 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/template@7.26.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.10 + '@babel/types': 7.26.10 + optional: true + + '@babel/traverse@7.26.10': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.10 + '@babel/parser': 7.26.10 + '@babel/template': 7.26.9 + '@babel/types': 7.26.10 + debug: 4.4.0 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/types@7.26.10': dependencies: '@babel/helper-string-parser': 7.25.9 @@ -3621,6 +3818,11 @@ snapshots: dependencies: fast-glob: 3.3.1 + '@ngneat/falso@7.3.0': + dependencies: + seedrandom: 3.0.5 + uuid: 8.3.2 + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3761,6 +3963,15 @@ snapshots: '@storybook/global': 5.0.0 storybook: 8.6.7(prettier@3.5.3) + '@storybook/addon-interactions@8.6.8(storybook@8.6.7(prettier@3.5.3))': + dependencies: + '@storybook/global': 5.0.0 + '@storybook/instrumenter': 8.6.8(storybook@8.6.7(prettier@3.5.3)) + '@storybook/test': 8.6.8(storybook@8.6.7(prettier@3.5.3)) + polished: 4.3.1 + storybook: 8.6.7(prettier@3.5.3) + ts-dedent: 2.2.0 + '@storybook/addon-measure@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 @@ -3773,23 +3984,6 @@ snapshots: storybook: 8.6.7(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-svelte-csf@5.0.0-next.28(@storybook/svelte@8.6.7(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2))(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)))(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))': - dependencies: - '@storybook/csf': 0.1.13 - '@storybook/svelte': 8.6.7(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2) - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)) - dedent: 1.5.3 - es-toolkit: 1.33.0 - esrap: 1.4.5 - magic-string: 0.30.17 - storybook: 8.6.7(prettier@3.5.3) - svelte: 5.23.2 - svelte-ast-print: 0.4.2(svelte@5.23.2) - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) - zimmerframe: 1.1.2 - transitivePeerDependencies: - - babel-plugin-macros - '@storybook/addon-toolbars@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: storybook: 8.6.7(prettier@3.5.3) @@ -3850,11 +4044,7 @@ snapshots: dependencies: type-fest: 2.19.0 - '@storybook/csf@0.1.13': - dependencies: - type-fest: 2.19.0 - - '@storybook/experimental-addon-test@8.6.7(@vitest/browser@3.0.9(@types/node@22.13.10)(playwright@1.51.1)(typescript@5.6.3)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))(vitest@3.0.9))(@vitest/runner@3.0.9)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.7(prettier@3.5.3))(vitest@3.0.9(@types/node@22.13.10)(@vitest/browser@3.0.9)(jiti@2.4.2)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.13.10)(typescript@5.6.3)))': + '@storybook/experimental-addon-test@8.6.7(@vitest/browser@3.0.9)(@vitest/runner@3.0.9)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.7(prettier@3.5.3))(vitest@3.0.9)': dependencies: '@storybook/global': 5.0.0 '@storybook/icons': 1.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -3885,6 +4075,12 @@ snapshots: '@vitest/utils': 2.1.9 storybook: 8.6.7(prettier@3.5.3) + '@storybook/instrumenter@8.6.8(storybook@8.6.7(prettier@3.5.3))': + dependencies: + '@storybook/global': 5.0.0 + '@vitest/utils': 2.1.9 + storybook: 8.6.7(prettier@3.5.3) + '@storybook/manager-api@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: storybook: 8.6.7(prettier@3.5.3) @@ -3899,7 +4095,7 @@ snapshots: react-dom: 19.0.0(react@19.0.0) storybook: 8.6.7(prettier@3.5.3) - '@storybook/svelte-vite@8.6.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)))(postcss@8.5.3)(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))': + '@storybook/svelte-vite@8.6.7(@babel/core@7.26.10)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)))(postcss@8.5.3)(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))': dependencies: '@storybook/builder-vite': 8.6.7(storybook@8.6.7(prettier@3.5.3))(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)) '@storybook/svelte': 8.6.7(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2) @@ -3907,7 +4103,7 @@ snapshots: magic-string: 0.30.17 storybook: 8.6.7(prettier@3.5.3) svelte: 5.23.2 - svelte-preprocess: 5.1.4(postcss@8.5.3)(svelte@5.23.2)(typescript@5.8.2) + svelte-preprocess: 5.1.4(@babel/core@7.26.10)(postcss@8.5.3)(svelte@5.23.2)(typescript@5.8.2) svelte2tsx: 0.7.35(svelte@5.23.2)(typescript@5.8.2) sveltedoc-parser: 4.2.1 ts-dedent: 2.2.0 @@ -3941,12 +4137,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/sveltekit@8.6.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)))(postcss@8.5.3)(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))': + '@storybook/sveltekit@8.6.7(@babel/core@7.26.10)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)))(postcss@8.5.3)(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))': dependencies: '@storybook/addon-actions': 8.6.7(storybook@8.6.7(prettier@3.5.3)) '@storybook/builder-vite': 8.6.7(storybook@8.6.7(prettier@3.5.3))(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)) '@storybook/svelte': 8.6.7(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2) - '@storybook/svelte-vite': 8.6.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)))(postcss@8.5.3)(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)) + '@storybook/svelte-vite': 8.6.7(@babel/core@7.26.10)(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)))(postcss@8.5.3)(storybook@8.6.7(prettier@3.5.3))(svelte@5.23.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)) storybook: 8.6.7(prettier@3.5.3) svelte: 5.23.2 vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) @@ -3974,6 +4170,23 @@ snapshots: '@vitest/spy': 2.0.5 storybook: 8.6.7(prettier@3.5.3) + '@storybook/test@8.6.8(storybook@8.6.7(prettier@3.5.3))': + dependencies: + '@storybook/global': 5.0.0 + '@storybook/instrumenter': 8.6.8(storybook@8.6.7(prettier@3.5.3)) + '@testing-library/dom': 10.4.0 + '@testing-library/jest-dom': 6.5.0 + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) + '@vitest/expect': 2.0.5 + '@vitest/spy': 2.0.5 + storybook: 8.6.7(prettier@3.5.3) + + '@storybook/testing-library@0.2.2': + dependencies: + '@testing-library/dom': 9.3.4 + '@testing-library/user-event': 14.6.1(@testing-library/dom@9.3.4) + ts-dedent: 2.2.0 + '@storybook/theming@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: storybook: 8.6.7(prettier@3.5.3) @@ -4163,6 +4376,17 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 + '@testing-library/dom@9.3.4': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/runtime': 7.26.10 + '@types/aria-query': 5.0.4 + aria-query: 5.1.3 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + '@testing-library/jest-dom@6.5.0': dependencies: '@adobe/css-tools': 4.4.2 @@ -4181,6 +4405,10 @@ snapshots: dependencies: '@testing-library/dom': 10.4.0 + '@testing-library/user-event@14.6.1(@testing-library/dom@9.3.4)': + dependencies: + '@testing-library/dom': 9.3.4 + '@types/aria-query@5.0.4': {} '@types/cookie@0.6.0': {} @@ -4305,7 +4533,29 @@ snapshots: - utf-8-validate - vite - '@vitest/coverage-v8@3.0.9(@vitest/browser@3.0.9(@types/node@22.13.10)(playwright@1.51.1)(typescript@5.6.3)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))(vitest@3.0.9))(vitest@3.0.9(@types/node@22.13.10)(@vitest/browser@3.0.9)(jiti@2.4.2)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.13.10)(typescript@5.6.3)))': + '@vitest/browser@3.0.9(@types/node@22.13.10)(playwright@1.51.1)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))(vitest@3.0.9)': + dependencies: + '@testing-library/dom': 10.4.0 + '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) + '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)) + '@vitest/utils': 3.0.9 + magic-string: 0.30.17 + msw: 2.7.3(@types/node@22.13.10)(typescript@5.8.2) + sirv: 3.0.1 + tinyrainbow: 2.0.0 + vitest: 3.0.9(@types/node@22.13.10)(@vitest/browser@3.0.9)(jiti@2.4.2)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2)) + ws: 8.18.1 + optionalDependencies: + playwright: 1.51.1 + transitivePeerDependencies: + - '@types/node' + - bufferutil + - typescript + - utf-8-validate + - vite + optional: true + + '@vitest/coverage-v8@3.0.9(@vitest/browser@3.0.9)(vitest@3.0.9)': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -4348,6 +4598,15 @@ snapshots: msw: 2.7.3(@types/node@22.13.10)(typescript@5.6.3) vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) + '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))': + dependencies: + '@vitest/spy': 3.0.9 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + msw: 2.7.3(@types/node@22.13.10)(typescript@5.8.2) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) + '@vitest/pretty-format@2.0.5': dependencies: tinyrainbow: 1.2.0 @@ -4431,6 +4690,10 @@ snapshots: argparse@2.0.1: {} + aria-query@5.1.3: + dependencies: + deep-equal: 2.2.3 + aria-query@5.3.0: dependencies: dequal: 2.0.3 @@ -4613,6 +4876,9 @@ snapshots: concat-map@0.0.1: {} + convert-source-map@2.0.0: + optional: true + cookie@0.6.0: {} cookie@0.7.2: {} @@ -4629,6 +4895,8 @@ snapshots: csstype@3.1.3: {} + cupertino-pane@1.4.22: {} + daisyui@5.0.6: {} data-view-buffer@1.0.2: @@ -4655,10 +4923,29 @@ snapshots: dedent-js@1.0.1: {} - dedent@1.5.3: {} - deep-eql@5.0.2: {} + deep-equal@2.2.3: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + es-get-iterator: 1.1.3 + get-intrinsic: 1.3.0 + is-arguments: 1.2.0 + is-array-buffer: 3.0.5 + is-date-object: 1.1.0 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + isarray: 2.0.5 + object-is: 1.1.6 + object-keys: 1.1.1 + object.assign: 4.1.7 + regexp.prototype.flags: 1.5.4 + side-channel: 1.1.0 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.19 + deep-is@0.1.4: {} deepmerge@4.3.1: {} @@ -4805,6 +5092,18 @@ snapshots: es-errors@1.3.0: {} + es-get-iterator@1.1.3: + dependencies: + call-bind: 1.0.8 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + is-arguments: 1.2.0 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.1.1 + isarray: 2.0.5 + stop-iteration-iterator: 1.1.0 + es-iterator-helpers@1.2.1: dependencies: call-bind: 1.0.8 @@ -4847,8 +5146,6 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - es-toolkit@1.33.0: {} - es6-promise@3.3.1: {} esbuild-register@3.6.0(esbuild@0.25.1): @@ -5060,11 +5357,6 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@1.2.2: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - '@types/estree': 1.0.6 - esrap@1.4.5: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -5109,9 +5401,7 @@ snapshots: dependencies: reusify: 1.1.0 - fdir@6.4.3(picomatch@2.3.1): - optionalDependencies: - picomatch: 2.3.1 + fdir@6.4.3: {} file-entry-cache@6.0.1: dependencies: @@ -5179,6 +5469,9 @@ snapshots: functions-have-names@1.2.3: {} + gensync@1.0.0-beta.2: + optional: true + get-caller-file@2.0.5: {} get-intrinsic@1.3.0: @@ -5231,6 +5524,9 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + globals@11.12.0: + optional: true + globals@13.24.0: dependencies: type-fest: 0.20.2 @@ -5487,12 +5783,18 @@ snapshots: jsdoc-type-pratt-parser@4.1.0: {} + jsesc@3.1.0: + optional: true + json-buffer@3.0.1: {} json-schema-traverse@0.4.1: {} json-stable-stringify-without-jsonify@1.0.1: {} + json5@2.2.3: + optional: true + jsonfile@6.1.0: dependencies: universalify: 2.0.1 @@ -5590,6 +5892,11 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + optional: true + lz-string@1.5.0: {} magic-string@0.30.17: @@ -5672,6 +5979,32 @@ snapshots: transitivePeerDependencies: - '@types/node' + msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2): + dependencies: + '@bundled-es-modules/cookie': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@bundled-es-modules/tough-cookie': 0.1.6 + '@inquirer/confirm': 5.1.8(@types/node@22.13.10) + '@mswjs/interceptors': 0.37.6 + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.5 + graphql: 16.10.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + picocolors: 1.1.1 + strict-event-emitter: 0.5.1 + type-fest: 4.37.0 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.8.2 + transitivePeerDependencies: + - '@types/node' + optional: true + mute-stream@2.0.0: {} nanoid@3.3.11: {} @@ -5691,6 +6024,11 @@ snapshots: object-inspect@1.13.4: {} + object-is@1.1.6: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + object-keys@1.1.1: {} object.assign@4.1.7: @@ -5920,7 +6258,9 @@ snapshots: is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + reusify@1.1.0: {} + rimraf@2.7.1: dependencies: glob: 7.2.3 @@ -5990,6 +6330,8 @@ snapshots: scheduler@0.25.0: {} + seedrandom@3.0.5: {} + semver@6.3.1: {} semver@7.7.1: {} @@ -6081,6 +6423,11 @@ snapshots: std-env@3.8.1: {} + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 + storybook@8.6.7(prettier@3.5.3): dependencies: '@storybook/core': 8.6.7(prettier@3.5.3)(storybook@8.6.7(prettier@3.5.3)) @@ -6166,19 +6513,14 @@ snapshots: supports-color@7.2.0: dependencies: has-flag: 4.0.0 - supports-preserve-symlinks-flag@1.0.0: {} - svelte-ast-print@0.4.2(svelte@5.23.2): - dependencies: - esrap: 1.2.2 - svelte: 5.23.2 - zimmerframe: 1.1.2 + supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.1.5(picomatch@2.3.1)(svelte@5.23.2)(typescript@5.6.3): + svelte-check@4.1.5(svelte@5.23.2)(typescript@5.6.3): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.3 - fdir: 6.4.3(picomatch@2.3.1) + fdir: 6.4.3 picocolors: 1.1.1 sade: 1.8.1 svelte: 5.23.2 @@ -6186,7 +6528,9 @@ snapshots: transitivePeerDependencies: - picomatch - svelte-preprocess@5.1.4(postcss@8.5.3)(svelte@5.23.2)(typescript@5.8.2): + svelte-gestures@5.1.3: {} + + svelte-preprocess@5.1.4(@babel/core@7.26.10)(postcss@8.5.3)(svelte@5.23.2)(typescript@5.8.2): dependencies: '@types/pug': 2.0.10 detect-indent: 6.1.0 @@ -6195,6 +6539,7 @@ snapshots: strip-indent: 3.0.0 svelte: 5.23.2 optionalDependencies: + '@babel/core': 7.26.10 postcss: 8.5.3 typescript: 5.8.2 @@ -6235,6 +6580,7 @@ snapshots: tailwindcss@4.0.14: {} tapable@2.2.1: {} + test-exclude@7.0.1: dependencies: '@istanbuljs/schema': 0.1.3 @@ -6411,6 +6757,8 @@ snapshots: uuid@11.1.0: {} + uuid@8.3.2: {} + uuid@9.0.1: {} v8-compile-cache@2.4.0: {} @@ -6490,6 +6838,45 @@ snapshots: - tsx - yaml + vitest@3.0.9(@types/node@22.13.10)(@vitest/browser@3.0.9)(jiti@2.4.2)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2)): + dependencies: + '@vitest/expect': 3.0.9 + '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.2))(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)) + '@vitest/pretty-format': 3.0.9 + '@vitest/runner': 3.0.9 + '@vitest/snapshot': 3.0.9 + '@vitest/spy': 3.0.9 + '@vitest/utils': 3.0.9 + chai: 5.2.0 + debug: 4.4.0 + expect-type: 1.2.0 + magic-string: 0.30.17 + pathe: 2.0.3 + std-env: 3.8.1 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinypool: 1.0.2 + tinyrainbow: 2.0.0 + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) + vite-node: 3.0.9(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.13.10 + '@vitest/browser': 3.0.9(@types/node@22.13.10)(playwright@1.51.1)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))(vitest@3.0.9) + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + webpack-virtual-modules@0.6.2: {} which-boxed-primitive@1.1.1: @@ -6568,6 +6955,9 @@ snapshots: y18n@5.0.8: {} + yallist@3.1.1: + optional: true + yargs-parser@21.1.1: {} yargs@17.7.2: @@ -6584,4 +6974,4 @@ snapshots: yoctocolors-cjs@2.1.2: {} - zimmerframe@1.1.2: {} \ No newline at end of file + zimmerframe@1.1.2: {} From 6ec8da834ae8e342cfcb7889f170ed1658dfb02a Mon Sep 17 00:00:00 2001 From: Merul Dhiman Date: Mon, 24 Mar 2025 22:08:36 +0530 Subject: [PATCH 2/2] chore: add test for deterministic UUID --- infrastructure/w3id/tests/utils/uuid.test.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/infrastructure/w3id/tests/utils/uuid.test.ts b/infrastructure/w3id/tests/utils/uuid.test.ts index a0113468..e5d36a59 100644 --- a/infrastructure/w3id/tests/utils/uuid.test.ts +++ b/infrastructure/w3id/tests/utils/uuid.test.ts @@ -1,9 +1,18 @@ import { generateUuid } from "../../src/utils/uuid"; import falso from "@ngneat/falso"; -import { describe, test } from "vitest"; +import { describe, test, expect } from "vitest"; describe("UUIDv5 Generation", () => { test("Create UUID", () => { const id = generateUuid(falso.randText()); + expect(id).toBeDefined(); + }); + + test("UUID is deterministic", () => { + const namespace = falso.randUuid(); + const entropy = falso.randText(); + const id = generateUuid(entropy, namespace); + const id2 = generateUuid(entropy, namespace); + expect(id).toEqual(id2); }); });