diff --git a/.env.tmp b/.env.tmp index 116ab48cf..4e9fa287e 100644 --- a/.env.tmp +++ b/.env.tmp @@ -8,10 +8,11 @@ VITE_STRIPE_PUBLIC_KEY='' VITE_APP_URL=https://app.socious.io/ VITE_ACCOUNT_CENTER_URL=https://dev-id.socious.io/ VITE_FUND_URL=https://devfund.socious.org/ -VITE_VERIFY_URL=https://wallet.socious.io/ +VITE_VERIFY_URL=https://devapp.shinid.com/ VITE_CLIENT_SECRET_TOKEN_CLIENT_ID='' VITE_CLIENT_SECRET_TOKEN_REDIRECT_URL=https://app.socious.io/jobIndexing STORYBOOK_FIGMA_ACCESS_TOKEN='' VITE_GOOGLE_RECAPTCHA_SITE_KEY='' VITE_BLOCKFROST_PROJECT_ID='' -VITE_CARDANO_PAYOUT_ADERESS='' \ No newline at end of file +VITE_CARDANO_PAYOUT_ADERESS='' +GEMINI_API_KEY= \ No newline at end of file diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 3274e2aa7..0fc7cc4d3 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -29,11 +29,14 @@ jobs: PORT: 3000 VITE_ENV: development VITE_BASE_URL: https://dev.socious.io/api/v2 + VITE_BASE_URL_V3: https://dev.socious.io/api/v3 VITE_APP_URL: https://webapp2.socious.io/ VITE_JP_STRIPE_PUBLIC_KEY: pk_test VITE_DAPP_ENV: testnet VITE_GOOGLE_OAUTH_CLIENT_ID: id VITE_GOOGLE_RECAPTCHA_SITE_KEY: secret + VITE_BLOCKFROST_PROJECT_ID: id + VITE_CARDANO_PAYOUT_ADERESS: address - name: Check Status if: failure() diff --git a/.github/workflows/release-android.yml b/.github/workflows/release-android.yml index 47e81dd7f..21b43b57f 100644 --- a/.github/workflows/release-android.yml +++ b/.github/workflows/release-android.yml @@ -65,6 +65,8 @@ jobs: VITE_ACCOUNT_CENTER_URL: ${{ vars.ACCOUNT_CENTER_URL }} VITE_FUND_URL: ${{ vars.FUND_URL }} VITE_VERIFY_URL: ${{ vars.VERIFY_URL }} + VITE_BLOCKFROST_PROJECT_ID: ${{ vars.BLOCKFROST_PROJECT_ID }} + VITE_CARDANO_PAYOUT_ADERESS: ${{ vars.CARDANO_PAYOUT_ADERESS }} - name: Get the latest version code using uses: Vacxe/google-play-cli-kt@0.4.8 diff --git a/.github/workflows/release-ios.yml b/.github/workflows/release-ios.yml index a8cad25c2..91866b07b 100644 --- a/.github/workflows/release-ios.yml +++ b/.github/workflows/release-ios.yml @@ -97,6 +97,8 @@ jobs: VITE_ACCOUNT_CENTER_URL: ${{ vars.ACCOUNT_CENTER_URL }} VITE_FUND_URL: ${{ vars.FUND_URL }} VITE_VERIFY_URL: ${{ vars.VERIFY_URL }} + VITE_BLOCKFROST_PROJECT_ID: ${{ vars.BLOCKFROST_PROJECT_ID }} + VITE_CARDANO_PAYOUT_ADERESS: ${{ vars.CARDANO_PAYOUT_ADERESS }} - name: Extracting Google Service plist run: | @@ -108,7 +110,7 @@ jobs: - name: Extracting provisioning profile (Distribution) run: | - mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles + mkdir -p ${{env.MOBILE_PROVISIONING_PATH}} echo ${{ env.IOS_PROVISIONING_PROFILE_BASE64 }} | base64 --decode > ${{env.MOBILE_PROVISIONING_PATH}}/socious-provisioing-profile-distribution-appstore.mobileprovision - name: Extracting auth key file (Apple API) @@ -122,7 +124,7 @@ jobs: - name: Extracting signing certificate run: | - echo ${{ env.IOS_DISTRIBUTION_CERT_BASE64 }} | base64 --decode > $SIGNING_CERTIFICATE_PATH + echo ${{ env.IOS_DISTRIBUTION_CERT_BASE64 }} | base64 --decode > ${{ env.SIGNING_CERTIFICATE_PATH }} - name: Extracting and Installing signing certificate (.p12) env: diff --git a/cypress.config.ts b/cypress.config.ts index 773a7d712..d2353864a 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -1,14 +1,8 @@ import { defineConfig } from 'cypress'; -import dotenv from 'dotenv'; - -dotenv.config(); export default defineConfig({ e2e: { setupNodeEvents(on, config) { - config.env.api_server = process.env.VITE_BASE_URL; - config.env.app_url = process.env.VITE_APP_URL; - return config; }, }, diff --git a/cypress.env.json b/cypress.env.json new file mode 100644 index 000000000..ba22d27da --- /dev/null +++ b/cypress.env.json @@ -0,0 +1,6 @@ +{ + "api_server": "https://dev.socious.io/api/v2", + "api_server_v3": "https://dev.socious.io/api/v3", + "app_url": "http://localhost:3000/", + "account_center_url": "https://dev-id.socious.io" +} \ No newline at end of file diff --git a/cypress/e2e/authentication/constants.ts b/cypress/e2e/authentication/constants.ts index 77b431150..6b6ec87a7 100644 --- a/cypress/e2e/authentication/constants.ts +++ b/cypress/e2e/authentication/constants.ts @@ -1,6 +1,8 @@ //Server export const API_SERVER = Cypress.env('api_server'); +export const API_SERVER_V3 = Cypress.env('api_server_v3'); export const APP_URL = Cypress.env('app_url'); +export const ACCOUNT_CENTER_URL = Cypress.env('account_center_url'); //Credentials export const VALID_EMAIL = 'valid_email@gmail.com'; diff --git a/cypress/e2e/authentication/login.cy.ts b/cypress/e2e/authentication/login.cy.ts new file mode 100644 index 000000000..74d1a5ff0 --- /dev/null +++ b/cypress/e2e/authentication/login.cy.ts @@ -0,0 +1,123 @@ +import { IDENTITIES, PROFILE, PROJECTS, SESSION } from './mocks'; +import { + ACCOUNT_CENTER_URL, + API_SERVER, + API_SERVER_V3, + APP_URL, + VALID_EMAIL, + VALID_PASSWORD, +} from '../authentication/constants'; + +describe('Login with Socious Id', () => { + let loginRequestCount = 0; + let identitiesRequestCount = 0; + beforeEach(() => { + cy.intercept('POST', `**/batch*`, req => req.reply(200, { message: 'success' })).as('postWallet'); + cy.intercept('GET', `**/batch*`, req => req.reply(200, { message: 'success' })).as('getWallet'); + cy.intercept('GET', `**/w3m/v1/getDesktopListings*`, req => req.reply(200, { message: 'success' })).as( + 'getDesktopListings', + ); + cy.intercept('GET', `**/w3m/v1/getMobileListings*`, req => req.reply(200, { message: 'success' })).as( + 'getMobileListings', + ); + cy.intercept('POST', '**/cdn-cgi/rum*', req => req.reply(200, { message: 'success' })).as('getrum'); + cy.intercept('GET', '**/chats/unreads/counts*', req => req.reply(200, { count: 0 })).as('getUnreadCounts'); + cy.intercept('POST', '**/cdn-cgi/zaraz/t*', req => req.reply(200, { message: 'success' })).as('postT'); + cy.intercept('POST', 'https://pulse.walletconnect.org/e?projectId=*&st=*&sv=*', req => { + req.reply(200); + }); + cy.intercept('GET', 'https://api.web3modal.org/getAnalyticsConfig?projectId=*&st=*&sv=*', req => { + req.reply(200); + }); + cy.intercept('GET', `${API_SERVER}/identities?t=*`, req => { + identitiesRequestCount++; + if (identitiesRequestCount <= 1) { + req.reply(401); + } else { + req.reply(200, IDENTITIES); + } + }).as('getIdentities'); + cy.fixture('login.html').then(htmlContent => { + cy.intercept('POST', 'https://dev-id.socious.io/auth/login', req => { + loginRequestCount++; + + if (loginRequestCount === 1) { + req.reply({ + statusCode: 302, + headers: { + 'Content-Type': 'text/html', + }, + body: htmlContent, + }); + } else { + req.redirect(`${APP_URL}oauth/socious?code=*&identity_id=*&session=*&status=success`); + } + }).as('postLogin'); + }); + cy.intercept('GET', 'https://dev-id.socious.io/auth/confirm', req => { + cy.fixture('confirm.html').then(htmlContent => { + req.reply({ + statusCode: 200, + headers: { + 'Content-Type': 'text/html', + }, + body: htmlContent, + }); + }); + }).as('authConfirm'); + + cy.intercept('POST', `${API_SERVER_V3}/auth/session`, req => { + req.reply(200, SESSION); + }); + cy.intercept('GET', `${API_SERVER}/user/profile?t=*`, req => { + req.reply(200, PROFILE); + }); + + cy.intercept('GET', `${API_SERVER}/projects*`, req => req.reply(200, PROJECTS)).as('getProjects'); + cy.intercept('GET', `${API_SERVER}/skills*`, req => req.reply(200, { message: 'success' })).as('getSkills'); + cy.intercept('GET', `${API_SERVER}/notifications*`, req => req.reply(200, { message: 'success' })).as( + 'getNotifications', + ); + }); + Cypress.on('uncaught:exception', err => { + if (err.message.includes('WebAssembly.instantiate(): Out of memory')) { + return false; + } + }); + + it('should log in user from the intro page using Socious ID', () => { + cy.visit(APP_URL + 'intro'); + + cy.contains('Get Started').should('be.visible'); + cy.contains('button', 'Continue').should('be.visible'); + cy.contains('button', 'Continue').click(); + + cy.origin( + `${ACCOUNT_CENTER_URL}`, + { + args: { + email: VALID_EMAIL, + password: VALID_PASSWORD, + }, + }, + ({ email, password }) => { + cy.get('input[type="email"]', { timeout: 10000 }).should('be.visible'); + cy.location('pathname').should('include', '/auth/login'); + + cy.get('input[type="email"]').type(email); + cy.get('input[type="password"]').should('be.visible'); + cy.get('input[type="password"]').type(password); + + cy.contains('button', 'Sign in').should('be.enabled'); + cy.contains('button', 'Sign in').click(); + + cy.contains('Your individual profile').should('be.visible'); + cy.contains('Your organization profiles').should('be.visible'); + + cy.get('button.consent-account').should('be.visible'); + cy.wait('@postLogin'); + cy.get('button.consent-account').first().click(); + }, + ); + }); +}); diff --git a/cypress/e2e/authentication/mocks.ts b/cypress/e2e/authentication/mocks.ts index 379233ba1..7d9600c4e 100644 --- a/cypress/e2e/authentication/mocks.ts +++ b/cypress/e2e/authentication/mocks.ts @@ -809,3 +809,221 @@ export const EMPTY_NOTIFICATIONS = { total_count: 0, items: [], }; + +export const SESSION = { + access_token: "VALID_ACCESS_TOKEN", + refresh_token: "VALID_REFRESH_TOKEN", + token_type: "Bearer" +} + +export const PROFILE = { + id:"035f724e-5824-4129-8ed6-96c6dda81a3a", + username:"imshantik5140", + first_name:"Shant", + last_name:"Isaghoolian", + city:"Tehran", + country:"IR", + geoname_id:null, + mission:null, + bio:null, + impact_points:33, + skills:[ + "C#", + "GIT", + "HTML", + "JQUERY", + "JSON", + "SOFTWARE_ENGINEERING" + ], + followers:1, + followings:3, + created_at:"2025-02-27T10:59:24.278Z", + wallet_address:"01a64dbdd28d90860c0115ddc5bfc97113cfc2503e5c67ae97279671d05909a573f878276173c08284de1a0aebc4174dcd7bab0e2a4f298133", + proofspace_connect_id:null, + phone:null, + address:null, + social_causes:[ + "POVERTY" + ], + avatar:null, + cover_image:null, + reported:false, + following:false, + follower:false, + connection_status:null, + connection_id:null, + mobile_country_code:null, + open_to_work:false, + open_to_volunteer:true, + is_contributor:null, + identity_verified:true, + events:null, + portfolios:null, + certificates:null, + recommendations:null, + languages:[ + { + id:"7b12a7cc-e3b6-44ad-842e-3e5c9099f2b6", + name:"IT", + level:"BASIC" + }, + { + id:"45e0692d-9579-4a6f-8546-ba9613a1dd22", + name:"FA", + level:"FLUENT" + }, + { + id:"57939cbd-4680-4f2f-a7bc-f39c57ab6c12", + name:"HY", + level:"NATIVE" + }, + { + id:"59c72a8f-ff26-4714-9d5c-9b48cf882d9e", + name:"EN", + level:"FLUENT" + } + ], + experiences:[ + { + id:"fc4114dc-58f3-4239-9cd1-b2529fc5cee6", + org:{ + id:"ce3e1c48-a4de-4131-9b9b-15bf35468161", + bio:null, + city:null, + name:"Socious", + image:{ + id:null, + url:null + }, + country:null, + shortname:"socious1803", + created_at:"2024-03-25T02:27:29.798786+00:00", + updated_at:"2024-03-25T02:27:29.798786+00:00", + description:null + }, + city:"Tokyo", + title:"QA Engineer", + end_at:null, + skills:null, + country:" Japan", + start_at:"2025-02-01T00:00:00", + credential:null, + description:null, + job_category:{ + id:null, + name:null + }, + employment_type:"FULL_TIME" + }, + { + id:"e56ecde3-6595-48ac-905b-26183f25468c", + org:{ + id:"183ebf62-e79e-4a75-acd4-433ce9f4cd87", + bio:null, + city:null, + name:"EIED", + image:{ + id:null, + url:null + }, + country:null, + shortname:"eied7257", + created_at:"2025-03-03T13:35:16.513411+00:00", + updated_at:"2025-03-03T13:35:16.513411+00:00", + description:null + }, + city:"Tehran", + title:"Software Engineer", + end_at:null, + skills:null, + country:" Tehran Province", + start_at:"2024-01-01T00:00:00", + credential:null, + description:null, + job_category:{ + id:null, + name:null + }, + employment_type:"FULL_TIME" + }, + { + id:"dca60f63-1859-474f-a7e1-7309b60bd51a", + org:{ + id:"0d982480-4522-463e-8602-482ec76392af", + bio:null, + city:null, + name:"BEMAN Branding Agency", + image:{ + id:null, + url:null + }, + country:null, + shortname:"beman_branding_agency4259", + created_at:"2025-03-03T13:35:16.555931+00:00", + updated_at:"2025-03-03T13:35:16.555931+00:00", + description:null + }, + city:"Tehran", + title:"Software Engineer", + end_at:"2023-11-01T00:00:00", + skills:null, + country:" Tehran Province", + start_at:"2023-09-01T00:00:00", + credential:null, + description:" left for a fair-pay job", + job_category:{ + id:null, + name:null + }, + employment_type:"FULL_TIME" + } + ], + educations:[ + { + id:"e0554af0-81be-491d-85aa-70486ce09187", + org:{ + id:"76238a90-16c7-4824-a621-30cfafb92ea6", + bio:null, + city:null, + name:"Islamic Azad University", + image:null, + country:null, + shortname:"islamic_azad_university9248", + created_at:"2025-03-03T13:35:16.588199+00:00", + updated_at:"2025-03-03T13:35:16.588199+00:00", + description:null + }, + grade:"Master's degree", + title:"Islamic Azad University", + degree:"Computer Software Engineering", + end_at:null, + start_at:"1970-01-01T00:00:02.025", + credential:null, + description:null + }, + { + id:"2ced788a-85a5-4594-b25c-7e63f750dcf7", + org:{ + id:"c8460ee5-4420-4470-b316-eaae78be00ee", + bio:null, + city:null, + name:"Rudehen azad university", + image:null, + country:null, + shortname:"rudehen_azad_university9496", + created_at:"2025-03-03T13:35:16.606317+00:00", + updated_at:"2025-03-03T13:35:16.606317+00:00", + description:null + }, + grade:"Bachelore", + title:"Rudehen azad university", + degree:"Computer Engineering", + end_at:null, + start_at:"1970-01-01T00:00:02.025", + credential:null, + description:null + } + ], + connections:0, + rate:null +} diff --git a/cypress/e2e/authentication/sign-in.cy.ts b/cypress/e2e/authentication/sign-in.cy.ts deleted file mode 100644 index 82646102c..000000000 --- a/cypress/e2e/authentication/sign-in.cy.ts +++ /dev/null @@ -1,129 +0,0 @@ -// import { -// API_SERVER, -// APP_URL, -// INVALID_EMAIL, -// INVALID_PASSWORD, -// ACCESS_TOKEN, -// REFRESH_TOKEN, -// TOKEN_TYPE, -// VALID_EMAIL, -// VALID_PASSWORD, -// } from './constants'; -// import { IDENTITIES, IMPACT_POINTS, PROJECT, PROJECTS } from './mocks'; - -// describe('Sign in', () => { -// beforeEach(() => { -// // Mock the register API call -// cy.intercept('POST', `${API_SERVER}/auth/login*`, req => { -// if (req.body.email === INVALID_EMAIL || req.body.password === INVALID_PASSWORD) -// req.reply({ -// statusCode: 400, -// }); -// else -// req.reply({ -// statusCode: 200, -// body: { -// access_token: ACCESS_TOKEN, -// refresh_token: REFRESH_TOKEN, -// token_type: TOKEN_TYPE, -// }, -// }); -// }); - -// cy.intercept('GET', `${API_SERVER}/identities*`, req => { -// if (req.headers.authorization === `${TOKEN_TYPE} ${ACCESS_TOKEN}`) req.reply(IDENTITIES); -// else return req.reply(401, { error: 'Unauthorized' }); -// }); - -// cy.intercept('GET', `${API_SERVER}/auth/otp/confirm?email=*`, { -// statusCode: 200, -// body: { message: 'success' }, -// }); - -// cy.intercept('GET', `${API_SERVER}/projects*`, req => req.reply(200, PROJECTS)).as('getProjects'); -// cy.intercept('GET', `${API_SERVER}/projects/*`, req => req.reply(200, PROJECT)).as('getProject'); - -// cy.intercept('GET', `${API_SERVER}/user/impact-points*`, req => req.reply(200, IMPACT_POINTS)).as( -// 'getImpactPoints', -// ); -// cy.intercept('GET', `${API_SERVER}/notifications*`, req => req.reply(200, { message: 'success' })).as( -// 'getNotifications', -// ); -// cy.intercept('GET', `${API_SERVER}/user/profile*`, req => req.reply(200, { message: 'success' })).as( -// 'getUserProfile', -// ); -// cy.intercept('GET', `${API_SERVER}/chats/unreads/counts*`, req => req.reply(200, { message: 'success' })).as( -// 'getUnreadChatsCount', -// ); -// cy.intercept('GET', `${API_SERVER}/skills*`, req => req.reply(200, { message: 'success' })).as('getSkills'); -// cy.intercept('POST', `${API_SERVER}/auth/refresh`, req => req.reply(200, { message: 'success' })).as( -// 'refreshAuthorization', -// ); -// }); - -// /* -// Attention! -// FIXME: -// When Cypress detects uncaught errors originating from your application it will automatically fail the current test. -// This lines of code will disable this feature! -// Errors from "Firebase" caused cypress to fail the tests even they are a right tests. -// */ -// Cypress.on('uncaught:exception', () => { -// // returning false here prevents Cypress from -// // failing the test -// return false; -// }); - -// it('it will logs in with valid credentials', () => { -// // Visit the login page -// cy.visit(`${APP_URL}sign-in`); - -// // Fill in the username and password -// cy.get('input#email').type(VALID_EMAIL); -// cy.get('input#password').type(VALID_PASSWORD); - -// // Click submit -// cy.contains('button', 'Continue').click(); -// // cy.wait([ -// // '@getUserProfile', -// // '@getProjects', -// // '@getUnreadChatsCount', -// // '@getSkills', -// // '@getNotifications', -// // '@refreshAuthorization', -// // ]); - -// // Check if the login was successful -// cy.getCookies() -// .should('have.length', 4) -// .then(cookies => { -// expect(cookies[1]).to.have.property('name', 'access_token'); -// expect(cookies[1]).to.have.property('value', ACCESS_TOKEN); - -// expect(cookies[2]).to.have.property('name', 'refresh_token'); -// expect(cookies[2]).to.have.property('value', REFRESH_TOKEN); - -// expect(cookies[3]).to.have.property('name', 'token_type'); -// expect(cookies[3]).to.have.property('value', TOKEN_TYPE); -// }); - -// cy.url().should('include', `${APP_URL}dashboard/user`); -// }); - -// it('fails to log in with invalid credentials', () => { -// // Visit the login page -// cy.visit(`${APP_URL}sign-in`); - -// // Fill in the username and password -// cy.get('input#email').type(INVALID_EMAIL); -// cy.get('input#password').type(INVALID_PASSWORD); - -// // Click the 'Sign in' button -// cy.contains('button', 'Continue').click(); - -// cy.getCookies().should('have.length', 1); - -// // Check if the login failed -// cy.url().should('include', '/intro'); -// }); -// }); diff --git a/cypress/e2e/authentication/unlogged-user.cy.ts b/cypress/e2e/authentication/unlogged-user.cy.ts deleted file mode 100644 index 47582be94..000000000 --- a/cypress/e2e/authentication/unlogged-user.cy.ts +++ /dev/null @@ -1,171 +0,0 @@ -// import { -// API_SERVER, -// APP_URL, -// EXISTING_EMAIL_ADDRESS, -// FIRSTNAME, -// LASTNAME, -// PASSWORD, -// USERNAME, -// CITY, -// ACCESS_TOKEN, -// REFRESH_TOKEN, -// TOKEN_TYPE, -// ORGANIZATION_EMAIL, -// ORGANIZATION_USERNAME, -// } from './constants'; -// import { INDUSTRIES, LOCATIONS, ORGS, PROJECT, PROJECTS, SENT_APPLICATION, SKILLS, UPLOAD } from './mocks'; -// import { OrganizationUser, User, generateRandomEmail } from './utilities'; - -// const SIGNINGUP_EMAIL = generateRandomEmail(); -// const socialCauses = ['Health', 'Security', 'Bullying'], -// skills = ['C', 'C#', 'C++']; - -// const user = new User(FIRSTNAME, LASTNAME, SIGNINGUP_EMAIL, USERNAME); -// const organizationUser = new OrganizationUser( -// FIRSTNAME, -// LASTNAME, -// SIGNINGUP_EMAIL, -// USERNAME, -// ORGANIZATION_EMAIL, -// ORGANIZATION_USERNAME, -// CITY, -// socialCauses, -// ); - -// describe('User Application', () => { -// beforeEach(() => { -// // Mock the register API call -// cy.intercept('GET', `${API_SERVER}/identities*`, req => { -// if (req.headers.authorization == `${TOKEN_TYPE} ${ACCESS_TOKEN}`) req.reply(user.getIdentity()); -// else req.reply(401, { message: 'unauthorized' }); -// }); -// cy.intercept('POST', `${API_SERVER}/projects/*/applicants`, req => req.reply(200, SENT_APPLICATION)).as( -// 'sendApplication', -// ); -// cy.intercept('GET', `${API_SERVER}/projects/*/questions*`, req => req.reply(200, { questions: [] })).as( -// 'getProjectQuestions', -// ); -// cy.intercept('GET', `${API_SERVER}/projects/*`, req => req.reply(200, PROJECT)).as('getProject'); -// cy.intercept('GET', `${API_SERVER}/projects*`, req => req.reply(200, PROJECTS)).as('getProjects'); -// cy.intercept('GET', `${API_SERVER}/skills*`, req => req.reply(SKILLS)); -// cy.intercept('GET', `${API_SERVER}/geo/locations*`, req => req.reply(LOCATIONS)); -// cy.intercept('GET', `${API_SERVER}/orgs/d/industries*`, req => req.reply(INDUSTRIES)); -// cy.intercept( -// 'GET', -// RegExp(`${API_SERVER}orgs/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}`, 'ig'), -// req => req.reply(ORGS), -// ); -// cy.intercept('POST', `${API_SERVER}/media/upload`, req => req.reply(200, UPLOAD)); -// cy.intercept('POST', `${API_SERVER}/orgs?auto_member=true`, req => req.reply(200, { message: 'success' })); -// cy.intercept('GET', `${API_SERVER}/orgs/*`, req => req.reply(200, organizationUser.get())); -// cy.intercept('POST', `${API_SERVER}/user/change-password-direct*`, req => req.reply(200, { message: 'success' })); -// cy.intercept('POST', `${API_SERVER}/user/update/profile*`, req => req.reply(200, { message: 'success' })); -// cy.intercept('GET', `${API_SERVER}/user/profile*`, req => req.reply(200, { message: 'success' })); -// cy.intercept('GET', `${API_SERVER}/notifications*`, req => req.reply(200, { message: 'success' })).as( -// 'getNotifications', -// ); -// cy.intercept('GET', `${API_SERVER}/chats/unreads/counts*`, req => req.reply(200, { message: 'success' })).as( -// 'getUnreadChatsCount', -// ); -// cy.intercept('POST', `${API_SERVER}/auth/preregister*`, req => -// req.reply(200, { username: null, shortname: null, message: 'success' }), -// ); -// cy.intercept('POST', `${API_SERVER}/auth/register`, req => { -// if (req.body.email === EXISTING_EMAIL_ADDRESS) req.reply({ statusCode: 400 }); -// else req.reply(200, { message: 'success' }); -// }); -// cy.intercept('GET', `${API_SERVER}/user/by-username/**`, req => { -// return req.reply(200, user.getProfile(socialCauses, skills, CITY)); -// }); -// cy.intercept('POST', `${API_SERVER}/auth/refresh`, req => req.reply(200, { message: 'success' })).as( -// 'refreshAuthorization', -// ); -// cy.intercept('GET', `${API_SERVER}/auth/otp/confirm*`, req => { -// const url = new URL(req.url); -// const code = url.searchParams.get('code'); - -// if (code === '111111') -// req.reply(200, { -// access_token: ACCESS_TOKEN, -// refresh_token: REFRESH_TOKEN, -// token_type: TOKEN_TYPE, -// }); -// else req.reply(400, { message: 'Invalid OTP' }); -// }); -// }); - -// /* -// Attention! -// FIXME: -// When Cypress detects uncaught errors originating from your application it will automatically fail the current test. -// This lines of code will disable this feature! -// Errors from "Firebase" caused cypress to fail the tests even they are a right tests. -// */ -// Cypress.on('uncaught:exception', () => { -// // returning false here prevents Cypress from -// // failing the test -// return false; -// }); - -// it('it should redirect user after the sign-up process to the very exact job details page [Normal User]', () => { -// // Visit jobs page -// cy.visit(`${APP_URL}jobs`); - -// // Go to the job details -// cy.contains('a', 'Read more').click(); -// cy.url().should('include', '/jobs/'); - -// // wait for router to switch page -// cy.contains('button', 'Apply now').should('not.be.disabled'); -// // eslint-disable-next-line cypress/unsafe-to-chain-command -// cy.contains('button', 'Apply now').parent().parent().scrollIntoView().click({ force: true }); -// cy.get('#auth-guard-modal').should('exist'); - -// //check if it ask you to login -// cy.contains('button', 'Create an account').click(); -// cy.get('#signup-modal').should('exist'); - -// // Fill in the random email address, continue and check the route -// cy.get('input#email').type(user.email); -// cy.contains('button', 'Continue').click(); -// cy.url().should('include', '/sign-up/user/verification'); -// cy.contains('button', 'Verify email').should('be.disabled'); - -// // Type in 1 on each input field, Click verify and check the route -// cy.get('input[type="tel"]').each($input => { -// cy.wrap($input).type('1'); -// }); -// cy.contains('button', 'Verify email').click(); -// cy.url().should('include', '/sign-up/user/password'); -// cy.contains('button', 'Continue').should('be.disabled'); - -// // Enter password & Confirm password, continue and check the route -// cy.get('input[name=password]').type(PASSWORD); -// cy.get('input[name=confirm]').type(PASSWORD); -// cy.contains('button', 'Continue').click(); -// cy.url().should('include', '/sign-up/user/complete'); -// cy.contains('button', 'Continue').should('be.disabled'); - -// // Fill Username and Lastname, continue and check the route -// cy.get('input[name=firstName]').type(user.firstname); -// cy.get('input[name=lastName]').type(user.lastname); -// cy.get('input[name=username]').type(user.username); -// cy.contains('button', 'Continue').click(); -// cy.url().should('include', '/sign-up/user/congrats'); -// cy.contains('button', 'Continue').should('not.be.disabled'); - -// //Just hit continue and check the route -// cy.contains('button', 'Continue').click(); -// cy.get('#apply-job').should('exist'); -// cy.get('textarea[name=coverLetter]').type('Example Cover Letter'); -// cy.fixture('example.pdf').then(fileContent => { -// cy.get('input[type="file"]').attachFile({ -// fileContent: fileContent.toString(), -// fileName: 'example.pdf', -// mimeType: 'application/pdf', -// }); -// }); -// cy.contains('button', 'Submit').click(); -// cy.get('#apply-job').should('not.exist'); -// }); -// }); diff --git a/cypress/e2e/messaging/messaging.cy.ts b/cypress/e2e/messaging/messaging.cy.ts new file mode 100644 index 000000000..de81d7733 --- /dev/null +++ b/cypress/e2e/messaging/messaging.cy.ts @@ -0,0 +1,79 @@ +import { MESSAGES, SEARCH_FOLLOWINGS, SENT_MESSAGE, SUMMARY, NOTIFICATIONS } from './mocks'; +import { API_SERVER, APP_URL, FIRSTNAME, LASTNAME, USERNAME } from '../authentication/constants'; +import { User, generateRandomEmail } from '../authentication/utilities'; + +const SIGNINGUP_EMAIL = generateRandomEmail(); +const user = new User(FIRSTNAME, LASTNAME, SIGNINGUP_EMAIL, USERNAME); + +describe('Messaging feature', () => { + beforeEach(() => { + cy.intercept('GET', `${API_SERVER}/chats/summary*t=*&page=*`, req => { + req.reply(200, SUMMARY); + }).as('getSummary'); + cy.intercept('GET', `${API_SERVER}/identities*`, req => { + req.reply(user.getIdentity()); + }).as('getIdentities'); + cy.intercept('GET', `${API_SERVER}/notifications*t=*`, req => { + req.reply(200, NOTIFICATIONS); + }).as('getNotifications'); + cy.intercept('GET', `${API_SERVER}/chats/unreads/counts*t=*`, req => { + req.reply(200, { count: 1 }); + }).as('getUnreadCounts'); + cy.intercept('GET', `${API_SERVER}/socket.io/*`, req => { + req.reply(200); + }).as('socket'); + cy.intercept('GET', `${API_SERVER}/follows/followings*t=*&name=*`, req => { + req.reply(200, SEARCH_FOLLOWINGS); + }).as('searchFollowings'); + cy.intercept('GET', `${API_SERVER}/chats/*/messages*t=*&page=*`, req => { + req.reply(200, MESSAGES); + }).as('getMessages'); + + cy.intercept( + 'GET', + 'https://explorer-api.walletconnect.com/w3m/v1/getDesktopListings*projectId=*&sdkType=*&sdkVersion=*&page=*&entries=*&version=*', + req => { + req.reply(200); + }, + ).as('getDesktopListenings'); + + cy.intercept('POST', `${API_SERVER}/chats/*/messages`, req => { + req.reply(200, SENT_MESSAGE); + }).as('postMessage'); + + cy.intercept('GET', `${API_SERVER}/notifications*t=*`, req => { + req.reply(200, NOTIFICATIONS); + }).as('getNotifications'); + + cy.intercept('POST', `https://pulse.walletconnect.org/batch?projectId=*&st=*&sv=*`, req => { + req.reply(200); + }).as('postWallet'); + }); + it('navigating to messaging and selecting the first option on the list', () => { + cy.visit(`${APP_URL}chats`); + cy.wait('@getSummary'); + + cy.get('[data-testid="select-chat"]').first().click(); + cy.wait('@getMessages'); + + cy.get('textarea[placeholder="Send a message"]').first().type('Hello, this is a test message!'); + cy.contains('button', 'Send').click(); + cy.wait('@postMessage').its('response.statusCode').should('eq', 200); + + cy.contains('Hello, this is a test message!'); + }); + it('should open a new chat and search for the organizaiton and message to it', () => { + cy.visit(`${APP_URL}chats`); + cy.wait('@getSummary'); + + cy.get('[data-testid="message-to-icon"]').should('exist').click(); + cy.get('#contact').type('organization'); + cy.get('[data-testid="dropdown-open"]').should('be.visible'); + cy.contains('OrganizationTest').should('be.visible'); + cy.contains('OrganizationTest').click(); + + cy.get('textarea[placeholder="Send a message"]').first().type('Hello, this is a test message!'); + cy.contains('button', 'Send').click(); + cy.wait('@postMessage').its('response.statusCode').should('eq', 200); + }); +}); diff --git a/cypress/e2e/messaging/mocks.ts b/cypress/e2e/messaging/mocks.ts new file mode 100644 index 000000000..a149b8546 --- /dev/null +++ b/cypress/e2e/messaging/mocks.ts @@ -0,0 +1,1280 @@ +export const SUMMARY = { + page: 1, + limit: 10, + total_count: 1, + items: [ + { + id: '47909b77-87b4-461d-b242-eb63bd498fab', + name: 'nameless', + description: null, + type: 'CHAT', + created_by: '1396c403-1ade-4c40-b0d1-4680059a46c5', + updated_at: '2025-03-05T16:45:26.175Z', + created_at: '2025-02-28T10:27:08.825Z', + deleted_at: null, + participants: [ + { + type: 'ADMIN', + all_read: true, + last_read_id: '374fa3f9-1d1b-40d0-9d06-68f814df1a1b', + last_read_at: '2025-03-05T16:42:23.356Z', + identity_type: 'organizations', + identity_meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + }, + ], + old_id: null, + blocked: false, + participation: { + type: 'MEMBER', + muted_until: null, + last_read_at: '2025-03-05T16:45:26.175Z', + last_read_id: 'eb19f03b-b08a-4177-a9d8-2d8059899060', + all_read: true, + }, + last_message: { + id: 'eb19f03b-b08a-4177-a9d8-2d8059899060', + reply_id: null, + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + text: 'test test', + replied: false, + updated_at: '2025-03-05T16:45:26.175Z', + created_at: '2025-03-05T16:45:26.175Z', + deleted_at: null, + media: null, + }, + message_count: '8', + unread_count: '0', + }, + ], +}; + +export const SEARCH_FOLLOWINGS = { + page: 1, + limit: 10, + total_count: 1, + items: [ + { + id: '3abefeb9-dbd7-4e7c-8832-d41220122d9f', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + identity_type: 'organizations', + identity_meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + mutual: true, + following: true, + created_at: '2025-02-27T13:16:43.884Z', + }, + ], +}; + +export const MESSAGES = { + page: 1, + limit: 10, + total_count: 8, + items: [ + { + id: 'eb19f03b-b08a-4177-a9d8-2d8059899060', + reply_id: null, + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + text: 'test test', + replied: false, + updated_at: '2025-03-05T16:45:26.175Z', + created_at: '2025-03-05T16:45:26.175Z', + deleted_at: null, + media: null, + media_url: null, + }, + { + id: '7894ed98-c9d5-4a63-84b8-f26681b77db4', + reply_id: null, + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + text: 'hello shant', + replied: false, + updated_at: '2025-03-05T16:44:08.859Z', + created_at: '2025-03-05T16:44:08.859Z', + deleted_at: null, + media: null, + media_url: null, + }, + { + id: 'bc3957da-2306-436f-bfde-00d3977ce668', + reply_id: null, + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + text: 'hi', + replied: false, + updated_at: '2025-03-05T16:43:21.085Z', + created_at: '2025-03-05T16:43:21.085Z', + deleted_at: null, + media: null, + media_url: null, + }, + { + id: '374fa3f9-1d1b-40d0-9d06-68f814df1a1b', + reply_id: null, + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + identity_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + text: 'hello organization', + replied: false, + updated_at: '2025-03-05T16:42:23.356Z', + created_at: '2025-03-05T16:42:23.356Z', + deleted_at: null, + media: null, + media_url: null, + }, + { + id: '521a71af-d4f3-4434-9fd4-095965bff6c1', + reply_id: null, + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + text: 'things are nice here', + replied: false, + updated_at: '2025-02-28T10:45:03.832Z', + created_at: '2025-02-28T10:45:03.832Z', + deleted_at: null, + media: null, + media_url: null, + }, + { + id: '1c59246b-8632-45db-ae9a-5e575cf9574d', + reply_id: null, + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + identity_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + text: 'whats good?', + replied: false, + updated_at: '2025-02-28T10:38:39.353Z', + created_at: '2025-02-28T10:38:39.353Z', + deleted_at: null, + media: null, + media_url: null, + }, + { + id: '9fb4d3f5-1e6a-44f6-a1b6-67fc6506c7f1', + reply_id: null, + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + identity_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + text: 'hi', + replied: false, + updated_at: '2025-02-28T10:36:55.040Z', + created_at: '2025-02-28T10:36:55.040Z', + deleted_at: null, + media: null, + media_url: null, + }, + { + id: '09a33391-d6fe-47f1-aeff-f5fb307a0605', + reply_id: null, + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + text: 'hello', + replied: false, + updated_at: '2025-02-28T10:36:25.925Z', + created_at: '2025-02-28T10:36:25.925Z', + deleted_at: null, + media: null, + media_url: null, + }, + ], +}; + +export const SENT_MESSAGE = { + id: 'a5f29b60-7d82-4789-8b66-41c2f7f5b2dd', + reply_id: null, + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + identity_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + text: 'Hello, this is a test message!', + replied: false, + updated_at: '2025-03-15T09:30:33.594Z', + created_at: '2025-03-15T09:30:33.594Z', + deleted_at: null, + media: null, +}; + +export const USER_IDENTTITY = [ + { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + type: 'organizations', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + created_at: '2025-02-27T13:16:43.884Z', + primary: false, + current: false, + verification_status: null, + }, + { + id: '3a4aa78b-9bf1-41bc-ab9c-1ae4fd6ebc7d', + type: 'organizations', + meta: { + id: '3a4aa78b-9bf1-41bc-ab9c-1ae4fd6ebc7d', + city: 'Tehran', + name: 'shant company', + email: 'mockMail@gmail.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'shantik', + description: null, + wallet_address: null, + verified_impact: false, + }, + created_at: '2025-02-28T08:24:45.311Z', + primary: false, + current: false, + verification_status: null, + }, + { + current: true, + primary: true, + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + type: 'users', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + created_at: '2025-02-27T10:59:24.278Z', + verification_status: null, + }, +]; + +export const NOTIFICATIONS = { + page: 1, + limit: 50, + total_count: 12, + items: [ + { + id: '723022ee-83ed-4f7c-b119-13f006d4cbd9', + type: 'CHAT', + ref_id: 'eb19f03b-b08a-4177-a9d8-2d8059899060', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: 'eb19f03b-b08a-4177-a9d8-2d8059899060', + body: { + body: 'OrganizationTest sent you a new message', + title: 'New Message', + }, + text: 'test test', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + created_at: '2025-02-27T10:59:24.278Z', + }, + refId: 'eb19f03b-b08a-4177-a9d8-2d8059899060', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + follower: false, + following: false, + created_at: '2025-02-27T13:16:43.884Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-03-05T16:45:26.175Z', + deleted_at: null, + updated_at: '2025-03-05T16:45:26.175Z', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + consolidate_number: 0, + }, + view_at: '2025-03-05T16:45:33.770Z', + read_at: '2025-03-05T16:45:40.341Z', + updated_at: '2025-03-05T16:45:40.341Z', + created_at: '2025-03-05T16:45:26.228Z', + silent: false, + }, + { + id: 'bd5c75ef-9dc0-4516-823c-1dda043060b2', + type: 'CHAT', + ref_id: '7894ed98-c9d5-4a63-84b8-f26681b77db4', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: '7894ed98-c9d5-4a63-84b8-f26681b77db4', + body: { + body: 'OrganizationTest sent you a new message', + title: 'New Message', + }, + text: 'hello shant', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + created_at: '2025-02-27T10:59:24.278Z', + }, + refId: '7894ed98-c9d5-4a63-84b8-f26681b77db4', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + follower: false, + following: false, + created_at: '2025-02-27T13:16:43.884Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-03-05T16:44:08.859Z', + deleted_at: null, + updated_at: '2025-03-05T16:44:08.859Z', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + consolidate_number: 0, + }, + view_at: '2025-03-05T16:44:44.101Z', + read_at: '2025-03-05T16:44:46.662Z', + updated_at: '2025-03-05T16:44:46.662Z', + created_at: '2025-03-05T16:44:08.912Z', + silent: false, + }, + { + id: 'bb12271f-7f3a-4e29-9109-2216f9bcdab7', + type: 'CHAT', + ref_id: 'bc3957da-2306-436f-bfde-00d3977ce668', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: 'bc3957da-2306-436f-bfde-00d3977ce668', + body: { + body: 'OrganizationTest sent you a new message', + title: 'New Message', + }, + text: 'hi', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + created_at: '2025-02-27T10:59:24.278Z', + }, + refId: 'bc3957da-2306-436f-bfde-00d3977ce668', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + follower: false, + following: false, + created_at: '2025-02-27T13:16:43.884Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-03-05T16:43:21.085Z', + deleted_at: null, + updated_at: '2025-03-05T16:43:21.085Z', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + consolidate_number: 0, + }, + view_at: '2025-03-05T16:43:35.235Z', + read_at: '2025-03-05T16:43:49.440Z', + updated_at: '2025-03-05T16:43:49.440Z', + created_at: '2025-03-05T16:43:21.141Z', + silent: false, + }, + { + id: '42c5f1f4-c775-44fa-b2d3-eff308091d7f', + type: 'CHAT', + ref_id: '374fa3f9-1d1b-40d0-9d06-68f814df1a1b', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: '374fa3f9-1d1b-40d0-9d06-68f814df1a1b', + body: { + body: 'imshantik@gmail.com sent you a new message', + title: 'New Message', + }, + text: 'hello organization', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + created_at: '2025-02-27T13:16:43.884Z', + }, + refId: '374fa3f9-1d1b-40d0-9d06-68f814df1a1b', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + follower: false, + following: false, + created_at: '2025-02-27T10:59:24.278Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-03-05T16:42:23.356Z', + deleted_at: null, + updated_at: '2025-03-05T16:42:23.356Z', + identity_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + consolidate_number: 0, + }, + view_at: '2025-03-05T16:42:40.223Z', + read_at: '2025-03-05T16:42:50.706Z', + updated_at: '2025-03-05T16:42:50.706Z', + created_at: '2025-03-05T16:42:23.421Z', + silent: false, + }, + { + id: '36344c02-2f83-4060-ac86-4fd8353eb493', + type: 'OFFER', + ref_id: '592f9af4-22dd-4ae9-b7a1-8d491251e506', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + body: { + body: 'OrganizationTest sent you an offer', + title: 'Have an offer', + }, + type: 'OFFER', + orgin: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + created_at: '2025-02-27T10:59:24.278Z', + }, + refId: '592f9af4-22dd-4ae9-b7a1-8d491251e506', + identity: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + follower: false, + following: false, + created_at: '2025-02-27T13:16:43.884Z', + connection_status: null, + verification_status: null, + }, + parentId: '25e61193-9857-4af0-a146-6e7943894ccd', + consolidate_number: 0, + }, + view_at: '2025-03-05T12:30:58.257Z', + read_at: '2025-03-05T12:31:06.545Z', + updated_at: '2025-03-05T12:31:06.545Z', + created_at: '2025-03-05T12:30:49.217Z', + silent: false, + }, + { + id: 'ea8244c4-0253-47e2-a1ca-1a3f33af66bb', + type: 'APPLICATION', + ref_id: '8843fce6-042e-46dc-b1ae-50bb7ddd5ced', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + body: { + body: 'imshantik@gmail.com applied to your job', + title: 'Job applied', + }, + type: 'APPLICATION', + orgin: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + created_at: '2025-02-27T13:16:43.884Z', + }, + refId: '8843fce6-042e-46dc-b1ae-50bb7ddd5ced', + identity: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + follower: false, + following: false, + created_at: '2025-02-27T10:59:24.278Z', + connection_status: null, + verification_status: null, + }, + parentId: '25e61193-9857-4af0-a146-6e7943894ccd', + consolidate_number: 0, + }, + view_at: '2025-03-05T12:12:49.063Z', + read_at: '2025-03-05T12:13:57.978Z', + updated_at: '2025-03-05T12:13:57.978Z', + created_at: '2025-03-05T12:10:48.703Z', + silent: false, + }, + { + id: '5a45fbc4-04d7-4141-857f-c9ec4f83aa58', + type: 'OFFER', + ref_id: '2da2348c-f5ae-4440-b9df-cd4629f0ecc6', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + body: { + body: 'OrganizationTest sent you an offer', + title: 'Have an offer', + }, + type: 'OFFER', + orgin: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + created_at: '2025-02-27T10:59:24.278Z', + }, + refId: '2da2348c-f5ae-4440-b9df-cd4629f0ecc6', + identity: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + follower: false, + following: false, + created_at: '2025-02-27T13:16:43.884Z', + connection_status: null, + verification_status: null, + }, + parentId: 'ecce2dec-35a2-4a6a-a0d8-155cd898f6b9', + consolidate_number: 0, + }, + view_at: '2025-03-04T09:36:55.895Z', + read_at: '2025-03-04T09:37:08.918Z', + updated_at: '2025-03-04T09:37:08.918Z', + created_at: '2025-03-04T09:36:26.354Z', + silent: false, + }, + { + id: '0655a77e-e65d-4641-8ecf-5460aa651266', + type: 'CHAT', + ref_id: '521a71af-d4f3-4434-9fd4-095965bff6c1', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: '521a71af-d4f3-4434-9fd4-095965bff6c1', + body: { + body: 'OrganizationTest sent you a new message', + title: 'New Message', + }, + text: 'things are nice here', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + created_at: '2025-02-27T10:59:24.278Z', + }, + refId: '521a71af-d4f3-4434-9fd4-095965bff6c1', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + follower: false, + following: false, + created_at: '2025-02-27T13:16:43.884Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-02-28T10:45:03.832Z', + deleted_at: null, + updated_at: '2025-02-28T10:45:03.832Z', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + consolidate_number: 0, + }, + view_at: '2025-02-28T10:45:14.280Z', + read_at: '2025-02-28T10:58:47.888Z', + updated_at: '2025-02-28T10:58:47.888Z', + created_at: '2025-02-28T10:45:04.137Z', + silent: false, + }, + { + id: 'b7363a62-b77f-435d-8c1d-5499ede4830a', + type: 'CHAT', + ref_id: '1c59246b-8632-45db-ae9a-5e575cf9574d', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: '1c59246b-8632-45db-ae9a-5e575cf9574d', + body: { + body: 'imshantik@gmail.com sent you a new message', + title: 'New Message', + }, + text: 'whats good?', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + created_at: '2025-02-27T13:16:43.884Z', + }, + refId: '1c59246b-8632-45db-ae9a-5e575cf9574d', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + follower: false, + following: false, + created_at: '2025-02-27T10:59:24.278Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-02-28T10:38:39.353Z', + deleted_at: null, + updated_at: '2025-02-28T10:38:39.353Z', + identity_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + consolidate_number: 0, + }, + view_at: '2025-02-28T10:38:47.753Z', + read_at: '2025-02-28T10:58:47.888Z', + updated_at: '2025-02-28T10:58:47.888Z', + created_at: '2025-02-28T10:38:39.404Z', + silent: false, + }, + { + id: 'ec72432e-098c-43ae-85a7-fbe31cb35bcf', + type: 'CHAT', + ref_id: '9fb4d3f5-1e6a-44f6-a1b6-67fc6506c7f1', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: '9fb4d3f5-1e6a-44f6-a1b6-67fc6506c7f1', + body: { + body: 'imshantik@gmail.com sent you a new message', + title: 'New Message', + }, + text: 'hi', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + created_at: '2025-02-27T13:16:43.884Z', + }, + refId: '9fb4d3f5-1e6a-44f6-a1b6-67fc6506c7f1', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + follower: false, + following: false, + created_at: '2025-02-27T10:59:24.278Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-02-28T10:36:55.040Z', + deleted_at: null, + updated_at: '2025-02-28T10:36:55.040Z', + identity_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + consolidate_number: 0, + }, + view_at: '2025-02-28T10:37:06.632Z', + read_at: '2025-02-28T10:58:47.888Z', + updated_at: '2025-02-28T10:58:47.888Z', + created_at: '2025-02-28T10:36:55.090Z', + silent: false, + }, + { + id: '07894516-ba0c-4aab-a6eb-e6184bdaab1f', + type: 'CHAT', + ref_id: '09a33391-d6fe-47f1-aeff-f5fb307a0605', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: '09a33391-d6fe-47f1-aeff-f5fb307a0605', + body: { + body: 'OrganizationTest sent you a new message', + title: 'New Message', + }, + text: 'hello', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + created_at: '2025-02-27T10:59:24.278Z', + }, + refId: '09a33391-d6fe-47f1-aeff-f5fb307a0605', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + follower: false, + following: false, + created_at: '2025-02-27T13:16:43.884Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-02-28T10:36:25.925Z', + deleted_at: null, + updated_at: '2025-02-28T10:36:25.925Z', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + consolidate_number: 0, + }, + view_at: '2025-02-28T10:36:32.705Z', + read_at: '2025-02-28T10:58:47.888Z', + updated_at: '2025-02-28T10:58:47.888Z', + created_at: '2025-02-28T10:36:25.987Z', + silent: false, + }, + { + id: 'e3a5cfa7-2504-43fd-b5e4-869e6932edef', + type: 'APPLICATION', + ref_id: 'cfb626d1-2bf5-474a-bd78-3ddf41b81669', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + body: { + body: 'imshantik@gmail.com applied to your job', + title: 'Job applied', + }, + type: 'APPLICATION', + orgin: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + created_at: '2025-02-27T13:16:43.884Z', + }, + refId: 'cfb626d1-2bf5-474a-bd78-3ddf41b81669', + identity: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + follower: false, + following: false, + created_at: '2025-02-27T10:59:24.278Z', + connection_status: null, + verification_status: null, + }, + parentId: 'ecce2dec-35a2-4a6a-a0d8-155cd898f6b9', + consolidate_number: 0, + }, + view_at: '2025-02-28T10:24:00.022Z', + read_at: '2025-02-28T10:58:47.888Z', + updated_at: '2025-02-28T10:58:47.888Z', + created_at: '2025-02-28T10:23:52.952Z', + silent: false, + }, + ], +}; + +export const ONE_NOTIFICATION = { + page: 1, + limit: 10, + total_count: 1, + items: [ + { + id: '47909b77-87b4-461d-b242-eb63bd498fab', + name: 'nameless', + description: null, + type: 'CHAT', + created_by: '1396c403-1ade-4c40-b0d1-4680059a46c5', + updated_at: '2025-03-05T16:45:26.175Z', + created_at: '2025-02-28T10:27:08.825Z', + deleted_at: null, + participants: [ + { + type: 'ADMIN', + all_read: true, + last_read_id: '374fa3f9-1d1b-40d0-9d06-68f814df1a1b', + last_read_at: '2025-03-05T16:42:23.356Z', + identity_type: 'organizations', + identity_meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + }, + ], + old_id: null, + blocked: false, + participation: { + type: 'MEMBER', + muted_until: null, + last_read_at: '2025-03-05T16:45:26.175Z', + last_read_id: 'eb19f03b-b08a-4177-a9d8-2d8059899060', + all_read: true, + }, + last_message: { + id: 'eb19f03b-b08a-4177-a9d8-2d8059899060', + reply_id: null, + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + text: 'test test', + replied: false, + updated_at: '2025-03-05T16:45:26.175Z', + created_at: '2025-03-05T16:45:26.175Z', + deleted_at: null, + media: null, + }, + message_count: '8', + unread_count: '0', + }, + ], +}; diff --git a/cypress/e2e/search/mocks.ts b/cypress/e2e/search/mocks.ts new file mode 100644 index 000000000..f71e34189 --- /dev/null +++ b/cypress/e2e/search/mocks.ts @@ -0,0 +1,3991 @@ +export const SEARCHED_JOBS = { + page: 1, + limit: 20, + total_count: 16, + items: [ + { + id: '873a6f9c-6c8c-4bd9-962b-1b49cd4b49b9', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: 'decline on offer recevied', + project_type: 'ONE_OFF', + project_length: 'LESS_THAN_A_DAY', + payment_currency: 'USD', + payment_range_lower: null, + payment_range_higher: null, + experience_level: 1, + created_at: '2025-01-13T21:08:32.151Z', + updated_at: '2025-01-13T21:08:32.151Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'VOLUNTEER', + payment_scheme: 'HOURLY', + title: 'front end developer 5', + expires_at: null, + country: null, + skills: ['REACT.JS'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'ONSITE', + search_tsv: "'5':4 'decline':5 'developer':3 'end':2 'front':1 'offer':7 'on':6 'recevied':8", + city: null, + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: '12', + commitment_hours_higher: '15', + geoname_id: null, + job_category_id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + name: 'Frontend development', + hourly_wage_dollars: 25, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 2, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: '15271b4b-3604-4712-a357-04e19fef06b4', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: 'withdraw on sent offer', + project_type: 'ONE_OFF', + project_length: 'LESS_THAN_A_DAY', + payment_currency: 'USD', + payment_range_lower: '12', + payment_range_higher: '15', + experience_level: null, + created_at: '2025-01-13T21:07:43.810Z', + updated_at: '2025-01-13T21:07:43.810Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'HOURLY', + title: 'front end developer 4', + expires_at: null, + country: null, + skills: ['REACT.JS'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'ONSITE', + search_tsv: "'4':4 'developer':3 'end':2 'front':1 'offer':8 'on':6 'sent':7 'withdraw':5", + city: null, + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + name: 'Frontend development', + hourly_wage_dollars: 25, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 1, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: '65175211-2119-48ec-a222-3a75e94f5aad', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: 'tets the job flow - volunteer - approve', + project_type: 'ONE_OFF', + project_length: 'LESS_THAN_A_DAY', + payment_currency: 'USD', + payment_range_lower: null, + payment_range_higher: null, + experience_level: 1, + created_at: '2025-01-13T21:06:57.023Z', + updated_at: '2025-01-13T21:06:57.023Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'VOLUNTEER', + payment_scheme: 'FIXED', + title: 'front end developer 3', + expires_at: null, + country: null, + skills: ['REACT.JS'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'ONSITE', + search_tsv: "'3':4 'approve':10 'developer':3 'end':2 'flow':8 'front':1 'job':7 'tets':5 'the':6 'volunteer':9", + city: null, + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: '12', + commitment_hours_higher: '15', + geoname_id: null, + job_category_id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + name: 'Frontend development', + hourly_wage_dollars: 25, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 1, + missions: 1, + saved: false, + not_interested: false, + }, + { + id: '877839f5-bcea-45c0-95dd-48048ce69e7c', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: 'test the job flow - crypto - approve', + project_type: 'ONE_OFF', + project_length: 'LESS_THAN_A_DAY', + payment_currency: 'USD', + payment_range_lower: '1', + payment_range_higher: '2', + experience_level: 1, + created_at: '2025-01-13T21:05:58.923Z', + updated_at: '2025-01-13T21:05:58.923Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Front end Developer 2', + expires_at: null, + country: null, + skills: ['REACT.JS'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'ONSITE', + search_tsv: "'2':4 'approve':10 'crypto':9 'developer':3 'end':2 'flow':8 'front':1 'job':7 'test':5 'the':6", + city: null, + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + name: 'Frontend development', + hourly_wage_dollars: 25, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 1, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: 'fd9578af-ccbd-44bf-ae73-a00ed71b5a0a', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: 'test the job flow - fiat - approve', + project_type: 'ONE_OFF', + project_length: 'LESS_THAN_A_DAY', + payment_currency: 'USD', + payment_range_lower: '1', + payment_range_higher: '2', + experience_level: 1, + created_at: '2025-01-13T20:58:23.649Z', + updated_at: '2025-01-13T20:58:23.649Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Front End Developer', + expires_at: null, + country: null, + skills: ['REACT.JS'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'ONSITE', + search_tsv: "'approve':9 'developer':3 'end':2 'fiat':8 'flow':7 'front':1 'job':6 'test':4 'the':5", + city: null, + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + name: 'Frontend development', + hourly_wage_dollars: 25, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 1, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: '8304d572-c822-4c26-8947-0ac2960b7bf7', + identity_id: '741e2a95-f82a-4b11-a02b-22b13543570d', + description: 'BE tasks', + project_type: 'PART_TIME', + project_length: 'LESS_THAN_A_MONTH', + payment_currency: 'USD', + payment_range_lower: null, + payment_range_higher: null, + experience_level: 2, + created_at: '2024-07-08T12:34:17.814Z', + updated_at: '2024-07-08T12:34:17.814Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'VOLUNTEER', + payment_scheme: 'FIXED', + title: 'BE developer', + expires_at: null, + country: null, + skills: ['JAVASCRIPT', 'JAVA'], + causes_tags: ['BIODIVERSITY'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'REMOTE', + search_tsv: "'be':1,3 'developer':2 'tasks':4", + city: null, + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: '1', + commitment_hours_higher: '100', + geoname_id: null, + job_category_id: '95dedd87-f0d5-46f9-8756-8946308fca77', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '741e2a95-f82a-4b11-a02b-22b13543570d', + city: 'Berlin', + name: 'OceanProtection', + email: 'info@oceanprotection.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'DE', + mission: null, + verified: false, + shortname: 'oceanprotection7969', + description: null, + wallet_address: null, + verified_impact: false, + }, + job_category: { + id: '95dedd87-f0d5-46f9-8756-8946308fca77', + name: 'Backend development', + hourly_wage_dollars: 25, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 1, + missions: 1, + saved: false, + not_interested: false, + }, + { + id: '91896555-4325-4ebb-80a7-a80602f9abbe', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: + '**Responsibilities**\n\n- Design client-side and server-side architecture\n- Build the front-end of applications through appealing visual design\n- Develop and manage well-functioning databases and applications\n- Write effective APIs\n- Test software to ensure responsiveness and efficiency\n- Troubleshoot, debug and upgrade software\n- Create security and data protection settings\n- Build features and applications with a mobile responsive design\n- Write technical documentation\n- Work with data scientists and analysts to improve software\n\n**Skills & Experience**\n\n- Minimum 2 years of experience (or equivalent skills) in software development, especially with Typescript, Node.js, Next.js, React Native, Solidity, MySQL, AWS\n- A strong passion for social impact (previous experience with social impact organizations is an asset)\n- Degree in Computer Science, Engineering or a related field is an asset\n- Strong knowledge of common algorithms and data structures\n- Strong knowledge of blockchains is an asset\n- Strong knowledge of concurrency and writing efficient and safe code\n- You possess good communication skills\n\n**What’s on offer**\n\n- Diverse, driven, and high-performing colleagues\n- A supportive, trusting and transparent working environment\n- Work-life balance with flexible hours and leave (unlimited paid leave)\n- Flexible work arrangements (full-time, part-time freelance, side-job, onsite, remote, etc.)\n- A competitive salary package: USD 30k - 51k (4-7 million yen) per year + stock options', + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: '30000', + payment_range_higher: '51000', + experience_level: 1, + created_at: '2024-03-15T02:39:17.227Z', + updated_at: '2024-03-15T02:39:17.227Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Full-Stack Developer', + expires_at: null, + country: null, + skills: ['SOFTWARE_ENGINEERING', 'SOFTWARE_DEVELOPMENT'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'HYBRID', + search_tsv: + "'-7':211 '2':80 '30k':208 '4':210 '51k':209 'a':61,100,121,168,203 'algorithms':131 'an':113,125,140 'analysts':73 'and':10,27,33,43,47,52,58,72,132,146,149,163,171,182 'apis':37 'appealing':23 'applications':21,34,59 'architecture':14 'arrangements':189 'asset':114,126,141 'aws':99 'balance':178 'blockchains':138 'build':15,56 'client':8 'client-side':7 'code':151 'colleagues':167 'common':130 'communication':155 'competitive':204 'computer':117 'concurrency':145 'create':50 'data':53,70,133 'databases':32 'debug':46 'degree':115 'design':6,25,64 'develop':26 'developer':4 'development':89 'diverse':161 'documentation':67 'driven':162 'effective':36 'efficiency':44 'efficient':148 'end':19 'engineering':119 'ensure':41 'environment':174 'equivalent':85 'especially':90 'etc':202 'experience':78,83,107 'features':57 'field':123 'flexible':180,187 'for':103 'freelance':196 'front':18 'front-end':17 'full':2,191 'full-stack':1 'full-time':190 'functioning':31 'good':154 'high':165 'high-performing':164 'hours':181 'impact':105,110 'improve':75 'in':87,116 'is':112,124,139 'job':199 'knowledge':128,136,143 'leave':183,186 'life':177 'manage':28 'million':212 'minimum':79 'mobile':62 'mysql':98 'native':96 'next.js':94 'node.js':93 'of':20,82,129,137,144 'offer':160 'on':159 'onsite':200 'options':217 'or':84,120 'organizations':111 'package':206 'paid':185 'part':194 'part-time':193 'passion':102 'per':214 'performing':166 'possess':153 'previous':106 'protection':54 'react':95 'related':122 'remote':201 'responsibilities':5 'responsive':63 'responsiveness':42 's':158 'safe':150 'salary':205 'science':118 'scientists':71 'security':51 'server':12 'server-side':11 'settings':55 'side':9,13,198 'side-job':197 'skills':77,86,156 'social':104,109 'software':39,49,76,88 'solidity':97 'stack':3 'stock':216 'strong':101,127,135,142 'structures':134 'supportive':169 'technical':66 'test':38 'the':16 'through':22 'time':192,195 'to':40,74 'transparent':172 'troubleshoot':45 'trusting':170 'typescript':92 'unlimited':184 'upgrade':48 'usd':207 'visual':24 'well':30 'well-functioning':29 'what':157 'with':60,69,91,108,179 'work':68,176,188 'work-life':175 'working':173 'write':35,65 'writing':147 'year':215 'years':81 'yen':213 'you':152", + city: null, + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: 'a0839fc4-ee83-4b44-9372-6dcf58fa6ab7', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: 'a0839fc4-ee83-4b44-9372-6dcf58fa6ab7', + name: 'Full-stack development', + hourly_wage_dollars: 28, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 12, + missions: 1, + saved: false, + not_interested: false, + }, + { + id: '5da57879-61a3-43ff-aff4-23691e173a5c', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: + "**About Socious:**\r\n\r\nSocious is a talent marketplace that makes impact work accessible and transparent; we build connections between purpose-driven individuals and impact organizations through AI matching. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions.\r\n\r\nHaving secured funding, we're in expansion mode. Join us in this journey!\r\n\r\n**Role:** Blockchain (Haskell/Plutus) Developer\r\n\r\n**Key Responsibilities:**\r\n\r\n- Develop secure and efficient Haskell/Plutus code.\r\n- Collaborate with the team to ensure projects are delivered on schedule.\r\n- Maintain code quality through rigorous testing, debugging, and code reviews.\r\n- Deploy and document smart contracts with a focus on security best practices.\r\n- Integrate diverse systems with the blockchain, working closely with other teams.\r\n- Continuously update knowledge on blockchain tech and industry trends.\r\n\r\n**Skills/Experience:**\r\n\r\n- Passion for making a social/environmental impact. Prior experience in this realm is a plus.\r\n- Proficiency in Haskell and familiarity with its libraries.\r\n- Degree in Computer Science/Engineering or a related discipline is valued.\r\n- Experience in functional programming.\r\n- Knowledge of databases like PostgreSQL or MySQL.\r\n- Self-driven with a knack for innovative problem-solving.\r\n- Demonstrated experience in application development.\r\n- Stellar communication and teamwork skills.\r\n\r\n**What's in it for you?**\r\n\r\n- Make a lasting impact on the lives of many and on the world.\r\n- Collaborate with passionate, diverse, and high-performing colleagues.\r\n- Achieve the perfect work-life balance with flexible hours and unlimited paid leave.\r\n- Thrive in a remote-first setting with occasional offsites.\r\n- Commit to your growth with ongoing learning and development opportunities.\r\n- Navigate a vibrant, fast-paced work setting.\r\n- Take the lead with autonomy in decision-making.\r\n- Relish a culture of trust, transparency, and unwavering support.\r\n- Enjoy a competitive compensation: USD 80k - 130k annually + token incentives.\r\n\r\n\r\n**Socious Referral Program:**\r\n\r\nKnow someone just right for Socious? We highly value word-of-mouth recommendations. Successfully refer a candidate, and enjoy a $1,000 reward as a token of our gratitude. Just share this job link!\r\n\r\nYour support in broadening our talent search is invaluable. Thank you.\r\n\r\n**Our mission and values:** \r\n\r\n**Mission:** Give everyone the chance to make a difference. \r\n\r\n**Our values:** \r\n\r\n- Diversity, inclusion, and belonging.\r\n- Life first, work second.\r\n- High performance for high impact.\r\n- Autonomy and accountability.\r\n- Candor, collaboration, and play.", + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: '80000', + payment_range_higher: '130000', + experience_level: 2, + created_at: '2023-08-25T23:28:51.509Z', + updated_at: '2024-02-20T14:18:24.901Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Blockchain (Haskell / Plutus) Developer - Fully Remote ', + expires_at: null, + country: 'JP', + skills: ['SOFTWARE_ENGINEERING', 'SOFTWARE_DEVELOPMENT'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'REMOTE', + search_tsv: + "'000':314 '1':313 '130k':285 '80k':284 'a':11,100,130,139,154,174,198,235,254,271,280,308,312,317,349 'about':7 'accessible':18 'accountability':368 'achieve':219 'ai':33 'and':19,29,45,69,91,95,123,144,188,206,214,229,250,276,310,340,355,367,371 'annually':286 'application':184 'are':80 'as':316 'autonomy':265,366 'balance':225 'belonging':356 'best':104 'between':24 'blockchain':1,37,62,111,121 'broadening':330 'build':22 'by':35 'candidate':309 'candor':369 'chance':346 'closely':113 'code':72,85,92 'collaborate':73,210 'collaboration':370 'colleagues':218 'commit':243 'communication':187 'compensation':282 'competitive':281 'computer':151 'connections':23 'continuously':117 'contracts':98 'contributions':47 'culture':272 'databases':165 'debugging':90 'decision':268 'decision-making':267 'degree':149 'delivered':81 'demonstrated':181 'deploy':94 'develop':67 'developer':4,64 'development':185,251 'difference':350 'discipline':156 'diverse':107,213 'diversity':353 'document':96 'driven':27,172 'efficient':70 'enjoy':279,311 'ensure':78 'everyone':344 'expansion':54 'experience':134,159,182 'familiarity':145 'fast':257 'fast-paced':256 'first':238,358 'flexible':227 'focus':101 'for':128,176,195,296,363 'fully':5 'functional':161 'funding':50 'give':343 'gratitude':321 'growth':246 'haskell':2,143 'haskell/plutus':63,71 'having':48 'high':216,361,364 'high-performing':215 'highly':299 'hours':228 'impact':16,30,42,132,200,365 'in':53,58,135,142,150,160,183,193,234,266,329 'incentives':288 'inclusion':354 'individuals':28 'industry':124 'innovative':177 'integrate':106 'invaluable':335 'is':10,138,157,334 'it':194 'its':147 'job':325 'join':56 'journey':60 'just':294,322 'key':65 'knack':175 'know':292 'knowledge':119,163 'lasting':199 'lead':263 'learning':249 'leave':232 'leveraging':36 'libraries':148 'life':224,357 'like':166 'link':326 'lives':203 'maintain':84 'make':40,197,348 'makes':15 'making':129,269 'many':205 'marketplace':13 'matching':34 'mission':339,342 'mode':55 'mouth':304 'mysql':169 'navigate':253 'occasional':241 'of':164,204,273,303,319 'offsites':242 'on':82,102,120,201,207 'ongoing':248 'opportunities':252 'or':153,168 'organizations':31 'other':115 'our':320,331,338,351 'paced':258 'paid':231 'passion':127 'passionate':212 'perfect':221 'performance':362 'performing':217 'play':372 'plus':140 'plutus':3 'postgresql':167 'practices':105 'prior':133 'problem':179 'problem-solving':178 'proficiency':141 'program':291 'programming':162 'projects':79 'purpose':26 'purpose-driven':25 'quality':86 're':52 'realm':137 'recommendations':305 'refer':307 'referral':290 'related':155 'relish':270 'remote':6,237 'remote-first':236 'responsibilities':66 'reviews':93 'reward':46,315 'right':295 'rigorous':88 'role':61 's':192 'schedule':83 'science/engineering':152 'search':333 'second':360 'secure':68 'secured':49 'security':103 'self':171 'self-driven':170 'setting':239,260 'share':323 'skills':190 'skills/experience':126 'smart':97 'social/environmental':41,131 'socious':8,9,289,297 'solving':180 'someone':293 'stellar':186 'successfully':306 'support':278,328 'systems':108 'take':261 'talent':12,332 'team':76 'teams':116 'teamwork':189 'tech':122 'technology':38 'testing':89 'thank':336 'that':14 'the':75,110,202,208,220,262,345 'this':59,136,324 'thrive':233 'through':32,87 'to':77,244,347 'token':287,318 'traceable':44 'transparency':275 'transparent':20 'trends':125 'trust':274 'unlimited':230 'unwavering':277 'update':118 'us':57 'usd':283 'value':300 'valued':158 'values':341,352 'vibrant':255 'we':21,39,51,298 'what':191 'with':74,99,109,114,146,173,211,226,240,247,264 'word':302 'word-of-mouth':301 'work':17,43,223,259,359 'work-life':222 'working':112 'world':209 'you':196,337 'your':245,327", + city: 'Tokyo', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: 'a2da048a-89ad-4c1e-a5e6-759f7e4f1bf2', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: 'a2da048a-89ad-4c1e-a5e6-759f7e4f1bf2', + name: 'Blockchain development', + hourly_wage_dollars: 44.5, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 168, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: 'fd4fa1bf-15b4-4d75-8b7b-a09cddd49df1', + identity_id: '1180accd-2a57-4a2f-af73-692feb2c05b1', + description: + "**Overview** \r\n\r\nAt EMURGO, we are looking for a Haskell developer that will help us build new products in the blockchain space and help us add new features for some of our current projects, like our Cardano SPOT, and some new stealth projects that we are starting to work on.\r\n\r\nCardan Spot is a focused social network serves end-to-end information for the Cardano community. It provides a user-generated interactive platform specifically designed for investment in, distribution, consumption, and monetization of Cardano content.\r\n\r\nCardano Spot solves the issue of fragmented content in the Cardano ecosystem by aggregating valuable, quality content from reliable sources in the Cardano ecosystem to give up-to-date developments in the Cardano ecosystem.\r\n\r\nA talented Haskell developer is needed to expand our team. You will be responsible for creating, testing, and maintaining applications built with Haskell as a Haskell Developer. You'll work with project managers and other developers to provide top-notch software solutions.\r\n\r\n**Roles and Responsibilities**\r\n\r\n- Develop, test, and maintain Haskell-based applications\r\n- Collaborate with other developers and project managers to ensure timely delivery of projects\r\n- Write clean, well-documented, and efficient code\r\n- Test and debug software applications\r\n- Participate in code reviews to maintain code quality\r\n- Stay up-to-date with emerging software technologies and frameworks\r\n- Communicate effectively with clients and project stakeholders\r\n\r\n\r\n**Requirements and Skills**\r\n\r\n- 1+ years of experience in Haskell\r\n- 1+ years of experience in Node.js\r\n- 1 year of Plutus experience preferred\r\n- Strong knowledge of Haskell programming language and its libraries\r\n- Experience with functional programming principles\r\n- Familiarity with database systems such as PostgreSQL or MySQL\r\n- Familiarity with development tools such as Git and continuous integration systems\r\n- Strong problem-solving skills\r\n- Excellent communication skills\r\n\r\n\r\n**Employee perks & benefits**\r\n\r\nEMURGO provides a generous perks & benefits package to its employees around the world to encourage work-life balance and career development.\r\n\r\n- **Your Well-Deserved Breaks!:** We believe in the importance of work-life balance and prioritizing employee well-being. That’s why we offer a generous and flexible paid time off (PTO) policy to ensure you have the opportunity to recharge and enjoy your life outside of work!\r\n- **Remote And Hybrid Working Environment:** We offer a remote or hybrid working environment for all of our employees, many of whom are based around the world and work remotely from their preferred locations.\r\n- **Continuous Learning Opportunities:** Our employees have access to regular learning activities including our very own blockchain courses through EMURGO Academy. We aim to enhance your career development and advancement knowledge throughout your time with us.\r\n- **Covered Healthcare Costs & Benefits:** We offer covered healthcare services and benefits for permanent employees.\r\n- **Onboarding Buddy Support & Company Provided Devices:** We organize buddy support programs and we also provide necessary electronic devices and work productivity tools for permanent employees.\r\n- **Employee Recognition Initiatives:** We recognise colleagues who help one another be successful at work!\r\n- **Salary Range:** $60,000 - $100,000 per year \r\n\r\n**Referral Program:**\r\n\r\nKnow someone just right for this position? We highly value word-of-mouth recommendations. Successfully refer a candidate, and enjoy a $1,000 reward as a token of our gratitude. Just share this job link!\r\n\r\nYour support in broadening our talent search is invaluable. Thank you.", + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: '60000', + payment_range_higher: '100000', + experience_level: 2, + created_at: '2023-08-25T14:25:54.432Z', + updated_at: '2024-02-20T14:15:49.653Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Haskell / Plutus Developer', + expires_at: null, + country: 'IN', + skills: ['SOFTWARE_ENGINEERING', 'SOFTWARE_DEVELOPMENT', 'HASKELL', 'PLUTUS', 'BLOCKCHAIN_DEVELOPMENT'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'REMOTE', + search_tsv: + "'000':493,495,523 '1':234,240,246,522 '100':494 '60':492 'a':11,56,72,125,149,299,345,376,517,521,526 'academy':421 'access':408 'activities':412 'add':28 'advancement':430 'aggregating':103 'aim':423 'all':383 'also':464 'and':25,41,85,142,158,169,173,183,197,201,222,228,232,258,282,316,334,347,362,370,395,429,446,462,469,519 'another':485 'applications':144,178,204 'are':8,48,390 'around':307,392 'as':148,271,280,525 'at':5,488 'balance':315,333 'based':177,391 'be':137,486 'being':339 'believe':325 'benefits':296,302,440,447 'blockchain':23,417 'breaks':323 'broadening':539 'buddy':452,459 'build':18 'built':145 'by':102 'candidate':518 'cardan':53 'cardano':39,68,88,90,100,112,123 'career':317,427 'clean':193 'clients':227 'code':199,207,211 'collaborate':179 'colleagues':481 'communicate':224 'communication':292 'community':69 'company':454 'consumption':84 'content':89,97,106 'continuous':283,402 'costs':439 'courses':418 'covered':437,443 'creating':140 'current':35 'database':268 'date':119,217 'debug':202 'delivery':189 'deserved':322 'designed':79 'develop':171 'developer':3,13,128,151 'developers':160,182 'development':277,318,428 'developments':120 'devices':456,468 'distribution':83 'documented':196 'ecosystem':101,113,124 'effectively':225 'efficient':198 'electronic':467 'emerging':219 'employee':294,336,476 'employees':306,386,406,450,475 'emurgo':6,297,420 'encourage':311 'end':62,64 'end-to-end':61 'enhance':425 'enjoy':363,520 'ensure':187,355 'environment':373,381 'excellent':291 'expand':132 'experience':237,243,250,261 'familiarity':266,275 'features':30 'flexible':348 'focused':57 'for':10,31,66,80,139,382,448,473,504 'fragmented':96 'frameworks':223 'from':107,398 'functional':263 'generated':75 'generous':300,346 'git':281 'give':115 'gratitude':530 'haskell':1,12,127,147,150,176,239,255 'haskell-based':175 'have':357,407 'healthcare':438,444 'help':16,26,483 'highly':508 'hybrid':371,379 'importance':328 'in':21,82,98,110,121,206,238,244,326,538 'including':413 'information':65 'initiatives':478 'integration':284 'interactive':76 'invaluable':544 'investment':81 'is':55,129,543 'issue':94 'it':70 'its':259,305 'job':534 'just':502,531 'know':500 'knowledge':253,431 'language':257 'learning':403,411 'libraries':260 'life':314,332,365 'like':37 'link':535 'll':153 'locations':401 'looking':9 'maintain':174,210 'maintaining':143 'managers':157,185 'many':387 'monetization':86 'mouth':513 'mysql':274 'necessary':466 'needed':130 'network':59 'new':19,29,43 'node.js':245 'notch':165 'of':33,87,95,190,236,242,248,254,329,367,384,388,512,528 'off':351 'offer':344,375,442 'on':52 'onboarding':451 'one':484 'opportunities':404 'opportunity':359 'or':273,378 'organize':458 'other':159,181 'our':34,38,133,385,405,414,529,540 'outside':366 'overview':4 'own':416 'package':303 'paid':349 'participate':205 'per':496 'perks':295,301 'permanent':449,474 'platform':77 'plutus':2,249 'policy':353 'position':506 'postgresql':272 'preferred':251,400 'principles':265 'prioritizing':335 'problem':288 'problem-solving':287 'productivity':471 'products':20 'program':499 'programming':256,264 'programs':461 'project':156,184,229 'projects':36,45,191 'provide':162,465 'provided':455 'provides':71,298 'pto':352 'quality':105,212 'range':491 'recharge':361 'recognise':480 'recognition':477 'recommendations':514 'refer':516 'referral':498 'regular':410 'reliable':108 'remote':369,377 'remotely':397 'requirements':231 'responsibilities':170 'responsible':138 'reviews':208 'reward':524 'right':503 'roles':168 's':341 'salary':490 'search':542 'serves':60 'services':445 'share':532 'skills':233,290,293 'social':58 'software':166,203,220 'solutions':167 'solves':92 'solving':289 'some':32,42 'someone':501 'sources':109 'space':24 'specifically':78 'spot':40,54,91 'stakeholders':230 'starting':49 'stay':213 'stealth':44 'strong':252,286 'successful':487 'successfully':515 'such':270,279 'support':453,460,537 'systems':269,285 'talent':541 'talented':126 'team':134 'technologies':221 'test':172,200 'testing':141 'thank':545 'that':14,46,340 'the':22,67,93,99,111,122,308,327,358,393 'their':399 'this':505,533 'through':419 'throughout':432 'time':350,434 'timely':188 'to':50,63,114,118,131,161,186,209,216,304,310,354,360,409,424 'token':527 'tools':278,472 'top':164 'top-notch':163 'up':117,215 'up-to-date':116,214 'us':17,27,436 'user':74 'user-generated':73 'valuable':104 'value':509 'very':415 'we':7,47,324,343,374,422,441,457,463,479,507 'well':195,321,338 'well-being':337 'well-deserved':320 'well-documented':194 'who':482 'whom':389 'why':342 'will':15,136 'with':146,155,180,218,226,262,267,276,435 'word':511 'word-of-mouth':510 'work':51,154,313,331,368,396,470,489 'work-life':312,330 'working':372,380 'world':309,394 'write':192 'year':247,497 'years':235,241 'you':135,152,356,546 'your':319,364,426,433,536", + city: 'Bengaluru', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: 'a2da048a-89ad-4c1e-a5e6-759f7e4f1bf2', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '1180accd-2a57-4a2f-af73-692feb2c05b1', + city: 'Singapore', + name: 'Emurgo', + email: 'client.jobs@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/e927edcb447f6a2174e9bbce9ba66f0d.jpg', + hiring: false, + status: 'ACTIVE', + address: '83 Clemenceau Avenue, Singapore River, 239920, SG', + country: 'SG', + mission: "Changing people's lives and the world through Cardano", + verified: false, + shortname: '-emurgo5998', + description: null, + wallet_address: null, + verified_impact: false, + }, + job_category: { + id: 'a2da048a-89ad-4c1e-a5e6-759f7e4f1bf2', + name: 'Blockchain development', + hourly_wage_dollars: 44.5, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 61, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: 'bc7aa7df-bfb6-416f-a90d-d8a77e09d3e4', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: + "Job Title: Lead Frontend Developer\r\n\r\nAbout Socious: \r\n\r\nSocious is a talent marketplace that makes impact work accessible and transparent; we build connections between purpose-driven individuals and impact organizations through AI matching. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions.\r\n\r\nWe got funding and we are expanding our team!\r\n\r\nJob Summary:\r\n\r\nWe are seeking a seasoned and innovative Lead Frontend Developer to spearhead our dynamic and growing team. Based in Germany or a similar time zone? Great. Based elsewhere? That's fine too. We're flexible and open to candidates worldwide for this fully remote position. You will collaborate with designers, contribute to code reviews, test new features, and help document best practices. Your passion for social and environmental impact will drive our mission, while your technical skills will help shape our front-end development processes.\r\n\r\nResponsibilities:\r\n\r\nAs our Lead Frontend Developer, you will:\r\n\r\n- Write, test, and debug code using a variety of frameworks and programming languages, including JavaScript, TypeScript, and React.js.\r\n- Review and evaluate designs from the UX/UI team for functionality and usability, providing constructive feedback as necessary\r\n- Participate in code reviews, ensuring the seamless integration of new features with existing ones\r\n- Foster clear and effective communication within the team, promoting a collaborative environment\r\n- Document development processes, standards, and best practices, ensuring a consistent and high-quality coding environment\r\n\r\nSkills and Experience:\r\n\r\nThe ideal candidate will have:\r\n\r\n- A strong passion for social/environmental impact, with previous experience in impact organizations being a significant asset\r\n- A degree in Computer Science, Engineering, or a related field is preferred\r\n- At least 10 years of experience in frontend development, particularly with JavaScript, TypeScript, React.js, Next.js\r\n- Familiarity with Solidity, Haskell, Plutus, and machine learning is advantageous\r\n- A self-motivated, problem-solving mentality, with a drive for innovative solutions\r\n- Experience in building out applications, with a portfolio showcasing your work\r\n- Strong analytical skills and the ability to tackle problems with innovative solutions\r\n- Exceptional communication skills and a knack for fostering collaboration and openness in a team setting\r\n\r\nLocation:\r\n\r\nWhile we prefer candidates based in Germany or in similar time zones to ensure smooth collaboration, we are an inclusive, global company. We are fully committed to accommodating remote work, and thus we welcome applications from candidates located anywhere in the world.\r\n\r\nWhat We Offer:\r\n\r\n- A diverse, driven, and high-performing work environment\r\n- A supportive, trusting, and transparent work culture\r\n- Work-life balance with flexible hours and unlimited paid leave\r\n- A competitive salary package of USD 80k - 120k per year, plus tokens (similar to stock options) in our company\r\n\r\nIf you're ready to bring your skills and passion to a mission-driven team, we'd love to learn more about you!", + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: '80000', + payment_range_higher: '120000', + experience_level: 3, + created_at: '2023-07-30T00:19:37.162Z', + updated_at: '2024-02-11T13:34:58.769Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Lead Frontend Developer', + expires_at: null, + country: 'JP', + skills: ['JAVASCRIPT', 'SOFTWARE_ENGINEERING', 'CSS', 'REACT.JS', 'COMPUTER_SCIENCE', 'WEB_DEVELOPMENT'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'REMOTE', + search_tsv: + "'10':270 '120k':425 '80k':424 'a':13,64,82,161,213,224,240,253,256,263,293,302,313,334,342,391,400,418,448 'ability':323 'about':9,459 'accessible':20 'accommodating':373 'advantageous':292 'ai':35 'an':364 'analytical':319 'and':21,31,47,53,66,75,96,118,127,157,165,171,174,183,206,220,226,233,288,321,333,339,376,394,403,414,445 'anywhere':384 'applications':311,380 'are':55,62,363,369 'as':148,188 'asset':255 'at':268 'balance':410 'based':78,87,350 'being':252 'best':121,221 'between':26 'blockchain':39 'bring':442 'build':24 'building':309 'by':37 'candidate':237 'candidates':99,349,382 'clear':205 'code':113,159,192 'coding':230 'collaborate':108 'collaboration':338,361 'collaborative':214 'committed':371 'communication':208,331 'company':367,436 'competitive':419 'computer':259 'connections':25 'consistent':225 'constructive':186 'contribute':111 'contributions':49 'culture':406 'd':454 'debug':158 'degree':257 'designers':110 'designs':176 'developer':3,8,70,152 'development':145,217,276 'diverse':392 'document':120,216 'drive':131,303 'driven':29,393,451 'dynamic':74 'effective':207 'elsewhere':88 'end':144 'engineering':261 'ensure':359 'ensuring':194,223 'environment':215,231,399 'environmental':128 'evaluate':175 'exceptional':330 'existing':202 'expanding':56 'experience':234,248,273,307 'familiarity':283 'features':117,200 'feedback':187 'field':265 'fine':91 'flexible':95,412 'for':101,125,181,243,304,336 'foster':204 'fostering':337 'frameworks':164 'from':177,381 'front':143 'front-end':142 'frontend':2,7,69,151,275 'fully':103,370 'functionality':182 'funding':52 'germany':80,352 'global':366 'got':51 'great':86 'growing':76 'haskell':286 'have':239 'help':119,139 'high':228,396 'high-performing':395 'high-quality':227 'hours':413 'ideal':236 'if':437 'impact':18,32,44,129,245,250 'in':79,191,249,258,274,308,341,351,354,385,434 'including':168 'inclusive':365 'individuals':30 'innovative':67,305,328 'integration':197 'is':12,266,291 'javascript':169,279 'job':4,59 'knack':335 'languages':167 'lead':1,6,68,150 'learn':457 'learning':290 'least':269 'leave':417 'leveraging':38 'life':409 'located':383 'location':345 'love':455 'machine':289 'make':42 'makes':17 'marketplace':15 'matching':36 'mentality':300 'mission':133,450 'mission-driven':449 'more':458 'motivated':296 'necessary':189 'new':116,199 'next.js':282 'of':163,198,272,422 'offer':390 'ones':203 'open':97 'openness':340 'options':433 'or':81,262,353 'organizations':33,251 'our':57,73,132,141,149,435 'out':310 'package':421 'paid':416 'participate':190 'particularly':277 'passion':124,242,446 'per':426 'performing':397 'plus':428 'plutus':287 'portfolio':314 'position':105 'practices':122,222 'prefer':348 'preferred':267 'previous':247 'problem':298 'problem-solving':297 'problems':326 'processes':146,218 'programming':166 'promoting':212 'providing':185 'purpose':28 'purpose-driven':27 'quality':229 're':94,439 'react.js':172,281 'ready':440 'related':264 'remote':104,374 'responsibilities':147 'review':173 'reviews':114,193 'reward':48 's':90 'salary':420 'science':260 'seamless':196 'seasoned':65 'seeking':63 'self':295 'self-motivated':294 'setting':344 'shape':140 'showcasing':315 'significant':254 'similar':83,355,430 'skills':137,232,320,332,444 'smooth':360 'social':126 'social/environmental':43,244 'socious':10,11 'solidity':285 'solutions':306,329 'solving':299 'spearhead':72 'standards':219 'stock':432 'strong':241,318 'summary':60 'supportive':401 'tackle':325 'talent':14 'team':58,77,180,211,343,452 'technical':136 'technology':40 'test':115,156 'that':16,89 'the':178,195,210,235,322,386 'this':102 'through':34 'thus':377 'time':84,356 'title':5 'to':71,98,112,324,358,372,431,441,447,456 'tokens':429 'too':92 'traceable':46 'transparent':22,404 'trusting':402 'typescript':170,280 'unlimited':415 'usability':184 'usd':423 'using':160 'ux/ui':179 'variety':162 'we':23,41,50,54,61,93,347,362,368,378,389,453 'welcome':379 'what':388 'while':134,346 'will':107,130,138,154,238 'with':109,201,246,278,284,301,312,327,411 'within':209 'work':19,45,317,375,398,405,408 'work-life':407 'world':387 'worldwide':100 'write':155 'year':427 'years':271 'you':106,153,438,460 'your':123,135,316,443 'zone':85 'zones':357", + city: 'Tokyo', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + name: 'Frontend development', + hourly_wage_dollars: 25, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 260, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: '68db532f-c167-4dac-96a5-a8bfc62bca7a', + identity_id: '14588a07-ec8b-4926-aa11-de90e7cbc642', + description: + "We’re looking for a Senior Blockchain Developer to join our core contributors team.\n\nCarbon project developers want to stop climate change, but the current financing markets are untransparent and inefficient. This makes it incredibly hard for someone like an Indonesian mangrove developer to find financing, and the process can take years. We are rethinking and accelerating carbon supply chain financing through fair, transparent and liquid markets with blockchain in a fast-growing market expected to reach $50B by 2030.\n\nSolid World DAO is the world's first truly liquid carbon credit supply-chain financial instrument. We bring investor trust to the space with world-class advanced carbon production prediction modelling and guarantee transparent price, buyer and seller 24/7. Turning carbon forwards into commodities will result in accelerated expansion cycles and increased capital deployment for carbon projects\n\nWe raised $2.7M for protocol development, have $4M TVL commitments, We have partnered with the top crypto climate companies like Toucan, OFP, Vlidner, StarCB and Emsurge. \n\nWe are looking for a talented, independent and self-starter to take charge in our mission.\n\nCome and help us stop the climate change!\n\n**What will you do?**\n\n- Architect and implement our backend + smart contracts\n- Make sure everything has full test coverage\n- Help with deployment and software development\n- Check economics, formulas and math behind project's economics (tokenomics)\n\n**What should you have?**\n\n- You have 2+ years of Solidity and Typescript experience\n- You have 5+ years of Node or backend development experience\n- You like to write things with quality in mind in a test-driven fashion\n- You have good communication skills\n- You have good English skills\n- You are focused on detail, result-oriented and self-driven\n\n**What will you get?**\n\n- A position where you have a lot of freedom and responsibility\n- You'll get to work with a team that takes crypto, quality and security seriously\n- Flexible working hours + remote work\n- You´ll get to work in a fast-growing international DAO that grows with an exponential speed\n- You´ll get to work with professional and talented people with staggering energy\n- Great salary + DAO tokens so you can benefit from the success of the DAO\n- Unlimited vacation - rest more than legally allowed!\n\nCome help us stop climate change!", + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: '110000', + payment_range_higher: '132000', + experience_level: 2, + created_at: '2022-11-10T14:08:47.843Z', + updated_at: '2022-11-10T14:08:47.843Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Senior Web3 Developer', + expires_at: null, + country: 'ee', + skills: ['JAVASCRIPT', 'SOFTWARE_DEVELOPMENT', 'NODE.JS'], + causes_tags: ['CLIMATE_CHANGE', 'SUSTAINABILITY'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'REMOTE', + search_tsv: + "'2':236 '2.7':146 '2030':84 '24/7':125 '4m':152 '5':245 '50b':82 'a':8,74,175,263,294,299,311,331 'accelerated':134 'accelerating':60 'advanced':113 'allowed':376 'an':43,340 'and':33,50,59,68,118,123,137,169,178,189,201,217,223,240,286,303,317,350 'architect':200 'are':31,57,172,279 'backend':204,250 'behind':225 'benefit':363 'blockchain':10,72 'bring':103 'but':26 'buyer':122 'by':83 'can':53,362 'capital':139 'carbon':18,61,95,114,127,142 'chain':63,99 'change':25,195,382 'charge':184 'check':220 'class':112 'climate':24,162,194,381 'come':188,377 'commitments':154 'commodities':130 'communication':271 'companies':163 'contracts':206 'contributors':16 'core':15 'coverage':213 'credit':96 'crypto':161,315 'current':28 'cycles':136 'dao':87,336,358,369 'deployment':140,216 'detail':282 'developer':3,11,46 'developers':20 'development':150,219,251 'do':199 'driven':266,289 'economics':221,228 'emsurge':170 'energy':355 'english':276 'everything':209 'expansion':135 'expected':79 'experience':242,252 'exponential':341 'fair':66 'fashion':267 'fast':76,333 'fast-growing':75,332 'financial':100 'financing':29,49,64 'find':48 'first':92 'flexible':320 'focused':280 'for':7,40,141,148,174 'formulas':222 'forwards':128 'freedom':302 'from':364 'full':211 'get':293,307,327,345 'good':270,275 'great':356 'growing':77,334 'grows':338 'guarantee':119 'hard':39 'has':210 'have':151,156,233,235,244,269,274,298 'help':190,214,378 'hours':322 'implement':202 'in':73,133,185,260,262,330 'increased':138 'incredibly':38 'independent':177 'indonesian':44 'inefficient':34 'instrument':101 'international':335 'into':129 'investor':104 'is':88 'it':37 'join':13 'legally':375 'like':42,164,254 'liquid':69,94 'll':306,326,344 'looking':6,173 'lot':300 'm':147 'make':207 'makes':36 'mangrove':45 'market':78 'markets':30,70 'math':224 'mind':261 'mission':187 'modelling':117 'more':373 'node':248 'of':238,247,301,367 'ofp':166 'on':281 'or':249 'oriented':285 'our':14,186,203 'partnered':157 'people':352 'position':295 'prediction':116 'price':121 'process':52 'production':115 'professional':349 'project':19,226 'projects':143 'protocol':149 'quality':259,316 'raised':145 're':5 'reach':81 'remote':323 'responsibility':304 'rest':372 'result':132,284 'result-oriented':283 'rethinking':58 's':91,227 'salary':357 'security':318 'self':180,288 'self-driven':287 'self-starter':179 'seller':124 'senior':1,9 'seriously':319 'should':231 'skills':272,277 'smart':205 'so':360 'software':218 'solid':85 'solidity':239 'someone':41 'space':108 'speed':342 'staggering':354 'starcb':168 'starter':181 'stop':23,192,380 'success':366 'supply':62,98 'supply-chain':97 'sure':208 'take':54,183 'takes':314 'talented':176,351 'team':17,312 'test':212,265 'test-driven':264 'than':374 'that':313,337 'the':27,51,89,107,159,193,365,368 'things':257 'this':35 'through':65 'to':12,22,47,80,106,182,255,308,328,346 'tokenomics':229 'tokens':359 'top':160 'toucan':165 'transparent':67,120 'truly':93 'trust':105 'turning':126 'tvl':153 'typescript':241 'unlimited':370 'untransparent':32 'us':191,379 'vacation':371 'vlidner':167 'want':21 'we':4,56,102,144,155,171 'web3':2 'what':196,230,290 'where':296 'will':131,197,291 'with':71,109,158,215,258,310,339,348,353 'work':309,324,329,347 'working':321 'world':86,90,111 'world-class':110 'write':256 'years':55,237,246 'you':198,232,234,243,253,268,273,278,292,297,305,325,343,361", + city: 'Tallinn', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: '87ec40e6-fe30-41cf-a4d7-63db2631c694', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '14588a07-ec8b-4926-aa11-de90e7cbc642', + city: 'Tallinn', + name: 'Solid World DAO', + email: 'client.jobs@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ca9453f602aed05632915c493a364178.jpg', + hiring: false, + status: 'ACTIVE', + address: null, + country: 'ee', + mission: 'Solid World DAO de-risks carbon investments and makes them liquid.', + verified: false, + shortname: 'solid4705', + description: null, + wallet_address: null, + verified_impact: false, + }, + job_category: { + id: '87ec40e6-fe30-41cf-a4d7-63db2631c694', + name: 'Other', + hourly_wage_dollars: 20, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 5, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: 'a1d8c995-66f7-4183-bda1-c6939447a7e0', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: + "**Company Overview:**\r\n\r\nSocious is a talent marketplace that makes impact work accessible and transparent; we build connections between purpose-driven individuals and impact organizations through AI matching. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions.\r\n\r\nHaving secured funding, we're in expansion mode. Join us in this journey!\r\n\r\n**Job Description:**\r\n\r\nThe Impact Academy is our educational product, a comprehensive online learning platform designed for professionals seeking to advance their careers in social impact. We offer courses on impact measurement, ESG (environmental, social, and governance) reporting, impact accounting, the CSRD and more.\r\n\r\nAs Head of Impact Academy, you will spearhead the development and strategic direction of our educational offerings, focusing on creating high-impact learning experiences.\r\n\r\nThis role requires a deep understanding of impact measurement, ESG standards, and the educational needs of professionals aiming to enhance their skills in these areas.\r\n\r\n**Key Responsibilities:**\r\n\r\n- Develop and execute the strategic vision for the Impact Academy, ensuring alignment with industry standards and emerging trends in social impact and sustainability. Ensuring it aligns with our overall company mission and meets the needs of our target audience.\r\n- Lead the creation and curation of course content that meets the needs of professionals from diverse sectors seeking to understand and apply impact measurement, ESG principles, and the CSRD.\r\n- The field of social impact is constantly evolving. You will be responsible for staying current on the latest developments in impact measurement, ESG reporting, the CSRD, and related fields. This knowledge will inform the development of new courses and ensure our platform remains at the forefront of the industry.\r\n- You will work with our team to create a user-friendly and engaging educational content that meets the needs of our learners. This includes conducting user research, gathering feedback, and iterating on the product based on data and insights.\r\n- Oversee the design and delivery of both online and offline learning modules, utilizing innovative educational technologies and methodologies.\r\n- Measure the effectiveness of the educational programs, using impact metrics and participant feedback to continually enhance the learning experience.\r\n- Foster partnerships with key stakeholders, including educational institutions, non-profits, and corporate entities to expand the reach and impact of the academy.\r\n- You will lead a team of talented collaborators, including instructional designers, content developers, and marketing specialists. You will be responsible for creating a culture of collaboration and innovation.\r\n\r\n**Skills/Experience:**\r\n\r\n- Strong background in impact measurement, ESG, or related fields, with professional experience at an accounting firm highly desirable.\r\n- Excellent leadership and communication skills, capable of inspiring a team and collaborating with diverse stakeholders.\r\n- A deep commitment to social impact, with a strategic mindset capable of translating complex sustainability challenges into impactful educational solutions.\r\n- A strong track record of success in launching and managing online learning products.\r\n- Data-driven decision making skills.\r\n- Master’s degree in Business Administration, Sustainability, Education, or related field preferred.\r\n\r\n**What's in it for you?**\r\n\r\n- Make a lasting impact on the lives of many and on the world.\r\n- Take part in shaping the future by working with the most advanced and pioneering technologies in the field.\r\n- Collaborate with and learn from passionate, diverse, and high-performing colleagues.\r\n- Achieve the perfect work-life balance with flexible hours and unlimited paid leave.\r\n- Thrive in a remote-first setting with occasional team get-togethers.\r\n- Commit to your growth with ongoing learning and development opportunities.\r\n- Navigate a vibrant, fast-paced work setting.\r\n- Take the lead with autonomy in decision-making.\r\n- Relish a culture of trust, transparency, and unwavering support.\r\n- Become a member of a team that is deeply committed to fostering a socially responsible and ecologically sustainable work environment.\r\n- Enjoy a competitive compensation: USD 60k to 100k annually + token incentives.\r\n\r\n**Socious Referral Program:**\r\n\r\nKnow someone just right for Socious? We highly value word-of-mouth recommendations. Successfully refer a candidate, and enjoy a $1,000 reward as a token of our gratitude. Just share this job link!\r\n\r\nYour support in broadening our talent search is invaluable. Thank you.\r\n\r\n**Our mission and values:**\r\n\r\n**Mission:** Give everyone the chance to make a difference.\r\n\r\n**Our values:**\r\n\r\n- Diversity, inclusion, and belonging.\r\n- Life first, work second.\r\n- High performance for high impact.\r\n- Autonomy and accountability.\r\n- Candor, collaboration, and play.", + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: '60000', + payment_range_higher: '100000', + experience_level: 3, + created_at: '2024-04-23T01:34:17.428Z', + updated_at: '2024-04-30T09:18:42.854Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Head of Impact Academy', + expires_at: null, + country: null, + skills: ['EDUCATION', 'MANAGEMENT', 'DIGITAL_MARKETING', 'BUSINESS_DEVELOPMENT', 'ESG'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'REMOTE', + search_tsv: + "'000':652 '1':651 '100k':623 '60k':621 'a':9,68,130,279,374,393,426,433,440,453,491,549,571,588,597,600,608,617,646,650,655,687 'academy':4,63,106,163,370 'accessible':16 'accountability':706 'accounting':97,414 'achieve':533 'administration':477 'advance':78 'advanced':514 'ai':31 'aiming':144 'alignment':165 'aligns':179 'an':413 'and':17,27,43,93,100,112,138,155,169,175,185,196,213,219,248,260,283,301,309,314,319,327,339,359,366,384,397,420,428,461,499,515,523,528,543,567,593,611,648,678,693,705,709 'annually':624 'apply':214 'areas':151 'as':102,654 'at':265,412 'audience':192 'autonomy':582,704 'background':401 'balance':539 'based':306 'be':232,389 'become':596 'belonging':694 'between':22 'blockchain':35 'both':317 'broadening':668 'build':20 'business':476 'by':33,509 'candidate':647 'candor':707 'capable':423,443 'careers':80 'challenges':448 'chance':684 'collaborate':521 'collaborating':429 'collaboration':396,708 'collaborators':378 'colleagues':532 'commit':560 'commitment':435 'committed':605 'communication':421 'company':5,183 'compensation':619 'competitive':618 'complex':446 'comprehensive':69 'conducting':296 'connections':21 'constantly':228 'content':200,286,382 'continually':343 'contributions':45 'corporate':360 'course':199 'courses':86,259 'create':278 'creating':121,392 'creation':195 'csrd':99,221,247 'culture':394,589 'curation':197 'current':236 'data':308,467 'data-driven':466 'decision':469,585 'decision-making':584 'deep':131,434 'deeply':604 'degree':474 'delivery':315 'description':60 'design':313 'designed':73 'designers':381 'desirable':417 'develop':154 'developers':383 'development':111,256,568 'developments':240 'difference':688 'direction':114 'diverse':208,431,527 'diversity':691 'driven':25,468 'ecologically':612 'education':479 'educational':66,117,140,285,325,334,354,451 'effectiveness':331 'emerging':170 'engaging':284 'enhance':146,344 'enjoy':616,649 'ensure':261 'ensuring':164,177 'entities':361 'environment':615 'environmental':91 'esg':90,136,217,244,405 'everyone':682 'evolving':229 'excellent':418 'execute':156 'expand':363 'expansion':52 'experience':347,411 'experiences':126 'fast':574 'fast-paced':573 'feedback':300,341 'field':223,482,520 'fields':250,408 'firm':415 'first':552,696 'flexible':541 'focusing':119 'for':74,160,234,391,488,634,701 'forefront':267 'foster':348 'fostering':607 'friendly':282 'from':207,525 'funding':48 'future':508 'gathering':299 'get':558 'get-togethers':557 'give':681 'governance':94 'gratitude':659 'growth':563 'having':46 'head':1,103 'high':123,530,699,702 'high-impact':122 'high-performing':529 'highly':416,637 'hours':542 'impact':3,14,28,40,62,83,88,96,105,124,134,162,174,215,226,242,337,367,403,438,493,703 'impactful':450 'in':51,56,81,149,172,241,402,459,475,486,505,518,548,583,667 'incentives':626 'includes':295 'including':353,379 'inclusion':692 'individuals':26 'industry':167,270 'inform':254 'innovation':398 'innovative':324 'insights':310 'inspiring':425 'institutions':355 'instructional':380 'into':449 'invaluable':673 'is':8,64,227,603,672 'it':178,487 'iterating':302 'job':59,663 'join':54 'journey':58 'just':632,660 'key':152,351 'know':630 'knowledge':252 'lasting':492 'latest':239 'launching':460 'lead':193,373,580 'leadership':419 'learn':524 'learners':293 'learning':71,125,321,346,464,566 'leave':546 'leveraging':34 'life':538,695 'link':664 'lives':496 'make':38,490,686 'makes':13 'making':470,586 'managing':462 'many':498 'marketing':385 'marketplace':11 'master':472 'matching':32 'measure':329 'measurement':89,135,216,243,404 'meets':186,202,288 'member':598 'methodologies':328 'metrics':338 'mindset':442 'mission':184,677,680 'mode':53 'modules':322 'more':101 'most':513 'mouth':642 'navigate':570 'needs':141,188,204,290 'new':258 'non':357 'non-profits':356 'occasional':555 'of':2,104,115,133,142,189,198,205,224,257,268,291,316,332,368,376,395,424,444,457,497,590,599,641,657 'offer':85 'offerings':118 'offline':320 'on':87,120,237,303,307,494,500 'ongoing':565 'online':70,318,463 'opportunities':569 'or':406,480 'organizations':29 'our':65,116,181,190,262,275,292,658,669,676,689 'overall':182 'oversee':311 'overview':6 'paced':575 'paid':545 'part':504 'participant':340 'partnerships':349 'passionate':526 'perfect':535 'performance':700 'performing':531 'pioneering':516 'platform':72,263 'play':710 'preferred':483 'principles':218 'product':67,305 'products':465 'professional':410 'professionals':75,143,206 'profits':358 'program':629 'programs':335 'purpose':24 'purpose-driven':23 're':50 'reach':365 'recommendations':643 'record':456 'refer':645 'referral':628 'related':249,407,481 'relish':587 'remains':264 'remote':551 'remote-first':550 'reporting':95,245 'requires':129 'research':298 'responsibilities':153 'responsible':233,390,610 'reward':44,653 'right':633 'role':128 's':473,485 'search':671 'second':698 'sectors':209 'secured':47 'seeking':76,210 'setting':553,577 'shaping':506 'share':661 'skills':148,422,471 'skills/experience':399 'social':82,92,173,225,437 'social/environmental':39 'socially':609 'socious':7,627,635 'solutions':452 'someone':631 'spearhead':109 'specialists':386 'stakeholders':352,432 'standards':137,168 'staying':235 'strategic':113,158,441 'strong':400,454 'success':458 'successfully':644 'support':595,666 'sustainability':176,447,478 'sustainable':613 'take':503,578 'talent':10,670 'talented':377 'target':191 'team':276,375,427,556,601 'technologies':326,517 'technology':36 'thank':674 'that':12,201,287,602 'the':61,98,110,139,157,161,187,194,203,220,222,238,246,255,266,269,289,304,312,330,333,345,364,369,495,501,507,512,519,534,579,683 'their':79,147 'these':150 'this':57,127,251,294,662 'thrive':547 'through':30 'to':77,145,211,277,342,362,436,561,606,622,685 'togethers':559 'token':625,656 'traceable':42 'track':455 'translating':445 'transparency':592 'transparent':18 'trends':171 'trust':591 'understand':212 'understanding':132 'unlimited':544 'unwavering':594 'us':55 'usd':620 'user':281,297 'user-friendly':280 'using':336 'utilizing':323 'value':638 'values':679,690 'vibrant':572 'vision':159 'we':19,37,49,84,636 'what':484 'will':108,231,253,272,372,388 'with':166,180,274,350,409,430,439,511,522,540,554,564,581 'word':640 'word-of-mouth':639 'work':15,41,273,537,576,614,697 'work-life':536 'working':510 'world':502 'you':107,230,271,371,387,489,675 'your':562,665", + city: null, + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: '4fd54bae-80ac-4443-b610-c5a280f39093', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: '4fd54bae-80ac-4443-b610-c5a280f39093', + name: 'Executive management', + hourly_wage_dollars: 45, + created_at: '2023-01-26T15:00:00+00:00', + updated_at: '2023-01-26T15:00:00+00:00', + }, + work_samples: [], + applicants: 31, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: '84b12f02-53f3-4d12-8cc8-8f191b10ee55', + identity_id: 'bfa7f9cf-65f0-492c-90df-6cf8ddea5c60', + description: + '**Software Engineer (Haskell)**\r\n\r\nFully remote position. We are hiring Haskell developers of different levels of seniority. We build new blockchain technologies and infrastructure people can trust. That is why we are seeking talented and passionate individuals who could contribute to our products, most of which are open-source.\r\n\r\n**Responsibilities:**\r\n\r\n- Develop a high-quality code for our cryptography and blockchain libraries\r\n- Implement novel cryptographic algorithms and integrate the existing implementations into our codebase\r\n- Help to design and implement our Layer 2 node software\r\n- Build demos and example applications for our products\r\n- Document the project according to the best standards for open-source development\r\n\r\n**Requirements:**\r\n\r\n- Excellent knowledge of Haskell\r\n- Ability to write a high-quality code\r\n- Familiarity with best practices in functional programming\r\n- Strong math / computer science background\r\n\r\n**Desired qualifications:**\r\n\r\n- Good knowledge of Rust and C++\r\n- Experience in blockchain developmen\r\n- Experience in developing cryptographic libraries\r\n- Experience in building distributed systems\r\n\r\n**Compensation**: up to $10,000 per month', + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: '1000', + payment_range_higher: '10000', + experience_level: 2, + created_at: '2024-02-20T13:55:09.526Z', + updated_at: '2024-02-20T15:50:41.843Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Software Engineer (Haskell) ', + expires_at: null, + country: 'CH', + skills: ['BLOCKCHAIN_DEVELOPMENT', 'PLUTUS', 'HASKELL', 'C++'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'REMOTE', + search_tsv: + "'000':160 '10':159 '2':85 'a':55,117 'ability':114 'according':99 'algorithms':69 'and':25,37,63,70,81,90,140 'applications':92 'are':11,34,49 'background':133 'best':102,124 'blockchain':23,64,144 'build':21,88 'building':153 'c':141 'can':28 'code':59,121 'codebase':77 'compensation':156 'computer':131 'contribute':42 'could':41 'cryptographic':68,149 'cryptography':62 'demos':89 'design':80 'desired':134 'develop':54 'developers':14 'developing':148 'developmen':145 'development':108 'different':16 'distributed':154 'document':96 'engineer':2,5 'example':91 'excellent':110 'existing':73 'experience':142,146,151 'familiarity':122 'for':60,93,104 'fully':7 'functional':127 'good':136 'haskell':3,6,13,113 'help':78 'high':57,119 'high-quality':56,118 'hiring':12 'implement':66,82 'implementations':74 'in':126,143,147,152 'individuals':39 'infrastructure':26 'integrate':71 'into':75 'is':31 'knowledge':111,137 'layer':84 'levels':17 'libraries':65,150 'math':130 'month':162 'most':46 'new':22 'node':86 'novel':67 'of':15,18,47,112,138 'open':51,106 'open-source':50,105 'our':44,61,76,83,94 'passionate':38 'people':27 'per':161 'position':9 'practices':125 'products':45,95 'programming':128 'project':98 'qualifications':135 'quality':58,120 'remote':8 'requirements':109 'responsibilities':53 'rust':139 'science':132 'seeking':35 'seniority':19 'software':1,4,87 'source':52,107 'standards':103 'strong':129 'systems':155 'talented':36 'technologies':24 'that':30 'the':72,97,101 'to':43,79,100,115,158 'trust':29 'up':157 'we':10,20,33 'which':48 'who':40 'why':32 'with':123 'write':116", + city: 'Montreux', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: 'a2da048a-89ad-4c1e-a5e6-759f7e4f1bf2', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: 'bfa7f9cf-65f0-492c-90df-6cf8ddea5c60', + city: 'Montreux', + name: 'zkFold', + email: 'info@zkfold.io', + image: 'https://storage.googleapis.com/socious-gcs/991d87f077decc28071796b7e64de961.jpg', + hiring: true, + status: 'ACTIVE', + address: null, + country: 'CH', + mission: 'We make Cardano blockchain transactions faster and cheaper with zk-rollups\n\n', + verified: false, + shortname: '-zkfold9152', + description: null, + wallet_address: null, + verified_impact: false, + }, + job_category: { + id: 'a2da048a-89ad-4c1e-a5e6-759f7e4f1bf2', + name: 'Blockchain development', + hourly_wage_dollars: 44.5, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 31, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: '4b3f6d65-2eac-426a-b7cc-6a76b569c384', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: + '***About us:***\r\n\r\nSocious is a talent marketplace that makes impact work accessible and transparent; we build connections between purpose-driven individuals and impact organizations through AI matching. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions.\r\n\r\nWe got venture funding and we are expanding our team! \r\n\r\n***Responsibilities:***\r\n\r\nAs a Frontend Developer:\r\n\r\n- Writing code using a variety of programming languages/frameworks including JavaScript, Typescript, React.js, Next.js, Gatsby.js, etc.\r\n- Reviewing designs created by designers to ensure they are functional and meet usability standards\r\n- Participating in code reviews and testing new features to ensure they are compatible with existing features\r\n- Communicating clearly with other team members with minimal external help.\r\n- Documenting development processes and complying with best practices.\r\n\r\n***Skills/Experience:***\r\n\r\n- A strong passion for social/environmental impact (previous experience with impact organizations is an asset)\r\n- Degree in Computer Science, Engineering or a related field is an asset\r\n- 8+ years of experience in frontend development especially with Javascript, Typescript, React.js, Next.js\r\n- Experience with Solidity, Haskell, Plutus, and machine learning is an asset\r\n- Self-motivated and driven to creatively solve problems\r\n- Experience building out applications\r\n- Strong analytical and problem-solving skills\r\n- Excellent communication and collaboration abilities.\r\n\r\n***What we offer:*** \r\n\r\n- Diverse, driven, and high-performing colleagues\r\n- A supportive, trusting and transparent working environment\r\n- Work-life balance with flexible hours and leave (unlimited paid leave)\r\n- A competitive salary package: USD 70k - 110k per year + tokens (similar to stock options)', + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: '70000', + payment_range_higher: '110000', + experience_level: 2, + created_at: '2023-08-21T22:59:36.881Z', + updated_at: '2024-02-11T13:36:23.676Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Senior Frontend Engineer', + expires_at: null, + country: 'JP', + skills: ['REACT.JS', 'JAVASCRIPT', 'SOFTWARE_DEVELOPMENT', 'SOFTWARE_ENGINEERING'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'REMOTE', + search_tsv: + "'110k':234 '70k':233 '8':150 'a':8,57,63,124,144,209,228 'abilities':198 'about':4 'accessible':15 'ai':30 'an':136,148,172 'analytical':188 'and':16,26,42,49,85,93,118,168,177,189,196,204,212,223 'applications':186 'are':51,83,100 'as':56 'asset':137,149,173 'balance':219 'best':121 'between':21 'blockchain':34 'build':19 'building':184 'by':32,78 'clearly':106 'code':61,91 'collaboration':197 'colleagues':208 'communicating':105 'communication':195 'compatible':101 'competitive':229 'complying':119 'computer':140 'connections':20 'contributions':44 'created':77 'creatively':180 'degree':138 'designers':79 'designs':76 'developer':59 'development':116,156 'diverse':202 'documenting':115 'driven':24,178,203 'engineer':3 'engineering':142 'ensure':81,98 'environment':215 'especially':157 'etc':74 'excellent':194 'existing':103 'expanding':52 'experience':131,153,163,183 'external':113 'features':96,104 'field':146 'flexible':221 'for':127 'frontend':2,58,155 'functional':84 'funding':48 'gatsby.js':73 'got':46 'haskell':166 'help':114 'high':206 'high-performing':205 'hours':222 'impact':13,27,39,129,133 'in':90,139,154 'including':68 'individuals':25 'is':7,135,147,171 'javascript':69,159 'languages/frameworks':67 'learning':170 'leave':224,227 'leveraging':33 'life':218 'machine':169 'make':37 'makes':12 'marketplace':10 'matching':31 'meet':86 'members':110 'minimal':112 'motivated':176 'new':95 'next.js':72,162 'of':65,152 'offer':201 'options':241 'or':143 'organizations':28,134 'other':108 'our':53 'out':185 'package':231 'paid':226 'participating':89 'passion':126 'per':235 'performing':207 'plutus':167 'practices':122 'previous':130 'problem':191 'problem-solving':190 'problems':182 'processes':117 'programming':66 'purpose':23 'purpose-driven':22 'react.js':71,161 'related':145 'responsibilities':55 'reviewing':75 'reviews':92 'reward':43 'salary':230 'science':141 'self':175 'self-motivated':174 'senior':1 'similar':238 'skills':193 'skills/experience':123 'social/environmental':38,128 'socious':6 'solidity':165 'solve':181 'solving':192 'standards':88 'stock':240 'strong':125,187 'supportive':210 'talent':9 'team':54,109 'technology':35 'testing':94 'that':11 'they':82,99 'through':29 'to':80,97,179,239 'tokens':237 'traceable':41 'transparent':17,213 'trusting':211 'typescript':70,160 'unlimited':225 'us':5 'usability':87 'usd':232 'using':62 'variety':64 'venture':47 'we':18,36,45,50,200 'what':199 'with':102,107,111,120,132,158,164,220 'work':14,40,217 'work-life':216 'working':214 'writing':60 'year':236 'years':151", + city: 'Tokyo', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + name: 'Frontend development', + hourly_wage_dollars: 25, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 392, + missions: 4, + saved: false, + not_interested: false, + }, + { + id: '69d527c4-e914-490a-8521-fd6e1977a522', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: + "Socious launched Tech4Good Changemaker Scholarship in partnership with Le Wagon Tokyo Coding Bootcamp. The new scholarship program is aimed at individuals who are passionate to learn web development and data science as tools to create social impact. The ultimate goal of this scholarship is to close the gap of the social sector’s scarce IT human resources.\n\nTech4Good Changemaker Scholarship will cover up to 30% of the student's tuition fee. It applies to Le Wagon Tokyo's full-time and part-time web development and data science bootcamps. It can accommodate remote learning and is open to participants from all over the world.\n\nSeira Yun, the founder of Socious Inc., is an alumnus of Le Wagon's web development program. He has been successful in transitioning from a humanitarian worker to a Tech4Good entrepreneur.\n\n“We launched Tech4Good Changemaker Scholarship to solve the shortage of IT talent in the social impact sector. We believe that talented web developers and data scientists can leverage the power of technology to help social impact organizations scale their solutions. We hope to empower people to learn to code and apply these skills to solve social problems,” said Seira.\n\nThe scholars will also enjoy mentorship from Socious Inc.'s members. Mentors will support in finding employment in or creating social impact organizations. Scholars are also entitled to free access to Socious Inc.'s community events. There will also be a community of alumni scholars that will enrich the students' network.\n\nInterested applicants can \n\n1. Apply to Le Wagon through their official website: https://info.lewagon.com/changemaker-scholarship-program\n2. if your application to Le Wagon's program is successful, you can apply to the Scholarship through the Socious app (this app). The Socious team will interview you and conduct reference checks.\n\n", + project_type: 'ONE_OFF', + project_length: '3_6_MONTHS', + payment_currency: 'USD', + payment_range_lower: '2000', + payment_range_higher: '2100', + experience_level: 1, + created_at: '2023-12-11T05:22:05.441Z', + updated_at: '2023-12-11T07:17:47.563Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Tech4Good Changemaker Scholarship', + expires_at: null, + country: 'JP', + skills: ['SOFTWARE_ENGINEERING'], + causes_tags: ['EDUCATION'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'REMOTE', + search_tsv: + "'/changemaker-scholarship-program':265 '1':254 '2':266 '30':68 'a':134,138,240 'access':229 'accommodate':97 'aimed':22 'all':106 'also':203,225,238 'alumni':243 'alumnus':119 'an':118 'and':32,85,91,100,164,190,295 'app':286,288 'applicants':252 'application':269 'applies':76 'apply':191,255,279 'are':26,224 'as':35 'at':23 'be':239 'been':129 'believe':159 'bootcamp':16 'bootcamps':94 'can':96,167,253,278 'changemaker':2,7,62,144 'checks':298 'close':49 'code':189 'coding':15 'community':234,241 'conduct':296 'cover':65 'create':38 'creating':219 'data':33,92,165 'developers':163 'development':31,90,125 'employment':216 'empower':184 'enjoy':204 'enrich':247 'entitled':226 'entrepreneur':140 'events':235 'fee':74 'finding':215 'founder':113 'free':228 'from':105,133,206 'full':83 'full-time':82 'gap':51 'goal':43 'has':128 'he':127 'help':174 'hope':182 'human':59 'humanitarian':135 'if':267 'impact':40,156,176,221 'in':9,131,153,214,217 'inc':116,208,232 'individuals':24 'info.lewagon.com':264 'info.lewagon.com/changemaker-scholarship-program':263 'interested':251 'interview':293 'is':21,47,101,117,275 'it':58,75,95,151 'launched':5,142 'le':12,78,121,257,271 'learn':29,187 'learning':99 'leverage':168 'members':210 'mentors':211 'mentorship':205 'network':250 'new':18 'of':44,52,69,114,120,150,171,242 'official':261 'open':102 'or':218 'organizations':177,222 'over':107 'part':87 'part-time':86 'participants':104 'partnership':10 'passionate':27 'people':185 'power':170 'problems':197 'program':20,126,274 'reference':297 'remote':98 'resources':60 's':56,72,81,123,209,233,273 'said':198 'scale':178 'scarce':57 'scholars':201,223,244 'scholarship':3,8,19,46,63,145,282 'science':34,93 'scientists':166 'sector':55,157 'seira':110,199 'shortage':149 'skills':193 'social':39,54,155,175,196,220 'socious':4,115,207,231,285,290 'solutions':180 'solve':147,195 'student':71 'students':249 'successful':130,276 'support':213 'talent':152 'talented':161 'team':291 'tech4good':1,6,61,139,143 'technology':172 'that':160,245 'the':17,41,50,53,70,108,112,148,154,169,200,248,281,284,289 'their':179,260 'there':236 'these':192 'this':45,287 'through':259,283 'time':84,88 'to':28,37,48,67,77,103,137,146,173,183,186,188,194,227,230,256,270,280 'tokyo':14,80 'tools':36 'transitioning':132 'tuition':73 'ultimate':42 'up':66 'wagon':13,79,122,258,272 'we':141,158,181 'web':30,89,124,162 'website':262 'who':25 'will':64,202,212,237,246,292 'with':11 'worker':136 'world':109 'you':277,294 'your':268 'yun':111", + city: 'Tokyo', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: '87ec40e6-fe30-41cf-a4d7-63db2631c694', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: '87ec40e6-fe30-41cf-a4d7-63db2631c694', + name: 'Other', + hourly_wage_dollars: 20, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 3, + missions: 1, + saved: false, + not_interested: false, + }, + { + id: 'fbdb674a-5211-4bb1-ba30-0390776caa19', + identity_id: 'd9cbf5fa-f8b7-4e8f-a19f-276fdf8fa161', + description: + "🔭 Our mission & vision\nTransforming how the world supports those left behind, through the power of people and technology 🚀\n\nJob Description\nAt Beam, our vision is to create a more just society by building radically better services and technology for those most in need.\n\nWe've already transformed the lives of hundreds of homeless people by supporting them through training, into rewarding work and stable homes.\n\nWe've done that by crowdfunding almost £2 million from over 10,000 supporters and building genuinely ground-breaking products.\n\nWe're a wildly ambitious team, backed by some of the world's leading tech investors and led by a hugely experienced, hands-on founding team.\n\nWe're a crew of friendly, collaborative problem-solvers who live by our core values of transparency and supporting each other.\n\nWe also get to do some fun things - like go to Downing Street :)\n(https://www.linkedin.com/posts/alexstephany_socialimpact-developerlife-techforgood-activity-6759434743193878528-lN7e/)\n\nAnd we're seriously just getting started. Read more about our company culture in Beam Life on our careers page. (https://beam.org/careers)\n\nResponsibilities & tasks\nLife as a Developer at Beam\nWe're looking for someone to work closely with Julian (https://www.linkedin.com/in/juliankeenaghan/ - that's me, the guy who built Beam!) to help shape and build the future of our tools and products.\n\nYou and I would spend a lot of time pair programming, brainstorming hard problems, prototyping different ideas, throwing them away, and prototyping them again. You wouldn't be just churning through tickets in a backlog — you'd be helping to design entirely new products, figuring out what exactly we're even building and why.\n\nYou'd spend your time developing and improving existing projects, for example:\n- Building internal tools for our team to help as many people as efficiently as possible\n- An entirely new onboarding flow for our beneficiaries\n- Giving increased transparency to our supporters on the impact of their donations\n- Snazzy reporting products giving unprecedented insights for government customers\n- Optimising our products so that they are snappy and performant for all of our users\n- Check out this interview with one of Beam's Full Stack Engineers on the Beam blog (https://blog.beam.org/an-interview-with-alex-rudall-senior-full-stack-developer/)\n\nWhat tech do we use?\nOur priority is to ship maintainable, reliable systems. To date we've done that using:\n- Ruby on Rails on the back-end\n- Vue JS, Tailwind CSS and ERB for front-end\n- Heroku, AWS for hosting\n- PostgreSQL, Airtable for databases\n- RSpec, Sidekiq, Stripe, Twilio, Slack, Mailchimp\n\nSkills & qualifications\nYou should apply if:\n- You’re already a great Ruby developer, well versed in engineering best practices, including version control, test-driven development and continuous integration\n- You have at least 4+ years of engineering experience in a high-growth tech startup or leading global tech company\n- You write clean, performant and well-documented code\n- You have experience building web products and services and have an awareness of technologies across the stack\n- You care about building reliable, well-tested systems\n- You have a product mindset: you care about customer outcomes and you want to make data-informed decisions\n- You have an entrepreneurial, get things done attitude\n- You'll contribute to fostering a culture of psychological safety, inclusivity, collaboration and continuous improvement within the team through participation in retrospectives and feedback\n- You're passionate about social mobility\n\nWe have a strong preference for London-based engineers who can regularly meet the team to problem solve in person. We do hire outside of the UK in locations within +/- 3 hours of GMT.\n\nAbout the team\nWe’re a team of over 70 working from our beautiful co-working space in Shoreditch and from home. We’ve picked up an armful of awards for our work (including one from our former Queen!) We’re one of the 10 hottest startups in London, according to WIRED magazine and one of LinkedIn’s Top 15 UK Startups list for 2022. We’re also proud to be rated a top company to work for Escape the City, Tempo and The Dots.\n\nWe’re committed to hiring diversely and inclusively. You don’t need a degree to work here and we love to hear from ethnic minority candidates and/or those who’ve experienced social disadvantage. 63% of people we support are from ethnic minority backgrounds and 17% have disabilities. We believe we serve these people best when we’re a diverse and inclusive team", + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'GBP', + payment_range_lower: '55000', + payment_range_higher: '90000', + experience_level: 2, + created_at: '2022-11-14T15:53:02.170Z', + updated_at: '2022-11-14T15:53:02.170Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Full Stack Engineer (Ruby on Rails)', + expires_at: null, + country: 'gb', + skills: ['RUBY', 'RUBY-ON-RAILS', 'JAVASCRIPT', 'AWS'], + causes_tags: ['HOMELESSNESS', 'REFUGEE', 'POVERTY'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'HYBRID', + search_tsv: + "'/an-interview-with-alex-rudall-senior-full-stack-developer/)':365 '/careers)':180 '/in/juliankeenaghan/':201 '/posts/alexstephany_socialimpact-developerlife-techforgood-activity-6759434743193878528-ln7e/)':157 '000':84 '10':83,640 '15':655 '17':725 '2':79 '2022':660 '3':591 '4':451 '63':714 '70':604 'a':34,95,112,122,185,227,255,427,457,505,535,562,600,668,693,738 'about':167,496,510,557,595 'according':645 'across':491 'again':245 'airtable':409 'all':343 'almost':78 'already':52,426 'also':143,663 'ambitious':97 'an':303,487,524,622 'and':23,43,69,86,109,138,158,213,220,223,242,274,282,340,398,444,472,483,485,513,542,552,615,649,678,687,698,724,740 'and/or':707 'apply':422 'are':338,719 'armful':623 'as':184,296,299,301 'at':27,187,449 'attitude':529 'awards':625 'awareness':488 'away':241 'aws':405 'back':392 'back-end':391 'backed':99 'backgrounds':723 'backlog':256 'based':568 'be':249,259,666 'beam':28,172,188,209,354,361 'beam.org':179 'beam.org/careers)':178 'beautiful':608 'behind':17 'believe':729 'beneficiaries':310 'best':435,734 'better':41 'blog':362 'blog.beam.org':364 'blog.beam.org/an-interview-with-alex-rudall-senior-full-stack-developer/)':363 'brainstorming':233 'breaking':91 'build':214 'building':39,87,273,288,480,497 'built':208 'by':38,61,76,100,111,132 'can':571 'candidates':706 'care':495,509 'careers':176 'check':347 'churning':251 'city':676 'clean':470 'closely':196 'co':610 'co-working':609 'code':476 'collaboration':541 'collaborative':126 'committed':683 'company':169,467,670 'continuous':445,543 'contribute':532 'control':439 'core':134 'create':33 'crew':123 'crowdfunding':77 'css':397 'culture':170,536 'customer':511 'customers':331 'd':258,277 'data':519 'data-informed':518 'databases':411 'date':380 'decisions':521 'degree':694 'description':26 'design':262 'developer':186,430 'developing':281 'development':443 'different':237 'disabilities':727 'disadvantage':713 'diverse':739 'diversely':686 'do':146,368,582 'documented':475 'don':690 'donations':322 'done':74,383,528 'dots':680 'downing':153 'driven':442 'each':140 'efficiently':300 'end':393,403 'engineer':3 'engineering':434,454 'engineers':358,569 'entirely':263,304 'entrepreneurial':525 'erb':399 'escape':674 'ethnic':704,721 'even':272 'exactly':269 'example':287 'existing':284 'experience':455,479 'experienced':114,711 'feedback':553 'figuring':266 'flow':307 'for':45,192,286,291,308,329,342,400,406,410,565,626,659,673 'former':633 'fostering':534 'founding':118 'friendly':125 'from':81,606,616,631,703,720 'front':402 'front-end':401 'full':1,356 'fun':148 'future':216 'genuinely':88 'get':144,526 'getting':163 'giving':311,326 'global':465 'gmt':594 'go':151 'government':330 'great':428 'ground':90 'ground-breaking':89 'growth':460 'guy':206 'hands':116 'hands-on':115 'hard':234 'have':448,478,486,504,523,561,726 'hear':702 'help':211,295 'helping':260 'here':697 'heroku':404 'high':459 'high-growth':458 'hire':583 'hiring':685 'home':617 'homeless':59 'homes':71 'hosting':407 'hottest':641 'hours':592 'how':11 'hugely':113 'hundreds':57 'i':224 'ideas':238 'if':423 'impact':319 'improvement':544 'improving':283 'in':48,171,254,433,456,550,579,588,613,643 'including':437,629 'inclusive':741 'inclusively':688 'inclusivity':540 'increased':312 'informed':520 'insights':328 'integration':446 'internal':289 'interview':350 'into':66 'investors':108 'is':31,373 'job':25 'js':395 'julian':198 'just':36,162,250 'leading':106,464 'least':450 'led':110 'left':16 'life':173,183 'like':150 'linkedin':652 'list':658 'live':131 'lives':55 'll':531 'locations':589 'london':567,644 'london-based':566 'looking':191 'lot':228 'love':700 'magazine':648 'mailchimp':417 'maintainable':376 'make':517 'many':297 'me':204 'meet':573 'million':80 'mindset':507 'minority':705,722 'mission':8 'mobility':559 'more':35,166 'most':47 'need':49,692 'new':264,305 'of':21,56,58,102,124,136,217,229,320,344,353,453,489,537,585,593,602,624,638,651,715 'on':5,117,174,317,359,387,389 'onboarding':306 'one':352,630,637,650 'optimising':332 'or':463 'other':141 'our':7,29,133,168,175,218,292,309,315,333,345,371,607,627,632 'out':267,348 'outcomes':512 'outside':584 'over':82,603 'page':177 'pair':231 'participation':549 'passionate':556 'people':22,60,298,716,733 'performant':341,471 'person':580 'picked':620 'possible':302 'postgresql':408 'power':20 'practices':436 'preference':564 'priority':372 'problem':128,577 'problem-solvers':127 'problems':235 'product':506 'products':92,221,265,325,334,482 'programming':232 'projects':285 'prototyping':236,243 'proud':664 'psychological':538 'qualifications':419 'queen':634 'radically':40 'rails':6,388 'rated':667 're':94,121,160,190,271,425,555,599,636,662,682,737 'read':165 'regularly':572 'reliable':377,498 'reporting':324 'responsibilities':181 'retrospectives':551 'rewarding':67 'rspec':412 'ruby':4,386,429 's':105,203,355,653 'safety':539 'seriously':161 'serve':731 'services':42,484 'shape':212 'ship':375 'shoreditch':614 'should':421 'sidekiq':413 'skills':418 'slack':416 'snappy':339 'snazzy':323 'so':335 'social':558,712 'society':37 'solve':578 'solvers':129 'some':101,147 'someone':193 'space':612 'spend':226,278 'stable':70 'stack':2,357,493 'started':164 'startup':462 'startups':642,657 'street':154 'stripe':414 'strong':563 'support':718 'supporters':85,316 'supporting':62,139 'supports':14 'systems':378,502 't':248,691 'tailwind':396 'tasks':182 'team':98,119,293,547,575,597,601,742 'tech':107,367,461,466 'technologies':490 'technology':24,44 'tempo':677 'test':441 'test-driven':440 'tested':501 'that':75,202,336,384 'the':12,19,54,103,205,215,318,360,390,492,546,574,586,596,639,675,679 'their':321 'them':63,240,244 'these':732 'they':337 'things':149,527 'this':349 'those':15,46,708 'through':18,64,252,548 'throwing':239 'tickets':253 'time':230,280 'to':32,145,152,194,210,261,294,314,374,379,516,533,576,646,665,671,684,695,701 'tools':219,290 'top':654,669 'training':65 'transformed':53 'transforming':10 'transparency':137,313 'twilio':415 'uk':587,656 'unprecedented':327 'up':621 'use':370 'users':346 'using':385 'values':135 've':51,73,382,619,710 'versed':432 'version':438 'vision':9,30 'vue':394 'want':515 'we':50,72,93,120,142,159,189,270,369,381,560,581,598,618,635,661,681,699,717,728,730,736 'web':481 'well':431,474,500 'well-documented':473 'well-tested':499 'what':268,366 'when':735 'who':130,207,570,709 'why':275 'wildly':96 'wired':647 'with':197,351 'within':545,590 'work':68,195,628,672,696 'working':605,611 'world':13,104 'would':225 'wouldn':247 'write':469 'www.linkedin.com':156,200 'www.linkedin.com/in/juliankeenaghan/':199 'www.linkedin.com/posts/alexstephany_socialimpact-developerlife-techforgood-activity-6759434743193878528-ln7e/)':155 'years':452 'you':222,246,257,276,420,424,447,468,477,494,503,508,514,522,530,554,689 'your':279", + city: 'London', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: '87ec40e6-fe30-41cf-a4d7-63db2631c694', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: 'd9cbf5fa-f8b7-4e8f-a19f-276fdf8fa161', + city: 'London', + name: 'Beam', + email: 'client.jobs@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/38d60a5b80f992bfad6f0d1319821d95.jpg', + hiring: false, + status: 'ACTIVE', + address: 'WeWork, Senna Building, Gorsuch Pl', + country: 'gb', + mission: + 'In 2016, our founder Alex Stephany became friends with a homeless man who would sit outside his local train station. Alex would stop to chat with him and buy him coffee. The man had been out of work longer than he could remember.\n\nAs the months passed, Alex became determined to find ways to help the man leave homelessness for good. But he knew he couldn’t do that on his own. That’s when Alex had the idea to crowdfund for homeless people.\n\nThrough the power of people and technology, we transform how the world supports those left behind.', + verified: false, + shortname: '-beam9317', + description: null, + wallet_address: null, + verified_impact: false, + }, + job_category: { + id: '87ec40e6-fe30-41cf-a4d7-63db2631c694', + name: 'Other', + hourly_wage_dollars: 20, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 2, + missions: 0, + saved: false, + not_interested: false, + }, + ], +}; + +export const SEARCH_RESULT_DETAIL = { + id: 'a3b6c9eb-a974-4fa8-8816-f320ba22fc27', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: + "**About Socious:**\r\n\r\nSocious is a talent marketplace that makes impact work accessible and transparent; we build connections between purpose-driven individuals and impact organizations through AI matching. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions.\r\n\r\nHaving secured funding, we're in expansion mode. Join us in this journey!\r\n\r\n**Role: Business Development Manager**\r\n\r\n**Key Responsibilities:**\r\n\r\n- **Client Acquisition (Impact Organizations)**:\r\n - Proactively identify, engage, and onboard impact organizations to the Socious talent marketplace, ensuring a steady stream of new clients.\r\n - Build and deepen relationships with these organizations, addressing their specific needs and ensuring they recognize the value of the Socious platform.\r\n - Formulate and implement a strategy for large-scale onboarding of impact organizations, ensuring a streamlined and efficient process.\r\n- **Client Relationship Management**:\r\n - Monitor client satisfaction, proactively address concerns, and gather feedback to ensure long-term retention and growth.\r\n - Represent Socious at industry events, conferences, and networking sessions, positioning the platform as the premier solution for impact work matchmaking.\r\n - Stay updated on industry trends, competitor strategies, and the broader social/environmental impact landscape to better serve and advise clients.\r\n\r\n**Skills/Experience:**\r\n\r\n- A strong desire to make a social/environmental impact. Prior experience in this realm is a plus.\r\n- Experience in a B2B or B2C sales, business development, or account management role.\r\n- Exceptional communication and relationship-building skills.\r\n- Degree in Business, Marketing, or a related discipline is valued.\r\n- Ability to understand and articulate technical offerings to a non-technical audience.\r\n- Self-driven, results-oriented with a positive outlook and a clear focus on high-quality client service.\r\n- Strong negotiation skills with a consultative approach to business development.\r\n- Proficiency in using CRM tools and data analytics to track client engagement and success metrics.\r\n\r\n**What's in it for you?**\r\n\r\n- Make a lasting impact on the lives of many and on the world.\r\n- Take part in shaping the future by working with the most advanced and pioneering technologies in the field.\r\n- Collaborate with and learn from passionate, diverse, and high-performing colleagues.\r\n- Achieve the perfect work-life balance with flexible hours and unlimited paid leave.\r\n- Thrive in a remote-first setting with occasional team get-togethers.\r\n- Commit to your growth with ongoing learning and development opportunities.\r\n- Navigate a vibrant, fast-paced work setting.\r\n- Take the lead with autonomy in decision-making.\r\n- Relish a culture of trust, transparency, and unwavering support.\r\n- Become a member of a team that is deeply committed to fostering a socially responsible and ecologically sustainable work environment.\r\n- Enjoy a competitive compensation: USD 50k - 90k annually + token incentives.\r\n\r\n**Socious Referral Program:**\r\n\r\nKnow someone just right for Socious? We highly value word-of-mouth recommendations. Successfully refer a candidate, and enjoy a $1,000 reward as a token of our gratitude. Just share this job link!\r\n\r\nYour support in broadening our talent search is invaluable. Thank you.\r\n\r\n**Our mission and values:** \r\n\r\n**Mission:** Give everyone the chance to make a difference. \r\n\r\n**Our values:** \r\n\r\n- Diversity, inclusion, and belonging.\r\n- Life first, work second.\r\n- High performance for high impact.\r\n- Autonomy and accountability.\r\n- Candor, collaboration, and play.", + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: '50000', + payment_range_higher: '90000', + experience_level: 2, + created_at: '2024-04-19T00:22:54.641Z', + updated_at: '2024-04-30T04:34:00.759Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Business Development Manager', + expires_at: null, + country: 'JP', + skills: ['SALES', 'SALES_MANAGEMENT', 'BUSINESS_DEVELOPMENT'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'HYBRID', + search_tsv: + "'000':458 '1':457 '50k':428 '90k':429 'a':8,81,111,122,187,192,201,205,228,241,253,257,270,298,356,378,395,404,407,415,424,452,456,461,493 'ability':233 'about':4 'accessible':15 'account':213 'accountability':512 'achieve':340 'acquisition':65 'address':134 'addressing':94 'advanced':321 'advise':184 'ai':30 'analytics':283 'and':16,26,42,71,88,98,109,124,136,145,153,174,183,218,236,256,281,288,306,322,330,335,350,374,400,418,454,484,499,511,515 'annually':430 'approach':272 'articulate':237 'as':159,460 'at':149 'audience':245 'autonomy':389,510 'b2b':206 'b2c':208 'balance':346 'become':403 'belonging':500 'better':181 'between':21 'blockchain':34 'broadening':474 'broader':176 'build':19,87 'building':221 'business':1,59,210,225,274 'by':32,316 'candidate':453 'candor':513 'chance':490 'clear':258 'client':64,127,131,264,286 'clients':86,185 'collaborate':328 'collaboration':514 'colleagues':339 'commit':367 'committed':412 'communication':217 'compensation':426 'competitive':425 'competitor':172 'concerns':135 'conferences':152 'connections':20 'consultative':271 'contributions':44 'crm':279 'culture':396 'data':282 'decision':392 'decision-making':391 'deepen':89 'deeply':411 'degree':223 'desire':189 'development':2,60,211,275,375 'difference':494 'discipline':230 'diverse':334 'diversity':497 'driven':24,248 'ecologically':419 'efficient':125 'engage':70 'engagement':287 'enjoy':423,455 'ensure':140 'ensuring':80,99,121 'environment':422 'events':151 'everyone':488 'exceptional':216 'expansion':51 'experience':196,203 'fast':381 'fast-paced':380 'feedback':138 'field':327 'first':359,502 'flexible':348 'focus':259 'for':113,163,295,440,507 'formulate':108 'fostering':414 'from':332 'funding':47 'future':315 'gather':137 'get':365 'get-togethers':364 'give':487 'gratitude':465 'growth':146,370 'having':45 'high':262,337,505,508 'high-performing':336 'high-quality':261 'highly':443 'hours':349 'identify':69 'impact':13,27,39,66,73,119,164,178,194,300,509 'implement':110 'in':50,55,197,204,224,277,293,312,325,355,390,473 'incentives':432 'inclusion':498 'individuals':25 'industry':150,170 'invaluable':479 'is':7,200,231,410,478 'it':294 'job':469 'join':53 'journey':57 'just':438,466 'key':62 'know':436 'landscape':179 'large':115 'large-scale':114 'lasting':299 'lead':387 'learn':331 'learning':373 'leave':353 'leveraging':33 'life':345,501 'link':470 'lives':303 'long':142 'long-term':141 'make':37,191,297,492 'makes':12 'making':393 'management':129,214 'manager':3,61 'many':305 'marketing':226 'marketplace':10,79 'matching':31 'matchmaking':166 'member':405 'metrics':290 'mission':483,486 'mode':52 'monitor':130 'most':320 'mouth':448 'navigate':377 'needs':97 'negotiation':267 'networking':154 'new':85 'non':243 'non-technical':242 'occasional':362 'of':84,104,118,304,397,406,447,463 'offerings':239 'on':169,260,301,307 'onboard':72 'onboarding':117 'ongoing':372 'opportunities':376 'or':207,212,227 'organizations':28,67,74,93,120 'oriented':251 'our':464,475,482,495 'outlook':255 'paced':382 'paid':352 'part':311 'passionate':333 'perfect':342 'performance':506 'performing':338 'pioneering':323 'platform':107,158 'play':516 'plus':202 'positioning':156 'positive':254 'premier':161 'prior':195 'proactively':68,133 'process':126 'proficiency':276 'program':435 'purpose':23 'purpose-driven':22 'quality':263 're':49 'realm':199 'recognize':101 'recommendations':449 'refer':451 'referral':434 'related':229 'relationship':128,220 'relationship-building':219 'relationships':90 'relish':394 'remote':358 'remote-first':357 'represent':147 'responsibilities':63 'responsible':417 'results':250 'results-oriented':249 'retention':144 'reward':43,459 'right':439 'role':58,215 's':292 'sales':209 'satisfaction':132 'scale':116 'search':477 'second':504 'secured':46 'self':247 'self-driven':246 'serve':182 'service':265 'sessions':155 'setting':360,384 'shaping':313 'share':467 'skills':222,268 'skills/experience':186 'social/environmental':38,177,193 'socially':416 'socious':5,6,77,106,148,433,441 'solution':162 'someone':437 'specific':96 'stay':167 'steady':82 'strategies':173 'strategy':112 'stream':83 'streamlined':123 'strong':188,266 'success':289 'successfully':450 'support':402,472 'sustainable':420 'take':310,385 'talent':9,78,476 'team':363,408 'technical':238,244 'technologies':324 'technology':35 'term':143 'thank':480 'that':11,409 'the':76,102,105,157,160,175,302,308,314,319,326,341,386,489 'their':95 'these':92 'they':100 'this':56,198,468 'thrive':354 'through':29 'to':75,139,180,190,234,240,273,284,368,413,491 'togethers':366 'token':431,462 'tools':280 'traceable':41 'track':285 'transparency':399 'transparent':17 'trends':171 'trust':398 'understand':235 'unlimited':351 'unwavering':401 'updated':168 'us':54 'usd':427 'using':278 'value':103,444 'valued':232 'values':485,496 'vibrant':379 'we':18,36,48,442 'what':291 'with':91,252,269,318,329,347,361,371,388 'word':446 'word-of-mouth':445 'work':14,40,165,344,383,421,503 'work-life':343 'working':317 'world':309 'you':296,481 'your':369,471", + city: 'Tokyo', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: '1e76aff6-f2cb-48a0-bb18-4c9e9d42c88e', + impact_job: true, + promoted: true, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: '1e76aff6-f2cb-48a0-bb18-4c9e9d42c88e', + name: 'Sales', + hourly_wage_dollars: 20, + created_at: '2023-01-26T15:00:00+00:00', + updated_at: '2023-01-26T15:00:00+00:00', + }, + applicants: 11, + missions: 1, + applied: false, + applied_date: null, + saved: false, + not_interested: false, +}; + +export const ORGS_DETAIL = { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + name: 'Socious', + bio: 'Socious is a talent marketplace connecting purpose-driven talent with their dream jobs.', + description: null, + email: 'info@socious.io', + phone: '07074906558', + city: 'Tokyo, Tokyo Prefecture', + type: 'SOCIAL', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + website: 'https://socious.io', + created_at: '2021-08-29T10:43:54.000Z', + updated_at: '2022-02-17T11:18:37.000Z', + social_causes: ['SOCIAL', 'DECENT_WORK', 'EDUCATION', 'POVERTY', 'SUSTAINABILITY'], + followers: 167, + followings: 38, + country: 'JP', + wallet_address: null, + impact_points: 0, + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + culture: + 'Diversity, Inclusion and Belonging\r\n\r\nWe want build a more inclusive world and it starts from building an inclusive company.\r\n\r\nLife First, Work Second\r\n\r\nWe believe that family and friends are more important than work. If there is a conflict between life and work, we should always prioritize life.\r\n\r\nHigh Performance for High Social Impact\r\n\r\nOur goal is to maximize social impact, not shareholder value or profit. Our social and financial returns are generally aligned, but if there is a conflict, we prioritize social returns.\r\n\r\nAutonomy and Accountability\r\n\r\nEach Socious member enjoys a high level of autonomy is trusted to do the right thing. They are also accountable for the decisions they make.\r\n\r\nCandor and Collaboration\r\n\r\nBeing honest is better than being nice.', + image: { + id: '53e51908-19a2-4579-9566-5842f01531eb', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + filename: 'Logomark_3 2.png', + url: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + created_at: '2023-04-06T08:49:28.777155+00:00', + }, + cover_image: { + id: '091193bc-c34b-43f3-89fe-1db4e72d9db2', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + filename: 'YS-1580189.jpg', + url: 'https://storage.googleapis.com/socious-gcs/a2eba401bef6cbbaa66ca66eac1d8da1.jpg', + created_at: '2023-04-06T08:50:00.412141+00:00', + }, + mobile_country_code: '+81', + created_by: null, + shortname: 'socious', + old_id: 33, + status: 'ACTIVE', + search_tsv: + "'-0027':32 '-1':25 '-14':24 '-2':23 '103':31 '3':22 'access':54 'account':169,189 'align':156 'also':188 'alway':128 'autonomi':167,178 'believ':107 'belong':86 'better':201 'blockchain':69 'build':58,89,98 'candor':195 'chanc':40 'chuo':27 'collabor':197 'compani':101 'conflict':121,162 'connect':9,59 'contribut':79 'crypto':81 'decis':192 'differ':44 'divers':83 'dream':16 'driven':12,63 'enjoy':173 'everyon':38 'f':26 'famili':109 'financi':152 'first':103 'friend':111 'general':155 'give':37 'goal':138 'high':131,134,175 'honest':199 'impact':52,74,136,143 'import':114 'inclus':84,92,100 'individu':64 'info@socious.io':1 'japan':30 'job':17 'level':176 'leverag':68 'life':102,123,130 'make':42,51,72,194 'marketplac':8 'maxim':141 'member':172 'mission':34 'nice':204 'nihonbashi':21 'organ':66 'perform':132 'platform':49 'prefectur':20 'priorit':129,164 'profit':148 'purpos':11,62 'purpose-driven':10,61 'return':153,166 'reward':78 'right':184 'second':105 'sharehold':145 'social':135,142,150,165 'social/environmental':73 'socious':2,3,4,171 'start':96 'talent':7,13,48 'technolog':70 'thing':185 'token':82 'tokyo':18,19,29 'traceabl':76 'transpar':56 'trust':180 'valu':146 'want':88 'ward':28 'work':53,75,104,116,125 'world':93", + other_party_id: null, + other_party_title: null, + other_party_url: null, + geoname_id: 1850147, + verified_impact: true, + hiring: true, + size: null, + industry: null, + did: 'did:prism:b067f28d0085c93e05b34f5e38d920a459053a044313de92ae3eadb6432cfd11', + verified: true, + impact_detected: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + benefits: null, + recommendations: null, + connections: 23, +}; + +export const SEARCH_RESULT = { + page: 1, + limit: 10, + total_count: 33, + items: [ + { + id: 'a3b6c9eb-a974-4fa8-8816-f320ba22fc27', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: + "**About Socious:**\r\n\r\nSocious is a talent marketplace that makes impact work accessible and transparent; we build connections between purpose-driven individuals and impact organizations through AI matching. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions.\r\n\r\nHaving secured funding, we're in expansion mode. Join us in this journey!\r\n\r\n**Role: Business Development Manager**\r\n\r\n**Key Responsibilities:**\r\n\r\n- **Client Acquisition (Impact Organizations)**:\r\n - Proactively identify, engage, and onboard impact organizations to the Socious talent marketplace, ensuring a steady stream of new clients.\r\n - Build and deepen relationships with these organizations, addressing their specific needs and ensuring they recognize the value of the Socious platform.\r\n - Formulate and implement a strategy for large-scale onboarding of impact organizations, ensuring a streamlined and efficient process.\r\n- **Client Relationship Management**:\r\n - Monitor client satisfaction, proactively address concerns, and gather feedback to ensure long-term retention and growth.\r\n - Represent Socious at industry events, conferences, and networking sessions, positioning the platform as the premier solution for impact work matchmaking.\r\n - Stay updated on industry trends, competitor strategies, and the broader social/environmental impact landscape to better serve and advise clients.\r\n\r\n**Skills/Experience:**\r\n\r\n- A strong desire to make a social/environmental impact. Prior experience in this realm is a plus.\r\n- Experience in a B2B or B2C sales, business development, or account management role.\r\n- Exceptional communication and relationship-building skills.\r\n- Degree in Business, Marketing, or a related discipline is valued.\r\n- Ability to understand and articulate technical offerings to a non-technical audience.\r\n- Self-driven, results-oriented with a positive outlook and a clear focus on high-quality client service.\r\n- Strong negotiation skills with a consultative approach to business development.\r\n- Proficiency in using CRM tools and data analytics to track client engagement and success metrics.\r\n\r\n**What's in it for you?**\r\n\r\n- Make a lasting impact on the lives of many and on the world.\r\n- Take part in shaping the future by working with the most advanced and pioneering technologies in the field.\r\n- Collaborate with and learn from passionate, diverse, and high-performing colleagues.\r\n- Achieve the perfect work-life balance with flexible hours and unlimited paid leave.\r\n- Thrive in a remote-first setting with occasional team get-togethers.\r\n- Commit to your growth with ongoing learning and development opportunities.\r\n- Navigate a vibrant, fast-paced work setting.\r\n- Take the lead with autonomy in decision-making.\r\n- Relish a culture of trust, transparency, and unwavering support.\r\n- Become a member of a team that is deeply committed to fostering a socially responsible and ecologically sustainable work environment.\r\n- Enjoy a competitive compensation: USD 50k - 90k annually + token incentives.\r\n\r\n**Socious Referral Program:**\r\n\r\nKnow someone just right for Socious? We highly value word-of-mouth recommendations. Successfully refer a candidate, and enjoy a $1,000 reward as a token of our gratitude. Just share this job link!\r\n\r\nYour support in broadening our talent search is invaluable. Thank you.\r\n\r\n**Our mission and values:** \r\n\r\n**Mission:** Give everyone the chance to make a difference. \r\n\r\n**Our values:** \r\n\r\n- Diversity, inclusion, and belonging.\r\n- Life first, work second.\r\n- High performance for high impact.\r\n- Autonomy and accountability.\r\n- Candor, collaboration, and play.", + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: '50000', + payment_range_higher: '90000', + experience_level: 2, + created_at: '2024-04-19T00:22:54.641Z', + updated_at: '2024-04-30T04:34:00.759Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Business Development Manager', + expires_at: null, + country: 'JP', + skills: ['SALES', 'SALES_MANAGEMENT', 'BUSINESS_DEVELOPMENT'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'HYBRID', + search_tsv: + "'000':458 '1':457 '50k':428 '90k':429 'a':8,81,111,122,187,192,201,205,228,241,253,257,270,298,356,378,395,404,407,415,424,452,456,461,493 'ability':233 'about':4 'accessible':15 'account':213 'accountability':512 'achieve':340 'acquisition':65 'address':134 'addressing':94 'advanced':321 'advise':184 'ai':30 'analytics':283 'and':16,26,42,71,88,98,109,124,136,145,153,174,183,218,236,256,281,288,306,322,330,335,350,374,400,418,454,484,499,511,515 'annually':430 'approach':272 'articulate':237 'as':159,460 'at':149 'audience':245 'autonomy':389,510 'b2b':206 'b2c':208 'balance':346 'become':403 'belonging':500 'better':181 'between':21 'blockchain':34 'broadening':474 'broader':176 'build':19,87 'building':221 'business':1,59,210,225,274 'by':32,316 'candidate':453 'candor':513 'chance':490 'clear':258 'client':64,127,131,264,286 'clients':86,185 'collaborate':328 'collaboration':514 'colleagues':339 'commit':367 'committed':412 'communication':217 'compensation':426 'competitive':425 'competitor':172 'concerns':135 'conferences':152 'connections':20 'consultative':271 'contributions':44 'crm':279 'culture':396 'data':282 'decision':392 'decision-making':391 'deepen':89 'deeply':411 'degree':223 'desire':189 'development':2,60,211,275,375 'difference':494 'discipline':230 'diverse':334 'diversity':497 'driven':24,248 'ecologically':419 'efficient':125 'engage':70 'engagement':287 'enjoy':423,455 'ensure':140 'ensuring':80,99,121 'environment':422 'events':151 'everyone':488 'exceptional':216 'expansion':51 'experience':196,203 'fast':381 'fast-paced':380 'feedback':138 'field':327 'first':359,502 'flexible':348 'focus':259 'for':113,163,295,440,507 'formulate':108 'fostering':414 'from':332 'funding':47 'future':315 'gather':137 'get':365 'get-togethers':364 'give':487 'gratitude':465 'growth':146,370 'having':45 'high':262,337,505,508 'high-performing':336 'high-quality':261 'highly':443 'hours':349 'identify':69 'impact':13,27,39,66,73,119,164,178,194,300,509 'implement':110 'in':50,55,197,204,224,277,293,312,325,355,390,473 'incentives':432 'inclusion':498 'individuals':25 'industry':150,170 'invaluable':479 'is':7,200,231,410,478 'it':294 'job':469 'join':53 'journey':57 'just':438,466 'key':62 'know':436 'landscape':179 'large':115 'large-scale':114 'lasting':299 'lead':387 'learn':331 'learning':373 'leave':353 'leveraging':33 'life':345,501 'link':470 'lives':303 'long':142 'long-term':141 'make':37,191,297,492 'makes':12 'making':393 'management':129,214 'manager':3,61 'many':305 'marketing':226 'marketplace':10,79 'matching':31 'matchmaking':166 'member':405 'metrics':290 'mission':483,486 'mode':52 'monitor':130 'most':320 'mouth':448 'navigate':377 'needs':97 'negotiation':267 'networking':154 'new':85 'non':243 'non-technical':242 'occasional':362 'of':84,104,118,304,397,406,447,463 'offerings':239 'on':169,260,301,307 'onboard':72 'onboarding':117 'ongoing':372 'opportunities':376 'or':207,212,227 'organizations':28,67,74,93,120 'oriented':251 'our':464,475,482,495 'outlook':255 'paced':382 'paid':352 'part':311 'passionate':333 'perfect':342 'performance':506 'performing':338 'pioneering':323 'platform':107,158 'play':516 'plus':202 'positioning':156 'positive':254 'premier':161 'prior':195 'proactively':68,133 'process':126 'proficiency':276 'program':435 'purpose':23 'purpose-driven':22 'quality':263 're':49 'realm':199 'recognize':101 'recommendations':449 'refer':451 'referral':434 'related':229 'relationship':128,220 'relationship-building':219 'relationships':90 'relish':394 'remote':358 'remote-first':357 'represent':147 'responsibilities':63 'responsible':417 'results':250 'results-oriented':249 'retention':144 'reward':43,459 'right':439 'role':58,215 's':292 'sales':209 'satisfaction':132 'scale':116 'search':477 'second':504 'secured':46 'self':247 'self-driven':246 'serve':182 'service':265 'sessions':155 'setting':360,384 'shaping':313 'share':467 'skills':222,268 'skills/experience':186 'social/environmental':38,177,193 'socially':416 'socious':5,6,77,106,148,433,441 'solution':162 'someone':437 'specific':96 'stay':167 'steady':82 'strategies':173 'strategy':112 'stream':83 'streamlined':123 'strong':188,266 'success':289 'successfully':450 'support':402,472 'sustainable':420 'take':310,385 'talent':9,78,476 'team':363,408 'technical':238,244 'technologies':324 'technology':35 'term':143 'thank':480 'that':11,409 'the':76,102,105,157,160,175,302,308,314,319,326,341,386,489 'their':95 'these':92 'they':100 'this':56,198,468 'thrive':354 'through':29 'to':75,139,180,190,234,240,273,284,368,413,491 'togethers':366 'token':431,462 'tools':280 'traceable':41 'track':285 'transparency':399 'transparent':17 'trends':171 'trust':398 'understand':235 'unlimited':351 'unwavering':401 'updated':168 'us':54 'usd':427 'using':278 'value':103,444 'valued':232 'values':485,496 'vibrant':379 'we':18,36,48,442 'what':291 'with':91,252,269,318,329,347,361,371,388 'word':446 'word-of-mouth':445 'work':14,40,165,344,383,421,503 'work-life':343 'working':317 'world':309 'you':296,481 'your':369,471", + city: 'Tokyo', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: '1e76aff6-f2cb-48a0-bb18-4c9e9d42c88e', + impact_job: true, + promoted: true, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: '1e76aff6-f2cb-48a0-bb18-4c9e9d42c88e', + name: 'Sales', + hourly_wage_dollars: 20, + created_at: '2023-01-26T15:00:00+00:00', + updated_at: '2023-01-26T15:00:00+00:00', + }, + work_samples: [], + applicants: 11, + missions: 1, + saved: false, + not_interested: false, + }, + { + id: '722d1690-1f05-45de-af58-bfd6be52bdf7', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: + "**About Socious:**\r\n\r\nSocious is a talent marketplace that makes impact work accessible and transparent; we build connections between purpose-driven individuals and impact organizations through AI matching. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions.\r\n\r\nHaving secured funding, we're in expansion mode. Join us in this journey!\r\n\r\n**Key Responsibilities:**\r\n\r\n- **Client Acquisition (Impact Organizations)**:\r\n - Proactively identify, engage, and onboard impact organizations to the Socious talent marketplace, ensuring a steady stream of new clients.\r\n - Build and deepen relationships with these organizations, addressing their specific needs and ensuring they recognize the value of the Socious platform.\r\n - Formulate and implement a strategy for large-scale onboarding of impact organizations, ensuring a streamlined and efficient process.\r\n- **Matchmaking**:\r\n - Actively facilitate matches between the enrolled impact organizations and purpose-driven talent available on the platform.\r\n - Understand the unique requirements of each party to ensure successful and valuable matches.\r\n - Collaborate with the tech team to continuously refine the matchmaking process and enhance platform capabilities for better client outcomes.\r\n- **Client Relationship Management**:\r\n - Monitor client satisfaction, proactively address concerns, and gather feedback to ensure long-term retention and growth.\r\n - Represent Socious at industry events, conferences, and networking sessions, positioning the platform as the premier solution for impact work matchmaking.\r\n - Stay updated on industry trends, competitor strategies, and the broader social/environmental impact landscape to better serve and advise clients.\r\n\r\n**Skills/Experience:**\r\n\r\n- A strong desire to make a social/environmental impact. Prior experience in this realm is a plus.\r\n- Experience in a B2B or B2C sales, business development, or account management role.\r\n- Exceptional communication and relationship-building skills.\r\n- Degree in Business, Marketing, or a related discipline is valued.\r\n- Ability to understand and articulate technical offerings to a non-technical audience.\r\n- Self-driven, results-oriented with a positive outlook and a clear focus on high-quality client service.\r\n- Strong negotiation skills with a consultative approach to business development.\r\n- Proficiency in using CRM tools and data analytics to track client engagement and success metrics.\r\n\r\n**What's in it for you?**\r\n\r\n- Make a lasting impact on the lives of many and on the world.\r\n- Take part in shaping the future by working with the most advanced and pioneering technologies in the field.\r\n- Collaborate with and learn from passionate, diverse, and high-performing colleagues.\r\n- Achieve the perfect work-life balance with flexible hours and unlimited paid leave.\r\n- Thrive in a remote-first, hybrid setting with occasional team get-togethers.\r\n- Commit to your growth with ongoing learning and development opportunities.\r\n- Navigate a vibrant, fast-paced work setting.\r\n- Take the lead with autonomy in decision-making.\r\n- Relish a culture of trust, transparency, and unwavering support.\r\n- Become a member of a team that is deeply committed to fostering a socially responsible and ecologically sustainable work environment.\r\n- Enjoy a competitive compensation: USD 60k - 100k annually + token incentives.\r\n\r\n**Socious Referral Program:**\r\n\r\nKnow someone just right for Socious? We highly value word-of-mouth recommendations. Successfully refer a candidate, and enjoy a $1,000 reward as a token of our gratitude. Just share this job link!\r\n\r\nYour support in broadening our talent search is invaluable. Thank you.\r\n\r\n**Our mission and values:** \r\n\r\n**Mission:** Give everyone the chance to make a difference. \r\n\r\n**Our values:** \r\n\r\n- Diversity, inclusion, and belonging.\r\n- Life first, work second.\r\n- High performance for high impact.\r\n- Autonomy and accountability.\r\n- Candor, collaboration, and play. ", + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: '60000', + payment_range_higher: '100000', + experience_level: 2, + created_at: '2023-08-27T17:14:36.923Z', + updated_at: '2024-02-11T00:33:19.336Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Business Development/Client Success Manager', + expires_at: null, + country: 'JP', + skills: ['SALES', 'SALES_MANAGEMENT', 'STRATEGIC_PARTNERSHIPS', 'CRM', 'MARKETING', 'HUMAN_RESOURCES'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'HYBRID', + search_tsv: + "'000':506 '1':505 '100k':477 '60k':476 'a':9,78,108,119,234,239,248,252,275,288,300,304,317,345,403,426,443,452,455,463,472,500,504,509,541 'ability':280 'about':5 'accessible':16 'account':260 'accountability':560 'achieve':387 'acquisition':62 'actively':125 'address':181 'addressing':91 'advanced':368 'advise':231 'ai':31 'analytics':330 'and':17,27,43,68,85,95,106,121,133,152,166,183,192,200,221,230,265,283,303,328,335,353,369,377,382,397,422,448,466,502,532,547,559,563 'annually':478 'approach':319 'articulate':284 'as':206,508 'at':196 'audience':292 'autonomy':437,558 'available':138 'b2b':253 'b2c':255 'balance':393 'become':451 'belonging':548 'better':171,228 'between':22,128 'blockchain':35 'broadening':522 'broader':223 'build':20,84 'building':268 'business':1,257,272,321 'by':33,363 'candidate':501 'candor':561 'capabilities':169 'chance':538 'clear':305 'client':61,172,174,178,311,333 'clients':83,232 'collaborate':155,375 'collaboration':562 'colleagues':386 'commit':415 'committed':460 'communication':264 'compensation':474 'competitive':473 'competitor':219 'concerns':182 'conferences':199 'connections':21 'consultative':318 'continuously':161 'contributions':45 'crm':326 'culture':444 'data':329 'decision':440 'decision-making':439 'deepen':86 'deeply':459 'degree':270 'desire':236 'development':258,322,423 'development/client':2 'difference':542 'discipline':277 'diverse':381 'diversity':545 'driven':25,136,295 'each':147 'ecologically':467 'efficient':122 'engage':67 'engagement':334 'enhance':167 'enjoy':471,503 'enrolled':130 'ensure':150,187 'ensuring':77,96,118 'environment':470 'events':198 'everyone':536 'exceptional':263 'expansion':52 'experience':243,250 'facilitate':126 'fast':429 'fast-paced':428 'feedback':185 'field':374 'first':406,550 'flexible':395 'focus':306 'for':110,170,210,342,488,555 'formulate':105 'fostering':462 'from':379 'funding':48 'future':362 'gather':184 'get':413 'get-togethers':412 'give':535 'gratitude':513 'growth':193,418 'having':46 'high':309,384,553,556 'high-performing':383 'high-quality':308 'highly':491 'hours':396 'hybrid':407 'identify':66 'impact':14,28,40,63,70,116,131,211,225,241,347,557 'implement':107 'in':51,56,244,251,271,324,340,359,372,402,438,521 'incentives':480 'inclusion':546 'individuals':26 'industry':197,217 'invaluable':527 'is':8,247,278,458,526 'it':341 'job':517 'join':54 'journey':58 'just':486,514 'key':59 'know':484 'landscape':226 'large':112 'large-scale':111 'lasting':346 'lead':435 'learn':378 'learning':421 'leave':400 'leveraging':34 'life':392,549 'link':518 'lives':350 'long':189 'long-term':188 'make':38,238,344,540 'makes':13 'making':441 'management':176,261 'manager':4 'many':352 'marketing':273 'marketplace':11,76 'matches':127,154 'matching':32 'matchmaking':124,164,213 'member':453 'metrics':337 'mission':531,534 'mode':53 'monitor':177 'most':367 'mouth':496 'navigate':425 'needs':94 'negotiation':314 'networking':201 'new':82 'non':290 'non-technical':289 'occasional':410 'of':81,101,115,146,351,445,454,495,511 'offerings':286 'on':139,216,307,348,354 'onboard':69 'onboarding':114 'ongoing':420 'opportunities':424 'or':254,259,274 'organizations':29,64,71,90,117,132 'oriented':298 'our':512,523,530,543 'outcomes':173 'outlook':302 'paced':430 'paid':399 'part':358 'party':148 'passionate':380 'perfect':389 'performance':554 'performing':385 'pioneering':370 'platform':104,141,168,205 'play':564 'plus':249 'positioning':203 'positive':301 'premier':208 'prior':242 'proactively':65,180 'process':123,165 'proficiency':323 'program':483 'purpose':24,135 'purpose-driven':23,134 'quality':310 're':50 'realm':246 'recognize':98 'recommendations':497 'refer':499 'referral':482 'refine':162 'related':276 'relationship':175,267 'relationship-building':266 'relationships':87 'relish':442 'remote':405 'remote-first':404 'represent':194 'requirements':145 'responsibilities':60 'responsible':465 'results':297 'results-oriented':296 'retention':191 'reward':44,507 'right':487 'role':262 's':339 'sales':256 'satisfaction':179 'scale':113 'search':525 'second':552 'secured':47 'self':294 'self-driven':293 'serve':229 'service':312 'sessions':202 'setting':408,432 'shaping':360 'share':515 'skills':269,315 'skills/experience':233 'social/environmental':39,224,240 'socially':464 'socious':6,7,74,103,195,481,489 'solution':209 'someone':485 'specific':93 'stay':214 'steady':79 'strategies':220 'strategy':109 'stream':80 'streamlined':120 'strong':235,313 'success':3,336 'successful':151 'successfully':498 'support':450,520 'sustainable':468 'take':357,433 'talent':10,75,137,524 'team':159,411,456 'tech':158 'technical':285,291 'technologies':371 'technology':36 'term':190 'thank':528 'that':12,457 'the':73,99,102,129,140,143,157,163,204,207,222,349,355,361,366,373,388,434,537 'their':92 'these':89 'they':97 'this':57,245,516 'thrive':401 'through':30 'to':72,149,160,186,227,237,281,287,320,331,416,461,539 'togethers':414 'token':479,510 'tools':327 'traceable':42 'track':332 'transparency':447 'transparent':18 'trends':218 'trust':446 'understand':142,282 'unique':144 'unlimited':398 'unwavering':449 'updated':215 'us':55 'usd':475 'using':325 'valuable':153 'value':100,492 'valued':279 'values':533,544 'vibrant':427 'we':19,37,49,490 'what':338 'with':88,156,299,316,365,376,394,409,419,436 'word':494 'word-of-mouth':493 'work':15,41,212,391,431,469,551 'work-life':390 'working':364 'world':356 'you':343,529 'your':417,519", + city: 'Tokyo', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: '1e76aff6-f2cb-48a0-bb18-4c9e9d42c88e', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: '1e76aff6-f2cb-48a0-bb18-4c9e9d42c88e', + name: 'Sales', + hourly_wage_dollars: 20, + created_at: '2023-01-26T15:00:00+00:00', + updated_at: '2023-01-26T15:00:00+00:00', + }, + work_samples: [], + applicants: 248, + missions: 2, + saved: false, + not_interested: false, + }, + { + id: 'bea087ab-1b8d-45a6-b181-6c64bfe28e51', + identity_id: 'b134bc13-c889-4eb6-a034-dd41337bc038', + description: + '**Job Title: Business Development Specialist in China - EV Market Focus**\r\n\r\n**Location:** China\r\n\r\n**Company:** Elephantech Inc.\r\n\r\n**Industry:** Automotive, Battery\r\n\r\n**Type of Employment:** Contractual (preferably a 3-month contract, with potential consideration for establishing a local office based on business conditions)\r\n\r\n**Commitment:** About 60 hours per month\r\n\r\n**Compensation:** Approximately $5,000 USD per month\r\n\r\n**About Elephantech Inc.:**\r\n\r\nElephantech Inc. is a startup that has achieved a significant milestone in the field of PCB manufacturing, by becoming the first company in the world to successfully manufacture PCBs using metal inkjet printing.\r\n\r\nWith the mission of “Making the world sustainable with new manufacturing technologies”, Elephantech provides their innovative inkjet printing solutions to promote their manufacturing method as the new global standard.\r\n\r\n**Job Description:**\r\nWe are seeking a Business Development Specialist to spearhead the expansion of our Flexible Printed Circuit (FPC) for Battery Management Systems (BMS) in Electric Vehicles (EVs). This role is crucial in conducting market research and expanding our innovative, environmentally friendly FPC products in the EV BMS market across China.\r\n\r\n**Key Responsibilities:**\r\n\r\n- **Lead Identification:** Conduct targeted market research to identify potential leads for EV-specific BMS FPC in key regions, focusing on the automotive and battery industries.\r\n- **Lead Generation Strategy:** Develop and implement effective strategies to generate and nurture leads, aligning with Elephantech’s sustainability goals.\r\n- **Stakeholder Engagement:** Build and maintain relationships with industry stakeholders, highlighting our eco-friendly manufacturing approach.\r\n- **Collaboration with Internal Teams:** Coordinate with sales and technical teams to ensure smooth transition of qualified leads for deal closure.\r\n\r\n**Qualifications:**\r\n\r\n- Experience in business development, ideally in the automotive or battery industry.\r\n- Knowledge of the EV market, BMS, and FPC technologies, with a passion for sustainability.\r\n- Strong analytical, research, and relationship-building skills.\r\n- Excellent communication and negotiation abilities.\r\n- Fluency in English; additional language skills for the target regions are advantageous.', + project_type: 'PART_TIME', + project_length: '1_3_MONTHS', + payment_currency: 'USD', + payment_range_lower: '15000', + payment_range_higher: '16000', + experience_level: 3, + created_at: '2023-12-14T04:15:33.224Z', + updated_at: '2024-02-11T00:31:20.191Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Job Title: Business Development Specialist in China - EV Market Focus ', + expires_at: null, + country: 'CN', + skills: ['SALES', 'SALES_MANAGEMENT', 'BUSINESS_DEVELOPMENT'], + causes_tags: ['SUSTAINABILITY'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'REMOTE', + search_tsv: + "'000':59 '3':35 '5':58 '60':52 'a':34,43,69,74,133,284 'abilities':300 'about':51,63 'achieved':73 'across':177 'additional':304 'advantageous':312 'aligning':220 'analytical':289 'and':164,204,211,217,229,249,280,291,298 'approach':241 'approximately':57 'are':131,311 'as':123 'automotive':27,203,270 'based':46 'battery':28,148,205,272 'becoming':84 'bms':151,175,195,279 'build':228 'building':294 'business':3,13,48,134,265 'by':83 'china':7,17,22,178 'circuit':145 'closure':261 'collaboration':242 'commitment':50 'communication':297 'company':23,87 'compensation':56 'conditions':49 'conduct':183 'conducting':161 'consideration':40 'contract':37 'contractual':32 'coordinate':246 'crucial':159 'deal':260 'description':129 'develop':210 'development':4,14,135,266 'eco':238 'eco-friendly':237 'effective':213 'electric':153 'elephantech':24,64,66,111,222 'employment':31 'engagement':227 'english':303 'ensure':253 'environmentally':168 'establishing':42 'ev':8,18,174,193,277 'ev-specific':192 'evs':155 'excellent':296 'expanding':165 'expansion':140 'experience':263 'field':79 'first':86 'flexible':143 'fluency':301 'focus':10,20 'focusing':200 'for':41,147,191,259,286,307 'fpc':146,170,196,281 'friendly':169,239 'generate':216 'generation':208 'global':126 'goals':225 'has':72 'highlighting':235 'hours':53 'ideally':267 'identification':182 'identify':188 'implement':212 'in':6,16,77,88,152,160,172,197,264,268,302 'inc':25,65,67 'industries':206 'industry':26,233,273 'inkjet':97,115 'innovative':114,167 'internal':244 'is':68,158 'job':1,11,128 'key':179,198 'knowledge':274 'language':305 'lead':181,207 'leads':190,219,258 'local':44 'location':21 'maintain':230 'making':103 'management':149 'manufacture':93 'manufacturing':82,109,121,240 'market':9,19,162,176,185,278 'metal':96 'method':122 'milestone':76 'mission':101 'month':36,55,62 'negotiation':299 'new':108,125 'nurture':218 'of':30,80,102,141,256,275 'office':45 'on':47,201 'or':271 'our':142,166,236 'passion':285 'pcb':81 'pcbs':94 'per':54,61 'potential':39,189 'preferably':33 'printed':144 'printing':98,116 'products':171 'promote':119 'provides':112 'qualifications':262 'qualified':257 'regions':199,310 'relationship':293 'relationship-building':292 'relationships':231 'research':163,186,290 'responsibilities':180 'role':157 's':223 'sales':248 'seeking':132 'significant':75 'skills':295,306 'smooth':254 'solutions':117 'spearhead':138 'specialist':5,15,136 'specific':194 'stakeholder':226 'stakeholders':234 'standard':127 'startup':70 'strategies':214 'strategy':209 'strong':288 'successfully':92 'sustainability':224,287 'sustainable':106 'systems':150 'target':309 'targeted':184 'teams':245,251 'technical':250 'technologies':110,282 'that':71 'the':78,85,89,100,104,124,139,173,202,269,276,308 'their':113,120 'this':156 'title':2,12 'to':91,118,137,187,215,252 'transition':255 'type':29 'usd':60 'using':95 'vehicles':154 'we':130 'with':38,99,107,221,232,243,247,283 'world':90,105", + city: 'Shenzhen', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: '1e76aff6-f2cb-48a0-bb18-4c9e9d42c88e', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: 'b134bc13-c889-4eb6-a034-dd41337bc038', + city: 'Tokyo', + name: 'Elephantech', + email: 'client.jobs@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/1eb3da216299ac651d900ab73b639588.jpg', + hiring: true, + status: 'ACTIVE', + address: null, + country: 'JP', + mission: + 'Elephantech Inc. is a startup that has achieved a significant milestone in the field of PCB manufacturing, by becoming the first company in the world to successfully manufacture PCBs using metal inkjet printing.\n\nWith the mission of “Making the world sustainable with new manufacturing technologies”, Elephantech provides their innovative inkjet printing solutions to promote their manufacturing method as the new global standard.', + verified: false, + shortname: 'co8292', + description: null, + wallet_address: null, + verified_impact: false, + }, + job_category: { + id: '1e76aff6-f2cb-48a0-bb18-4c9e9d42c88e', + name: 'Sales', + hourly_wage_dollars: 20, + created_at: '2023-01-26T15:00:00+00:00', + updated_at: '2023-01-26T15:00:00+00:00', + }, + work_samples: [], + applicants: 1, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: 'a622294a-139c-4776-bd05-5e466bd2bdb4', + identity_id: 'b134bc13-c889-4eb6-a034-dd41337bc038', + description: + '**Job Title: Business Development Specialist in North America - EV Market Focus**\r\n\r\n**Location:** North America\r\n\r\n**Company:** Elephantech Inc.\r\n\r\n**Industry:** Automotive, Battery\r\n\r\n**Type of Employment:** Contractual (preferably a 3-month contract, with potential consideration for establishing a local office based on business conditions)\r\n\r\n**Commitment:** About 60 hours per month\r\n\r\n**Compensation:** Approximately $5,000 USD per month\r\n\r\n**About Elephantech Inc.:**\r\n\r\nElephantech Inc. is a startup that has achieved a significant milestone in the field of PCB manufacturing, by becoming the first company in the world to successfully manufacture PCBs using metal inkjet printing.\r\n\r\nWith the mission of “Making the world sustainable with new manufacturing technologies”, Elephantech provides their innovative inkjet printing solutions to promote their manufacturing method as the new global standard.\r\n\r\n**Job Description:**\r\nWe are seeking a Business Development Specialist to spearhead the expansion of our Flexible Printed Circuit (FPC) for Battery Management Systems (BMS) in Electric Vehicles (EVs). This role is crucial in conducting market research and expanding our innovative, environmentally friendly FPC products in the EV BMS market across North America.\r\n\r\n**Key Responsibilities:**\r\n\r\n- **Lead Identification:** Conduct targeted market research to identify potential leads for EV-specific BMS FPC in key regions, focusing on the automotive and battery industries.\r\n- **Lead Generation Strategy:** Develop and implement effective strategies to generate and nurture leads, aligning with Elephantech’s sustainability goals.\r\n- **Stakeholder Engagement:** Build and maintain relationships with industry stakeholders, highlighting our eco-friendly manufacturing approach.\r\n- **Collaboration with Internal Teams:** Coordinate with sales and technical teams to ensure smooth transition of qualified leads for deal closure.\r\n\r\n**Qualifications:**\r\n\r\n- Experience in business development, ideally in the automotive or battery industry.\r\n- Knowledge of the EV market, BMS, and FPC technologies, with a passion for sustainability.\r\n- Strong analytical, research, and relationship-building skills.\r\n- Excellent communication and negotiation abilities.\r\n- Fluency in English; additional language skills for the target regions are advantageous.', + project_type: 'PART_TIME', + project_length: '1_3_MONTHS', + payment_currency: 'USD', + payment_range_lower: '15000', + payment_range_higher: '16000', + experience_level: 3, + created_at: '2023-12-14T06:51:06.559Z', + updated_at: '2024-02-11T00:31:07.450Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Business Development Specialist in North America - EV Market Focus ', + expires_at: null, + country: 'US', + skills: ['SALES', 'SALES_MANAGEMENT', 'BUSINESS_DEVELOPMENT'], + causes_tags: ['SUSTAINABILITY'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'REMOTE', + search_tsv: + "'000':60 '3':36 '5':59 '60':53 'a':35,44,70,75,134,286 'abilities':302 'about':52,64 'achieved':74 'across':178 'additional':306 'advantageous':314 'aligning':222 'america':6,17,23,180 'analytical':291 'and':165,206,213,219,231,251,282,293,300 'approach':243 'approximately':58 'are':132,313 'as':124 'automotive':28,205,272 'based':47 'battery':29,149,207,274 'becoming':85 'bms':152,176,197,281 'build':230 'building':296 'business':1,12,49,135,267 'by':84 'circuit':146 'closure':263 'collaboration':244 'commitment':51 'communication':299 'company':24,88 'compensation':57 'conditions':50 'conduct':185 'conducting':162 'consideration':41 'contract':38 'contractual':33 'coordinate':248 'crucial':160 'deal':262 'description':130 'develop':212 'development':2,13,136,268 'eco':240 'eco-friendly':239 'effective':215 'electric':154 'elephantech':25,65,67,112,224 'employment':32 'engagement':229 'english':305 'ensure':255 'environmentally':169 'establishing':43 'ev':7,18,175,195,279 'ev-specific':194 'evs':156 'excellent':298 'expanding':166 'expansion':141 'experience':265 'field':80 'first':87 'flexible':144 'fluency':303 'focus':9,20 'focusing':202 'for':42,148,193,261,288,309 'fpc':147,171,198,283 'friendly':170,241 'generate':218 'generation':210 'global':127 'goals':227 'has':73 'highlighting':237 'hours':54 'ideally':269 'identification':184 'identify':190 'implement':214 'in':4,15,78,89,153,161,173,199,266,270,304 'inc':26,66,68 'industries':208 'industry':27,235,275 'inkjet':98,116 'innovative':115,168 'internal':246 'is':69,159 'job':10,129 'key':181,200 'knowledge':276 'language':307 'lead':183,209 'leads':192,221,260 'local':45 'location':21 'maintain':232 'making':104 'management':150 'manufacture':94 'manufacturing':83,110,122,242 'market':8,19,163,177,187,280 'metal':97 'method':123 'milestone':77 'mission':102 'month':37,56,63 'negotiation':301 'new':109,126 'north':5,16,22,179 'nurture':220 'of':31,81,103,142,258,277 'office':46 'on':48,203 'or':273 'our':143,167,238 'passion':287 'pcb':82 'pcbs':95 'per':55,62 'potential':40,191 'preferably':34 'printed':145 'printing':99,117 'products':172 'promote':120 'provides':113 'qualifications':264 'qualified':259 'regions':201,312 'relationship':295 'relationship-building':294 'relationships':233 'research':164,188,292 'responsibilities':182 'role':158 's':225 'sales':250 'seeking':133 'significant':76 'skills':297,308 'smooth':256 'solutions':118 'spearhead':139 'specialist':3,14,137 'specific':196 'stakeholder':228 'stakeholders':236 'standard':128 'startup':71 'strategies':216 'strategy':211 'strong':290 'successfully':93 'sustainability':226,289 'sustainable':107 'systems':151 'target':311 'targeted':186 'teams':247,253 'technical':252 'technologies':111,284 'that':72 'the':79,86,90,101,105,125,140,174,204,271,278,310 'their':114,121 'this':157 'title':11 'to':92,119,138,189,217,254 'transition':257 'type':30 'usd':61 'using':96 'vehicles':155 'we':131 'with':39,100,108,223,234,245,249,285 'world':91,106", + city: 'Austin', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: '1e76aff6-f2cb-48a0-bb18-4c9e9d42c88e', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: 'b134bc13-c889-4eb6-a034-dd41337bc038', + city: 'Tokyo', + name: 'Elephantech', + email: 'client.jobs@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/1eb3da216299ac651d900ab73b639588.jpg', + hiring: true, + status: 'ACTIVE', + address: null, + country: 'JP', + mission: + 'Elephantech Inc. is a startup that has achieved a significant milestone in the field of PCB manufacturing, by becoming the first company in the world to successfully manufacture PCBs using metal inkjet printing.\n\nWith the mission of “Making the world sustainable with new manufacturing technologies”, Elephantech provides their innovative inkjet printing solutions to promote their manufacturing method as the new global standard.', + verified: false, + shortname: 'co8292', + description: null, + wallet_address: null, + verified_impact: false, + }, + job_category: { + id: '1e76aff6-f2cb-48a0-bb18-4c9e9d42c88e', + name: 'Sales', + hourly_wage_dollars: 20, + created_at: '2023-01-26T15:00:00+00:00', + updated_at: '2023-01-26T15:00:00+00:00', + }, + work_samples: [], + applicants: 5, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: '65b981b2-da68-4e92-b671-4b0d91b38d85', + identity_id: 'b134bc13-c889-4eb6-a034-dd41337bc038', + description: + '**Job Title: Business Development Specialist - EV Market Focus**\r\n\r\n**Location:** Europe\r\n\r\n**Company:** Elephantech Inc.\r\n\r\n**Industry:** Automotive, Battery\r\n\r\n**Type of Employment:** Contractual (preferably a 3-month contract, with potential consideration for establishing a local office based on business conditions)\r\n\r\n**Commitment:** About 60 hours per month\r\n\r\n**Compensation:** Approximately $5,000 USD per month\r\n\r\n**About Elephantech Inc.:**\r\n\r\nElephantech Inc. is a startup that has achieved a significant milestone in the field of PCB manufacturing, by becoming the first company in the world to successfully manufacture PCBs using metal inkjet printing.\r\n\r\nWith the mission of “Making the world sustainable with new manufacturing technologies”, Elephantech provides their innovative inkjet printing solutions to promote their manufacturing method as the new global standard.\r\n\r\n**Job Description:**\r\nWe are seeking a Business Development Specialist to spearhead the expansion of our Flexible Printed Circuit (FPC) for Battery Management Systems (BMS) in Electric Vehicles (EVs). This role is crucial in conducting market research and expanding our innovative, environmentally friendly FPC products in the EV BMS market across Europe.\r\n\r\n**Key Responsibilities:**\r\n\r\n- **Lead Identification:** Conduct targeted market research to identify potential leads for EV-specific BMS FPC in key regions, focusing on the automotive and battery industries.\r\n- **Lead Generation Strategy:** Develop and implement effective strategies to generate and nurture leads, aligning with Elephantech’s sustainability goals.\r\n- **Stakeholder Engagement:** Build and maintain relationships with industry stakeholders, highlighting our eco-friendly manufacturing approach.\r\n- **Collaboration with Internal Teams:** Coordinate with sales and technical teams to ensure smooth transition of qualified leads for deal closure.\r\n\r\n**Qualifications:**\r\n\r\n- Experience in business development, ideally in the automotive or battery industry.\r\n- Knowledge of the EV market, BMS, and FPC technologies, with a passion for sustainability.\r\n- Strong analytical, research, and relationship-building skills.\r\n- Excellent communication and negotiation abilities.\r\n- Fluency in English; additional language skills for the target regions are advantageous.', + project_type: 'PART_TIME', + project_length: '1_3_MONTHS', + payment_currency: 'USD', + payment_range_lower: '15000', + payment_range_higher: '16000', + experience_level: 3, + created_at: '2023-12-11T00:04:50.122Z', + updated_at: '2024-02-11T00:30:46.949Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Business Development Specialist in Europe - EV Market Focus ', + expires_at: null, + country: 'FR', + skills: ['BUSINESS_DEVELOPMENT', 'SALES', 'SALES_MANAGEMENT'], + causes_tags: ['SUSTAINABILITY'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'REMOTE', + search_tsv: + "'000':55 '3':31 '5':54 '60':48 'a':30,39,65,70,129,280 'abilities':296 'about':47,59 'achieved':69 'across':173 'additional':300 'advantageous':308 'aligning':216 'analytical':285 'and':160,200,207,213,225,245,276,287,294 'approach':237 'approximately':53 'are':127,307 'as':119 'automotive':23,199,266 'based':42 'battery':24,144,201,268 'becoming':80 'bms':147,171,191,275 'build':224 'building':290 'business':1,11,44,130,261 'by':79 'circuit':141 'closure':257 'collaboration':238 'commitment':46 'communication':293 'company':19,83 'compensation':52 'conditions':45 'conduct':179 'conducting':157 'consideration':36 'contract':33 'contractual':28 'coordinate':242 'crucial':155 'deal':256 'description':125 'develop':206 'development':2,12,131,262 'eco':234 'eco-friendly':233 'effective':209 'electric':149 'elephantech':20,60,62,107,218 'employment':27 'engagement':223 'english':299 'ensure':249 'environmentally':164 'establishing':38 'europe':5,18,174 'ev':6,14,170,189,273 'ev-specific':188 'evs':151 'excellent':292 'expanding':161 'expansion':136 'experience':259 'field':75 'first':82 'flexible':139 'fluency':297 'focus':8,16 'focusing':196 'for':37,143,187,255,282,303 'fpc':142,166,192,277 'friendly':165,235 'generate':212 'generation':204 'global':122 'goals':221 'has':68 'highlighting':231 'hours':49 'ideally':263 'identification':178 'identify':184 'implement':208 'in':4,73,84,148,156,168,193,260,264,298 'inc':21,61,63 'industries':202 'industry':22,229,269 'inkjet':93,111 'innovative':110,163 'internal':240 'is':64,154 'job':9,124 'key':175,194 'knowledge':270 'language':301 'lead':177,203 'leads':186,215,254 'local':40 'location':17 'maintain':226 'making':99 'management':145 'manufacture':89 'manufacturing':78,105,117,236 'market':7,15,158,172,181,274 'metal':92 'method':118 'milestone':72 'mission':97 'month':32,51,58 'negotiation':295 'new':104,121 'nurture':214 'of':26,76,98,137,252,271 'office':41 'on':43,197 'or':267 'our':138,162,232 'passion':281 'pcb':77 'pcbs':90 'per':50,57 'potential':35,185 'preferably':29 'printed':140 'printing':94,112 'products':167 'promote':115 'provides':108 'qualifications':258 'qualified':253 'regions':195,306 'relationship':289 'relationship-building':288 'relationships':227 'research':159,182,286 'responsibilities':176 'role':153 's':219 'sales':244 'seeking':128 'significant':71 'skills':291,302 'smooth':250 'solutions':113 'spearhead':134 'specialist':3,13,132 'specific':190 'stakeholder':222 'stakeholders':230 'standard':123 'startup':66 'strategies':210 'strategy':205 'strong':284 'successfully':88 'sustainability':220,283 'sustainable':102 'systems':146 'target':305 'targeted':180 'teams':241,247 'technical':246 'technologies':106,278 'that':67 'the':74,81,85,96,100,120,135,169,198,265,272,304 'their':109,116 'this':152 'title':10 'to':87,114,133,183,211,248 'transition':251 'type':25 'usd':56 'using':91 'vehicles':150 'we':126 'with':34,95,103,217,228,239,243,279 'world':86,101", + city: 'Paris', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: '1e76aff6-f2cb-48a0-bb18-4c9e9d42c88e', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: 'b134bc13-c889-4eb6-a034-dd41337bc038', + city: 'Tokyo', + name: 'Elephantech', + email: 'client.jobs@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/1eb3da216299ac651d900ab73b639588.jpg', + hiring: true, + status: 'ACTIVE', + address: null, + country: 'JP', + mission: + 'Elephantech Inc. is a startup that has achieved a significant milestone in the field of PCB manufacturing, by becoming the first company in the world to successfully manufacture PCBs using metal inkjet printing.\n\nWith the mission of “Making the world sustainable with new manufacturing technologies”, Elephantech provides their innovative inkjet printing solutions to promote their manufacturing method as the new global standard.', + verified: false, + shortname: 'co8292', + description: null, + wallet_address: null, + verified_impact: false, + }, + job_category: { + id: '1e76aff6-f2cb-48a0-bb18-4c9e9d42c88e', + name: 'Sales', + hourly_wage_dollars: 20, + created_at: '2023-01-26T15:00:00+00:00', + updated_at: '2023-01-26T15:00:00+00:00', + }, + work_samples: [], + applicants: 12, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: 'ea6de290-6624-450b-a542-32940e2023b9', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: + "## **Job Description**\n\n### **About Socious:**\n\nSocious is a talent marketplace that makes impact work accessible and transparent; we build connections between purpose-driven individuals and impact organizations through AI matching. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions.\n\nHaving secured funding, we're in expansion mode. Join us in this journey!\n\n### **Role Overview:**\n\nAs the Head of Marketing at Socious, you will lead our marketing efforts, developing and executing strategies to enhance our brand presence, drive user acquisition, and support our growth within the impact sector. Your creative vision and marketing expertise will be key in amplifying Socious' mission, ensuring we reach and engage with a wide audience of impact-driven professionals and organizations.\n\n### **Key Responsibilities:**\n\n- **Strategic Marketing Leadership:**\n - Develop and implement comprehensive marketing strategies to promote Socious' mission and services, driving brand awareness and user growth.\n - Collaborate with the CEO and other team members to align marketing initiatives with Socious' overall strategic goals.\n- **Brand Development:**\n - Cultivate and maintain a strong, cohesive brand identity that resonates with our target audience.\n - Ensure consistent messaging across all marketing channels, including digital, social media, and offline platforms.\n- **User Acquisition and Engagement:**\n - Design and execute campaigns to attract and retain impact-driven professionals and organizations.\n - Leverage data analytics to optimize marketing efforts and maximize ROI.\n- **Content and Communication:**\n - Oversee the creation of compelling content, including blog posts, newsletters, social media updates, and marketing materials.\n - Manage public relations efforts, including media relations and press releases, to enhance Socious' visibility and reputation.\n- **Team Leadership and Development:**\n - Lead and mentor a high-performing marketing team, fostering a collaborative and innovative environment.\n - Champion Socious' values, ensuring a culture of diversity, inclusion, and belonging within the marketing department.\n- **Partnership and Collaboration:**\n - Identify and establish strategic partnerships to expand Socious' reach and impact.\n - Collaborate with other departments to ensure marketing efforts support business development, client success, and operational goals.\n\n### **Skills/Experience:**\n\n- A strong desire to make a social/environmental impact. Prior experience in this realm is a plus.\n- Proven experience as a Head of Marketing or similar role, ideally within the tech or social impact sector.\n- Demonstrable competency in developing and executing successful marketing strategies.\n- Outstanding organizational and leadership abilities, with a track record of effectively leading a diverse team.\n- Aptitude in decision-making and problem-solving, with a focus on marketing excellence.\n- Strong understanding of digital marketing, content creation, and brand management.\n- Excellent interpersonal and communication skills in English.\n- Proficiency in Japanese preferred.\n\n### **What's in it for you?**\n\n- Make a lasting impact on the lives of many and on the world.\n- Take part in shaping the future by working with the most advanced and pioneering technologies in the field.\n- Collaborate with and learn from passionate, diverse, and high-performing colleagues.\n- Achieve the perfect work-life balance with flexible hours and unlimited paid leave.\n- Thrive in a remote-first setting with occasional team get-togethers.\n- Commit to your growth with ongoing learning and development opportunities.\n- Navigate a vibrant, fast-paced work setting.\n- Take the lead with autonomy in decision-making.\n- Relish a culture of trust, transparency, and unwavering support.\n- Become a member of a team that is deeply committed to fostering a socially responsible and ecologically sustainable work environment.\n- Enjoy a competitive compensation: USD 50k - 90k annually + token incentives.\n\n### **Socious Referral Program:**\n\nKnow someone just right for Socious? We highly value word-of-mouth recommendations. Successfully refer a candidate, and enjoy a $1,000 reward as a token of our gratitude. Just share this job link!\n\nYour support in broadening our talent search is invaluable. Thank you.\n\n### **Our Mission and Values:**\n\n**Mission:** Give everyone the chance to make a difference.\n\n**Our Values:**\n\n- Diversity, inclusion, and belonging.\n- Life first, work second.\n- High performance for high impact.\n- Autonomy and accountability.\n- Candor, collaboration, and play.", + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: null, + payment_range_higher: null, + experience_level: 3, + created_at: '2024-07-26T05:31:13.773Z', + updated_at: '2024-07-26T05:42:29.385Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Head of Marketing', + expires_at: null, + country: 'JP', + skills: ['MARKETING', 'MARKETING_STRATEGY', 'PROJECT_MANAGEMENT', 'PROBLEM_SOLVING', 'CRM'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'HYBRID', + search_tsv: + "'000':583 '1':582 '50k':553 '90k':554 'a':10,114,169,264,271,280,322,327,336,341,371,377,390,423,481,503,520,529,532,540,549,577,581,586,618 'abilities':369 'about':6 'accessible':17 'accountability':637 'achieve':465 'acquisition':86,195 'across':183 'advanced':446 'ai':32 'align':156 'all':184 'amplifying':105 'analytics':214 'and':18,28,44,76,87,98,111,122,130,139,144,151,167,191,196,199,204,210,219,223,238,248,255,259,262,273,285,292,295,303,318,360,367,385,402,407,431,447,455,460,475,499,525,543,579,609,624,636,640 'annually':555 'aptitude':380 'as':62,340,585 'at':67 'attract':203 'audience':116,179 'autonomy':514,635 'awareness':143 'balance':471 'be':102 'become':528 'belonging':286,625 'between':23 'blockchain':36 'blog':232 'brand':82,142,164,172,403 'broadening':599 'build':21 'business':314 'by':34,441 'campaigns':201 'candidate':578 'candor':638 'ceo':150 'champion':276 'chance':615 'channels':186 'client':316 'cohesive':171 'collaborate':147,305,453 'collaboration':293,639 'collaborative':272 'colleagues':464 'commit':492 'committed':537 'communication':224,408 'compelling':229 'compensation':551 'competency':357 'competitive':550 'comprehensive':132 'connections':22 'consistent':181 'content':222,230,400 'contributions':46 'creation':227,401 'creative':96 'cultivate':166 'culture':281,521 'data':213 'decision':383,517 'decision-making':382,516 'deeply':536 'demonstrable':356 'department':290 'departments':308 'description':5 'design':198 'desire':324 'develop':129 'developing':75,359 'development':165,260,315,500 'difference':619 'digital':188,398 'diverse':378,459 'diversity':283,622 'drive':84 'driven':26,120,208 'driving':141 'ecologically':544 'effectively':375 'efforts':74,218,244,312 'engage':112 'engagement':197 'english':411 'enhance':80,252 'enjoy':548,580 'ensure':180,310 'ensuring':108,279 'environment':275,547 'establish':296 'everyone':613 'excellence':394 'excellent':405 'execute':200 'executing':77,361 'expand':300 'expansion':53 'experience':331,339 'expertise':100 'fast':506 'fast-paced':505 'field':452 'first':484,627 'flexible':473 'focus':391 'for':420,565,632 'fostering':270,539 'from':457 'funding':49 'future':440 'get':490 'get-togethers':489 'give':612 'goals':163,320 'gratitude':590 'growth':90,146,495 'having':47 'head':1,64,342 'high':266,462,630,633 'high-performing':265,461 'highly':568 'hours':474 'ideally':348 'identify':294 'identity':173 'impact':15,29,41,93,119,207,304,329,354,425,634 'impact-driven':118,206 'implement':131 'in':52,57,104,332,358,381,410,413,418,437,450,480,515,598 'incentives':557 'including':187,231,245 'inclusion':284,623 'individuals':27 'initiatives':158 'innovative':274 'interpersonal':406 'invaluable':604 'is':9,335,535,603 'it':419 'japanese':414 'job':4,594 'join':55 'journey':59 'just':563,591 'key':103,124 'know':561 'lasting':424 'lead':71,261,512 'leadership':128,258,368 'leading':376 'learn':456 'learning':498 'leave':478 'leverage':212 'leveraging':35 'life':470,626 'link':595 'lives':428 'maintain':168 'make':39,326,422,617 'makes':14 'making':384,518 'manage':241 'management':404 'many':430 'marketing':3,66,73,99,127,133,157,185,217,239,268,289,311,344,363,393,399 'marketplace':12 'matching':33 'materials':240 'maximize':220 'media':190,236,246 'member':530 'members':154 'mentor':263 'messaging':182 'mission':107,138,608,611 'mode':54 'most':445 'mouth':573 'navigate':502 'newsletters':234 'occasional':487 'of':2,65,117,228,282,343,374,397,429,522,531,572,588 'offline':192 'on':392,426,432 'ongoing':497 'operational':319 'opportunities':501 'optimize':216 'or':345,352 'organizational':366 'organizations':30,123,211 'other':152,307 'our':72,81,89,177,589,600,607,620 'outstanding':365 'overall':161 'oversee':225 'overview':61 'paced':507 'paid':477 'part':436 'partnership':291 'partnerships':298 'passionate':458 'perfect':467 'performance':631 'performing':267,463 'pioneering':448 'platforms':193 'play':641 'plus':337 'posts':233 'preferred':415 'presence':83 'press':249 'prior':330 'problem':387 'problem-solving':386 'professionals':121,209 'proficiency':412 'program':560 'promote':136 'proven':338 'public':242 'purpose':25 'purpose-driven':24 're':51 'reach':110,302 'realm':334 'recommendations':574 'record':373 'refer':576 'referral':559 'relations':243,247 'releases':250 'relish':519 'remote':483 'remote-first':482 'reputation':256 'resonates':175 'responsibilities':125 'responsible':542 'retain':205 'reward':45,584 'right':564 'roi':221 'role':60,347 's':417 'search':602 'second':629 'sector':94,355 'secured':48 'services':140 'setting':485,509 'shaping':438 'share':592 'similar':346 'skills':409 'skills/experience':321 'social':189,235,353 'social/environmental':40,328 'socially':541 'socious':7,8,68,106,137,160,253,277,301,558,566 'solving':388 'someone':562 'strategic':126,162,297 'strategies':78,134,364 'strong':170,323,395 'success':317 'successful':362 'successfully':575 'support':88,313,527,597 'sustainable':545 'take':435,510 'talent':11,601 'target':178 'team':153,257,269,379,488,533 'tech':351 'technologies':449 'technology':37 'thank':605 'that':13,174,534 'the':63,92,149,226,288,350,427,433,439,444,451,466,511,614 'this':58,333,593 'thrive':479 'through':31 'to':79,135,155,202,215,251,299,309,325,493,538,616 'togethers':491 'token':556,587 'traceable':43 'track':372 'transparency':524 'transparent':19 'trust':523 'understanding':396 'unlimited':476 'unwavering':526 'updates':237 'us':56 'usd':552 'user':85,145,194 'value':569 'values':278,610,621 'vibrant':504 'visibility':254 'vision':97 'we':20,38,50,109,567 'what':416 'wide':115 'will':70,101 'with':113,148,159,176,306,370,389,443,454,472,486,496,513 'within':91,287,349 'word':571 'word-of-mouth':570 'work':16,42,469,508,546,628 'work-life':468 'working':442 'world':434 'you':69,421,606 'your':95,494,596", + city: 'Tokyo', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: 'f41529ba-d708-499f-8537-11ff57ed260a', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: 'f41529ba-d708-499f-8537-11ff57ed260a', + name: 'Project Management', + hourly_wage_dollars: 32, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 3, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: '834dba9b-fa47-4dd2-8f45-5636e37a443c', + identity_id: 'b4a24289-c4f4-4bd8-bc9a-0091f2c4a881', + description: + 'Socious is seeking enthusiastic interns to join our Event Management team for the Tech For Impact Summit scheduled on September 10, 2024.\n\n - Internship Duration: May to Early September (5 months)\n- Commitment: 10 hours per week (Hybrid: Bi-weekly office attendance, predominantly remote with flexible scheduling)\n\nResponsibilities:\n- Tasks will be assigned based on priority and the event planning timeline.\n- Collaborate with the Event Management team to ensure the success of the Tech For Impact Summit.\n- Engage with potential Speakers/Sponsors including NGOs, Industry Leaders, Social Entrepreneurs, and Organizations.\n- Coordinate volunteer assignments for the day of the event.\n- Assist in promoting the event by liaising with various organizations, startups, student communities, tech hubs, and social entrepreneur networks.\n- Contribute to crafting compelling event campaigns for marketing purposes.\n\nRequirements:\n- Proficiency in English and/or Japanese.\n- Based in Greater Tokyo, Japan\n- Strong communication and collaborative abilities.\n- Strong organizational and adaptability skills.\n- Familiarity with both Japanese and international communities for effective promotion and marketing.\n-Availability for 10 hours per week (Remote work is acceptable).\n\n*What We offers:*\n- A front-row seat to the workings of a pioneering social impact platform.\n- The opportunity to contribute to meaningful projects that have a real-world impact.\n- A chance to learn from and collaborate with a diverse, high-performing team.\n- A flexible, remote-first work environment to balance your internship with personal commitments.\n- Engagement in a culture of trust, transparency, and unwavering support.\n- Opportunities for professional growth and development.\n- Though this is an unpaid role, the experience and network you build here are invaluable.\n\n*Our mission and values:*\nMission: Give everyone the chance to make a difference.\nOur values:\n- Diversity, inclusion, and belonging.\n- Life first, work second.\n- High performance for high impact.\n- Autonomy and accountability.\n- Candor, collaboration, and play.', + project_type: 'PART_TIME', + project_length: '3_6_MONTHS', + payment_currency: 'USD', + payment_range_lower: null, + payment_range_higher: null, + experience_level: 0, + created_at: '2024-05-13T07:39:00.444Z', + updated_at: '2024-06-18T06:31:47.822Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'VOLUNTEER', + payment_scheme: 'HOURLY', + title: 'Event Management Intern', + expires_at: null, + country: 'JP', + skills: ['EVENT_MANAGEMENT', 'COMMUNICATION', 'SOCIAL_MEDIA_MARKETING'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'HYBRID', + search_tsv: + "'10':24,35,163 '2024':25 '5':32 'a':174,183,197,202,210,216,232,272 'abilities':143 'acceptable':170 'accountability':291 'adaptability':147 'an':249 'and':58,89,115,141,146,153,159,207,237,244,254,263,278,290,294 'and/or':132 'are':259 'assigned':54 'assignments':93 'assist':100 'attendance':44 'autonomy':289 'availability':161 'balance':224 'based':55,134 'be':53 'belonging':279 'bi':41 'bi-weekly':40 'both':151 'build':257 'by':105 'campaigns':124 'candor':292 'chance':203,269 'collaborate':63,208 'collaboration':293 'collaborative':142 'commitment':34 'commitments':229 'communication':140 'communities':112,155 'compelling':122 'contribute':119,191 'coordinate':91 'crafting':121 'culture':233 'day':96 'development':245 'difference':273 'diverse':211 'diversity':276 'duration':27 'early':30 'effective':157 'engage':79 'engagement':230 'english':131 'ensure':70 'enthusiastic':7 'entrepreneur':117 'entrepreneurs':88 'environment':222 'event':1,12,60,66,99,104,123 'everyone':267 'experience':253 'familiarity':149 'first':220,281 'flexible':48,217 'for':15,18,76,94,125,156,162,241,286 'from':206 'front':176 'front-row':175 'give':266 'greater':136 'growth':243 'have':196 'here':258 'high':213,284,287 'high-performing':212 'hours':36,164 'hubs':114 'hybrid':39 'impact':19,77,186,201,288 'in':101,130,135,231 'including':83 'inclusion':277 'industry':85 'intern':3 'international':154 'interns':8 'internship':26,226 'invaluable':260 'is':5,169,248 'japan':138 'japanese':133,152 'join':10 'leaders':86 'learn':205 'liaising':106 'life':280 'make':271 'management':2,13,67 'marketing':126,160 'may':28 'meaningful':193 'mission':262,265 'months':33 'network':255 'networks':118 'ngos':84 'of':73,97,182,234 'offers':173 'office':43 'on':22,56 'opportunities':240 'opportunity':189 'organizational':145 'organizations':90,109 'our':11,261,274 'per':37,165 'performance':285 'performing':214 'personal':228 'pioneering':184 'planning':61 'platform':187 'play':295 'potential':81 'predominantly':45 'priority':57 'professional':242 'proficiency':129 'projects':194 'promoting':102 'promotion':158 'purposes':127 'real':199 'real-world':198 'remote':46,167,219 'remote-first':218 'requirements':128 'responsibilities':50 'role':251 'row':177 'scheduled':21 'scheduling':49 'seat':178 'second':283 'seeking':6 'september':23,31 'skills':148 'social':87,116,185 'socious':4 'speakers/sponsors':82 'startups':110 'strong':139,144 'student':111 'success':72 'summit':20,78 'support':239 'tasks':51 'team':14,68,215 'tech':17,75,113 'that':195 'the':16,59,65,71,74,95,98,103,180,188,252,268 'this':247 'though':246 'timeline':62 'to':9,29,69,120,179,190,192,204,223,270 'tokyo':137 'transparency':236 'trust':235 'unpaid':250 'unwavering':238 'values':264,275 'various':108 'volunteer':92 'we':172 'week':38,166 'weekly':42 'what':171 'will':52 'with':47,64,80,107,150,209,227 'work':168,221,282 'workings':181 'world':200 'you':256 'your':225", + city: 'Tokyo', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: '5', + commitment_hours_higher: '10', + geoname_id: null, + job_category_id: 'f41529ba-d708-499f-8537-11ff57ed260a', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: 'b4a24289-c4f4-4bd8-bc9a-0091f2c4a881', + city: 'Tokyo', + name: 'Tech for Impact Summit', + email: 'info@tech4impactsummit.com', + image: 'https://storage.googleapis.com/socious-gcs/8c5cb3c5201bbb0110f8f6ca29b4e065.jpg', + hiring: false, + status: 'ACTIVE', + address: null, + country: 'JP', + mission: + 'Welcome to the Tech for Impact Summit hosted by Socious. This groundbreaking event brings together international and Japanese speakers from government, tech companies, academia, and more to explore real-world applications of innovation for social and environmental impact. Explore interactive panels and workshops on innovations in global health and telecommunications to insights into civic enterprise and regulation and dive deep into the intersection of technology and social good. Join us as we unlock new possibilities and pave the way for a more sustainable future.', + verified: true, + shortname: 'techforimpactsummit', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: 'f41529ba-d708-499f-8537-11ff57ed260a', + name: 'Project Management', + hourly_wage_dollars: 32, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 10, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: '9edfd0f1-53ef-4260-8b93-5a6f78a2408d', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: + "**About Socious:**\n\nSocious is a talent marketplace that makes impact work accessible and transparent; we build connections between purpose-driven individuals and impact organizations through AI matching. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions.\n\nHaving secured funding, we're in expansion mode. Join us in this journey!\n\n**Key Responsibilities:**\n\n- Lead and mentor a team of designers.\n- Deliver on all aspects of UI/UX design, from strategy to execution.\n- Translate user needs, business goals, and technology requirements to drive design decisions.\n- Partner with and influence executive stakeholders.\n- Build a user-centric vision for features across different devices including iOS, Android, and desktop.\n\n**Skills/Experience:**\n\n- A strong desire to make a social/environmental impact. Prior experience in this realm is a plus.\n- 10+ years of industry experience (or equivalent skills) as a UI/UX designer and/or manager in a cross-functional UI/UX team.\n- Experience in architecting system wide design solutions that satisfy both product and engineering requirements.\n- Experience in full product life cycle from design through deployment.\n\n**What's in it for you?**\n\n- Make a lasting impact on the lives of many and on the world.\n- Collaborate with passionate, diverse, and high-performing colleagues.\n- Achieve the perfect work-life balance with flexible hours and unlimited paid leave.\n- Thrive in a remote-first, hybrid setting with occasional team get-togethers.\n- Commit to your growth with ongoing learning and development opportunities.\n- Navigate a vibrant, fast-paced work setting.\n- Take the lead with autonomy in decision-making.\n- Relish a culture of trust, transparency, and unwavering support.\n- Enjoy a competitive compensation: USD 80k - 130k annually + token incentives.\n\n**Socious Referral Program:**\n\nKnow someone just right for Socious? We highly value word-of-mouth recommendations. Successfully refer a candidate, and enjoy a $800 reward as a token of our gratitude. Just share this job link!\n\nYour support in broadening our talent search is invaluable. Thank you.\n\n**Our mission and values:** \n\n**Mission:** Give everyone the chance to make a difference. \n\n**Our values:** \n\n- Diversity, inclusion, and belonging.\n- Life first, work second.\n- High performance for high impact.\n- Autonomy and accountability.\n- Candor, collaboration, and play.", + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: '80000', + payment_range_higher: '130000', + experience_level: 3, + created_at: '2024-06-01T08:45:21.893Z', + updated_at: '2024-06-01T08:45:21.893Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Lead Designer', + expires_at: null, + country: null, + skills: ['UI_UX_DESIGN', 'UI_DESIGN', 'DESIGN_THINKING', 'LEADERSHIP'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'REMOTE', + search_tsv: + "'10':128 '130k':271 '800':299 '80k':270 'a':7,62,96,112,117,126,137,143,180,217,240,257,266,294,298,302,334 'about':3 'accessible':14 'accountability':353 'achieve':201 'across':103 'ai':29 'all':68 'and':15,25,41,60,82,91,109,160,188,196,211,236,262,296,325,340,352,356 'and/or':140 'android':108 'annually':272 'architecting':151 'as':136,301 'aspects':69 'autonomy':251,351 'balance':207 'belonging':341 'between':20 'blockchain':33 'both':158 'broadening':315 'build':18,95 'business':80 'by':31 'candidate':295 'candor':354 'centric':99 'chance':331 'collaborate':192 'collaboration':355 'colleagues':200 'commit':229 'compensation':268 'competitive':267 'connections':19 'contributions':43 'cross':145 'cross-functional':144 'culture':258 'cycle':168 'decision':254 'decision-making':253 'decisions':88 'deliver':66 'deployment':172 'design':72,87,154,170 'designer':2,139 'designers':65 'desire':114 'desktop':110 'development':237 'devices':105 'difference':335 'different':104 'diverse':195 'diversity':338 'drive':86 'driven':23 'engineering':161 'enjoy':265,297 'equivalent':134 'everyone':329 'execution':76 'executive':93 'expansion':50 'experience':121,132,149,163 'fast':243 'fast-paced':242 'features':102 'first':220,343 'flexible':209 'for':101,177,282,348 'from':73,169 'full':165 'functional':146 'funding':46 'get':227 'get-togethers':226 'give':328 'goals':81 'gratitude':306 'growth':232 'having':44 'high':198,346,349 'high-performing':197 'highly':285 'hours':210 'hybrid':221 'impact':12,26,38,119,182,350 'in':49,54,122,142,150,164,175,216,252,314 'incentives':274 'including':106 'inclusion':339 'individuals':24 'industry':131 'influence':92 'invaluable':320 'ios':107 'is':6,125,319 'it':176 'job':310 'join':52 'journey':56 'just':280,307 'key':57 'know':278 'lasting':181 'lead':1,59,249 'learning':235 'leave':214 'leveraging':32 'life':167,206,342 'link':311 'lives':185 'make':36,116,179,333 'makes':11 'making':255 'manager':141 'many':187 'marketplace':9 'matching':30 'mentor':61 'mission':324,327 'mode':51 'mouth':290 'navigate':239 'needs':79 'occasional':224 'of':64,70,130,186,259,289,304 'on':67,183,189 'ongoing':234 'opportunities':238 'or':133 'organizations':27 'our':305,316,323,336 'paced':244 'paid':213 'partner':89 'passionate':194 'perfect':203 'performance':347 'performing':199 'play':357 'plus':127 'prior':120 'product':159,166 'program':277 'purpose':22 'purpose-driven':21 're':48 'realm':124 'recommendations':291 'refer':293 'referral':276 'relish':256 'remote':219 'remote-first':218 'requirements':84,162 'responsibilities':58 'reward':42,300 'right':281 's':174 'satisfy':157 'search':318 'second':345 'secured':45 'setting':222,246 'share':308 'skills':135 'skills/experience':111 'social/environmental':37,118 'socious':4,5,275,283 'solutions':155 'someone':279 'stakeholders':94 'strategy':74 'strong':113 'successfully':292 'support':264,313 'system':152 'take':247 'talent':8,317 'team':63,148,225 'technology':34,83 'thank':321 'that':10,156 'the':184,190,202,248,330 'this':55,123,309 'thrive':215 'through':28,171 'to':75,85,115,230,332 'togethers':228 'token':273,303 'traceable':40 'translate':77 'transparency':261 'transparent':16 'trust':260 'ui/ux':71,138,147 'unlimited':212 'unwavering':263 'us':53 'usd':269 'user':78,98 'user-centric':97 'value':286 'values':326,337 'vibrant':241 'vision':100 'we':17,35,47,284 'what':173 'wide':153 'with':90,193,208,223,233,250 'word':288 'word-of-mouth':287 'work':13,39,205,245,344 'work-life':204 'world':191 'years':129 'you':178,322 'your':231,312", + city: null, + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: 'bc2e14cd-5087-44cd-ad0d-8e6a87a4c35a', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: 'bc2e14cd-5087-44cd-ad0d-8e6a87a4c35a', + name: 'UX/UI Design', + hourly_wage_dollars: 32, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 7, + missions: 1, + saved: false, + not_interested: false, + }, + { + id: '615be3c0-b294-4901-a208-2409d545959d', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: + "### **About Us:**\r\n\r\nSocious is a talent marketplace that makes impact work accessible and transparent; we build connections between purpose-driven individuals and impact organizations through AI matching. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions.\r\n\r\nHaving secured funding, we're in expansion mode. Join us in this journey!\r\n\r\n### **Job Summary:**\r\n\r\nAs a Sales & BD Rep, you will be responsible for driving sales growth by identifying and engaging potential customers, building strong relationships, and effectively communicating the value of our products/services. You will work closely with the sales and marketing teams to execute sales strategies and achieve targets.\r\n\r\n### **Key Responsibilities:**\r\n\r\n- **Prospect and Generate Leads:** Identify and research potential customers through various channels, including cold calling, email campaigns, social media, and networking events.\r\n- **Build Relationships:** Establish and maintain strong relationships with prospective and existing clients, understanding their needs and providing tailored solutions.\r\n- **Sales Presentations:** Conduct product demonstrations and presentations to showcase the value and benefits of our offerings.\r\n- **Negotiate and Close Deals:** Effectively negotiate terms and close sales deals, ensuring customer satisfaction and loyalty.\r\n- **Market Research:** Stay informed about industry trends, competitor activities, and market conditions to identify opportunities and threats.\r\n- **Collaborate:** Work closely with the sales and marketing teams to develop and implement effective sales strategies and campaigns.\r\n- **Customer Feedback:** Gather and relay customer feedback to the product development team to help improve our offerings.\r\n- **Reporting:** Maintain accurate records of sales activities, pipeline, and performance metrics, and provide regular reports to the sales manager.\r\n\r\n### **Skills/Experience:**\r\n\r\n- A strong desire to make a social/environmental impact. Prior experience in this realm is a plus.\r\n- **Experience:** 1-2 years of sales experience (preferred but not required). We welcome applications from fresh graduates, especially those with relevant internships or project experience, ideally in a tech startup or related industry.\r\n- **Education:** Bachelor's degree in Business, Marketing, or a related field is preferred.\r\n- **Skills:**\r\n - Excellent communication and interpersonal skills in English (business level) and Japanese (Native-level Japanese is preferred).\r\n - Strong presentation and negotiation abilities.\r\n - Proficiency in using CRM software and sales tools.\r\n - Ability to work independently and as part of a team.\r\n- **Attributes:**\r\n - Goal-oriented with a strong drive to achieve and exceed targets.\r\n - Adaptable and able to thrive in a fast-paced startup environment.\r\n - Passionate about technology and innovation.\r\n\r\n### **What We Offer:**\r\n\r\n- Make a lasting impact on the lives of many and on the world.\r\n- Take part in shaping the future by working with the most advanced and pioneering technologies in the field.\r\n- Collaborate with and learn from passionate, diverse, and high-performing colleagues.\r\n- Achieve the perfect work-life balance with flexible hours and unlimited paid leave.\r\n- Thrive in a remote-first setting with occasional team get-togethers.\r\n- Commit to your growth with ongoing learning and development opportunities.\r\n- Navigate a vibrant, fast-paced work setting.\r\n- Take the lead with autonomy in decision-making.\r\n- Relish a culture of trust, transparency, and unwavering support.\r\n- Become a member of a team that is deeply committed to fostering a socially responsible and ecologically sustainable work environment.\r\n- Enjoy a competitive compensation package: a base salary of ¥5,000,000 - ¥8,000,000 annually (approximately USD 35,000 - 60,000), plus 10%-30% commission on sales revenue generated, along with token allocation.\r\n\r\n**Socious Referral Program:**\r\n\r\nKnow someone just right for Socious? We highly value word-of-mouth recommendations. Successfully refer a candidate, and enjoy a $1,000 reward as a token of our gratitude. Just share this job link!\r\n\r\nYour support in broadening our talent search is invaluable. Thank you.\r\n\r\n**Our mission and values:**\r\n\r\n**Mission:** Give everyone the chance to make a difference.\r\n\r\n**Our values:**\r\n\r\n- Diversity, inclusion, and belonging.\r\n- Life first, work second.\r\n- High performance for high impact.\r\n- Autonomy and accountability.\r\n- Candor, collaboration, and play.", + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: '35000', + payment_range_higher: '90000', + experience_level: 1, + created_at: '2024-05-29T07:26:08.775Z', + updated_at: '2024-05-29T22:27:13.976Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Sales & BD Rep', + expires_at: null, + country: 'JP', + skills: ['BUSINESS_DEVELOPMENT', 'MARKETING_STRATEGY', 'SALES', 'SALES_MANAGEMENT', 'SOCIAL_MEDIA_MARKETING'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'HYBRID', + search_tsv: + "'-2':272 '-30':540 '000':526,527,529,530,535,537,575 '1':271,574 '10':539 '35':534 '5':525 '60':536 '8':528 'a':8,61,254,259,268,297,311,355,362,376,391,449,471,488,497,500,508,517,521,569,573,578,610 'abilities':338 'ability':347 'able':372 'about':4,186,383 'accessible':15 'accountability':629 'accurate':236 'achieve':105,366,433 'activities':190,240 'adaptable':370 'advanced':414 'ai':30 'allocation':549 'along':546 'and':16,26,42,75,82,97,104,110,114,128,134,140,146,155,161,167,173,180,191,197,205,210,215,220,242,245,319,326,336,344,351,367,371,385,399,415,423,428,443,467,493,511,571,601,616,628,632 'annually':531 'applications':283 'approximately':532 'as':60,352,577 'attributes':357 'autonomy':482,627 'bachelor':304 'balance':439 'base':522 'bd':2,63 'be':67 'become':496 'belonging':617 'benefits':162 'between':21 'blockchain':34 'broadening':591 'build':19,131 'building':79 'business':308,324 'but':278 'by':32,73,409 'calling':123 'campaigns':125,216 'candidate':570 'candor':630 'chance':607 'channels':120 'clients':142 'close':168,174 'closely':93,201 'cold':122 'collaborate':199,421 'collaboration':631 'colleagues':432 'commission':541 'commit':460 'committed':505 'communicating':84 'communication':318 'compensation':519 'competitive':518 'competitor':189 'conditions':193 'conduct':152 'connections':20 'contributions':44 'crm':342 'culture':489 'customer':178,217,222 'customers':78,117 'deals':169,176 'decision':485 'decision-making':484 'deeply':504 'degree':306 'demonstrations':154 'desire':256 'develop':209 'development':227,468 'difference':611 'diverse':427 'diversity':614 'drive':364 'driven':24 'driving':70 'ecologically':512 'education':303 'effective':212 'effectively':83,170 'email':124 'engaging':76 'english':323 'enjoy':516,572 'ensuring':177 'environment':381,515 'especially':287 'establish':133 'events':130 'everyone':605 'exceed':368 'excellent':317 'execute':101 'existing':141 'expansion':51 'experience':263,270,276,294 'fast':378,474 'fast-paced':377,473 'feedback':218,223 'field':313,420 'first':452,619 'flexible':441 'for':69,557,624 'fostering':507 'fresh':285 'from':284,425 'funding':47 'future':408 'gather':219 'generate':111 'generated':545 'get':458 'get-togethers':457 'give':604 'goal':359 'goal-oriented':358 'graduates':286 'gratitude':582 'growth':72,463 'having':45 'help':230 'high':430,622,625 'high-performing':429 'highly':560 'hours':442 'ideally':295 'identify':113,195 'identifying':74 'impact':13,27,39,261,393,626 'implement':211 'improve':231 'in':50,55,264,296,307,322,340,375,405,418,448,483,590 'including':121 'inclusion':615 'independently':350 'individuals':25 'industry':187,302 'informed':185 'innovation':386 'internships':291 'interpersonal':320 'invaluable':596 'is':7,267,314,332,503,595 'japanese':327,331 'job':58,586 'join':53 'journey':57 'just':555,583 'key':107 'know':553 'lasting':392 'lead':480 'leads':112 'learn':424 'learning':466 'leave':446 'level':325,330 'leveraging':33 'life':438,618 'link':587 'lives':396 'loyalty':181 'maintain':135,235 'make':37,258,390,609 'makes':12 'making':486 'manager':252 'many':398 'market':182,192 'marketing':98,206,309 'marketplace':10 'matching':31 'media':127 'member':498 'metrics':244 'mission':600,603 'mode':52 'most':413 'mouth':565 'native':329 'native-level':328 'navigate':470 'needs':145 'negotiate':166,171 'negotiation':337 'networking':129 'not':279 'occasional':455 'of':87,163,238,274,354,397,490,499,524,564,580 'offer':389 'offerings':165,233 'on':394,400,542 'ongoing':465 'opportunities':196,469 'or':292,300,310 'organizations':28 'oriented':360 'our':88,164,232,581,592,599,612 'paced':379,475 'package':520 'paid':445 'part':353,404 'passionate':382,426 'perfect':435 'performance':243,623 'performing':431 'pioneering':416 'pipeline':241 'play':633 'plus':269,538 'potential':77,116 'preferred':277,315,333 'presentation':335 'presentations':151,156 'prior':262 'product':153,226 'products/services':89 'proficiency':339 'program':552 'project':293 'prospect':109 'prospective':139 'provide':246 'providing':147 'purpose':23 'purpose-driven':22 're':49 'realm':266 'recommendations':566 'records':237 'refer':568 'referral':551 'regular':247 'related':301,312 'relationships':81,132,137 'relay':221 'relevant':290 'relish':487 'remote':451 'remote-first':450 'rep':3,64 'reporting':234 'reports':248 'required':280 'research':115,183 'responsibilities':108 'responsible':68,510 'revenue':544 'reward':43,576 'right':556 's':305 'salary':523 'sales':1,62,71,96,102,150,175,204,213,239,251,275,345,543 'satisfaction':179 'search':594 'second':621 'secured':46 'setting':453,477 'shaping':406 'share':584 'showcase':158 'skills':316,321 'skills/experience':253 'social':126 'social/environmental':38,260 'socially':509 'socious':6,550,558 'software':343 'solutions':149 'someone':554 'startup':299,380 'stay':184 'strategies':103,214 'strong':80,136,255,334,363 'successfully':567 'summary':59 'support':495,589 'sustainable':513 'tailored':148 'take':403,478 'talent':9,593 'targets':106,369 'team':228,356,456,501 'teams':99,207 'tech':298 'technologies':417 'technology':35,384 'terms':172 'thank':597 'that':11,502 'the':85,95,159,203,225,250,395,401,407,412,419,434,479,606 'their':144 'this':56,265,585 'those':288 'threats':198 'thrive':374,447 'through':29,118 'to':100,157,194,208,224,229,249,257,348,365,373,461,506,608 'togethers':459 'token':548,579 'tools':346 'traceable':41 'transparency':492 'transparent':17 'trends':188 'trust':491 'understanding':143 'unlimited':444 'unwavering':494 'us':5,54 'usd':533 'using':341 'value':86,160,561 'values':602,613 'various':119 'vibrant':472 'we':18,36,48,281,388,559 'welcome':282 'what':387 'will':66,91 'with':94,138,202,289,361,411,422,440,454,464,481,547 'word':563 'word-of-mouth':562 'work':14,40,92,200,349,437,476,514,620 'work-life':436 'working':410 'world':402 'years':273 'you':65,90,598 'your':462,588", + city: 'Tokyo', + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: '1e76aff6-f2cb-48a0-bb18-4c9e9d42c88e', + impact_job: true, + promoted: true, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: '1e76aff6-f2cb-48a0-bb18-4c9e9d42c88e', + name: 'Sales', + hourly_wage_dollars: 20, + created_at: '2023-01-26T15:00:00+00:00', + updated_at: '2023-01-26T15:00:00+00:00', + }, + work_samples: [], + applicants: 10, + missions: 0, + saved: true, + not_interested: false, + }, + { + id: '59610e25-44a5-42ef-80b8-38945090611b', + identity_id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + description: + "**About Socious:**\n\nSocious is a talent marketplace that makes impact work accessible and transparent; we build connections between purpose-driven individuals and impact organizations through AI matching. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions.\n\nHaving secured funding, we're in expansion mode. Join us in this journey!\n\n***Responsibilities:***\n\n- Collaborate with the team to design, implement and manage scalable, highly available systems\n- Ensure the provision of high-quality, reliable and maintainable code\n- Implement automation tools and frameworks (CI/CD pipelines)\n- Collaborate with team members to improve the company’s engineering tools, systems and procedures, and data security\n- Optimize the company’s computing architecture\n- Conduct systems tests for security, performance, and availability\n- Develop and maintain design and troubleshooting documentation\n- Implement the latest improvement proposals in DevOps practices\n\n***Skills/Experience:***\n\n- Proven experience as a Backend and DevOps Engineer or similar role\n- Minimum 5 years of experience in software development, especially with Python, JavaScript, NodeJS, PostgreSQL, AWS, and Azure\n- Knowledge of technological trends to build strategy\n- Understanding of budgets and business-planning\n- Familiarity with basic cryptography\n- Familiarity with P2P networks\n- Strong knowledge of concurrency and writing efficient and safe multithreaded code\n- Excellent communication skills\n- Leadership and organizational abilities\n- Strategic thinking\n- Problem-solving aptitude\n- BSc/BA in Computer Science, Engineering or a related field; MBA or other relevant graduate degree is a plus\n\n**What's in it for you?**\n\n- Make a lasting impact on the lives of many and on the world.\n- Take part in shaping the future by working with the most advanced and pioneering technologies in the field.\n- Collaborate with and learn from passionate, diverse, and high-performing colleagues.\n- Achieve the perfect work-life balance with flexible hours and unlimited paid leave.\n- Thrive in a remote-first setting with occasional team get-togethers.\n- Commit to your growth with ongoing learning and development opportunities.\n- Navigate a vibrant, fast-paced work setting.\n- Take the lead with autonomy in decision-making.\n- Relish a culture of trust, transparency, and unwavering support.\n- Become a member of a team that is deeply committed to fostering a socially responsible and ecologically sustainable work environment.\n- Enjoy a competitive compensation: USD 60k - 100k per year + tokens (similar to stock options)\n\n**Our mission and values:**\n\n**Mission:** Give everyone the chance to make a difference.\n\n**Our values:**\n\n- Diversity, inclusion, and belonging.\n- Life first, work second.\n- High performance for high impact.\n- Autonomy and accountability.\n- Candor, collaboration, and play.", + project_type: 'FULL_TIME', + project_length: '6_MONTHS_OR_MORE', + payment_currency: 'USD', + payment_range_lower: '60000', + payment_range_higher: '100000', + experience_level: 2, + created_at: '2024-05-15T15:04:15.734Z', + updated_at: '2024-05-15T15:04:15.734Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: 'PAID', + payment_scheme: 'FIXED', + title: 'Backend & DevOps Engineer', + expires_at: null, + country: null, + skills: ['AWS', 'NODE.JS', 'BLOCKCHAIN_DEVELOPMENT'], + causes_tags: ['SOCIAL'], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: 'REMOTE', + search_tsv: + "'100k':367 '5':149 '60k':366 'a':8,140,217,227,236,294,316,333,342,345,353,362,386 'abilities':204 'about':4 'accessible':15 'accountability':405 'achieve':278 'advanced':259 'ai':30 'and':16,26,42,66,80,86,102,104,119,122,125,142,163,175,191,194,202,244,260,268,273,288,312,338,356,377,392,404,408 'aptitude':210 'architecture':112 'as':139 'automation':84 'autonomy':327,403 'availability':120 'available':70 'aws':162 'azure':164 'backend':1,141 'balance':284 'basic':181 'become':341 'belonging':393 'between':21 'blockchain':34 'bsc/ba':211 'budgets':174 'build':19,170 'business':177 'business-planning':176 'by':32,254 'candor':406 'chance':383 'ci/cd':88 'code':82,197 'collaborate':59,90,266 'collaboration':407 'colleagues':277 'commit':305 'committed':350 'communication':199 'company':97,109 'compensation':364 'competitive':363 'computer':213 'computing':111 'concurrency':190 'conduct':113 'connections':20 'contributions':44 'cryptography':182 'culture':334 'data':105 'decision':330 'decision-making':329 'deeply':349 'degree':225 'design':64,124 'develop':121 'development':155,313 'devops':2,134,143 'difference':387 'diverse':272 'diversity':390 'documentation':127 'driven':24 'ecologically':357 'efficient':193 'engineer':3,144 'engineering':99,215 'enjoy':361 'ensure':72 'environment':360 'especially':156 'everyone':381 'excellent':198 'expansion':51 'experience':138,152 'familiarity':179,183 'fast':319 'fast-paced':318 'field':219,265 'first':297,395 'flexible':286 'for':116,233,400 'fostering':352 'frameworks':87 'from':270 'funding':47 'future':253 'get':303 'get-togethers':302 'give':380 'graduate':224 'growth':308 'having':45 'high':77,275,398,401 'high-performing':274 'high-quality':76 'highly':69 'hours':287 'impact':13,27,39,238,402 'implement':65,83,128 'improve':95 'improvement':131 'in':50,55,133,153,212,231,250,263,293,328 'inclusion':391 'individuals':25 'is':7,226,348 'it':232 'javascript':159 'join':53 'journey':57 'knowledge':165,188 'lasting':237 'latest':130 'lead':325 'leadership':201 'learn':269 'learning':311 'leave':291 'leveraging':33 'life':283,394 'lives':241 'maintain':123 'maintainable':81 'make':37,235,385 'makes':12 'making':331 'manage':67 'many':243 'marketplace':10 'matching':31 'mba':220 'member':343 'members':93 'minimum':148 'mission':376,379 'mode':52 'most':258 'multithreaded':196 'navigate':315 'networks':186 'nodejs':160 'occasional':300 'of':75,151,166,173,189,242,335,344 'on':239,245 'ongoing':310 'opportunities':314 'optimize':107 'options':374 'or':145,216,221 'organizational':203 'organizations':28 'other':222 'our':375,388 'p2p':185 'paced':320 'paid':290 'part':249 'passionate':271 'per':368 'perfect':280 'performance':118,399 'performing':276 'pioneering':261 'pipelines':89 'planning':178 'play':409 'plus':228 'postgresql':161 'practices':135 'problem':208 'problem-solving':207 'procedures':103 'proposals':132 'proven':137 'provision':74 'purpose':23 'purpose-driven':22 'python':158 'quality':78 're':49 'related':218 'relevant':223 'reliable':79 'relish':332 'remote':296 'remote-first':295 'responsibilities':58 'responsible':355 'reward':43 'role':147 's':98,110,230 'safe':195 'scalable':68 'science':214 'second':397 'secured':46 'security':106,117 'setting':298,322 'shaping':251 'similar':146,371 'skills':200 'skills/experience':136 'social/environmental':38 'socially':354 'socious':5,6 'software':154 'solving':209 'stock':373 'strategic':205 'strategy':171 'strong':187 'support':340 'sustainable':358 'systems':71,101,114 'take':248,323 'talent':9 'team':62,92,301,346 'technological':167 'technologies':262 'technology':35 'tests':115 'that':11,347 'the':61,73,96,108,129,240,246,252,257,264,279,324,382 'thinking':206 'this':56 'thrive':292 'through':29 'to':63,94,169,306,351,372,384 'togethers':304 'tokens':370 'tools':85,100 'traceable':41 'transparency':337 'transparent':17 'trends':168 'troubleshooting':126 'trust':336 'understanding':172 'unlimited':289 'unwavering':339 'us':54 'usd':365 'values':378,389 'vibrant':317 'we':18,36,48 'what':229 'with':60,91,157,180,184,256,267,285,299,309,326 'work':14,40,282,321,359,396 'work-life':281 'working':255 'world':247 'writing':192 'year':369 'years':150 'you':234 'your':307", + city: null, + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: null, + commitment_hours_higher: null, + geoname_id: null, + job_category_id: '95dedd87-f0d5-46f9-8756-8946308fca77', + impact_job: true, + promoted: false, + kind: 'JOB', + payment_mode: null, + identity_type: 'organizations', + identity_meta: { + id: '2bd26aa5-f745-4f12-bca7-17916161ae8b', + city: 'Tokyo, Tokyo Prefecture', + name: 'Socious', + email: 'info@socious.io', + image: 'https://storage.googleapis.com/socious-gcs/ad4ae46f5dc138d8bc63928890bc64e0.png', + hiring: true, + status: 'ACTIVE', + address: 'Nihonbashi 3-2-14-1F, Chuo Ward, Tokyo, Japan 103-0027', + country: 'JP', + mission: + 'Our mission is to give everyone the chance to make a difference.\r\n\r\nWe are a talent platform that makes impact work accessible and transparent; we build connections between purpose-driven individuals and organizations. By leveraging blockchain technology, we make social/environmental impact work traceable and reward contributions with crypto tokens.', + verified: true, + shortname: 'socious', + description: null, + wallet_address: null, + verified_impact: true, + }, + job_category: { + id: '95dedd87-f0d5-46f9-8756-8946308fca77', + name: 'Backend development', + hourly_wage_dollars: 25, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 6, + missions: 4, + saved: false, + not_interested: false, + }, + ], +}; + +export const SEARCH_PEOPLE = { + page: 1, + limit: 20, + total_count: 16, + items: [ + { + id: 'c5854445-0999-4607-a6c5-70483ae59fd6', + username: 'shantanu-gupta1943', + first_name: 'Shantanu', + last_name: 'Gupta', + city: 'New Delhi', + country: 'IN', + geoname_id: null, + mission: null, + bio: 'Data Scientist with 2.5+ years of experience currently looking to change the world and the way we think, one day at a time', + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: ['AI', 'COMPUTER_SCIENCE', 'DATA_SCIENCE', 'HUMAN_RESOURCES', 'MACHINE_LEARNING'], + followers: 1, + followings: 1, + created_at: '2022-07-14T07:12:45.000Z', + wallet_address: null, + social_causes: ['ANIMAL_RIGHTS', 'BIODIVERSITY', 'CLIMATE_CHANGE', 'CORRUPTION', 'OTHER'], + proofspace_connect_id: null, + phone: '8073864852', + address: null, + avatar: null, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: '+81', + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: 'dc573b9e-fa04-4112-9ba8-4f2bf53af508', + username: 'krishantha1704', + first_name: 'Krishantha', + last_name: 'Karunarathna', + city: null, + country: null, + geoname_id: null, + mission: null, + bio: null, + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: [], + followers: 0, + followings: 0, + created_at: '2023-06-12T11:18:37.105Z', + wallet_address: null, + social_causes: null, + proofspace_connect_id: null, + phone: null, + address: null, + avatar: { + id: 'b88fc4c1-4e93-4b3d-8f52-71dbe98f0ef2', + identity_id: 'dc573b9e-fa04-4112-9ba8-4f2bf53af508', + filename: 'Image.png', + url: 'https://storage.googleapis.com/socious-gcs/fff70b59e19d07f5f80aa7d0721d440b.png', + created_at: '2023-06-12T11:25:18.060813+00:00', + }, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: null, + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: '0959adc5-6ff2-467f-9e50-43d156164035', + username: 'ishantagarwal326861', + first_name: 'Ishant', + last_name: 'Agarwal', + city: 'Gurgaon, State of Haryāna', + country: 'IN', + geoname_id: 1270642, + mission: null, + bio: null, + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: [ + 'AGILE_METHODOLOGIES', + 'AWS', + 'CSS', + 'GIT', + 'HTML', + 'JAVASCRIPT', + 'JSON', + 'REACT.JS', + 'REST_API', + 'ENGINEERING', + ], + followers: 0, + followings: 0, + created_at: '2023-07-19T05:08:27.559Z', + wallet_address: null, + social_causes: ['ANIMAL_RIGHTS', 'BLACK_LIVES_MATTER', 'CLIMATE_CHANGE', 'EDUCATION', 'GENDER_EQUALITY'], + proofspace_connect_id: null, + phone: null, + address: null, + avatar: null, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: null, + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: '09eb2184-72e1-4a10-9c0d-3ce53a35acf6', + username: 'prashanttrehan137744', + first_name: 'Prashant', + last_name: 'T', + city: null, + country: null, + geoname_id: null, + mission: null, + bio: null, + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: [], + followers: 0, + followings: 0, + created_at: '2023-09-05T19:42:35.645Z', + wallet_address: null, + social_causes: null, + proofspace_connect_id: null, + phone: null, + address: null, + avatar: null, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: null, + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: 'b3e49c94-1b2c-4d57-aef7-69a323fea31b', + username: 'gaikwadshantanu0047622', + first_name: 'Shantanu', + last_name: 'Gaikwad', + city: null, + country: null, + geoname_id: null, + mission: null, + bio: null, + impact_points: 0, + open_to_work: true, + open_to_volunteer: false, + skills: [], + followers: 0, + followings: 0, + created_at: '2023-09-27T12:24:26.336Z', + wallet_address: null, + social_causes: null, + proofspace_connect_id: null, + phone: null, + address: null, + avatar: null, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: null, + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: '2e101596-46af-4830-b720-2b1a4aa29450', + username: 'hashantha', + first_name: 'hashantha', + last_name: 'wickramasinghe', + city: null, + country: null, + geoname_id: null, + mission: null, + bio: null, + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: [], + followers: 0, + followings: 0, + created_at: '2024-07-18T03:23:04.399Z', + wallet_address: null, + social_causes: null, + proofspace_connect_id: null, + phone: null, + address: null, + avatar: null, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: null, + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: '38a23ed6-daa2-47ab-aa66-da7e7afef637', + username: 'ishant.27june8693', + first_name: 'Ishant', + last_name: 'Sahu', + city: null, + country: null, + geoname_id: null, + mission: null, + bio: null, + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: [], + followers: 0, + followings: 0, + created_at: '2023-08-25T06:12:26.177Z', + wallet_address: null, + social_causes: null, + proofspace_connect_id: null, + phone: null, + address: null, + avatar: null, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: null, + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: '15d4e6e6-24cc-4d95-8322-9357b867299b', + username: 'rcsnishant20009124', + first_name: 'Nishant', + last_name: 'Sharma', + city: null, + country: null, + geoname_id: null, + mission: null, + bio: null, + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: [], + followers: 0, + followings: 0, + created_at: '2023-09-08T04:02:34.577Z', + wallet_address: null, + social_causes: null, + proofspace_connect_id: null, + phone: null, + address: null, + avatar: null, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: null, + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: '1cb25a4e-cbba-4e26-a29e-2f325e0653bc', + username: 'prashantco1113016', + first_name: 'Prashant', + last_name: 'Singh', + city: null, + country: null, + geoname_id: null, + mission: null, + bio: null, + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: [], + followers: 0, + followings: 0, + created_at: '2023-09-08T05:36:21.544Z', + wallet_address: null, + social_causes: null, + proofspace_connect_id: null, + phone: null, + address: null, + avatar: null, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: null, + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: 'ff1d33ce-1269-4f15-a1d9-4f6e7174b7c1', + username: 'prashant-tribhuvan1978', + first_name: 'prashant', + last_name: 'tribhuvan', + city: 'Mumbai', + country: 'IN', + geoname_id: null, + mission: null, + bio: 'Seo with 14 years of experience in digital marketing', + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: ['SEO', 'SOCIAL_MEDIA_MARKETING'], + followers: 0, + followings: 1, + created_at: '2022-08-01T07:27:36.000Z', + wallet_address: null, + social_causes: ['HUMAN_RIGHTS', 'MENTAL', 'ANTI_SEMITISM', 'OTHER', 'ISLAMOPHOBIA'], + proofspace_connect_id: null, + phone: '8097460767', + address: null, + avatar: null, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: '+91', + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: '2c462c84-0323-45cd-809d-3ed84b592215', + username: 'prashant-vijay6167', + first_name: 'Prashant', + last_name: 'Vijay', + city: 'Delhi', + country: 'IN', + geoname_id: null, + mission: null, + bio: 'Experienced marketing and growth expert with proven track record of driving performance and achieving results. Over 12+ years experienced with a focus on user acquisition, growth, app marketing, search engine optimization and social media.', + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: ['DIGITAL_MARKETING', 'MARKETING', 'MARKETING_STRATEGY', 'SOCIAL_MEDIA_MARKETING', 'SEO'], + followers: 4, + followings: 1, + created_at: '2022-04-24T22:37:25.000Z', + wallet_address: null, + social_causes: ['ANIMAL_RIGHTS', 'SUSTAINABLE_ENERGY', 'SUSTAINABILITY', 'NATURAL_DISASTERS', 'CLIMATE_CHANGE'], + proofspace_connect_id: null, + phone: '9873761729', + address: null, + avatar: null, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: '+91', + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: '5c800ad1-f8e7-4353-8177-33eac9c1f412', + username: 'neeshant-pandey5984', + first_name: 'Neeshant', + last_name: 'Pandey', + city: 'Pune', + country: 'IN', + geoname_id: null, + mission: null, + bio: 'I am recent graduate from one of the top institutes of india, IIT hyderbad.I am very passonate about learning new and emerging technologies and I am also a fast learner.I am good at problem solving.I am good at react js, nodejs and have already work on projects which have impact more than 10000 customers and have created more than $200,000 dollars for my current company Saas Labs', + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: ['REACT.JS', 'JAVASCRIPT', 'HTML', 'CSS', 'NODE.JS'], + followers: 0, + followings: 0, + created_at: '2022-08-22T11:39:09.000Z', + wallet_address: null, + social_causes: ['CLIMATE_CHANGE', 'DEPOPULATION', 'GENDER_EQUALITY', 'CIVIC_ENGAGEMENT'], + proofspace_connect_id: null, + phone: '6304755240', + address: null, + avatar: { + id: '87b8c57d-8c08-40d9-905d-3efe4236e3f7', + identity_id: '5c800ad1-f8e7-4353-8177-33eac9c1f412', + filename: 'CF789628-BA29-4417-87B5-9B6819602185_J6cT67yu.png', + url: 'https://storage.googleapis.com/socious-gcs/1661168793/CF789628-BA29-4417-87B5-9B6819602185_J6cT67yu.png', + created_at: '2022-10-10T07:20:57.935185+00:00', + }, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: '+91', + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: 'a2c8c47c-aec2-4dbf-9aba-af39acd67c4b', + username: 'prashantco111-sociou5713', + first_name: null, + last_name: null, + city: null, + country: null, + geoname_id: null, + mission: null, + bio: null, + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: null, + followers: 0, + followings: 0, + created_at: '2023-09-08T05:34:07.679Z', + wallet_address: null, + social_causes: null, + proofspace_connect_id: null, + phone: null, + address: null, + avatar: null, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: null, + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: '73e5304c-6e33-4b08-94a4-cf4d8a882681', + username: 'nishantmadhav241878', + first_name: null, + last_name: null, + city: null, + country: null, + geoname_id: null, + mission: null, + bio: null, + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: null, + followers: 0, + followings: 0, + created_at: '2023-09-27T10:18:02.977Z', + wallet_address: null, + social_causes: null, + proofspace_connect_id: null, + phone: null, + address: null, + avatar: null, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: null, + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: 'b0320218-636f-40ac-beb4-f73ca9c363b8', + username: 'shantisaghoolian1065', + first_name: null, + last_name: null, + city: null, + country: null, + geoname_id: null, + mission: null, + bio: null, + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: null, + followers: 0, + followings: 0, + created_at: '2025-03-30T06:16:24.869Z', + wallet_address: null, + social_causes: null, + proofspace_connect_id: null, + phone: null, + address: null, + avatar: null, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: null, + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + { + id: '0ca697eb-d259-4b49-8f84-537f30928315', + username: 'shant2078', + first_name: null, + last_name: null, + city: null, + country: null, + geoname_id: null, + mission: null, + bio: null, + impact_points: 0, + open_to_work: false, + open_to_volunteer: false, + skills: null, + followers: 0, + followings: 0, + created_at: '2025-03-29T20:04:30.913Z', + wallet_address: null, + social_causes: null, + proofspace_connect_id: null, + phone: null, + address: null, + avatar: null, + cover_image: null, + reported: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + mobile_country_code: null, + identity_verified: false, + is_contributor: null, + events: null, + portfolios: null, + certificates: null, + recommendations: null, + languages: null, + experiences: null, + educations: null, + }, + ], +}; + +export const SEARCH_ORGANIZATIONS = { + page: 1, + limit: 20, + total_count: 5201, + items: [ + { + id: '62884a48-ef55-4fa9-b0e8-bd59ca320fbc', + name: 'American Anthropological Association', + bio: 'Areas of focus: \n Organization type: NONPROFIT\n Organization url: https://www.idealist.org/en/nonprofit/82b70b3db3f848109c69ba609e38d547-american-anthropological-association-arlington', + description: null, + email: null, + phone: null, + city: 'Arlington', + type: 'NONPROFIT', + address: '2300 Clarendon Blvd, Arlington, VA 22201, USA', + website: + 'https://www.idealist.org/en/nonprofit/82b70b3db3f848109c69ba609e38d547-american-anthropological-association-arlington', + created_at: '2023-03-06T13:56:41.435Z', + updated_at: '2023-03-06T13:56:41.435Z', + social_causes: [], + followers: 0, + followings: 0, + country: 'US', + wallet_address: null, + impact_points: 0, + mission: null, + culture: null, + image: { + id: '6bf18ddd-f92c-4e92-b636-7c7fc1ae81c6', + identity_id: '62884a48-ef55-4fa9-b0e8-bd59ca320fbc', + filename: 'logo', + url: 'https://process.filestackapi.com/resize=width:600,height:315,fit:max/quality=value:90/hrd4f2NvQfio54X5KemQ', + created_at: '2023-03-06T13:56:41.439693+00:00', + }, + cover_image: null, + mobile_country_code: null, + created_by: null, + shortname: 'american-anthropological-associa7295', + old_id: null, + status: 'ACTIVE', + search_tsv: + "'/en/nonprofit/82b70b3db3f848109c69ba609e38d547-american-anthropological-association-arlington':18 '22201':25 '2300':20 'american':1,5 'american-anthropological-associa7295':4 'anthropolog':2,6 'area':8 'arlington':19,23 'associ':3 'associa7295':7 'blvd':22 'clarendon':21 'focus':10 'nonprofit':13 'organ':11,14 'type':12 'url':15 'usa':26 'va':24 'www.idealist.org':17 'www.idealist.org/en/nonprofit/82b70b3db3f848109c69ba609e38d547-american-anthropological-association-arlington':16", + other_party_id: null, + other_party_title: null, + other_party_url: null, + geoname_id: null, + verified_impact: false, + hiring: false, + size: null, + industry: null, + did: null, + verified: false, + impact_detected: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + benefits: null, + recommendations: null, + }, + { + id: '98496b56-9bf8-40ef-81b7-49653bf9189a', + name: 'TA Associates', + bio: 'TA Associates invests in technology, healthcare, financial services, consumer, and business services.', + description: null, + email: null, + phone: null, + city: 'Massachusetts', + type: 'OTHER', + address: null, + website: 'http://www.ta.com', + created_at: '2024-05-28T07:58:23.148Z', + updated_at: '2024-05-28T07:58:23.148Z', + social_causes: null, + followers: 0, + followings: 0, + country: 'US', + wallet_address: null, + impact_points: 0, + mission: null, + culture: null, + image: { + id: '8ce703d0-86f0-4508-9e95-16293a47a66a', + identity_id: '98496b56-9bf8-40ef-81b7-49653bf9189a', + filename: 'logo', + url: 'https://images.crunchbase.com/image/upload/t_cb-default-original/v1474650849/lbzkxdx2qwqufwbjcrrp.jpg', + created_at: '2024-05-28T20:43:57.76735+00:00', + }, + cover_image: null, + mobile_country_code: null, + created_by: null, + shortname: 'ta-associates', + old_id: null, + status: 'ACTIVE', + search_tsv: + "'associ':2,5,7 'busi':16 'consum':14 'financi':12 'healthcar':11 'invest':8 'massachusett':18 'servic':13,17 'ta':1,4,6 'ta-associ':3 'technolog':10", + other_party_id: 'f2b4f17e-25cc-9161-0509-eea8ecc3cc24', + other_party_title: 'CRUNCHBASE', + other_party_url: 'http://www.ta.com', + geoname_id: null, + verified_impact: false, + hiring: false, + size: null, + industry: null, + did: null, + verified: false, + impact_detected: false, + following: false, + follower: false, + connection_status: null, + connection_id: null, + benefits: null, + recommendations: null, + }, + ], +}; + +export const SEARCH_SERVICES = { + page: 1, + limit: 20, + total_count: 3, + items: [ + { + id: '9d15c671-2a48-4b9d-9a7f-fbf40e41b3cf', + identity_id: 'd3470a3b-7948-4575-9ac5-8b7ce9a0112c', + description: 'logo', + project_type: null, + project_length: '1_3_DAYS', + payment_currency: '0x082A2027DC16F42d6e69bE8FA13C94C17c910EbE', + payment_range_lower: '2', + payment_range_higher: '2', + experience_level: null, + created_at: '2025-02-04T03:27:22.781Z', + updated_at: '0001-01-01T00:00:00.000Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: null, + payment_scheme: null, + title: 'Logo Design', + expires_at: null, + country: null, + skills: ['DESIGN_THINKING'], + causes_tags: [], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: null, + search_tsv: "'design':2 'logo':1,3", + city: null, + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: '3', + commitment_hours_higher: '3', + geoname_id: null, + job_category_id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + impact_job: true, + promoted: false, + kind: 'SERVICE', + payment_mode: 'CRYPTO', + identity_type: 'users', + identity_meta: { + id: 'd3470a3b-7948-4575-9ac5-8b7ce9a0112c', + city: 'Boston', + name: 'Jessica Hamilton', + email: 'pr@socious.io', + avatar: + 'https://storage.googleapis.com/socious-gcs/1645692562/DD60AF28-E49E-4B31-9302-810314E42363_PeEAj4oS.png', + status: 'ACTIVE', + address: null, + country: 'US', + username: 'jessica-hamilton6090', + open_to_work: false, + is_contributor: null, + wallet_address: '0x042d09d30183F680DC34d3D6942AAC6290A13e15', + identity_verified: false, + open_to_volunteer: false, + }, + job_category: { + id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + name: 'Frontend development', + hourly_wage_dollars: 25, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [ + { + id: 'b157ab82-3996-4f9c-8ef0-a589d6af89fe', + url: 'https://storage.googleapis.com/socious-gcs/2bae7a2e2f1e8231490f4ab8541e11b4.png', + filename: 'Instagram post - 2.png', + }, + ], + applicants: 0, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: '855e7d2f-9739-4f5c-9ac4-2d32b32fbf02', + identity_id: '4b15f797-c7a0-4cb3-8f20-8ec0c3509b0d', + description: 'test', + project_type: null, + project_length: '1_3_DAYS', + payment_currency: '0x082A2027DC16F42d6e69bE8FA13C94C17c910EbE', + payment_range_lower: '200', + payment_range_higher: '200', + experience_level: null, + created_at: '2025-02-04T12:42:46.588Z', + updated_at: '0001-01-01T00:00:00.000Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: null, + payment_scheme: null, + title: 'Logo designer', + expires_at: null, + country: null, + skills: ['DESIGN_THINKING'], + causes_tags: [], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: null, + search_tsv: "'design':2 'logo':1 'test':3", + city: null, + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: '200', + commitment_hours_higher: '200', + geoname_id: null, + job_category_id: 'bc2e14cd-5087-44cd-ad0d-8e6a87a4c35a', + impact_job: true, + promoted: false, + kind: 'SERVICE', + payment_mode: 'CRYPTO', + identity_type: 'users', + identity_meta: { + id: '4b15f797-c7a0-4cb3-8f20-8ec0c3509b0d', + city: 'Tehran', + name: 'Ehsan Mahmoudi', + email: 'me@e-mahmoudi.me', + avatar: 'https://storage.googleapis.com/socious-gcs/79c91b59639296fc3dcaa258920c9b58.jpg', + status: 'ACTIVE', + address: null, + country: 'IR', + username: 'ehsan-mahmoudi9392', + open_to_work: false, + is_contributor: null, + wallet_address: '0x108212C59eE3b73ad771CF96617E6E7C95D4b7cF', + identity_verified: true, + open_to_volunteer: false, + }, + job_category: { + id: 'bc2e14cd-5087-44cd-ad0d-8e6a87a4c35a', + name: 'UX/UI Design', + hourly_wage_dollars: 32, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [], + applicants: 0, + missions: 0, + saved: false, + not_interested: false, + }, + { + id: '04121699-4a8a-4b40-a382-a4d023cef20a', + identity_id: 'd3470a3b-7948-4575-9ac5-8b7ce9a0112c', + description: 'logo', + project_type: null, + project_length: '1_3_DAYS', + payment_currency: 'USD', + payment_range_lower: '3', + payment_range_higher: '3', + experience_level: null, + created_at: '2025-02-06T06:08:53.896Z', + updated_at: '0001-01-01T00:00:00.000Z', + deleted_at: null, + status: 'ACTIVE', + payment_type: null, + payment_scheme: null, + title: 'Logo Design', + expires_at: null, + country: null, + skills: ['DESIGN_THINKING'], + causes_tags: [], + old_id: null, + other_party_id: null, + other_party_title: null, + other_party_url: null, + remote_preference: null, + search_tsv: "'design':2 'logo':1,3", + city: null, + weekly_hours_lower: null, + weekly_hours_higher: null, + commitment_hours_lower: '3', + commitment_hours_higher: '3', + geoname_id: null, + job_category_id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + impact_job: true, + promoted: false, + kind: 'SERVICE', + payment_mode: 'FIAT', + identity_type: 'users', + identity_meta: { + id: 'd3470a3b-7948-4575-9ac5-8b7ce9a0112c', + city: 'Boston', + name: 'Jessica Hamilton', + email: 'pr@socious.io', + avatar: + 'https://storage.googleapis.com/socious-gcs/1645692562/DD60AF28-E49E-4B31-9302-810314E42363_PeEAj4oS.png', + status: 'ACTIVE', + address: null, + country: 'US', + username: 'jessica-hamilton6090', + open_to_work: false, + is_contributor: null, + wallet_address: '0x042d09d30183F680DC34d3D6942AAC6290A13e15', + identity_verified: false, + open_to_volunteer: false, + }, + job_category: { + id: 'fbacde54-88e6-4d17-8aa9-286a716ba12f', + name: 'Frontend development', + hourly_wage_dollars: 25, + created_at: '2022-12-14T13:19:18.541708+00:00', + updated_at: '2022-12-14T13:19:18.541708+00:00', + }, + work_samples: [ + { + id: '62901c60-c707-4f2e-a556-1ed8d356c3ce', + url: 'https://storage.googleapis.com/socious-gcs/3fb3941d3beb4867c5e5bc8d40a1a192.png', + filename: 'TechForImpactSummit_Photos-029 2.png', + }, + ], + applicants: 0, + missions: 0, + saved: false, + not_interested: false, + }, + ], +}; + +export const QUESTIONS = { + questions: [ + { + id: 'ca53a12f-a949-46b1-9e34-8bd933d9a4e2', + project_id: '615be3c0-b294-4901-a208-2409d545959d', + question: 'How did you hear about us?', + required: true, + options: null, + created_at: '2024-05-29T07:26:09.041Z', + updated_at: '2024-05-29T07:26:09.041Z', + old_id: null, + }, + { + id: '4c1046c6-eb47-4db5-9cee-cf9c00020d45', + project_id: '615be3c0-b294-4901-a208-2409d545959d', + question: + 'Why do you want to contribute to our mission? Could you please tell us about your previous experience with social/environmental impact projects if you have any?', + required: true, + options: null, + created_at: '2024-05-29T07:26:09.095Z', + updated_at: '2024-05-29T07:26:09.095Z', + old_id: null, + }, + { + id: 'ff8fd62c-8e6e-4e40-86f8-ff91dcb86f0e', + project_id: '615be3c0-b294-4901-a208-2409d545959d', + question: 'What is your salary expectation? What is your current salary?', + required: true, + options: null, + created_at: '2024-05-29T07:26:09.116Z', + updated_at: '2024-05-29T07:26:09.116Z', + old_id: null, + }, + { + id: '2d1d66ac-91e0-4846-a846-e3575460ac98', + project_id: '615be3c0-b294-4901-a208-2409d545959d', + question: 'Could you share two repositories that best showcase your abilities? (attach public repository links)', + required: null, + options: null, + created_at: '2024-05-29T07:26:09.116Z', + updated_at: '2024-05-29T07:26:09.116Z', + old_id: null, + }, + { + id: 'ba57d1e3-cb76-481b-8d12-edf30e5f53aa', + project_id: '615be3c0-b294-4901-a208-2409d545959d', + question: 'When can you start?', + required: true, + options: null, + created_at: '2024-05-29T07:26:09.122Z', + updated_at: '2024-05-29T07:26:09.122Z', + old_id: null, + }, + ], +}; + +export const NOTIFICATIONS = { + page: 1, + limit: 50, + total_count: 12, + items: [ + { + id: '723022ee-83ed-4f7c-b119-13f006d4cbd9', + type: 'CHAT', + ref_id: 'eb19f03b-b08a-4177-a9d8-2d8059899060', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: 'eb19f03b-b08a-4177-a9d8-2d8059899060', + body: { + body: 'OrganizationTest sent you a new message', + title: 'New Message', + }, + text: 'test test', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + created_at: '2025-02-27T10:59:24.278Z', + }, + refId: 'eb19f03b-b08a-4177-a9d8-2d8059899060', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + follower: false, + following: false, + created_at: '2025-02-27T13:16:43.884Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-03-05T16:45:26.175Z', + deleted_at: null, + updated_at: '2025-03-05T16:45:26.175Z', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + consolidate_number: 0, + }, + view_at: '2025-03-05T16:45:33.770Z', + read_at: '2025-03-05T16:45:40.341Z', + updated_at: '2025-03-05T16:45:40.341Z', + created_at: '2025-03-05T16:45:26.228Z', + silent: false, + }, + { + id: 'bd5c75ef-9dc0-4516-823c-1dda043060b2', + type: 'CHAT', + ref_id: '7894ed98-c9d5-4a63-84b8-f26681b77db4', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: '7894ed98-c9d5-4a63-84b8-f26681b77db4', + body: { + body: 'OrganizationTest sent you a new message', + title: 'New Message', + }, + text: 'hello shant', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + created_at: '2025-02-27T10:59:24.278Z', + }, + refId: '7894ed98-c9d5-4a63-84b8-f26681b77db4', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + follower: false, + following: false, + created_at: '2025-02-27T13:16:43.884Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-03-05T16:44:08.859Z', + deleted_at: null, + updated_at: '2025-03-05T16:44:08.859Z', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + consolidate_number: 0, + }, + view_at: '2025-03-05T16:44:44.101Z', + read_at: '2025-03-05T16:44:46.662Z', + updated_at: '2025-03-05T16:44:46.662Z', + created_at: '2025-03-05T16:44:08.912Z', + silent: false, + }, + { + id: 'bb12271f-7f3a-4e29-9109-2216f9bcdab7', + type: 'CHAT', + ref_id: 'bc3957da-2306-436f-bfde-00d3977ce668', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: 'bc3957da-2306-436f-bfde-00d3977ce668', + body: { + body: 'OrganizationTest sent you a new message', + title: 'New Message', + }, + text: 'hi', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + created_at: '2025-02-27T10:59:24.278Z', + }, + refId: 'bc3957da-2306-436f-bfde-00d3977ce668', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + follower: false, + following: false, + created_at: '2025-02-27T13:16:43.884Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-03-05T16:43:21.085Z', + deleted_at: null, + updated_at: '2025-03-05T16:43:21.085Z', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + consolidate_number: 0, + }, + view_at: '2025-03-05T16:43:35.235Z', + read_at: '2025-03-05T16:43:49.440Z', + updated_at: '2025-03-05T16:43:49.440Z', + created_at: '2025-03-05T16:43:21.141Z', + silent: false, + }, + { + id: '42c5f1f4-c775-44fa-b2d3-eff308091d7f', + type: 'CHAT', + ref_id: '374fa3f9-1d1b-40d0-9d06-68f814df1a1b', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: '374fa3f9-1d1b-40d0-9d06-68f814df1a1b', + body: { + body: 'imshantik@gmail.com sent you a new message', + title: 'New Message', + }, + text: 'hello organization', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + created_at: '2025-02-27T13:16:43.884Z', + }, + refId: '374fa3f9-1d1b-40d0-9d06-68f814df1a1b', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + follower: false, + following: false, + created_at: '2025-02-27T10:59:24.278Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-03-05T16:42:23.356Z', + deleted_at: null, + updated_at: '2025-03-05T16:42:23.356Z', + identity_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + consolidate_number: 0, + }, + view_at: '2025-03-05T16:42:40.223Z', + read_at: '2025-03-05T16:42:50.706Z', + updated_at: '2025-03-05T16:42:50.706Z', + created_at: '2025-03-05T16:42:23.421Z', + silent: false, + }, + { + id: '36344c02-2f83-4060-ac86-4fd8353eb493', + type: 'OFFER', + ref_id: '592f9af4-22dd-4ae9-b7a1-8d491251e506', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + body: { + body: 'OrganizationTest sent you an offer', + title: 'Have an offer', + }, + type: 'OFFER', + orgin: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + created_at: '2025-02-27T10:59:24.278Z', + }, + refId: '592f9af4-22dd-4ae9-b7a1-8d491251e506', + identity: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + follower: false, + following: false, + created_at: '2025-02-27T13:16:43.884Z', + connection_status: null, + verification_status: null, + }, + parentId: '25e61193-9857-4af0-a146-6e7943894ccd', + consolidate_number: 0, + }, + view_at: '2025-03-05T12:30:58.257Z', + read_at: '2025-03-05T12:31:06.545Z', + updated_at: '2025-03-05T12:31:06.545Z', + created_at: '2025-03-05T12:30:49.217Z', + silent: false, + }, + { + id: 'ea8244c4-0253-47e2-a1ca-1a3f33af66bb', + type: 'APPLICATION', + ref_id: '8843fce6-042e-46dc-b1ae-50bb7ddd5ced', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + body: { + body: 'imshantik@gmail.com applied to your job', + title: 'Job applied', + }, + type: 'APPLICATION', + orgin: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + created_at: '2025-02-27T13:16:43.884Z', + }, + refId: '8843fce6-042e-46dc-b1ae-50bb7ddd5ced', + identity: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + follower: false, + following: false, + created_at: '2025-02-27T10:59:24.278Z', + connection_status: null, + verification_status: null, + }, + parentId: '25e61193-9857-4af0-a146-6e7943894ccd', + consolidate_number: 0, + }, + view_at: '2025-03-05T12:12:49.063Z', + read_at: '2025-03-05T12:13:57.978Z', + updated_at: '2025-03-05T12:13:57.978Z', + created_at: '2025-03-05T12:10:48.703Z', + silent: false, + }, + { + id: '5a45fbc4-04d7-4141-857f-c9ec4f83aa58', + type: 'OFFER', + ref_id: '2da2348c-f5ae-4440-b9df-cd4629f0ecc6', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + body: { + body: 'OrganizationTest sent you an offer', + title: 'Have an offer', + }, + type: 'OFFER', + orgin: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + created_at: '2025-02-27T10:59:24.278Z', + }, + refId: '2da2348c-f5ae-4440-b9df-cd4629f0ecc6', + identity: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + follower: false, + following: false, + created_at: '2025-02-27T13:16:43.884Z', + connection_status: null, + verification_status: null, + }, + parentId: 'ecce2dec-35a2-4a6a-a0d8-155cd898f6b9', + consolidate_number: 0, + }, + view_at: '2025-03-04T09:36:55.895Z', + read_at: '2025-03-04T09:37:08.918Z', + updated_at: '2025-03-04T09:37:08.918Z', + created_at: '2025-03-04T09:36:26.354Z', + silent: false, + }, + { + id: '0655a77e-e65d-4641-8ecf-5460aa651266', + type: 'CHAT', + ref_id: '521a71af-d4f3-4434-9fd4-095965bff6c1', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: '521a71af-d4f3-4434-9fd4-095965bff6c1', + body: { + body: 'OrganizationTest sent you a new message', + title: 'New Message', + }, + text: 'things are nice here', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + created_at: '2025-02-27T10:59:24.278Z', + }, + refId: '521a71af-d4f3-4434-9fd4-095965bff6c1', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + follower: false, + following: false, + created_at: '2025-02-27T13:16:43.884Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-02-28T10:45:03.832Z', + deleted_at: null, + updated_at: '2025-02-28T10:45:03.832Z', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + consolidate_number: 0, + }, + view_at: '2025-02-28T10:45:14.280Z', + read_at: '2025-02-28T10:58:47.888Z', + updated_at: '2025-02-28T10:58:47.888Z', + created_at: '2025-02-28T10:45:04.137Z', + silent: false, + }, + { + id: 'b7363a62-b77f-435d-8c1d-5499ede4830a', + type: 'CHAT', + ref_id: '1c59246b-8632-45db-ae9a-5e575cf9574d', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: '1c59246b-8632-45db-ae9a-5e575cf9574d', + body: { + body: 'imshantik@gmail.com sent you a new message', + title: 'New Message', + }, + text: 'whats good?', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + created_at: '2025-02-27T13:16:43.884Z', + }, + refId: '1c59246b-8632-45db-ae9a-5e575cf9574d', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + follower: false, + following: false, + created_at: '2025-02-27T10:59:24.278Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-02-28T10:38:39.353Z', + deleted_at: null, + updated_at: '2025-02-28T10:38:39.353Z', + identity_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + consolidate_number: 0, + }, + view_at: '2025-02-28T10:38:47.753Z', + read_at: '2025-02-28T10:58:47.888Z', + updated_at: '2025-02-28T10:58:47.888Z', + created_at: '2025-02-28T10:38:39.404Z', + silent: false, + }, + { + id: 'ec72432e-098c-43ae-85a7-fbe31cb35bcf', + type: 'CHAT', + ref_id: '9fb4d3f5-1e6a-44f6-a1b6-67fc6506c7f1', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: '9fb4d3f5-1e6a-44f6-a1b6-67fc6506c7f1', + body: { + body: 'imshantik@gmail.com sent you a new message', + title: 'New Message', + }, + text: 'hi', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + created_at: '2025-02-27T13:16:43.884Z', + }, + refId: '9fb4d3f5-1e6a-44f6-a1b6-67fc6506c7f1', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + follower: false, + following: false, + created_at: '2025-02-27T10:59:24.278Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-02-28T10:36:55.040Z', + deleted_at: null, + updated_at: '2025-02-28T10:36:55.040Z', + identity_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + consolidate_number: 0, + }, + view_at: '2025-02-28T10:37:06.632Z', + read_at: '2025-02-28T10:58:47.888Z', + updated_at: '2025-02-28T10:58:47.888Z', + created_at: '2025-02-28T10:36:55.090Z', + silent: false, + }, + { + id: '07894516-ba0c-4aab-a6eb-e6184bdaab1f', + type: 'CHAT', + ref_id: '09a33391-d6fe-47f1-aeff-f5fb307a0605', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + id: '09a33391-d6fe-47f1-aeff-f5fb307a0605', + body: { + body: 'OrganizationTest sent you a new message', + title: 'New Message', + }, + text: 'hello', + type: 'CHAT', + media: null, + muted: false, + orgin: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + created_at: '2025-02-27T10:59:24.278Z', + }, + refId: '09a33391-d6fe-47f1-aeff-f5fb307a0605', + chat_id: '47909b77-87b4-461d-b242-eb63bd498fab', + replied: false, + identity: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + follower: false, + following: false, + created_at: '2025-02-27T13:16:43.884Z', + connection_status: null, + verification_status: null, + }, + parentId: '47909b77-87b4-461d-b242-eb63bd498fab', + reply_id: null, + created_at: '2025-02-28T10:36:25.925Z', + deleted_at: null, + updated_at: '2025-02-28T10:36:25.925Z', + identity_id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + consolidate_number: 0, + }, + view_at: '2025-02-28T10:36:32.705Z', + read_at: '2025-02-28T10:58:47.888Z', + updated_at: '2025-02-28T10:58:47.888Z', + created_at: '2025-02-28T10:36:25.987Z', + silent: false, + }, + { + id: 'e3a5cfa7-2504-43fd-b5e4-869e6932edef', + type: 'APPLICATION', + ref_id: 'cfb626d1-2bf5-474a-bd78-3ddf41b81669', + user_id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + data: { + body: { + body: 'imshantik@gmail.com applied to your job', + title: 'Job applied', + }, + type: 'APPLICATION', + orgin: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + meta: { + id: '1396c403-1ade-4c40-b0d1-4680059a46c5', + city: 'Tehran', + name: 'OrganizationTest', + email: 'imshantik@gmal.com', + image: null, + hiring: false, + status: 'ACTIVE', + address: null, + country: 'IR', + mission: null, + verified: false, + shortname: 'organizationtest', + description: null, + wallet_address: null, + verified_impact: false, + }, + type: 'organizations', + created_at: '2025-02-27T13:16:43.884Z', + }, + refId: 'cfb626d1-2bf5-474a-bd78-3ddf41b81669', + identity: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + meta: { + id: '035f724e-5824-4129-8ed6-96c6dda81a3a', + city: null, + name: null, + email: 'imshantik@gmail.com', + avatar: null, + status: 'ACTIVE', + address: null, + country: null, + username: 'imshantik5140', + open_to_work: true, + is_contributor: null, + wallet_address: null, + identity_verified: false, + open_to_volunteer: false, + }, + type: 'users', + follower: false, + following: false, + created_at: '2025-02-27T10:59:24.278Z', + connection_status: null, + verification_status: null, + }, + parentId: 'ecce2dec-35a2-4a6a-a0d8-155cd898f6b9', + consolidate_number: 0, + }, + view_at: '2025-02-28T10:24:00.022Z', + read_at: '2025-02-28T10:58:47.888Z', + updated_at: '2025-02-28T10:58:47.888Z', + created_at: '2025-02-28T10:23:52.952Z', + silent: false, + }, + ], +}; diff --git a/cypress/e2e/search/search-job.cy.ts b/cypress/e2e/search/search-job.cy.ts new file mode 100644 index 000000000..13f8852d1 --- /dev/null +++ b/cypress/e2e/search/search-job.cy.ts @@ -0,0 +1,127 @@ +import { ORGS_DETAIL, SEARCH_RESULT, SEARCH_RESULT_DETAIL, SEARCHED_JOBS, QUESTIONS, NOTIFICATIONS } from './mocks'; +import { + API_SERVER, + APP_URL, + CITY, + FIRSTNAME, + LASTNAME, + ORGANIZATION_EMAIL, + ORGANIZATION_USERNAME, + USERNAME, +} from '../authentication/constants'; +import { PROJECTS, SKILLS } from '../authentication/mocks'; +import { generateRandomEmail, OrganizationUser, User } from '../authentication/utilities'; + +const SIGNINGUP_EMAIL = generateRandomEmail(); +const user = new User(FIRSTNAME, LASTNAME, SIGNINGUP_EMAIL, USERNAME); + +const SEARCH_KEYWORD = 'development'; + +const socialCauses = ['Health', 'Security', 'Bullying']; +const organizationUser = new OrganizationUser( + FIRSTNAME, + LASTNAME, + SIGNINGUP_EMAIL, + USERNAME, + ORGANIZATION_EMAIL, + ORGANIZATION_USERNAME, + CITY, + socialCauses, +); + +describe('search bar test automation for jobs', () => { + beforeEach(() => { + //====================general interceptions===================// + cy.intercept('GET', `${API_SERVER}/projects*t=*&page=*&status=*&limit=*`, req => { + req.reply(200, PROJECTS); + }).as('getProjects'); + + cy.intercept('GET', `${API_SERVER}/identities*t=*`, req => { + req.reply(user.getIdentity()); + }).as('getIdentities'); + + cy.intercept('POST', `https://pulse.walletconnect.org/batch*projectId=*&st=*&sv=*`, req => { + req.reply(200); + }); + + cy.intercept( + 'GET', + `https://explorer-api.walletconnect.com/w3m/v1/getDesktopListings*projectId=*&sdkType=*&sdkVersion=*&page*&entries=*&version=*`, + req => { + req.reply(200); + }, + ); + + cy.intercept('GET', `${API_SERVER}/skills*t=*&limit=*`, req => { + req.reply(200, SKILLS); + }).as('getSkills'); + + cy.intercept('GET', `${API_SERVER}/notifications*t=*&page=*&limit=*`, req => { + req.reply(200, NOTIFICATIONS); + }).as('getNotification'); + + cy.intercept('GET', `${API_SERVER}/user/*/recommend/jobs*t=*`, req => { + req.reply(200, { page: 1, limit: 10, total_count: 0, items: [] }); + }).as('getRecommendedJobs'); + + cy.intercept('GET', `${API_SERVER}/chats/unreads/counts*t=*`, req => { + req.reply(200, { count: 1 }); + }).as('getUnreadCounts'); + + //====================== interceptions ================// + cy.intercept('POST', `${API_SERVER}/search/v2?page=1&limit=20`, req => { + req.reply(200, SEARCHED_JOBS); + }); + cy.intercept('GET', `${API_SERVER}/search/v2?page=1&limit=20`, req => { + req.reply(200, SEARCHED_JOBS); + }); + + cy.intercept('POST', `${API_SERVER}/search/v2?limit=10&page=*`, req => { + req.reply(200, SEARCH_RESULT); + }).as('postSearch'); + + //===============search detail ==============// + cy.intercept('GET', `${API_SERVER}/projects/*?t=*`, req => { + req.reply(200, SEARCH_RESULT_DETAIL); + }).as('searchDetail'); + cy.intercept('GET', `${API_SERVER}/jobs/projects/*?t=*`, req => { + req.reply(200, SEARCH_RESULT_DETAIL); + }).as('searchDetail'); + cy.intercept('GET', `${API_SERVER}/orgs/*?t=*`, req => { + req.reply(200, ORGS_DETAIL); + }).as('orgsDetail'); + + cy.intercept('GET', `${API_SERVER}/jobs/identities?t=*`, req => { + req.reply(200, user.getIdentity()); + }).as('getreadMoreIdentities'); + + cy.intercept('GET', `${API_SERVER}/jobs/identities?t=*`, req => { + req.reply(200, organizationUser.getIdentity()); + }).as('getApplicants'); + cy.intercept('GET', `${API_SERVER}/projects/*/questions?t=*`, req => { + req.reply(200, QUESTIONS); + }).as('getApplicants'); + }); + + it('user naviagatios to dashboard and searches for a DEVELOPMENT job and chooses from the suggestion', () => { + cy.visit(`${APP_URL}jobs`); + cy.url().should('contain', '/jobs'); + cy.contains('Find work that matters to you and the world').should('be.visible'); + + cy.get('#search-input').click(); + cy.get('#search-modal').type('development'); + cy.get('[data-testid="search-result"]').should('exist'); + cy.get('[data-testid="search-result"]').first().click(); + }); + it('user naviagatios to dashboard and searches for a DEVELOPMENT job', () => { + cy.visit(`${APP_URL}jobs`); + cy.url().should('contain', '/jobs'); + cy.contains('Find work that matters to you and the world').should('be.visible'); + + cy.get('#search-input').click(); + cy.get('#search-modal').type('development{enter}'); + cy.wait('@postSearch'); + + cy.contains(`Search for ${SEARCH_KEYWORD}`); + }); +}); diff --git a/cypress/fixtures/confirm.html b/cypress/fixtures/confirm.html new file mode 100644 index 000000000..82acbd406 --- /dev/null +++ b/cypress/fixtures/confirm.html @@ -0,0 +1,154 @@ + + + + + + + + Socious ID | + + + + + + + + + + +
+
+
+ + + +
+

Sign in with Socious ID

+ Choose an account + + + +
+
+ + + + + +
+
+
+
+ + + diff --git a/cypress/fixtures/login.html b/cypress/fixtures/login.html new file mode 100644 index 000000000..e708f874c --- /dev/null +++ b/cypress/fixtures/login.html @@ -0,0 +1,196 @@ + + + + + + + + + Socious ID | + + + + + + + + + + + + +
+
+
+ + + +
+

Sign in with Socious ID

+ Choose an account + + + +
+
+ + + +
+
+
+
+ + + + + diff --git a/cypress/fixtures/session.html b/cypress/fixtures/session.html new file mode 100644 index 000000000..4731b5841 --- /dev/null +++ b/cypress/fixtures/session.html @@ -0,0 +1,127 @@ + + + + + + + Socious + + + + + + +
+ + + + + + diff --git a/eslint.config.mjs b/eslint.config.mjs index cdc45decc..572d4b3f8 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -48,6 +48,7 @@ export default defineConfig([ rules: { 'i18next/no-literal-string': 2, '@typescript-eslint/no-explicit-any': 1, + '@typescript-eslint/no-unused-expressions': 0, semi: 'error', 'eol-last': ['error', 'always'], 'react/react-in-jsx-scope': 'off', diff --git a/ios/App/App/capacitor.config.json b/ios/App/App/capacitor.config.json index 616cd038e..35a0f67ae 100644 --- a/ios/App/App/capacitor.config.json +++ b/ios/App/App/capacitor.config.json @@ -20,10 +20,10 @@ } }, "packageClassList": [ - "SignInWithApple", "FirebaseMessagingPlugin", "ActionSheetPlugin", "AppPlugin", + "CAPBrowserPlugin", "CAPCameraPlugin", "DialogPlugin", "HapticsPlugin", diff --git a/ios/App/App/public/index.html b/ios/App/App/public/index.html index 0331449c5..ee46c2a4a 100644 --- a/ios/App/App/public/index.html +++ b/ios/App/App/public/index.html @@ -5,8 +5,8 @@ Socious - - + + diff --git a/ios/App/Podfile b/ios/App/Podfile index 746b69c4a..95f24d6ad 100644 --- a/ios/App/Podfile +++ b/ios/App/Podfile @@ -11,10 +11,10 @@ install! 'cocoapods', :disable_input_output_paths => true def capacitor_pods pod 'Capacitor', :path => '../../node_modules/@capacitor/ios' pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios' - pod 'CapacitorCommunityAppleSignIn', :path => '../../node_modules/@capacitor-community/apple-sign-in' pod 'CapacitorFirebaseMessaging', :path => '../../node_modules/@capacitor-firebase/messaging' pod 'CapacitorActionSheet', :path => '../../node_modules/@capacitor/action-sheet' pod 'CapacitorApp', :path => '../../node_modules/@capacitor/app' + pod 'CapacitorBrowser', :path => '../../node_modules/@capacitor/browser' pod 'CapacitorCamera', :path => '../../node_modules/@capacitor/camera' pod 'CapacitorDialog', :path => '../../node_modules/@capacitor/dialog' pod 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics' diff --git a/package-lock.json b/package-lock.json index 68eba1b3f..c21faf227 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,19 +9,20 @@ "version": "8.1.2", "dependencies": { "@capacitor-firebase/messaging": "^7.2.0", - "@capacitor/action-sheet": "^7.0.1", + "@capacitor/action-sheet": "^7.0.2", "@capacitor/android": "^7.4.2", "@capacitor/app": "^7.0.1", - "@capacitor/camera": "^7.0.1", - "@capacitor/core": "^7.4.1", + "@capacitor/browser": "^7.0.2", + "@capacitor/camera": "^7.0.2", + "@capacitor/core": "^7.4.2", "@capacitor/dialog": "^7.0.1", "@capacitor/haptics": "^7.0.1", - "@capacitor/ios": "^7.2.0", + "@capacitor/ios": "^7.4.3", "@capacitor/preferences": "^7.0.1", "@capacitor/push-notifications": "^7.0.1", - "@capacitor/toast": "^7.0.1", - "@capgo/capacitor-social-login": "^7.6.3", - "@datadog/browser-rum": "^6.7.0", + "@capacitor/toast": "^7.0.2", + "@capgo/capacitor-social-login": "^7.11.4", + "@datadog/browser-rum": "^6.19.0", "@emoji-mart/react": "^1.1.1", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", @@ -29,26 +30,25 @@ "@ionic/pwa-elements": "^3.3.0", "@mui/material": "^7.0.2", "@mui/x-date-pickers": "^8.2.0", - "@rainbow-me/rainbowkit": "^2.2.4", "@reduxjs/toolkit": "^2.8.1", - "@reown/appkit": "^1.7.3", - "@reown/appkit-adapter-wagmi": "^1.7.11", + "@reown/appkit": "^1.8.2", + "@reown/appkit-adapter-wagmi": "^1.7.17", "@storybook/addon-designs": "^8.2.1", - "@stripe/stripe-js": "^7.4.0", - "@tanstack/react-query": "^5.80.7", + "@stripe/stripe-js": "^7.9.0", + "@tanstack/react-query": "^5.83.0", "@tanstack/react-table": "^8.21.3", "@web3modal/ethers": "^5.1.11", - "axios": "^1.10.0", + "axios": "^1.12.2", "cardano-bridge": "github:socious-io/cardano-bridge#v0.0.6", "country-flag-icons": "^1.5.19", - "dotenv": "^16.5.0", - "ethers": "^6.14.0", + "dotenv": "^17.2.3", + "ethers": "^6.15.0", "firebase": "^11.10.0", - "i18next-browser-languagedetector": "^8.1.0", + "i18next-browser-languagedetector": "^8.2.0", "iso-country-currency": "^0.7.2", - "js-base64": "^3.7.7", + "js-base64": "^3.7.8", "js-cookie": "^3.0.5", - "markdown-to-jsx": "^7.7.6", + "markdown-to-jsx": "^7.7.12", "moment": "^2.30.1", "qrcode.react": "^4.2.0", "ramda": "^0.31.3", @@ -61,29 +61,29 @@ "react-google-recaptcha": "^3.1.0", "react-helmet": "^6.1.0", "react-hook-form": "^7.58.0", - "react-i18next": "^15.5.1", + "react-i18next": "^15.7.3", "react-infinite-scroller": "^1.2.6", "react-intersection-observer": "^9.16.0", "react-otp-input": "^3.1.1", "react-qr-code": "^2.0.18", "react-redux": "^9.2.0", "react-router-dom": "^7.5.3", - "react-select": "^5.10.1", + "react-select": "^5.10.2", "socket.io-client": "^4.8.1", "ssi-auth-lib": "^0.0.12", "uuid": "^11.1.0", "viem": "^2.31.7", "vite-plugin-node-polyfills": "^0.24.0", "vite-tsconfig-paths": "^5.1.4", - "wagmi": "^2.15.6", - "yup": "^1.6.1" + "wagmi": "^2.17.1", + "yup": "^1.7.0" }, "devDependencies": { - "@babel/core": "^7.27.1", + "@babel/core": "^7.28.0", "@capacitor/assets": "^3.0.5", - "@capacitor/cli": "^7.2.0", + "@capacitor/cli": "^7.4.2", "@chromatic-com/storybook": "^3.2.6", - "@eslint/compat": "^1.2.9", + "@eslint/compat": "^1.3.2", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.28.0", "@storybook/addon-a11y": "^8.6.12", @@ -96,10 +96,10 @@ "@storybook/react": "^8.6.12", "@storybook/react-vite": "^8.6.12", "@storybook/test": "^8.6.12", - "@swc/core": "^1.11.24", + "@swc/core": "^1.13.3", "@swc/jest": "^0.2.38", "@testing-library/dom": "^10.4.0", - "@testing-library/jest-dom": "^6.6.3", + "@testing-library/jest-dom": "^6.6.4", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@trapezedev/configure": "^7.1.3", @@ -112,35 +112,35 @@ "@types/react-helmet": "^6.1.11", "@types/react-infinite-scroller": "^1.2.5", "@typescript-eslint/eslint-plugin": "^8.31.1", - "@typescript-eslint/parser": "^8.35.0", - "@vitejs/plugin-react-swc": "^3.10.0", + "@typescript-eslint/parser": "^8.45.0", + "@vitejs/plugin-react-swc": "^3.11.0", "autoprefixer": "^10.4.21", "babel-loader": "^10.0.0", - "cypress": "^14.3.3", + "cypress": "^14.5.4", "cypress-file-upload": "^5.0.8", - "eslint": "^9.31.0", - "eslint-config-prettier": "^10.1.5", - "eslint-plugin-cypress": "^4.3.0", - "eslint-plugin-i18next": "^6.1.1", + "eslint": "^9.34.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-cypress": "^5.1.1", + "eslint-plugin-i18next": "^6.1.3", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsdoc": "^51.0.1", "eslint-plugin-jsx-a11y": "^6.10.2", - "eslint-plugin-prettier": "^5.5.1", + "eslint-plugin-prettier": "^5.5.4", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-storybook": "^9.0.7", - "globals": "^16.0.0", + "globals": "^16.4.0", "husky": "^9.1.7", "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", - "lint-staged": "^16.0.0", - "postcss": "^8.5.4", - "prettier": "^3.5.3", + "jest-environment-jsdom": "^30.1.2", + "lint-staged": "^16.2.3", + "postcss": "^8.5.6", + "prettier": "^3.6.2", "sass": "^1.87.0", "storybook": "^8.6.14", "tailwindcss": "^3.4.17", - "ts-jest": "^29.3.4", + "ts-jest": "^29.4.1", "tsc-files": "^1.1.4", "typescript": "^5.8.3", "vite": "^6.3.5", @@ -185,6 +185,27 @@ "node": ">=6.0.0" } }, + "node_modules/@asamuzakjp/css-color": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", + "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.3", + "@csstools/css-color-parser": "^3.0.9", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -209,21 +230,21 @@ } }, "node_modules/@babel/core": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.3.tgz", - "integrity": "sha512-hyrN8ivxfvJ4i0fIJuV4EOlV0WDMz5Ui4StRTgVaAvWeiRCilXgwVvxJKtFQ3TKtHgJscB2YiXKGNJuVwhQMtA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", + "@babel/generator": "^7.28.0", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.3", - "@babel/parser": "^7.27.3", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.27.3", - "@babel/types": "^7.27.3", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -239,15 +260,15 @@ } }, "node_modules/@babel/generator": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.3.tgz", - "integrity": "sha512-xnlJYj5zepml8NXtjkG0WquFUv8RskFqyFcVgTBp5k+NaA/8uw/K+OSVf8AMGw5e9HKP2ETd5xpK5MLZQD6b4Q==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.3", - "@babel/types": "^7.27.3", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -270,6 +291,15 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-module-imports": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", @@ -337,25 +367,25 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.3.tgz", - "integrity": "sha512-h/eKy9agOya1IGuLaZ9tEUgz+uIRXcbtOhRtUyyMf8JFmn1iT13vnl/IGVWSkdOCG/pC57U4S1jnAabAavTMwg==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.2.tgz", + "integrity": "sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==", "license": "MIT", "dependencies": { "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3" + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.3.tgz", - "integrity": "sha512-xyYxRj6+tLNDTWi0KCBcZ9V7yg3/lwL9DWh9Uwh/RIVlIfFidggcgxKX3GCXwCiswwcGRawBKbEg2LG/Y8eJhw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.3" + "@babel/types": "^7.28.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -616,9 +646,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.3.tgz", - "integrity": "sha512-7EYtGezsdiDMyY80+65EzwiGmcJqpmcZCojSXaRgdrBaGtWTgDZKq69cPIVped6MkIM78cTQ2GOiEYjwOlG4xw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz", + "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -639,36 +669,27 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.3.tgz", - "integrity": "sha512-lId/IfN/Ye1CIu8xG7oKBHXd2iNb2aW1ilPszzGcJug6M8RCKfVNcYhpI5+bMvFYjK7lXIM0R+a+6r8xhHp2FQ==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.3", - "@babel/parser": "^7.27.3", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", - "@babel/types": "^7.27.3", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/types": "^7.28.0", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/types": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.3.tgz", - "integrity": "sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -684,6 +705,207 @@ "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==", "license": "Apache-2.0" }, + "node_modules/@base-org/account": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@base-org/account/-/account-1.1.1.tgz", + "integrity": "sha512-IfVJPrDPhHfqXRDb89472hXkpvJuQQR7FDI9isLPHEqSYt/45whIoBxSPgZ0ssTt379VhQo4+87PWI1DoLSfAQ==", + "license": "Apache-2.0", + "dependencies": { + "@noble/hashes": "1.4.0", + "clsx": "1.2.1", + "eventemitter3": "5.0.1", + "idb-keyval": "6.2.1", + "ox": "0.6.9", + "preact": "10.24.2", + "viem": "^2.31.7", + "zustand": "5.0.3" + } + }, + "node_modules/@base-org/account/node_modules/@noble/curves": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@base-org/account/node_modules/@noble/curves/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/@base-org/account/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@base-org/account/node_modules/@scure/bip32": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", + "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.9.0", + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@base-org/account/node_modules/@scure/bip32/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/@base-org/account/node_modules/@scure/bip39": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", + "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@base-org/account/node_modules/@scure/bip39/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/@base-org/account/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@base-org/account/node_modules/idb-keyval": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", + "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==", + "license": "Apache-2.0" + }, + "node_modules/@base-org/account/node_modules/ox": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", + "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@base-org/account/node_modules/ox/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/@base-org/account/node_modules/preact": { + "version": "10.24.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.2.tgz", + "integrity": "sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/@base-org/account/node_modules/zustand": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz", + "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } + }, "node_modules/@basementuniverse/commonjs": { "version": "1.2.10", "resolved": "https://registry.npmjs.org/@basementuniverse/commonjs/-/commonjs-1.2.10.tgz", @@ -739,6 +961,16 @@ "multiformats": "^13.0.0" } }, + "node_modules/@bitcoinerlab/secp256k1": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@bitcoinerlab/secp256k1/-/secp256k1-1.2.0.tgz", + "integrity": "sha512-jeujZSzb3JOZfmJYI0ph1PVpCRV5oaexCgy+RvCXV8XlY+XFB/2n3WOcvBsKLsOw78KYgnQrQWb2HrKE4be88Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@noble/curves": "^1.7.0" + } + }, "node_modules/@bufbuild/protobuf": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.10.1.tgz", @@ -771,9 +1003,9 @@ } }, "node_modules/@capacitor/action-sheet": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@capacitor/action-sheet/-/action-sheet-7.0.1.tgz", - "integrity": "sha512-0ROMy6S62B/Ci9nZ7CRxhkK2LS0JBmhN+sxOXQOtntd2WHKW7+8J+VAtu8vk0LgvTjj7SjzJnicYC75KUjwLWw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@capacitor/action-sheet/-/action-sheet-7.0.2.tgz", + "integrity": "sha512-x134ZNaik6YhT6qt8U2SHT8d1KzobidOfVWrFIxAc9QgIWzU7lAtIuS+j6WI9Pn2Dc9PjxCIVpW8Pk1r9PjvnA==", "license": "MIT", "peerDependencies": { "@capacitor/core": ">=7.0.0" @@ -1089,19 +1321,28 @@ "node": ">=4.0" } }, + "node_modules/@capacitor/browser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@capacitor/browser/-/browser-7.0.2.tgz", + "integrity": "sha512-5kySTunCtH+2sezmTjgDfwvspW7GW/hslQECZeLIRM2qefnxjGTc3fmCTeILYK5EuvcxMs+8sF5BhmzzKqOzuQ==", + "license": "MIT", + "peerDependencies": { + "@capacitor/core": ">=7.0.0" + } + }, "node_modules/@capacitor/camera": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@capacitor/camera/-/camera-7.0.1.tgz", - "integrity": "sha512-gDUFsYlhMra5VVOa4iJV6+MQRhp3VXpTLQY4JDATj7UvoZ8Hv4DG8qplPL9ufUFNoR3QbDDnf8+gbQOsKdkDjg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@capacitor/camera/-/camera-7.0.2.tgz", + "integrity": "sha512-1/UbZZ8MSbRTMMvjQHQFJ0cs2ZNURNoyuUex0rAJwECsyHO0I5SRvu7YoMY5qTcRWScBcqT+3QZcJvETtRg7ug==", "license": "MIT", "peerDependencies": { "@capacitor/core": ">=7.0.0" } }, "node_modules/@capacitor/cli": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-7.2.0.tgz", - "integrity": "sha512-RNW9vtYYYSDmOdguYBSW0VpRnG/d6lGydlc9DLrJ7qbSPxFrotTz9IjkM48O+SruUma61DyuSqJttdbay2xSxg==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-7.4.2.tgz", + "integrity": "sha512-ckcRbg/kBSnJsuCTCLzowBxvgDTI+dcIN7LK+Nt71fbaUG3judpF279ymJRrgRDJshFR5D5dfcvTFh5N1z8liA==", "dev": true, "license": "MIT", "dependencies": { @@ -1177,9 +1418,10 @@ "license": "0BSD" }, "node_modules/@capacitor/core": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-7.4.1.tgz", - "integrity": "sha512-0ap4FzPJItaeg3QiiS1WguPNHY2aD67fQ9wr7DojCRzTFuNXQPvFB6lBkqlrVeQyJ9jCw0KV/LXv25oXjDcsyA==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-7.4.2.tgz", + "integrity": "sha512-akCf9A1FUR8AWTtmgGjHEq6LmGsjA2U7igaJ9PxiCBfyxKqlDbuGHrlNdpvHEjV5tUPH3KYtkze6gtFcNKPU9A==", + "license": "MIT", "dependencies": { "tslib": "^2.1.0" } @@ -1203,12 +1445,12 @@ } }, "node_modules/@capacitor/ios": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-7.2.0.tgz", - "integrity": "sha512-MQgRZcXZpbpjN83bjkGrzQd7s3XeHBZplmWf38/msF/siMGJKLrXNmNzmmPIWA5Xpi/aH6UoJFk1wXuU2U+zMg==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-7.4.3.tgz", + "integrity": "sha512-VNm7cHODgh3KK/4ZC2rXU9gBlvHii/mYFLI+XMXwq24nhB679QxHhz+pUuI7PatYoM2q4MAL0NR/dRgehKCaSA==", "license": "MIT", "peerDependencies": { - "@capacitor/core": "^7.2.0" + "@capacitor/core": "^7.4.0" } }, "node_modules/@capacitor/preferences": { @@ -1230,18 +1472,18 @@ } }, "node_modules/@capacitor/toast": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@capacitor/toast/-/toast-7.0.1.tgz", - "integrity": "sha512-3GFhejVwKqUjosYnpQVfq5eml7X6B97jcVpncY75lBDiTlCYJeRanj63OChZPuw1KWudkBTYZMcXdRYWguJdKw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@capacitor/toast/-/toast-7.0.2.tgz", + "integrity": "sha512-BPzxZNI1Qg58/yZzx8Y/iz1m6hBudx+vlbMkfWvcg3Z2Ph62xoSnQXE/28y54yE+c6JzAqH37NZeA8R8p9NW9A==", "license": "MIT", "peerDependencies": { "@capacitor/core": ">=7.0.0" } }, "node_modules/@capgo/capacitor-social-login": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@capgo/capacitor-social-login/-/capacitor-social-login-7.6.3.tgz", - "integrity": "sha512-3XF/10OCp+dnAEGDSWojFNr4nLFfxChqt1wxbolF2ulYeqLP6ISE+z5BDxnAoyRelZO7IF3+57/oswmLDsDepQ==", + "version": "7.11.4", + "resolved": "https://registry.npmjs.org/@capgo/capacitor-social-login/-/capacitor-social-login-7.11.4.tgz", + "integrity": "sha512-EKP9qxYrm3vlVYzy02J+SvqtBf1o1XFoe+nogyRx4Aj3Eyc3KNbSoSo57Cw7uCIyfEhWQou9EZUp6oxtc6tTpw==", "license": "MIT", "peerDependencies": { "@capacitor/core": ">=7.0.0" @@ -2002,10 +2244,125 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@cypress/request": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.8.tgz", - "integrity": "sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.9.tgz", + "integrity": "sha512-I3l7FdGRXluAS44/0NguwWlO83J18p0vlr2FYHrJkWdNYhgVoiYo61IXPqaOsL+vNxU1ZqMACzItGK3/KKDsdw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2015,7 +2372,7 @@ "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~4.0.0", + "form-data": "~4.0.4", "http-signature": "~1.4.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", @@ -2064,22 +2421,22 @@ } }, "node_modules/@datadog/browser-core": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@datadog/browser-core/-/browser-core-6.8.0.tgz", - "integrity": "sha512-fB9KHx0AKVFNGNZXUnoqNqQnkHmp2fSkKY9w3A7Qx263iXsCfLZVz8ZQERDlQIhjK7O320Xead3eHx5P09wSsQ==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@datadog/browser-core/-/browser-core-6.19.0.tgz", + "integrity": "sha512-cyqmTXJlysZ3Tx/ZWm3dnDCUh3BT4ndtkkoBKqgEfqpM6DkUSnEFdVtsiF0gvcAkkqassaCq7OIzKo0vR24Qww==", "license": "Apache-2.0" }, "node_modules/@datadog/browser-rum": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@datadog/browser-rum/-/browser-rum-6.8.0.tgz", - "integrity": "sha512-C9uM/MmAf3tPs74aCqzVZUhDRwV6LATvn7idQHIQdxhXvvb5ejKMF1Lf2R/EQ944Aju5HuBaoofbW8Ie4TAqUg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@datadog/browser-rum/-/browser-rum-6.19.0.tgz", + "integrity": "sha512-eXkAHhAa+4dsbjvAQnl/j0qUAgJgslr1oQwtWOIpCHLedpxegbnN4/27ciz7U0r171KeJNvrKXkJIetNJx1SLQ==", "license": "Apache-2.0", "dependencies": { - "@datadog/browser-core": "6.8.0", - "@datadog/browser-rum-core": "6.8.0" + "@datadog/browser-core": "6.19.0", + "@datadog/browser-rum-core": "6.19.0" }, "peerDependencies": { - "@datadog/browser-logs": "6.8.0" + "@datadog/browser-logs": "6.19.0" }, "peerDependenciesMeta": { "@datadog/browser-logs": { @@ -2088,12 +2445,12 @@ } }, "node_modules/@datadog/browser-rum-core": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@datadog/browser-rum-core/-/browser-rum-core-6.8.0.tgz", - "integrity": "sha512-ODKe4B9MdX+2jnGG8UoUNImrLZ4w7ZokLLREYlWSRuwFANrdpNqZgD3QDeLeA16E+TPSBkOoesj9ZZUyc6Jkwg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@datadog/browser-rum-core/-/browser-rum-core-6.19.0.tgz", + "integrity": "sha512-pRzzaeGnWpORHFmhCJV23cLIlT4LA+ZRBZPBaitN5E3oMHfuwTSuU7LHhGmdBfRCaH3S60rys1bmfNwViUOR1Q==", "license": "Apache-2.0", "dependencies": { - "@datadog/browser-core": "6.8.0" + "@datadog/browser-core": "6.19.0" } }, "node_modules/@ecies/ciphers": { @@ -2724,16 +3081,16 @@ } }, "node_modules/@eslint/compat": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.9.tgz", - "integrity": "sha512-gCdSY54n7k+driCadyMNv8JSPzYLeDVM/ikZRtvtROBpRdFSkS8W9A82MqsaY7lZuwL0wiapgD0NT1xT0hyJsA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.3.2.tgz", + "integrity": "sha512-jRNwzTbd6p2Rw4sZ1CgWRS8YMtqG15YyZf7zvb6gY2rB2u6n+2Z+ELW0GtL0fQgyl0pr4Y/BzBfng/BdsereRA==", "dev": true, "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { - "eslint": "^9.10.0" + "eslint": "^8.40 || 9" }, "peerDependenciesMeta": { "eslint": { @@ -2757,9 +3114,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", - "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", + "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2767,9 +3124,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", - "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2817,9 +3174,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.31.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.31.0.tgz", - "integrity": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==", + "version": "9.34.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.34.0.tgz", + "integrity": "sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==", "dev": true, "license": "MIT", "engines": { @@ -2840,13 +3197,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.1.tgz", - "integrity": "sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.14.0", + "@eslint/core": "^0.15.2", "levn": "^0.4.1" }, "engines": { @@ -3610,6 +3967,79 @@ "integrity": "sha512-DjIZsnL3CyP/yQ/vUYA9cjrD0a/8YXejI5ZmsaOiT16cLfZcTwaCxIN01/ys4jsy+dZCQ/9DnWFn7AEFbiMDaA==", "license": "MIT" }, + "node_modules/@gemini-wallet/core": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@gemini-wallet/core/-/core-0.2.0.tgz", + "integrity": "sha512-vv9aozWnKrrPWQ3vIFcWk7yta4hQW1Ie0fsNNPeXnjAxkbXr2hqMagEptLuMxpEP2W3mnRu05VDNKzcvAuuZDw==", + "license": "MIT", + "dependencies": { + "@metamask/rpc-errors": "7.0.2", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "viem": ">=2.0.0" + } + }, + "node_modules/@gemini-wallet/core/node_modules/@metamask/rpc-errors": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-7.0.2.tgz", + "integrity": "sha512-YYYHsVYd46XwY2QZzpGeU4PSdRhHdxnzkB8piWGvJW2xbikZ3R+epAYEL4q/K8bh9JPTucsUdwRFnACor1aOYw==", + "license": "MIT", + "dependencies": { + "@metamask/utils": "^11.0.1", + "fast-safe-stringify": "^2.0.6" + }, + "engines": { + "node": "^18.20 || ^20.17 || >=22" + } + }, + "node_modules/@gemini-wallet/core/node_modules/@metamask/utils": { + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-11.8.0.tgz", + "integrity": "sha512-EJqiuvVBAjV1vd1kBhmVmRtGfadrBfY3ImcAMjl+8MSSByTB3VNwvlIBLQdp+TwdAomUdenJCx2BvOSQykm8Hg==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.1.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "@types/lodash": "^4.17.20", + "debug": "^4.3.4", + "lodash": "^4.17.21", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": "^18.18 || ^20.14 || >=22" + } + }, + "node_modules/@gemini-wallet/core/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@gemini-wallet/core/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@grpc/grpc-js": { "version": "1.9.15", "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.15.tgz", @@ -4356,6 +4786,206 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jest/environment-jsdom-abstract": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-30.1.2.tgz", + "integrity": "sha512-u8kTh/ZBl97GOmnGJLYK/1GuwAruMC4hoP6xuk/kwltmVWsA9u/6fH1/CsPVGt2O+Wn2yEjs8n1B1zZJ62Cx0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.1.2", + "@jest/fake-timers": "30.1.2", + "@jest/types": "30.0.5", + "@types/jsdom": "^21.1.7", + "@types/node": "*", + "jest-mock": "30.0.5", + "jest-util": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "canvas": "^3.0.0", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/@jest/environment-jsdom-abstract/node_modules/@jest/environment": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.1.2.tgz", + "integrity": "sha512-N8t1Ytw4/mr9uN28OnVf0SYE2dGhaIxOVYcwsf9IInBKjvofAjbFRvedvBBlyTYk2knbJTiEjEJ2PyyDIBnd9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "30.1.2", + "@jest/types": "30.0.5", + "@types/node": "*", + "jest-mock": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/environment-jsdom-abstract/node_modules/@jest/fake-timers": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.1.2.tgz", + "integrity": "sha512-Beljfv9AYkr9K+ETX9tvV61rJTY706BhBUtiaepQHeEGfe0DbpvUA5Z3fomwc5Xkhns6NWrcFDZn+72fLieUnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.0.5", + "@sinonjs/fake-timers": "^13.0.0", + "@types/node": "*", + "jest-message-util": "30.1.0", + "jest-mock": "30.0.5", + "jest-util": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/environment-jsdom-abstract/node_modules/@jest/schemas": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.34.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/environment-jsdom-abstract/node_modules/@jest/types": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.5.tgz", + "integrity": "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "@types/istanbul-reports": "^3.0.4", + "@types/node": "*", + "@types/yargs": "^17.0.33", + "chalk": "^4.1.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/environment-jsdom-abstract/node_modules/@sinclair/typebox": { + "version": "0.34.41", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz", + "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/environment-jsdom-abstract/node_modules/@sinonjs/fake-timers": { + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.1" + } + }, + "node_modules/@jest/environment-jsdom-abstract/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/environment-jsdom-abstract/node_modules/jest-message-util": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.1.0.tgz", + "integrity": "sha512-HizKDGG98cYkWmaLUHChq4iN+oCENohQLb7Z5guBPumYs+/etonmNFlg1Ps6yN9LTPyZn+M+b/9BbnHx3WTMDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.0.5", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "micromatch": "^4.0.8", + "pretty-format": "30.0.5", + "slash": "^3.0.0", + "stack-utils": "^2.0.6" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/environment-jsdom-abstract/node_modules/jest-mock": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.0.5.tgz", + "integrity": "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.0.5", + "@types/node": "*", + "jest-util": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/environment-jsdom-abstract/node_modules/jest-util": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.0.5.tgz", + "integrity": "sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.0.5", + "@types/node": "*", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/environment-jsdom-abstract/node_modules/pretty-format": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", + "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/environment-jsdom-abstract/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/@jest/expect": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", @@ -4417,6 +5047,30 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jest/pattern": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", + "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-regex-util": "30.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/pattern/node_modules/jest-regex-util": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/@jest/reporters": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", @@ -4636,17 +5290,13 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -4658,15 +5308,6 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/source-map": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", @@ -4686,9 +5327,9 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -4713,6 +5354,16 @@ "integrity": "sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ==", "license": "BSD-3-Clause" }, + "node_modules/@lit/react": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@lit/react/-/react-1.0.8.tgz", + "integrity": "sha512-p2+YcF+JE67SRX3mMlJ1TKCSTsgyOVdAwd/nxp3NuV1+Cb6MWALbN6nT7Ld4tpmYofcE5kcaSY1YBB9erY+6fw==", + "license": "BSD-3-Clause", + "optional": true, + "peerDependencies": { + "@types/react": "17 || 18 || 19" + } + }, "node_modules/@lit/reactive-element": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.0.tgz", @@ -5097,6 +5748,7 @@ "version": "0.32.0", "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.32.0.tgz", "integrity": "sha512-WmGAlP1oBuD9hk4CsdlG1WJFuPtYJY+dnTHJMeCyohTWD2GgkcLMUUuvu9lO1/NVzuOoSi1OrnjbuY1O/1NZ1g==", + "optional": true, "dependencies": { "@babel/runtime": "^7.26.0", "@metamask/onboarding": "^1.0.1", @@ -5119,10 +5771,20 @@ "uuid": "^8.3.2" } }, + "node_modules/@metamask/sdk-analytics": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@metamask/sdk-analytics/-/sdk-analytics-0.0.5.tgz", + "integrity": "sha512-fDah+keS1RjSUlC8GmYXvx6Y26s3Ax1U9hGpWb6GSY5SAdmTSIqp2CvYy6yW0WgLhnYhW+6xERuD0eVqV63QIQ==", + "license": "MIT", + "dependencies": { + "openapi-fetch": "^0.13.5" + } + }, "node_modules/@metamask/sdk-communication-layer": { "version": "0.32.0", "resolved": "https://registry.npmjs.org/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.32.0.tgz", "integrity": "sha512-dmj/KFjMi1fsdZGIOtbhxdg3amxhKL/A5BqSU4uh/SyDKPub/OT+x5pX8bGjpTL1WPWY/Q0OIlvFyX3VWnT06Q==", + "optional": true, "dependencies": { "bufferutil": "^4.0.8", "date-fns": "^2.29.3", @@ -5143,6 +5805,7 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "license": "MIT", + "optional": true, "bin": { "uuid": "dist/bin/uuid" } @@ -5151,6 +5814,7 @@ "version": "0.32.0", "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.32.0.tgz", "integrity": "sha512-TFoktj0JgfWnQaL3yFkApqNwcaqJ+dw4xcnrJueMP3aXkSNev2Ido+WVNOg4IIMxnmOrfAC9t0UJ0u/dC9MjOQ==", + "optional": true, "dependencies": { "@paulmillr/qr": "^0.2.1" } @@ -5160,6 +5824,7 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "license": "MIT", + "optional": true, "bin": { "uuid": "dist/bin/uuid" } @@ -5307,6 +5972,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.2.tgz", "integrity": "sha512-JEW4DEtBzfe8HvUYecLU9e6+XJnKDlUAIve8FvPzF3Kzs6Xo/KuZkZJsDH0wJXl/qEZbeeE7edxDNY3kMs39hQ==", + "license": "ISC", "engines": { "node": ">= 18" } @@ -6081,6 +6747,15 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@phosphor-icons/webcomponents": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@phosphor-icons/webcomponents/-/webcomponents-2.1.5.tgz", + "integrity": "sha512-JcvQkZxvcX2jK+QCclm8+e8HXqtdFW9xV4/kk2aL9Y3dJA2oQVt+pzbv1orkumz3rfx4K9mn9fDoMr1He1yr7Q==", + "license": "MIT", + "dependencies": { + "lit": "^3" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -6886,31 +7561,6 @@ "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", "license": "MIT" }, - "node_modules/@rainbow-me/rainbowkit": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@rainbow-me/rainbowkit/-/rainbowkit-2.2.5.tgz", - "integrity": "sha512-UWEffskEeem1HnHolKvR0FO0haA7CYkm1/M3QlKz/K3gc8N1rjLXit9FG3PJ7l/EKn79VQm25mu8ACkNWBI8sA==", - "license": "MIT", - "dependencies": { - "@vanilla-extract/css": "1.15.5", - "@vanilla-extract/dynamic": "2.1.2", - "@vanilla-extract/sprinkles": "1.6.3", - "clsx": "2.1.1", - "qrcode": "1.5.4", - "react-remove-scroll": "2.6.2", - "ua-parser-js": "^1.0.37" - }, - "engines": { - "node": ">=12.4" - }, - "peerDependencies": { - "@tanstack/react-query": ">=5.0.0", - "react": ">=18", - "react-dom": ">=18", - "viem": "2.x", - "wagmi": "^2.9.0" - } - }, "node_modules/@reduxjs/toolkit": { "version": "2.8.2", "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.8.2.tgz", @@ -6938,55 +7588,66 @@ } }, "node_modules/@reown/appkit": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@reown/appkit/-/appkit-1.7.11.tgz", - "integrity": "sha512-CeEWIkD6xqSh1cmTJ9ulODC3DZmtvlnf2Jh2F5+ggoR8w3tamAuj3AW9p1PFuxgp24Umv3o2z27Ilt3h+7YEmQ==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit/-/appkit-1.8.2.tgz", + "integrity": "sha512-nCFMGQX3+XHTmd8pkWtyGRj+INFgeg0sRYxLZKQktvFsiR98BFjP9DQIErIujdk2chRx5mX0gGc5s9OvaRJNyA==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "@reown/appkit-common": "1.7.11", - "@reown/appkit-controllers": "1.7.11", - "@reown/appkit-pay": "1.7.11", - "@reown/appkit-polyfills": "1.7.11", - "@reown/appkit-scaffold-ui": "1.7.11", - "@reown/appkit-ui": "1.7.11", - "@reown/appkit-utils": "1.7.11", - "@reown/appkit-wallet": "1.7.11", - "@walletconnect/types": "2.21.3", - "@walletconnect/universal-provider": "2.21.3", + "@reown/appkit-common": "1.8.2", + "@reown/appkit-controllers": "1.8.2", + "@reown/appkit-pay": "1.8.2", + "@reown/appkit-polyfills": "1.8.2", + "@reown/appkit-scaffold-ui": "1.8.2", + "@reown/appkit-ui": "1.8.2", + "@reown/appkit-utils": "1.8.2", + "@reown/appkit-wallet": "1.8.2", + "@walletconnect/universal-provider": "2.21.7", "bs58": "6.0.0", "semver": "7.7.2", - "valtio": "1.13.2", - "viem": ">=2.31.3" + "valtio": "2.1.5", + "viem": ">=2.33.3" + }, + "optionalDependencies": { + "@lit/react": "1.0.8" } }, "node_modules/@reown/appkit-adapter-wagmi": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@reown/appkit-adapter-wagmi/-/appkit-adapter-wagmi-1.7.11.tgz", - "integrity": "sha512-6L9L1rT4AHV4HAjdqS+QVJHerIxu7AMjoDuff6A1jarXl1OwGrA1H1BIjaiYZnXOvKaKSws5BMXBhl3NdJQ05w==", - "dependencies": { - "@reown/appkit": "1.7.11", - "@reown/appkit-common": "1.7.11", - "@reown/appkit-controllers": "1.7.11", - "@reown/appkit-polyfills": "1.7.11", - "@reown/appkit-scaffold-ui": "1.7.11", - "@reown/appkit-utils": "1.7.11", - "@reown/appkit-wallet": "1.7.11", - "@walletconnect/universal-provider": "2.21.3", - "valtio": "1.13.2" + "version": "1.7.17", + "resolved": "https://registry.npmjs.org/@reown/appkit-adapter-wagmi/-/appkit-adapter-wagmi-1.7.17.tgz", + "integrity": "sha512-QGAomIvnHKA5mISDISKSJESdWGd4LE6c3cJZ46y29Ta+irmALd90nDQQ0nV9FThNXM8te6qNF4coMNwRn4WuYg==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit": "1.7.17", + "@reown/appkit-common": "1.7.17", + "@reown/appkit-controllers": "1.7.17", + "@reown/appkit-polyfills": "1.7.17", + "@reown/appkit-scaffold-ui": "1.7.17", + "@reown/appkit-utils": "1.7.17", + "@reown/appkit-wallet": "1.7.17", + "@walletconnect/universal-provider": "2.21.5", + "valtio": "2.1.5" }, "optionalDependencies": { "@wagmi/connectors": ">=5.7.11" }, "peerDependencies": { "@wagmi/core": ">=2.16.7", - "viem": ">=2.31.3", - "wagmi": ">=2.15.6" + "viem": ">=2.32.0", + "wagmi": ">=2.15.7" } }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@adraffy/ens-normalize": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", + "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", + "license": "MIT" + }, "node_modules/@reown/appkit-adapter-wagmi/node_modules/@noble/ciphers": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", "engines": { "node": "^14.21.3 || >=16" }, @@ -6998,6 +7659,7 @@ "version": "1.9.2", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.2.tgz", "integrity": "sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g==", + "license": "MIT", "dependencies": { "@noble/hashes": "1.8.0" }, @@ -7008,10 +7670,134 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@reown/appkit": { + "version": "1.7.17", + "resolved": "https://registry.npmjs.org/@reown/appkit/-/appkit-1.7.17.tgz", + "integrity": "sha512-gME4Ery7HGTNEGzLckWP7qfD2ec/1UEuUkcGskGeisUnGcAsPH9z2deFFX1szialsgzTNU4/H5ZGdWqZQA8p2w==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.17", + "@reown/appkit-controllers": "1.7.17", + "@reown/appkit-pay": "1.7.17", + "@reown/appkit-polyfills": "1.7.17", + "@reown/appkit-scaffold-ui": "1.7.17", + "@reown/appkit-ui": "1.7.17", + "@reown/appkit-utils": "1.7.17", + "@reown/appkit-wallet": "1.7.17", + "@walletconnect/universal-provider": "2.21.5", + "bs58": "6.0.0", + "semver": "7.7.2", + "valtio": "2.1.5", + "viem": ">=2.32.0" + }, + "optionalDependencies": { + "@lit/react": "1.0.8", + "@reown/appkit-siwx": "1.7.17" + } + }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@reown/appkit-pay": { + "version": "1.7.17", + "resolved": "https://registry.npmjs.org/@reown/appkit-pay/-/appkit-pay-1.7.17.tgz", + "integrity": "sha512-RukQ5oZ+zGzWy9gu4butVcscZ9GB9/h6zmQFXDo9qkAbOicwZKaLR5XMKrjLQIYisu+ODV/ff6NuxnUYs+/r9Q==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.17", + "@reown/appkit-controllers": "1.7.17", + "@reown/appkit-ui": "1.7.17", + "@reown/appkit-utils": "1.7.17", + "lit": "3.3.0", + "valtio": "2.1.5" + } + }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@reown/appkit-siwx": { + "version": "1.7.17", + "resolved": "https://registry.npmjs.org/@reown/appkit-siwx/-/appkit-siwx-1.7.17.tgz", + "integrity": "sha512-frTTDnj5111+ZNNyHmEWeXiX0IWFlRhP240kmxKTamLElc2PdLUfQq/1yX8Y3bUBHryISjcQYzEtWSEI2oRYKA==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@reown/appkit-common": "1.7.17", + "@reown/appkit-controllers": "1.7.17", + "@reown/appkit-scaffold-ui": "1.7.17", + "@reown/appkit-ui": "1.7.17", + "@reown/appkit-utils": "1.7.17", + "bip322-js": "2.0.0", + "bs58": "6.0.0", + "tweetnacl": "1.0.3", + "viem": "2.32.0" + }, + "peerDependencies": { + "lit": "3.3.0" + } + }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@reown/appkit-siwx/node_modules/ox": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.8.1.tgz", + "integrity": "sha512-e+z5epnzV+Zuz91YYujecW8cF01mzmrUtWotJ0oEPym/G82uccs7q0WDHTYL3eiONbTUEvcZrptAKLgTBD3u2A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@adraffy/ens-normalize": "^1.11.0", + "@noble/ciphers": "^1.3.0", + "@noble/curves": "^1.9.1", + "@noble/hashes": "^1.8.0", + "@scure/bip32": "^1.7.0", + "@scure/bip39": "^1.6.0", + "abitype": "^1.0.8", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/@reown/appkit-siwx/node_modules/viem": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.32.0.tgz", + "integrity": "sha512-pHwKXQSyEWX+8ttOQJdU5dSBfYd6L9JxARY/Sx0MBj3uF/Zaiqt6o1SbzjFjQXkNzWSgtxK7H89ZI1SMIA2iLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@noble/curves": "1.9.2", + "@noble/hashes": "1.8.0", + "@scure/bip32": "1.7.0", + "@scure/bip39": "1.6.0", + "abitype": "1.0.8", + "isows": "1.0.7", + "ox": "0.8.1", + "ws": "8.18.2" + }, + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@reown/appkit-adapter-wagmi/node_modules/@scure/bip32": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", "dependencies": { "@noble/curves": "~1.9.0", "@noble/hashes": "~1.8.0", @@ -7025,6 +7811,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", + "license": "MIT", "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" @@ -7034,9 +7821,10 @@ } }, "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/core": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.3.tgz", - "integrity": "sha512-kMjo5bI6VOsFe/DmxgeTMxCdAIfSzUzG8kCDrpxUXrTnMgaU4H2JBW+tGn7KP/YY1x49+lErZsN5JiQsE5n6Rw==", + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.5.tgz", + "integrity": "sha512-CxGbio1TdCkou/TYn8X6Ih1mUX3UtFTk+t618/cIrT3VX5IjQW09n9I/pVafr7bQbBtm9/ATr7ugUEMrLu5snA==", + "license": "Apache-2.0", "dependencies": { "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-provider": "1.0.14", @@ -7049,8 +7837,8 @@ "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.3", - "@walletconnect/utils": "2.21.3", + "@walletconnect/types": "2.21.5", + "@walletconnect/utils": "2.21.5", "@walletconnect/window-getters": "1.0.1", "es-toolkit": "1.39.3", "events": "3.3.0", @@ -7064,6 +7852,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "license": "MIT", "dependencies": { "@walletconnect/safe-json": "^1.0.1", "idb-keyval": "^6.2.1", @@ -7079,25 +7868,27 @@ } }, "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/sign-client": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.3.tgz", - "integrity": "sha512-Z6sTCBrset7u5CNjPWlqQuWxmLL2WlGLZYKoB7g/Nvg8wLWo0VaaNeTtNsuopLfJeqdV9/4nV/qHE4xXs2nMIQ==", + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.5.tgz", + "integrity": "sha512-IAs/IqmE1HVL9EsvqkNRU4NeAYe//h9NwqKi7ToKYZv4jhcC3BBemUD1r8iQJSTHMhO41EKn1G9/DiBln3ZiwQ==", + "license": "Apache-2.0", "dependencies": { - "@walletconnect/core": "2.21.3", + "@walletconnect/core": "2.21.5", "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.3", - "@walletconnect/utils": "2.21.3", + "@walletconnect/types": "2.21.5", + "@walletconnect/utils": "2.21.5", "events": "3.3.0" } }, "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/types": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.3.tgz", - "integrity": "sha512-4fDchSb6q/YIuUokaIvp+/tpWtmiL+dOWuKUCq0+w81R0unsQzn4Zc57Xh+TkNAlBGSJmZ44ZQPevN4vaTnjwg==", + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.5.tgz", + "integrity": "sha512-kpTXbenKeMdaz6mgMN/jKaHHbu6mdY3kyyrddzE/mthOd2KLACVrZr7hrTf+Fg2coPVen5d1KKyQjyECEdzOCw==", + "license": "Apache-2.0", "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", @@ -7108,9 +7899,10 @@ } }, "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/universal-provider": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.3.tgz", - "integrity": "sha512-Tlkfbtp5oNvSb9yEUl3Fxs0A1y8kLbGJOq7F3zyjVu2EvG96cMqqmlYlPRsi55VDn3scmw8zr2zN+BMsMAuDPw==", + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.5.tgz", + "integrity": "sha512-SMXGGXyj78c8Ru2f665ZFZU24phn0yZyCP5Ej7goxVQxABwqWKM/odj3j/IxZv+hxA8yU13yxaubgVefnereqw==", + "license": "Apache-2.0", "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/jsonrpc-http-connection": "1.0.8", @@ -7119,17 +7911,18 @@ "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.21.3", - "@walletconnect/types": "2.21.3", - "@walletconnect/utils": "2.21.3", + "@walletconnect/sign-client": "2.21.5", + "@walletconnect/types": "2.21.5", + "@walletconnect/utils": "2.21.5", "es-toolkit": "1.39.3", "events": "3.3.0" } }, "node_modules/@reown/appkit-adapter-wagmi/node_modules/@walletconnect/utils": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.3.tgz", - "integrity": "sha512-LHxYX69vG7aPCQB9YT1F8ibwAfRNYwqCEBMplrmquAX+l4lMHTpXvsFF/a5NWFT23DKzbWZ4VTfQTDZ//XJKpg==", + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.5.tgz", + "integrity": "sha512-RSPSxPvGMuvfGhd5au1cf9cmHB/KVVLFotJR9ltisjFABGtH2215U5oaVp+a7W18QX37aemejRkvacqOELVySA==", + "license": "Apache-2.0", "dependencies": { "@msgpack/msgpack": "3.1.2", "@noble/ciphers": "1.3.0", @@ -7142,7 +7935,7 @@ "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.3", + "@walletconnect/types": "2.21.5", "@walletconnect/window-getters": "1.0.1", "@walletconnect/window-metadata": "1.0.1", "blakejs": "1.2.1", @@ -7163,6 +7956,7 @@ "url": "https://github.com/sponsors/wevm" } ], + "license": "MIT", "dependencies": { "@noble/curves": "1.9.1", "@noble/hashes": "1.8.0", @@ -7186,6 +7980,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz", "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==", + "license": "MIT", "dependencies": { "@noble/hashes": "1.8.0" }, @@ -7199,12 +7994,18 @@ "node_modules/@reown/appkit-adapter-wagmi/node_modules/es-toolkit": { "version": "1.39.3", "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.39.3.tgz", - "integrity": "sha512-Qb/TCFCldgOy8lZ5uC7nLGdqJwSabkQiYQShmw4jyiPk1pZzaYWTwaYKYP7EgLccWYgZocMrtItrwh683voaww==" + "integrity": "sha512-Qb/TCFCldgOy8lZ5uC7nLGdqJwSabkQiYQShmw4jyiPk1pZzaYWTwaYKYP7EgLccWYgZocMrtItrwh683voaww==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] }, "node_modules/@reown/appkit-adapter-wagmi/node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/@reown/appkit-adapter-wagmi/node_modules/ox": { "version": "0.7.1", @@ -7216,6 +8017,7 @@ "url": "https://github.com/sponsors/wevm" } ], + "license": "MIT", "dependencies": { "@adraffy/ens-normalize": "^1.10.1", "@noble/ciphers": "^1.3.0", @@ -7235,23 +8037,43 @@ } } }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/proxy-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-3.0.1.tgz", + "integrity": "sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==", + "license": "MIT" + }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@reown/appkit-adapter-wagmi/node_modules/uint8arrays": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/@reown/appkit-adapter-wagmi/node_modules/unstorage": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", - "integrity": "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.1.tgz", + "integrity": "sha512-gdpZ3guLDhz+zWIlYP1UwQ259tG5T5vYRzDaHMkQ1bBY1SQPutvZnrRjTFaWUUpseErJIgAZS51h6NOcZVZiqQ==", + "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", - "h3": "^1.15.2", + "h3": "^1.15.3", "lru-cache": "^10.4.3", "node-fetch-native": "^1.6.6", "ofetch": "^1.4.1", @@ -7266,7 +8088,7 @@ "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", @@ -7334,10 +8156,35 @@ } } }, + "node_modules/@reown/appkit-adapter-wagmi/node_modules/valtio": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/valtio/-/valtio-2.1.5.tgz", + "integrity": "sha512-vsh1Ixu5mT0pJFZm+Jspvhga5GzHUTYv0/+Th203pLfh3/wbHwxhu/Z2OkZDXIgHfjnjBns7SN9HNcbDvPmaGw==", + "license": "MIT", + "dependencies": { + "proxy-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "react": ">=18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + } + } + }, "node_modules/@reown/appkit-adapter-wagmi/node_modules/ws": { "version": "8.18.2", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -7355,31 +8202,34 @@ } }, "node_modules/@reown/appkit-common": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@reown/appkit-common/-/appkit-common-1.7.11.tgz", - "integrity": "sha512-GLrufhNpLMwHnqK5zIf8LAtJQ1uHB8azYtG7KwFSf9L7zYe+2PkB3tTnr0oCvSLJRplcjMq6Vr0ZVlOzVgs9qw==", + "version": "1.7.17", + "resolved": "https://registry.npmjs.org/@reown/appkit-common/-/appkit-common-1.7.17.tgz", + "integrity": "sha512-zfrlNosQ5XBGC7OBG56+lur0nJWCdRKoWVlUnr0dCVVfBmHIgdhFkRNzDqrX/zGqg4OoWDQLO7qaGiijRskfBQ==", + "license": "Apache-2.0", "dependencies": { "big.js": "6.2.2", "dayjs": "1.11.13", - "viem": ">=2.31.3" + "viem": ">=2.32.0" } }, "node_modules/@reown/appkit-controllers": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@reown/appkit-controllers/-/appkit-controllers-1.7.11.tgz", - "integrity": "sha512-D2sVqxsaqjbNIbior0L/m5vzqhp8kc+BQ09PO2l2/8X/JsoAME+DxFKOcbfKMwC2aSNkOnIdVTH/ivbknriQOA==", + "version": "1.7.17", + "resolved": "https://registry.npmjs.org/@reown/appkit-controllers/-/appkit-controllers-1.7.17.tgz", + "integrity": "sha512-rYgXf3nAzxgu1s10rSfibpAqnm/Y3wyY47v6BpN98Y57NArWqxYXhBtdRQL1ZKpSTV9OmrzwMxPNKePOmFgxZQ==", + "license": "Apache-2.0", "dependencies": { - "@reown/appkit-common": "1.7.11", - "@reown/appkit-wallet": "1.7.11", - "@walletconnect/universal-provider": "2.21.3", - "valtio": "1.13.2", - "viem": ">=2.31.3" + "@reown/appkit-common": "1.7.17", + "@reown/appkit-wallet": "1.7.17", + "@walletconnect/universal-provider": "2.21.5", + "valtio": "2.1.5", + "viem": ">=2.32.0" } }, "node_modules/@reown/appkit-controllers/node_modules/@noble/ciphers": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", "engines": { "node": "^14.21.3 || >=16" }, @@ -7391,6 +8241,7 @@ "version": "1.9.2", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.2.tgz", "integrity": "sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g==", + "license": "MIT", "dependencies": { "@noble/hashes": "1.8.0" }, @@ -7405,6 +8256,7 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", "dependencies": { "@noble/curves": "~1.9.0", "@noble/hashes": "~1.8.0", @@ -7418,6 +8270,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", + "license": "MIT", "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" @@ -7427,9 +8280,10 @@ } }, "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/core": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.3.tgz", - "integrity": "sha512-kMjo5bI6VOsFe/DmxgeTMxCdAIfSzUzG8kCDrpxUXrTnMgaU4H2JBW+tGn7KP/YY1x49+lErZsN5JiQsE5n6Rw==", + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.5.tgz", + "integrity": "sha512-CxGbio1TdCkou/TYn8X6Ih1mUX3UtFTk+t618/cIrT3VX5IjQW09n9I/pVafr7bQbBtm9/ATr7ugUEMrLu5snA==", + "license": "Apache-2.0", "dependencies": { "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-provider": "1.0.14", @@ -7442,8 +8296,8 @@ "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.3", - "@walletconnect/utils": "2.21.3", + "@walletconnect/types": "2.21.5", + "@walletconnect/utils": "2.21.5", "@walletconnect/window-getters": "1.0.1", "es-toolkit": "1.39.3", "events": "3.3.0", @@ -7457,6 +8311,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "license": "MIT", "dependencies": { "@walletconnect/safe-json": "^1.0.1", "idb-keyval": "^6.2.1", @@ -7472,25 +8327,27 @@ } }, "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/sign-client": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.3.tgz", - "integrity": "sha512-Z6sTCBrset7u5CNjPWlqQuWxmLL2WlGLZYKoB7g/Nvg8wLWo0VaaNeTtNsuopLfJeqdV9/4nV/qHE4xXs2nMIQ==", + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.5.tgz", + "integrity": "sha512-IAs/IqmE1HVL9EsvqkNRU4NeAYe//h9NwqKi7ToKYZv4jhcC3BBemUD1r8iQJSTHMhO41EKn1G9/DiBln3ZiwQ==", + "license": "Apache-2.0", "dependencies": { - "@walletconnect/core": "2.21.3", + "@walletconnect/core": "2.21.5", "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.3", - "@walletconnect/utils": "2.21.3", + "@walletconnect/types": "2.21.5", + "@walletconnect/utils": "2.21.5", "events": "3.3.0" } }, "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/types": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.3.tgz", - "integrity": "sha512-4fDchSb6q/YIuUokaIvp+/tpWtmiL+dOWuKUCq0+w81R0unsQzn4Zc57Xh+TkNAlBGSJmZ44ZQPevN4vaTnjwg==", + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.5.tgz", + "integrity": "sha512-kpTXbenKeMdaz6mgMN/jKaHHbu6mdY3kyyrddzE/mthOd2KLACVrZr7hrTf+Fg2coPVen5d1KKyQjyECEdzOCw==", + "license": "Apache-2.0", "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", @@ -7501,9 +8358,10 @@ } }, "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/universal-provider": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.3.tgz", - "integrity": "sha512-Tlkfbtp5oNvSb9yEUl3Fxs0A1y8kLbGJOq7F3zyjVu2EvG96cMqqmlYlPRsi55VDn3scmw8zr2zN+BMsMAuDPw==", + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.5.tgz", + "integrity": "sha512-SMXGGXyj78c8Ru2f665ZFZU24phn0yZyCP5Ej7goxVQxABwqWKM/odj3j/IxZv+hxA8yU13yxaubgVefnereqw==", + "license": "Apache-2.0", "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/jsonrpc-http-connection": "1.0.8", @@ -7512,17 +8370,18 @@ "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.21.3", - "@walletconnect/types": "2.21.3", - "@walletconnect/utils": "2.21.3", + "@walletconnect/sign-client": "2.21.5", + "@walletconnect/types": "2.21.5", + "@walletconnect/utils": "2.21.5", "es-toolkit": "1.39.3", "events": "3.3.0" } }, "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.3.tgz", - "integrity": "sha512-LHxYX69vG7aPCQB9YT1F8ibwAfRNYwqCEBMplrmquAX+l4lMHTpXvsFF/a5NWFT23DKzbWZ4VTfQTDZ//XJKpg==", + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.5.tgz", + "integrity": "sha512-RSPSxPvGMuvfGhd5au1cf9cmHB/KVVLFotJR9ltisjFABGtH2215U5oaVp+a7W18QX37aemejRkvacqOELVySA==", + "license": "Apache-2.0", "dependencies": { "@msgpack/msgpack": "3.1.2", "@noble/ciphers": "1.3.0", @@ -7535,7 +8394,7 @@ "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.3", + "@walletconnect/types": "2.21.5", "@walletconnect/window-getters": "1.0.1", "@walletconnect/window-metadata": "1.0.1", "blakejs": "1.2.1", @@ -7556,6 +8415,7 @@ "url": "https://github.com/sponsors/wevm" } ], + "license": "MIT", "dependencies": { "@noble/curves": "1.9.1", "@noble/hashes": "1.8.0", @@ -7579,6 +8439,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz", "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==", + "license": "MIT", "dependencies": { "@noble/hashes": "1.8.0" }, @@ -7592,12 +8453,18 @@ "node_modules/@reown/appkit-controllers/node_modules/es-toolkit": { "version": "1.39.3", "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.39.3.tgz", - "integrity": "sha512-Qb/TCFCldgOy8lZ5uC7nLGdqJwSabkQiYQShmw4jyiPk1pZzaYWTwaYKYP7EgLccWYgZocMrtItrwh683voaww==" + "integrity": "sha512-Qb/TCFCldgOy8lZ5uC7nLGdqJwSabkQiYQShmw4jyiPk1pZzaYWTwaYKYP7EgLccWYgZocMrtItrwh683voaww==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] }, "node_modules/@reown/appkit-controllers/node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/@reown/appkit-controllers/node_modules/ox": { "version": "0.7.1", @@ -7609,6 +8476,7 @@ "url": "https://github.com/sponsors/wevm" } ], + "license": "MIT", "dependencies": { "@adraffy/ens-normalize": "^1.10.1", "@noble/ciphers": "^1.3.0", @@ -7628,23 +8496,31 @@ } } }, + "node_modules/@reown/appkit-controllers/node_modules/proxy-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-3.0.1.tgz", + "integrity": "sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==", + "license": "MIT" + }, "node_modules/@reown/appkit-controllers/node_modules/uint8arrays": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/@reown/appkit-controllers/node_modules/unstorage": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", - "integrity": "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.1.tgz", + "integrity": "sha512-gdpZ3guLDhz+zWIlYP1UwQ259tG5T5vYRzDaHMkQ1bBY1SQPutvZnrRjTFaWUUpseErJIgAZS51h6NOcZVZiqQ==", + "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", - "h3": "^1.15.2", + "h3": "^1.15.3", "lru-cache": "^10.4.3", "node-fetch-native": "^1.6.6", "ofetch": "^1.4.1", @@ -7659,7 +8535,7 @@ "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", @@ -7727,10 +8603,35 @@ } } }, + "node_modules/@reown/appkit-controllers/node_modules/valtio": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/valtio/-/valtio-2.1.5.tgz", + "integrity": "sha512-vsh1Ixu5mT0pJFZm+Jspvhga5GzHUTYv0/+Th203pLfh3/wbHwxhu/Z2OkZDXIgHfjnjBns7SN9HNcbDvPmaGw==", + "license": "MIT", + "dependencies": { + "proxy-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "react": ">=18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + } + } + }, "node_modules/@reown/appkit-controllers/node_modules/ws": { "version": "8.18.2", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -7748,236 +8649,130 @@ } }, "node_modules/@reown/appkit-pay": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@reown/appkit-pay/-/appkit-pay-1.7.11.tgz", - "integrity": "sha512-dunlSguhHJ5jO30pQSouWbzrihU77EMofohzK7vqfAX+tcbtTq9IyoSKXXsJdd+9AILTjG/tnfbFA3uJlyeJXQ==", - "dependencies": { - "@reown/appkit-common": "1.7.11", - "@reown/appkit-controllers": "1.7.11", - "@reown/appkit-ui": "1.7.11", - "@reown/appkit-utils": "1.7.11", - "lit": "3.3.0", - "valtio": "1.13.2" - } - }, - "node_modules/@reown/appkit-polyfills": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@reown/appkit-polyfills/-/appkit-polyfills-1.7.11.tgz", - "integrity": "sha512-gZ+6MZUN1PVAouyipltdaRtLMDl8tZ5kGePKn93eGG+bD6OJXFQ02co3OUSL3YtZQWiYlD51EFwCD3woyl69zg==", - "dependencies": { - "buffer": "6.0.3" - } - }, - "node_modules/@reown/appkit-scaffold-ui": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@reown/appkit-scaffold-ui/-/appkit-scaffold-ui-1.7.11.tgz", - "integrity": "sha512-UMIwlUIWdNUEUzinoAdlu2q1uzvfdb/7Dhc6bTJGGK6FqlO5QPqQMOoR64j8d9OGQdSZhe6yNHOHQvMtqUnQEw==", - "dependencies": { - "@reown/appkit-common": "1.7.11", - "@reown/appkit-controllers": "1.7.11", - "@reown/appkit-ui": "1.7.11", - "@reown/appkit-utils": "1.7.11", - "@reown/appkit-wallet": "1.7.11", - "lit": "3.3.0" - } - }, - "node_modules/@reown/appkit-ui": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@reown/appkit-ui/-/appkit-ui-1.7.11.tgz", - "integrity": "sha512-gTJ4JiYlwnGSWv0hhfClY6lk9+Ru8EZLssItz1scR5H41gNjgXEJ2/mDm1Ejpf42A9Cehgqbv8E8vqUcautY5A==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-pay/-/appkit-pay-1.8.2.tgz", + "integrity": "sha512-8rBB/sNty9P4oKVgETFmUXh6iFfbr+UWmpN7TThtMAFXuAGevbHKIF4ZXNjvF63L5knpOF8elVNNmSXyxHpInA==", + "license": "Apache-2.0", "dependencies": { - "@reown/appkit-common": "1.7.11", - "@reown/appkit-controllers": "1.7.11", - "@reown/appkit-wallet": "1.7.11", + "@reown/appkit-common": "1.8.2", + "@reown/appkit-controllers": "1.8.2", + "@reown/appkit-ui": "1.8.2", + "@reown/appkit-utils": "1.8.2", "lit": "3.3.0", - "qrcode": "1.5.3" - } - }, - "node_modules/@reown/appkit-ui/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "valtio": "2.1.5" } }, - "node_modules/@reown/appkit-ui/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, + "node_modules/@reown/appkit-pay/node_modules/@noble/ciphers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", "engines": { - "node": ">=8" - } - }, - "node_modules/@reown/appkit-ui/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" + "node": "^14.21.3 || >=16" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-ui/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/@reown/appkit-pay/node_modules/@noble/curves": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.2.tgz", + "integrity": "sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g==", + "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "@noble/hashes": "1.8.0" }, "engines": { - "node": ">=6" + "node": "^14.21.3 || >=16" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@reown/appkit-ui/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-ui/node_modules/qrcode": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", - "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "node_modules/@reown/appkit-pay/node_modules/@reown/appkit-common": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-common/-/appkit-common-1.8.2.tgz", + "integrity": "sha512-xlo1pRh1DkZfB7I1JkeC8ELlsM7ziSG/oJig1KgTsNZPQdYC9fADWY7vH/daUUkgS8QQbINc7HW8WAR1DkA+dw==", + "license": "Apache-2.0", "dependencies": { - "dijkstrajs": "^1.0.1", - "encode-utf8": "^1.0.3", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" - }, - "bin": { - "qrcode": "bin/qrcode" - }, - "engines": { - "node": ">=10.13.0" + "big.js": "6.2.2", + "dayjs": "1.11.13", + "viem": ">=2.33.3" } }, - "node_modules/@reown/appkit-ui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/@reown/appkit-pay/node_modules/@reown/appkit-controllers": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-controllers/-/appkit-controllers-1.8.2.tgz", + "integrity": "sha512-ccGbuiKNceCmh8JxtcDFc115fosJ2abcSfDo4HVSSgew/4rPzqIsD/TPfBLgk2KOAi7RF4keC5mckHHIWfmoFw==", + "license": "Apache-2.0", "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" + "@reown/appkit-common": "1.8.2", + "@reown/appkit-wallet": "1.8.2", + "@walletconnect/universal-provider": "2.21.7", + "valtio": "2.1.5", + "viem": ">=2.33.3" } }, - "node_modules/@reown/appkit-ui/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/@reown/appkit-pay/node_modules/@reown/appkit-polyfills": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-polyfills/-/appkit-polyfills-1.8.2.tgz", + "integrity": "sha512-D1npLFY3q/X6qh241lh47DfL1EaPpMEeVtV7c2HFdmitUgXqc2BgH7mhMfpI3UgaT42+eP5+W+KanZwwyraNPw==", + "license": "Apache-2.0", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" + "buffer": "6.0.3" } }, - "node_modules/@reown/appkit-ui/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "node_modules/@reown/appkit-ui/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/@reown/appkit-pay/node_modules/@reown/appkit-ui": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-ui/-/appkit-ui-1.8.2.tgz", + "integrity": "sha512-tdYFBmFLIQzqO0QYo6KJTWJ8UZ5yyqmQ4+YnD1PL4pIMPAaFcVB9ZP0ESSX1eX+bGKkBc+I/rbwKgyqTIJLV9Q==", + "license": "Apache-2.0", "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" + "@phosphor-icons/webcomponents": "2.1.5", + "@reown/appkit-common": "1.8.2", + "@reown/appkit-controllers": "1.8.2", + "@reown/appkit-wallet": "1.8.2", + "lit": "3.3.0", + "qrcode": "1.5.3" } }, - "node_modules/@reown/appkit-ui/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/@reown/appkit-pay/node_modules/@reown/appkit-utils": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-utils/-/appkit-utils-1.8.2.tgz", + "integrity": "sha512-MBhZBCSMNeP6zQ/NVDqEK4DZttUMLEtO/G5WK4Yhzvzra54Z5VIzTPg5bnNe+ntAJ19AL2P7dh8RjaazdMN7Aw==", + "license": "Apache-2.0", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@reown/appkit-utils": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@reown/appkit-utils/-/appkit-utils-1.7.11.tgz", - "integrity": "sha512-hdOc1OJKH1nk6X56diAX9oDrbbo6obkTSkYA5k6JpMMJjZcOhLthXKF89PF8hjGlVDgUhL/p9UPTTTc8O5XTTg==", - "dependencies": { - "@reown/appkit-common": "1.7.11", - "@reown/appkit-controllers": "1.7.11", - "@reown/appkit-polyfills": "1.7.11", - "@reown/appkit-wallet": "1.7.11", + "@reown/appkit-common": "1.8.2", + "@reown/appkit-controllers": "1.8.2", + "@reown/appkit-polyfills": "1.8.2", + "@reown/appkit-wallet": "1.8.2", "@wallet-standard/wallet": "1.1.0", "@walletconnect/logger": "2.1.2", - "@walletconnect/universal-provider": "2.21.3", - "valtio": "1.13.2", - "viem": ">=2.31.3" + "@walletconnect/universal-provider": "2.21.7", + "valtio": "2.1.5", + "viem": ">=2.33.3" }, "peerDependencies": { - "valtio": "1.13.2" - } - }, - "node_modules/@reown/appkit-utils/node_modules/@noble/ciphers": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", - "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "valtio": "2.1.5" } }, - "node_modules/@reown/appkit-utils/node_modules/@noble/curves": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.2.tgz", - "integrity": "sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g==", + "node_modules/@reown/appkit-pay/node_modules/@reown/appkit-wallet": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-wallet/-/appkit-wallet-1.8.2.tgz", + "integrity": "sha512-cENbBX4WLwkLpIXwH6w+Ys9gmPVnQtGz59/UaO/+nsCxpy+yJcH1yjXyktiLYUBq64ZPGBluYYXg2zJgSCL+nA==", + "license": "Apache-2.0", "dependencies": { - "@noble/hashes": "1.8.0" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "@reown/appkit-common": "1.8.2", + "@reown/appkit-polyfills": "1.8.2", + "@walletconnect/logger": "2.1.2", + "zod": "3.22.4" } }, - "node_modules/@reown/appkit-utils/node_modules/@scure/bip32": { + "node_modules/@reown/appkit-pay/node_modules/@scure/bip32": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", "dependencies": { "@noble/curves": "~1.9.0", "@noble/hashes": "~1.8.0", @@ -7987,10 +8782,11 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-utils/node_modules/@scure/bip39": { + "node_modules/@reown/appkit-pay/node_modules/@scure/bip39": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", + "license": "MIT", "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" @@ -7999,10 +8795,11 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/core": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.3.tgz", - "integrity": "sha512-kMjo5bI6VOsFe/DmxgeTMxCdAIfSzUzG8kCDrpxUXrTnMgaU4H2JBW+tGn7KP/YY1x49+lErZsN5JiQsE5n6Rw==", + "node_modules/@reown/appkit-pay/node_modules/@walletconnect/core": { + "version": "2.21.7", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.7.tgz", + "integrity": "sha512-q/Au5Ne3g4R+q4GvHR5cvRd3+ha00QZCZiCs058lmy+eDbiZd0YsautvTPJ5a2guD6UaS1k/w5e1JHgixdcgLA==", + "license": "Apache-2.0", "dependencies": { "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-provider": "1.0.14", @@ -8015,8 +8812,491 @@ "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.3", - "@walletconnect/utils": "2.21.3", + "@walletconnect/types": "2.21.7", + "@walletconnect/utils": "2.21.7", + "@walletconnect/window-getters": "1.0.1", + "es-toolkit": "1.39.3", + "events": "3.3.0", + "uint8arrays": "3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@reown/appkit-pay/node_modules/@walletconnect/keyvaluestorage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", + "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "license": "MIT", + "dependencies": { + "@walletconnect/safe-json": "^1.0.1", + "idb-keyval": "^6.2.1", + "unstorage": "^1.9.0" + }, + "peerDependencies": { + "@react-native-async-storage/async-storage": "1.x" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-pay/node_modules/@walletconnect/sign-client": { + "version": "2.21.7", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.7.tgz", + "integrity": "sha512-9k/JEl9copR6nXRhqnmzWz2Zk1hiWysH+o6bp6Cqo8TgDUrZoMLBZMZ6qbo+2HLI54V02kKf0Vg8M81nNFOpjQ==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/core": "2.21.7", + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "2.1.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.7", + "@walletconnect/utils": "2.21.7", + "events": "3.3.0" + } + }, + "node_modules/@reown/appkit-pay/node_modules/@walletconnect/types": { + "version": "2.21.7", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.7.tgz", + "integrity": "sha512-kyGnFje4Iq+XGkZZcSoAIrJWBE4BeghVW4O7n9e1MhUyeOOtO55M/kcqceNGYrvwjHvdN+Kf+aoLnKC0zKlpbQ==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "events": "3.3.0" + } + }, + "node_modules/@reown/appkit-pay/node_modules/@walletconnect/universal-provider": { + "version": "2.21.7", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.7.tgz", + "integrity": "sha512-8PB+vA5VuR9PBqt5Y0xj4JC2doYNPlXLGQt3wJORVF9QC227Mm/8R1CAKpmneeLrUH02LkSRwx+wnN/pPnDiQA==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/sign-client": "2.21.7", + "@walletconnect/types": "2.21.7", + "@walletconnect/utils": "2.21.7", + "es-toolkit": "1.39.3", + "events": "3.3.0" + } + }, + "node_modules/@reown/appkit-pay/node_modules/@walletconnect/utils": { + "version": "2.21.7", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.7.tgz", + "integrity": "sha512-qyaclTgcFf9AwVuoV8CLLg8wfH3nX7yZdpylNkDqCpS7wawQL9zmFFTaGgma8sQrCsd3Sd9jUIymcpRvCJnSTw==", + "license": "Apache-2.0", + "dependencies": { + "@msgpack/msgpack": "3.1.2", + "@noble/ciphers": "1.3.0", + "@noble/curves": "1.9.2", + "@noble/hashes": "1.8.0", + "@scure/base": "1.2.6", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.7", + "@walletconnect/window-getters": "1.0.1", + "@walletconnect/window-metadata": "1.0.1", + "blakejs": "1.2.1", + "bs58": "6.0.0", + "detect-browser": "5.3.0", + "query-string": "7.1.3", + "uint8arrays": "3.1.1", + "viem": "2.31.0" + } + }, + "node_modules/@reown/appkit-pay/node_modules/@walletconnect/utils/node_modules/viem": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.31.0.tgz", + "integrity": "sha512-U7OMQ6yqK+bRbEIarf2vqxL7unSEQvNxvML/1zG7suAmKuJmipqdVTVJGKBCJiYsm/EremyO2FS4dHIPpGv+eA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@noble/curves": "1.9.1", + "@noble/hashes": "1.8.0", + "@scure/bip32": "1.7.0", + "@scure/bip39": "1.6.0", + "abitype": "1.0.8", + "isows": "1.0.7", + "ox": "0.7.1", + "ws": "8.18.2" + }, + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-pay/node_modules/@walletconnect/utils/node_modules/viem/node_modules/@noble/curves": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz", + "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-pay/node_modules/es-toolkit": { + "version": "1.39.3", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.39.3.tgz", + "integrity": "sha512-Qb/TCFCldgOy8lZ5uC7nLGdqJwSabkQiYQShmw4jyiPk1pZzaYWTwaYKYP7EgLccWYgZocMrtItrwh683voaww==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] + }, + "node_modules/@reown/appkit-pay/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/@reown/appkit-pay/node_modules/ox": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.7.1.tgz", + "integrity": "sha512-+k9fY9PRNuAMHRFIUbiK9Nt5seYHHzSQs9Bj+iMETcGtlpS7SmBzcGSVUQO3+nqGLEiNK4598pHNFlVRaZbRsg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/ciphers": "^1.3.0", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-pay/node_modules/proxy-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-3.0.1.tgz", + "integrity": "sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==", + "license": "MIT" + }, + "node_modules/@reown/appkit-pay/node_modules/uint8arrays": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", + "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", + "license": "MIT", + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/@reown/appkit-pay/node_modules/unstorage": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", + "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^4.0.3", + "destr": "^2.0.5", + "h3": "^1.15.4", + "lru-cache": "^10.4.3", + "node-fetch-native": "^1.6.7", + "ofetch": "^1.4.1", + "ufo": "^1.6.1" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6.0.3 || ^7.0.0", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", + "@vercel/kv": "^1.0.1", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/functions": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-pay/node_modules/valtio": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/valtio/-/valtio-2.1.5.tgz", + "integrity": "sha512-vsh1Ixu5mT0pJFZm+Jspvhga5GzHUTYv0/+Th203pLfh3/wbHwxhu/Z2OkZDXIgHfjnjBns7SN9HNcbDvPmaGw==", + "license": "MIT", + "dependencies": { + "proxy-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "react": ">=18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-pay/node_modules/ws": { + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", + "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-polyfills": { + "version": "1.7.17", + "resolved": "https://registry.npmjs.org/@reown/appkit-polyfills/-/appkit-polyfills-1.7.17.tgz", + "integrity": "sha512-vWRIYS+wc2ByWKn76KMV7zxqTvQ+512KwXAKQcRulu13AdKvnBbr0eYx+ctvSKL+kZoAp9zj4R3RulX3eXnJ8Q==", + "license": "Apache-2.0", + "dependencies": { + "buffer": "6.0.3" + } + }, + "node_modules/@reown/appkit-scaffold-ui": { + "version": "1.7.17", + "resolved": "https://registry.npmjs.org/@reown/appkit-scaffold-ui/-/appkit-scaffold-ui-1.7.17.tgz", + "integrity": "sha512-7nk8DEHQf9/7Ij8Eo85Uj1D/3M9Ybq/LjXyePyaGusZ9E8gf4u/UjKpQK7cTfMNsNl4nrB2mBI9Tk/rwNECdCg==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.17", + "@reown/appkit-controllers": "1.7.17", + "@reown/appkit-ui": "1.7.17", + "@reown/appkit-utils": "1.7.17", + "@reown/appkit-wallet": "1.7.17", + "lit": "3.3.0" + } + }, + "node_modules/@reown/appkit-ui": { + "version": "1.7.17", + "resolved": "https://registry.npmjs.org/@reown/appkit-ui/-/appkit-ui-1.7.17.tgz", + "integrity": "sha512-7lscJjtFZIfdcUv5zAsmgiFG2dMziQE0IfqY3U/H5qhnGW8v4ITcTi1gNS3A4lQrNDbcA083LecfVdyKnTdi1A==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.17", + "@reown/appkit-controllers": "1.7.17", + "@reown/appkit-wallet": "1.7.17", + "lit": "3.3.0", + "qrcode": "1.5.3" + } + }, + "node_modules/@reown/appkit-utils": { + "version": "1.7.17", + "resolved": "https://registry.npmjs.org/@reown/appkit-utils/-/appkit-utils-1.7.17.tgz", + "integrity": "sha512-QWzHTmSDFy90Bp5pUUQASzcjnJXPiEvasJV68j3PZifenTPDCfFW+VsiHduWNodTHAA/rZ12O3uBQE+stM3xmQ==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.17", + "@reown/appkit-controllers": "1.7.17", + "@reown/appkit-polyfills": "1.7.17", + "@reown/appkit-wallet": "1.7.17", + "@wallet-standard/wallet": "1.1.0", + "@walletconnect/logger": "2.1.2", + "@walletconnect/universal-provider": "2.21.5", + "valtio": "2.1.5", + "viem": ">=2.32.0" + }, + "peerDependencies": { + "valtio": "2.1.5" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@noble/ciphers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@noble/curves": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.2.tgz", + "integrity": "sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@scure/bip32": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", + "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.9.0", + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@scure/bip39": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", + "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/core": { + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.5.tgz", + "integrity": "sha512-CxGbio1TdCkou/TYn8X6Ih1mUX3UtFTk+t618/cIrT3VX5IjQW09n9I/pVafr7bQbBtm9/ATr7ugUEMrLu5snA==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.16", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.5", + "@walletconnect/utils": "2.21.5", "@walletconnect/window-getters": "1.0.1", "es-toolkit": "1.39.3", "events": "3.3.0", @@ -8030,6 +9310,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "license": "MIT", "dependencies": { "@walletconnect/safe-json": "^1.0.1", "idb-keyval": "^6.2.1", @@ -8045,25 +9326,27 @@ } }, "node_modules/@reown/appkit-utils/node_modules/@walletconnect/sign-client": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.3.tgz", - "integrity": "sha512-Z6sTCBrset7u5CNjPWlqQuWxmLL2WlGLZYKoB7g/Nvg8wLWo0VaaNeTtNsuopLfJeqdV9/4nV/qHE4xXs2nMIQ==", + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.5.tgz", + "integrity": "sha512-IAs/IqmE1HVL9EsvqkNRU4NeAYe//h9NwqKi7ToKYZv4jhcC3BBemUD1r8iQJSTHMhO41EKn1G9/DiBln3ZiwQ==", + "license": "Apache-2.0", "dependencies": { - "@walletconnect/core": "2.21.3", + "@walletconnect/core": "2.21.5", "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.3", - "@walletconnect/utils": "2.21.3", + "@walletconnect/types": "2.21.5", + "@walletconnect/utils": "2.21.5", "events": "3.3.0" } }, "node_modules/@reown/appkit-utils/node_modules/@walletconnect/types": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.3.tgz", - "integrity": "sha512-4fDchSb6q/YIuUokaIvp+/tpWtmiL+dOWuKUCq0+w81R0unsQzn4Zc57Xh+TkNAlBGSJmZ44ZQPevN4vaTnjwg==", + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.5.tgz", + "integrity": "sha512-kpTXbenKeMdaz6mgMN/jKaHHbu6mdY3kyyrddzE/mthOd2KLACVrZr7hrTf+Fg2coPVen5d1KKyQjyECEdzOCw==", + "license": "Apache-2.0", "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", @@ -8074,9 +9357,10 @@ } }, "node_modules/@reown/appkit-utils/node_modules/@walletconnect/universal-provider": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.3.tgz", - "integrity": "sha512-Tlkfbtp5oNvSb9yEUl3Fxs0A1y8kLbGJOq7F3zyjVu2EvG96cMqqmlYlPRsi55VDn3scmw8zr2zN+BMsMAuDPw==", + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.5.tgz", + "integrity": "sha512-SMXGGXyj78c8Ru2f665ZFZU24phn0yZyCP5Ej7goxVQxABwqWKM/odj3j/IxZv+hxA8yU13yxaubgVefnereqw==", + "license": "Apache-2.0", "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/jsonrpc-http-connection": "1.0.8", @@ -8085,17 +9369,18 @@ "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.21.3", - "@walletconnect/types": "2.21.3", - "@walletconnect/utils": "2.21.3", + "@walletconnect/sign-client": "2.21.5", + "@walletconnect/types": "2.21.5", + "@walletconnect/utils": "2.21.5", "es-toolkit": "1.39.3", "events": "3.3.0" } }, "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.3.tgz", - "integrity": "sha512-LHxYX69vG7aPCQB9YT1F8ibwAfRNYwqCEBMplrmquAX+l4lMHTpXvsFF/a5NWFT23DKzbWZ4VTfQTDZ//XJKpg==", + "version": "2.21.5", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.5.tgz", + "integrity": "sha512-RSPSxPvGMuvfGhd5au1cf9cmHB/KVVLFotJR9ltisjFABGtH2215U5oaVp+a7W18QX37aemejRkvacqOELVySA==", + "license": "Apache-2.0", "dependencies": { "@msgpack/msgpack": "3.1.2", "@noble/ciphers": "1.3.0", @@ -8108,7 +9393,7 @@ "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.3", + "@walletconnect/types": "2.21.5", "@walletconnect/window-getters": "1.0.1", "@walletconnect/window-metadata": "1.0.1", "blakejs": "1.2.1", @@ -8129,6 +9414,7 @@ "url": "https://github.com/sponsors/wevm" } ], + "license": "MIT", "dependencies": { "@noble/curves": "1.9.1", "@noble/hashes": "1.8.0", @@ -8152,6 +9438,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz", "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==", + "license": "MIT", "dependencies": { "@noble/hashes": "1.8.0" }, @@ -8165,12 +9452,18 @@ "node_modules/@reown/appkit-utils/node_modules/es-toolkit": { "version": "1.39.3", "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.39.3.tgz", - "integrity": "sha512-Qb/TCFCldgOy8lZ5uC7nLGdqJwSabkQiYQShmw4jyiPk1pZzaYWTwaYKYP7EgLccWYgZocMrtItrwh683voaww==" + "integrity": "sha512-Qb/TCFCldgOy8lZ5uC7nLGdqJwSabkQiYQShmw4jyiPk1pZzaYWTwaYKYP7EgLccWYgZocMrtItrwh683voaww==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] }, "node_modules/@reown/appkit-utils/node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/@reown/appkit-utils/node_modules/ox": { "version": "0.7.1", @@ -8182,6 +9475,7 @@ "url": "https://github.com/sponsors/wevm" } ], + "license": "MIT", "dependencies": { "@adraffy/ens-normalize": "^1.10.1", "@noble/ciphers": "^1.3.0", @@ -8201,23 +9495,31 @@ } } }, + "node_modules/@reown/appkit-utils/node_modules/proxy-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-3.0.1.tgz", + "integrity": "sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==", + "license": "MIT" + }, "node_modules/@reown/appkit-utils/node_modules/uint8arrays": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/@reown/appkit-utils/node_modules/unstorage": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", - "integrity": "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.1.tgz", + "integrity": "sha512-gdpZ3guLDhz+zWIlYP1UwQ259tG5T5vYRzDaHMkQ1bBY1SQPutvZnrRjTFaWUUpseErJIgAZS51h6NOcZVZiqQ==", + "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", - "h3": "^1.15.2", + "h3": "^1.15.3", "lru-cache": "^10.4.3", "node-fetch-native": "^1.6.6", "ofetch": "^1.4.1", @@ -8232,7 +9534,7 @@ "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", @@ -8300,10 +9602,35 @@ } } }, + "node_modules/@reown/appkit-utils/node_modules/valtio": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/valtio/-/valtio-2.1.5.tgz", + "integrity": "sha512-vsh1Ixu5mT0pJFZm+Jspvhga5GzHUTYv0/+Th203pLfh3/wbHwxhu/Z2OkZDXIgHfjnjBns7SN9HNcbDvPmaGw==", + "license": "MIT", + "dependencies": { + "proxy-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "react": ">=18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + } + } + }, "node_modules/@reown/appkit-utils/node_modules/ws": { "version": "8.18.2", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -8321,12 +9648,13 @@ } }, "node_modules/@reown/appkit-wallet": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@reown/appkit-wallet/-/appkit-wallet-1.7.11.tgz", - "integrity": "sha512-IEdIPip8rBeU295uFv+LvJ1LdgfAK8gRwqBedvC7PuuPFPZe2HanlHT84UrPZjUpy3Xysch5x+UQeUlm+w6UZw==", + "version": "1.7.17", + "resolved": "https://registry.npmjs.org/@reown/appkit-wallet/-/appkit-wallet-1.7.17.tgz", + "integrity": "sha512-tgIqHZZJISGCir0reQ/pXcIKXuP7JNqSuEDunfi5whNJi6z27h3g468RGk1Zo+MC//DRnQb01xMrv+iWRr8mCQ==", + "license": "Apache-2.0", "dependencies": { - "@reown/appkit-common": "1.7.11", - "@reown/appkit-polyfills": "1.7.11", + "@reown/appkit-common": "1.7.17", + "@reown/appkit-polyfills": "1.7.17", "@walletconnect/logger": "2.1.2", "zod": "3.22.4" } @@ -8335,6 +9663,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", "engines": { "node": "^14.21.3 || >=16" }, @@ -8346,6 +9675,7 @@ "version": "1.9.2", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.2.tgz", "integrity": "sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g==", + "license": "MIT", "dependencies": { "@noble/hashes": "1.8.0" }, @@ -8356,10 +9686,104 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@reown/appkit/node_modules/@reown/appkit-common": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-common/-/appkit-common-1.8.2.tgz", + "integrity": "sha512-xlo1pRh1DkZfB7I1JkeC8ELlsM7ziSG/oJig1KgTsNZPQdYC9fADWY7vH/daUUkgS8QQbINc7HW8WAR1DkA+dw==", + "license": "Apache-2.0", + "dependencies": { + "big.js": "6.2.2", + "dayjs": "1.11.13", + "viem": ">=2.33.3" + } + }, + "node_modules/@reown/appkit/node_modules/@reown/appkit-controllers": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-controllers/-/appkit-controllers-1.8.2.tgz", + "integrity": "sha512-ccGbuiKNceCmh8JxtcDFc115fosJ2abcSfDo4HVSSgew/4rPzqIsD/TPfBLgk2KOAi7RF4keC5mckHHIWfmoFw==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.8.2", + "@reown/appkit-wallet": "1.8.2", + "@walletconnect/universal-provider": "2.21.7", + "valtio": "2.1.5", + "viem": ">=2.33.3" + } + }, + "node_modules/@reown/appkit/node_modules/@reown/appkit-polyfills": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-polyfills/-/appkit-polyfills-1.8.2.tgz", + "integrity": "sha512-D1npLFY3q/X6qh241lh47DfL1EaPpMEeVtV7c2HFdmitUgXqc2BgH7mhMfpI3UgaT42+eP5+W+KanZwwyraNPw==", + "license": "Apache-2.0", + "dependencies": { + "buffer": "6.0.3" + } + }, + "node_modules/@reown/appkit/node_modules/@reown/appkit-scaffold-ui": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-scaffold-ui/-/appkit-scaffold-ui-1.8.2.tgz", + "integrity": "sha512-AmcMlrovF6NLsopRGgjRYoWMx9R04Tf7G4g+O3I/I09iKv+whz3yjQDePuxhymsCbH5pUvuGkmvVl3mMvhCR0Q==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.8.2", + "@reown/appkit-controllers": "1.8.2", + "@reown/appkit-ui": "1.8.2", + "@reown/appkit-utils": "1.8.2", + "@reown/appkit-wallet": "1.8.2", + "lit": "3.3.0" + } + }, + "node_modules/@reown/appkit/node_modules/@reown/appkit-ui": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-ui/-/appkit-ui-1.8.2.tgz", + "integrity": "sha512-tdYFBmFLIQzqO0QYo6KJTWJ8UZ5yyqmQ4+YnD1PL4pIMPAaFcVB9ZP0ESSX1eX+bGKkBc+I/rbwKgyqTIJLV9Q==", + "license": "Apache-2.0", + "dependencies": { + "@phosphor-icons/webcomponents": "2.1.5", + "@reown/appkit-common": "1.8.2", + "@reown/appkit-controllers": "1.8.2", + "@reown/appkit-wallet": "1.8.2", + "lit": "3.3.0", + "qrcode": "1.5.3" + } + }, + "node_modules/@reown/appkit/node_modules/@reown/appkit-utils": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-utils/-/appkit-utils-1.8.2.tgz", + "integrity": "sha512-MBhZBCSMNeP6zQ/NVDqEK4DZttUMLEtO/G5WK4Yhzvzra54Z5VIzTPg5bnNe+ntAJ19AL2P7dh8RjaazdMN7Aw==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.8.2", + "@reown/appkit-controllers": "1.8.2", + "@reown/appkit-polyfills": "1.8.2", + "@reown/appkit-wallet": "1.8.2", + "@wallet-standard/wallet": "1.1.0", + "@walletconnect/logger": "2.1.2", + "@walletconnect/universal-provider": "2.21.7", + "valtio": "2.1.5", + "viem": ">=2.33.3" + }, + "peerDependencies": { + "valtio": "2.1.5" + } + }, + "node_modules/@reown/appkit/node_modules/@reown/appkit-wallet": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-wallet/-/appkit-wallet-1.8.2.tgz", + "integrity": "sha512-cENbBX4WLwkLpIXwH6w+Ys9gmPVnQtGz59/UaO/+nsCxpy+yJcH1yjXyktiLYUBq64ZPGBluYYXg2zJgSCL+nA==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.8.2", + "@reown/appkit-polyfills": "1.8.2", + "@walletconnect/logger": "2.1.2", + "zod": "3.22.4" + } + }, "node_modules/@reown/appkit/node_modules/@scure/bip32": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", "dependencies": { "@noble/curves": "~1.9.0", "@noble/hashes": "~1.8.0", @@ -8373,6 +9797,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", + "license": "MIT", "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" @@ -8382,9 +9807,10 @@ } }, "node_modules/@reown/appkit/node_modules/@walletconnect/core": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.3.tgz", - "integrity": "sha512-kMjo5bI6VOsFe/DmxgeTMxCdAIfSzUzG8kCDrpxUXrTnMgaU4H2JBW+tGn7KP/YY1x49+lErZsN5JiQsE5n6Rw==", + "version": "2.21.7", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.7.tgz", + "integrity": "sha512-q/Au5Ne3g4R+q4GvHR5cvRd3+ha00QZCZiCs058lmy+eDbiZd0YsautvTPJ5a2guD6UaS1k/w5e1JHgixdcgLA==", + "license": "Apache-2.0", "dependencies": { "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-provider": "1.0.14", @@ -8397,8 +9823,8 @@ "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.3", - "@walletconnect/utils": "2.21.3", + "@walletconnect/types": "2.21.7", + "@walletconnect/utils": "2.21.7", "@walletconnect/window-getters": "1.0.1", "es-toolkit": "1.39.3", "events": "3.3.0", @@ -8412,6 +9838,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "license": "MIT", "dependencies": { "@walletconnect/safe-json": "^1.0.1", "idb-keyval": "^6.2.1", @@ -8427,25 +9854,27 @@ } }, "node_modules/@reown/appkit/node_modules/@walletconnect/sign-client": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.3.tgz", - "integrity": "sha512-Z6sTCBrset7u5CNjPWlqQuWxmLL2WlGLZYKoB7g/Nvg8wLWo0VaaNeTtNsuopLfJeqdV9/4nV/qHE4xXs2nMIQ==", + "version": "2.21.7", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.7.tgz", + "integrity": "sha512-9k/JEl9copR6nXRhqnmzWz2Zk1hiWysH+o6bp6Cqo8TgDUrZoMLBZMZ6qbo+2HLI54V02kKf0Vg8M81nNFOpjQ==", + "license": "Apache-2.0", "dependencies": { - "@walletconnect/core": "2.21.3", + "@walletconnect/core": "2.21.7", "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.3", - "@walletconnect/utils": "2.21.3", + "@walletconnect/types": "2.21.7", + "@walletconnect/utils": "2.21.7", "events": "3.3.0" } }, "node_modules/@reown/appkit/node_modules/@walletconnect/types": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.3.tgz", - "integrity": "sha512-4fDchSb6q/YIuUokaIvp+/tpWtmiL+dOWuKUCq0+w81R0unsQzn4Zc57Xh+TkNAlBGSJmZ44ZQPevN4vaTnjwg==", + "version": "2.21.7", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.7.tgz", + "integrity": "sha512-kyGnFje4Iq+XGkZZcSoAIrJWBE4BeghVW4O7n9e1MhUyeOOtO55M/kcqceNGYrvwjHvdN+Kf+aoLnKC0zKlpbQ==", + "license": "Apache-2.0", "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", @@ -8456,9 +9885,10 @@ } }, "node_modules/@reown/appkit/node_modules/@walletconnect/universal-provider": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.3.tgz", - "integrity": "sha512-Tlkfbtp5oNvSb9yEUl3Fxs0A1y8kLbGJOq7F3zyjVu2EvG96cMqqmlYlPRsi55VDn3scmw8zr2zN+BMsMAuDPw==", + "version": "2.21.7", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.7.tgz", + "integrity": "sha512-8PB+vA5VuR9PBqt5Y0xj4JC2doYNPlXLGQt3wJORVF9QC227Mm/8R1CAKpmneeLrUH02LkSRwx+wnN/pPnDiQA==", + "license": "Apache-2.0", "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/jsonrpc-http-connection": "1.0.8", @@ -8467,17 +9897,18 @@ "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.21.3", - "@walletconnect/types": "2.21.3", - "@walletconnect/utils": "2.21.3", + "@walletconnect/sign-client": "2.21.7", + "@walletconnect/types": "2.21.7", + "@walletconnect/utils": "2.21.7", "es-toolkit": "1.39.3", "events": "3.3.0" } }, "node_modules/@reown/appkit/node_modules/@walletconnect/utils": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.3.tgz", - "integrity": "sha512-LHxYX69vG7aPCQB9YT1F8ibwAfRNYwqCEBMplrmquAX+l4lMHTpXvsFF/a5NWFT23DKzbWZ4VTfQTDZ//XJKpg==", + "version": "2.21.7", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.7.tgz", + "integrity": "sha512-qyaclTgcFf9AwVuoV8CLLg8wfH3nX7yZdpylNkDqCpS7wawQL9zmFFTaGgma8sQrCsd3Sd9jUIymcpRvCJnSTw==", + "license": "Apache-2.0", "dependencies": { "@msgpack/msgpack": "3.1.2", "@noble/ciphers": "1.3.0", @@ -8490,7 +9921,7 @@ "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.3", + "@walletconnect/types": "2.21.7", "@walletconnect/window-getters": "1.0.1", "@walletconnect/window-metadata": "1.0.1", "blakejs": "1.2.1", @@ -8511,6 +9942,7 @@ "url": "https://github.com/sponsors/wevm" } ], + "license": "MIT", "dependencies": { "@noble/curves": "1.9.1", "@noble/hashes": "1.8.0", @@ -8534,6 +9966,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz", "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==", + "license": "MIT", "dependencies": { "@noble/hashes": "1.8.0" }, @@ -8547,12 +9980,18 @@ "node_modules/@reown/appkit/node_modules/es-toolkit": { "version": "1.39.3", "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.39.3.tgz", - "integrity": "sha512-Qb/TCFCldgOy8lZ5uC7nLGdqJwSabkQiYQShmw4jyiPk1pZzaYWTwaYKYP7EgLccWYgZocMrtItrwh683voaww==" + "integrity": "sha512-Qb/TCFCldgOy8lZ5uC7nLGdqJwSabkQiYQShmw4jyiPk1pZzaYWTwaYKYP7EgLccWYgZocMrtItrwh683voaww==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] }, "node_modules/@reown/appkit/node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/@reown/appkit/node_modules/ox": { "version": "0.7.1", @@ -8564,6 +10003,7 @@ "url": "https://github.com/sponsors/wevm" } ], + "license": "MIT", "dependencies": { "@adraffy/ens-normalize": "^1.10.1", "@noble/ciphers": "^1.3.0", @@ -8583,6 +10023,12 @@ } } }, + "node_modules/@reown/appkit/node_modules/proxy-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-3.0.1.tgz", + "integrity": "sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==", + "license": "MIT" + }, "node_modules/@reown/appkit/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -8598,21 +10044,23 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/@reown/appkit/node_modules/unstorage": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", - "integrity": "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", + "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", + "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", - "h3": "^1.15.2", + "h3": "^1.15.4", "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.6", + "node-fetch-native": "^1.6.7", "ofetch": "^1.4.1", "ufo": "^1.6.1" }, @@ -8625,10 +10073,11 @@ "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", @@ -8673,6 +10122,9 @@ "@vercel/blob": { "optional": true }, + "@vercel/functions": { + "optional": true + }, "@vercel/kv": { "optional": true }, @@ -8693,10 +10145,35 @@ } } }, + "node_modules/@reown/appkit/node_modules/valtio": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/valtio/-/valtio-2.1.5.tgz", + "integrity": "sha512-vsh1Ixu5mT0pJFZm+Jspvhga5GzHUTYv0/+Th203pLfh3/wbHwxhu/Z2OkZDXIgHfjnjBns7SN9HNcbDvPmaGw==", + "license": "MIT", + "dependencies": { + "proxy-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "react": ">=18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + } + } + }, "node_modules/@reown/appkit/node_modules/ws": { "version": "8.18.2", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -8714,9 +10191,9 @@ } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.9", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.9.tgz", - "integrity": "sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w==", + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", "dev": true, "license": "MIT" }, @@ -10254,23 +11731,24 @@ } }, "node_modules/@stripe/stripe-js": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-7.4.0.tgz", - "integrity": "sha512-lQHQPfXPTBeh0XFjq6PqSBAyR7umwcJbvJhXV77uGCUDD6ymXJU/f2164ydLMLCCceNuPlbV9b+1smx98efwWQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-7.9.0.tgz", + "integrity": "sha512-ggs5k+/0FUJcIgNY08aZTqpBTtbExkJMYMLSMwyucrhtWexVOEY1KJmhBsxf+E/Q15f5rbwBpj+t0t2AW2oCsQ==", + "license": "MIT", "engines": { "node": ">=12.16" } }, "node_modules/@swc/core": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.29.tgz", - "integrity": "sha512-g4mThMIpWbNhV8G2rWp5a5/Igv8/2UFRJx2yImrLGMgrDDYZIopqZ/z0jZxDgqNA1QDx93rpwNF7jGsxVWcMlA==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.13.3.tgz", + "integrity": "sha512-ZaDETVWnm6FE0fc+c2UE8MHYVS3Fe91o5vkmGfgwGXFbxYvAjKSqxM/j4cRc9T7VZNSJjriXq58XkfCp3Y6f+w==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.21" + "@swc/types": "^0.1.23" }, "engines": { "node": ">=10" @@ -10280,16 +11758,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.11.29", - "@swc/core-darwin-x64": "1.11.29", - "@swc/core-linux-arm-gnueabihf": "1.11.29", - "@swc/core-linux-arm64-gnu": "1.11.29", - "@swc/core-linux-arm64-musl": "1.11.29", - "@swc/core-linux-x64-gnu": "1.11.29", - "@swc/core-linux-x64-musl": "1.11.29", - "@swc/core-win32-arm64-msvc": "1.11.29", - "@swc/core-win32-ia32-msvc": "1.11.29", - "@swc/core-win32-x64-msvc": "1.11.29" + "@swc/core-darwin-arm64": "1.13.3", + "@swc/core-darwin-x64": "1.13.3", + "@swc/core-linux-arm-gnueabihf": "1.13.3", + "@swc/core-linux-arm64-gnu": "1.13.3", + "@swc/core-linux-arm64-musl": "1.13.3", + "@swc/core-linux-x64-gnu": "1.13.3", + "@swc/core-linux-x64-musl": "1.13.3", + "@swc/core-win32-arm64-msvc": "1.13.3", + "@swc/core-win32-ia32-msvc": "1.13.3", + "@swc/core-win32-x64-msvc": "1.13.3" }, "peerDependencies": { "@swc/helpers": ">=0.5.17" @@ -10301,9 +11779,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.29.tgz", - "integrity": "sha512-whsCX7URzbuS5aET58c75Dloby3Gtj/ITk2vc4WW6pSDQKSPDuONsIcZ7B2ng8oz0K6ttbi4p3H/PNPQLJ4maQ==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.13.3.tgz", + "integrity": "sha512-ux0Ws4pSpBTqbDS9GlVP354MekB1DwYlbxXU3VhnDr4GBcCOimpocx62x7cFJkSpEBF8bmX8+/TTCGKh4PbyXw==", "cpu": [ "arm64" ], @@ -10318,9 +11796,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.11.29.tgz", - "integrity": "sha512-S3eTo/KYFk+76cWJRgX30hylN5XkSmjYtCBnM4jPLYn7L6zWYEPajsFLmruQEiTEDUg0gBEWLMNyUeghtswouw==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.13.3.tgz", + "integrity": "sha512-p0X6yhxmNUOMZrbeZ3ZNsPige8lSlSe1llllXvpCLkKKxN/k5vZt1sULoq6Nj4eQ7KeHQVm81/+AwKZyf/e0TA==", "cpu": [ "x64" ], @@ -10335,9 +11813,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.29.tgz", - "integrity": "sha512-o9gdshbzkUMG6azldHdmKklcfrcMx+a23d/2qHQHPDLUPAN+Trd+sDQUYArK5Fcm7TlpG4sczz95ghN0DMkM7g==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.13.3.tgz", + "integrity": "sha512-OmDoiexL2fVWvQTCtoh0xHMyEkZweQAlh4dRyvl8ugqIPEVARSYtaj55TBMUJIP44mSUOJ5tytjzhn2KFxFcBA==", "cpu": [ "arm" ], @@ -10352,9 +11830,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.29.tgz", - "integrity": "sha512-sLoaciOgUKQF1KX9T6hPGzvhOQaJn+3DHy4LOHeXhQqvBgr+7QcZ+hl4uixPKTzxk6hy6Hb0QOvQEdBAAR1gXw==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.13.3.tgz", + "integrity": "sha512-STfKku3QfnuUj6k3g9ld4vwhtgCGYIFQmsGPPgT9MK/dI3Lwnpe5Gs5t1inoUIoGNP8sIOLlBB4HV4MmBjQuhw==", "cpu": [ "arm64" ], @@ -10369,9 +11847,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.29.tgz", - "integrity": "sha512-PwjB10BC0N+Ce7RU/L23eYch6lXFHz7r3NFavIcwDNa/AAqywfxyxh13OeRy+P0cg7NDpWEETWspXeI4Ek8otw==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.13.3.tgz", + "integrity": "sha512-bc+CXYlFc1t8pv9yZJGus372ldzOVscBl7encUBlU1m/Sig0+NDJLz6cXXRcFyl6ABNOApWeR4Yl7iUWx6C8og==", "cpu": [ "arm64" ], @@ -10386,9 +11864,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.29.tgz", - "integrity": "sha512-i62vBVoPaVe9A3mc6gJG07n0/e7FVeAvdD9uzZTtGLiuIfVfIBta8EMquzvf+POLycSk79Z6lRhGPZPJPYiQaA==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.13.3.tgz", + "integrity": "sha512-dFXoa0TEhohrKcxn/54YKs1iwNeW6tUkHJgXW33H381SvjKFUV53WR231jh1sWVJETjA3vsAwxKwR23s7UCmUA==", "cpu": [ "x64" ], @@ -10403,9 +11881,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.29.tgz", - "integrity": "sha512-YER0XU1xqFdK0hKkfSVX1YIyCvMDI7K07GIpefPvcfyNGs38AXKhb2byySDjbVxkdl4dycaxxhRyhQ2gKSlsFQ==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.13.3.tgz", + "integrity": "sha512-ieyjisLB+ldexiE/yD8uomaZuZIbTc8tjquYln9Quh5ykOBY7LpJJYBWvWtm1g3pHv6AXlBI8Jay7Fffb6aLfA==", "cpu": [ "x64" ], @@ -10420,9 +11898,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.29.tgz", - "integrity": "sha512-po+WHw+k9g6FAg5IJ+sMwtA/fIUL3zPQ4m/uJgONBATCVnDDkyW6dBA49uHNVtSEvjvhuD8DVWdFP847YTcITw==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.13.3.tgz", + "integrity": "sha512-elTQpnaX5vESSbhCEgcwXjpMsnUbqqHfEpB7ewpkAsLzKEXZaK67ihSRYAuAx6ewRQTo7DS5iTT6X5aQD3MzMw==", "cpu": [ "arm64" ], @@ -10437,9 +11915,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.29.tgz", - "integrity": "sha512-h+NjOrbqdRBYr5ItmStmQt6x3tnhqgwbj9YxdGPepbTDamFv7vFnhZR0YfB3jz3UKJ8H3uGJ65Zw1VsC+xpFkg==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.13.3.tgz", + "integrity": "sha512-nvehQVEOdI1BleJpuUgPLrclJ0TzbEMc+MarXDmmiRFwEUGqj+pnfkTSb7RZyS1puU74IXdK/YhTirHurtbI9w==", "cpu": [ "ia32" ], @@ -10454,9 +11932,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.11.29", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.29.tgz", - "integrity": "sha512-Q8cs2BDV9wqDvqobkXOYdC+pLUSEpX/KvI0Dgfun1F+LzuLotRFuDhrvkU9ETJA6OnD2+Fn/ieHgloiKA/Mn/g==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.13.3.tgz", + "integrity": "sha512-A+JSKGkRbPLVV2Kwx8TaDAV0yXIXm/gc8m98hSkVDGlPBBmydgzNdWy3X7HTUBM7IDk7YlWE7w2+RUGjdgpTmg==", "cpu": [ "x64" ], @@ -10496,9 +11974,9 @@ } }, "node_modules/@swc/types": { - "version": "0.1.21", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.21.tgz", - "integrity": "sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==", + "version": "0.1.23", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.23.tgz", + "integrity": "sha512-u1iIVZV9Q0jxY+yM2vw/hZGDNudsN85bBpTqzAQ9rzkxW9D+e3aEM4Han+ow518gSewkXgjmEK0BD79ZcNVgPw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -10506,9 +11984,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.80.7", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.80.7.tgz", - "integrity": "sha512-s09l5zeUKC8q7DCCCIkVSns8zZrK4ZDT6ryEjxNBFi68G4z2EBobBS7rdOY3r6W1WbUDpc1fe5oY+YO/+2UVUg==", + "version": "5.83.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.83.0.tgz", + "integrity": "sha512-0M8dA+amXUkyz5cVUm/B+zSk3xkQAcuXuz5/Q/LveT4ots2rBpPTZOzd7yJa2Utsf8D2Upl5KyjhHRY+9lB/XA==", "license": "MIT", "funding": { "type": "github", @@ -10516,12 +11994,12 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.80.7", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.80.7.tgz", - "integrity": "sha512-u2F0VK6+anItoEvB3+rfvTO9GEh2vb00Je05OwlUe/A0lkJBgW1HckiY3f9YZa+jx6IOe4dHPh10dyp9aY3iRQ==", + "version": "5.83.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.83.0.tgz", + "integrity": "sha512-/XGYhZ3foc5H0VM2jLSD/NyBRIOK4q9kfeml4+0x2DlL6xVuAcVEW+hTlTapAmejObg0i3eNqhkr2dT+eciwoQ==", "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.80.7" + "@tanstack/query-core": "5.83.0" }, "funding": { "type": "github", @@ -10585,18 +12063,18 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", - "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.4.tgz", + "integrity": "sha512-xDXgLjVunjHqczScfkCJ9iyjdNOVHvvCdqHSSxwM9L0l/wHkTRum67SDc020uAlCoqktJplgO2AAQeLP1wgqDQ==", "dev": true, "license": "MIT", "dependencies": { "@adobe/css-tools": "^4.4.0", "aria-query": "^5.0.0", - "chalk": "^3.0.0", "css.escape": "^1.5.1", "dom-accessibility-api": "^0.6.3", "lodash": "^4.17.21", + "picocolors": "^1.1.1", "redent": "^3.0.0" }, "engines": { @@ -10605,20 +12083,6 @@ "yarn": ">=1" } }, - "node_modules/@testing-library/jest-dom/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", @@ -10727,16 +12191,6 @@ "node": ">=0.2.6" } }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/@trapezedev/configure": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@trapezedev/configure/-/configure-7.1.3.tgz", @@ -11402,9 +12856,9 @@ "license": "MIT" }, "node_modules/@types/jsdom": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", - "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "version": "21.1.7", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz", + "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==", "dev": true, "license": "MIT", "dependencies": { @@ -11434,10 +12888,9 @@ "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.17.tgz", - "integrity": "sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==", - "dev": true, + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==", "license": "MIT" }, "node_modules/@types/mdx": { @@ -11743,15 +13196,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.35.0.tgz", - "integrity": "sha512-6sMvZePQrnZH2/cJkwRpkT7DxoAWh+g6+GFRK6bV3YQo7ogi3SX5rgF6099r5Q53Ma5qeT7LGmOmuIutF4t3lA==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.45.0.tgz", + "integrity": "sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.35.0", - "@typescript-eslint/types": "8.35.0", - "@typescript-eslint/typescript-estree": "8.35.0", - "@typescript-eslint/visitor-keys": "8.35.0", + "@typescript-eslint/scope-manager": "8.45.0", + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/typescript-estree": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0", "debug": "^4.3.4" }, "engines": { @@ -11763,17 +13217,18 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/project-service": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.0.tgz", - "integrity": "sha512-41xatqRwWZuhUMF/aZm2fcUsOFKNcG28xqRSS6ZVr9BVJtGExosLAm5A1OxTjRMagx8nJqva+P5zNIGt8RIgbQ==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.45.0.tgz", + "integrity": "sha512-3pcVHwMG/iA8afdGLMuTibGR7pDsn9RjDev6CCB+naRsSYs2pns5QbinF4Xqw6YC/Sj3lMrm/Im0eMfaa61WUg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.35.0", - "@typescript-eslint/types": "^8.35.0", + "@typescript-eslint/tsconfig-utils": "^8.45.0", + "@typescript-eslint/types": "^8.45.0", "debug": "^4.3.4" }, "engines": { @@ -11784,17 +13239,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.0.tgz", - "integrity": "sha512-+AgL5+mcoLxl1vGjwNfiWq5fLDZM1TmTPYs2UkyHfFhgERxBbqHlNjRzhThJqz+ktBqTChRYY6zwbMwy0591AA==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.45.0.tgz", + "integrity": "sha512-clmm8XSNj/1dGvJeO6VGH7EUSeA0FMs+5au/u3lrA3KfG8iJ4u8ym9/j2tTEoacAffdW1TVUzXO30W1JTJS7dA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.35.0", - "@typescript-eslint/visitor-keys": "8.35.0" + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11805,10 +13261,11 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.0.tgz", - "integrity": "sha512-04k/7247kZzFraweuEirmvUj+W3bJLI9fX6fbo1Qm2YykuBvEhRTPl8tcxlYO8kZZW+HIXfkZNoasVb8EV4jpA==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.45.0.tgz", + "integrity": "sha512-aFdr+c37sc+jqNMGhH+ajxPXwjv9UtFZk79k8pLoJ6p4y0snmYpPA52GuWHgt2ZF4gRRW6odsEj41uZLojDt5w==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -11817,14 +13274,15 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.0.tgz", - "integrity": "sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.45.0.tgz", + "integrity": "sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -11834,15 +13292,16 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.0.tgz", - "integrity": "sha512-F+BhnaBemgu1Qf8oHrxyw14wq6vbL8xwWKKMwTMwYIRmFFY/1n/9T/jpbobZL8vp7QyEUcC6xGrnAO4ua8Kp7w==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.45.0.tgz", + "integrity": "sha512-GfE1NfVbLam6XQ0LcERKwdTTPlLvHvXXhOeUGC1OXi4eQBoyy1iVsW+uzJ/J9jtCz6/7GCQ9MtrQ0fml/jWCnA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.35.0", - "@typescript-eslint/tsconfig-utils": "8.35.0", - "@typescript-eslint/types": "8.35.0", - "@typescript-eslint/visitor-keys": "8.35.0", + "@typescript-eslint/project-service": "8.45.0", + "@typescript-eslint/tsconfig-utils": "8.45.0", + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -11858,16 +13317,17 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.0.tgz", - "integrity": "sha512-zTh2+1Y8ZpmeQaQVIc/ZZxsx8UzgKJyNg1PTvjzC7WMhPSVS8bfDX34k1SrwOf016qd5RU3az2UxUNue3IfQ5g==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.45.0.tgz", + "integrity": "sha512-qsaFBA3e09MIDAGFUrTk+dzqtfv1XPVz8t8d1f0ybTzrCY7BKiMC5cjrl1O/P7UmHsNyW90EYSkU/ZWpmXelag==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.35.0", + "@typescript-eslint/types": "8.45.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -11883,6 +13343,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -11892,6 +13353,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -11904,6 +13366,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -11919,6 +13382,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -12182,68 +13646,18 @@ "node": ">=20.0.0" } }, - "node_modules/@vanilla-extract/css": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.15.5.tgz", - "integrity": "sha512-N1nQebRWnXvlcmu9fXKVUs145EVwmWtMD95bpiEKtvehHDpUhmO1l2bauS7FGYKbi3dU1IurJbGpQhBclTr1ng==", - "license": "MIT", - "dependencies": { - "@emotion/hash": "^0.9.0", - "@vanilla-extract/private": "^1.0.6", - "css-what": "^6.1.0", - "cssesc": "^3.0.0", - "csstype": "^3.0.7", - "dedent": "^1.5.3", - "deep-object-diff": "^1.1.9", - "deepmerge": "^4.2.2", - "lru-cache": "^10.4.3", - "media-query-parser": "^2.0.2", - "modern-ahocorasick": "^1.0.0", - "picocolors": "^1.0.0" - } - }, - "node_modules/@vanilla-extract/css/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/@vanilla-extract/dynamic": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@vanilla-extract/dynamic/-/dynamic-2.1.2.tgz", - "integrity": "sha512-9BGMciD8rO1hdSPIAh1ntsG4LPD3IYKhywR7VOmmz9OO4Lx1hlwkSg3E6X07ujFx7YuBfx0GDQnApG9ESHvB2A==", - "license": "MIT", - "dependencies": { - "@vanilla-extract/private": "^1.0.6" - } - }, - "node_modules/@vanilla-extract/private": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.7.tgz", - "integrity": "sha512-v9Yb0bZ5H5Kr8ciwPXyEToOFD7J/fKKH93BYP7NCSZg02VYsA/pNFrLeVDJM2OO/vsygduPKuiEI6ORGQ4IcBw==", - "license": "MIT" - }, - "node_modules/@vanilla-extract/sprinkles": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@vanilla-extract/sprinkles/-/sprinkles-1.6.3.tgz", - "integrity": "sha512-oCHlQeYOBIJIA2yWy2GnY5wE2A7hGHDyJplJo4lb+KEIBcJWRnDJDg8ywDwQS5VfWJrBBO3drzYZPFpWQjAMiQ==", - "license": "MIT", - "peerDependencies": { - "@vanilla-extract/css": "^1.0.0" - } - }, "node_modules/@vitejs/plugin-react-swc": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.10.0.tgz", - "integrity": "sha512-ZmkdHw3wo/o/Rk05YsXZs/DJAfY2CdQ5DUAjoWji+PEr+hYADdGMCGgEAILbiKj+CjspBTuTACBcWDrmC8AUfw==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.11.0.tgz", + "integrity": "sha512-YTJCGFdNMHCMfjODYtxRNVAYmTWQ1Lb8PulP/2/f/oEEtglw8oKxKIZmmRkyXrVrHfsKOaVkAc3NT9/dMutO5w==", "dev": true, "license": "MIT", "dependencies": { - "@rolldown/pluginutils": "1.0.0-beta.9", - "@swc/core": "^1.11.22" + "@rolldown/pluginutils": "1.0.0-beta.27", + "@swc/core": "^1.12.11" }, "peerDependencies": { - "vite": "^4 || ^5 || ^6" + "vite": "^4 || ^5 || ^6 || ^7" } }, "node_modules/@vitest/expect": { @@ -12402,6 +13816,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@wallet-standard/base/-/base-1.1.0.tgz", "integrity": "sha512-DJDQhjKmSNVLKWItoKThJS+CsJQjR9AOBOirBVT1F9YpRyC9oYHE+ZnSf8y8bxUphtKqdQMPVQ2mHohYdRvDVQ==", + "license": "Apache-2.0", "engines": { "node": ">=16" } @@ -12410,6 +13825,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@wallet-standard/wallet/-/wallet-1.1.0.tgz", "integrity": "sha512-Gt8TnSlDZpAl+RWOOAB/kuvC7RpcdWAlFbHNoi4gsXsfaWa1QCT6LBcfIYTPdOZC9OVZUDwqGuGAcqZejDmHjg==", + "license": "Apache-2.0", "dependencies": { "@wallet-standard/base": "^1.1.0" }, @@ -13232,32 +14648,6 @@ } } }, - "node_modules/@walletconnect/ethereum-provider/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "license": "ISC", - "optional": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/@walletconnect/ethereum-provider/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "optional": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@walletconnect/ethereum-provider/node_modules/isows": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", @@ -13286,19 +14676,6 @@ "lit-html": "^3.1.0" } }, - "node_modules/@walletconnect/ethereum-provider/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "optional": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@walletconnect/ethereum-provider/node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", @@ -13336,67 +14713,6 @@ } } }, - "node_modules/@walletconnect/ethereum-provider/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "optional": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@walletconnect/ethereum-provider/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "optional": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@walletconnect/ethereum-provider/node_modules/qrcode": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", - "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", - "license": "MIT", - "optional": true, - "dependencies": { - "dijkstrajs": "^1.0.1", - "encode-utf8": "^1.0.3", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" - }, - "bin": { - "qrcode": "bin/qrcode" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@walletconnect/ethereum-provider/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "optional": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@walletconnect/ethereum-provider/node_modules/unstorage": { "version": "1.16.0", "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", @@ -13490,21 +14806,6 @@ } } }, - "node_modules/@walletconnect/ethereum-provider/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "license": "MIT", - "optional": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@walletconnect/ethereum-provider/node_modules/ws": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", @@ -13527,50 +14828,6 @@ } } }, - "node_modules/@walletconnect/ethereum-provider/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "license": "ISC", - "optional": true - }, - "node_modules/@walletconnect/ethereum-provider/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "license": "MIT", - "optional": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@walletconnect/ethereum-provider/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "license": "ISC", - "optional": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@walletconnect/events": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@walletconnect/events/-/events-1.0.1.tgz", @@ -13760,30 +15017,6 @@ "@lit-labs/ssr-dom-shim": "^1.0.0" } }, - "node_modules/@walletconnect/modal-ui/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@walletconnect/modal-ui/node_modules/lit": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", @@ -13815,130 +15048,6 @@ "@types/trusted-types": "^2.0.2" } }, - "node_modules/@walletconnect/modal-ui/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/qrcode": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", - "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", - "license": "MIT", - "dependencies": { - "dijkstrajs": "^1.0.1", - "encode-utf8": "^1.0.3", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" - }, - "bin": { - "qrcode": "bin/qrcode" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "license": "ISC" - }, - "node_modules/@walletconnect/modal-ui/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@walletconnect/modal-ui/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@walletconnect/relay-api": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.11.tgz", @@ -15732,30 +16841,6 @@ "qrcode": "1.5.3" } }, - "node_modules/@web3modal/ui/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/@web3modal/ui/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@web3modal/ui/node_modules/lit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", @@ -15767,130 +16852,6 @@ "lit-html": "^3.1.0" } }, - "node_modules/@web3modal/ui/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@web3modal/ui/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@web3modal/ui/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@web3modal/ui/node_modules/qrcode": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", - "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", - "license": "MIT", - "dependencies": { - "dijkstrajs": "^1.0.1", - "encode-utf8": "^1.0.3", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" - }, - "bin": { - "qrcode": "bin/qrcode" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@web3modal/ui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@web3modal/ui/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@web3modal/ui/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "license": "ISC" - }, - "node_modules/@web3modal/ui/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@web3modal/ui/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@web3modal/wallet": { "version": "5.1.11", "resolved": "https://registry.npmjs.org/@web3modal/wallet/-/wallet-5.1.11.tgz", @@ -16139,14 +17100,6 @@ "license": "(Unlicense OR Apache-2.0)", "optional": true }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/abitype": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", @@ -16193,17 +17146,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -16250,16 +17192,13 @@ "license": "MIT" }, "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, "license": "MIT", - "dependencies": { - "debug": "4" - }, "engines": { - "node": ">= 6.0.0" + "node": ">= 14" } }, "node_modules/aggregate-error": { @@ -16920,13 +17859,13 @@ } }, "node_modules/axios": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.10.0.tgz", - "integrity": "sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", + "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", + "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, @@ -17371,6 +18310,32 @@ "file-uri-to-path": "1.0.0" } }, + "node_modules/bip174": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bip174/-/bip174-2.1.1.tgz", + "integrity": "sha512-mdFV5+/v0XyNYXjBS6CQPLo9ekCx4gtKZFnJm5PMto7Fs9hTTDpkkzOB7/FtluRI6JbUUAu+snTYfJRgHLZbZQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/bip322-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bip322-js/-/bip322-js-2.0.0.tgz", + "integrity": "sha512-wyewxyCLl+wudZWiyvA46SaNQL41dVDJ+sx4HvD6zRXScHzAycwuKEMmbvr2qN+P/IIYArF4XVqlyZVnjutELQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "@bitcoinerlab/secp256k1": "^1.1.1", + "bitcoinjs-lib": "^6.1.5", + "bitcoinjs-message": "^2.2.0", + "ecpair": "^2.1.0", + "elliptic": "^6.5.5", + "fast-sha256": "^1.3.0", + "secp256k1": "^5.0.0" + } + }, "node_modules/bip39": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", @@ -17380,6 +18345,147 @@ "@noble/hashes": "^1.2.0" } }, + "node_modules/bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bitcoinjs-lib": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.7.tgz", + "integrity": "sha512-tlf/r2DGMbF7ky1MgUqXHzypYHakkEnm0SZP23CJKIqNY/5uNAnMbFhMJdhjrL/7anfb/U8+AlpdjPWjPnAalg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@noble/hashes": "^1.2.0", + "bech32": "^2.0.0", + "bip174": "^2.1.1", + "bs58check": "^3.0.1", + "typeforce": "^1.11.3", + "varuint-bitcoin": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/bitcoinjs-lib/node_modules/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==", + "license": "MIT", + "optional": true + }, + "node_modules/bitcoinjs-lib/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/bitcoinjs-lib/node_modules/bs58check": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", + "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "@noble/hashes": "^1.2.0", + "bs58": "^5.0.0" + } + }, + "node_modules/bitcoinjs-message": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bitcoinjs-message/-/bitcoinjs-message-2.2.0.tgz", + "integrity": "sha512-103Wy3xg8Y9o+pdhGP4M3/mtQQuUWs6sPuOp1mYphSUoSMHjHTlkj32K4zxU8qMH0Ckv23emfkGlFWtoWZ7YFA==", + "license": "MIT", + "optional": true, + "dependencies": { + "bech32": "^1.1.3", + "bs58check": "^2.1.2", + "buffer-equals": "^1.0.3", + "create-hash": "^1.1.2", + "secp256k1": "^3.0.1", + "varuint-bitcoin": "^1.0.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/bitcoinjs-message/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", + "optional": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bitcoinjs-message/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "license": "MIT", + "optional": true + }, + "node_modules/bitcoinjs-message/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT", + "optional": true + }, + "node_modules/bitcoinjs-message/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", + "optional": true, + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bitcoinjs-message/node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "license": "MIT", + "optional": true, + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/bitcoinjs-message/node_modules/secp256k1": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.1.tgz", + "integrity": "sha512-tArjQw2P0RTdY7QmkNehgp6TVvQXq6ulIhxv8gaH6YubKG/wxxAoNKcbuXjDhybbc+b2Ihc7e0xxiGN744UIiQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bindings": "^1.5.0", + "bip66": "^1.1.5", + "bn.js": "^4.11.8", + "create-hash": "^1.2.0", + "drbg.js": "^1.0.1", + "elliptic": "^6.5.7", + "nan": "^2.14.0", + "safe-buffer": "^5.1.2" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/bitfield": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/bitfield/-/bitfield-4.2.0.tgz", @@ -18036,6 +19142,16 @@ "node": "*" } }, + "node_modules/buffer-equals": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz", + "integrity": "sha512-99MsCq0j5+RhubVEtKQgKaD6EM+UP3xJgIvQqwJ3SOLDUekzxMX1ylXBng+Wa2sh7mGT0W6RUly8ojjr1Tt6nA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -18234,6 +19350,18 @@ "tsx": "^4.19.2" } }, + "node_modules/cardano-bridge/node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -19426,6 +20554,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">= 6" @@ -19453,33 +20582,20 @@ "node": ">=4" } }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true, - "license": "MIT" - }, "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", "dev": true, "license": "MIT", "dependencies": { - "cssom": "~0.3.6" + "@asamuzakjp/css-color": "^3.2.0", + "rrweb-cssom": "^0.8.0" }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true, - "license": "MIT" - }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -19487,14 +20603,14 @@ "license": "MIT" }, "node_modules/cypress": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-14.4.0.tgz", - "integrity": "sha512-/I59Fqxo7fqdiDi3IM2QKA65gZ7+PVejXg404/I8ZSq+NOnrmw+2pnMUJzpoNyg7KABcEBmgpkfAqhV98p7wJA==", + "version": "14.5.4", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-14.5.4.tgz", + "integrity": "sha512-0Dhm4qc9VatOcI1GiFGVt8osgpPdqJLHzRwcAB5MSD/CAAts3oybvPUPawHyvJZUd8osADqZe/xzMsZ8sDTjXw==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { - "@cypress/request": "^3.0.8", + "@cypress/request": "^3.0.9", "@cypress/xvfb": "^1.2.4", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", @@ -19520,6 +20636,7 @@ "figures": "^3.2.0", "fs-extra": "^9.1.0", "getos": "^3.2.1", + "hasha": "5.2.2", "is-installed-globally": "~0.4.0", "lazy-ass": "^1.6.0", "listr2": "^3.8.3", @@ -19692,18 +20809,17 @@ } }, "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", "dev": true, "license": "MIT", "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/data-view-buffer": { @@ -19846,9 +20962,9 @@ } }, "node_modules/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", "dev": true, "license": "MIT" }, @@ -19880,6 +20996,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", + "dev": true, "license": "MIT", "peerDependencies": { "babel-plugin-macros": "^3.1.0" @@ -19916,16 +21033,11 @@ "dev": true, "license": "MIT" }, - "node_modules/deep-object-diff": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz", - "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==", - "license": "MIT" - }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -20478,20 +21590,6 @@ ], "license": "BSD-2-Clause" }, - "node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "deprecated": "Use your platform's native DOMException instead", - "dev": true, - "license": "MIT", - "dependencies": { - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", @@ -20537,9 +21635,9 @@ } }, "node_modules/dotenv": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", - "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", + "version": "17.2.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", + "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -20548,6 +21646,21 @@ "url": "https://dotenvx.com" } }, + "node_modules/drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", + "license": "MIT", + "optional": true, + "dependencies": { + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -20642,20 +21755,19 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "license": "Apache-2.0", + "node_modules/ecpair": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ecpair/-/ecpair-2.1.0.tgz", + "integrity": "sha512-cL/mh3MtJutFOvFc27GPZE2pWL3a3k4YvzUWEOvilnfZVlH3Jwgx/7d6tlD7/75tNk8TG2m+7Kgtz0SI1tWcqw==", + "license": "MIT", + "optional": true, "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" + "randombytes": "^2.1.0", + "typeforce": "^1.18.0", + "wif": "^2.0.6" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.0.0" } }, "node_modules/electron-to-chromium": { @@ -21175,54 +22287,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint": { - "version": "9.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.31.0.tgz", - "integrity": "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==", + "version": "9.34.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.34.0.tgz", + "integrity": "sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.0", - "@eslint/core": "^0.15.0", + "@eslint/config-helpers": "^0.3.1", + "@eslint/core": "^0.15.2", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.31.0", - "@eslint/plugin-kit": "^0.3.1", + "@eslint/js": "9.34.0", + "@eslint/plugin-kit": "^0.3.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -21270,9 +22349,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz", - "integrity": "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==", + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", "bin": { @@ -21336,35 +22415,22 @@ } }, "node_modules/eslint-plugin-cypress": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-4.3.0.tgz", - "integrity": "sha512-CgS/S940MJlT8jtnWGKI0LvZQBGb/BB0QCpgBOxFMM/Z6znD+PZUwBhCTwHKN2GEr5AOny3xB92an0QfzBGooQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-5.1.1.tgz", + "integrity": "sha512-LxTmZf1LLh9EklZBVvKNEZj71X9tCJnlYDviAJGsOgEVc6jz+tBODSpm02CS/9eJOfRqGsmVyvIw7LHXQ13RaA==", "dev": true, "license": "MIT", "dependencies": { - "globals": "^15.15.0" + "globals": "^16.2.0" }, "peerDependencies": { "eslint": ">=9" } }, - "node_modules/eslint-plugin-cypress/node_modules/globals": { - "version": "15.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", - "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint-plugin-i18next": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-i18next/-/eslint-plugin-i18next-6.1.1.tgz", - "integrity": "sha512-/Vy6BfX44njxpRnbJm7bbph0KaNJF2eillqN5W+u03hHuxmh9BjtjdPSrI9HPtyoEbG4j5nBn9gXm/dg99mz3Q==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-i18next/-/eslint-plugin-i18next-6.1.3.tgz", + "integrity": "sha512-z/h4oBRd9wI1ET60HqcLSU6XPeAh/EPOrBBTyCdkWeMoYrWAaUVA+DOQkWTiNIyCltG4NTmy62SQisVXxoXurw==", "dev": true, "license": "ISC", "dependencies": { @@ -21372,7 +22438,7 @@ "requireindex": "~1.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=18.10.0" } }, "node_modules/eslint-plugin-import": { @@ -21534,10 +22600,11 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.1.tgz", - "integrity": "sha512-dobTkHT6XaEVOo8IO90Q4DOSxnm3Y151QxPJlM/vKC0bVy+d6cVWQZLlFiuZPP0wS6vZwSKeJgKkcS+KfMBlRw==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", + "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==", "dev": true, + "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", "synckit": "^0.11.7" @@ -21674,19 +22741,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@eslint/core": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", - "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", @@ -21925,9 +22979,9 @@ } }, "node_modules/ethers": { - "version": "6.14.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.14.3.tgz", - "integrity": "sha512-qq7ft/oCJohoTcsNPFaXSQUm457MA5iWqkf1Mb11ujONdg7jBI6sAOrHaTi3j0CBqIGFSCeR/RMc+qwRRub7IA==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.15.0.tgz", + "integrity": "sha512-Kf/3ZW54L4UT0pZtsY/rf+EkBU7Qi5nnhonjUb8yTXcxH3cdcWrV2cRyk0Xk/4jK6OoHhxxZHriyhje20If2hQ==", "funding": [ { "type": "individual", @@ -22273,6 +23327,13 @@ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "license": "MIT" }, + "node_modules/fast-sha256": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-sha256/-/fast-sha256-1.3.0.tgz", + "integrity": "sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==", + "license": "Unlicense", + "optional": true + }, "node_modules/fast-uri": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", @@ -22432,39 +23493,6 @@ "license": "MIT", "optional": true }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/filename-reserved-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz", @@ -22683,14 +23711,15 @@ } }, "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -22938,9 +23967,9 @@ } }, "node_modules/get-east-asian-width": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", - "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", "dev": true, "license": "MIT", "engines": { @@ -23403,9 +24432,9 @@ } }, "node_modules/globals": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.2.0.tgz", - "integrity": "sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==", + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", "dev": true, "license": "MIT", "engines": { @@ -23499,17 +24528,17 @@ "license": "MIT" }, "node_modules/h3": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.3.tgz", - "integrity": "sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.4.tgz", + "integrity": "sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==", "license": "MIT", "dependencies": { "cookie-es": "^1.2.2", - "crossws": "^0.3.4", + "crossws": "^0.3.5", "defu": "^6.1.4", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", - "node-mock-http": "^1.0.0", + "node-mock-http": "^1.0.2", "radix3": "^1.1.2", "ufo": "^1.6.1", "uncrypto": "^0.1.3" @@ -23666,6 +24695,33 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, "node_modules/hashlru": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", @@ -23760,16 +24816,16 @@ "license": "ISC" }, "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", "dev": true, "license": "MIT", "dependencies": { - "whatwg-encoding": "^2.0.0" + "whatwg-encoding": "^3.1.1" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/html-escaper": { @@ -23794,18 +24850,17 @@ "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==" }, "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "license": "MIT", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/http-signature": { @@ -23830,17 +24885,17 @@ "license": "MIT" }, "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "6", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/human-signals": { @@ -23878,9 +24933,9 @@ } }, "node_modules/i18next": { - "version": "25.2.1", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.2.1.tgz", - "integrity": "sha512-+UoXK5wh+VlE1Zy5p6MjcvctHXAhRwQKCxiJD8noKZzIXmnAX8gdHX5fLPA3MEVxEN4vbZkQFy8N0LyD9tUqPw==", + "version": "25.4.2", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.4.2.tgz", + "integrity": "sha512-gD4T25a6ovNXsfXY1TwHXXXLnD/K2t99jyYMCSimSCBnBRJVQr5j+VAaU83RJCPzrTGhVQ6dqIga66xO2rtd5g==", "funding": [ { "type": "individual", @@ -23898,7 +24953,7 @@ "license": "MIT", "peer": true, "dependencies": { - "@babel/runtime": "^7.27.1" + "@babel/runtime": "^7.27.6" }, "peerDependencies": { "typescript": "^5" @@ -23910,9 +24965,9 @@ } }, "node_modules/i18next-browser-languagedetector": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.1.0.tgz", - "integrity": "sha512-mHZxNx1Lq09xt5kCauZ/4bsXOEA2pfpwSoU11/QTJB+pD94iONFwp+ohqi///PwiFvjFOxe1akYCdHyFo1ng5Q==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.2.0.tgz", + "integrity": "sha512-P+3zEKLnOF0qmiesW383vsLdtQVyKtCNA9cjSoKCppTKPQVfKd2W8hbVo5ZhNJKDqeM7BOcvNoKJOjpHh4Js9g==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.2" @@ -24948,25 +26003,6 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/jake": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", @@ -25393,26 +26429,23 @@ "license": "MIT" }, "node_modules/jest-environment-jsdom": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", - "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-30.1.2.tgz", + "integrity": "sha512-LXsfAh5+mDTuXDONGl1ZLYxtJEaS06GOoxJb2arcJTjIfh1adYg8zLD8f6P0df8VmjvCaMrLmc1PgHUI/YUTbg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/jsdom": "^20.0.0", + "@jest/environment": "30.1.2", + "@jest/environment-jsdom-abstract": "30.1.2", + "@types/jsdom": "^21.1.7", "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0", - "jsdom": "^20.0.0" + "jsdom": "^26.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { - "canvas": "^2.5.0" + "canvas": "^3.0.0" }, "peerDependenciesMeta": { "canvas": { @@ -25420,6 +26453,178 @@ } } }, + "node_modules/jest-environment-jsdom/node_modules/@jest/environment": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.1.2.tgz", + "integrity": "sha512-N8t1Ytw4/mr9uN28OnVf0SYE2dGhaIxOVYcwsf9IInBKjvofAjbFRvedvBBlyTYk2knbJTiEjEJ2PyyDIBnd9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "30.1.2", + "@jest/types": "30.0.5", + "@types/node": "*", + "jest-mock": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/@jest/fake-timers": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.1.2.tgz", + "integrity": "sha512-Beljfv9AYkr9K+ETX9tvV61rJTY706BhBUtiaepQHeEGfe0DbpvUA5Z3fomwc5Xkhns6NWrcFDZn+72fLieUnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.0.5", + "@sinonjs/fake-timers": "^13.0.0", + "@types/node": "*", + "jest-message-util": "30.1.0", + "jest-mock": "30.0.5", + "jest-util": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/@jest/schemas": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.34.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/@jest/types": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.5.tgz", + "integrity": "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "@types/istanbul-reports": "^3.0.4", + "@types/node": "*", + "@types/yargs": "^17.0.33", + "chalk": "^4.1.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/@sinclair/typebox": { + "version": "0.34.41", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz", + "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-environment-jsdom/node_modules/@sinonjs/fake-timers": { + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.1" + } + }, + "node_modules/jest-environment-jsdom/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jest-message-util": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.1.0.tgz", + "integrity": "sha512-HizKDGG98cYkWmaLUHChq4iN+oCENohQLb7Z5guBPumYs+/etonmNFlg1Ps6yN9LTPyZn+M+b/9BbnHx3WTMDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.0.5", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "micromatch": "^4.0.8", + "pretty-format": "30.0.5", + "slash": "^3.0.0", + "stack-utils": "^2.0.6" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jest-mock": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.0.5.tgz", + "integrity": "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.0.5", + "@types/node": "*", + "jest-util": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jest-util": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.0.5.tgz", + "integrity": "sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.0.5", + "@types/node": "*", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/pretty-format": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", + "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/jest-environment-node": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", @@ -26058,9 +27263,9 @@ "license": "MIT" }, "node_modules/js-base64": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz", - "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==", + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.8.tgz", + "integrity": "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==", "license": "BSD-3-Clause" }, "node_modules/js-cookie": { @@ -26108,44 +27313,38 @@ } }, "node_modules/jsdom": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "version": "26.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz", + "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", "dev": true, "license": "MIT", "dependencies": { - "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", + "cssstyle": "^4.2.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.5.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", + "nwsapi": "^2.2.16", + "parse5": "^7.2.1", + "rrweb-cssom": "^0.8.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", + "tough-cookie": "^5.1.1", + "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", - "xml-name-validator": "^4.0.0" + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.1.1", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" }, "peerDependencies": { - "canvas": "^2.5.0" + "canvas": "^3.0.0" }, "peerDependenciesMeta": { "canvas": { @@ -26153,36 +27352,10 @@ } } }, - "node_modules/jsdom/node_modules/tough-cookie": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsdom/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/jsdom/node_modules/ws": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", - "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "dev": true, "license": "MIT", "engines": { @@ -26592,22 +27765,19 @@ "license": "MIT" }, "node_modules/lint-staged": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.1.0.tgz", - "integrity": "sha512-HkpQh69XHxgCjObjejBT3s2ILwNjFx8M3nw+tJ/ssBauDlIpkx2RpqWSi1fBgkXLSSXnbR3iEq1NkVtpvV+FLQ==", + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.3.tgz", + "integrity": "sha512-1OnJEESB9zZqsp61XHH2fvpS1es3hRCxMplF/AJUDa8Ho8VrscYDIuxGrj3m8KPXbcWZ8fT9XTMUhEQmOVKpKw==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.4.1", - "commander": "^14.0.0", - "debug": "^4.4.1", - "lilconfig": "^3.1.3", - "listr2": "^8.3.3", + "commander": "^14.0.1", + "listr2": "^9.0.4", "micromatch": "^4.0.8", - "nano-spawn": "^1.0.2", + "nano-spawn": "^1.0.3", "pidtree": "^0.6.0", "string-argv": "^0.3.2", - "yaml": "^2.8.0" + "yaml": "^2.8.1" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -26620,9 +27790,9 @@ } }, "node_modules/lint-staged/node_modules/ansi-escapes": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", - "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.1.1.tgz", + "integrity": "sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q==", "dev": true, "license": "MIT", "dependencies": { @@ -26636,9 +27806,9 @@ } }, "node_modules/lint-staged/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { @@ -26648,19 +27818,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/lint-staged/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/lint-staged/node_modules/cli-cursor": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", @@ -26678,26 +27835,26 @@ } }, "node_modules/lint-staged/node_modules/cli-truncate": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.1.0.tgz", + "integrity": "sha512-7JDGG+4Zp0CsknDCedl0DYdaeOhc46QNpXi3NLQblkZpXXgA6LncLDUUyvrjSvZeF3VRQa+KiMGomazQrC1V8g==", "dev": true, "license": "MIT", "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" + "slice-ansi": "^7.1.0", + "string-width": "^8.0.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lint-staged/node_modules/commander": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz", - "integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.1.tgz", + "integrity": "sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==", "dev": true, "license": "MIT", "engines": { @@ -26705,33 +27862,36 @@ } }, "node_modules/lint-staged/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.5.0.tgz", + "integrity": "sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==", "dev": true, "license": "MIT" }, "node_modules/lint-staged/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", "dev": true, "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.1" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lint-staged/node_modules/listr2": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.3.3.tgz", - "integrity": "sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.4.tgz", + "integrity": "sha512-1wd/kpAdKRLwv7/3OKC8zZ5U8e/fajCfWMxacUvB79S5nLrYGPtUI/8chMQhn3LQjsRVErTb9i1ECAwW0ZIHnQ==", "dev": true, "license": "MIT", "dependencies": { - "cli-truncate": "^4.0.0", + "cli-truncate": "^5.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", "log-update": "^6.1.0", @@ -26739,7 +27899,7 @@ "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/lint-staged/node_modules/log-update": { @@ -26762,39 +27922,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, "node_modules/lint-staged/node_modules/onetime": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", @@ -26842,44 +27969,43 @@ } }, "node_modules/lint-staged/node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/lint-staged/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", + "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", + "get-east-asian-width": "^1.3.0", "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lint-staged/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, "license": "MIT", "dependencies": { @@ -26894,6 +28020,24 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/lint-staged/node_modules/wrap-ansi/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/listr2": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", @@ -27346,9 +28490,9 @@ "license": "MIT" }, "node_modules/markdown-to-jsx": { - "version": "7.7.6", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.7.6.tgz", - "integrity": "sha512-/PWFFoKKMidk4Ut06F5hs5sluq1aJ0CGvUJWsnCK6hx/LPM8vlhvKAxtGHJ+U+V2Il2wmnfO6r81ICD3xZRVaw==", + "version": "7.7.12", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.7.12.tgz", + "integrity": "sha512-Y5xNBqoaTooSLkmlg2P0fdbh53gp4MqW7zhvcweGCPUWvWI5BecWRYI8vPlzT8D7OULxsQg2qoRW9EsJlBWasQ==", "license": "MIT", "engines": { "node": ">= 10" @@ -27377,15 +28521,6 @@ "safe-buffer": "^5.1.2" } }, - "node_modules/media-query-parser": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz", - "integrity": "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - } - }, "node_modules/memoize-one": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", @@ -27900,12 +29035,6 @@ "integrity": "sha512-yc0LhH6tItlvfLBugVUEtgawwFU2sIe+cSdmRJJCTMZ5GEJyLxNyC/NIOAOGk67Fa8GNpOttO3Xz/1bHpXFD/g==", "license": "MIT" }, - "node_modules/modern-ahocorasick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.1.0.tgz", - "integrity": "sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ==", - "license": "MIT" - }, "node_modules/modify-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", @@ -27970,9 +29099,9 @@ "optional": true }, "node_modules/nano-spawn": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-1.0.2.tgz", - "integrity": "sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-1.0.3.tgz", + "integrity": "sha512-jtpsQDetTnvS2Ts1fiRdci5rx0VYws5jGyC+4IYOTnIQ/wwdf6JdomlHBwqC3bJYOvaKu0C2GSZ1A60anrYpaA==", "dev": true, "license": "MIT", "engines": { @@ -28193,9 +29322,9 @@ } }, "node_modules/node-fetch-native": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.6.tgz", - "integrity": "sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", "license": "MIT" }, "node_modules/node-fetch/node_modules/tr46": { @@ -28250,9 +29379,9 @@ "license": "MIT" }, "node_modules/node-mock-http": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.0.tgz", - "integrity": "sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.3.tgz", + "integrity": "sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==", "license": "MIT" }, "node_modules/node-releases": { @@ -31455,9 +32584,9 @@ } }, "node_modules/nwsapi": { - "version": "2.2.20", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", - "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", + "version": "2.2.22", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz", + "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==", "dev": true, "license": "MIT" }, @@ -31712,6 +32841,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/openapi-fetch": { + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/openapi-fetch/-/openapi-fetch-0.13.8.tgz", + "integrity": "sha512-yJ4QKRyNxE44baQ9mY5+r/kAzZ8yXMemtNAOFwOzRXJscdjSxxzWSNlyBAr+o5JjkUw9Lc3W7OIoca0cY3PYnQ==", + "license": "MIT", + "dependencies": { + "openapi-typescript-helpers": "^0.0.15" + } + }, + "node_modules/openapi-typescript-helpers": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/openapi-typescript-helpers/-/openapi-typescript-helpers-0.0.15.tgz", + "integrity": "sha512-opyTPaunsklCBpTK8JGef6mfPhLSnyy5a0IN9vKtx3+4aExf+KxEqYwIy3hqkedXIB97u357uLMJsOnm3GVjsw==", + "license": "MIT" + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -31762,23 +32906,24 @@ } }, "node_modules/ox": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.8.1.tgz", - "integrity": "sha512-e+z5epnzV+Zuz91YYujecW8cF01mzmrUtWotJ0oEPym/G82uccs7q0WDHTYL3eiONbTUEvcZrptAKLgTBD3u2A==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.9.3.tgz", + "integrity": "sha512-KzyJP+fPV4uhuuqrTZyok4DC7vFzi7HLUFiUNEmpbyh59htKWkOC98IONC1zgXJPbHAhQgqs6B0Z6StCGhmQvg==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/wevm" } ], + "license": "MIT", "dependencies": { "@adraffy/ens-normalize": "^1.11.0", "@noble/ciphers": "^1.3.0", - "@noble/curves": "^1.9.1", + "@noble/curves": "1.9.1", "@noble/hashes": "^1.8.0", "@scure/bip32": "^1.7.0", "@scure/bip39": "^1.6.0", - "abitype": "^1.0.8", + "abitype": "^1.0.9", "eventemitter3": "5.0.1" }, "peerDependencies": { @@ -31793,12 +32938,14 @@ "node_modules/ox/node_modules/@adraffy/ens-normalize": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", - "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==" + "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==", + "license": "MIT" }, "node_modules/ox/node_modules/@noble/ciphers": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", "engines": { "node": "^14.21.3 || >=16" }, @@ -31807,9 +32954,10 @@ } }, "node_modules/ox/node_modules/@noble/curves": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.2.tgz", - "integrity": "sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz", + "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==", + "license": "MIT", "dependencies": { "@noble/hashes": "1.8.0" }, @@ -31824,6 +32972,7 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", "dependencies": { "@noble/curves": "~1.9.0", "@noble/hashes": "~1.8.0", @@ -31837,6 +32986,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", + "license": "MIT", "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" @@ -31845,6 +32995,27 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/ox/node_modules/abitype": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.1.0.tgz", + "integrity": "sha512-6Vh4HcRxNMLA0puzPjM5GBgT4aAcFGKZzSgAXvuZ27shJP6NEpielTuqbBmZILR5/xd0PizkBGy5hReKz9jl5A==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3.22.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -32065,9 +33236,9 @@ } }, "node_modules/parse5/node_modules/entities": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", - "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -32425,9 +33596,9 @@ } }, "node_modules/postcss": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz", - "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "funding": [ { "type": "opencollective", @@ -32623,9 +33794,9 @@ } }, "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", "bin": { @@ -32808,19 +33979,6 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "license": "MIT" }, - "node_modules/psl": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "funding": { - "url": "https://github.com/sponsors/lupomontero" - } - }, "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", @@ -32897,12 +34055,13 @@ "license": "MIT" }, "node_modules/qrcode": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", - "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", "license": "MIT", "dependencies": { "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", "pngjs": "^5.0.0", "yargs": "^15.3.1" }, @@ -33108,13 +34267,6 @@ "node": ">=0.4.x" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true, - "license": "MIT" - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -33476,16 +34628,16 @@ } }, "node_modules/react-i18next": { - "version": "15.5.2", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.5.2.tgz", - "integrity": "sha512-ePODyXgmZQAOYTbZXQn5rRsSBu3Gszo69jxW6aKmlSgxKAI1fOhDwSu6bT4EKHciWPKQ7v7lPrjeiadR6Gi+1A==", + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.7.3.tgz", + "integrity": "sha512-AANws4tOE+QSq/IeMF/ncoHlMNZaVLxpa5uUGW1wjike68elVYr0018L9xYoqBr1OFO7G7boDPrbn0HpMCJxTw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.25.0", + "@babel/runtime": "^7.27.6", "html-parse-stringify": "^3.0.1" }, "peerDependencies": { - "i18next": ">= 23.2.3", + "i18next": ">= 25.4.1", "react": ">= 16.8.0", "typescript": "^5" }, @@ -33579,31 +34731,6 @@ } } }, - "node_modules/react-remove-scroll": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.2.tgz", - "integrity": "sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw==", - "license": "MIT", - "dependencies": { - "react-remove-scroll-bar": "^2.3.7", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/react-remove-scroll-bar": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", @@ -33665,9 +34792,9 @@ } }, "node_modules/react-select": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.10.1.tgz", - "integrity": "sha512-roPEZUL4aRZDx6DcsD+ZNreVl+fM8VsKn0Wtex1v4IazH60ILp5xhdlp464IsEAlJdXeD+BhDAFsBVMfvLQueA==", + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.10.2.tgz", + "integrity": "sha512-Z33nHdEFWq9tfnfVXaiM12rbJmk+QjFEztWLtmXqQhz6Al4UZZ9xc0wiatmGtUOCCnHN0WizL3tCMYRENX4rVQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.0", @@ -34406,13 +35533,6 @@ "node": ">=0.10.5" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true, - "license": "MIT" - }, "node_modules/reselect": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", @@ -34683,6 +35803,13 @@ "fsevents": "~2.3.2" } }, + "node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "dev": true, + "license": "MIT" + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -34957,6 +36084,29 @@ "license": "MIT", "peer": true }, + "node_modules/secp256k1": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.1.tgz", + "integrity": "sha512-lDFs9AAIaWP9UCdtWrotXWWF9t8PWgQDcxqgAnpM9rMqxb3Oaq2J0thzPVSxBwdJgyQtkU/sYtFtbM1RSt/iYA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "elliptic": "^6.5.7", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/secp256k1/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", + "license": "MIT", + "optional": true + }, "node_modules/seed-random": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz", @@ -36907,16 +38057,16 @@ } }, "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", "dev": true, "license": "MIT", "dependencies": { - "punycode": "^2.1.1" + "punycode": "^2.3.1" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/tree-kill": { @@ -36978,16 +38128,15 @@ "license": "Apache-2.0" }, "node_modules/ts-jest": { - "version": "29.3.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.4.tgz", - "integrity": "sha512-Iqbrm8IXOmV+ggWHOTEbjwyCf2xZlUMv5npExksXohL+tk8va4Fjhb+X2+Rt9NBmgO7bJ8WpnMLOwih/DnMlFA==", + "version": "29.4.1", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.1.tgz", + "integrity": "sha512-SaeUtjfpg9Uqu8IbeDKtdaS0g8lS6FT6OzM3ezrDfErPJPHNDo/Ey+VFGP1bQIDfagYDLyRpd7O15XpG1Es2Uw==", "dev": true, "license": "MIT", "dependencies": { "bs-logger": "^0.2.6", - "ejs": "^3.1.10", "fast-json-stable-stringify": "^2.1.0", - "jest-util": "^29.0.0", + "handlebars": "^4.7.8", "json5": "^2.2.3", "lodash.memoize": "^4.1.2", "make-error": "^1.3.6", @@ -37003,10 +38152,11 @@ }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/transform": "^29.0.0", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", "typescript": ">=4.3 <6" }, "peerDependenciesMeta": { @@ -37024,6 +38174,9 @@ }, "esbuild": { "optional": true + }, + "jest-util": { + "optional": true } } }, @@ -37364,6 +38517,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typeforce": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", + "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==", + "license": "MIT", + "optional": true + }, "node_modules/types-ramda": { "version": "0.30.1", "resolved": "https://registry.npmjs.org/types-ramda/-/types-ramda-0.30.1.tgz", @@ -37657,17 +38817,6 @@ "node": ">= 0.4" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "node_modules/url/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -37942,6 +39091,16 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/varuint-bitcoin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz", + "integrity": "sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw==", + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "^5.1.1" + } + }, "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -37958,9 +39117,9 @@ } }, "node_modules/viem": { - "version": "2.31.7", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.31.7.tgz", - "integrity": "sha512-mpB8Hp6xK77E/b/yJmpAIQcxcOfpbrwWNItjnXaIA8lxZYt4JS433Pge2gg6Hp3PwyFtaUMh01j5L8EXnLTjQQ==", + "version": "2.37.4", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.37.4.tgz", + "integrity": "sha512-1ig5O6l1wJmaw3yrSrUimjRLQEZon2ymTqSDjdntu6Bry1/tLC2GClXeS3SiCzrifpLxzfCLQWDITYVTBA10KA==", "funding": [ { "type": "github", @@ -37969,14 +39128,14 @@ ], "license": "MIT", "dependencies": { - "@noble/curves": "1.9.2", + "@noble/curves": "1.9.1", "@noble/hashes": "1.8.0", "@scure/bip32": "1.7.0", "@scure/bip39": "1.6.0", - "abitype": "1.0.8", + "abitype": "1.1.0", "isows": "1.0.7", - "ox": "0.8.1", - "ws": "8.18.2" + "ox": "0.9.3", + "ws": "8.18.3" }, "peerDependencies": { "typescript": ">=5.0.4" @@ -37988,9 +39147,10 @@ } }, "node_modules/viem/node_modules/@noble/curves": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.2.tgz", - "integrity": "sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz", + "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==", + "license": "MIT", "dependencies": { "@noble/hashes": "1.8.0" }, @@ -38028,10 +39188,31 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/viem/node_modules/abitype": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.1.0.tgz", + "integrity": "sha512-6Vh4HcRxNMLA0puzPjM5GBgT4aAcFGKZzSgAXvuZ27shJP6NEpielTuqbBmZILR5/xd0PizkBGy5hReKz9jl5A==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3.22.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, "node_modules/viem/node_modules/ws": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", - "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -38183,26 +39364,26 @@ } }, "node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", "dev": true, "license": "MIT", "dependencies": { - "xml-name-validator": "^4.0.0" + "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/wagmi": { - "version": "2.15.6", - "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-2.15.6.tgz", - "integrity": "sha512-tR4tm+7eE0UloQe1oi4hUIjIDyjv5ImQlzq/QcvvfJYWF/EquTfGrmht6+nTYGCIeSzeEvbK90KgWyNqa+HD7Q==", + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-2.17.1.tgz", + "integrity": "sha512-Y1CTRPENz/+A0fRgezmdkpTUoRnzDe+OUd+x2+nVPWuffoNDXVLAs/d3qFA18Z5/3B8u2/2/E8ntP1McunfisQ==", "license": "MIT", "dependencies": { - "@wagmi/connectors": "5.8.5", - "@wagmi/core": "2.17.3", + "@wagmi/connectors": "5.10.1", + "@wagmi/core": "2.21.0", "use-sync-external-store": "1.4.0" }, "funding": { @@ -38221,15 +39402,103 @@ } }, "node_modules/wagmi/node_modules/@coinbase/wallet-sdk": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-4.3.3.tgz", - "integrity": "sha512-h8gMLQNvP5TIJVXFOyQZaxbi1Mg5alFR4Z2/PEIngdyXZEoQGcVhzyQGuDa3t9zpllxvqfAaKfzDhsfCo+nhSQ==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-4.3.6.tgz", + "integrity": "sha512-4q8BNG1ViL4mSAAvPAtpwlOs1gpC+67eQtgIwNvT3xyeyFFd+guwkc8bcX5rTmQhXpqnhzC4f0obACbP9CqMSA==", "license": "Apache-2.0", "dependencies": { - "@noble/hashes": "^1.4.0", - "clsx": "^1.2.1", - "eventemitter3": "^5.0.1", - "preact": "^10.24.2" + "@noble/hashes": "1.4.0", + "clsx": "1.2.1", + "eventemitter3": "5.0.1", + "idb-keyval": "6.2.1", + "ox": "0.6.9", + "preact": "10.24.2", + "viem": "^2.27.2", + "zustand": "5.0.3" + } + }, + "node_modules/wagmi/node_modules/@coinbase/wallet-sdk/node_modules/zustand": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz", + "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } + }, + "node_modules/wagmi/node_modules/@metamask/sdk": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.33.1.tgz", + "integrity": "sha512-1mcOQVGr9rSrVcbKPNVzbZ8eCl1K0FATsYH3WJ/MH4WcZDWGECWrXJPNMZoEAkLxWiMe8jOQBumg2pmcDa9zpQ==", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@metamask/onboarding": "^1.0.1", + "@metamask/providers": "16.1.0", + "@metamask/sdk-analytics": "0.0.5", + "@metamask/sdk-communication-layer": "0.33.1", + "@metamask/sdk-install-modal-web": "0.32.1", + "@paulmillr/qr": "^0.2.1", + "bowser": "^2.9.0", + "cross-fetch": "^4.0.0", + "debug": "4.3.4", + "eciesjs": "^0.4.11", + "eth-rpc-errors": "^4.0.3", + "eventemitter2": "^6.4.9", + "obj-multiplex": "^1.0.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.2", + "socket.io-client": "^4.5.1", + "tslib": "^2.6.0", + "util": "^0.12.4", + "uuid": "^8.3.2" + } + }, + "node_modules/wagmi/node_modules/@metamask/sdk-communication-layer": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.33.1.tgz", + "integrity": "sha512-0bI9hkysxcfbZ/lk0T2+aKVo1j0ynQVTuB3sJ5ssPWlz+Z3VwveCkP1O7EVu1tsVVCb0YV5WxK9zmURu2FIiaA==", + "dependencies": { + "@metamask/sdk-analytics": "0.0.5", + "bufferutil": "^4.0.8", + "date-fns": "^2.29.3", + "debug": "4.3.4", + "utf-8-validate": "^5.0.2", + "uuid": "^8.3.2" + }, + "peerDependencies": { + "cross-fetch": "^4.0.0", + "eciesjs": "*", + "eventemitter2": "^6.4.9", + "readable-stream": "^3.6.2", + "socket.io-client": "^4.5.1" + } + }, + "node_modules/wagmi/node_modules/@metamask/sdk-install-modal-web": { + "version": "0.32.1", + "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.32.1.tgz", + "integrity": "sha512-MGmAo6qSjf1tuYXhCu2EZLftq+DSt5Z7fsIKr2P+lDgdTPWgLfZB1tJKzNcwKKOdf6q9Qmmxn7lJuI/gq5LrKw==", + "dependencies": { + "@paulmillr/qr": "^0.2.1" } }, "node_modules/wagmi/node_modules/@noble/curves": { @@ -38247,7 +39516,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/wagmi/node_modules/@noble/hashes": { + "node_modules/wagmi/node_modules/@noble/curves/node_modules/@noble/hashes": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", @@ -38259,6 +39528,18 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/wagmi/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/wagmi/node_modules/@reown/appkit": { "version": "1.7.8", "resolved": "https://registry.npmjs.org/@reown/appkit/-/appkit-1.7.8.tgz", @@ -38304,6 +39585,45 @@ "viem": ">=2.29.0" } }, + "node_modules/wagmi/node_modules/@reown/appkit-controllers/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/wagmi/node_modules/@reown/appkit-controllers/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/wagmi/node_modules/@reown/appkit-controllers/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/wagmi/node_modules/@reown/appkit-controllers/node_modules/@walletconnect/core": { "version": "2.21.0", "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.0.tgz", @@ -38457,18 +39777,62 @@ } } }, + "node_modules/wagmi/node_modules/@reown/appkit-controllers/node_modules/isows": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", + "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/wagmi/node_modules/@reown/appkit-controllers/node_modules/ox": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", + "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/wagmi/node_modules/@reown/appkit-controllers/node_modules/unstorage": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", - "integrity": "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", + "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", - "h3": "^1.15.2", + "h3": "^1.15.4", "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.6", + "node-fetch-native": "^1.6.7", "ofetch": "^1.4.1", "ufo": "^1.6.1" }, @@ -38481,10 +39845,11 @@ "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", @@ -38529,6 +39894,9 @@ "@vercel/blob": { "optional": true }, + "@vercel/functions": { + "optional": true + }, "@vercel/kv": { "optional": true }, @@ -38549,6 +39917,27 @@ } } }, + "node_modules/wagmi/node_modules/@reown/appkit-controllers/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/wagmi/node_modules/@reown/appkit-pay": { "version": "1.7.8", "resolved": "https://registry.npmjs.org/@reown/appkit-pay/-/appkit-pay-1.7.8.tgz", @@ -38618,6 +40007,45 @@ "valtio": "1.13.2" } }, + "node_modules/wagmi/node_modules/@reown/appkit-utils/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/wagmi/node_modules/@reown/appkit-utils/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/wagmi/node_modules/@reown/appkit-utils/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/wagmi/node_modules/@reown/appkit-utils/node_modules/@walletconnect/core": { "version": "2.21.0", "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.0.tgz", @@ -38771,18 +40199,62 @@ } } }, + "node_modules/wagmi/node_modules/@reown/appkit-utils/node_modules/isows": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", + "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/wagmi/node_modules/@reown/appkit-utils/node_modules/ox": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", + "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/wagmi/node_modules/@reown/appkit-utils/node_modules/unstorage": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", - "integrity": "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", + "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", - "h3": "^1.15.2", + "h3": "^1.15.4", "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.6", + "node-fetch-native": "^1.6.7", "ofetch": "^1.4.1", "ufo": "^1.6.1" }, @@ -38795,10 +40267,11 @@ "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", @@ -38843,6 +40316,9 @@ "@vercel/blob": { "optional": true }, + "@vercel/functions": { + "optional": true + }, "@vercel/kv": { "optional": true }, @@ -38863,6 +40339,27 @@ } } }, + "node_modules/wagmi/node_modules/@reown/appkit-utils/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/wagmi/node_modules/@reown/appkit-wallet": { "version": "1.7.8", "resolved": "https://registry.npmjs.org/@reown/appkit-wallet/-/appkit-wallet-1.7.8.tgz", @@ -38875,6 +40372,45 @@ "zod": "3.22.4" } }, + "node_modules/wagmi/node_modules/@reown/appkit/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/wagmi/node_modules/@reown/appkit/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/wagmi/node_modules/@reown/appkit/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/wagmi/node_modules/@reown/appkit/node_modules/@walletconnect/core": { "version": "2.21.0", "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.0.tgz", @@ -39028,18 +40564,62 @@ } } }, + "node_modules/wagmi/node_modules/@reown/appkit/node_modules/isows": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", + "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/wagmi/node_modules/@reown/appkit/node_modules/ox": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", + "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/wagmi/node_modules/@reown/appkit/node_modules/unstorage": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", - "integrity": "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", + "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", - "h3": "^1.15.2", + "h3": "^1.15.4", "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.6", + "node-fetch-native": "^1.6.7", "ofetch": "^1.4.1", "ufo": "^1.6.1" }, @@ -39052,10 +40632,11 @@ "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", @@ -39100,6 +40681,9 @@ "@vercel/blob": { "optional": true }, + "@vercel/functions": { + "optional": true + }, "@vercel/kv": { "optional": true }, @@ -39120,41 +40704,103 @@ } } }, + "node_modules/wagmi/node_modules/@reown/appkit/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/wagmi/node_modules/@scure/bip32": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", - "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", + "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", "license": "MIT", "dependencies": { - "@noble/curves": "~1.8.1", - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.2" + "@noble/curves": "~1.9.0", + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/wagmi/node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/wagmi/node_modules/@scure/bip32/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/wagmi/node_modules/@scure/bip39": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", - "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", + "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", "license": "MIT", "dependencies": { - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.4" + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/wagmi/node_modules/@scure/bip39/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/wagmi/node_modules/@wagmi/connectors": { - "version": "5.8.5", - "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-5.8.5.tgz", - "integrity": "sha512-CHh4uYP6MziCMlSVXmuAv7wMoYWdxXliuzwCRAxHNNkgXE7z37ez5XzJu0Sm39NUau3Fl8WSjwKo4a4w9BOYNA==", + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-5.10.1.tgz", + "integrity": "sha512-ho07FF5WLCqiR3+HsSZV1R3UrkLTi6F+EDiQdJOlgLLYsUHvB7Y7s8uLePP5lRxYUmDoFRURK1PwTGNSwlcKAA==", "license": "MIT", "dependencies": { - "@coinbase/wallet-sdk": "4.3.3", - "@metamask/sdk": "0.32.0", + "@base-org/account": "1.1.1", + "@coinbase/wallet-sdk": "4.3.6", + "@gemini-wallet/core": "0.2.0", + "@metamask/sdk": "0.33.1", "@safe-global/safe-apps-provider": "0.18.6", "@safe-global/safe-apps-sdk": "9.1.0", "@walletconnect/ethereum-provider": "2.21.1", @@ -39164,7 +40810,7 @@ "url": "https://github.com/sponsors/wevm" }, "peerDependencies": { - "@wagmi/core": "2.17.3", + "@wagmi/core": "2.21.0", "typescript": ">=5.0.4", "viem": "2.x" }, @@ -39175,9 +40821,9 @@ } }, "node_modules/wagmi/node_modules/@wagmi/core": { - "version": "2.17.3", - "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-2.17.3.tgz", - "integrity": "sha512-fgZR9fAiCFtGaosTspkTx5lidccq9Z5xRWOk1HG0VfB6euQGw2//Db7upiP4uQ7DPst2YS9yQN2A1m9+iJLYCw==", + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-2.21.0.tgz", + "integrity": "sha512-ZtQBUvHEyfSM22BCeXZDjwcpby2vZjivjP8mMkQHxuVqRDnunaS5DIlZr2XPJKv01lPdlUajFSoiziNcIZlH5w==", "license": "MIT", "dependencies": { "eventemitter3": "5.0.1", @@ -39249,17 +40895,17 @@ } }, "node_modules/wagmi/node_modules/@walletconnect/core/node_modules/unstorage": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", - "integrity": "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", + "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", - "h3": "^1.15.2", + "h3": "^1.15.4", "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.6", + "node-fetch-native": "^1.6.7", "ofetch": "^1.4.1", "ufo": "^1.6.1" }, @@ -39272,10 +40918,11 @@ "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", @@ -39320,6 +40967,9 @@ "@vercel/blob": { "optional": true }, + "@vercel/functions": { + "optional": true + }, "@vercel/kv": { "optional": true }, @@ -39379,17 +41029,17 @@ } }, "node_modules/wagmi/node_modules/@walletconnect/ethereum-provider/node_modules/unstorage": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", - "integrity": "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", + "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", - "h3": "^1.15.2", + "h3": "^1.15.4", "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.6", + "node-fetch-native": "^1.6.7", "ofetch": "^1.4.1", "ufo": "^1.6.1" }, @@ -39402,10 +41052,11 @@ "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", @@ -39450,6 +41101,9 @@ "@vercel/blob": { "optional": true }, + "@vercel/functions": { + "optional": true + }, "@vercel/kv": { "optional": true }, @@ -39521,17 +41175,17 @@ } }, "node_modules/wagmi/node_modules/@walletconnect/types/node_modules/unstorage": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", - "integrity": "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", + "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", - "h3": "^1.15.2", + "h3": "^1.15.4", "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.6", + "node-fetch-native": "^1.6.7", "ofetch": "^1.4.1", "ufo": "^1.6.1" }, @@ -39544,10 +41198,11 @@ "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", @@ -39592,6 +41247,9 @@ "@vercel/blob": { "optional": true }, + "@vercel/functions": { + "optional": true + }, "@vercel/kv": { "optional": true }, @@ -39652,17 +41310,17 @@ } }, "node_modules/wagmi/node_modules/@walletconnect/universal-provider/node_modules/unstorage": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", - "integrity": "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", + "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", - "h3": "^1.15.2", + "h3": "^1.15.4", "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.6", + "node-fetch-native": "^1.6.7", "ofetch": "^1.4.1", "ufo": "^1.6.1" }, @@ -39675,10 +41333,11 @@ "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", @@ -39723,6 +41382,9 @@ "@vercel/blob": { "optional": true }, + "@vercel/functions": { + "optional": true + }, "@vercel/kv": { "optional": true }, @@ -39768,181 +41430,65 @@ "viem": "2.23.2" } }, - "node_modules/wagmi/node_modules/@walletconnect/utils/node_modules/@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "node_modules/wagmi/node_modules/@walletconnect/utils/node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "license": "MIT", - "dependencies": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" - }, - "peerDependencies": { - "@react-native-async-storage/async-storage": "1.x" + "engines": { + "node": "^14.21.3 || >=16" }, - "peerDependenciesMeta": { - "@react-native-async-storage/async-storage": { - "optional": true - } + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/wagmi/node_modules/@walletconnect/utils/node_modules/unstorage": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.16.0.tgz", - "integrity": "sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==", + "node_modules/wagmi/node_modules/@walletconnect/utils/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", "license": "MIT", "dependencies": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.2", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.6", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" }, - "peerDependencies": { - "@azure/app-configuration": "^1.8.0", - "@azure/cosmos": "^4.2.0", - "@azure/data-tables": "^13.3.0", - "@azure/identity": "^4.6.0", - "@azure/keyvault-secrets": "^4.9.0", - "@azure/storage-blob": "^12.26.0", - "@capacitor/preferences": "^6.0.3 || ^7.0.0", - "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", - "@planetscale/database": "^1.19.0", - "@upstash/redis": "^1.34.3", - "@vercel/blob": ">=0.27.1", - "@vercel/kv": "^1.0.1", - "aws4fetch": "^1.0.20", - "db0": ">=0.2.1", - "idb-keyval": "^6.2.1", - "ioredis": "^5.4.2", - "uploadthing": "^7.4.4" + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/wagmi/node_modules/@walletconnect/utils/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" }, - "peerDependenciesMeta": { - "@azure/app-configuration": { - "optional": true - }, - "@azure/cosmos": { - "optional": true - }, - "@azure/data-tables": { - "optional": true - }, - "@azure/identity": { - "optional": true - }, - "@azure/keyvault-secrets": { - "optional": true - }, - "@azure/storage-blob": { - "optional": true - }, - "@capacitor/preferences": { - "optional": true - }, - "@deno/kv": { - "optional": true - }, - "@netlify/blobs": { - "optional": true - }, - "@planetscale/database": { - "optional": true - }, - "@upstash/redis": { - "optional": true - }, - "@vercel/blob": { - "optional": true - }, - "@vercel/kv": { - "optional": true - }, - "aws4fetch": { - "optional": true - }, - "db0": { - "optional": true - }, - "idb-keyval": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "uploadthing": { - "optional": true - } + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/wagmi/node_modules/@walletconnect/utils/node_modules/viem": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", - "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], + "node_modules/wagmi/node_modules/@walletconnect/utils/node_modules/@walletconnect/keyvaluestorage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", + "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", "license": "MIT", "dependencies": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@scure/bip32": "1.6.2", - "@scure/bip39": "1.5.4", - "abitype": "1.0.8", - "isows": "1.0.6", - "ox": "0.6.7", - "ws": "8.18.0" + "@walletconnect/safe-json": "^1.0.1", + "idb-keyval": "^6.2.1", + "unstorage": "^1.9.0" }, "peerDependencies": { - "typescript": ">=5.0.4" + "@react-native-async-storage/async-storage": "1.x" }, "peerDependenciesMeta": { - "typescript": { + "@react-native-async-storage/async-storage": { "optional": true } } }, - "node_modules/wagmi/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/wagmi/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/wagmi/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wagmi/node_modules/isows": { + "node_modules/wagmi/node_modules/@walletconnect/utils/node_modules/isows": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", @@ -39957,25 +41503,7 @@ "ws": "*" } }, - "node_modules/wagmi/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wagmi/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/wagmi/node_modules/ox": { + "node_modules/wagmi/node_modules/@walletconnect/utils/node_modules/ox": { "version": "0.6.7", "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", @@ -40004,87 +41532,133 @@ } } }, - "node_modules/wagmi/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wagmi/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wagmi/node_modules/qrcode": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", - "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "node_modules/wagmi/node_modules/@walletconnect/utils/node_modules/unstorage": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", + "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", "license": "MIT", "dependencies": { - "dijkstrajs": "^1.0.1", - "encode-utf8": "^1.0.3", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" + "anymatch": "^3.1.3", + "chokidar": "^4.0.3", + "destr": "^2.0.5", + "h3": "^1.15.4", + "lru-cache": "^10.4.3", + "node-fetch-native": "^1.6.7", + "ofetch": "^1.4.1", + "ufo": "^1.6.1" }, - "bin": { - "qrcode": "bin/qrcode" + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6.0.3 || ^7.0.0", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", + "@vercel/kv": "^1.0.1", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" }, - "engines": { - "node": ">=10.13.0" + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/functions": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } } }, - "node_modules/wagmi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/wagmi/node_modules/@walletconnect/utils/node_modules/viem": { + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", + "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wagmi/node_modules/use-sync-external-store": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", - "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", - "license": "MIT", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/wagmi/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "typescript": ">=5.0.4" }, - "engines": { - "node": ">=8" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/wagmi/node_modules/ws": { + "node_modules/wagmi/node_modules/@walletconnect/utils/node_modules/ws": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", @@ -40105,45 +41679,117 @@ } } }, - "node_modules/wagmi/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "license": "ISC" + "node_modules/wagmi/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/wagmi/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/wagmi/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "license": "MIT", "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "ms": "2.1.2" }, "engines": { - "node": ">=8" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/wagmi/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "license": "ISC", + "node_modules/wagmi/node_modules/idb-keyval": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", + "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==", + "license": "Apache-2.0" + }, + "node_modules/wagmi/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/wagmi/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/wagmi/node_modules/ox": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", + "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/wagmi/node_modules/ox/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": ">=6" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/wagmi/node_modules/preact": { + "version": "10.24.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.2.tgz", + "integrity": "sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/wagmi/node_modules/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/wagmi/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" } }, "node_modules/walker": { @@ -40408,40 +42054,40 @@ } }, "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", "dev": true, "license": "MIT", "dependencies": { "iconv-lite": "0.6.3" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "dev": true, "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", "dev": true, "license": "MIT", "dependencies": { - "tr46": "^3.0.0", + "tr46": "^5.1.0", "webidl-conversions": "^7.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/which": { @@ -40560,6 +42206,48 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/wif": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", + "integrity": "sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "bs58check": "<3.0.0" + } + }, + "node_modules/wif/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", + "optional": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/wif/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", + "optional": true, + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/wif/node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "license": "MIT", + "optional": true, + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -40722,13 +42410,13 @@ "license": "ISC" }, "node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/xml2js": { @@ -40813,9 +42501,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", - "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -40895,9 +42583,9 @@ } }, "node_modules/yup": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/yup/-/yup-1.6.1.tgz", - "integrity": "sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.7.0.tgz", + "integrity": "sha512-VJce62dBd+JQvoc+fCVq+KZfPHr+hXaxCcVgotfwWvlR0Ja3ffYKaJBT8rptPOSKOGJDCUnW2C2JWpud7aRP6Q==", "license": "MIT", "dependencies": { "property-expr": "^2.0.5", diff --git a/package.json b/package.json index 9cd3d0b86..ff7ef9802 100644 --- a/package.json +++ b/package.json @@ -24,23 +24,25 @@ "eslint:fix": "eslint --fix", "typecheck": "tsc", "typecheck:staged": "tsc-files", + "generate:translations": "node src/core/generate-languages.js", "lint": "lint-staged" }, "dependencies": { "@capacitor-firebase/messaging": "^7.2.0", - "@capacitor/action-sheet": "^7.0.1", + "@capacitor/action-sheet": "^7.0.2", "@capacitor/android": "^7.4.2", "@capacitor/app": "^7.0.1", - "@capacitor/camera": "^7.0.1", - "@capacitor/core": "^7.4.1", + "@capacitor/browser": "^7.0.2", + "@capacitor/camera": "^7.0.2", + "@capacitor/core": "^7.4.2", "@capacitor/dialog": "^7.0.1", "@capacitor/haptics": "^7.0.1", - "@capacitor/ios": "^7.2.0", + "@capacitor/ios": "^7.4.3", "@capacitor/preferences": "^7.0.1", "@capacitor/push-notifications": "^7.0.1", - "@capacitor/toast": "^7.0.1", - "@capgo/capacitor-social-login": "^7.6.3", - "@datadog/browser-rum": "^6.7.0", + "@capacitor/toast": "^7.0.2", + "@capgo/capacitor-social-login": "^7.11.4", + "@datadog/browser-rum": "^6.19.0", "@emoji-mart/react": "^1.1.1", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", @@ -48,26 +50,25 @@ "@ionic/pwa-elements": "^3.3.0", "@mui/material": "^7.0.2", "@mui/x-date-pickers": "^8.2.0", - "@rainbow-me/rainbowkit": "^2.2.4", "@reduxjs/toolkit": "^2.8.1", - "@reown/appkit": "^1.7.3", - "@reown/appkit-adapter-wagmi": "^1.7.11", + "@reown/appkit": "^1.8.2", + "@reown/appkit-adapter-wagmi": "^1.7.17", "@storybook/addon-designs": "^8.2.1", - "@stripe/stripe-js": "^7.4.0", - "@tanstack/react-query": "^5.80.7", + "@stripe/stripe-js": "^7.9.0", + "@tanstack/react-query": "^5.83.0", "@tanstack/react-table": "^8.21.3", "@web3modal/ethers": "^5.1.11", - "axios": "^1.10.0", + "axios": "^1.12.2", "cardano-bridge": "github:socious-io/cardano-bridge#v0.0.6", "country-flag-icons": "^1.5.19", - "dotenv": "^16.5.0", - "ethers": "^6.14.0", + "dotenv": "^17.2.3", + "ethers": "^6.15.0", "firebase": "^11.10.0", - "i18next-browser-languagedetector": "^8.1.0", + "i18next-browser-languagedetector": "^8.2.0", "iso-country-currency": "^0.7.2", - "js-base64": "^3.7.7", + "js-base64": "^3.7.8", "js-cookie": "^3.0.5", - "markdown-to-jsx": "^7.7.6", + "markdown-to-jsx": "^7.7.12", "moment": "^2.30.1", "qrcode.react": "^4.2.0", "ramda": "^0.31.3", @@ -80,29 +81,29 @@ "react-google-recaptcha": "^3.1.0", "react-helmet": "^6.1.0", "react-hook-form": "^7.58.0", - "react-i18next": "^15.5.1", + "react-i18next": "^15.7.3", "react-infinite-scroller": "^1.2.6", "react-intersection-observer": "^9.16.0", "react-otp-input": "^3.1.1", "react-qr-code": "^2.0.18", "react-redux": "^9.2.0", "react-router-dom": "^7.5.3", - "react-select": "^5.10.1", + "react-select": "^5.10.2", "socket.io-client": "^4.8.1", "ssi-auth-lib": "^0.0.12", "uuid": "^11.1.0", "viem": "^2.31.7", "vite-plugin-node-polyfills": "^0.24.0", "vite-tsconfig-paths": "^5.1.4", - "wagmi": "^2.15.6", - "yup": "^1.6.1" + "wagmi": "^2.17.1", + "yup": "^1.7.0" }, "devDependencies": { - "@babel/core": "^7.27.1", + "@babel/core": "^7.28.0", "@capacitor/assets": "^3.0.5", - "@capacitor/cli": "^7.2.0", + "@capacitor/cli": "^7.4.2", "@chromatic-com/storybook": "^3.2.6", - "@eslint/compat": "^1.2.9", + "@eslint/compat": "^1.3.2", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.28.0", "@storybook/addon-a11y": "^8.6.12", @@ -115,10 +116,10 @@ "@storybook/react": "^8.6.12", "@storybook/react-vite": "^8.6.12", "@storybook/test": "^8.6.12", - "@swc/core": "^1.11.24", + "@swc/core": "^1.13.3", "@swc/jest": "^0.2.38", "@testing-library/dom": "^10.4.0", - "@testing-library/jest-dom": "^6.6.3", + "@testing-library/jest-dom": "^6.6.4", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@trapezedev/configure": "^7.1.3", @@ -131,35 +132,35 @@ "@types/react-helmet": "^6.1.11", "@types/react-infinite-scroller": "^1.2.5", "@typescript-eslint/eslint-plugin": "^8.31.1", - "@typescript-eslint/parser": "^8.35.0", - "@vitejs/plugin-react-swc": "^3.10.0", + "@typescript-eslint/parser": "^8.45.0", + "@vitejs/plugin-react-swc": "^3.11.0", "autoprefixer": "^10.4.21", "babel-loader": "^10.0.0", - "cypress": "^14.3.3", + "cypress": "^14.5.4", "cypress-file-upload": "^5.0.8", - "eslint": "^9.31.0", - "eslint-config-prettier": "^10.1.5", - "eslint-plugin-cypress": "^4.3.0", - "eslint-plugin-i18next": "^6.1.1", + "eslint": "^9.34.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-cypress": "^5.1.1", + "eslint-plugin-i18next": "^6.1.3", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsdoc": "^51.0.1", "eslint-plugin-jsx-a11y": "^6.10.2", - "eslint-plugin-prettier": "^5.5.1", + "eslint-plugin-prettier": "^5.5.4", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-storybook": "^9.0.7", - "globals": "^16.0.0", + "globals": "^16.4.0", "husky": "^9.1.7", "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", - "lint-staged": "^16.0.0", - "postcss": "^8.5.4", - "prettier": "^3.5.3", + "jest-environment-jsdom": "^30.1.2", + "lint-staged": "^16.2.3", + "postcss": "^8.5.6", + "prettier": "^3.6.2", "sass": "^1.87.0", "storybook": "^8.6.14", "tailwindcss": "^3.4.17", - "ts-jest": "^29.3.4", + "ts-jest": "^29.4.1", "tsc-files": "^1.1.4", "typescript": "^5.8.3", "vite": "^6.3.5", @@ -176,6 +177,9 @@ "npm run eslint:fix", "npm run prettier:fix" ], - "*.{css,scss,md}": "npm run prettier:fix" + "*.{css,scss,md}": "npm run prettier:fix", + "src/core/translation/locales/en/**/*.json": [ + "npm run generate:translations" + ] } } diff --git a/public/icons/crypto/ADA.svg b/public/icons/crypto/ADA.svg new file mode 100644 index 000000000..07abcd714 --- /dev/null +++ b/public/icons/crypto/ADA.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/icons/token-symbols/ADA.png b/public/icons/token-symbols/ADA.png new file mode 100644 index 000000000..98007a297 Binary files /dev/null and b/public/icons/token-symbols/ADA.png differ diff --git a/public/icons/token-symbols/AVAX.png b/public/icons/token-symbols/AVAX.png new file mode 100644 index 000000000..73ff50791 Binary files /dev/null and b/public/icons/token-symbols/AVAX.png differ diff --git a/public/icons/token-symbols/BNB.png b/public/icons/token-symbols/BNB.png new file mode 100644 index 000000000..1dc1061f0 Binary files /dev/null and b/public/icons/token-symbols/BNB.png differ diff --git a/public/icons/token-symbols/ETH.png b/public/icons/token-symbols/ETH.png new file mode 100644 index 000000000..c8ac5ec42 Binary files /dev/null and b/public/icons/token-symbols/ETH.png differ diff --git a/public/icons/token-symbols/FTM.png b/public/icons/token-symbols/FTM.png new file mode 100644 index 000000000..a1d97baa7 Binary files /dev/null and b/public/icons/token-symbols/FTM.png differ diff --git a/public/icons/token-symbols/MATIC.png b/public/icons/token-symbols/MATIC.png new file mode 100644 index 000000000..d719c065a Binary files /dev/null and b/public/icons/token-symbols/MATIC.png differ diff --git a/public/icons/token-symbols/xDAI.png b/public/icons/token-symbols/xDAI.png new file mode 100644 index 000000000..73f5edeeb Binary files /dev/null and b/public/icons/token-symbols/xDAI.png differ diff --git a/public/images/logo/account-center.svg b/public/images/logo/account-center.svg new file mode 100644 index 000000000..fc89d9eb8 --- /dev/null +++ b/public/images/logo/account-center.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/images/wallets/brave.svg b/public/images/wallets/brave.svg new file mode 100644 index 000000000..7f5b8b5c5 --- /dev/null +++ b/public/images/wallets/brave.svg @@ -0,0 +1 @@ +brave-browser \ No newline at end of file diff --git a/public/images/wallets/coinbasewallet.svg b/public/images/wallets/coinbasewallet.svg new file mode 100644 index 000000000..13a399bd2 --- /dev/null +++ b/public/images/wallets/coinbasewallet.svg @@ -0,0 +1 @@ +coinbase \ No newline at end of file diff --git a/public/images/wallets/metamask.svg b/public/images/wallets/metamask.svg new file mode 100644 index 000000000..003b12e24 --- /dev/null +++ b/public/images/wallets/metamask.svg @@ -0,0 +1 @@ +metamask \ No newline at end of file diff --git a/public/images/wallets/rainbow.svg b/public/images/wallets/rainbow.svg new file mode 100644 index 000000000..9956fedd6 --- /dev/null +++ b/public/images/wallets/rainbow.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/wallets/trustwallet.svg b/public/images/wallets/trustwallet.svg new file mode 100644 index 000000000..edb74053a --- /dev/null +++ b/public/images/wallets/trustwallet.svg @@ -0,0 +1,9 @@ + + + + + + + diff --git a/public/images/wallets/walletconnect.svg b/public/images/wallets/walletconnect.svg new file mode 100644 index 000000000..aff0924dd --- /dev/null +++ b/public/images/wallets/walletconnect.svg @@ -0,0 +1,13 @@ + + + + + diff --git a/src/App.tsx b/src/App.tsx index 0f3067006..a9f3d101e 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,14 +1,16 @@ import { ThemeProvider } from '@emotion/react'; import { StyledEngineProvider } from '@mui/material'; +import { QueryClientProvider } from '@tanstack/react-query'; import { theme } from 'material.theme'; import { useEffect } from 'react'; import { Provider } from 'react-redux'; import { RouterProvider } from 'react-router-dom'; import router from 'src/core/router'; import { currentIdentities } from 'src/store/thunks/identity.thunks'; +import { WagmiProvider } from 'wagmi'; import { setupInterceptors } from './core/api'; -import { DeepLinks } from './core/deepLinks'; +import { queryClient, wagmiConfig } from './dapp/dapp.connect'; import { Spinner } from './modules/general/components/spinner/spinner'; import store from './store'; @@ -34,7 +36,11 @@ function App() { - + + + + + {/* */} diff --git a/src/config.ts b/src/config.ts index a4a192a3b..3d435f8c4 100644 --- a/src/config.ts +++ b/src/config.ts @@ -22,7 +22,7 @@ export const config = { appleOauthClientId: import.meta.env.VITE_APPLE_OAUTH_CLIENT_ID, googleRecaptchaSiteKey: import.meta.env.VITE_GOOGLE_RECAPTCHA_SITE_KEY, appleOauthClientIdIOS: import.meta.env.VITE_GOOGLE_OAUTH_CLIENT_ID_IOS, - blocfrostProjectId: import.meta.env.VITE_BLOCKFROST_PROJECT_ID, + blockfrostProjectId: import.meta.env.VITE_BLOCKFROST_PROJECT_ID, cardanoPayoutFeeAddress: import.meta.env.VITE_CARDANO_PAYOUT_ADERESS, }; diff --git a/src/constants/TOKEN_LIMIT.ts b/src/constants/TOKEN_LIMIT.ts new file mode 100644 index 000000000..57cb5a386 --- /dev/null +++ b/src/constants/TOKEN_LIMIT.ts @@ -0,0 +1,3 @@ +export const minByToken: Record = { + ADA: 5, +}; diff --git a/src/core/adaptors/index.ts b/src/core/adaptors/index.ts index 85ffbb628..fe470f9e7 100644 --- a/src/core/adaptors/index.ts +++ b/src/core/adaptors/index.ts @@ -17,6 +17,7 @@ export interface CurrencyDetail { export interface CustomError { response: { data: { error: string } }; + message?: string; } export interface SuccessRes { diff --git a/src/core/adaptors/users/index.adaptors.tsx b/src/core/adaptors/users/index.adaptors.tsx index dceca2286..0f847b67b 100644 --- a/src/core/adaptors/users/index.adaptors.tsx +++ b/src/core/adaptors/users/index.adaptors.tsx @@ -5,16 +5,19 @@ import { addLanguage, Education, Experience, + getUserDetails, importLinkedin, LanguageCode, ProjectType, reviews, + updateWallet, + UserDetails, } from 'src/core/api'; import { getIdentityMeta } from 'src/core/utils'; import { v4 as uuidv4 } from 'uuid'; import { AdaptorRes, SuccessRes } from '..'; -import { ImportLinkedInRes, ReviewsRes } from './index.types'; +import { ImportLinkedInRes, ReviewsRes, WalletReq } from './index.types'; export const getLinkedinProfileAdaptor = async (file: File): Promise> => { try { @@ -130,3 +133,29 @@ export const getReviewsAdaptor = async (page = 1, limit = 10): Promise> => { + try { + const newPayload = { + address: payload.account, + network: payload.networkName, + testnet: payload.testnet, + }; + await updateWallet(newPayload); + return { data: { message: 'succeed' }, error: null }; + } catch (error) { + console.error('Error in updating user wallet', error); + return { data: null, error: 'Error in updating user wallet' }; + } +}; + +//FIXME Use this type after migrating to v3 +export const getUserDetailsAdaptor = async (username: string): Promise> => { + try { + const data = await getUserDetails(username); + return { data, error: null }; + } catch (error) { + console.error('Error in getting user details: ', error); + return { data: null, error: 'Error in getting user details' }; + } +}; diff --git a/src/core/adaptors/users/index.types.ts b/src/core/adaptors/users/index.types.ts index 0ee9c0020..64df8644e 100644 --- a/src/core/adaptors/users/index.types.ts +++ b/src/core/adaptors/users/index.types.ts @@ -19,3 +19,9 @@ export interface Review { } export type ReviewsRes = PaginateRes; + +export interface WalletReq { + account: string; + networkName: string; + testnet: boolean; +} diff --git a/src/core/api/payments/payments.types.ts b/src/core/api/payments/payments.types.ts index 914b6fefa..2d8e99386 100644 --- a/src/core/api/payments/payments.types.ts +++ b/src/core/api/payments/payments.types.ts @@ -50,6 +50,7 @@ export interface Payment { amount?: number; fee?: number; contributor?: string; + verifiedOrg?: boolean; }; payer_identity: Identity; diff --git a/src/core/api/users/users.api.ts b/src/core/api/users/users.api.ts index 26a463030..75d0c90e0 100644 --- a/src/core/api/users/users.api.ts +++ b/src/core/api/users/users.api.ts @@ -1,4 +1,5 @@ -import { post, get } from 'src/core/api/http'; +import { config } from 'src/config'; +import { post, get, put } from 'src/core/api/http'; import { ApplicantsRes, JobsRes, MissionsRes, OffersRes } from 'src/core/api/jobs/jobs.types'; import { FilterReq, PaginateReq, SuccessRes } from 'src/core/api/types'; @@ -23,8 +24,14 @@ import { ReferReq, ImportRes, Reviews, + UserDetails, } from './users.types'; +const overwrittenConfigV3 = { + baseURL: config.baseURLV3, + withCredentials: false, +}; + export async function profile(): Promise { return (await get('user/profile')).data; } @@ -58,7 +65,7 @@ export async function updateProfile(payload: UpdateProfileReq): Promise { } export async function updateWallet(payload: UpdateWalletReq): Promise { - return (await post('user/update/wallet', payload)).data; + return (await put('users/wallets', payload, overwrittenConfigV3)).data; } export async function openToWork(): Promise { @@ -159,3 +166,7 @@ export async function importLinkedin(file: File): Promise { export async function reviews(params: PaginateReq, filters?: FilterReq): Promise { return (await get('user/reviews', { params }, filters)).data; } + +export async function getUserDetails(username: string): Promise { + return (await get(`users/by-username/${username}`, { ...overwrittenConfigV3 })).data; +} diff --git a/src/core/api/users/users.types.ts b/src/core/api/users/users.types.ts index 7a7186b12..ae5940307 100644 --- a/src/core/api/users/users.types.ts +++ b/src/core/api/users/users.types.ts @@ -39,7 +39,9 @@ export interface UpdateProfileReq { } export interface UpdateWalletReq { - wallet_address: string; + address: string; + network: string; + testnet: boolean; } export interface LanguageReq { @@ -91,6 +93,15 @@ export interface UsersRes extends PaginateRes { items: User[]; } +export interface Wallet { + id: string; + address: string; + network: string; + testnet: boolean; + created_at: Date; + updated_at: Date; +} + export interface User { id: string; username: string; @@ -129,6 +140,7 @@ export interface User { name?: string; events?: Event[] | null; rate: number; + wallets?: Wallet[] | null; } export interface UserProfile extends User { @@ -268,3 +280,27 @@ export interface Review { export interface Reviews extends PaginateRes { items: Review[]; } + +//FIXME Use this type after migrating to v3 +export interface UserDetails { + id: string; + first_name: string; + last_name: string; + username: string; + mission: string | null; + impact_points: number; + social_causes: string[]; + followers: number; + followings: number; + skills: string[]; + open_to_work: boolean; + open_to_volunteer: boolean; + identity_verified: boolean; + events: string[]; + tags: string[]; + avatar_id: string | null; + avatar: Media | null; + cover_id: string | null; + cover: Media | null; + created_at: string; +} diff --git a/src/core/generate-languages.js b/src/core/generate-languages.js new file mode 100644 index 000000000..60b0a985a --- /dev/null +++ b/src/core/generate-languages.js @@ -0,0 +1,128 @@ +import axios from 'axios'; +import dotenv from 'dotenv'; +import fs from 'fs'; +import path from 'path'; +import process from 'process'; + +dotenv.config(); + +const DEFAULT_LANGUAGES = ['Spanish', 'Japanese', 'Korean']; +const OUTPUT_BASE = './src/core/translation/locales/'; +const fallbackLangCodes = { + spanish: 'es', + japanese: 'jp', + korean: 'kr', +}; + +// Validate API key +const apiKey = process.env.GEMINI_API_KEY; +if (!apiKey) { + console.error('❌ Missing environment variables.'); + process.exit(1); +} + +// Input files +const inputFiles = process.argv.slice(2); +if (!inputFiles.length) { + console.error('❌ No input files provided.'); + process.exit(1); +} + +// Translation using Gemini API +async function translateWithGemini(text, targetLanguage) { + try { + const response = await axios.post( + 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent', + { + contents: [ + { + parts: [ + { + text: `Translate the following JSON content to ${targetLanguage}. Preserve the JSON structure and keys. Only return valid JSON.\n\n${text}`, + }, + ], + }, + ], + }, + { + headers: { + 'Content-Type': 'application/json', + 'X-goog-api-key': apiKey, + }, + }, + ); + + const result = response.data; + const translated = result?.candidates?.[0]?.content?.parts?.[0]?.text; + console.log('✅ Gemini Response:', translated); + return translated.trim(); + } catch (err) { + console.error('❌ API call failed:', err.response?.data || err.message); + } +} + +// Resolve language code +function getLangCode(language) { + const lang = new Intl.DisplayNames(['en'], { type: 'language' }); + + try { + for (const code of Intl.getCanonicalLocales('en')) { + const name = lang.of(code); + if (name?.toLowerCase() === language.toLowerCase()) { + return code; + } + } + } catch (err) { + console.error(`❌ Failed to get code of ${lang}:`, err.message); + } + + return fallbackLangCodes[language.toLowerCase()] || language.toLowerCase().slice(0, 2); +} + +// Remove Gemini Response and Extract JSON +function extractJson(text) { + const match = text.match(/\{[\s\S]*\}/); + return match ? match[0] : null; +} + +// Translate a file +async function generateTranslationFile(inputFile, targetLanguages = DEFAULT_LANGUAGES, outputBase = OUTPUT_BASE) { + const originalJson = JSON.parse(fs.readFileSync(inputFile, 'utf-8')); + const originalText = JSON.stringify(originalJson, null, 2); + const inputFileName = path.basename(inputFile); + + for (const lang of targetLanguages) { + console.log(`🔄 Translating to ${lang}...`); + try { + const raw = await translateWithGemini(originalText, lang); + const translatedText = extractJson(raw) || ''; + const parsed = JSON.parse(translatedText); + + const code = getLangCode(lang); + const outputDir = path.join(outputBase, code); + const outputPath = path.join(outputDir, inputFileName); + fs.writeFileSync(outputPath, JSON.stringify(parsed, undefined, 2)); + fs.mkdirSync(outputDir, { recursive: true }); + + console.log(`✅ Saved: ${translatedText} with "${code}" code in ${outputPath}`); + } catch (err) { + console.error(`❌ Failed to translate to ${lang}:`, err.message); + } + } +} + +// Translate All Files +(async () => { + for (const inputFile of inputFiles) { + if (!inputFile.endsWith('.json') || !fs.existsSync(inputFile)) { + console.error(`❌ Skipping invalid file: ${inputFile}`); + continue; + } + + try { + await generateTranslationFile(inputFile); + } catch (err) { + console.error(`❌ Error processing file ${inputFile}:`, err.message); + } + } +})(); diff --git a/src/core/hooks/useSwitchLanguage.tsx b/src/core/hooks/useSwitchLanguage.tsx index a836991c4..99461d4c7 100644 --- a/src/core/hooks/useSwitchLanguage.tsx +++ b/src/core/hooks/useSwitchLanguage.tsx @@ -1,16 +1,23 @@ -import i18next from 'i18next'; import { useState } from 'react'; +import { useTranslation } from 'react-i18next'; +import { useSearchParams } from 'react-router-dom'; import { supportedLanguages } from 'src/constants/constants'; const useSwitchLanguage = (defaultLanguage = 'en') => { - const [selectedLanguage, setSelectedLanguage] = useState(() => { - return localStorage.getItem('i18nextLng') || defaultLanguage; - }); + const { i18n } = useTranslation(); + const [selectedLanguage, setSelectedLanguage] = useState(i18n.language || defaultLanguage); + const [searchParams, setSearchParams] = useSearchParams(); + const queryLang = searchParams.get('lang'); const switchLanguage = language => { if (supportedLanguages.map(lang => lang.value).includes(language)) { setSelectedLanguage(language); - i18next.changeLanguage(language); + i18n.changeLanguage(language); + localStorage.setItem('lang', language); + if (queryLang) { + searchParams.set('lang', language); + setSearchParams(searchParams); + } window.location.reload(); } else { console.warn(`Language '${language}' is not supported.`); diff --git a/src/core/hooks/useTokens.tsx b/src/core/hooks/useTokens.tsx index fcd4d4e08..a968d859b 100644 --- a/src/core/hooks/useTokens.tsx +++ b/src/core/hooks/useTokens.tsx @@ -1,5 +1,4 @@ import { useState, useEffect } from 'react'; -import Dapp from 'src/dapp'; interface Token { value: string; @@ -7,15 +6,14 @@ interface Token { address: string; } -export const useTokens = (isConnected: boolean, chainId: number | undefined) => { +export const useTokens = (isConnected: boolean, network: any) => { const [tokens, setTokens] = useState([]); useEffect(() => { const getTokens = async () => { if (isConnected) { - const selectedNetwork = Dapp.NETWORKS.find(network => network.chain.id === chainId); - if (selectedNetwork) { - const mapTokens = selectedNetwork.tokens.map(token => ({ + if (network) { + const mapTokens = network.tokens.map(token => ({ value: token?.address || '', label: token.name, address: token?.address || '', @@ -27,7 +25,7 @@ export const useTokens = (isConnected: boolean, chainId: number | undefined) => } }; getTokens(); - }, [isConnected, chainId]); + }, [isConnected, network]); - return chainId ? tokens : []; + return network ? tokens : []; }; diff --git a/src/core/router/router.blueprint.tsx b/src/core/router/router.blueprint.tsx index 4ca87c0ad..cfafa7363 100644 --- a/src/core/router/router.blueprint.tsx +++ b/src/core/router/router.blueprint.tsx @@ -35,12 +35,12 @@ import { cards, } from 'src/core/api'; import { search as searchReq } from 'src/core/api/site/site.api'; -import { translate } from 'src/core/utils'; import { Layout as NowruzLayout } from 'src/modules/layout'; -import FallBack from 'src/pages/fallback/fallback'; +import FallBack from 'src/pages/error/fallback/fallback'; +import { NotFound } from 'src/pages/error/notFound'; import { RootState } from 'src/store'; -import { getReviewsAdaptor } from '../adaptors/users/index.adaptors'; +import { getReviewsAdaptor, getUserDetailsAdaptor } from '../adaptors/users/index.adaptors'; import { DeepLinks } from '../deepLinks'; import { checkSearchFilters } from '../utils'; @@ -84,12 +84,14 @@ export const blueprint: RouteObject[] = [ kind: 'SERVICE', }); const reviews = await getReviewsAdaptor(1, 5); + const userDetails = await getUserDetailsAdaptor(params.id); // Keep this, it might be needed in the future // const [userBadges, missions] = await Promise.all([badges(user.id), userMissions(user.id)]); return { user, services: services.data, reviews: reviews.data, + userTags: userDetails.data?.tags || [], // badges: userBadges, // missions, }; @@ -607,9 +609,9 @@ export const blueprint: RouteObject[] = [ return { connections }; }, async lazy() { - const { Connctions } = await import('src/pages/connections'); + const { Connections } = await import('src/pages/connections'); return { - Component: Protect(Connctions, 'both'), + Component: Protect(Connections, 'both'), }; }, }, @@ -650,7 +652,7 @@ export const blueprint: RouteObject[] = [ ], }, { - path: 'referral', + path: 'refer', async lazy() { const { Refer } = await import('src/pages/refer'); return { @@ -748,41 +750,6 @@ export const blueprint: RouteObject[] = [ }, ], }, - { - path: 'referral', - children: [ - { - path: ':username/talent', - loader: async ({ params }) => { - if (params.username) { - localStorage.setItem('registerFor', 'user'); - const user = await otherProfileByUsername(params.username); - localStorage.setItem( - 'referrer', - JSON.stringify({ fisrtName: user.first_name, avatarUrl: user.avatar?.url, id: user.id }), - ); - return null; - } - }, - element: , - }, - { - path: ':username/org', - loader: async ({ params }) => { - if (params.username) { - localStorage.setItem('registerFor', 'organization'); - const user = await otherProfileByUsername(params.username); - localStorage.setItem( - 'referrer', - JSON.stringify({ fisrtName: user.first_name, avatarUrl: user.avatar?.url, id: user.id }), - ); - return null; - } - }, - element: , - }, - ], - }, { path: 'notifications/:id', loader: ({ params }) => { @@ -818,6 +785,13 @@ export const blueprint: RouteObject[] = [ }, ], }, + { + path: '/referral', + async lazy() { + const { Referral } = await import('src/pages/refer/referral'); + return { Component: Referral }; + }, + }, { path: 'privacy-policy', async lazy() { @@ -838,7 +812,7 @@ export const blueprint: RouteObject[] = [ }, { path: '*', - element:
{translate('router-not-found')}
, + element: , }, ]; diff --git a/src/core/translation/i18n.ts b/src/core/translation/i18n.ts index 655dfe444..b7c9d6f5a 100644 --- a/src/core/translation/i18n.ts +++ b/src/core/translation/i18n.ts @@ -22,12 +22,21 @@ const resources = { }, }; +const savedLang = localStorage.getItem('lang'); +const queryLang = new URLSearchParams(window.location.search).get('lang'); +const browserLang = navigator.language.split('-')[0]; +if (queryLang) { + localStorage.setItem('lang', queryLang); +} + +const language = queryLang || savedLang || browserLang || 'en'; + i18next .use(detector) .use(initReactI18next) .init({ resources, - lng: localStorage.getItem('i18nextLng') || navigator.language || 'en', + lng: language, fallbackLng: 'en', interpolation: { escapeValue: false, diff --git a/src/core/translation/locales/en/connections.json b/src/core/translation/locales/en/connections.json index 8c16760e6..06b284bfa 100644 --- a/src/core/translation/locales/en/connections.json +++ b/src/core/translation/locales/en/connections.json @@ -14,7 +14,8 @@ "connect-unfollow-alert": "Are you sure you want to unfollow {{name}}?", "connect-followers": "Followers", "connect-following": "Following", - "connect-requests": "Requests", + "connect-received-requests": "Received", + "connect-sent-requests": "Sent", "connect-accept": "Accept", "connect-decline": "Decline", "connect-view": "View", diff --git a/src/core/translation/locales/en/general.json b/src/core/translation/locales/en/general.json index d74c6ec82..b098f63f5 100644 --- a/src/core/translation/locales/en/general.json +++ b/src/core/translation/locales/en/general.json @@ -23,6 +23,15 @@ "expiry": "Expiry", "ending": "ending in" }, - "router-not-found": "Page not found :(", - "general-success-continue": "Continue" + "general-success-continue": "Continue", + "general-error-not-found": { + "header": "404 - Page Not Found", + "subheader": "Oops! The page you're looking for doesn't exist on", + "go-to-home-btn": "Go to Home" + }, + "general-error-internal": { + "header": "Internal Server Error", + "subheader": "We apologize for the inconvenience. Please try again later", + "home-btn": " Home Page" + } } diff --git a/src/core/translation/locales/en/profile.json b/src/core/translation/locales/en/profile.json index 7b2bcefae..73e2af763 100644 --- a/src/core/translation/locales/en/profile.json +++ b/src/core/translation/locales/en/profile.json @@ -16,7 +16,9 @@ "request-sent": "Request sent", "connect": "Connect", "message": "Message" - } + }, + "available-for-work": "Available for work", + "hiring": "Hiring" }, "main-info": { "connections": "connections", diff --git a/src/core/translation/locales/en/refer.json b/src/core/translation/locales/en/refer.json new file mode 100644 index 000000000..6a348dd51 --- /dev/null +++ b/src/core/translation/locales/en/refer.json @@ -0,0 +1,31 @@ +{ + "refer-not-verified-user-banner-desc": "Verify your identity to start referring friends and earning rewards!", + "refer-not-verified-org-banner-desc": "Verify your organization’s identity to start referring and earning rewards!", + "refer-pending-org-banner": " We are currently verifying your organization's identity.", + "refer-pending-org-banner-desc": "We will notify you when this is completed.", + "refer-verified-banner": "Your {{identity}} has been verified!", + "refer-verified-user-banner-desc": "You can now refer friends and earn rewards.", + "refer-verified-org-banner-desc": "Start referring partners and earn rewards.", + "refer-verified-dismiss-btn": "Dismiss", + "refer-header": "✨ Refer and earn", + "refer-title": "Help us make a bigger impact, and gain a stake in our community", + "refer-subtitle": "By sharing Socious with promising talent and impact organizations, you're not just expanding our network, you're also accelerating change.", + "refer-lear-more": "Learn more about our refer program.", + "refer-copy": "Copy", + "refer-org-desc": "1% of every invoice when your refer hires", + "refer-user-desc": "1% of their earnings on Socious", + "refer-they-get": "They get", + "refer-you-get": "You get", + "refer-discount": "50% discount on Socious fees for the first month", + "refer-sent": "Sent", + "refer-tell-contacts": "Tell your contacts to check their inbox. Their invite to Socious should be with them shortly.", + "refer-close": "Close", + "refer-refer-org": "Refer organizations", + "refer-refer-talent": "Refer talent", + "refer-org-link": "Send your link to organizations looking for purpose-driven talent.", + "refer-talent-link": "Send your link to talent looking for jobs and making a difference.", + "refer-invited": "You’ve been invited!", + "refer-who-invited": "has invited you to join Socious Work.", + "refer-register": "Register now to start voting and making an impact.", + "refer-redirect": "Redirecting to Socious ID..." +} diff --git a/src/core/translation/locales/en/referral.json b/src/core/translation/locales/en/referral.json deleted file mode 100644 index dbcfd85bf..000000000 --- a/src/core/translation/locales/en/referral.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "referral-not-verified-user-banner-desc": "Verify your identity to start referring friends and earning rewards!", - "referral-not-verified-org-banner-desc": "Verify your organization’s identity to start referring and earning rewards!", - "referral-pending-org-banner": " We are currently verifying your organization's identity.", - "referral-pending-org-banner-desc": "We will notify you when this is completed.", - "referral-verified-banner": "Your {{identity}} has been verified!", - "referral-verified-user-banner-desc": "You can now refer friends and earn rewards.", - "referral-verified-org-banner-desc": "Start referring partners and earn rewards.", - "referral-verified-dismiss-btn": "Dismiss", - "referral-header": "✨ Refer and earn", - "referral-title": "Help us make a bigger impact, and gain a stake in our community", - "referral-subtitle": "By sharing Socious with promising talent and impact organizations, you're not just expanding our network, you're also accelerating change.", - "referral-lear-more": "Learn more about our referral program.", - "referral-copy": "Copy", - "referral-org-desc": "1% of every invoice when your referral hires", - "referral-user-desc": "1% of their earnings on Socious", - "referral-they-get": "They get", - "referral-you-get": "You get", - "referral-discount": "50% discount on Socious fees for the first month", - "referral-sent": "Sent", - "referral-tell-contacts": "Tell your contacts to check their inbox. Their invite to Socious should be with them shortly.", - "referral-close": "Close", - "referral-refer-org": "Refer organizations", - "referral-refer-talent": "Refer talent", - "referral-org-link": "Send your link to organizations looking for purpose-driven talent.", - "referral-talent-link": "Send your link to talent looking for jobs and making a difference." -} diff --git a/src/core/translation/locales/en/services.json b/src/core/translation/locales/en/services.json index c40019319..a1d8a3fed 100644 --- a/src/core/translation/locales/en/services.json +++ b/src/core/translation/locales/en/services.json @@ -26,6 +26,7 @@ "subheader": "Tell us more about your service", "error-message": "This field is required", "error-positive-message": "Value must be a positive number", + "error-min-price": "The price must be at least {{minValue}}.", "name": "Service name", "name-description": "Add a clear and concise name for the service you want to provide", "name-placeholder": "e.g, Logo Design", diff --git a/src/core/translation/locales/en/translation.ts b/src/core/translation/locales/en/translation.ts index cf39ef1c9..7c04cf411 100644 --- a/src/core/translation/locales/en/translation.ts +++ b/src/core/translation/locales/en/translation.ts @@ -23,7 +23,7 @@ import organization from './organization.json'; import payment from './payments.json'; import preferences from './preferences.json'; import profile from './profile.json'; -import referral from './referral.json'; +import refer from './refer.json'; import reviews from './reviews.json'; import search from './search.json'; import services from './services.json'; @@ -33,6 +33,7 @@ import skills from './skills.json'; import socialCauses from './socialCauses.json'; import termsCondition from './termsCondition.json'; import userTeam from './userTeam.json'; +import wallet from './wallet.json'; export function generateTranslationFile() { return Object.assign( @@ -51,7 +52,7 @@ export function generateTranslationFile() { dashboard, kyc, profile, - referral, + refer, navigation, header, jobs, @@ -72,5 +73,6 @@ export function generateTranslationFile() { certificates, linkedin, reviews, + wallet, ); } diff --git a/src/core/translation/locales/en/wallet.json b/src/core/translation/locales/en/wallet.json new file mode 100644 index 000000000..1f8aa4c77 --- /dev/null +++ b/src/core/translation/locales/en/wallet.json @@ -0,0 +1,10 @@ +{ + "wallet-title": "Crypto Wallet", + "wallet-connect": "Connect your wallet", + "wallet-connect-btn": "Connect wallet", + "wallet-disconnect": "Disconnect", + "wallet-copy": "Copy Address", + "wallet-not-installed-error": "No Cardano or EVM wallet detected. Please install a compatible wallet.", + "wallet-not-connected-error": "Failed to connect your {{walletName}} wallet. Please try again.", + "wallet-failed": "Failed" +} diff --git a/src/core/translation/locales/es/connections.json b/src/core/translation/locales/es/connections.json index 3bbfb4eb3..70de32517 100644 --- a/src/core/translation/locales/es/connections.json +++ b/src/core/translation/locales/es/connections.json @@ -14,7 +14,8 @@ "connect-unfollow-alert": "¿Estás seguro de que deseas dejar de seguir a {{name}}?", "connect-followers": "Seguidores", "connect-following": "Siguiendo", - "connect-requests": "Solicitudes", + "connect-received-requests": "Recibidas", + "connect-sent-requests": "Enviadas", "connect-accept": "Aceptar", "connect-decline": "Rechazar", "connect-view": "Ver", diff --git a/src/core/translation/locales/es/general.json b/src/core/translation/locales/es/general.json index f40038944..f90620d81 100644 --- a/src/core/translation/locales/es/general.json +++ b/src/core/translation/locales/es/general.json @@ -23,6 +23,15 @@ "expiry": "Vencimiento", "ending": "termina en" }, - "router-not-found": "Página no encontrada :(", - "general-success-continue": "Continuar" + "general-success-continue": "Continuar", + "general-error-not-found": { + "header": "404 - Página no encontrada", + "subheader": "¡Vaya! La página que buscas no existe en", + "go-to-home-btn": "Ir a Inicio" + }, + "geneal-error-internal": { + "header": "Error Interno del Servidor", + "subheader": "Nos disculpamos por las molestias. Por favor, inténtelo de nuevo más tarde", + "home-btn": "Página Principal" + } } diff --git a/src/core/translation/locales/es/profile.json b/src/core/translation/locales/es/profile.json index ef9a47319..01de7fc1c 100644 --- a/src/core/translation/locales/es/profile.json +++ b/src/core/translation/locales/es/profile.json @@ -16,7 +16,9 @@ "request-sent": "Solicitud enviada", "connect": "Conectar", "message": "Mensaje" - } + }, + "available-for-work": "Disponible para trabajar", + "hiring": "Contratando" }, "main-info": { "connections": "conexiones", diff --git a/src/core/translation/locales/es/refer.json b/src/core/translation/locales/es/refer.json new file mode 100644 index 000000000..8db9816ba --- /dev/null +++ b/src/core/translation/locales/es/refer.json @@ -0,0 +1,31 @@ +{ + "refer-not-verified-user-banner-desc": "Verifica tu identidad para empezar a invitar amigos y ganar recompensas.", + "refer-not-verified-org-banner-desc": "Verifica la identidad de tu organización para empezar a invitar y ganar recompensas.", + "refer-pending-org-banner": "Actualmente estamos verificando la identidad de tu organización.", + "refer-pending-org-banner-desc": "Te notificaremos cuando esto se haya completado.", + "refer-verified-banner": "¡Tu {{identity}} ha sido verificada!", + "refer-verified-user-banner-desc": "Ahora puedes invitar amigos y ganar recompensas.", + "refer-verified-org-banner-desc": "Comienza a invitar socios y gana recompensas.", + "refer-verified-dismiss-btn": "Descartar", + "refer-header": "✨ Recomienda y gana", + "refer-title": "Ayúdanos a generar un mayor impacto y obtén una participación en nuestra comunidad", + "refer-subtitle": "Al compartir Socious con talentos prometedores y organizaciones de impacto, no solo estás expandiendo nuestra red, sino también acelerando el cambio.", + "refer-lear-more": "Más información sobre nuestro programa de recomendaciones.", + "refer-copy": "Copiar", + "refer-org-desc": "1% de cada factura cuando tu recomendación contrate", + "refer-user-desc": "1% de sus ingresos en Socious", + "refer-they-get": "Ellos obtienen", + "refer-you-get": "Tú obtienes", + "refer-discount": "50% de descuento en las tarifas de Socious durante el primer mes", + "refer-sent": "Enviado", + "refer-tell-contacts": "Dile a tus contactos que revisen su bandeja de entrada. Su invitación a Socious llegará en breve.", + "refer-close": "Cerrar", + "refer-refer-org": "Recomendar organizaciones", + "refer-refer-talent": "Recomendar talentos", + "refer-org-link": "Envía tu enlace a organizaciones que buscan talento con propósito.", + "refer-talent-link": "Envía tu enlace a talentos que buscan trabajo y quieren marcar la diferencia.", + "refer-invited": "¡Has sido invitado!", + "refer-who-invited": "te ha invitado a unirte a Socious Work.", + "refer-register": "Regístrate ahora para empezar a votar y hacer un impacto.", + "refer-redirect": "Redirigiendo a Socious ID..." +} diff --git a/src/core/translation/locales/es/referral.json b/src/core/translation/locales/es/referral.json deleted file mode 100644 index d8663c2e6..000000000 --- a/src/core/translation/locales/es/referral.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "referral-not-verified-user-banner-desc": "Verifica tu identidad para empezar a invitar amigos y ganar recompensas.", - "referral-not-verified-org-banner-desc": "Verifica la identidad de tu organización para empezar a invitar y ganar recompensas.", - "referral-pending-org-banner": "Actualmente estamos verificando la identidad de tu organización.", - "referral-pending-org-banner-desc": "Te notificaremos cuando esto se haya completado.", - "referral-verified-banner": "¡Tu {{identity}} ha sido verificada!", - "referral-verified-user-banner-desc": "Ahora puedes invitar amigos y ganar recompensas.", - "referral-verified-org-banner-desc": "Comienza a invitar socios y gana recompensas.", - "referral-verified-dismiss-btn": "Descartar", - "referral-header": "✨ Recomienda y gana", - "referral-title": "Ayúdanos a generar un mayor impacto y obtén una participación en nuestra comunidad", - "referral-subtitle": "Al compartir Socious con talentos prometedores y organizaciones de impacto, no solo estás expandiendo nuestra red, sino también acelerando el cambio.", - "referral-lear-more": "Más información sobre nuestro programa de recomendaciones.", - "referral-copy": "Copiar", - "referral-org-desc": "1% de cada factura cuando tu recomendación contrate", - "referral-user-desc": "1% de sus ingresos en Socious", - "referral-they-get": "Ellos obtienen", - "referral-you-get": "Tú obtienes", - "referral-discount": "50% de descuento en las tarifas de Socious durante el primer mes", - "referral-sent": "Enviado", - "referral-tell-contacts": "Dile a tus contactos que revisen su bandeja de entrada. Su invitación a Socious llegará en breve.", - "referral-close": "Cerrar", - "referral-refer-org": "Recomendar organizaciones", - "referral-refer-talent": "Recomendar talentos", - "referral-org-link": "Envía tu enlace a organizaciones que buscan talento con propósito.", - "referral-talent-link": "Envía tu enlace a talentos que buscan trabajo y quieren marcar la diferencia." -} diff --git a/src/core/translation/locales/es/services.json b/src/core/translation/locales/es/services.json index fce85d6e6..9bb3fb6a3 100644 --- a/src/core/translation/locales/es/services.json +++ b/src/core/translation/locales/es/services.json @@ -26,6 +26,7 @@ "subheader": "Cuéntanos más sobre tu servicio", "error-message": "Este campo es obligatorio", "error-positive-message": "El valor debe ser un número positivo", + "error-min-price": "El precio debe ser al menos {{minValue}}.", "name": "Nombre del servicio", "name-description": "Agrega un nombre claro y conciso para el servicio que deseas ofrecer", "name-placeholder": "Ejemplo: Diseño de logotipo", diff --git a/src/core/translation/locales/es/translation.ts b/src/core/translation/locales/es/translation.ts index f75aa21d9..b76ac66d1 100644 --- a/src/core/translation/locales/es/translation.ts +++ b/src/core/translation/locales/es/translation.ts @@ -21,7 +21,7 @@ import organization from './organization.json'; import payments from './payments.json'; import preferences from './preferences.json'; import profile from './profile.json'; -import referral from './referral.json'; +import refer from './refer.json'; import reviews from './reviews.json'; import search from './search.json'; import services from './services.json'; @@ -31,6 +31,7 @@ import skills from './skills.json'; import socialCauses from './socialCauses.json'; import termsCondition from './termsCondition.json'; import userTeam from './userTeam.json'; +import wallet from './wallet.json'; export function generateTranslationFile() { return Object.assign( @@ -49,7 +50,7 @@ export function generateTranslationFile() { dashboard, kyc, profile, - referral, + refer, navigation, header, jobs, @@ -68,5 +69,6 @@ export function generateTranslationFile() { userTeam, contribute, reviews, + wallet, ); } diff --git a/src/core/translation/locales/es/wallet.json b/src/core/translation/locales/es/wallet.json new file mode 100644 index 000000000..8c17b81bd --- /dev/null +++ b/src/core/translation/locales/es/wallet.json @@ -0,0 +1,10 @@ +{ + "wallet-title": "Cartera Cripto", + "wallet-connect": "Conecta tu cartera", + "wallet-connect-btn": "Conectar cartera", + "wallet-disconnect": "Desconectar", + "wallet-copy": "Copiar dirección", + "wallet-not-installed-error": "No se detectó una cartera Cardano o EVM. Por favor instala una cartera compatible.", + "wallet-not-connected-error": "No se pudo conectar tu cartera {{walletName}}. Por favor intenta de nuevo.", + "wallet-failed": "Error" +} diff --git a/src/core/translation/locales/jp/connections.json b/src/core/translation/locales/jp/connections.json index 712df499b..58285fdec 100644 --- a/src/core/translation/locales/jp/connections.json +++ b/src/core/translation/locales/jp/connections.json @@ -14,7 +14,8 @@ "connect-unfollow-alert": "{{name}} のフォローを解除してもよろしいですか?", "connect-followers": "フォロワー", "connect-following": "フォロー中", - "connect-requests": "リクエスト", + "connect-received-requests": "受信", + "connect-sent-requests": "送信", "connect-accept": "承認", "connect-decline": "拒否", "connect-view": "表示", diff --git a/src/core/translation/locales/jp/general.json b/src/core/translation/locales/jp/general.json index 716cd0a07..018be89f5 100644 --- a/src/core/translation/locales/jp/general.json +++ b/src/core/translation/locales/jp/general.json @@ -23,6 +23,15 @@ "expiry": "有効期限", "ending": "下4桁" }, - "router-not-found": "ページが見つかりません :(", - "general-success-continue": "続行" + "general-success-continue": "続行", + "general-error-not-found": { + "header": "404 - ページが見つかりません", + "subheader": "お探しのページは存在しません", + "go-to-home-btn": "ホームに戻る" + }, + "general-error-internal": { + "header": "内部サーバーエラー", + "subheader": "ご不便をおかけして申し訳ありません。後でもう一度お試しください", + "home-btn": "ホームページ" + } } diff --git a/src/core/translation/locales/jp/profile.json b/src/core/translation/locales/jp/profile.json index a3b3f30f5..63e2ce2f5 100644 --- a/src/core/translation/locales/jp/profile.json +++ b/src/core/translation/locales/jp/profile.json @@ -16,7 +16,9 @@ "request-sent": "リクエスト送信済み", "connect": "接続", "message": "メッセージ" - } + }, + "available-for-work": "仕事を探しています", + "hiring": "採用中" }, "main-info": { "connections": "つながり", diff --git a/src/core/translation/locales/jp/refer.json b/src/core/translation/locales/jp/refer.json new file mode 100644 index 000000000..7fb1ba0bb --- /dev/null +++ b/src/core/translation/locales/jp/refer.json @@ -0,0 +1,31 @@ +{ + "refer-not-verified-user-banner-desc": "本人確認をして、友達を紹介して報酬を獲得しましょう!", + "refer-not-verified-org-banner-desc": "組織の本人確認をして、紹介を始めて報酬を獲得しましょう!", + "refer-pending-org-banner": "現在、組織の本人確認を行っています。", + "refer-pending-org-banner-desc": "完了次第、お知らせします。", + "refer-verified-banner": "{{identity}} の確認が完了しました!", + "refer-verified-user-banner-desc": "今すぐ友達を紹介して報酬を獲得できます。", + "refer-verified-org-banner-desc": "パートナーの紹介を始めて報酬を獲得しましょう。", + "refer-verified-dismiss-btn": "閉じる", + "refer-header": "✨ 紹介して報酬を獲得", + "refer-title": "私たちと一緒により大きな影響を生み出し、コミュニティに貢献しましょう", + "refer-subtitle": "優れた人材やインパクト組織とSociousを共有することで、ネットワークを広げるだけでなく、変革のスピードを加速させます。", + "refer-lear-more": "紹介プログラムについて詳しく知る。", + "refer-copy": "コピー", + "refer-org-desc": "紹介した組織が採用した場合、請求書の1%を獲得", + "refer-user-desc": "Sociousでの収益の1%を獲得", + "refer-they-get": "彼らが受け取るもの", + "refer-you-get": "あなたが受け取るもの", + "refer-discount": "初月のSocious手数料が50%割引", + "refer-sent": "送信済み", + "refer-tell-contacts": "連絡先にインボックスを確認するよう伝えましょう。Sociousへの招待がすぐに届くはずです。", + "refer-close": "閉じる", + "refer-refer-org": "組織を紹介する", + "refer-refer-talent": "人材を紹介する", + "refer-org-link": "目的志向の人材を探している組織にリンクを送信しましょう。", + "refer-talent-link": "仕事を探し、社会に貢献したい人材にリンクを送信しましょう。", + "refer-invited": "招待されました!", + "refer-who-invited": "があなたをSocious Workに招待しました。", + "refer-register": "今すぐ登録して、投票を始め、影響を与えましょう。", + "refer-redirect": "Socious IDにリダイレクトしています..." +} diff --git a/src/core/translation/locales/jp/referral.json b/src/core/translation/locales/jp/referral.json deleted file mode 100644 index 435462592..000000000 --- a/src/core/translation/locales/jp/referral.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "referral-not-verified-user-banner-desc": "本人確認をして、友達を紹介して報酬を獲得しましょう!", - "referral-not-verified-org-banner-desc": "組織の本人確認をして、紹介を始めて報酬を獲得しましょう!", - "referral-pending-org-banner": "現在、組織の本人確認を行っています。", - "referral-pending-org-banner-desc": "完了次第、お知らせします。", - "referral-verified-banner": "{{identity}} の確認が完了しました!", - "referral-verified-user-banner-desc": "今すぐ友達を紹介して報酬を獲得できます。", - "referral-verified-org-banner-desc": "パートナーの紹介を始めて報酬を獲得しましょう。", - "referral-verified-dismiss-btn": "閉じる", - "referral-header": "✨ 紹介して報酬を獲得", - "referral-title": "私たちと一緒により大きな影響を生み出し、コミュニティに貢献しましょう", - "referral-subtitle": "優れた人材やインパクト組織とSociousを共有することで、ネットワークを広げるだけでなく、変革のスピードを加速させます。", - "referral-lear-more": "紹介プログラムについて詳しく知る。", - "referral-copy": "コピー", - "referral-org-desc": "紹介した組織が採用した場合、請求書の1%を獲得", - "referral-user-desc": "Sociousでの収益の1%を獲得", - "referral-they-get": "彼らが受け取るもの", - "referral-you-get": "あなたが受け取るもの", - "referral-discount": "初月のSocious手数料が50%割引", - "referral-sent": "送信済み", - "referral-tell-contacts": "連絡先にインボックスを確認するよう伝えましょう。Sociousへの招待がすぐに届くはずです。", - "referral-close": "閉じる", - "referral-refer-org": "組織を紹介する", - "referral-refer-talent": "人材を紹介する", - "referral-org-link": "目的志向の人材を探している組織にリンクを送信しましょう。", - "referral-talent-link": "仕事を探し、社会に貢献したい人材にリンクを送信しましょう。" -} diff --git a/src/core/translation/locales/jp/services.json b/src/core/translation/locales/jp/services.json index d6861a0ce..56b6255d4 100644 --- a/src/core/translation/locales/jp/services.json +++ b/src/core/translation/locales/jp/services.json @@ -26,6 +26,7 @@ "subheader": "サービスについて詳しく教えてください", "error-message": "この項目は必須です", "error-positive-message": "値は正の数でなければなりません", + "error-min-price": "価格は少なくとも{{minValue}}である必要があります。", "name": "サービス名", "name-description": "提供するサービスの明確で簡潔な名前を追加してください", "name-placeholder": "例:ロゴデザイン", diff --git a/src/core/translation/locales/jp/translation.ts b/src/core/translation/locales/jp/translation.ts index 5ece23fab..e921efa47 100644 --- a/src/core/translation/locales/jp/translation.ts +++ b/src/core/translation/locales/jp/translation.ts @@ -23,7 +23,7 @@ import organization from './organization.json'; import payments from './payments.json'; import preferences from './preferences.json'; import profile from './profile.json'; -import referral from './referral.json'; +import refer from './refer.json'; import reviews from './reviews.json'; import search from './search.json'; import services from './services.json'; @@ -33,6 +33,7 @@ import skills from './skills.json'; import socialCauses from './socialCauses.json'; import termsCondition from './termsCondition.json'; import userTeam from './userTeam.json'; +import wallet from './wallet.json'; export function generateTranslationFile() { return Object.assign( @@ -51,7 +52,7 @@ export function generateTranslationFile() { dashboard, kyc, profile, - referral, + refer, navigation, header, jobs, @@ -72,5 +73,6 @@ export function generateTranslationFile() { certificates, linkedin, reviews, + wallet, ); } diff --git a/src/core/translation/locales/jp/wallet.json b/src/core/translation/locales/jp/wallet.json new file mode 100644 index 000000000..2f0865133 --- /dev/null +++ b/src/core/translation/locales/jp/wallet.json @@ -0,0 +1,10 @@ +{ + "wallet-title": "暗号ウォレット", + "wallet-connect": "ウォレットを接続する", + "wallet-connect-btn": "ウォレットを接続", + "wallet-disconnect": "切断する", + "wallet-copy": "アドレスをコピー", + "wallet-not-installed-error": "CardanoまたはEVMウォレットが検出されませんでした。対応するウォレットをインストールしてください。", + "wallet-not-connected-error": "{{walletName}}ウォレットの接続に失敗しました。もう一度お試しください。", + "wallet-failed": "失敗しました" +} diff --git a/src/core/translation/locales/kr/connections.json b/src/core/translation/locales/kr/connections.json index 45e1b5eb3..9e55fc0cc 100644 --- a/src/core/translation/locales/kr/connections.json +++ b/src/core/translation/locales/kr/connections.json @@ -14,7 +14,8 @@ "connect-unfollow-alert": "{{name}} 님을 언팔로우하시겠습니까?", "connect-followers": "팔로워", "connect-following": "팔로잉", - "connect-requests": "요청", + "connect-received-requests": "받음", + "connect-sent-requests": "보냄", "connect-accept": "수락", "connect-decline": "거절", "connect-view": "보기", diff --git a/src/core/translation/locales/kr/general.json b/src/core/translation/locales/kr/general.json index 9cb0a50a7..5271a6f0c 100644 --- a/src/core/translation/locales/kr/general.json +++ b/src/core/translation/locales/kr/general.json @@ -23,6 +23,15 @@ "expiry": "유효기간", "ending": "끝자리" }, - "router-not-found": "페이지를 찾을 수 없습니다 :(", - "general-success-continue": "계속" + "general-success-continue": "계속", + "general-error-not-found": { + "header": "404 - 페이지를 찾을 수 없습니다", + "subheader": "죄송합니다. 요청하신 페이지를 찾을 수 없습니다", + "go-to-home-btn": "홈으로 이동" + }, + "general-error-internal": { + "header": "내부 서버 오류", + "subheader": "불편을 끼쳐드려 죄송합니다. 나중에 다시 시도해 주세요", + "home-btn": "홈 페이지" + } } diff --git a/src/core/translation/locales/kr/profile.json b/src/core/translation/locales/kr/profile.json index 19f027dd6..0c3f75d4f 100644 --- a/src/core/translation/locales/kr/profile.json +++ b/src/core/translation/locales/kr/profile.json @@ -16,7 +16,9 @@ "request-sent": "요청 전송됨", "connect": "연결", "message": "메시지" - } + }, + "available-for-work": "구직 중", + "hiring": "채용 중" }, "main-info": { "connections": "연결", diff --git a/src/core/translation/locales/kr/refer.json b/src/core/translation/locales/kr/refer.json new file mode 100644 index 000000000..9bf72f97b --- /dev/null +++ b/src/core/translation/locales/kr/refer.json @@ -0,0 +1,31 @@ +{ + "refer-not-verified-user-banner-desc": "친구를 추천하고 보상을 받으려면 본인 인증을 완료하세요!", + "refer-not-verified-org-banner-desc": "조직의 신원을 확인하고 추천을 시작하여 보상을 받으세요!", + "refer-pending-org-banner": "현재 조직의 신원을 확인 중입니다.", + "refer-pending-org-banner-desc": "확인이 완료되면 알려드리겠습니다.", + "refer-verified-banner": "{{identity}} 인증이 완료되었습니다!", + "refer-verified-user-banner-desc": "이제 친구를 추천하고 보상을 받을 수 있습니다.", + "refer-verified-org-banner-desc": "파트너 추천을 시작하고 보상을 받으세요.", + "refer-verified-dismiss-btn": "닫기", + "refer-header": "✨ 추천하고 보상받기", + "refer-title": "더 큰 임팩트를 만들고, 커뮤니티의 일원이 되세요", + "refer-subtitle": "유망한 인재와 임팩트 조직에게 Socious를 공유함으로써 네트워크를 확장할 뿐만 아니라 변화를 가속화할 수 있습니다.", + "refer-lear-more": "추천 프로그램에 대해 자세히 알아보기.", + "refer-copy": "복사", + "refer-org-desc": "귀하의 추천을 통해 채용이 이루어지면 매출의 1%를 지급받습니다.", + "refer-user-desc": "추천인이 Socious에서 번 돈의 1%를 지급받습니다.", + "refer-they-get": "그들이 받는 혜택", + "refer-you-get": "귀하가 받는 혜택", + "refer-discount": "첫 달 동안 Socious 수수료 50% 할인", + "refer-sent": "전송됨", + "refer-tell-contacts": "귀하의 연락처에게 받은 편지함을 확인하라고 알려주세요. 초대장이 곧 도착할 것입니다.", + "refer-close": "닫기", + "refer-refer-org": "조직 추천하기", + "refer-refer-talent": "인재 추천하기", + "refer-org-link": "목적 중심의 인재를 찾고 있는 조직에 귀하의 링크를 공유하세요.", + "refer-talent-link": "일자리를 찾고 의미 있는 변화를 만들고자 하는 인재에게 귀하의 링크를 공유하세요.", + "refer-invited": "초대되었습니다!", + "refer-who-invited": "가 Socious Work에 초대했습니다.", + "refer-register": "지금 등록하여 투표를 시작하고 임팩트를 만들어보세요.", + "refer-redirect": "Socious ID로 리디렉션 중입니다..." +} diff --git a/src/core/translation/locales/kr/referral.json b/src/core/translation/locales/kr/referral.json deleted file mode 100644 index ecd46b007..000000000 --- a/src/core/translation/locales/kr/referral.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "referral-not-verified-user-banner-desc": "친구를 추천하고 보상을 받으려면 본인 인증을 완료하세요!", - "referral-not-verified-org-banner-desc": "조직의 신원을 확인하고 추천을 시작하여 보상을 받으세요!", - "referral-pending-org-banner": "현재 조직의 신원을 확인 중입니다.", - "referral-pending-org-banner-desc": "확인이 완료되면 알려드리겠습니다.", - "referral-verified-banner": "{{identity}} 인증이 완료되었습니다!", - "referral-verified-user-banner-desc": "이제 친구를 추천하고 보상을 받을 수 있습니다.", - "referral-verified-org-banner-desc": "파트너 추천을 시작하고 보상을 받으세요.", - "referral-verified-dismiss-btn": "닫기", - "referral-header": "✨ 추천하고 보상받기", - "referral-title": "더 큰 임팩트를 만들고, 커뮤니티의 일원이 되세요", - "referral-subtitle": "유망한 인재와 임팩트 조직에게 Socious를 공유함으로써 네트워크를 확장할 뿐만 아니라 변화를 가속화할 수 있습니다.", - "referral-lear-more": "추천 프로그램에 대해 자세히 알아보기.", - "referral-copy": "복사", - "referral-org-desc": "귀하의 추천을 통해 채용이 이루어지면 매출의 1%를 지급받습니다.", - "referral-user-desc": "추천인이 Socious에서 번 돈의 1%를 지급받습니다.", - "referral-they-get": "그들이 받는 혜택", - "referral-you-get": "귀하가 받는 혜택", - "referral-discount": "첫 달 동안 Socious 수수료 50% 할인", - "referral-sent": "전송됨", - "referral-tell-contacts": "귀하의 연락처에게 받은 편지함을 확인하라고 알려주세요. 초대장이 곧 도착할 것입니다.", - "referral-close": "닫기", - "referral-refer-org": "조직 추천하기", - "referral-refer-talent": "인재 추천하기", - "referral-org-link": "목적 중심의 인재를 찾고 있는 조직에 귀하의 링크를 공유하세요.", - "referral-talent-link": "일자리를 찾고 의미 있는 변화를 만들고자 하는 인재에게 귀하의 링크를 공유하세요." -} diff --git a/src/core/translation/locales/kr/services.json b/src/core/translation/locales/kr/services.json index 18b1c0141..a9bf44875 100644 --- a/src/core/translation/locales/kr/services.json +++ b/src/core/translation/locales/kr/services.json @@ -26,6 +26,7 @@ "subheader": "귀하의 서비스에 대해 더 알려주세요", "error-message": "이 필드는 필수입니다", "error-positive-message": "값은 양수여야 합니다", + "error-min-price": "가격은 최소 {{minValue}} 이상이어야 합니다.", "name": "서비스 이름", "name-description": "제공하려는 서비스의 명확하고 간결한 이름을 입력하세요", "name-placeholder": "예: 로고 디자인", diff --git a/src/core/translation/locales/kr/translation.ts b/src/core/translation/locales/kr/translation.ts index f75aa21d9..b76ac66d1 100644 --- a/src/core/translation/locales/kr/translation.ts +++ b/src/core/translation/locales/kr/translation.ts @@ -21,7 +21,7 @@ import organization from './organization.json'; import payments from './payments.json'; import preferences from './preferences.json'; import profile from './profile.json'; -import referral from './referral.json'; +import refer from './refer.json'; import reviews from './reviews.json'; import search from './search.json'; import services from './services.json'; @@ -31,6 +31,7 @@ import skills from './skills.json'; import socialCauses from './socialCauses.json'; import termsCondition from './termsCondition.json'; import userTeam from './userTeam.json'; +import wallet from './wallet.json'; export function generateTranslationFile() { return Object.assign( @@ -49,7 +50,7 @@ export function generateTranslationFile() { dashboard, kyc, profile, - referral, + refer, navigation, header, jobs, @@ -68,5 +69,6 @@ export function generateTranslationFile() { userTeam, contribute, reviews, + wallet, ); } diff --git a/src/core/translation/locales/kr/wallet.json b/src/core/translation/locales/kr/wallet.json new file mode 100644 index 000000000..4a50abb55 --- /dev/null +++ b/src/core/translation/locales/kr/wallet.json @@ -0,0 +1,10 @@ +{ + "wallet-title": "암호화폐 지갑", + "wallet-connect": "지갑을 연결하세요", + "wallet-connect-btn": "지갑 연결", + "wallet-disconnect": "연결 해제", + "wallet-copy": "주소 복사", + "wallet-not-installed-error": "Cardano 또는 EVM 지갑이 감지되지 않았습니다. 호환 지갑을 설치해 주세요.", + "wallet-not-connected-error": "{{walletName}} 지갑 연결에 실패했습니다. 다시 시도해 주세요.", + "wallet-failed": "실패함" +} diff --git a/src/dapp/dapp.config.ts b/src/dapp/dapp.config.ts index 7ae297e9e..b6c7270de 100644 --- a/src/dapp/dapp.config.ts +++ b/src/dapp/dapp.config.ts @@ -7,6 +7,7 @@ export const dappConfig: DappConfig = { testnet: [ { chain: bscTestnet, + name: 'bsc', escrow: '0xE6b7fdf37b4D297d7E4BcB055Df06AF5DDbf82Ce', logic: '0xE6b7fdf37b4D297d7E4BcB055Df06AF5DDbf82Ce', tokens: [ @@ -26,6 +27,7 @@ export const dappConfig: DappConfig = { }, { chain: sepolia, + name: 'sepolia', escrow: '0x383fdB2917B1bB02841116811f94159D9263D53d', logic: '0x383fdB2917B1bB02841116811f94159D9263D53d', tokens: [ @@ -48,6 +50,7 @@ export const dappConfig: DappConfig = { }, }, escrow: '', + name: 'cardano', tokens: [ { name: 'ADA', @@ -61,6 +64,7 @@ export const dappConfig: DappConfig = { mainet: [ { chain: bsc, + name: 'bsc', escrow: '0x2Bdf475Bf5353cF52Aa4339A0FA308B4e1e22C3A', logic: '0x2Bdf475Bf5353cF52Aa4339A0FA308B4e1e22C3A', tokens: [ diff --git a/src/dapp/dapp.connect.tsx b/src/dapp/dapp.connect.tsx index 78f6b95b8..5f3c3689a 100644 --- a/src/dapp/dapp.connect.tsx +++ b/src/dapp/dapp.connect.tsx @@ -1,25 +1,32 @@ -import '@rainbow-me/rainbowkit/styles.css'; -import { connectorsForWallets, RainbowKitProvider } from '@rainbow-me/rainbowkit'; -import { metaMaskWallet, walletConnectWallet, trustWallet, ledgerWallet } from '@rainbow-me/rainbowkit/wallets'; -import { QueryClientProvider, QueryClient } from '@tanstack/react-query'; -import { Escrow } from 'cardano-bridge'; -import { BrowserProvider, Eip1193Provider, JsonRpcSigner } from 'ethers'; +import { BrowserWallet } from '@meshsdk/core'; +import { QueryClient } from '@tanstack/react-query'; +import { BrowserProvider, Eip1193Provider } from 'ethers'; import { useState, useEffect } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; import { config } from 'src/config'; -import ConnectButton from 'src/modules/wallet/components/ConnectButton'; +import { CustomError } from 'src/core/adaptors'; +import { RootState } from 'src/store'; +import { resetWalletState, setWalletState } from 'src/store/reducers/wallet.reducer'; import { Chain } from 'viem'; -import { useAccount, WagmiProvider, createConfig, http } from 'wagmi'; +import { + Connector, + createConfig, + CreateConnectorFn, + http, + useAccount, + useBalance, + useChainId, + useConnect, + useDisconnect, +} from 'wagmi'; +import { metaMask, walletConnect } from 'wagmi/connectors'; import { dappConfig } from './dapp.config'; +import { getCardanoEscrow } from './dapp.service'; import { Network } from './dapp.types'; -import { CIP30ToEIP1193Provider } from './wallets/cip-30'; -import { eternlWallet } from './wallets/eternl'; -import { laceWallet } from './wallets/lace'; export const NETWORKS: Network[] = config.dappENV === 'mainet' ? dappConfig.mainet : dappConfig.testnet; -export const CardanoEscrow = new Escrow({ blockfrost: config.blocfrostProjectId }); - const chains = NETWORKS.map(n => n.chain); const projectId = dappConfig.walletConnetProjectId; @@ -31,84 +38,155 @@ const metadata = { icons: ['https://avatars.githubusercontent.com/u/37784886'], }; -const connectors = connectorsForWallets( - [ - { - groupName: 'Recommended', - wallets: [metaMaskWallet, walletConnectWallet, trustWallet, ledgerWallet], - }, - { - groupName: 'Cardano', - wallets: [laceWallet(1215), eternlWallet(1215)], - }, - ], - { - appName: metadata.name, - projectId, - }, -); - -const wagmiConfig = createConfig({ +export const wagmiConfig = createConfig({ chains: chains as [Chain, ...Chain[]], + connectors: [walletConnect({ projectId, metadata }), metaMask()], transports: Object.fromEntries(chains.map(chain => [chain.id, http(chain.rpcUrls.default?.http[0])])), - connectors, }); -const queryClient = new QueryClient(); +export const queryClient = new QueryClient(); -const RainbowKitWrapper = ({ children }) => { - return ( - - - {children} - - - ); -}; +const WALLET_TYPES = { + EVM: 'evm', + CARDANO: 'cardano', +} as const; export const useWeb3 = () => { - // const connectors = useConnectors() - // const { walletProvider } = /useWeb3ModalProvider(); - const [provider, setProvider] = useState(); - const [walletProvider, setWalletProvider] = useState(); - const [connected, setConnected] = useState(false); - const [account, setAccount] = useState(); - const [chainId, setChainId] = useState(0); - const [signer, setSigner] = useState(); - - const Button: React.FC = () => { - const { address, isConnected, connector } = useAccount(); - - const updateProvider = async () => { - if (!connector?.getChainId) return; - setChainId(await connector.getChainId()); - const eipProvider = (await connector.getProvider()) as CIP30ToEIP1193Provider; - setWalletProvider(eipProvider); - - if (eipProvider.isCIP30) await CardanoEscrow.connectWallet(eipProvider.name); - - const ethers = new BrowserProvider(eipProvider as Eip1193Provider); - setProvider(ethers); - setSigner(await ethers.getSigner()); - }; - - useEffect(() => { - setConnected(isConnected); - setAccount(address); - - if (isConnected && connector?.getChainId && !chainId) updateProvider(); - }, [isConnected, address, connector]); - - return ; + const initialState = { + wallet: null, + walletProvider: null, + provider: null, + signer: null, + account: '', + chainId: null, + connected: false, + network: null, + networkName: '', + testnet: config.dappENV === 'testnet', + balance: null, }; - - const Web3Connect: React.FC = () => { - return ( - - - - + ); diff --git a/src/modules/Jobs/containers/OrgOfferModal/useOrgOffer.tsx b/src/modules/Jobs/containers/OrgOfferModal/useOrgOffer.tsx index 475ad3a0d..c7fffc2b5 100644 --- a/src/modules/Jobs/containers/OrgOfferModal/useOrgOffer.tsx +++ b/src/modules/Jobs/containers/OrgOfferModal/useOrgOffer.tsx @@ -1,52 +1,72 @@ import { yupResolver } from '@hookform/resolvers/yup'; -import { KeyboardEvent, useEffect, useState } from 'react'; +import { useEffect } from 'react'; import { SubmitHandler, useForm } from 'react-hook-form'; +import { PAYMENT_CURRENCIES } from 'src/constants/PAYMENT_CURRENCY'; +import { minByToken } from 'src/constants/TOKEN_LIMIT'; import { Applicant, ProjectPaymentType, offerByApplicant } from 'src/core/api'; +import { useTokens } from 'src/core/hooks/useTokens'; import { removeValuesFromObject } from 'src/core/utils'; -import Dapp from 'src/dapp'; +import dapp from 'src/dapp'; import * as yup from 'yup'; -type Inputs = { - title: string; - hours: number; - total?: number; - paymentMethod?: string; - description: string; +import { Form } from './OrgOfferModal.types'; + +const getSchema = tokens => { + return yup.object().shape({ + title: yup.string().required('Required').min(2, 'Must be 2-50 characters').max(50, 'Must be 2-50 characters'), + paymentType: yup.string().required('Required'), + paymentTerm: yup.string(), + paymentMethod: yup.string(), + hours: yup + .number() + .typeError('Total hours is required') + .positive('Must be positive') + .min(1, 'Hours must be more than 1') + .required('Total hours is required'), + total: yup + .number() + .when(['paymentType', 'paymentMethod', 'currency'], ([paymentType, paymentMethod, currency], schema) => { + if (paymentType === 'VOLUNTEER') { + return yup.number().nullable().notRequired(); + } + let minValue; + if (paymentMethod === 'FIAT') { + minValue = 22; + } else if (paymentMethod === 'CRYPTO' && currency) { + const tokenLabel = tokens.find(token => token.value === currency)?.label; + minValue = minByToken[tokenLabel]; + } + return schema + .typeError('Offer amount is required') + .required('Offer amount is required') + .test('is-positive', 'Offer amount should be positive', value => typeof value === 'number' && value > 0) + .min(minValue || 0, minValue !== undefined ? `Offer amount must be at least ${minValue}.` : ''); + }), + currency: yup.string().when(['paymentType', 'paymentMethod'], ([paymentType, paymentMethod], schema) => { + if (paymentType === 'VOLUNTEER') { + return schema.nullable().notRequired(); + } + if (paymentMethod === 'FIAT') { + return schema.required('Currency is required').oneOf( + PAYMENT_CURRENCIES.map(c => c.value), + 'Invalid FIAT currency', + ); + } + if (paymentMethod === 'CRYPTO') { + return schema.required('Token is required').oneOf( + tokens.map(t => t.value), + 'Invalid CRYPTO token', + ); + } + return schema; + }), + description: yup.string().required('Description is required'), + }); }; -const schema = yup.object().shape({ - title: yup.string().required('Required').min(2, 'Must be 2-50 characters').max(50, 'Must be 2-50 characters'), - paymentType: yup.string().required('Required'), - paymentTerm: yup.string(), - paymentMethod: yup.string(), - hours: yup - .number() - .positive() - .typeError('Total hours is required') - .min(1, 'Hours needs to be more than 0') - .required('Total hours is required'), - total: yup.number().when(['paymentType'], paymentType => { - if (paymentType.includes('PAID')) { - return yup - .number() - .typeError('Offer amount is required') - .positive('Offer amount should be positive value') - .required('Offer amount is required'); - } else { - return yup.string().nullable().notRequired(); - } - }), - description: yup.string().required('Description is required'), -}); + export const useOrgOffer = (applicant: Applicant, onClose: () => void, onSuccess: () => void) => { - const { chainId, isConnected, Web3Connect } = Dapp.useWeb3(); - const [tokens, setTokens] = useState< - { - value: string; - label: string; - address: string; - }[] - >([]); - const [selected, setSelected] = useState(); + const { connected, network } = dapp.useWeb3(); + const tokens = useTokens(connected, network); const { register, @@ -57,79 +77,56 @@ export const useOrgOffer = (applicant: Applicant, onClose: () => void, onSuccess formState: { errors }, } = useForm({ mode: 'all', - resolver: yupResolver(schema), + resolver: yupResolver(getSchema(tokens)), defaultValues: { paymentType: 'PAID' as ProjectPaymentType, paymentMethod: 'FIAT' as 'STRIPE', paymentTerm: 'FIXED', }, }); + const paymentMethod = watch('paymentMethod'); + const currency = watch('currency'); + const isNonPaid = watch('paymentType') === 'VOLUNTEER'; + const isCrypto = paymentMethod === 'CRYPTO'; + const isFiat = paymentMethod === 'FIAT'; + const paymentMethodOptions = isCrypto ? tokens : PAYMENT_CURRENCIES; - useEffect(() => { - const getTokens = async () => { - if (isConnected) { - const selectedNetwork = Dapp.NETWORKS.filter(n => n.chain.id === chainId)[0]; - const mapTokens = selectedNetwork.tokens.map(token => { - return { - value: token?.address || '', - label: token.name, - address: token?.address || '', - }; - }); - - setTokens(mapTokens); - } - }; - getTokens(); - }, [isConnected, chainId]); - - const onSelectPaymentType = paymentType => { - setValue('paymentType', paymentType); + const initCurrencyValue = () => { + if (isCrypto) return tokens[0]?.value; + else if (isFiat) return PAYMENT_CURRENCIES[0].value; + return ''; }; - const onSelectPaymentTerm = paymentTerm => { - setValue('paymentTerm', paymentTerm); - }; - const onSelectPaymentMethod = paymentMethod => { - setValue('paymentMethod', paymentMethod); - }; - const isCrypto = watch('paymentMethod') === 'CRYPTO'; - const isNonPaid = watch('paymentType') === 'VOLUNTEER'; - const preventArrow = (e: KeyboardEvent) => { - if (['ArrowUp', 'ArrowDown'].includes(e.key)) { - e.preventDefault(); - } + useEffect(() => { + setValue('currency', initCurrencyValue()); + }, [tokens.length, paymentMethod]); + + const onSelectValue = (name: 'paymentType' | 'paymentTerm' | 'paymentMethod' | 'currency', value: string) => { + setValue(name, value, { shouldValidate: true }); }; - const onSubmit: SubmitHandler = async ({ paymentMethod, total, description, hours }) => { + const onSubmit: SubmitHandler
= async ({ paymentMethod, total, description, hours }) => { let netTotal = total || 0; if (isNonPaid) { netTotal = 0; } - if (!isNonPaid && !selected) { + if (!isNonPaid && !currency) { setError('total', { message: 'Offer currency is required', }); return; } - if (!isNonPaid && paymentMethod === ('FIAT' as 'STRIPE') && netTotal < 22) { - setError('total', { - message: 'Offer amount on Fiat should have a minimum value of 22', - }); - return; - } - - if (isCrypto && selected && ['USD', 'JPY'].includes(selected)) { + if (isCrypto && currency && ['USD', 'JPY'].includes(currency)) { setError('total', { message: 'Offer currency is incorrect', }); return; } - if (!isCrypto && selected && !['USD', 'JPY'].includes(selected)) { + if (!isCrypto && currency && !['USD', 'JPY'].includes(currency)) { setError('total', { message: 'Offer currency is incorrect', }); @@ -141,8 +138,8 @@ export const useOrgOffer = (applicant: Applicant, onClose: () => void, onSuccess assignment_total: netTotal.toString(), offer_message: description, total_hours: hours.toString(), - crypto_currency_address: isCrypto ? selected : undefined, - currency: isCrypto ? undefined : selected, + crypto_currency_address: isCrypto ? currency : undefined, + currency: isCrypto ? undefined : currency, }; await offerByApplicant(applicant.id, removeValuesFromObject(payload, [undefined])); @@ -150,26 +147,16 @@ export const useOrgOffer = (applicant: Applicant, onClose: () => void, onSuccess onClose(); }; - const paymentMethodOptions = isCrypto - ? tokens - : [ - { label: 'USD', value: 'USD' }, - { label: 'JPY', value: 'JPY' }, - ]; return { register, handleSubmit, errors, onSubmit, - setValue, - onSelectPaymentType, - onSelectPaymentTerm, - onSelectPaymentMethod, + onSelectValue, isCrypto, isNonPaid, paymentMethodOptions, - setSelected, - preventArrow, - Web3Connect, + currency, + disabled: !isFiat && !connected, }; }; diff --git a/src/modules/Search/components/ResultList/index.tsx b/src/modules/Search/components/ResultList/index.tsx index d2e118a4f..72db88b95 100644 --- a/src/modules/Search/components/ResultList/index.tsx +++ b/src/modules/Search/components/ResultList/index.tsx @@ -35,7 +35,7 @@ export const ResultList: React.FC = ({ list, onClose }) => { return (
{list.map((item, index) => ( -
+
{ handleCloseModal, onCancelClick, onBack, - Web3Connect, handleSubmit, onSubmit, onSelectSearchDropdown, @@ -81,7 +81,7 @@ const ServiceCreateForm = () => {
<>
- +
{ + return yup.object().shape({ + name: yup.string().required(translate('service-form.error-message')), + category: yup.object().shape({ + label: yup.string().required(), + value: yup.string().required(translate('service-form.error-message')), + }), + description: yup.string().required(translate('service-form.error-message')), + delivery: yup.object().shape({ + label: yup.string().required(), + value: yup.string().required(translate('service-form.error-message')), + }), + hours: yup + .string() + .matches(/^[0-9]*\.?[0-9]+$/, translate('service-form.error-positive-message')) + .required(translate('service-form.error-message')), + payment: yup.string().default('FIAT').required(translate('service-form.error-message')), + price: yup + .string() + .required(translate('service-form.error-message')) + .when(['payment', 'currency'], ([payment, currency], schema) => { + let minValue; + if (payment === 'FIAT') { + minValue = 22; + } else if (payment === 'CRYPTO' && currency) { + const tokenLabel = tokens.find(t => t.value === currency)?.label; + minValue = minByToken[tokenLabel]; + } + return schema + .test('is-positive', translate('service-form.error-positive-message'), value => + value ? parseFloat(value) > 0 : false, + ) + .test( + 'min-price', + minValue !== undefined ? translate('service-form.error-min-price', { minValue }) : '', + value => { + if (!value || minValue === undefined) return true; + return parseFloat(value) >= minValue; + }, + ); }), - ) - .required(translate('service-form.error-message')), -}); + currency: yup + .string() + .required(translate('service-form.error-message')) + .when(['payment'], ([payment], schema) => { + if (payment === 'FIAT') { + return schema.required(translate('service-form.error-message')).oneOf( + PAYMENT_CURRENCIES.map(c => c.value), + 'Invalid FIAT currency', + ); + } + if (payment === 'CRYPTO') { + return schema.required(translate('service-form.error-message')).oneOf( + tokens.map(t => t.value), + 'Invalid CRYPTO token', + ); + } + return schema; + }), + skills: yup + .array() + .of( + yup.object().shape({ + label: yup.string().required(), + value: yup.string().required(translate('service-form.error-message')), + }), + ) + .required(translate('service-form.error-message')), + }); +}; export const useServiceCreateForm = () => { const navigate = useNavigate(); @@ -69,8 +115,8 @@ export const useServiceCreateForm = () => { }); const { usernameVal } = getIdentityMeta(currentIdentity); const walletAddress = currentIdentity?.meta.wallet_address; - const { Web3Connect, isConnected, chainId, account } = Dapp.useWeb3(); - const tokens = useTokens(isConnected, chainId); + const { connected, account, network, networkName, testnet } = dapp.useWeb3(); + const tokens = useTokens(connected, network); const [openModal, setOpenModal] = useState<{ name: 'publish' | 'cancel' | 'stripe' | ''; open: boolean }>({ name: '', open: false, @@ -93,25 +139,25 @@ export const useServiceCreateForm = () => { reset, } = useForm({ mode: 'all', - resolver: yupResolver(schema), + resolver: yupResolver(getSchema(tokens)), }); const selectedCategory = getValues('category'); const selectedDelivery = getValues('delivery'); const selectedPaymentMethod = watch('payment') || paymentModes[0].value; const selectedCurrency = getValues('currency') || paymentCurrencies[0].value; const selectedSkills = getValues('skills') || []; - const disabledButton = selectedPaymentMethod === 'CRYPTO' && !isConnected; + const disabledButton = selectedPaymentMethod === 'CRYPTO' && !connected; useEffect(() => { if ( currentIdentity?.type === 'users' && - isConnected && + connected && account && (!walletAddress || String(walletAddress) !== account) ) { - updateWallet({ wallet_address: account }); + updateWalletAdaptor({ account, networkName, testnet }); } - }, [isConnected, account]); + }, [connected, account]); const initCurrencyValue = (service: Service) => { if (!service) { @@ -249,7 +295,6 @@ export const useServiceCreateForm = () => { handleCloseModal, onCancelClick, onBack, - Web3Connect, handleSubmit, onSubmit, onSelectSearchDropdown, diff --git a/src/modules/Services/containers/ServicePaymentFlow/index.tsx b/src/modules/Services/containers/ServicePaymentFlow/index.tsx index 4b4aefe37..8285373d8 100644 --- a/src/modules/Services/containers/ServicePaymentFlow/index.tsx +++ b/src/modules/Services/containers/ServicePaymentFlow/index.tsx @@ -8,6 +8,7 @@ import { Input } from 'src/modules/general/components/input/input'; import ProgressStep from 'src/modules/general/components/ProgressStep'; import AddCardModal from 'src/modules/general/containers/AddCardModal'; import ServiceOrderDetail from 'src/modules/Services/components/ServiceOrderDetail'; +import ConnectButton from 'src/modules/wallet/components/ConnectButton'; import variables from 'src/styles/constants/_exports.module.scss'; import styles from './index.module.scss'; @@ -24,7 +25,6 @@ const ServicePaymentFlow = () => { cardsList, selectedCardId, openAddCardModal, - Web3Connect, errorMessage, orderStatus, register, @@ -60,7 +60,7 @@ const ServicePaymentFlow = () => { customStyle={styles['card__remove']} onClick={() => onRemoveCard(card.id)} > - Remove + {'Remove'} ), }; @@ -105,7 +105,7 @@ const ServicePaymentFlow = () => { ) : (
- +
)}
diff --git a/src/modules/Services/containers/ServicePaymentFlow/useServicePaymentFlow.tsx b/src/modules/Services/containers/ServicePaymentFlow/useServicePaymentFlow.tsx index c6ae97b15..a4b377b40 100644 --- a/src/modules/Services/containers/ServicePaymentFlow/useServicePaymentFlow.tsx +++ b/src/modules/Services/containers/ServicePaymentFlow/useServicePaymentFlow.tsx @@ -9,18 +9,11 @@ import { depositContractAdaptor, Service, submitRequirementsAdaptor, + updateWalletAdaptor, } from 'src/core/adaptors'; -import { - Card, - CurrentIdentity, - OrgMeta, - ProjectPaymentType, - removeCard, - updateWallet, - uploadMedia, -} from 'src/core/api'; +import { Card, CurrentIdentity, OrgMeta, ProjectPaymentType, removeCard, uploadMedia } from 'src/core/api'; import { translate } from 'src/core/utils'; -import Dapp from 'src/dapp'; +import dapp from 'src/dapp'; import { Files } from 'src/modules/general/components/FileUploader/index.types'; import { OrderStatus } from 'src/modules/Services/components/ServiceOrderDetail/index.types'; import { RootState } from 'src/store'; @@ -32,7 +25,7 @@ const schema = yup.object().shape({ export const useServicePaymentFlow = () => { const navigate = useNavigate(); - const { isConnected, account, signer, chainId, Web3Connect, walletProvider } = Dapp.useWeb3(); + const { connected, account, network, networkName, testnet, signer } = dapp.useWeb3(); const { serviceDetail: service, cards } = useLoaderData() as { serviceDetail: Service; cards: Card[] }; const currentIdentity = useSelector(state => { return state.identity.entities.find(identity => identity.current); @@ -59,13 +52,13 @@ export const useServicePaymentFlow = () => { mode: 'all', resolver: yupResolver(schema), }); - const isValidPayStep = paymentIsFiat ? !selectedCardId : !isConnected; + const isValidPayStep = paymentIsFiat ? !selectedCardId : !connected; useEffect(() => { - if (!paymentIsFiat && isConnected && account && (!walletAddress || String(walletAddress) !== account)) { - updateWallet({ wallet_address: account }); + if (!paymentIsFiat && connected && account && (!walletAddress || String(walletAddress) !== account)) { + updateWalletAdaptor({ account, networkName, testnet }); } - }, [paymentIsFiat, isConnected, account]); + }, [paymentIsFiat, connected, account]); const onRemoveCard = async (cardId: string) => { const filteredCard = cardsList.filter(card => card.id !== cardId); @@ -103,7 +96,7 @@ export const useServicePaymentFlow = () => { const handleCryptoPayment = async (contract: Contract) => { try { const contributor = contract.client?.meta.wallet_address; - if (!signer || !chainId) { + if (!connected) { setErrorMessage(translate('cont-wallet-not-connected')); return; } @@ -113,10 +106,9 @@ export const useServicePaymentFlow = () => { return; } - const result = await Dapp.escrow({ - walletProvider, + const result = await dapp.escrow({ signer, - chainId, + network, totalAmount: contract.amounts?.total || 0, escrowAmount: contract.amounts?.amount || 0, contributor, @@ -143,7 +135,9 @@ export const useServicePaymentFlow = () => { if (!contract) return; let identifier = ''; - let result: { txHash: any; token: string | undefined; id: string } | undefined = undefined; + let result: + | { id: string; txHash: string; token?: string; amount?: number; fee?: number; contributor?: string } + | undefined = undefined; if (paymentIsFiat) { identifier = selectedCardId; @@ -153,11 +147,15 @@ export const useServicePaymentFlow = () => { identifier = result?.txHash || ''; } + if (!result) return; const { error: depositError, data: depositData } = await depositContractAdaptor( contract.id, identifier, service.payment, - result && { + { + amount: result.amount, + contributor: result.contributor, + fee: result.fee, escrowId: result.id, token: result?.token || '', txHash: result.txHash, @@ -211,7 +209,6 @@ export const useServicePaymentFlow = () => { cardsList, selectedCardId, openAddCardModal, - Web3Connect, errorMessage, orderStatus, register, diff --git a/src/modules/chats/components/summaryCard/index.tsx b/src/modules/chats/components/summaryCard/index.tsx index 4b2faa282..786e306c4 100644 --- a/src/modules/chats/components/summaryCard/index.tsx +++ b/src/modules/chats/components/summaryCard/index.tsx @@ -43,7 +43,7 @@ export const SummaryCard: React.FC = ({ chat, handleSelect, is onClick={() => handleSelect(chat.id)} >
-
+
{ +export const RequestTab: React.FC = ({ requestType }) => { const { connectRequests, page, @@ -22,10 +23,15 @@ export const RequestTab = () => { setOpenAcceptModal, handleOpenAcceptModal, selectedRequest, - } = useRequestTab(); - - const requester = selectedRequest?.requester; - const { profileImage, username } = getIdentityMeta(requester); + isRequestedType, + getAccount, + } = useRequestTab(requestType); + const { + profileImage: img = '', + type = 'users', + name = '', + username = '', + } = getIdentityMeta(selectedRequest?.requester); const footerJsx = (
@@ -41,14 +47,14 @@ export const RequestTab = () => { return (
{connectRequests.map(item => { - const account = item.requester; - const { username, profileImage, type, name } = getIdentityMeta(account); + const account = getAccount(item); + const { profileImage: img = '', type = 'users', name = '', username = '' } = getIdentityMeta(account); const accountItem = { id: account?.id || '', - img: profileImage || '', - type: type || 'users', - name: name || '', - username: (username || '').replace('@', ''), + img, + type, + name, + username: username.replace('@', ''), }; return ( @@ -63,14 +69,16 @@ export const RequestTab = () => { > {translate('connect-decline')} - + {isRequestedType && ( + + )}
); @@ -101,17 +109,17 @@ export const RequestTab = () => {
- {translate('connect-accept-alert', { name: selectedRequest?.requester.meta.name })} + {translate('connect-accept-alert', { name })}
{selectedRequest?.text}
diff --git a/src/modules/connections/requestTab/index.types.ts b/src/modules/connections/requestTab/index.types.ts new file mode 100644 index 000000000..d4de35e97 --- /dev/null +++ b/src/modules/connections/requestTab/index.types.ts @@ -0,0 +1,3 @@ +export interface RequestTabProps { + requestType: 'REQUESTED' | 'REQUESTER'; +} diff --git a/src/modules/connections/requestTab/useRequetTab.tsx b/src/modules/connections/requestTab/useRequestTab.tsx similarity index 68% rename from src/modules/connections/requestTab/useRequetTab.tsx rename to src/modules/connections/requestTab/useRequestTab.tsx index e7d42dc61..dc1ee7733 100644 --- a/src/modules/connections/requestTab/useRequetTab.tsx +++ b/src/modules/connections/requestTab/useRequestTab.tsx @@ -3,7 +3,11 @@ import { useSelector } from 'react-redux'; import { Connection, CurrentIdentity, connectRequestAccept, connectRequestReject, connections } from 'src/core/api'; import { RootState } from 'src/store'; -export const useRequestTab = () => { +import { RequestTabProps } from './index.types'; + +export const useRequestTab = (requestType: RequestTabProps['requestType']) => { + const PER_PAGE = 10; + const isRequestedType = requestType === 'REQUESTED'; const currentIdentity = useSelector(state => state.identity.entities.find(item => item.current), ); @@ -11,16 +15,15 @@ export const useRequestTab = () => { const [page, setPage] = useState(1); const [totalCount, setTotalCount] = useState(0); const [openAcceptModal, setOpenAcceptModal] = useState(false); - const [requestedId, setRequestedId] = useState(''); - const [selectedRequest, setselectedRequest] = useState(); - const PER_PAGE = 10; + const [selectedRequest, setSelectedRequest] = useState(); + const selectedId = selectedRequest?.id || ''; const fetchData = async () => { const requestRes = await connections({ page, limit: PER_PAGE, 'filter.status': 'PENDING', - 'filter.requested_id': currentIdentity?.id, + [isRequestedType ? 'filter.requested_id' : 'filter.requester_id']: currentIdentity?.id, }); setConnectRequests(requestRes.items); @@ -29,11 +32,12 @@ export const useRequestTab = () => { useEffect(() => { fetchData(); - }, [page]); + }, [page, isRequestedType]); const handleAccept = async () => { + if (!selectedId) return; try { - await connectRequestAccept(requestedId); + await connectRequestAccept(selectedId); await fetchData(); } catch (e) { console.log(e); @@ -42,8 +46,9 @@ export const useRequestTab = () => { }; const handleReject = async (id?: string) => { + const connectionId = id || selectedId; + if (!connectionId) return; try { - const connectionId = id || requestedId; await connectRequestReject(connectionId); await fetchData(); } catch (e) { @@ -53,12 +58,15 @@ export const useRequestTab = () => { }; const handleOpenAcceptModal = (id: string) => { - setRequestedId(id); const req = connectRequests.find(item => item.id === id); - setselectedRequest(req); + setSelectedRequest(req); setOpenAcceptModal(true); }; + const getAccount = (request: Connection | undefined) => { + return isRequestedType ? request?.requester : request?.requested; + }; + return { page, setPage, @@ -71,5 +79,7 @@ export const useRequestTab = () => { setOpenAcceptModal, handleOpenAcceptModal, selectedRequest, + isRequestedType, + getAccount, }; }; diff --git a/src/modules/general/components/SearchDropdown/index.tsx b/src/modules/general/components/SearchDropdown/index.tsx index 0d0962f36..6e26aa63f 100644 --- a/src/modules/general/components/SearchDropdown/index.tsx +++ b/src/modules/general/components/SearchDropdown/index.tsx @@ -103,7 +103,7 @@ export const SearchDropdown: React.FC = ({ } }; return ( -
+
{label && (
} /> diff --git a/src/modules/general/containers/CopyLink/index.types.ts b/src/modules/general/containers/CopyLink/index.types.ts index fa8735c96..bcd165d15 100644 --- a/src/modules/general/containers/CopyLink/index.types.ts +++ b/src/modules/general/containers/CopyLink/index.types.ts @@ -2,4 +2,5 @@ export interface CopyLinkProps { link: string; copyText?: string; onCopy: () => void; + className?: string; } diff --git a/src/modules/layout/components/NavPortal/index.tsx b/src/modules/layout/components/NavPortal/index.tsx index b3779d0f2..721f9f905 100644 --- a/src/modules/layout/components/NavPortal/index.tsx +++ b/src/modules/layout/components/NavPortal/index.tsx @@ -21,6 +21,11 @@ const NavPortal = () => { logo: '/images/logo/fund-logo.svg', link: config.fundURL, }, + { + name: 'AC', + logo: '/images/logo/account-center.svg', + link: config.accountCenterURL + 'app', + }, ]; return ( @@ -46,7 +51,7 @@ const NavPortal = () => { onClick={() => (window.location.href = product.link)} >
- {`Socious + {`Socious
{product.name}
diff --git a/src/modules/layout/components/linksContainer/useLinksContainer.tsx b/src/modules/layout/components/linksContainer/useLinksContainer.tsx index 80fc8e8fc..9a41f2b7e 100644 --- a/src/modules/layout/components/linksContainer/useLinksContainer.tsx +++ b/src/modules/layout/components/linksContainer/useLinksContainer.tsx @@ -100,7 +100,7 @@ export const useLinksContainer = (setOpen: (val: boolean) => void) => { }, { label: translate('nav-refer'), - route: '/referral', + route: '/refer', iconName: 'star-06', public: false, }, diff --git a/src/modules/layout/containers/notifications/useNotifications.tsx b/src/modules/layout/containers/notifications/useNotifications.tsx index 977811bac..19117816e 100644 --- a/src/modules/layout/containers/notifications/useNotifications.tsx +++ b/src/modules/layout/containers/notifications/useNotifications.tsx @@ -143,7 +143,6 @@ export const useNotifications = (handleClose: () => void) => { path = ''; break; } - console.log(path, 'fdsfsdf'); handleClose(); navigate(path); }; diff --git a/src/modules/refer/referCard/index.tsx b/src/modules/refer/referCard/index.tsx index a55467f3b..ead0c44e3 100644 --- a/src/modules/refer/referCard/index.tsx +++ b/src/modules/refer/referCard/index.tsx @@ -1,40 +1,18 @@ -import React from 'react'; import { translate } from 'src/core/utils'; import { AlertModal } from 'src/modules/general/components/AlertModal'; -import { Button } from 'src/modules/general/components/Button'; import { Icon } from 'src/modules/general/components/Icon'; -import { Input } from 'src/modules/general/components/input/input'; +import CopyLink from 'src/modules/general/containers/CopyLink'; import variables from 'src/styles/constants/_exports.module.scss'; -import css from './referCard.module.scss'; import { useReferCard } from './useReferCard'; -import EmailInvitation from '../emailInvitation'; interface ReferCardProps { type: 'organization' | 'talent'; } export const ReferCard: React.FC = ({ type }) => { - const { - openEmailModal, - setOpenEmailModal, - handleCopy, - title, - subtitle, - verified, - sendInviteEmail, - url, - emails, - setEmails, - openSentModal, - setOpenSentModal, - } = useReferCard(type); - const inputJSX = ( - - ); + const { handleCopy, title, subtitle, verified, url, openSentModal, setOpenSentModal } = useReferCard(type); + return ( <>
= ({ type }) => {
{!!verified && (
- -
+ + {/*
- {/* */} -
+ +
*/}
)}
= ({ type }) => { type === 'organization' ? 'border-Wild_blue-500' : 'border-Dark_vanilla-500' } `} > - {translate('referral-you-get')} + {translate('refer-you-get')}
= ({ type }) => {
- {type === 'organization' ? translate('referral-org-desc') : translate('referral-user-desc')} + {type === 'organization' ? translate('refer-org-desc') : translate('refer-user-desc')}
- {translate('referral-they-get')} + {translate('refer-they-get')}
= ({ type }) => { >
- {translate('referral-discount')} + {translate('refer-discount')}
- setOpenEmailModal(false)} handleSend={sendInviteEmail} emails={emails} setEmails={setEmails} - /> + /> */} setOpenSentModal(false)} - title={translate('referral-sent')} - message={translate('referral-tell-contacts')} + title={translate('refer-sent')} + message={translate('refer-tell-contacts')} closeButtn={true} - closeButtonLabel={translate('referral-close')} + closeButtonLabel={translate('refer-close')} /> ); diff --git a/src/modules/refer/referCard/referCard.module.scss b/src/modules/refer/referCard/referCard.module.scss deleted file mode 100644 index 62d2439df..000000000 --- a/src/modules/refer/referCard/referCard.module.scss +++ /dev/null @@ -1,14 +0,0 @@ -@import 'src/styles/constants/_primitives.scss'; - -.copyBtn { - width: fit-content; - height: 100%; - border: none; - display: flex; - gap: 0.5rem; - align-items: center; - justify-content: center; - color: $color-grey-700; - cursor: pointer; - background-color: $color-white; -} diff --git a/src/modules/refer/referCard/useReferCard.tsx b/src/modules/refer/referCard/useReferCard.tsx index be8d12c7b..836d280d8 100644 --- a/src/modules/refer/referCard/useReferCard.tsx +++ b/src/modules/refer/referCard/useReferCard.tsx @@ -1,51 +1,48 @@ import { useState } from 'react'; import { useSelector } from 'react-redux'; import { config } from 'src/config'; -import { CurrentIdentity, sendRefers, UserMeta, OrgMeta } from 'src/core/api'; +import { CurrentIdentity, UserMeta, OrgMeta } from 'src/core/api'; import { translate } from 'src/core/utils'; import { RootState } from 'src/store'; export const useReferCard = (referType: 'organization' | 'talent') => { - const account = useSelector(state => + const currentIdentity = useSelector(state => state.identity.entities.find(identity => identity.current), - )?.meta as UserMeta | OrgMeta; - const [openEmailModal, setOpenEmailModal] = useState(false); + ); + const userAccount = currentIdentity?.meta as UserMeta; + const orgAccount = currentIdentity?.meta as OrgMeta; + const currentIdentityType = currentIdentity?.type; + const currentIdentityUsername = + currentIdentityType === 'organizations' ? orgAccount?.shortname : userAccount?.username; + // const [openEmailModal, setOpenEmailModal] = useState(false); const [openSentModal, setOpenSentModal] = useState(false); - const [emails, setEmails] = useState([]); + // const [emails, setEmails] = useState([]); - const title = referType === 'organization' ? translate('referral-refer-org') : translate('referral-refer-talent'); - const url = - referType === 'organization' - ? `${config.appBaseURL}referral/${(account as OrgMeta)?.shortname || (account as UserMeta)?.username}/org` - : `${config.appBaseURL}referral/${(account as OrgMeta)?.shortname || (account as UserMeta)?.username}/talent`; - const subtitle = referType === 'organization' ? translate('referral-org-link') : translate('referral-talent-link'); + const title = referType === 'organization' ? translate('refer-refer-org') : translate('refer-refer-talent'); + const subtitle = referType === 'organization' ? translate('refer-org-link') : translate('refer-talent-link'); + const url = config.appBaseURL + `referral?referred_by=${currentIdentityUsername}`; const handleCopy = () => { navigator.clipboard.writeText(url); }; - const sendInviteEmail = async () => { - try { - await sendRefers({ emails }); - setEmails([]); - setOpenEmailModal(false); - setOpenSentModal(true); - } catch (e) { - console.log('Error in sending refers:', e); - } - }; + // const sendInviteEmail = async () => { + // try { + // await sendRefers({ emails }); + // setEmails([]); + // setOpenEmailModal(false); + // setOpenSentModal(true); + // } catch (e) { + // console.log('Error in sending refers:', e); + // } + // }; return { - openEmailModal, - setOpenEmailModal, handleCopy, title, subtitle, - verified: (account as UserMeta).identity_verified || (account as OrgMeta).verified, - sendInviteEmail, + verified: userAccount?.identity_verified || orgAccount?.verified, url, - emails, - setEmails, openSentModal, setOpenSentModal, }; diff --git a/src/modules/settings/components/Language/useLanguage.tsx b/src/modules/settings/components/Language/useLanguage.tsx index 32d1ef237..e84ac8187 100644 --- a/src/modules/settings/components/Language/useLanguage.tsx +++ b/src/modules/settings/components/Language/useLanguage.tsx @@ -1,9 +1,10 @@ -import i18next from 'i18next'; import { useState } from 'react'; +import { useTranslation } from 'react-i18next'; import { supportedLanguages } from 'src/constants/constants'; import useSwitchLanguage from 'src/core/hooks/useSwitchLanguage'; export const useLanguage = () => { + const { i18n } = useTranslation(); const { switchLanguage, selectedLanguage: initialLanguage } = useSwitchLanguage(); const getLanguageOption = lang => { const languageMap = supportedLanguages.reduce((map, { value, label }) => { @@ -22,7 +23,7 @@ export const useLanguage = () => { // Reset the selected language to the last saved state const onCancel = () => { setUnsavedValue(unsavedValue); - i18next.changeLanguage(unsavedValue.value); + i18n.changeLanguage(unsavedValue.value); }; return { onSave, onCancel, unsavedValue, setUnsavedValue }; diff --git a/src/modules/userProfile/components/profileHeader/desktopHeader.tsx b/src/modules/userProfile/components/profileHeader/desktopHeader.tsx index 039117344..0ab47fdc9 100644 --- a/src/modules/userProfile/components/profileHeader/desktopHeader.tsx +++ b/src/modules/userProfile/components/profileHeader/desktopHeader.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { ConnectStatus, Organization, User } from 'src/core/api'; -import { getIdentityMeta } from 'src/core/utils'; +import { getIdentityMeta, translate } from 'src/core/utils'; import { ThreeDotsButton } from 'src/modules/connections/threeDotsButton'; import { AvatarProfile } from 'src/modules/general/components/avatarProfile'; import { Button } from 'src/modules/general/components/Button'; @@ -26,11 +26,11 @@ interface DesktopHeaderProps { displayConnectButton: () => boolean; displayMessageButton: () => boolean; displayThreeDotsButton: () => boolean; + userTags: string[]; } export const DesktopHeader: React.FC = ({ identity, myProfile, - isLoggedIn, connectStatus, handleOpenEditInfoModal, handleOpenQRCodeModal, @@ -41,6 +41,7 @@ export const DesktopHeader: React.FC = ({ displayConnectButton, displayMessageButton, displayThreeDotsButton, + userTags, }) => { const { username, name, profileImage } = getIdentityMeta(identity); @@ -59,7 +60,7 @@ export const DesktopHeader: React.FC = ({
{name}
{type === 'users' && (identity as User).open_to_work && ( } @@ -69,13 +70,16 @@ export const DesktopHeader: React.FC = ({ {type === 'organizations' && (identity as Organization).hiring && ( } shape="sharp" /> )} + + {type === 'users' && + userTags.map(tag => )}
{username}
@@ -88,7 +92,7 @@ export const DesktopHeader: React.FC = ({ onClick={handleOpenQRCodeModal} > - Share + {translate('profile-header.actions.share')} {displayMessageButton() && ( )} {displayConnectButton() && ( @@ -108,7 +112,9 @@ export const DesktopHeader: React.FC = ({ style={{ height: '40px', fontSize: '14px' }} onClick={() => setOpenConnectRequest(true)} > - {connectStatus === 'PENDING' ? 'Request sent' : 'Connect'} + {connectStatus === 'PENDING' + ? translate('profile-header.actions.request-sent') + : translate('profile-header.actions.connect')} )} {displayThreeDotsButton() && } diff --git a/src/modules/userProfile/components/profileHeader/index.tsx b/src/modules/userProfile/components/profileHeader/index.tsx index fe99f6611..32c2162e5 100644 --- a/src/modules/userProfile/components/profileHeader/index.tsx +++ b/src/modules/userProfile/components/profileHeader/index.tsx @@ -16,7 +16,11 @@ import { EditImageModal } from '../../containers/editImage'; import { EditInfoOrgModal } from '../../containers/editInfoOrg'; import { ShareProfile } from '../../containers/shareProfile'; -export const ProfileHeader = () => { +interface ProfileHeaderProps { + userTags?: string[]; +} + +export const ProfileHeader = ({ userTags = [] }: ProfileHeaderProps) => { const { identity, identityType, @@ -100,6 +104,7 @@ export const ProfileHeader = () => { displayConnectButton={displayConnectButton} displayMessageButton={displayMessageButton} displayThreeDotsButton={displayThreeDotsButton} + userTags={userTags} /> { myProfile={myProfile} handleOpenEditInfoModal={handleOpenEditInfoModal} handleOpenEditAvatar={handleOpenEditAvatar} + userTags={userTags} />
diff --git a/src/modules/userProfile/components/profileHeader/mobileHeader.tsx b/src/modules/userProfile/components/profileHeader/mobileHeader.tsx index a3e4aae69..adfdffc7c 100644 --- a/src/modules/userProfile/components/profileHeader/mobileHeader.tsx +++ b/src/modules/userProfile/components/profileHeader/mobileHeader.tsx @@ -1,7 +1,8 @@ import React from 'react'; import { Organization, User } from 'src/core/api'; -import { getIdentityMeta } from 'src/core/utils'; +import { getIdentityMeta, translate } from 'src/core/utils'; import { AvatarProfile } from 'src/modules/general/components/avatarProfile'; +import { Chip } from 'src/modules/general/components/Chip'; import { Dot } from 'src/modules/general/components/dot'; import { IconButton } from 'src/modules/general/components/iconButton'; import variables from 'src/styles/constants/_exports.module.scss'; @@ -14,6 +15,7 @@ interface MobileHeaderProps { handleOpenEditInfoModal: () => void; handleOpenEditAvatar: () => void; type: 'users' | 'organizations'; + userTags: string[]; } export const MobileHeader: React.FC = ({ identity, @@ -21,6 +23,7 @@ export const MobileHeader: React.FC = ({ handleOpenEditInfoModal, handleOpenEditAvatar, type, + userTags, }) => { const { profileImage, name, username } = getIdentityMeta(identity); return ( @@ -48,7 +51,15 @@ export const MobileHeader: React.FC = ({ {type === 'users' && (identity as User).open_to_work && (
- Available for work + {translate('profile-header.available-for-work')} +
+ )} + + {type === 'users' && !!userTags.length && ( +
+ {userTags.map(tag => ( + + ))}
)} diff --git a/src/modules/userProfile/containers/editInfo/index.tsx b/src/modules/userProfile/containers/editInfo/index.tsx index d82ef392e..4f6d68462 100644 --- a/src/modules/userProfile/containers/editInfo/index.tsx +++ b/src/modules/userProfile/containers/editInfo/index.tsx @@ -90,11 +90,10 @@ export const EditInfoModal: React.FC = ({ open, handleClose />
void) => { value: yup.string(), }), country: yup.string(), - bio: yup.string().required('Headline is required'), + bio: yup.string().max(160, 'Too long'), socialCauses: yup .array() .of( diff --git a/src/modules/wallet/components/ChooseWalletModal/index.module.scss b/src/modules/wallet/components/ChooseWalletModal/index.module.scss new file mode 100644 index 000000000..d97c6a7f8 --- /dev/null +++ b/src/modules/wallet/components/ChooseWalletModal/index.module.scss @@ -0,0 +1,36 @@ +@import 'src/styles/constants/_primitives.scss'; + +.wallets { + display: flex; + justify-content: flex-start; + align-items: center; + flex-wrap: wrap; + gap: 1rem; + padding: 0 1.5rem; + + @media (max-width: $width-xl) { + padding: 0 1rem; + } + + .wallet { + width: calc(50% - 0.5rem); + display: flex; + justify-content: flex-start; + align-items: center; + gap: 0.5rem; + padding: 0.25rem 0.5rem; + border-radius: 8px; + font-size: 14px; + font-weight: 500; + color: $color-grey-700; + cursor: pointer; + + &:hover { + background-color: $color-grey-100; + } + + @media (max-width: $width-xl) { + width: 100%; + } + } +} diff --git a/src/modules/wallet/components/ChooseWalletModal/index.tsx b/src/modules/wallet/components/ChooseWalletModal/index.tsx new file mode 100644 index 000000000..48630a3ef --- /dev/null +++ b/src/modules/wallet/components/ChooseWalletModal/index.tsx @@ -0,0 +1,51 @@ +import { translate } from 'src/core/utils'; +import { Modal } from 'src/modules/general/components/modal'; + +import styles from './index.module.scss'; +import { ChooseWalletModalProps } from './index.types'; + +const ChooseWalletModal: React.FC = ({ + open, + handleClose, + title = translate('wallet-connect'), + headerDivider = false, + footerDivider = false, + mobileCentered = false, + mobileFullHeight = false, + wallets, + onWalletSelect, + ...props +}) => { + return ( + +
+ {wallets.map(wallet => ( +
onWalletSelect(wallet)}> + {wallet.name} + {wallet.name} +
+ ))} +
+
+ ); +}; + +export default ChooseWalletModal; diff --git a/src/modules/wallet/components/ChooseWalletModal/index.types.ts b/src/modules/wallet/components/ChooseWalletModal/index.types.ts new file mode 100644 index 000000000..e90b9c3f5 --- /dev/null +++ b/src/modules/wallet/components/ChooseWalletModal/index.types.ts @@ -0,0 +1,13 @@ +import { ModalProps } from 'src/modules/general/components/modal/modal.types'; + +export type Wallet = { + name: string; + icon: string; + type: string; + connector?: unknown; +}; + +export interface ChooseWalletModalProps extends ModalProps { + wallets: Wallet[]; + onWalletSelect: (wallet: Wallet) => void; +} diff --git a/src/modules/wallet/components/ConnectButton/ConnectModal/index.module.scss b/src/modules/wallet/components/ConnectButton/ConnectModal/index.module.scss new file mode 100644 index 000000000..b43f04c96 --- /dev/null +++ b/src/modules/wallet/components/ConnectButton/ConnectModal/index.module.scss @@ -0,0 +1,69 @@ +@import 'src/styles/constants/_primitives.scss'; + +.modal { + max-width: 22.5rem; + background-color: $color-grey-100; + + @media (max-width: $width-xl) { + max-width: 100%; + } + + &__content { + display: flex; + align-items: center; + flex-direction: column; + gap: 0.75rem; + padding: 0 1.5rem 1.5rem; + + @media (max-width: $width-xl) { + padding: 0 1rem 1rem; + } + } + + .address { + flex: 1; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + padding-left: 1rem; + font-size: 18px; + font-weight: 600; + line-height: 24px; + border-left: 0; + color: $color-grey-900; + } + + .balance { + font-size: 14px; + font-weight: normal; + line-height: 18px; + color: $color-grey-500; + } + + .buttons { + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + gap: 0.75rem; + margin-top: 0.5rem; + + .button { + flex: 1; + padding: 0.5rem; + background-color: $color-white; + border-radius: 12px; + box-shadow: $shadow-sm; + font-size: 12px; + font-weight: 600; + color: $color-grey-700; + text-align: center; + cursor: pointer; + + &:hover { + background-color: $color-grey-50; + } + } + } +} diff --git a/src/modules/wallet/components/ConnectButton/ConnectModal/index.tsx b/src/modules/wallet/components/ConnectButton/ConnectModal/index.tsx new file mode 100644 index 000000000..bc22f037e --- /dev/null +++ b/src/modules/wallet/components/ConnectButton/ConnectModal/index.tsx @@ -0,0 +1,53 @@ +import { translate } from 'src/core/utils'; +import { Icon } from 'src/modules/general/components/Icon'; +import { Modal } from 'src/modules/general/components/modal'; +import variables from 'src/styles/constants/_exports.module.scss'; + +import styles from './index.module.scss'; +import { ConnectModalProps } from './index.types'; + +const ConnectModal: React.FC = ({ + open, + handleClose, + symbol, + address, + formattedBalance, + handleDisconnect, + handleCopy, + footer, +}) => { + return ( + + <> + {symbol} +
+ {address} + + {formattedBalance} {symbol} + +
+
+ + +
+ +
+ ); +}; + +export default ConnectModal; diff --git a/src/modules/wallet/components/ConnectButton/ConnectModal/index.types.ts b/src/modules/wallet/components/ConnectButton/ConnectModal/index.types.ts new file mode 100644 index 000000000..514403df8 --- /dev/null +++ b/src/modules/wallet/components/ConnectButton/ConnectModal/index.types.ts @@ -0,0 +1,10 @@ +export interface ConnectModalProps { + open: boolean; + handleClose: () => void; + symbol: string; + address: string; + formattedBalance: string; + handleDisconnect: () => void; + handleCopy: () => void; + footer?: React.ReactNode; +} diff --git a/src/modules/wallet/components/ConnectButton/index.module.scss b/src/modules/wallet/components/ConnectButton/index.module.scss index a94491eb4..144520209 100644 --- a/src/modules/wallet/components/ConnectButton/index.module.scss +++ b/src/modules/wallet/components/ConnectButton/index.module.scss @@ -1,24 +1,35 @@ @import 'src/styles/constants/_primitives.scss'; -.chain, -.account { +.button { display: flex; align-items: center; - justify-content: center; - gap: 0.5rem; - font-size: 16px; - font-weight: 600; - color: $color-grey-600; - cursor: pointer; -} + gap: 1rem; + + .symbol { + display: flex; + align-items: center; + gap: 0.5rem; + } -.account { - flex: 1; - color: $color-grey-400; - border-left: 1px solid $color-grey-300; - padding-left: 0.75rem; + .address { + flex: 1; + display: flex; + justify-content: center; + align-items: center; + gap: 0.5rem; + font-size: 16px; + font-weight: 600; + border-left: 0; + color: $color-grey-600; + + &--connected { + padding-left: 1rem; + color: $color-grey-400; + border-left: 1px solid $color-grey-300; + } + } - &__balance { + .balance { color: $color-grey-300; } } diff --git a/src/modules/wallet/components/ConnectButton/index.tsx b/src/modules/wallet/components/ConnectButton/index.tsx index 3aa389962..0a62e56b8 100644 --- a/src/modules/wallet/components/ConnectButton/index.tsx +++ b/src/modules/wallet/components/ConnectButton/index.tsx @@ -1,59 +1,134 @@ -import { ConnectButton as RKButton } from '@rainbow-me/rainbowkit'; -import { Button } from 'src/modules/general/components/Button'; +import { BrowserWallet, Wallet } from '@meshsdk/core'; +import { useState } from 'react'; +import { truncateFromMiddle } from 'src/core/stringTransformation'; +import { translate } from 'src/core/utils'; +import Dapp from 'src/dapp'; +import { AlertModal } from 'src/modules/general/components/AlertModal'; +import { Button } from 'src/modules/general/components/Button/index'; import { Icon } from 'src/modules/general/components/Icon'; +import { useConnect } from 'wagmi'; import styles from './index.module.scss'; +import ChooseWalletModal from '../ChooseWalletModal'; +import ConnectModal from './ConnectModal'; +import { CardanoWallet, ConnectButtonProps, EVMWallet } from './index.type'; + +export const ConnectButton: React.FC = ({ defaultAddress = '' }) => { + const { + account = defaultAddress, + connected, + balance, + setupCardanoConnection, + setupEvmConnection, + disconnect, + } = Dapp.useWeb3(); + + const { connectors: evmConnectors } = useConnect(); + + const [availableWallets, setAvailableWallets] = useState<(CardanoWallet | EVMWallet)[]>([]); + const [isModalOpen, setIsModalOpen] = useState(false); + const [showMenu, setShowMenu] = useState(false); + const [error, setError] = useState(''); + + const symbol = balance?.symbol || ''; + const formattedBalance = balance ? Number(balance.value.toFixed(3)).toLocaleString() : ''; + + const handleClick = async () => { + if (connected) { + setShowMenu(prev => !prev); + return; + } + + const cardanoWallets: Wallet[] = await BrowserWallet.getAvailableWallets(); + const evmWallets: EVMWallet[] = evmConnectors.map(connector => ({ + name: connector.name, + icon: connector.name.replaceAll(' ', '').toLowerCase(), + connector: connector, + type: 'evm', + })); + const wallets = [ + ...(cardanoWallets.map(wallet => ({ ...wallet, type: 'cardano' })) as CardanoWallet[]), + ...evmWallets, + ]; + + if (!wallets.length) { + setError(translate('wallet-not-installed-error')); + return; + } + if (wallets.length === 1) { + const wallet = wallets[0]; + wallet.type === 'cardano' + ? setupCardanoConnection(wallet.name) + : setupEvmConnection((wallet as EVMWallet).connector); + } else { + setAvailableWallets(wallets); + setIsModalOpen(true); + } + }; + + const handleDisconnect = () => { + disconnect(); + setShowMenu(false); + }; + + const handleCopy = () => { + navigator.clipboard.writeText(account); + setShowMenu(false); + }; -const ConnectButton: React.FC = () => { return ( - - {({ account, chain, openAccountModal, openChainModal, openConnectModal, authenticationStatus, mounted }) => { - const ready = mounted && authenticationStatus !== 'loading'; - const connected = - ready && account && chain && (!authenticationStatus || authenticationStatus === 'authenticated'); - - return ( -
- {(() => { - if (!connected) { - return ( - - ); - } - - return ( - - ); - })()} + <> +
+ + {connected && ( + setShowMenu(false)} + symbol={symbol} + address={truncateFromMiddle(account, 5, 5)} + formattedBalance={formattedBalance} + handleDisconnect={handleDisconnect} + handleCopy={handleCopy} + /> + )} + {!!availableWallets.length && ( + setIsModalOpen(false)} + wallets={availableWallets} + onWalletSelect={wallet => { + wallet.type === 'cardano' + ? setupCardanoConnection(wallet.name) + : setupEvmConnection((wallet as EVMWallet).connector); + setIsModalOpen(false); + }} + /> + )} +
+ setError('')} + title={translate('wallet-failed')} + message={error} + customIcon={} + closeButtn={false} + submitButton={false} + /> + ); }; diff --git a/src/modules/wallet/components/ConnectButton/index.type.ts b/src/modules/wallet/components/ConnectButton/index.type.ts new file mode 100644 index 000000000..1c49fa9a6 --- /dev/null +++ b/src/modules/wallet/components/ConnectButton/index.type.ts @@ -0,0 +1,15 @@ +import { Wallet } from '@meshsdk/core'; +import { Connector, CreateConnectorFn } from 'wagmi'; + +export interface ConnectButtonProps { + defaultAddress?: string; +} + +export type EVMWallet = { + type: 'evm'; + name: string; + icon: string; + connector: Connector; +}; + +export type CardanoWallet = Wallet & { type: 'cardano' }; diff --git a/src/modules/wallet/components/assets/index.tsx b/src/modules/wallet/components/assets/index.tsx index c96195049..28865648f 100644 --- a/src/modules/wallet/components/assets/index.tsx +++ b/src/modules/wallet/components/assets/index.tsx @@ -5,10 +5,11 @@ import { Icon } from 'src/modules/general/components/Icon'; import AddPayoutAccount from 'src/modules/general/containers/AddPayoutAccount'; import { useAssets } from './useAssets'; +import ConnectButton from '../ConnectButton'; import { StripeAccountItem } from '../stripeAccountItem'; export const Assets = () => { - const { stripeAccounts, openAddAccount, setOpenAddAccount, Web3Connect } = useAssets(); + const { stripeAccounts, openAddAccount, setOpenAddAccount } = useAssets(); return ( <> @@ -27,7 +28,7 @@ export const Assets = () => { ))}
{translate('pay-wallet')}
- +
setOpenAddAccount(false)} /> diff --git a/src/modules/wallet/components/assets/useAssets.tsx b/src/modules/wallet/components/assets/useAssets.tsx index 7977fbc54..bf8641d84 100644 --- a/src/modules/wallet/components/assets/useAssets.tsx +++ b/src/modules/wallet/components/assets/useAssets.tsx @@ -1,7 +1,8 @@ import { useEffect, useState } from 'react'; import { useSelector } from 'react-redux'; import { useLoaderData } from 'react-router-dom'; -import { CurrentIdentity, StripeAccount, updateWallet } from 'src/core/api'; +import { updateWalletAdaptor } from 'src/core/adaptors'; +import { CurrentIdentity, StripeAccount } from 'src/core/api'; import dapp from 'src/dapp'; import { RootState } from 'src/store'; @@ -9,7 +10,7 @@ import { Resolver } from './assets.types'; export const useAssets = () => { const { stripeProfileRes, jpStripeProfileRes } = useLoaderData() as Resolver; - const { isConnected, Web3Connect, account } = dapp.useWeb3(); + const { connected, account, networkName, testnet } = dapp.useWeb3(); const currentIdentity = useSelector(state => { return state.identity.entities.find(identity => identity.current); }); @@ -24,13 +25,13 @@ export const useAssets = () => { useEffect(() => { if ( currentIdentity?.type === 'users' && - isConnected && + connected && account && (!walletAddress || String(walletAddress) !== account) ) { - updateWallet({ wallet_address: account }); + updateWalletAdaptor({ account, networkName, testnet }); } - }, [isConnected, account]); + }, [connected, account]); - return { stripeAccounts, openAddAccount, setOpenAddAccount, isConnected, Web3Connect }; + return { stripeAccounts, openAddAccount, setOpenAddAccount, connected }; }; diff --git a/src/pages/chats/index.tsx b/src/pages/chats/index.tsx index c4a581e0f..1c5da909e 100644 --- a/src/pages/chats/index.tsx +++ b/src/pages/chats/index.tsx @@ -41,6 +41,7 @@ export const Chats = () => {
*/}
{ +export const Connections = () => { const { tabs, activeIndex } = useConnections(); return (
diff --git a/src/pages/connections/useConnections.tsx b/src/pages/connections/useConnections.tsx index 0ebd895ac..56b00271e 100644 --- a/src/pages/connections/useConnections.tsx +++ b/src/pages/connections/useConnections.tsx @@ -13,7 +13,8 @@ export const useConnections = () => { { label: translate('connect-title'), content: }, { label: translate('connect-followings'), content: }, { label: translate('connect-followers'), content: }, - { label: translate('connect-requests'), content: }, + { label: translate('connect-received-requests'), content: }, + { label: translate('connect-sent-requests'), content: }, { label: translate('connect-blocked'), content: }, ]; diff --git a/src/pages/error/fallback/fallback.module.scss b/src/pages/error/fallback/fallback.module.scss new file mode 100644 index 000000000..1f8d27c38 --- /dev/null +++ b/src/pages/error/fallback/fallback.module.scss @@ -0,0 +1,34 @@ +@import 'src/styles/constants/_primitives.scss'; + +.container { + position: fixed; + width: 100vw; + height: 100vh; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 1.5rem; + padding: 3rem 1.5rem; + text-align: center; + + .error { + &__code { + font-size: 80px; + font-weight: 800; + color: $color-error-600; + } + + &__msg { + font-size: 48px; + font-weight: 600; + color: $color-grey-900; + } + + &__details { + font-size: 24px; + color: $color-grey-700; + margin-bottom: 1rem; + } + } +} diff --git a/src/pages/fallback/fallback.services.ts b/src/pages/error/fallback/fallback.services.ts similarity index 100% rename from src/pages/fallback/fallback.services.ts rename to src/pages/error/fallback/fallback.services.ts diff --git a/src/pages/error/fallback/fallback.tsx b/src/pages/error/fallback/fallback.tsx new file mode 100644 index 000000000..8ac6f49c4 --- /dev/null +++ b/src/pages/error/fallback/fallback.tsx @@ -0,0 +1,30 @@ +import { useNavigate } from 'react-router-dom'; +import { translate } from 'src/core/utils'; +import { Button } from 'src/modules/general/components/Button'; + +import styles from './fallback.module.scss'; + +const FallBack = () => { + const navigate = useNavigate(); + const flag = 'refreshed'; + const refreshed = sessionStorage.getItem(flag); + + if (!refreshed) { + sessionStorage.setItem(flag, `${new Date().getTime()}`); + window.location.reload(); + return <>; + } + + return ( +
+
500
+
{translate('general-error-internal.header')}
+
{translate('general-error-internal.subheader')}
+ +
+ ); +}; + +export default FallBack; diff --git a/src/pages/error/notFound/index.module.scss b/src/pages/error/notFound/index.module.scss new file mode 100644 index 000000000..34f287a90 --- /dev/null +++ b/src/pages/error/notFound/index.module.scss @@ -0,0 +1,30 @@ +@import 'src/styles/constants/_primitives.scss'; + +.container { + height: 100vh; + width: 100vw; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 1.5rem; + padding: 3rem 1.5rem; + text-align: center; + + .header { + font-size: 3rem; + font-weight: 800; + color: $color-primary-700; + } + + .subheader { + font-size: 1rem; + color: $color-grey-700; + margin-bottom: 1rem; + } + + .brand { + font-weight: 600; + color: $color-grey-900; + } +} diff --git a/src/pages/error/notFound/index.tsx b/src/pages/error/notFound/index.tsx new file mode 100644 index 000000000..e000882a0 --- /dev/null +++ b/src/pages/error/notFound/index.tsx @@ -0,0 +1,22 @@ +import { useNavigate } from 'react-router-dom'; +import { translate } from 'src/core/utils'; +import { Button } from 'src/modules/general/components/Button'; + +import styles from './index.module.scss'; + +export const NotFound = () => { + const navigate = useNavigate(); + + return ( +
+

{translate('general-error-not-found.header')}

+

+ {translate('general-error-not-found.subheader')} + {'Socious'}. +

+ +
+ ); +}; diff --git a/src/pages/fallback/fallback.module.scss b/src/pages/fallback/fallback.module.scss deleted file mode 100644 index e78212092..000000000 --- a/src/pages/fallback/fallback.module.scss +++ /dev/null @@ -1,39 +0,0 @@ -.container { - position: fixed; - width: 100vw; - height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; -} -.errorCode { - font-size: 5rem; - font-weight: 800; - color: var(--color-error-01); -} -.errorMsg { - text-align: center; - font-size: var(--font-size-xl); - color: var(--color-black-01); -} -.errorDetails { - text-align: center; - font-size: var(--font-size-l); - color: var(--color-black-01); - margin-top: 1rem; -} -.buttonContainer { - width: 100%; - display: flex; - align-items: center; - justify-content: center; - margin-top: 1rem; -} -.button { - width: 100%; - margin: auto; -} -.link { - color: var(--color-white); -} diff --git a/src/pages/fallback/fallback.tsx b/src/pages/fallback/fallback.tsx deleted file mode 100644 index 7cb108779..000000000 --- a/src/pages/fallback/fallback.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { Button } from 'src/modules/general/components/Button'; - -import css from './fallback.module.scss'; - -const FallBack = () => { - const flag = 'refreshed'; - const refreshed = sessionStorage.getItem(flag); - - if (!refreshed) { - sessionStorage.setItem(flag, `${new Date().getTime()}`); - window.location.reload(); - return <>; - } - - return ( -
-
500
-
Internal Server Error
-
We apologize for the inconvenience. Please try again later
- -
- ); -}; - -export default FallBack; diff --git a/src/pages/intro/useIntro.tsx b/src/pages/intro/useIntro.tsx index 764fd6483..bf4059f74 100644 --- a/src/pages/intro/useIntro.tsx +++ b/src/pages/intro/useIntro.tsx @@ -1,17 +1,54 @@ -import { useState } from 'react'; +import { App } from '@capacitor/app'; +import { Browser } from '@capacitor/browser'; +import { Capacitor } from '@capacitor/core'; +import { useState, useEffect } from 'react'; import { useSelector } from 'react-redux'; +import { useNavigate } from 'react-router-dom'; import { config } from 'src/config'; import { getAuthUrlAdaptor } from 'src/core/adaptors'; import { RootState } from 'src/store'; export const useIntro = () => { + const platform = Capacitor.getPlatform(); + const status = useSelector((state: RootState) => state.identity.status); const [selectedOnboarding, setSelectedOnboarding] = useState<'user' | 'organization'>('user'); + const navigate = useNavigate(); + + useEffect(() => { + let listener: any; + + const setupListener = async () => { + listener = await App.addListener('appUrlOpen', async data => { + const url = data.url; + + if (url.includes('oauth/socious')) { + await Browser.close(); + + const urlObj = new URL(url); + const path = urlObj.pathname + urlObj.search; + + navigate(path); + } + }); + }; + + platform !== 'web' && setupListener(); + + return () => { + if (listener) { + listener.remove(); + } + }; + }, [navigate]); const onContinue = async () => { const { error, data } = await getAuthUrlAdaptor(config.appBaseURL + 'oauth/socious'); if (error) return; - if (data) window.location.href = data.url; + if (data) { + if (platform === 'web') window.location.href = data.url; + else await Browser.open({ url: data.url }); + } }; return { diff --git a/src/pages/oauth/socious.tsx b/src/pages/oauth/socious.tsx index 8ccd20d2d..e313557b7 100644 --- a/src/pages/oauth/socious.tsx +++ b/src/pages/oauth/socious.tsx @@ -1,3 +1,4 @@ +import { Capacitor } from '@capacitor/core'; import { useEffect } from 'react'; import { useNavigate, useSearchParams } from 'react-router-dom'; import { config } from 'src/config'; @@ -11,6 +12,7 @@ export const SociousID = () => { const [searchParams] = useSearchParams(); const code = searchParams.get('code'); const identityId = searchParams.get('identity_id'); + const platform = Capacitor.getPlatform(); const fetchAuthURL = async () => { const { error, data } = await getAuthUrlAdaptor(config.appBaseURL + 'oauth/socious'); @@ -57,7 +59,7 @@ export const SociousID = () => { const redirectToAuthURL = async () => { const authURL = await fetchAuthURL(); - if (authURL) { + if (authURL && platform === 'web') { window.location.href = authURL; } }; diff --git a/src/pages/refer/index.tsx b/src/pages/refer/index.tsx index bbb8bc564..4a65d4583 100644 --- a/src/pages/refer/index.tsx +++ b/src/pages/refer/index.tsx @@ -20,15 +20,15 @@ export const Refer = () => { verificationStatus === 'PENDING' && type === 'organizations' ? ( ) : ( ) @@ -36,15 +36,15 @@ export const Refer = () => { !hideVerifyBanner && ( ) @@ -52,19 +52,19 @@ export const Refer = () => {
- {translate('referral-header')} + {translate('refer-header')} - {translate('referral-title')} + {translate('refer-title')}
- {translate('referral-subtitle')} + {translate('refer-subtitle')} { + const navigate = useNavigate(); + const [searchParams] = useSearchParams(); + const code = searchParams.get('code'); + const referredBy = searchParams.get('referred_by') || ''; + const identityId = searchParams.get('identity_id'); + + const fetchAuthURL = async () => { + const { error, data } = await getAuthUrlAdaptor(config.appBaseURL + '/oauth/socious'); + if (error) return; + else if (data) return data.url; + }; + + async function onLoginSucceed(loginRes: AuthRes) { + await setAuthParams(loginRes, true); + if (typeof identityId === 'string') switchAccount(identityId); + navigate('/'); + return loginRes; + } + + useEffect(() => { + const handleSociousOauth = async (authCode: string) => { + const { error, data } = await sociousOauthAdaptor(authCode); + if (error) navigate('/intro'); + else if (data) onLoginSucceed(data); + }; + + const redirectToAuthURL = async () => { + const authURL = await fetchAuthURL(); + if (authURL) { + const url = new URL(authURL); + url.searchParams.set('auth_mode', 'register'); + url.searchParams.set('referred_by', referredBy); + window.location.href = url.toString(); + } + }; + + if (!code) { + redirectToAuthURL(); + return; + } + + handleSociousOauth(code); + }, [code]); + + return ( +
+
+ Socious Work Logo +

{translate('refer-invited')}

+

+ @{referredBy} +
+ {translate('refer-who-invited')} +
+ {translate('refer-register')} +

+
+ + {translate('refer-redirect')} +
+
+
+ ); +}; diff --git a/src/pages/userProfile/index.tsx b/src/pages/userProfile/index.tsx index 4c4bb3d22..00e51acee 100644 --- a/src/pages/userProfile/index.tsx +++ b/src/pages/userProfile/index.tsx @@ -6,11 +6,11 @@ import css from './userProfile.module.scss'; import { useUserProfile } from './useUserProfile'; export const UserProfile = () => { - const { tabs, activeTabIndex } = useUserProfile(); + const { tabs, activeTabIndex, userTags } = useUserProfile(); return (
- +