diff --git a/Backend/TestSpace/Register.test.js b/Backend/TestSpace/Register.test.js index ff91aa65..b31e7abe 100644 --- a/Backend/TestSpace/Register.test.js +++ b/Backend/TestSpace/Register.test.js @@ -1,91 +1,74 @@ -const request = require('supertest'); -const express = require('express'); -const cookieParser = require('cookie-parser'); -const fs = require('fs'); -const path = require('path'); +import request from 'supertest'; +import express from 'express'; +import cookieParser from 'cookie-parser'; +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import { jest } from '@jest/globals'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); -// Register.js の存在確認 const registerPath = path.resolve(__dirname, '../Workspace/Routes/Register.js'); const registerExists = fs.existsSync(registerPath); - -// describe を動的切り替え const describeIf = registerExists ? describe : describe.skip; -// Router を条件付きで読み込み -let registerRouter; -if (registerExists) { - registerRouter = require('../Workspace/Routes/Register'); -} +jest.unstable_mockModule('../Workspace/Tools/DBPerf.js', () => ({ + default: jest.fn() +})); -// DBPerfモック化 -jest.mock('../Workspace/Tools/DBPerf', () => jest.fn()); -const DBPerf = require('../Workspace/Tools/DBPerf'); +jest.unstable_mockModule('../Workspace/Tools/AESControl.js', () => ({ + encrypt: jest.fn(() => 'encrypted-key'), + decrypt: jest.fn() +})); -// Symbol SDKをモック化 -jest.mock('symbol-sdk', () => { - const original = jest.requireActual('symbol-sdk'); +jest.unstable_mockModule('symbol-sdk', async () => { + const original = await jest.requireActual('symbol-sdk'); return { ...original, - PrivateKey: { random: () => 'dummy-private-key' }, - Account: { createFromPrivateKey: () => ({ address: { plain: () => 'dummy-address' } }) }, - NetworkType: { TEST_NET: 'TEST_NET' }, - facade: { SymbolFacade: jest.fn() }, + PrivateKey: { + random: () => ({ toString: () => 'dummy-private-key' }) + }, + facade: { + SymbolFacade: jest.fn(() => ({ + createAccount: () => ({ address: { toString: () => 'dummy-address' } }) + })) + } }; }); -// AESControlをモック化 -jest.mock('../Workspace/Tools/AESControl', () => ({ - encrypt: jest.fn(() => 'encrypted-key') -})); +const { default: DBPerf } = await import('../Workspace/Tools/DBPerf.js'); + +let registerRouter; +if (registerExists) { + const registerModule = await import('../Workspace/Routes/Register.js'); + registerRouter = registerModule.default; +} const app = express(); app.use(express.json()); app.use(cookieParser()); -if (registerExists) { +if (registerExists && registerRouter) { app.use('/Register', registerRouter); } -describeIf('/Register', () => { - // cookieがある場合 - it('should redirect to Home if cookie exists', async () => { - const res = await request(app) - .get('/Register') - .set('Cookie', ['LoginToken=dummy-jwt']); - - expect(res.status).toBe(302); // リダイレクト - expect(res.headers.location).toBe('/Home'); - }); - - // cookieがない場合 - it('should render register page if no cookie', async () => { - const res = await request(app) - .get('/Register'); - - expect(res.status).toBe(200); - expect(res.text).toContain('index.html'); // 登録画面が返る - }); -}); - describeIf('/Register/Submit', () => { beforeEach(() => { DBPerf.mockReset(); }); - // 空送信 it('should return 400 if userId or password missing', async () => { const res = await request(app).post('/Register/Submit').send({}); expect(res.status).toBe(400); }); - // 重複検知 it('should return 409 if userId exists', async () => { DBPerf.mockResolvedValue([{ UserID: 'test' }]); const res = await request(app).post('/Register/Submit').send({ userId: 'test', password: 'pass' }); expect(res.status).toBe(409); }); - // 登録成功処理 it('should succeed with new user', async () => { DBPerf.mockResolvedValue([]); const res = await request(app).post('/Register/Submit').send({ userId: 'newuser', password: 'pass' }); diff --git a/Backend/Workspace/Routes/CreateRoom.js b/Backend/Workspace/Routes/CreateRoom.js index f9542d24..4c118385 100644 --- a/Backend/Workspace/Routes/CreateRoom.js +++ b/Backend/Workspace/Routes/CreateRoom.js @@ -1,13 +1,29 @@ -const express = require('express'); +import express from 'express'; const router = express.Router(); -const jwt = require("jsonwebtoken"); -const cookieParser = require("cookie-parser"); -const dotenv = require("dotenv"); -const path = require("path"); -const multer = require("multer"); -const fs = require("fs"); -const VCM = require('../Tools/VerifyCookieMiddleware'); -const DBPerf = require('../Tools/DBPerf'); +import jwt from 'jsonwebtoken'; +import cookieParser from 'cookie-parser'; +import dotenv from 'dotenv'; +import path from 'path'; +import multer from 'multer'; +import fs from 'fs'; +import { fileURLToPath } from 'url'; +import VCM from '../Tools/VerifyCookieMiddleware.js'; +import DBPerf from '../Tools/DBPerf.js'; +import CreateMosaic from '../Tools/CreateMosaicTx.js'; +import { decrypt } from '../Tools/AESControl.js'; + +// DB から取得した encryptedPrivateKey を復号 +const decryptedPrivateKey = decrypt(passwordWithPepper, encryptedPrivateKey); + +// mosaic 作成時に渡す +const { mosaicId, mosaicDefinitionTx } = CreateMosaicTx({ + senderPrivateKey: decryptedPrivateKey, + networkType: 'testnet' +}); + + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); // cookieを使う router.use(cookieParser()); @@ -42,30 +58,49 @@ function createFileName(originalName) { // ===ルーム作成API=== -router.post("/", VCM('LoginToken', process.env.LOGIN_SECRET), upload.fields([{ name: "RoomIcon", maxCount: 1 },{ name: "TokenIcon", maxCount: 1 }]), async (req, res) => { +router.post("/", VCM('LOGIN_TOKEN', process.env.LOGIN_SECRET), upload.fields([{ name: "RoomIcon", maxCount: 1 },{ name: "MosaicIcon", maxCount: 1 }]), async (req, res) => { try { const userID = req.auth.userId; + if (!userID) { + return res.status(401).json({ message: "Unauthorized" }); + } + const { RoomName, MosaicName } = req.body; if (!RoomName ||!MosaicName||!req.files?.RoomIcon ||!req.files?.MosaicIcon) { return res.status(400).json({ message: "Bad Request" }); } - //受け取ったルームIDをMosaic名としてブロックチェーンに登録する処理をここに追加しても良い //受け取ったMosaic情報をブロックチェーンに登録(発行)する処理をここに追加しても良い + //秘密鍵 + const senderPrivateKey = await DBPerf("秘密鍵の抽出", "SELECT PrivateKey FROM Identify WHERE UserID = ?", [userID]); + const RoomIconPath = await saveIcon(req.files.RoomIcon[0], "rooms"); - const MosaicIconPath = await saveIcon(req.files.TokenIcon[0], "tokens"); + const MosaicIconPath = await saveIcon(req.files.MosaicIcon[0], "mosaics"); await DBPerf( "INSERT Rooms", - "INSERT INTO Rooms(UserID, RoomName, isAdmin) VALUES (?, ?, ?)",[userID, RoomName, 1] + "INSERT INTO Rooms(UserID, RoomName) VALUES (?, ?)",[userID, RoomName] ); await DBPerf( "INSERT RoomsDetail", - "INSERT INTO RoomsDetail (RoomName, RoomIconPath, MosaicName, MosaicIconPath) VALUES (?, ?, ?, ?)", - [RoomName, RoomIconPath, MosaicName, MosaicIconPath] + "INSERT INTO RoomsDetails (RoomName, RoomIconPath, MosaicName) VALUES (?, ?, ?)", + [RoomName, RoomIconPath, MosaicName] + ); + + const { mosaicId: MosaicID } = await CreateMosaic({ + networkType: 'testnet', + senderPrivateKey: senderPrivateKey[0].PrivateKey, + transferable: false, + deadlineHours: 2 + }); + + await DBPerf( + "INSERT Mosaics", + "INSERT INTO Mosaics (MosaicName, MosaicID, MosaicIconPath) VALUES (?, ?, ?)", + [MosaicName, MosaicID, MosaicIconPath] ); res.status(201).json({ message: "Room created successfully" }); @@ -76,4 +111,4 @@ router.post("/", VCM('LoginToken', process.env.LOGIN_SECRET), upload.fields([{ n } ); -module.exports = router; \ No newline at end of file +export default router; \ No newline at end of file diff --git a/Backend/Workspace/Routes/Login.js b/Backend/Workspace/Routes/Login.js index d953a73d..6704b8a1 100644 --- a/Backend/Workspace/Routes/Login.js +++ b/Backend/Workspace/Routes/Login.js @@ -1,10 +1,14 @@ -const express = require('express'); -const path = require('path'); -const dotenv = require('dotenv'); +import express from 'express'; +import path from 'path'; +import dotenv from 'dotenv'; const router = express.Router(); -const argon2 = require('argon2'); -const DBPerf = require('../Tools/DBPerf'); -const CreateCookie = require('../Tools/CreateCookie'); +import argon2 from 'argon2'; +import { fileURLToPath } from 'url'; +import DBPerf from '../Tools/DBPerf.js'; +import CreateCookie from '../Tools/CreateCookie.js'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); // use系 dotenv.config({ path: path.join(__dirname, "..", ".env") }); @@ -12,7 +16,7 @@ router.use(express.json()); // ========== ブロックチェーンの準備 ========== //const symbolSdk = require('symbol-sdk'); -const InverseVCM = require('../Tools/InverseVCM'); +import InverseVCM from '../Tools/InverseVCM.js'; //const facade = new symbolSdk.facade.SymbolFacade('testnet'); // ========== 画面表示 ========== @@ -64,4 +68,4 @@ router.post("/Submit", async (req, res) => { } }) -module.exports = router; +export default router; diff --git a/Backend/Workspace/Routes/NFC.js b/Backend/Workspace/Routes/NFC.js index 7e0dfa9e..8ee941db 100644 --- a/Backend/Workspace/Routes/NFC.js +++ b/Backend/Workspace/Routes/NFC.js @@ -1,11 +1,12 @@ -const express = require('express'); -const path = require('path'); -const dotenv = require('dotenv').config(); -const DBPref = require('../Tools/DBPerf'); -const argon2 = require('argon2'); +import express from 'express'; +import dotenv from 'dotenv'; +import DBPref from '../Tools/DBPerf.js'; +import argon2 from 'argon2'; const router = express.Router(); +dotenv.config(); + let latestcardUid = null; // 最新のカードUIDを保存する変数 let latestcardTime = null; // 最新のカード検知時間を保存する変数 @@ -71,5 +72,5 @@ router.post('/NFC', (req, res) => { res.status(200).send({ message: 'Success' }); }); -module.exports = router; +export default router; diff --git a/Backend/Workspace/Routes/Register.js b/Backend/Workspace/Routes/Register.js new file mode 100644 index 00000000..814379e0 --- /dev/null +++ b/Backend/Workspace/Routes/Register.js @@ -0,0 +1,95 @@ +// Register.js +import express from 'express'; +import dotenv from 'dotenv'; +import cookieParser from 'cookie-parser'; +import argon2 from 'argon2'; +import DBPerf from '../Tools/DBPerf.js'; +import { encrypt } from '../Tools/AESControl.js'; +import { PrivateKey } from 'symbol-sdk'; +import { SymbolFacade } from 'symbol-sdk/symbol'; +import { fileURLToPath } from 'url'; +import { dirname, join } from 'path'; + +const router = express.Router(); + +// ES Module で __dirname を使えるようにする +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +// 環境変数読み込み +dotenv.config({ path: join(__dirname, '..', '.env') }); + +// use系 +router.use(cookieParser()); +router.use(express.json()); + +// ========== 画面表示 ========== +// /Register/へのアクセスでRegister画面表示 +router.get('/', (req, res) => { + console.log("/Register-API is running"); + res.sendFile(join(__dirname, "..", "..", "..", "Frontend", "dist", "index.html")); +}); + +// ========== 情報送信 ========== +// /Register/SubmitへのアクセスでRegister情報を登録 +router.post('/Submit', async (req, res) => { + console.log("Submit-API is running"); + try { + // 情報の取得 + const { userId, password } = req.body; + + if (!userId || !password) { + return res.status(400).json({ message: "Bad Request: UserIDかPasswordが不足しています。" }); + } + + // ユーザーIDが被っていないか確認 + const exist = await DBPerf( + "Duplicate Check For UserID", + "SELECT * FROM Identify WHERE UserID = ?", + [userId] + ); + if (exist.length > 0) { + return res.status(409).json({ message: "Conflict: このユーザーIDはすでに使われています" }); + } + + // ========== 秘密鍵保存 ========== + const privateKeyObject = PrivateKey.random(); + const privateKey = privateKeyObject.toString(); + const facade = new SymbolFacade('testnet'); + const account = facade.createAccount(privateKeyObject); + const address = account.address.toString(); + + // Pepper を .env から取得 + const pepper = process.env.PEPPER; + if (!pepper) { + return res.status(500).json({ message: "Internal Server Error: サーバー設定エラー" }); + } + + const passwordWithPepper = password + pepper; + + // 秘密鍵の暗号化 + const encryptedPrivateKey = encrypt(passwordWithPepper, privateKey); + + // パスワード + Pepper を Hash 化 + const hashedPassword = await argon2.hash(passwordWithPepper, { + type: argon2.argon2id, + memoryCost: 2 ** 16, // 推奨: 64MB + timeCost: 5, // 計算回数 + parallelism: 1 // 並列数 + }); + + // DB に登録 + await DBPerf( + "Insert Into Identify", + "INSERT INTO Identify (UserID, Password, PrivateKey, Address) VALUES (?, ?, ?, ?)", + [userId, hashedPassword, encryptedPrivateKey, address] + ); + + res.status(200).json({ redirect: "/Home" }); + } catch (err) { + console.error("Register Error:", err); + res.status(500).json({ message: "Internal Server Error: サーバーエラーが発生しました。" }); + } +}); + +export default router; diff --git a/Backend/Workspace/Routes/RoomList.js b/Backend/Workspace/Routes/RoomList.js index cb8c4c80..59f1e70b 100644 --- a/Backend/Workspace/Routes/RoomList.js +++ b/Backend/Workspace/Routes/RoomList.js @@ -1,6 +1,6 @@ -const express = require('express'); -const DBPerf = require('../Tools/DBPerf'); -const VCM = require('../Tools/VerifyCookieMiddleware'); +import express from 'express'; +import DBPerf from '../Tools/DBPerf.js'; +import VCM from '../Tools/VerifyCookieMiddleware.js'; const router = express.Router(); @@ -16,4 +16,4 @@ router.get('/RoomList', VCM('LoginToken', process.env.LOGIN_SECRET), async (req, res.json({ RoomList }); }); -module.exports = router; \ No newline at end of file +export default router; \ No newline at end of file diff --git a/Backend/Workspace/Routes/SendToken.js b/Backend/Workspace/Routes/SendToken.js index 6654c182..dbba3007 100644 --- a/Backend/Workspace/Routes/SendToken.js +++ b/Backend/Workspace/Routes/SendToken.js @@ -1,12 +1,12 @@ -const express = require('express'); +import express from 'express'; const router = express.Router(); -const jwt = require('jsonwebtoken'); -const DBPerf = require('../Tools/DBPerf'); -const VCM = require('../Tools/VerifyCookieMiddleware'); -const LeftToken = require('../Tools/LeftToken'); -const decrypt = require('../Tools/AESControl'); -const CreateTransferTx = require('../Tools/CreateTransferTx'); -const SignAndAnnounce = require('../Tools/SignAndAnnounce'); +import jwt from 'jsonwebtoken'; +import DBPerf from '../Tools/DBPerf.js'; +import VCM from '../Tools/VerifyCookieMiddleware.js'; +import LeftToken from '../Tools/LeftToken.js'; +import { decrypt } from '../Tools/AESControl.js'; +import CreateTransferTx from '../Tools/CreateTransferTx.js'; +import SignAndAnnounce from '../Tools/SignAndAnnounce.js'; // 送金処理 router.post('/SendToken', VCM('LoginToken', process.env.LOGIN_SECRET), async(req, res) => { @@ -93,7 +93,7 @@ router.get('/LeftToken', VCM('LoginToken', process.env.LOGIN_SECRET), async(req, // res.status(200).send(roomDetail); // }); -module.exports = router; +export default router; diff --git a/Backend/Workspace/Routes/SendTokenByNFC.js b/Backend/Workspace/Routes/SendTokenByNFC.js index 25bda3b5..95c01391 100644 --- a/Backend/Workspace/Routes/SendTokenByNFC.js +++ b/Backend/Workspace/Routes/SendTokenByNFC.js @@ -1,13 +1,13 @@ -const express = require('express'); +import express from 'express'; const router = express.Router(); -const crypto = require('crypto'); +import crypto from 'crypto'; // ツール類の読み込み -const DBPerf = require('../Tools/DBPerf'); -const VCM = require('../Tools/VerifyCookieMiddleware'); -const decrypt = require('../Tools/AESControl'); -const CreateTransferTx = require('../Tools/CreateTransferTx'); -const SignAndAnnounce = require('../Tools/SignAndAnnounce'); +import DBPerf from '../Tools/DBPerf.js'; +import VCM from '../Tools/VerifyCookieMiddleware.js'; +import { decrypt } from '../Tools/AESControl.js'; +import CreateTransferTx from '../Tools/CreateTransferTx.js'; +import SignAndAnnounce from '../Tools/SignAndAnnounce.js'; // ============================== // 予約管理 (オンメモリ) @@ -193,4 +193,4 @@ router.post('/NFC', async (req, res) => { } }); -module.exports = router; \ No newline at end of file +export default router; \ No newline at end of file diff --git a/Backend/Workspace/Server.js b/Backend/Workspace/Server.js index 0a53740b..6cb08a05 100644 --- a/Backend/Workspace/Server.js +++ b/Backend/Workspace/Server.js @@ -1,16 +1,20 @@ -const express = require('express'); -const path = require('path'); -// 絶対パス指定 -const dotenv = require('dotenv').config({ path: path.resolve(__dirname, '.env') }); -const cookieParser = require('cookie-parser'); -// Routing自動化 -const fs = require('fs'); +import express from 'express'; +import path from 'path'; +import dotenv from 'dotenv'; +import cookieParser from 'cookie-parser'; +import cors from 'cors'; +import fs from 'fs'; +import { fileURLToPath, pathToFileURL } from 'url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +dotenv.config({ path: path.resolve(__dirname, '.env') }); const routesDir = path.join(__dirname, 'Routes'); const app = express(); // ========== 初期設定 ========== -PORT = process.env.PORT || 5000; +const PORT = process.env.PORT || 5000; // ========== use系 ========== app.use(express.json()); @@ -21,21 +25,22 @@ app.use(express.static(path.join(__dirname, '..', 'Frontend', 'dist'))); // ========== Routes ========== // fs.readdirSync(ディレクトリパス)でそのディレクトリ内のファイル名を配列で取得 -fs.readdirSync(routesDir).forEach((file) => { +for (const file of fs.readdirSync(routesDir)) { // js ファイルだけ対象 - if (!file.endsWith('.js')) return; + if (!file.endsWith('.js')) continue; // APIのエンドポイントをファイル名から作成 const routeName = path.basename(file, '.js'); const routePath = `/${routeName}`; // Routing処理 - const route = require(path.join(routesDir, file)); - app.use(routePath, route); + const routeFileUrl = pathToFileURL(path.join(routesDir, file)).href; + const routeModule = await import(routeFileUrl); + app.use(routePath, routeModule.default); // コンソール表示 console.log(`Route mounted: ${routePath}`); -}); +} // ========== listen ========== // SPA fallback: 未処理の GET リクエストは index.html を返す diff --git a/Backend/Workspace/Tools/AESControl.js b/Backend/Workspace/Tools/AESControl.js index aab86947..d57255ff 100644 --- a/Backend/Workspace/Tools/AESControl.js +++ b/Backend/Workspace/Tools/AESControl.js @@ -1,7 +1,7 @@ -const crypto = require('crypto'); +import crypto from 'crypto'; // ========== 暗号化 ========== -function encrypt(plainKey, plainText) { +export function encrypt(plainKey, plainText) { // ① 平文1から32byteの鍵を作る const key = crypto .createHash('sha256') @@ -29,7 +29,7 @@ function encrypt(plainKey, plainText) { } // ========== 復号化 ========== -function decrypt(plainKey, encryptedObj) { +export function decrypt(plainKey, encryptedObj) { const key = crypto .createHash('sha256') .update(plainKey) @@ -50,7 +50,7 @@ function decrypt(plainKey, encryptedObj) { return decrypted.toString('utf8'); } -module.exports = { +export default { encrypt, decrypt }; \ No newline at end of file diff --git a/Backend/Workspace/Tools/CreateCookie.js b/Backend/Workspace/Tools/CreateCookie.js index efa95cc4..7788ac1b 100644 --- a/Backend/Workspace/Tools/CreateCookie.js +++ b/Backend/Workspace/Tools/CreateCookie.js @@ -16,7 +16,7 @@ Server.jsにおいて.envを絶対パス指定にしておきましょう。 例: const dotenv = require('dotenv').config({ path: path.resolve(__dirname, '.env') }); ========== Manual ==========*/ -const jwt = require('jsonwebtoken'); +import jwt from 'jsonwebtoken'; // CreateCookie.js function CreateCookie({res, cookieName, payload, secretKey, deadlineHours, httpOnly = true, sameSite = 'strict'}) { @@ -35,4 +35,4 @@ function CreateCookie({res, cookieName, payload, secretKey, deadlineHours, httpO console.log(`[${logOwner}] Shutdown!`); } -module.exports = CreateCookie; \ No newline at end of file +export default CreateCookie; \ No newline at end of file diff --git a/Backend/Workspace/Tools/CreateMosaicTx.js b/Backend/Workspace/Tools/CreateMosaicTx.js new file mode 100644 index 00000000..1db01b7d --- /dev/null +++ b/Backend/Workspace/Tools/CreateMosaicTx.js @@ -0,0 +1,60 @@ +// CreateMosaicTx.js +import { PrivateKey } from 'symbol-sdk'; +import { SymbolFacade, KeyPair } from 'symbol-sdk/symbol'; + +export default function CreateMosaicTx({ + networkType = 'testnet', + senderPrivateKey, + transferable = true, + deadlineHours = 2 +}) { + const logOwner = "CreateMosaicTx"; + console.log(`\n${logOwner}-Function is running!\n`); + console.log(`[${logOwner}] Input => networkType: ${networkType}, transferable: ${transferable}, deadlineHours: ${deadlineHours}`); + + // Facade 初期化 + const facade = new SymbolFacade(networkType); + + // 秘密鍵 → KeyPair + const keyPair = new KeyPair(new PrivateKey(senderPrivateKey)); + + // Deadline 作成 + const deadline = facade.network.fromDatetime(Date.now()).addHours(deadlineHours).timestamp; + + // 0〜2^32-1のランダム数からMosaicIDを生成するためのnonceを生成 + const nonce = Math.floor(Math.random() * 0xffffffff); + + // モザイクを定義するトランザクション作成 + const mosaicDefinitionTx = facade.transactionFactory.create({ + type: 'mosaic_definition_transaction_v1', + signerPublicKey: keyPair.publicKey, + duration: 0, + nonce: nonce, + mosaicId: undefined, + flags: { + supplyMutable: true, + transferable: transferable, + restrictable: false, + revocable: false, + }, + divisibility: 0, + deadline: deadline + }); + + // MosaicIDの計算 + const mosaicId = facade.mosaic.createMosaicId(nonce, keyPair.publicKey).toHex(); + + console.log(`[${logOwner}] Output => mosaicDefinitionTx: \n${{ + type: mosaicDefinitionTx.type, + supplyMutable: mosaicDefinitionTx.flags.supplyMutable, + transferable: mosaicDefinitionTx.flags.transferable, + }}\nMosaicID: ${mosaicId}`); + console.log(`[${logOwner}] Shutdown!`); + + return { + mosaicId, + mosaicDefinitionTx, + keyPair, + facade + }; +} diff --git a/Backend/Workspace/Tools/CreateTransferTx.js b/Backend/Workspace/Tools/CreateTransferTx.js index bb9f8308..58179e90 100644 --- a/Backend/Workspace/Tools/CreateTransferTx.js +++ b/Backend/Workspace/Tools/CreateTransferTx.js @@ -23,7 +23,8 @@ mosaicはBigint型(数字末尾にnがつく)で指定する必要がある。 ========== Manual ==========*/ // CreateTransferTx.js -const symbolSdk = require('symbol-sdk'); +import { PrivateKey } from 'symbol-sdk'; +import { SymbolFacade, KeyPair } from 'symbol-sdk/symbol'; function CreateTransferTx({ networkType = 'testnet', @@ -40,9 +41,9 @@ function CreateTransferTx({ console.log(`[${logOwner}] Input => networkType: ${networkType}, recipientRawAddress: ${recipientRawAddress}, messageText: ${messageText}, mosaics: ${mosaics}, deadlineHours: ${deadlineHours}`); // Facade 初期化 - const facade = new symbolSdk.facade.SymbolFacade(networkType); + const facade = new SymbolFacade(networkType); // 秘密鍵 → KeyPair - const keyPair = new symbolSdk.symbol.KeyPair( new symbolSdk.PrivateKey(senderPrivateKey) ); + const keyPair = new KeyPair(new PrivateKey(senderPrivateKey)); // 宛先アドレス解析(Base32 → 生データ + ネットワーク検証) const recipient = facade.network.parseAddress(recipientRawAddress); // Deadline 作成 @@ -78,4 +79,4 @@ function CreateTransferTx({ }; } -module.exports = CreateTransferTx; +export default CreateTransferTx; diff --git a/Backend/Workspace/Tools/DBPerf.js b/Backend/Workspace/Tools/DBPerf.js index 2d1a9b49..0d645578 100644 --- a/Backend/Workspace/Tools/DBPerf.js +++ b/Backend/Workspace/Tools/DBPerf.js @@ -19,6 +19,19 @@ JSON ========== Manual ==========*/ // DBPerf.js +import mysql from 'mysql2/promise'; + +// DB接続設定 + +// DB接続プールを作成 +const db = mysql.createPool({ + host: process.env.DB_HOST, + user: process.env.DB_USER, + password: process.env.DB_PASSWORD, + database: process.env.DB_NAME, +}); + +// DB接続プールの作成 async function DBPerf(label, query, elements) { // Startup Log const logOwner = "DBPerf"; @@ -46,4 +59,4 @@ async function DBPerf(label, query, elements) { } } -module.exports = DBPerf; \ No newline at end of file +export default DBPerf; \ No newline at end of file diff --git a/Backend/Workspace/Tools/InverseVCM.js b/Backend/Workspace/Tools/InverseVCM.js index 217075fb..24606094 100644 --- a/Backend/Workspace/Tools/InverseVCM.js +++ b/Backend/Workspace/Tools/InverseVCM.js @@ -15,7 +15,7 @@ app.get("/", InverseVCM('LoginToken', LOGIN_SECRET), (req, res) => {...]}); のようにしてミドルウェアとして使う ========== Manual ==========*/ -const jwt = require('jsonwebtoken'); +import jwt from 'jsonwebtoken'; // InverseVCM.js function InverseVCM(cookieName, secretKey) { @@ -49,4 +49,4 @@ function InverseVCM(cookieName, secretKey) { }; } -module.exports = InverseVCM; \ No newline at end of file +export default InverseVCM; \ No newline at end of file diff --git a/Backend/Workspace/Tools/LeftToken.js b/Backend/Workspace/Tools/LeftToken.js index e6321ba4..46232a88 100644 --- a/Backend/Workspace/Tools/LeftToken.js +++ b/Backend/Workspace/Tools/LeftToken.js @@ -1,4 +1,4 @@ -const axios = require('axios'); +import axios from 'axios'; async function LeftToken(address, NODE_URL) { try{ @@ -10,4 +10,4 @@ async function LeftToken(address, NODE_URL) { } } -module.exports = LeftToken; \ No newline at end of file +export default LeftToken; \ No newline at end of file diff --git a/Backend/Workspace/Tools/SignAndAnnounce.js b/Backend/Workspace/Tools/SignAndAnnounce.js index f2138918..cab3840c 100644 --- a/Backend/Workspace/Tools/SignAndAnnounce.js +++ b/Backend/Workspace/Tools/SignAndAnnounce.js @@ -45,4 +45,4 @@ async function SignAndAnnounce(tx, keyPair, facade, nodeUrl) { return; } -module.exports = SignAndAnnounce; +export default SignAndAnnounce; diff --git a/Backend/Workspace/Tools/VCM.js b/Backend/Workspace/Tools/VCM.js index a0a1b996..1610e669 100644 --- a/Backend/Workspace/Tools/VCM.js +++ b/Backend/Workspace/Tools/VCM.js @@ -16,7 +16,7 @@ app.get("/", VCM('LoginToken', LOGIN_SECRET), (req, res) => {...]}); のようにしてミドルウェアとして使う ========== Manual ==========*/ -const jwt = require('jsonwebtoken'); +import jwt from 'jsonwebtoken'; // VerifyCookieMiddleware.js function VCM(cookieName, secretKey) { @@ -49,4 +49,4 @@ function VCM(cookieName, secretKey) { }; } -module.exports = VCM; \ No newline at end of file +export default VCM; \ No newline at end of file diff --git a/Backend/Workspace/Tools/VerifyCookieMiddleware.js b/Backend/Workspace/Tools/VerifyCookieMiddleware.js index 8adfd7fd..1de96241 100644 --- a/Backend/Workspace/Tools/VerifyCookieMiddleware.js +++ b/Backend/Workspace/Tools/VerifyCookieMiddleware.js @@ -16,7 +16,7 @@ app.get("/", Auth(LOGIN_SECRET, 'LoginToken'), (req, res) => {...]}); のようにしてミドルウェアとして使う ========== Manual ==========*/ -const jwt = require('jsonwebtoken'); +import jwt from 'jsonwebtoken'; // VerifyCookieMiddleware.js function VCM(cookieName, secretKey) { @@ -47,4 +47,4 @@ function VCM(cookieName, secretKey) { }; } -module.exports = VCM; +export default VCM; diff --git a/Backend/node_modules/.bin/baseline-browser-mapping b/Backend/node_modules/.bin/baseline-browser-mapping index d2961883..1977474b 120000 --- a/Backend/node_modules/.bin/baseline-browser-mapping +++ b/Backend/node_modules/.bin/baseline-browser-mapping @@ -1 +1,16 @@ -../baseline-browser-mapping/dist/cli.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../baseline-browser-mapping/dist/cli.js" "$@" +else + exec node "$basedir/../baseline-browser-mapping/dist/cli.js" "$@" +fi diff --git a/Backend/node_modules/.bin/browserslist b/Backend/node_modules/.bin/browserslist index 3cd991b2..60e71ad8 120000 --- a/Backend/node_modules/.bin/browserslist +++ b/Backend/node_modules/.bin/browserslist @@ -1 +1,16 @@ -../browserslist/cli.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@" +else + exec node "$basedir/../browserslist/cli.js" "$@" +fi diff --git a/Backend/node_modules/.bin/esparse b/Backend/node_modules/.bin/esparse index 7423b18b..601762ce 120000 --- a/Backend/node_modules/.bin/esparse +++ b/Backend/node_modules/.bin/esparse @@ -1 +1,16 @@ -../esprima/bin/esparse.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../esprima/bin/esparse.js" "$@" +else + exec node "$basedir/../esprima/bin/esparse.js" "$@" +fi diff --git a/Backend/node_modules/.bin/esvalidate b/Backend/node_modules/.bin/esvalidate index 16069eff..e2fee1f1 120000 --- a/Backend/node_modules/.bin/esvalidate +++ b/Backend/node_modules/.bin/esvalidate @@ -1 +1,16 @@ -../esprima/bin/esvalidate.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../esprima/bin/esvalidate.js" "$@" +else + exec node "$basedir/../esprima/bin/esvalidate.js" "$@" +fi diff --git a/Backend/node_modules/.bin/glob b/Backend/node_modules/.bin/glob index 85c9c1db..6fbc4bb8 120000 --- a/Backend/node_modules/.bin/glob +++ b/Backend/node_modules/.bin/glob @@ -1 +1,16 @@ -../glob/dist/esm/bin.mjs \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../glob/dist/esm/bin.mjs" "$@" +else + exec node "$basedir/../glob/dist/esm/bin.mjs" "$@" +fi diff --git a/Backend/node_modules/.bin/import-local-fixture b/Backend/node_modules/.bin/import-local-fixture index ff4b1048..3a654413 120000 --- a/Backend/node_modules/.bin/import-local-fixture +++ b/Backend/node_modules/.bin/import-local-fixture @@ -1 +1,16 @@ -../import-local/fixtures/cli.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../import-local/fixtures/cli.js" "$@" +else + exec node "$basedir/../import-local/fixtures/cli.js" "$@" +fi diff --git a/Backend/node_modules/.bin/jest b/Backend/node_modules/.bin/jest index 61c18615..61b6f565 120000 --- a/Backend/node_modules/.bin/jest +++ b/Backend/node_modules/.bin/jest @@ -1 +1,16 @@ -../jest/bin/jest.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../jest/bin/jest.js" "$@" +else + exec node "$basedir/../jest/bin/jest.js" "$@" +fi diff --git a/Backend/node_modules/.bin/js-yaml b/Backend/node_modules/.bin/js-yaml index 9dbd010d..82416ef1 120000 --- a/Backend/node_modules/.bin/js-yaml +++ b/Backend/node_modules/.bin/js-yaml @@ -1 +1,16 @@ -../js-yaml/bin/js-yaml.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../js-yaml/bin/js-yaml.js" "$@" +else + exec node "$basedir/../js-yaml/bin/js-yaml.js" "$@" +fi diff --git a/Backend/node_modules/.bin/jsesc b/Backend/node_modules/.bin/jsesc index 7237604c..879c4133 120000 --- a/Backend/node_modules/.bin/jsesc +++ b/Backend/node_modules/.bin/jsesc @@ -1 +1,16 @@ -../jsesc/bin/jsesc \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@" +else + exec node "$basedir/../jsesc/bin/jsesc" "$@" +fi diff --git a/Backend/node_modules/.bin/json5 b/Backend/node_modules/.bin/json5 index 217f3798..abf72a4e 120000 --- a/Backend/node_modules/.bin/json5 +++ b/Backend/node_modules/.bin/json5 @@ -1 +1,16 @@ -../json5/lib/cli.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../json5/lib/cli.js" "$@" +else + exec node "$basedir/../json5/lib/cli.js" "$@" +fi diff --git a/Backend/node_modules/.bin/mime b/Backend/node_modules/.bin/mime index fbb7ee0e..7751de3c 120000 --- a/Backend/node_modules/.bin/mime +++ b/Backend/node_modules/.bin/mime @@ -1 +1,16 @@ -../mime/cli.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../mime/cli.js" "$@" +else + exec node "$basedir/../mime/cli.js" "$@" +fi diff --git a/Backend/node_modules/.bin/napi-postinstall b/Backend/node_modules/.bin/napi-postinstall index 8407c964..985cc4c7 120000 --- a/Backend/node_modules/.bin/napi-postinstall +++ b/Backend/node_modules/.bin/napi-postinstall @@ -1 +1,16 @@ -../napi-postinstall/lib/cli.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../napi-postinstall/lib/cli.js" "$@" +else + exec node "$basedir/../napi-postinstall/lib/cli.js" "$@" +fi diff --git a/Backend/node_modules/.bin/node-which b/Backend/node_modules/.bin/node-which index 6f8415ec..b49b03f7 120000 --- a/Backend/node_modules/.bin/node-which +++ b/Backend/node_modules/.bin/node-which @@ -1 +1,16 @@ -../which/bin/node-which \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../which/bin/node-which" "$@" +else + exec node "$basedir/../which/bin/node-which" "$@" +fi diff --git a/Backend/node_modules/.bin/parser b/Backend/node_modules/.bin/parser index ce7bf97e..7696ad41 120000 --- a/Backend/node_modules/.bin/parser +++ b/Backend/node_modules/.bin/parser @@ -1 +1,16 @@ -../@babel/parser/bin/babel-parser.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../@babel/parser/bin/babel-parser.js" "$@" +else + exec node "$basedir/../@babel/parser/bin/babel-parser.js" "$@" +fi diff --git a/Backend/node_modules/.bin/semver b/Backend/node_modules/.bin/semver index 5aaadf42..97c53279 120000 --- a/Backend/node_modules/.bin/semver +++ b/Backend/node_modules/.bin/semver @@ -1 +1,16 @@ -../semver/bin/semver.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" +else + exec node "$basedir/../semver/bin/semver.js" "$@" +fi diff --git a/Backend/node_modules/.bin/update-browserslist-db b/Backend/node_modules/.bin/update-browserslist-db index b11e16f3..cced63c4 120000 --- a/Backend/node_modules/.bin/update-browserslist-db +++ b/Backend/node_modules/.bin/update-browserslist-db @@ -1 +1,16 @@ -../update-browserslist-db/cli.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../update-browserslist-db/cli.js" "$@" +else + exec node "$basedir/../update-browserslist-db/cli.js" "$@" +fi diff --git a/Backend/node_modules/.package-lock.json b/Backend/node_modules/.package-lock.json index fd111c8b..43f55e0c 100644 --- a/Backend/node_modules/.package-lock.json +++ b/Backend/node_modules/.package-lock.json @@ -1026,6 +1026,12 @@ "@sinonjs/commons": "^3.0.1" } }, + "node_modules/@symbol-blockchain-community/symbol-rest-client": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@symbol-blockchain-community/symbol-rest-client/-/symbol-rest-client-1.0.2.tgz", + "integrity": "sha512-RaSmjsQ+BKXNtnzSPa+y+O6wQaAfjawZ1uiRHmPZs3g7xB4ATwWRAD/IZCRjAzoQdh/xFakO05q0vnpqL6KrGQ==", + "license": "MIT" + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -1139,38 +1145,10 @@ "dev": true, "license": "ISC" }, - "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", - "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", - "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", - "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", "cpu": [ "x64" ], @@ -1178,7 +1156,7 @@ "license": "MIT", "optional": true, "os": [ - "linux" + "win32" ] }, "node_modules/accepts": { @@ -1296,7 +1274,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, "license": "MIT" }, "node_modules/available-typed-arrays": { @@ -1323,6 +1300,17 @@ "node": ">= 6.0.0" } }, + "node_modules/axios": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz", + "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/babel-jest": { "version": "30.2.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz", @@ -1910,7 +1898,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" @@ -2155,7 +2142,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" @@ -2349,7 +2335,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -2584,6 +2569,26 @@ "node": ">=8" } }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/for-each": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", @@ -2620,7 +2625,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", - "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -2637,7 +2641,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -2647,7 +2650,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -2699,21 +2701,6 @@ "dev": true, "license": "ISC" }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -4790,6 +4777,12 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, "node_modules/pure-rand": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", diff --git a/Backend/node_modules/@unrs/resolver-binding-linux-x64-gnu/README.md b/Backend/node_modules/@unrs/resolver-binding-linux-x64-gnu/README.md deleted file mode 100644 index 4051db30..00000000 --- a/Backend/node_modules/@unrs/resolver-binding-linux-x64-gnu/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@unrs/resolver-binding-linux-x64-gnu` - -This is the **x86_64-unknown-linux-gnu** binary for `@unrs/resolver-binding` diff --git a/Backend/node_modules/@unrs/resolver-binding-linux-x64-gnu/package.json b/Backend/node_modules/@unrs/resolver-binding-linux-x64-gnu/package.json deleted file mode 100644 index 61b8720d..00000000 --- a/Backend/node_modules/@unrs/resolver-binding-linux-x64-gnu/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@unrs/resolver-binding-linux-x64-gnu", - "version": "1.11.1", - "cpu": [ - "x64" - ], - "main": "resolver.linux-x64-gnu.node", - "files": [ - "resolver.linux-x64-gnu.node" - ], - "description": "UnRS Resolver Node API with PNP support", - "author": "JounQin (https://www.1stG.me)", - "homepage": "https://github.com/unrs/unrs-resolver#readme", - "license": "MIT", - "publishConfig": { - "registry": "https://registry.npmjs.org", - "access": "public" - }, - "repository": "git+https://github.com/unrs/unrs-resolver.git", - "os": [ - "linux" - ], - "libc": [ - "glibc" - ] -} \ No newline at end of file diff --git a/Backend/node_modules/@unrs/resolver-binding-linux-x64-gnu/resolver.linux-x64-gnu.node b/Backend/node_modules/@unrs/resolver-binding-linux-x64-gnu/resolver.linux-x64-gnu.node deleted file mode 100644 index 0fff14d9..00000000 Binary files a/Backend/node_modules/@unrs/resolver-binding-linux-x64-gnu/resolver.linux-x64-gnu.node and /dev/null differ diff --git a/Backend/node_modules/@unrs/resolver-binding-linux-x64-musl/README.md b/Backend/node_modules/@unrs/resolver-binding-linux-x64-musl/README.md deleted file mode 100644 index 1f1576ad..00000000 --- a/Backend/node_modules/@unrs/resolver-binding-linux-x64-musl/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@unrs/resolver-binding-linux-x64-musl` - -This is the **x86_64-unknown-linux-musl** binary for `@unrs/resolver-binding` diff --git a/Backend/node_modules/@unrs/resolver-binding-linux-x64-musl/package.json b/Backend/node_modules/@unrs/resolver-binding-linux-x64-musl/package.json deleted file mode 100644 index c2e97bdb..00000000 --- a/Backend/node_modules/@unrs/resolver-binding-linux-x64-musl/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@unrs/resolver-binding-linux-x64-musl", - "version": "1.11.1", - "cpu": [ - "x64" - ], - "main": "resolver.linux-x64-musl.node", - "files": [ - "resolver.linux-x64-musl.node" - ], - "description": "UnRS Resolver Node API with PNP support", - "author": "JounQin (https://www.1stG.me)", - "homepage": "https://github.com/unrs/unrs-resolver#readme", - "license": "MIT", - "publishConfig": { - "registry": "https://registry.npmjs.org", - "access": "public" - }, - "repository": "git+https://github.com/unrs/unrs-resolver.git", - "os": [ - "linux" - ], - "libc": [ - "musl" - ] -} \ No newline at end of file diff --git a/Backend/node_modules/@unrs/resolver-binding-linux-x64-musl/resolver.linux-x64-musl.node b/Backend/node_modules/@unrs/resolver-binding-linux-x64-musl/resolver.linux-x64-musl.node deleted file mode 100644 index d881840b..00000000 Binary files a/Backend/node_modules/@unrs/resolver-binding-linux-x64-musl/resolver.linux-x64-musl.node and /dev/null differ diff --git a/Backend/node_modules/istanbul-lib-instrument/node_modules/.bin/semver b/Backend/node_modules/istanbul-lib-instrument/node_modules/.bin/semver index 5aaadf42..97c53279 120000 --- a/Backend/node_modules/istanbul-lib-instrument/node_modules/.bin/semver +++ b/Backend/node_modules/istanbul-lib-instrument/node_modules/.bin/semver @@ -1 +1,16 @@ -../semver/bin/semver.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" +else + exec node "$basedir/../semver/bin/semver.js" "$@" +fi diff --git a/Backend/node_modules/jest-snapshot/node_modules/.bin/semver b/Backend/node_modules/jest-snapshot/node_modules/.bin/semver index 5aaadf42..97c53279 120000 --- a/Backend/node_modules/jest-snapshot/node_modules/.bin/semver +++ b/Backend/node_modules/jest-snapshot/node_modules/.bin/semver @@ -1 +1,16 @@ -../semver/bin/semver.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" +else + exec node "$basedir/../semver/bin/semver.js" "$@" +fi diff --git a/Backend/node_modules/make-dir/node_modules/.bin/semver b/Backend/node_modules/make-dir/node_modules/.bin/semver index 5aaadf42..97c53279 120000 --- a/Backend/node_modules/make-dir/node_modules/.bin/semver +++ b/Backend/node_modules/make-dir/node_modules/.bin/semver @@ -1 +1,16 @@ -../semver/bin/semver.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" +else + exec node "$basedir/../semver/bin/semver.js" "$@" +fi diff --git a/Backend/package-lock.json b/Backend/package-lock.json index a1feccc4..259f171a 100644 --- a/Backend/package-lock.json +++ b/Backend/package-lock.json @@ -9,7 +9,9 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "@symbol-blockchain-community/symbol-rest-client": "^1.0.2", "argon2": "^0.44.0", + "axios": "^1.6.0", "bcrypt": "^6.0.0", "cookie-parser": "^1.4.7", "cors": "^2.8.6", @@ -1094,6 +1096,12 @@ "@sinonjs/commons": "^3.0.1" } }, + "node_modules/@symbol-blockchain-community/symbol-rest-client": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@symbol-blockchain-community/symbol-rest-client/-/symbol-rest-client-1.0.2.tgz", + "integrity": "sha512-RaSmjsQ+BKXNtnzSPa+y+O6wQaAfjawZ1uiRHmPZs3g7xB4ATwWRAD/IZCRjAzoQdh/xFakO05q0vnpqL6KrGQ==", + "license": "MIT" + }, "node_modules/@tybys/wasm-util": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", @@ -1602,7 +1610,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, "license": "MIT" }, "node_modules/available-typed-arrays": { @@ -1629,6 +1636,17 @@ "node": ">= 6.0.0" } }, + "node_modules/axios": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz", + "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/babel-jest": { "version": "30.2.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz", @@ -2216,7 +2234,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" @@ -2461,7 +2478,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" @@ -2518,18 +2534,6 @@ "url": "https://dotenvx.com" } }, - "node_modules/dotenv": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz", - "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -2667,7 +2671,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -2902,6 +2905,26 @@ "node": ">=8" } }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/for-each": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", @@ -2938,7 +2961,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", - "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -2955,7 +2977,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -2965,7 +2986,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -5108,6 +5128,12 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, "node_modules/pure-rand": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", diff --git a/Backend/package.json b/Backend/package.json index fe32f666..b78ad736 100644 --- a/Backend/package.json +++ b/Backend/package.json @@ -2,15 +2,16 @@ "name": "backend", "version": "1.0.0", "description": "", - "main": "index.js", + "main": "Workspace/Server.js", "scripts": { - "test": "jest" + "test": "node --experimental-vm-modules ./node_modules/jest/bin/jest.js" }, "keywords": [], "author": "", "license": "ISC", - "type": "commonjs", + "type": "module", "dependencies": { + "@symbol-blockchain-community/symbol-rest-client": "^1.0.2", "argon2": "^0.44.0", "axios": "^1.6.0", "bcrypt": "^6.0.0", diff --git a/Frontend/package-lock.json b/Frontend/package-lock.json index 26b2355b..dade9aef 100644 --- a/Frontend/package-lock.json +++ b/Frontend/package-lock.json @@ -59,6 +59,7 @@ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -1433,6 +1434,7 @@ "integrity": "sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~7.16.0" } @@ -1443,6 +1445,7 @@ "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -1502,6 +1505,7 @@ "integrity": "sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.56.0", "@typescript-eslint/types": "8.56.0", @@ -1766,6 +1770,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1871,6 +1876,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -1999,7 +2005,8 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/debug": { "version": "4.4.3", @@ -2104,6 +2111,7 @@ "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -2799,6 +2807,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -2860,6 +2869,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -2869,6 +2879,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", "license": "MIT", + "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -3126,6 +3137,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -3212,6 +3224,7 @@ "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -3333,6 +3346,7 @@ "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 7611e308..c9cd497c 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -3,6 +3,158 @@ "lockfileVersion": 3, "requires": true, "packages": { + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@types/node": { + "version": "24.10.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.13.tgz", + "integrity": "sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/base-x": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz", + "integrity": "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==", + "license": "MIT" + }, + "node_modules/bitcore-lib": { + "version": "11.5.1", + "resolved": "https://registry.npmjs.org/bitcore-lib/-/bitcore-lib-11.5.1.tgz", + "integrity": "sha512-/DjKIY6GzCm8YB3HDGdhP6UtNHGC8KjT7tt7eMz2UNk/Z6AQgMZsyhogSiEq4qpWanP8XeJaRcpbccOJX96MRg==", + "license": "MIT", + "dependencies": { + "bech32": "=2.0.0", + "bn.js": "=4.11.8", + "bs58": "^4.0.1", + "buffer-compare": "=1.1.1", + "elliptic": "^6.5.3", + "inherits": "=2.0.1", + "lodash": "^4.17.20" + } + }, + "node_modules/bitcore-mnemonic": { + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/bitcore-mnemonic/-/bitcore-mnemonic-11.3.7.tgz", + "integrity": "sha512-fyjjrkfDkUnjZ4l3he6y7Cyit9NKbVGbWGRlpCefyGGZUxXf3wkbEeQwa2H7iQhJqVyyEmpecL6XmZvudRSkcA==", + "license": "MIT", + "dependencies": { + "bitcore-lib": "^11.3.7", + "unorm": "^1.4.1" + }, + "peerDependencies": { + "bitcore-lib": "*" + } + }, + "node_modules/bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "license": "MIT" + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "license": "MIT" + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/buffer-compare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-compare/-/buffer-compare-1.1.1.tgz", + "integrity": "sha512-O6NvNiHZMd3mlIeMDjP6t/gPG75OqGPeiRZXoMQZJ6iy9GofCls4Ijs5YkPZZwoysizLiedhticmdyx/GyHghA==" + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/cookie": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", @@ -16,6 +168,12 @@ "url": "https://opencollective.com/express" } }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -23,6 +181,155 @@ "license": "MIT", "peer": true }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.3.tgz", + "integrity": "sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==", + "license": "MIT" + }, + "node_modules/elliptic/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/goober": { "version": "2.1.18", "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.18.tgz", @@ -32,6 +339,198 @@ "csstype": "^3.0.10" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz", + "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/hash-base/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hash.js/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "license": "ISC" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, "node_modules/react": { "version": "19.2.4", "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", @@ -110,6 +609,72 @@ "react-dom": ">=18" } }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/ripemd160": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz", + "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==", + "license": "MIT", + "dependencies": { + "hash-base": "^3.1.2", + "inherits": "^2.0.4" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ripemd160/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/scheduler": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", @@ -121,6 +686,135 @@ "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", "license": "MIT" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/symbol-crypto-wasm-node": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/symbol-crypto-wasm-node/-/symbol-crypto-wasm-node-0.1.1.tgz", + "integrity": "sha512-gASOhy8+uITSZh5bCYKve5GFtQQ2yQjTFqYNRO4Wq5mH29Ai+3TyKTAq9wZ6bwQfgm7j8U4aqmwFn9WdsXU4eQ==", + "optional": true + }, + "node_modules/symbol-sdk": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/symbol-sdk/-/symbol-sdk-3.3.0.tgz", + "integrity": "sha512-D03aqWBeTZONxZh1UJLfq7naYtlmn4qQKCuksYaU8K5mAxK+g0uOJRK63f6ehDlpejJxRiJiAMDVPKSX8hSqQg==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.8.0", + "@types/node": "^24.2.0", + "bitcore-mnemonic": "~11.3.2", + "ripemd160": "~2.0.2" + }, + "optionalDependencies": { + "symbol-crypto-wasm-node": "^0.1.1" + } + }, + "node_modules/to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "license": "MIT", + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/to-buffer/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/unorm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", + "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==", + "license": "MIT or GPL-2.0", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } } } } diff --git a/package-lock.json b/package-lock.json index c8ed2395..e0ac11ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,160 @@ "": { "dependencies": { "react-hot-toast": "^2.6.0", - "react-router-dom": "^7.13.0" + "react-router-dom": "^7.13.0", + "symbol-sdk": "^3.3.0" + } + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@types/node": { + "version": "24.10.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.13.tgz", + "integrity": "sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/base-x": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz", + "integrity": "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==", + "license": "MIT" + }, + "node_modules/bitcore-lib": { + "version": "11.5.1", + "resolved": "https://registry.npmjs.org/bitcore-lib/-/bitcore-lib-11.5.1.tgz", + "integrity": "sha512-/DjKIY6GzCm8YB3HDGdhP6UtNHGC8KjT7tt7eMz2UNk/Z6AQgMZsyhogSiEq4qpWanP8XeJaRcpbccOJX96MRg==", + "license": "MIT", + "dependencies": { + "bech32": "=2.0.0", + "bn.js": "=4.11.8", + "bs58": "^4.0.1", + "buffer-compare": "=1.1.1", + "elliptic": "^6.5.3", + "inherits": "=2.0.1", + "lodash": "^4.17.20" + } + }, + "node_modules/bitcore-mnemonic": { + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/bitcore-mnemonic/-/bitcore-mnemonic-11.3.7.tgz", + "integrity": "sha512-fyjjrkfDkUnjZ4l3he6y7Cyit9NKbVGbWGRlpCefyGGZUxXf3wkbEeQwa2H7iQhJqVyyEmpecL6XmZvudRSkcA==", + "license": "MIT", + "dependencies": { + "bitcore-lib": "^11.3.7", + "unorm": "^1.4.1" + }, + "peerDependencies": { + "bitcore-lib": "*" + } + }, + "node_modules/bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "license": "MIT" + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "license": "MIT" + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/buffer-compare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-compare/-/buffer-compare-1.1.1.tgz", + "integrity": "sha512-O6NvNiHZMd3mlIeMDjP6t/gPG75OqGPeiRZXoMQZJ6iy9GofCls4Ijs5YkPZZwoysizLiedhticmdyx/GyHghA==" + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/cookie": { @@ -22,6 +175,12 @@ "url": "https://opencollective.com/express" } }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -29,6 +188,155 @@ "license": "MIT", "peer": true }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.3.tgz", + "integrity": "sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==", + "license": "MIT" + }, + "node_modules/elliptic/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/goober": { "version": "2.1.18", "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.18.tgz", @@ -38,6 +346,198 @@ "csstype": "^3.0.10" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz", + "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/hash-base/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hash.js/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "license": "ISC" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, "node_modules/react": { "version": "19.2.4", "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", @@ -116,6 +616,72 @@ "react-dom": ">=18" } }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/ripemd160": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz", + "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==", + "license": "MIT", + "dependencies": { + "hash-base": "^3.1.2", + "inherits": "^2.0.4" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ripemd160/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/scheduler": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", @@ -127,6 +693,135 @@ "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", "license": "MIT" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/symbol-crypto-wasm-node": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/symbol-crypto-wasm-node/-/symbol-crypto-wasm-node-0.1.1.tgz", + "integrity": "sha512-gASOhy8+uITSZh5bCYKve5GFtQQ2yQjTFqYNRO4Wq5mH29Ai+3TyKTAq9wZ6bwQfgm7j8U4aqmwFn9WdsXU4eQ==", + "optional": true + }, + "node_modules/symbol-sdk": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/symbol-sdk/-/symbol-sdk-3.3.0.tgz", + "integrity": "sha512-D03aqWBeTZONxZh1UJLfq7naYtlmn4qQKCuksYaU8K5mAxK+g0uOJRK63f6ehDlpejJxRiJiAMDVPKSX8hSqQg==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.8.0", + "@types/node": "^24.2.0", + "bitcore-mnemonic": "~11.3.2", + "ripemd160": "~2.0.2" + }, + "optionalDependencies": { + "symbol-crypto-wasm-node": "^0.1.1" + } + }, + "node_modules/to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "license": "MIT", + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/to-buffer/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/unorm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", + "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==", + "license": "MIT or GPL-2.0", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } } } } diff --git a/package.json b/package.json index f8d38ffa..1e0f83d4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { "dependencies": { "react-hot-toast": "^2.6.0", - "react-router-dom": "^7.13.0" + "react-router-dom": "^7.13.0", + "symbol-sdk": "^3.3.0" } }