Skip to content

Commit 9147616

Browse files
committed
Merge remote-tracking branch 'origin/main' into ph/add-support-customer-id
2 parents 8e9d10a + b50b320 commit 9147616

File tree

1,294 files changed

+29393
-19878
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,294 files changed

+29393
-19878
lines changed

.changeset/blue-geese-refuse.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/shiny-pants-shout.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"thirdweb": patch
3+
---
4+
5+
Always checksum Account.address

.github/workflows/CI.yml

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ env:
1616
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
1717
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
1818
TW_SECRET_KEY: ${{ secrets.TW_SECRET_KEY }}
19+
TW_CLIENT_ID: ${{ secrets.TW_CLIENT_ID }}
1920
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
2021

2122
jobs:
@@ -88,7 +89,7 @@ jobs:
8889
- run: pnpm test
8990

9091
- name: Code Coverage
91-
uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0
92+
uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # v5.4.2
9293
with:
9394
directory: packages/
9495
flags: packages
@@ -102,7 +103,7 @@ jobs:
102103
runs-on: ubuntu-latest-8
103104
strategy:
104105
matrix:
105-
package_manager: [npm, yarn, pnpm, bun]
106+
package_manager: [pnpm] # TODO, reenable [npm, yarn, pnpm, bun]
106107
bundler: [vite, webpack, esbuild]
107108
steps:
108109
- name: Check out the code
@@ -123,7 +124,14 @@ jobs:
123124
mkdir test-project
124125
cd test-project
125126
npm init -y
126-
${{ matrix.package_manager }} add react react-dom ../packages/thirdweb
127+
128+
# Handle different package managers
129+
if [ "${{ matrix.package_manager }}" = "pnpm" ]; then
130+
# Create pnpm workspace
131+
echo '{"name": "test-project", "private": true, "workspaces": ["."]}' > package.json
132+
echo '{"packages": ["../packages/*"]}' > pnpm-workspace.yaml
133+
pnpm add react react-dom ../packages/thirdweb -w
134+
fi
127135
- name: Create test file
128136
run: |
129137
cd test-project
@@ -133,23 +141,23 @@ jobs:
133141
if: matrix.bundler == 'vite'
134142
run: |
135143
cd test-project
136-
${{matrix.package_manager}} add vite
144+
${{matrix.package_manager}} add vite -w
137145
echo 'import { defineConfig } from "vite"; import {resolve} from "path"; export default defineConfig({ build: { lib: { entry: resolve(__dirname, "index.js"), name: "e2e_test" }, outDir: "dist" }});' > vite.config.js
138146
npx vite build
139147
140148
- name: Bundle with webpack
141149
if: matrix.bundler == 'webpack'
142150
run: |
143151
cd test-project
144-
${{matrix.package_manager}} add webpack webpack-cli
152+
${{matrix.package_manager}} add webpack webpack-cli -w
145153
echo 'const path = require("path"); module.exports = { mode: "production", entry: "./index.js", output: { path: path.resolve(__dirname, "dist"), filename: "bundle.js" }};' > webpack.config.js
146154
npx webpack
147155
148156
- name: Bundle with esbuild
149157
if: matrix.bundler == 'esbuild'
150158
run: |
151159
cd test-project
152-
${{matrix.package_manager}} add esbuild
160+
${{matrix.package_manager}} add esbuild -w
153161
npx esbuild index.js --bundle --outdir=dist
154162
155163
- name: Verify bundle
@@ -177,6 +185,9 @@ jobs:
177185
- name: Setup & Install
178186
uses: ./.github/composite-actions/install
179187

188+
- name: Build Packages
189+
run: pnpm build
190+
180191
- name: Report bundle size
181192
uses: andresz1/size-limit-action@94bc357df29c36c8f8d50ea497c3e225c3c95d1d # v1.8.0
182193
with:

.github/workflows/codeql-analysis.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646

4747
# Initializes the CodeQL tools for scanning.
4848
- name: Initialize CodeQL
49-
uses: github/codeql-action/init@6bb031afdd8eb862ea3fc1848194185e076637e5 # v3.28.11
49+
uses: github/codeql-action/init@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15
5050
with:
5151
languages: ${{ matrix.language }}
5252
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -59,7 +59,7 @@ jobs:
5959
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
6060
# If this step fails, then you should remove it and run the build manually (see below)
6161
- name: Autobuild
62-
uses: github/codeql-action/autobuild@6bb031afdd8eb862ea3fc1848194185e076637e5 # v3.28.11
62+
uses: github/codeql-action/autobuild@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15
6363

