Каждый из 26 спринтов работал в изоляции; этот спринт проверяет
взаимодействие — реально ли все фичи совместимы.
1. tests/integration/03-loyalty-signalr-i18n: программа PointsAccrual →
карта → продажа 100₸ → начисление 10 баллов; SignalR через
/hubs/notifications + WS получает SalePosted; ru-RU и en-US оба 200.
2. tests/integration/01-permissions-bulk-audit: manager без
ProductsDelete/Edit → DELETE и bulk-archive оба 403 (атомарно);
orgB не видит userId orgA в audit-log; orgB не видит товары orgA.
3. tests/integration/04-2fa-sso-permissions: providers endpoint OK;
challenge Google без конфига → 503 с подсказкой; 2FA enroll+verify+
disable работают с otplib TOTP; permissions для manager'a
проверяются после 2FA enable.
4. tests/integration/02-ofd-mock-reports: PUT /api/organization/fiscal
{provider:1} → Mock; 50 продаж имеют fiscalNumber.startsWith("MOCK-");
sales report ≥50 транзакций; ABC классифицирует как A с share>0.5.
5. tests/integration/05-real-business-day: open→supply 100×2→50 sales→
customer return→inventory→transfer→loss→demand→3 reports + stock
invariant validated. Прогон 24.7s.
6. tests/load/soak-4h.js + monitor-soak.sh — k6 constant-arrival-rate
50 RPS. Soak-lite 16m34s @ 20 RPS: 19863 iterations, 0 failures,
p95 me=16.9ms / products=29.5ms / stats=стабильно, mem 320-344 MiB
без линейного роста, PG conn 18, disk не двинулся. Без утечек.
7. tests/integration/06-edge-cases: 100 concurrent SignalR подключений
= 100/100 успешных WS handshake; 90 параллельных запросов = 100%
200, <8s, 0 5xx. Hangfire workers=2 не блокирует API.
8. Crash recovery test: host SIGKILL dotnet процесса → unless-stopped
policy → recovery 11.7s ≤ 30s SLA. Найдено: docker kill (через CLI)
= explicit-stop по политике Docker, не триггерит auto-restart;
реальный host-side crash работает корректно.
Cert-прогон: 7 integration specs все зелёные за 1.2 мин.
0 production bugs found.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
467 lines
14 KiB
YAML
467 lines
14 KiB
YAML
lockfileVersion: '9.0'
|
|
|
|
settings:
|
|
autoInstallPeers: true
|
|
excludeLinksFromLockfile: false
|
|
|
|
importers:
|
|
|
|
.:
|
|
dependencies:
|
|
ws:
|
|
specifier: ^8.21.0
|
|
version: 8.21.0
|
|
devDependencies:
|
|
'@playwright/test':
|
|
specifier: ^1.60.0
|
|
version: 1.60.0
|
|
'@types/node':
|
|
specifier: ^20.17.10
|
|
version: 20.19.42
|
|
'@types/ws':
|
|
specifier: ^8.18.1
|
|
version: 8.18.1
|
|
otplib:
|
|
specifier: ^13.4.0
|
|
version: 13.4.1
|
|
tsx:
|
|
specifier: ^4.19.2
|
|
version: 4.22.4
|
|
typescript:
|
|
specifier: ^5.7.2
|
|
version: 5.9.3
|
|
|
|
packages:
|
|
|
|
'@esbuild/aix-ppc64@0.28.0':
|
|
resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==}
|
|
engines: {node: '>=18'}
|
|
cpu: [ppc64]
|
|
os: [aix]
|
|
|
|
'@esbuild/android-arm64@0.28.0':
|
|
resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [android]
|
|
|
|
'@esbuild/android-arm@0.28.0':
|
|
resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm]
|
|
os: [android]
|
|
|
|
'@esbuild/android-x64@0.28.0':
|
|
resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [android]
|
|
|
|
'@esbuild/darwin-arm64@0.28.0':
|
|
resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [darwin]
|
|
|
|
'@esbuild/darwin-x64@0.28.0':
|
|
resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [darwin]
|
|
|
|
'@esbuild/freebsd-arm64@0.28.0':
|
|
resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [freebsd]
|
|
|
|
'@esbuild/freebsd-x64@0.28.0':
|
|
resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [freebsd]
|
|
|
|
'@esbuild/linux-arm64@0.28.0':
|
|
resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-arm@0.28.0':
|
|
resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-ia32@0.28.0':
|
|
resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==}
|
|
engines: {node: '>=18'}
|
|
cpu: [ia32]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-loong64@0.28.0':
|
|
resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==}
|
|
engines: {node: '>=18'}
|
|
cpu: [loong64]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-mips64el@0.28.0':
|
|
resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==}
|
|
engines: {node: '>=18'}
|
|
cpu: [mips64el]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-ppc64@0.28.0':
|
|
resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==}
|
|
engines: {node: '>=18'}
|
|
cpu: [ppc64]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-riscv64@0.28.0':
|
|
resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==}
|
|
engines: {node: '>=18'}
|
|
cpu: [riscv64]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-s390x@0.28.0':
|
|
resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==}
|
|
engines: {node: '>=18'}
|
|
cpu: [s390x]
|
|
os: [linux]
|
|
|
|
'@esbuild/linux-x64@0.28.0':
|
|
resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [linux]
|
|
|
|
'@esbuild/netbsd-arm64@0.28.0':
|
|
resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [netbsd]
|
|
|
|
'@esbuild/netbsd-x64@0.28.0':
|
|
resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [netbsd]
|
|
|
|
'@esbuild/openbsd-arm64@0.28.0':
|
|
resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [openbsd]
|
|
|
|
'@esbuild/openbsd-x64@0.28.0':
|
|
resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [openbsd]
|
|
|
|
'@esbuild/openharmony-arm64@0.28.0':
|
|
resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [openharmony]
|
|
|
|
'@esbuild/sunos-x64@0.28.0':
|
|
resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [sunos]
|
|
|
|
'@esbuild/win32-arm64@0.28.0':
|
|
resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==}
|
|
engines: {node: '>=18'}
|
|
cpu: [arm64]
|
|
os: [win32]
|
|
|
|
'@esbuild/win32-ia32@0.28.0':
|
|
resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==}
|
|
engines: {node: '>=18'}
|
|
cpu: [ia32]
|
|
os: [win32]
|
|
|
|
'@esbuild/win32-x64@0.28.0':
|
|
resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==}
|
|
engines: {node: '>=18'}
|
|
cpu: [x64]
|
|
os: [win32]
|
|
|
|
'@noble/hashes@2.2.0':
|
|
resolution: {integrity: sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==}
|
|
engines: {node: '>= 20.19.0'}
|
|
|
|
'@otplib/core@13.4.1':
|
|
resolution: {integrity: sha512-KIXgK1hNtWJEBMTastbe1bpmuais+3f+ATeO8TkMs2rNkfGO1FbQy8+/UWVEu3TR/iTJerU0idkPudaPmLP2BA==}
|
|
|
|
'@otplib/hotp@13.4.1':
|
|
resolution: {integrity: sha512-g9q04SwpG5ZtMnVkUcgcoAlwCH4YLROZN1qhyBwgkBzqYYVSYhpP6gSGaxGHwePLt1c+e6NqDlgIZN+e1/XPuA==}
|
|
|
|
'@otplib/plugin-base32-scure@13.4.1':
|
|
resolution: {integrity: sha512-Fs/r5qisC05SRhT6xWXaypB6PVC0vgWf6zztmi0J5RnQ09OJiPDWCJFH6cDm6ANsrdvB9di7X+Jb7L13BoEbUA==}
|
|
|
|
'@otplib/plugin-crypto-noble@13.4.1':
|
|
resolution: {integrity: sha512-PJfVW8/1hdS6CfxLheKPZSLTwDq4TijZbN4yRjxlv0ODdzmxpM+wGwWr1JXMdy0xJPxLziydQD5gdVqrR4/gAg==}
|
|
|
|
'@otplib/totp@13.4.1':
|
|
resolution: {integrity: sha512-QOkBVPrf6AM4qZaReZPSk9/I8ATVdZpIISJz115MqeVtcrbcr5llPZ0J7804tpnjnp1vCRkI5Qjd47HhgVteBQ==}
|
|
|
|
'@otplib/uri@13.4.1':
|
|
resolution: {integrity: sha512-xaIm7bvICMhoB2rZIR5luiaMdssWR5nY5nXnR1fdezUgZuEO58D6zrGzLp7pQuBmlpmL0HagnscDQFoskp9yiA==}
|
|
|
|
'@playwright/test@1.60.0':
|
|
resolution: {integrity: sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==}
|
|
engines: {node: '>=18'}
|
|
hasBin: true
|
|
|
|
'@scure/base@2.2.0':
|
|
resolution: {integrity: sha512-b8XEupJibegiXV+tDUseI8oLQc8ei3d/4Jkb2RpbHh3MfE054ov3uIz2dhFkB3FI8iwYkEh0gGCApkrYggkPNg==}
|
|
|
|
'@types/node@20.19.42':
|
|
resolution: {integrity: sha512-5L7SUaFC1RyDraj2yRhyBzHTobyXHmohD100CChNtyPyleoq37Mqab5Gn8XEKI04dfN/oqPdpHk38MgcQWHbZg==}
|
|
|
|
'@types/ws@8.18.1':
|
|
resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
|
|
|
|
esbuild@0.28.0:
|
|
resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==}
|
|
engines: {node: '>=18'}
|
|
hasBin: true
|
|
|
|
fsevents@2.3.2:
|
|
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
|
|
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
|
|
os: [darwin]
|
|
|
|
fsevents@2.3.3:
|
|
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
|
|
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
|
|
os: [darwin]
|
|
|
|
otplib@13.4.1:
|
|
resolution: {integrity: sha512-o5CxfDw6bh7hoDv0NUUIcc0RqzJ9ipfUrzeKheKJ+vs4rXZnDlA9n4a/7R1cDjpmLjKLix4BgNVRmoDkm5rLSQ==}
|
|
|
|
playwright-core@1.60.0:
|
|
resolution: {integrity: sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==}
|
|
engines: {node: '>=18'}
|
|
hasBin: true
|
|
|
|
playwright@1.60.0:
|
|
resolution: {integrity: sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==}
|
|
engines: {node: '>=18'}
|
|
hasBin: true
|
|
|
|
tsx@4.22.4:
|
|
resolution: {integrity: sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==}
|
|
engines: {node: '>=18.0.0'}
|
|
hasBin: true
|
|
|
|
typescript@5.9.3:
|
|
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
|
|
engines: {node: '>=14.17'}
|
|
hasBin: true
|
|
|
|
undici-types@6.21.0:
|
|
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
|
|
|
|
ws@8.21.0:
|
|
resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==}
|
|
engines: {node: '>=10.0.0'}
|
|
peerDependencies:
|
|
bufferutil: ^4.0.1
|
|
utf-8-validate: '>=5.0.2'
|
|
peerDependenciesMeta:
|
|
bufferutil:
|
|
optional: true
|
|
utf-8-validate:
|
|
optional: true
|
|
|
|
snapshots:
|
|
|
|
'@esbuild/aix-ppc64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/android-arm64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/android-arm@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/android-x64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/darwin-arm64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/darwin-x64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/freebsd-arm64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/freebsd-x64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/linux-arm64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/linux-arm@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/linux-ia32@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/linux-loong64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/linux-mips64el@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/linux-ppc64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/linux-riscv64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/linux-s390x@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/linux-x64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/netbsd-arm64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/netbsd-x64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/openbsd-arm64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/openbsd-x64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/openharmony-arm64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/sunos-x64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/win32-arm64@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/win32-ia32@0.28.0':
|
|
optional: true
|
|
|
|
'@esbuild/win32-x64@0.28.0':
|
|
optional: true
|
|
|
|
'@noble/hashes@2.2.0': {}
|
|
|
|
'@otplib/core@13.4.1': {}
|
|
|
|
'@otplib/hotp@13.4.1':
|
|
dependencies:
|
|
'@otplib/core': 13.4.1
|
|
'@otplib/uri': 13.4.1
|
|
|
|
'@otplib/plugin-base32-scure@13.4.1':
|
|
dependencies:
|
|
'@otplib/core': 13.4.1
|
|
'@scure/base': 2.2.0
|
|
|
|
'@otplib/plugin-crypto-noble@13.4.1':
|
|
dependencies:
|
|
'@noble/hashes': 2.2.0
|
|
'@otplib/core': 13.4.1
|
|
|
|
'@otplib/totp@13.4.1':
|
|
dependencies:
|
|
'@otplib/core': 13.4.1
|
|
'@otplib/hotp': 13.4.1
|
|
'@otplib/uri': 13.4.1
|
|
|
|
'@otplib/uri@13.4.1':
|
|
dependencies:
|
|
'@otplib/core': 13.4.1
|
|
|
|
'@playwright/test@1.60.0':
|
|
dependencies:
|
|
playwright: 1.60.0
|
|
|
|
'@scure/base@2.2.0': {}
|
|
|
|
'@types/node@20.19.42':
|
|
dependencies:
|
|
undici-types: 6.21.0
|
|
|
|
'@types/ws@8.18.1':
|
|
dependencies:
|
|
'@types/node': 20.19.42
|
|
|
|
esbuild@0.28.0:
|
|
optionalDependencies:
|
|
'@esbuild/aix-ppc64': 0.28.0
|
|
'@esbuild/android-arm': 0.28.0
|
|
'@esbuild/android-arm64': 0.28.0
|
|
'@esbuild/android-x64': 0.28.0
|
|
'@esbuild/darwin-arm64': 0.28.0
|
|
'@esbuild/darwin-x64': 0.28.0
|
|
'@esbuild/freebsd-arm64': 0.28.0
|
|
'@esbuild/freebsd-x64': 0.28.0
|
|
'@esbuild/linux-arm': 0.28.0
|
|
'@esbuild/linux-arm64': 0.28.0
|
|
'@esbuild/linux-ia32': 0.28.0
|
|
'@esbuild/linux-loong64': 0.28.0
|
|
'@esbuild/linux-mips64el': 0.28.0
|
|
'@esbuild/linux-ppc64': 0.28.0
|
|
'@esbuild/linux-riscv64': 0.28.0
|
|
'@esbuild/linux-s390x': 0.28.0
|
|
'@esbuild/linux-x64': 0.28.0
|
|
'@esbuild/netbsd-arm64': 0.28.0
|
|
'@esbuild/netbsd-x64': 0.28.0
|
|
'@esbuild/openbsd-arm64': 0.28.0
|
|
'@esbuild/openbsd-x64': 0.28.0
|
|
'@esbuild/openharmony-arm64': 0.28.0
|
|
'@esbuild/sunos-x64': 0.28.0
|
|
'@esbuild/win32-arm64': 0.28.0
|
|
'@esbuild/win32-ia32': 0.28.0
|
|
'@esbuild/win32-x64': 0.28.0
|
|
|
|
fsevents@2.3.2:
|
|
optional: true
|
|
|
|
fsevents@2.3.3:
|
|
optional: true
|
|
|
|
otplib@13.4.1:
|
|
dependencies:
|
|
'@otplib/core': 13.4.1
|
|
'@otplib/hotp': 13.4.1
|
|
'@otplib/plugin-base32-scure': 13.4.1
|
|
'@otplib/plugin-crypto-noble': 13.4.1
|
|
'@otplib/totp': 13.4.1
|
|
'@otplib/uri': 13.4.1
|
|
|
|
playwright-core@1.60.0: {}
|
|
|
|
playwright@1.60.0:
|
|
dependencies:
|
|
playwright-core: 1.60.0
|
|
optionalDependencies:
|
|
fsevents: 2.3.2
|
|
|
|
tsx@4.22.4:
|
|
dependencies:
|
|
esbuild: 0.28.0
|
|
optionalDependencies:
|
|
fsevents: 2.3.3
|
|
|
|
typescript@5.9.3: {}
|
|
|
|
undici-types@6.21.0: {}
|
|
|
|
ws@8.21.0: {}
|