feat(auth): TOTP setup endpoint, recovery codes, passkeys and master key rotation
- GET /auth/totp/setup returns the pending secret and otpauth URL (created on first call, reused on refresh) for the console to render as a QR code. - Enabling TOTP issues 8 one-time recovery codes (argon2id hashes in admin_recovery_code); login accepts recoveryCode in place of totpCode, disable accepts either, and recovery_codes regenerates with the password. - Passkeys via @simplewebauthn/server: register/list/rename/delete under the console session, public login options/verify that reuse the login rate limit and session cookies. Challenges are one-time rows in webauthn_challenge; RP ID and origins come from WEBAUTHN_RP_ID / WEBAUTHN_ORIGINS, falling back to the request host. Signature counter regressions are rejected. SessionInfo gains passkeyEnabled. - --role rotate-master-key re-encrypts the secret table from SECRET_MASTER_KEY to SECRET_MASTER_KEY_NEW one row per transaction, skips rows already on the new key (resumable, swap keys to roll back), logs progress and audits secret.master_key_rotate. Secrets now record the master key fingerprint in kdf_params.kid. - Runbook: recovery codes, passkey configuration, rotation steps and rollback. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
5c6f483420
commit
b0e5d539ed
21 files changed
+1616
-80
No files matched your search
@@ -15,6 +15,8 @@
|
||||
"npm:@react-router/dev@*": "[email protected][email protected][email protected]_@[email protected][email protected][email protected][email protected]",
|
||||
"npm:@react-router/[email protected]": "[email protected][email protected][email protected]_@[email protected][email protected][email protected][email protected]",
|
||||
"npm:@react-router/[email protected]": "[email protected][email protected][email protected][email protected]",
|
||||
"npm:@simplewebauthn/browser@^13.3.0": "13.3.0",
|
||||
"npm:@simplewebauthn/[email protected]": "13.3.3",
|
||||
"npm:@tailwindcss/vite@^4.1.13": "[email protected]_@[email protected][email protected]",
|
||||
"npm:@tanstack/react-query@^5.90.21": "[email protected]",
|
||||
"npm:@types/[email protected]": "24.19.0",
|
||||
@@ -41,6 +43,7 @@
|
||||
"npm:[email protected]": "10.3.1",
|
||||
"npm:[email protected]": "1.63.0",
|
||||
"npm:[email protected]": "3.4.9",
|
||||
"npm:qr-code-styling@^1.9.2": "1.9.2",
|
||||
"npm:radix-ui@^1.4.3": "1.6.7_@[email protected]_@[email protected][email protected][email protected]",
|
||||
"npm:react-day-picker@^10.0.1": "10.0.1_@[email protected][email protected]",
|
||||
"npm:react-dom@^19.2.4": "[email protected]",
|
||||
@@ -119,7 +122,7 @@
|
||||
"@smithy/fetch-http-handler",
|
||||
"@smithy/node-http-handler",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -132,7 +135,7 @@
|
||||
"@smithy/signature-v4",
|
||||
"@smithy/types",
|
||||
"bowser",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -142,7 +145,7 @@
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -154,7 +157,7 @@
|
||||
"@smithy/fetch-http-handler",
|
||||
"@smithy/node-http-handler",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -172,7 +175,7 @@
|
||||
"@smithy/core",
|
||||
"@smithy/credential-provider-imds",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -183,7 +186,7 @@
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -199,7 +202,7 @@
|
||||
"@smithy/core",
|
||||
"@smithy/credential-provider-imds",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -209,7 +212,7 @@
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -221,7 +224,7 @@
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -232,7 +235,7 @@
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -241,7 +244,7 @@
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -250,7 +253,7 @@
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -262,7 +265,7 @@
|
||||
"@smithy/fetch-http-handler",
|
||||
"@smithy/signature-v4",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -275,7 +278,7 @@
|
||||
"@smithy/fetch-http-handler",
|
||||
"@smithy/node-http-handler",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -284,7 +287,7 @@
|
||||
"@aws-sdk/types",
|
||||
"@smithy/signature-v4",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -295,7 +298,7 @@
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
@@ -306,21 +309,21 @@
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
"integrity": "sha512-v/clNZzZnDxGyvpHMOGpJKVXFAExJzUNAAjaWGdcx8QAcXLGwTaOkw33p5SHAi0YAioK32xB3hWwOekRVfmfKg==",
|
||||
"dependencies": [
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/[email protected]": {
|
||||
"integrity": "sha512-ctjVSyCMegrWfXlx6VqzSBFI6UqmQ5ZlnfMhdLIiWmhoH8UAQxSCP5N3OpG7X3k4LnS7ou74C4mt20+bfTW2aQ==",
|
||||
"dependencies": [
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@aws/[email protected]": {
|
||||
@@ -833,6 +836,9 @@
|
||||
],
|
||||
"scripts": true
|
||||
},
|
||||
"@hexagon/[email protected]": {
|
||||
"integrity": "sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw=="
|
||||
},
|
||||
"@hono/[email protected][email protected]": {
|
||||
"integrity": "sha512-ELuehkj5VCBdgEw9zs+ivkKwyzzUCSQuE96YmiPvn1ECBoZCczbFXJLeEGMTYjphP6gydh4pHMqEYPVMYUVgQg==",
|
||||
"dependencies": [
|
||||
@@ -931,6 +937,9 @@
|
||||
"@jridgewell/sourcemap-codec"
|
||||
]
|
||||
},
|
||||
"@levischuck/[email protected]": {
|
||||
"integrity": "sha512-llBRm4dT4Z89aRsm6u2oEZ8tfwL/2l6BwpZ7JcyieouniDECM5AqNgr/y08zalEIvW3RSK4upYyybDcmjXqAow=="
|
||||
},
|
||||
"@mjackson/[email protected]": {
|
||||
"integrity": "sha512-EMlH1e30yzmTpGLQjlFmaDAjyOeZhng1/XCd7DExR8PNAnG/G1tyruZxEoUe11ClnwGhGrtsdnyyUx1frSzjng=="
|
||||
},
|
||||
@@ -1008,6 +1017,132 @@
|
||||
"@open-draft/[email protected]": {
|
||||
"integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg=="
|
||||
},
|
||||
"@peculiar/[email protected]": {
|
||||
"integrity": "sha512-KnNE4l033gbJ3ZzfYk7fJpSZwhd5xT+dPAnrB8bcwqylHiLN2zjZ0OyFao0LDIOI/ZdXRabV0n3Ww/KvpgZq6w==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"asn1js",
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"@peculiar/[email protected]": {
|
||||
"integrity": "sha512-4Ivz0fsyFofe0bslNsYcGN9+iETdHX4v+BFwIPr+K/BAt61sHXECP63ff9FntU9zcfVQELJFdUG9so44OjUlBQ==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
"@peculiar/asn1-x509-attr",
|
||||
"asn1js",
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"@peculiar/[email protected]": {
|
||||
"integrity": "sha512-9dO6PcoJeI+1xJ4rG7eINMa6f9Ix/QdRs5UGZ0D7v/R3TzmsbVr5cqAgfYw4xgS9U54ouHYqEz0bIZBbM/UY1g==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
"asn1js",
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"@peculiar/[email protected]": {
|
||||
"integrity": "sha512-OD+HLlcV7wCL64w0rheX/C0J31DbJce0nf8ulv3UNftQ617JEZE3sQ4cMN6PotXWlJ1M5GQx90G3bywtdKOstw==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
"asn1js",
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"@peculiar/[email protected]": {
|
||||
"integrity": "sha512-btcH7lbcD4410qnjHvv7F0kEuMNKbX8CFAZSs9CDPWHKzT1byLPHYeR40AnUw9z4CzsijMY0daBFYUvVx75sdA==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-cms",
|
||||
"@peculiar/asn1-pkcs8",
|
||||
"@peculiar/asn1-rsa",
|
||||
"@peculiar/asn1-schema",
|
||||
"asn1js",
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"@peculiar/[email protected]": {
|
||||
"integrity": "sha512-c7UghAGQdBfAHL9JdwcJkAc/lDJKNXfCdYXPXlf8BZdD/fVJjJnXKHxX4gyLhkFTvnGhME7caieSgc2ROtqYTQ==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
"asn1js",
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"@peculiar/[email protected]": {
|
||||
"integrity": "sha512-4R/zMgLSHbQIZRBwP1KzX6iuNHmW3xFWwu9TS9A00N60fmQqp9DkkqnQFyd0mAYMQTrQefuzQ/yP4U8sOLGUgQ==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-cms",
|
||||
"@peculiar/asn1-pfx",
|
||||
"@peculiar/asn1-pkcs8",
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
"@peculiar/asn1-x509-attr",
|
||||
"asn1js",
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"@peculiar/[email protected]": {
|
||||
"integrity": "sha512-kHwBLVMkm9ljlM521ovS7y4z4mr8xuHTdNyyoPlDvckBwFKSgs9HqKBryLBeqHqL2YpIgl+Vspl7kzNGG2phzA==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
"asn1js",
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"@peculiar/[email protected]": {
|
||||
"integrity": "sha512-Ez3wLKVjaxdsLcgeWN4OE31QkM7oBOgKuuBJxldRYAkfYw2C+8zJPcSd/SThnbhszsEOlAmoaS5kIIkN29fGKQ==",
|
||||
"dependencies": [
|
||||
"@peculiar/utils",
|
||||
"asn1js",
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"@peculiar/[email protected]": {
|
||||
"integrity": "sha512-PlbL1a74RZiry7puPCZ5hdk/puvivxYJPbjadr2i7DBjHCJFEKCfTRPKL3DILeZFtzJjn95J5EBtSc4/TB9/6Q==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
"asn1js",
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"@peculiar/[email protected]": {
|
||||
"integrity": "sha512-NP3ecvN6zTDlwCvogIWL7MJN9AZNuskkIbnlhrlkB97Mn2EqirBUQ8GKzsOmdAL3pRvjGu1Uk/a4DNfiZrWxhw==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/utils",
|
||||
"asn1js",
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"@peculiar/[email protected]": {
|
||||
"integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==",
|
||||
"dependencies": [
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"@peculiar/[email protected]": {
|
||||
"integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-cms",
|
||||
"@peculiar/asn1-csr",
|
||||
"@peculiar/asn1-ecc",
|
||||
"@peculiar/asn1-pkcs9",
|
||||
"@peculiar/asn1-rsa",
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
"pvtsutils",
|
||||
"reflect-metadata",
|
||||
"[email protected]",
|
||||
"tsyringe"
|
||||
]
|
||||
},
|
||||
"@pinojs/[email protected]": {
|
||||
"integrity": "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg=="
|
||||
},
|
||||
@@ -2260,6 +2395,22 @@
|
||||
"@sec-ant/[email protected]": {
|
||||
"integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg=="
|
||||
},
|
||||
"@simplewebauthn/[email protected]": {
|
||||
"integrity": "sha512-BE/UWv6FOToAdVk0EokzkqQQDOWtNydYlY6+OrmiZ5SCNmb41VehttboTetUM3T/fr6EAFYVXjz4My2wg230rQ=="
|
||||
},
|
||||
"@simplewebauthn/[email protected]": {
|
||||
"integrity": "sha512-LelX/lcy5cjc15A86i/aNxHhB5eU7dd20QsbP0VLAf9e38+SLlsnqCCyecx3xqfGofhmX05h1J9fKRYWxw+luA==",
|
||||
"dependencies": [
|
||||
"@hexagon/base64",
|
||||
"@levischuck/tiny-cbor",
|
||||
"@peculiar/asn1-android",
|
||||
"@peculiar/asn1-ecc",
|
||||
"@peculiar/asn1-rsa",
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
"@peculiar/x509"
|
||||
]
|
||||
},
|
||||
"@sindresorhus/[email protected]": {
|
||||
"integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ=="
|
||||
},
|
||||
@@ -2267,7 +2418,7 @@
|
||||
"integrity": "sha512-zRMhfkByhT2snNdr1si24vJitU6Cr9ix2MikUfWmkAgp4jrNP0GcKSP5YvwQ+TlI8AZXER5QOGJn3JsVtSD9/A==",
|
||||
"dependencies": [
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@smithy/[email protected]": {
|
||||
@@ -2275,7 +2426,7 @@
|
||||
"dependencies": [
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@smithy/[email protected]": {
|
||||
@@ -2283,7 +2434,7 @@
|
||||
"dependencies": [
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@smithy/[email protected]": {
|
||||
@@ -2291,7 +2442,7 @@
|
||||
"dependencies": [
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@smithy/[email protected]": {
|
||||
@@ -2299,13 +2450,13 @@
|
||||
"dependencies": [
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@smithy/[email protected]": {
|
||||
"integrity": "sha512-r7jh49VJxGerfAcTQA6gXcKc+98zOp/tqRwzYjgOE+iSQsP6cEU1hq2QzbuipmP68QtYdY9wKEhiCQZIzHgZ4Q==",
|
||||
"dependencies": [
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"@stablelib/[email protected]": {
|
||||
@@ -2720,19 +2871,27 @@
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==",
|
||||
"dependencies": [
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==",
|
||||
"dependencies": [
|
||||
"pvtsutils",
|
||||
"pvutils",
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-FvWoWYfSCM6kRxCSH+MGLHIKKGRL6A6AW7Zek2O32REPQRdg131428uRTKMBYAeRd3XXAaHDS60Wpri7CdKDrA==",
|
||||
"dependencies": [
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"[email protected]": {
|
||||
@@ -4618,6 +4777,24 @@
|
||||
"once"
|
||||
]
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==",
|
||||
"dependencies": [
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg=="
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-RgJaZJ1/RrXJ6N0j7a+pdw3zMBmzZU4VN2dtAZf8ZggCfRB5stEQ3IoDNGaNhYY3nnZKYlYSLl5YkfWN5dPutg==",
|
||||
"dependencies": [
|
||||
"qrcode-generator"
|
||||
]
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-pItrW0Z9HnDBnFmgiNrY1uxRdri32Uh9EjNYLPVC2zZ3ZRIIEqBoDgm4DkvDwNNDHTK7FNkmr8zAa77BYc9xNw=="
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==",
|
||||
"dependencies": [
|
||||
@@ -4756,7 +4933,7 @@
|
||||
"@types/react",
|
||||
"react",
|
||||
"react-style-singleton",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"optionalPeers": [
|
||||
"@types/react"
|
||||
@@ -4769,7 +4946,7 @@
|
||||
"react",
|
||||
"react-remove-scroll-bar",
|
||||
"react-style-singleton",
|
||||
"tslib",
|
||||
"tslib@2.8.1",
|
||||
"use-callback-ref",
|
||||
"use-sidecar"
|
||||
],
|
||||
@@ -4795,7 +4972,7 @@
|
||||
"@types/react",
|
||||
"get-nonce",
|
||||
"react",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"optionalPeers": [
|
||||
"@types/react"
|
||||
@@ -4820,7 +4997,7 @@
|
||||
"esprima",
|
||||
"source-map",
|
||||
"tiny-invariant",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
]
|
||||
},
|
||||
"[email protected][email protected][email protected][email protected]_@[email protected][email protected]": {
|
||||
@@ -4851,6 +5028,9 @@
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w=="
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q=="
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
|
||||
},
|
||||
@@ -5278,9 +5458,18 @@
|
||||
"strip-bom"
|
||||
]
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==",
|
||||
"dependencies": [
|
||||
"[email protected]"
|
||||
]
|
||||
},
|
||||
"[email protected]": {
|
||||
"integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ=="
|
||||
},
|
||||
@@ -5359,7 +5548,7 @@
|
||||
"dependencies": [
|
||||
"@types/react",
|
||||
"react",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"optionalPeers": [
|
||||
"@types/react"
|
||||
@@ -5371,7 +5560,7 @@
|
||||
"@types/react",
|
||||
"detect-node-es",
|
||||
"react",
|
||||
"tslib"
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"optionalPeers": [
|
||||
"@types/react"
|
||||
@@ -5607,6 +5796,7 @@
|
||||
"npm:@earendil-works/[email protected]",
|
||||
"npm:@hono/[email protected]",
|
||||
"npm:@hono/[email protected]",
|
||||
"npm:@simplewebauthn/[email protected]",
|
||||
"npm:@types/[email protected]",
|
||||
"npm:@types/[email protected]",
|
||||
"npm:@types/[email protected]",
|
||||
@@ -5638,6 +5828,7 @@
|
||||
"npm:@fontsource-variable/space-grotesk@^5.2.10",
|
||||
"npm:@react-router/[email protected]",
|
||||
"npm:@react-router/[email protected]",
|
||||
"npm:@simplewebauthn/browser@^13.3.0",
|
||||
"npm:@tailwindcss/vite@^4.1.13",
|
||||
"npm:@tanstack/react-query@^5.90.21",
|
||||
"npm:@types/react-dom@^19.2.3",
|
||||
@@ -5648,6 +5839,7 @@
|
||||
"npm:isbot@^5.1.31",
|
||||
"npm:[email protected]",
|
||||
"npm:next-themes@~0.4.6",
|
||||
"npm:qr-code-styling@^1.9.2",
|
||||
"npm:radix-ui@^1.4.3",
|
||||
"npm:react-day-picker@^10.0.1",
|
||||
"npm:react-dom@^19.2.4",
|
||||
|
||||
Reference in new issue
Block a user