6464
# ℹ️ Command-line programs to run using the OS shell.
6565
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@@ -72,4 +72,4 @@ jobs:
7272
# ./location_of_script_within_repo/buildscript.sh
7373

7474
- name: Perform CodeQL Analysis
75-
uses: github/codeql-action/analyze@6bb031afdd8eb862ea3fc1848194185e076637e5 # v3.28.11
75+
uses: github/codeql-action/analyze@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15

.npmrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
public-hoist-pattern[]=*import-in-the-middle*
2+
public-hoist-pattern[]=*require-in-the-middle*
3+
public-hoist-pattern[]=*pino-pretty*

apps/dashboard/framer-rewrites.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,7 @@ module.exports = [
5858
"/faucets",
5959
// -- brand kit --
6060
"/brand-kit",
61+
// -- universal bridge landing pages --
62+
"/universal-bridge-regions/:region_slug",
63+
"/enterprise",
6164
];

apps/dashboard/next.config.ts

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const ContentSecurityPolicy = `
1212
style-src 'self' 'unsafe-inline' vercel.live;
1313
font-src 'self' vercel.live assets.vercel.com framerusercontent.com fonts.gstatic.com;
1414
frame-src * data:;
15-
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'wasm-unsafe-eval' 'inline-speculation-rules' *.thirdweb.com *.thirdweb-dev.com vercel.live js.stripe.com framerusercontent.com events.framer.com challenges.cloudflare.com static.reo.dev;
15+
script-src 'self' 'unsafe-eval' 'unsafe-inline' 'wasm-unsafe-eval' 'inline-speculation-rules' *.thirdweb.com *.thirdweb-dev.com vercel.live js.stripe.com framerusercontent.com events.framer.com challenges.cloudflare.com;
1616
connect-src * data: blob:;
1717
worker-src 'self' blob:;
1818
block-all-mixed-content;
@@ -111,6 +111,9 @@ const SENTRY_OPTIONS: SentryBuildOptions = {
111111
automaticVercelMonitors: false,
112112
};
113113

114+
// add additional languages to the framer rewrite paths here (english is already included by default)
115+
const FRAMER_ADDITIONAL_LANGUAGES = ["es"];
116+
114117
const baseNextConfig: NextConfig = {
115118
eslint: {
116119
ignoreDuringBuilds: true,
@@ -155,10 +158,18 @@ const baseNextConfig: NextConfig = {
155158
source: "/home",
156159
destination: "https://landing.thirdweb.com",
157160
},
158-
...FRAMER_PATHS.map((path) => ({
159-
source: path,
160-
destination: `https://landing.thirdweb.com${path}`,
161-
})),
161+
// flatmap the framer paths for the default language and the additional languages
162+
...FRAMER_PATHS.flatMap((path) => [
163+
{
164+
source: path,
165+
destination: `https://landing.thirdweb.com${path}`,
166+
},
167+
// this is for additional languages
168+
...FRAMER_ADDITIONAL_LANGUAGES.map((lang) => ({
169+
source: `/${lang}${path}`,
170+
destination: `https://landing.thirdweb.com/${lang}${path}`,
171+
})),
172+
]),
162173
];
163174
},
164175
images: {
@@ -203,7 +214,6 @@ function getConfig(): NextConfig {
203214
type: "memory",
204215
});
205216
}
206-
config.externals.push("pino-pretty");
207217
config.module = {
208218
...config.module,
209219
exprContextCritical: false,

apps/dashboard/package.json

Lines changed: 53 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -29,29 +29,29 @@
2929
"@emotion/styled": "11.14.0",
3030
"@hookform/resolvers": "^3.9.1",
3131
"@marsidev/react-turnstile": "^1.1.0",
32-
"@radix-ui/react-accordion": "^1.2.3",
33-
"@radix-ui/react-alert-dialog": "^1.1.6",
34-
"@radix-ui/react-avatar": "^1.1.3",
35-
"@radix-ui/react-checkbox": "^1.1.4",
36-
"@radix-ui/react-dialog": "1.1.6",
37-
"@radix-ui/react-dropdown-menu": "^2.1.6",
38-
"@radix-ui/react-hover-card": "^1.1.6",
39-
"@radix-ui/react-label": "^2.1.2",
40-
"@radix-ui/react-popover": "^1.1.6",
41-
"@radix-ui/react-progress": "^1.1.2",
42-
"@radix-ui/react-radio-group": "^1.2.3",
43-
"@radix-ui/react-select": "^2.1.6",
44-
"@radix-ui/react-separator": "^1.1.2",
45-
"@radix-ui/react-slot": "^1.1.2",
46-
"@radix-ui/react-switch": "^1.1.3",
47-
"@radix-ui/react-tooltip": "1.1.8",
48-
"@sentry/nextjs": "9.5.0",
49-
"@shazow/whatsabi": "0.20.0",
50-
"@tanstack/react-query": "5.67.3",
51-
"@tanstack/react-table": "^8.21.2",
32+
"@radix-ui/react-accordion": "^1.2.7",
33+
"@radix-ui/react-alert-dialog": "^1.1.10",
34+
"@radix-ui/react-avatar": "^1.1.6",
35+
"@radix-ui/react-checkbox": "^1.2.2",
36+
"@radix-ui/react-dialog": "1.1.10",
37+
"@radix-ui/react-dropdown-menu": "^2.1.11",
38+
"@radix-ui/react-hover-card": "^1.1.10",
39+
"@radix-ui/react-label": "^2.1.4",
40+
"@radix-ui/react-popover": "^1.1.10",
41+
"@radix-ui/react-progress": "^1.1.4",
42+
"@radix-ui/react-radio-group": "^1.3.3",
43+
"@radix-ui/react-select": "^2.2.2",
44+
"@radix-ui/react-separator": "^1.1.4",
45+
"@radix-ui/react-slot": "^1.2.0",
46+
"@radix-ui/react-switch": "^1.2.2",
47+
"@radix-ui/react-tooltip": "1.2.3",
48+
"@sentry/nextjs": "9.13.0",
49+
"@shazow/whatsabi": "0.21.0",
50+
"@tanstack/react-query": "5.74.4",
51+
"@tanstack/react-table": "^8.21.3",
5252
"@thirdweb-dev/service-utils": "workspace:*",
5353
"@vercel/functions": "2.0.0",
54-
"@vercel/og": "^0.6.5",
54+
"@vercel/og": "^0.6.8",
5555
"abitype": "1.0.8",
5656
"chakra-react-select": "^4.7.6",
5757
"class-variance-authority": "^0.7.1",
@@ -66,82 +66,83 @@
6666
"fuse.js": "7.1.0",
6767
"idb-keyval": "^6.2.1",
6868
"input-otp": "^1.4.1",
69-
"ioredis": "^5.6.0",
69+
"ioredis": "^5.6.1",
7070
"ipaddr.js": "^2.2.0",
71-
"lucide-react": "0.483.0",
72-
"next": "15.2.4",
71+
"lucide-react": "0.503.0",
72+
"next": "15.3.1",
7373
"next-plausible": "^3.12.4",
7474
"next-themes": "^0.4.6",
7575
"nextjs-toploader": "^1.6.12",
76-
"nuqs": "^2.4.1",
76+
"nuqs": "^2.4.3",
7777
"p-limit": "^6.2.0",
7878
"papaparse": "^5.5.2",
7979
"pluralize": "^8.0.0",
8080
"posthog-js": "1.67.1",
81+
"prettier": "3.5.3",
8182
"qrcode": "^1.5.3",
82-
"react": "19.0.0",
83+
"react": "19.1.0",
8384
"react-children-utilities": "^2.10.0",
8485
"react-day-picker": "^8.10.1",
85-
"react-dom": "19.0.0",
86+
"react-dom": "19.1.0",
8687
"react-dropzone": "^14.3.8",
8788
"react-error-boundary": "^5.0.0",
88-
"react-hook-form": "7.54.2",
89+
"react-hook-form": "7.55.0",
8990
"react-markdown": "^9.0.1",
9091
"react-table": "^7.8.0",
91-
"recharts": "2.15.1",
92+
"recharts": "2.15.3",
9293
"remark-gfm": "4.0.1",
9394
"responsive-rsc": "0.0.7",
9495
"server-only": "^0.0.1",
9596
"shiki": "1.27.0",
96-
"sonner": "2.0.1",
97+
"sonner": "2.0.3",
9798
"spdx-correct": "^3.2.0",
9899
"stripe": "17.7.0",
99-
"swagger-ui-react": "^5.20.1",
100+
"swagger-ui-react": "^5.21.0",
100101
"tailwind-merge": "^2.6.0",
101102
"tailwindcss-animate": "^1.0.7",
102103
"thirdweb": "workspace:*",
103104
"tiny-invariant": "^1.3.3",
104105
"use-debounce": "^10.0.4",
105-
"zod": "3.24.2"
106+
"zod": "3.24.3"
106107
},
107108
"devDependencies": {
108109
"@chakra-ui/cli": "^2.4.1",
109110
"@chromatic-com/storybook": "3.2.6",
110-
"@next/bundle-analyzer": "15.2.4",
111-
"@next/eslint-plugin-next": "15.2.4",
112-
"@playwright/test": "1.51.1",
113-
"@storybook/addon-essentials": "8.6.4",
114-
"@storybook/addon-interactions": "8.6.4",
115-
"@storybook/addon-links": "8.6.4",
116-
"@storybook/addon-onboarding": "8.6.4",
117-
"@storybook/addon-viewport": "8.6.4",
118-
"@storybook/blocks": "8.6.4",
119-
"@storybook/nextjs": "8.6.4",
120-
"@storybook/react": "8.6.4",
121-
"@storybook/test": "8.6.4",
111+
"@next/bundle-analyzer": "15.3.1",
112+
"@next/eslint-plugin-next": "15.3.1",
113+
"@playwright/test": "1.52.0",
114+
"@storybook/addon-essentials": "8.6.12",
115+
"@storybook/addon-interactions": "8.6.12",
116+
"@storybook/addon-links": "8.6.12",
117+
"@storybook/addon-onboarding": "8.6.12",
118+
"@storybook/addon-viewport": "8.6.12",
119+
"@storybook/blocks": "8.6.12",
120+
"@storybook/nextjs": "8.6.12",
121+
"@storybook/react": "8.6.12",
122+
"@storybook/test": "8.6.12",
122123
"@types/color": "4.2.0",
123-
"@types/node": "22.13.10",
124+
"@types/node": "22.14.1",
124125
"@types/papaparse": "^5.3.15",
125126
"@types/pluralize": "^0.0.33",
126127
"@types/qrcode": "^1.5.5",
127-
"@types/react": "19.0.10",
128-
"@types/react-dom": "19.0.4",
128+
"@types/react": "19.1.2",
129+
"@types/react-dom": "19.1.2",
129130
"@types/react-table": "^7.7.20",
130131
"@types/spdx-correct": "^3.1.3",
131132
"@types/swagger-ui-react": "^4.19.0",
132133
"@typescript-eslint/eslint-plugin": "7.14.1",
133134
"@typescript-eslint/parser": "7.14.1",
134135
"autoprefixer": "^10.4.21",
135-
"checkly": "5.0.1",
136+
"checkly": "5.2.0",
136137
"eslint": "8.57.0",
137138
"eslint-config-biome": "1.9.4",
138-
"eslint-plugin-react-compiler": "19.0.0-beta-40c6c23-20250301",
139+
"eslint-plugin-react-compiler": "19.0.0-beta-e993439-20250405",
139140
"eslint-plugin-storybook": "0.12.0",
140-
"knip": "5.46.0",
141+
"knip": "5.50.5",
141142
"next-sitemap": "^4.2.3",
142143
"postcss": "8.5.3",
143-
"storybook": "8.6.4",
144+
"storybook": "8.6.12",
144145
"tailwindcss": "3.4.17",
145-
"typescript": "5.8.2"
146+
"typescript": "5.8.3"
146147
}
147148
}

apps/dashboard/src/@/actions/acceptInvite.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use server";
22

3-
import { getAuthToken } from "../../app/api/lib/getAuthToken";
3+
import { getAuthToken } from "../../app/(app)/api/lib/getAuthToken";
44
import { API_SERVER_URL } from "../constants/env";
55

66
export async function acceptInvite(options: {

0 commit comments

Comments
 (0)