Skip to content

Commit 4a211cb

Browse files
committed
fix: resolve v2.8.0-alpha.2 merge conflicts + reconcile post-migration imports
Resolve the 9 marked conflicts from the upstream sync: - package.json / feature-reporter package.json / pnpm-lock.yaml: take upstream (Next 16 + pnpm@10.32.1, matching DOS Dockerfile; DOS has no custom deps). - csp/index.ts: keep DOS multichain/marketplace CSP preload + take upstream nonce support. - checkRealBrowser.ts: keep DOS IncomingMessage param type (needed by the pages/api/monitoring/pageview API route) + add upstream SPDX header. - _app.tsx: drop 4 imports upstream migrated to client/*, keep DOS usePageViewTracking. - NFT-embed CSP files: take upstream (feature was upstreamed; only SPDX header differed). Reconcile silent breakage from upstream's client/ architecture migration (no conflict markers, caught by tsc): - Repoint lib/cookies -> client/shared/storage/cookies (csp/index, usePageViewTracking). - Repoint configs/*/config.edge -> config.nodejs (Node middleware runtime). - Remove duplicate useWallet import (lib/web3/useWallet) in useCallMethodWalletClient. - Add SPDX headers to DOS-only files (usePageViewTracking, monitoring/pageview) to satisfy upstream's new spdx-license/header lint rule. Validated in pnpm@10.32.1 / node 22: frozen install OK, tsc 0 errors, eslint 0 real errors on all changed files.
1 parent 4d656f4 commit 4a211cb

12 files changed

Lines changed: 44 additions & 914 deletions

File tree

client/slices/contract/pages/details/methods/useCallMethodWalletClient.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import useWallet from 'client/features/connect-wallet/hooks/useWallet';
1111
import config from 'configs/app';
1212
import { useMultichainContext } from 'lib/contexts/multichain';
1313
import useRewardsActivity from 'lib/hooks/useRewardsActivity';
14-
import useWallet from 'lib/web3/useWallet';
1514

1615
import { getNativeCoinValue } from './utils';
1716

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,19 @@
11
{
22
"name": "feature-reporter",
33
"version": "1.0.0",
4-
<<<<<<< HEAD
5-
"main": "index.js",
6-
=======
74
"private": true,
85
"type": "module",
96
"main": "dist/index.js",
10-
>>>>>>> v2.8.0-alpha.2
117
"scripts": {
12-
"compile_config": "yarn tsc -p ./tsconfig.json && yarn tsc-alias -p ./tsconfig.json",
13-
"build": "yarn webpack-cli -c ./webpack.config.js",
14-
"print_report": "node ./index.js",
8+
"build": "vite build --logLevel error",
9+
"print_report": "node ./dist/index.js",
1510
"dev": "./dev.sh"
1611
},
17-
"dependencies": {
18-
"tsc": "^2.0.4",
19-
"tsc-alias": "^1.8.7",
20-
"typescript": "5.1",
21-
"webpack": "^5.88.2",
22-
"webpack-cli": "^5.1.4"
23-
},
12+
"dependencies": {},
2413
"devDependencies": {
25-
<<<<<<< HEAD
26-
"dotenv-cli": "^7.2.1"
27-
=======
2814
"@types/node": "22.12.0",
2915
"dotenv-cli": "^7.2.1",
3016
"typescript": "6.0.3",
3117
"vite": "6.4.2"
32-
>>>>>>> v2.8.0-alpha.2
3318
}
3419
}

lib/monitoring/usePageViewTracking.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1+
// SPDX-License-Identifier: LicenseRef-Blockscout
2+
13
import { usePathname, useSearchParams } from 'next/navigation';
24
import React from 'react';
35

6+
import * as cookies from 'client/shared/storage/cookies';
7+
48
import config from 'configs/app';
5-
import * as cookies from 'lib/cookies';
69

710
// const ALLOWED_DOMAINS = [ 'eth.blockscout.com', 'localhost' ];
811
const ALLOWED_DOMAINS = [ 'eth.blockscout.com', 'localhost', 'eth-sepolia.k8s-dev.blockscout.com' ];

nextjs/csp/generateNftHtmlEmbedCspPolicy.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
<<<<<<< HEAD
2-
=======
31
// SPDX-License-Identifier: LicenseRef-Blockscout
42

5-
>>>>>>> v2.8.0-alpha.2
63
import { nftHtmlEmbed } from './policies/nftHtmlEmbed';
74
import { makePolicyString } from './utils';
85

nextjs/csp/index.ts

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,17 @@
22

33
import type { NextRequest } from 'next/server';
44

5+
import * as cookiesLib from 'client/shared/storage/cookies';
6+
57
import appConfig from 'configs/app';
6-
import * as essentialDappsChainsConfig from 'configs/essential-dapps-chains/config.edge';
7-
import * as multichainConfig from 'configs/multichain/config.edge';
8-
import * as cookiesLib from 'lib/cookies';
8+
import * as essentialDappsChainsConfig from 'configs/essential-dapps-chains/config.nodejs';
9+
import * as multichainConfig from 'configs/multichain/config.nodejs';
910

1011
import generateCspPolicy from './generateCspPolicy';
1112
import generateNftHtmlEmbedCspPolicy from './generateNftHtmlEmbedCspPolicy';
1213

13-
<<<<<<< HEAD
1414
const marketplaceFeature = appConfig.features.marketplace;
1515

16-
=======
17-
>>>>>>> v2.8.0-alpha.2
1816
const NFT_HTML_EMBED_PATH = '/nft-html-embed.html';
1917

2018
let cspPolicies: { 'private': string; 'default': string } | undefined = undefined;
@@ -53,12 +51,9 @@ export async function get(req?: NextRequest, nonce?: string): Promise<string> {
5351
return nftHtmlEmbedCsp;
5452
}
5553

56-
<<<<<<< HEAD
57-
=======
5854
if (nonce) {
5955
return generateCspPolicy(isPrivateMode, nonce);
6056
}
6157

62-
>>>>>>> v2.8.0-alpha.2
6358
return isPrivateMode ? cspPolicies?.private || '' : cspPolicies?.default || '';
6459
}

nextjs/csp/policies/nftHtmlEmbed.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
<<<<<<< HEAD
2-
=======
31
// SPDX-License-Identifier: LicenseRef-Blockscout
42

5-
>>>>>>> v2.8.0-alpha.2
63
import type CspDev from 'csp-dev';
74

85
import { KEY_WORDS } from '../utils';

nextjs/utils/checkRealBrowser.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
1-
<<<<<<< HEAD
2-
import type { IncomingMessage } from 'http';
3-
=======
41
// SPDX-License-Identifier: LicenseRef-Blockscout
52

6-
import type { GetServerSidePropsContext } from 'next';
7-
>>>>>>> v2.8.0-alpha.2
3+
import type { IncomingMessage } from 'http';
84

95
const GENERIC_BOT_MARKERS = [
106
'bot',

package.json

Lines changed: 9 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,17 @@
55
"homepage": "https://github.com/blockscout/frontend#readme",
66
"engines": {
77
"node": ">=22.14.0",
8-
"npm": ">=10.9.0"
8+
"pnpm": ">=9.0.0"
99
},
1010
"license": "SEE LICENSE IN ./LICENSE",
1111
"scripts": {
1212
"dev": "./tools/scripts/dev.sh",
1313
"dev:preset": "./tools/scripts/dev.preset.sh",
1414
"dev:preset:sync": "tsc -p ./tools/preset-sync/tsconfig.json && node ./tools/preset-sync/index.js",
1515
"build": "next build",
16-
"build:next": "./deploy/scripts/download_assets.sh ./public/assets/configs && yarn svg:build-sprite && ./deploy/scripts/make_envs_script.sh && next build",
16+
"build:next": "./deploy/scripts/download_assets.sh ./public/assets/configs && pnpm svg:build-sprite && ./deploy/scripts/make_envs_script.sh && next build",
1717
"build:docker": "./tools/scripts/build.docker.sh",
18+
"build:analyze": "BUNDLE_ANALYZER=true next build --webpack",
1819
"start": "next start",
1920
"start:docker:local": "docker run -p 3000:3000 --env-file .env.local blockscout-frontend:local",
2021
"start:docker:preset": "./tools/scripts/docker.preset.sh",
@@ -31,10 +32,10 @@
3132
"svg:format": "svgo -r --config svgo-format.config.js ./icons ./toolkit/chakra/assets",
3233
"svg:build-sprite": "./deploy/scripts/build_sprite.sh",
3334
"test:pw": "./tools/scripts/pw.sh",
34-
"test:pw:local": "export NODE_PATH=$(pwd)/node_modules && yarn test:pw",
35+
"test:pw:local": "export NODE_PATH=$(pwd)/node_modules && pnpm test:pw",
3536
"test:pw:docker": "docker run --rm --ipc=host -v $(pwd):/work/ -w /work/ -it mcr.microsoft.com/playwright:v1.57.0-noble ./tools/scripts/pw.docker.sh",
3637
"test:pw:docker:deps": "docker run --rm --ipc=host -v $(pwd):/work/ -w /work/ -it mcr.microsoft.com/playwright:v1.57.0-noble ./tools/scripts/pw.docker.deps.sh",
37-
"test:pw:ci": "yarn test:pw --project=$PW_PROJECT",
38+
"test:pw:ci": "pnpm test:pw --project=$PW_PROJECT",
3839
"test:pw:detect-affected": "node ./deploy/tools/affected-tests/index.js",
3940
"test:vitest": "vitest",
4041
"favicon:generate:dev": "./tools/scripts/favicon-generator.dev.sh",
@@ -55,24 +56,18 @@
5556
"@blockscout/zetachain-cctx-types": "^1.0.0-rc.6",
5657
"@chakra-ui/react": "3.33.0",
5758
"@dynamic-labs/ethereum": "4.74.1",
58-
<<<<<<< HEAD
59-
=======
6059
"@dynamic-labs/ethereum-aa": "4.74.1",
61-
>>>>>>> v2.8.0-alpha.2
6260
"@dynamic-labs/sdk-react-core": "4.74.1",
6361
"@dynamic-labs/wagmi-connector": "4.74.1",
6462
"@emotion/react": "11.14.0",
63+
"@graphiql/toolkit": "0.11.3",
6564
"@growthbook/growthbook-react": "0.21.0",
6665
"@helia/verified-fetch": "2.6.12",
6766
"@metamask/post-message-stream": "^7.0.0",
6867
"@metamask/providers": "^10.2.1",
6968
"@monaco-editor/react": "4.7.0",
7069
"@multisender.app/multisender-react-widget": "0.2.3",
71-
<<<<<<< HEAD
72-
"@next/bundle-analyzer": "15.5.9",
73-
=======
7470
"@next/bundle-analyzer": "16.2.4",
75-
>>>>>>> v2.8.0-alpha.2
7671
"@nouns/assets": "^0.10.0",
7772
"@nouns/sdk": "^1.2.0",
7873
"@opentelemetry/api": "^1.4.1",
@@ -81,6 +76,7 @@
8176
"@opentelemetry/exporter-metrics-otlp-proto": "0.49.1",
8277
"@opentelemetry/exporter-trace-otlp-http": "0.49.1",
8378
"@opentelemetry/resources": "1.22.0",
79+
"@opentelemetry/sdk-metrics": "1.22.0",
8480
"@opentelemetry/sdk-node": "0.49.1",
8581
"@opentelemetry/sdk-trace-node": "1.22.0",
8682
"@opentelemetry/semantic-conventions": "1.22.0",
@@ -93,14 +89,12 @@
9389
"@specify-sh/sdk": "0.4.2",
9490
"@tanstack/react-query": "5.55.4",
9591
"@tanstack/react-query-devtools": "5.55.4",
96-
<<<<<<< HEAD
97-
=======
9892
"@types/d3-selection": "3.0.11",
9993
"@types/d3-transition": "3.0.9",
100-
>>>>>>> v2.8.0-alpha.2
10194
"@types/papaparse": "^5.3.5",
10295
"@types/react-scroll": "^1.8.4",
10396
"@uidotdev/usehooks": "2.4.1",
97+
"abitype": "1.2.3",
10498
"airtable": "^0.12.2",
10599
"bignumber.js": "^9.1.0",
106100
"blo": "^1.1.1",
@@ -109,14 +103,12 @@
109103
"cspell": "9.8.0",
110104
"d3": "^7.6.1",
111105
"d3-sankey": "^0.12.3",
112-
<<<<<<< HEAD
113-
=======
114106
"d3-selection": "3.0.0",
115107
"d3-transition": "3.0.1",
116-
>>>>>>> v2.8.0-alpha.2
117108
"dappscout-iframe": "0.4.0",
118109
"dayjs": "^1.11.5",
119110
"dom-to-image": "^2.6.0",
111+
"dotenv": "17.3.1",
120112
"es-toolkit": "1.39.10",
121113
"esbuild": "0.25.12",
122114
"focus-visible": "^5.2.0",
@@ -127,13 +119,8 @@
127119
"js-cookie": "^3.0.1",
128120
"magic-bytes.js": "1.8.0",
129121
"mixpanel-browser": "2.67.0",
130-
<<<<<<< HEAD
131-
"monaco-editor": "^0.34.1",
132-
"next": "15.5.10",
133-
=======
134122
"monaco-editor": "0.52.2",
135123
"next": "16.2.6",
136-
>>>>>>> v2.8.0-alpha.2
137124
"next-themes": "0.4.4",
138125
"nextjs-routes": "2.2.5",
139126
"node-fetch": "^3.2.9",
@@ -167,11 +154,7 @@
167154
"@chakra-ui/cli": "3.33.0",
168155
"@eslint/compat": "1.2.2",
169156
"@eslint/js": "9.14.0",
170-
<<<<<<< HEAD
171-
"@next/eslint-plugin-next": "15.0.3",
172-
=======
173157
"@next/eslint-plugin-next": "16.2.6",
174-
>>>>>>> v2.8.0-alpha.2
175158
"@playwright/experimental-ct-react": "1.57.0",
176159
"@playwright/test": "1.57.0",
177160
"@stylistic/eslint-plugin": "5.2.3",
@@ -199,12 +182,8 @@
199182
"css-loader": "^6.7.3",
200183
"dotenv-cli": "^6.0.0",
201184
"eslint": "9.39.2",
202-
<<<<<<< HEAD
203-
"eslint-config-next": "15.4.10",
204-
=======
205185
"eslint-config-next": "16.2.6",
206186
"eslint-plugin-boundaries": "6.0.2",
207-
>>>>>>> v2.8.0-alpha.2
208187
"eslint-plugin-consistent-default-export-name": "^0.0.15",
209188
"eslint-plugin-import": "2.31.0",
210189
"eslint-plugin-import-helpers": "2.0.1",
@@ -236,25 +215,6 @@
236215
"lint-staged": {
237216
"*.{js,jsx,ts,tsx}": "eslint --cache --fix"
238217
},
239-
<<<<<<< HEAD
240-
"resolutions": {
241-
"@types/react": "18.3.12",
242-
"@types/react-dom": "18.3.1",
243-
"wagmi/**/ws": "8.17.1",
244-
"@helia/verified-fetch/**/axios": "1.12.0",
245-
"@helia/verified-fetch/**/tar-fs": "2.1.4",
246-
"@helia/verified-fetch/**/node-forge": "1.3.2",
247-
"@multisender.app/multisender-react-widget/**/axios": "1.12.0",
248-
"@reown/appkit/**/node-forge": "1.3.2",
249-
"@reown/appkit-adapter-wagmi/**/node-forge": "1.3.2",
250-
"eslint/**/brace-expansion": "1.1.12",
251-
"swagger-ui-react/**/js-yaml": "4.1.1",
252-
"dappscout-iframe/**/ws": "8.17.1",
253-
"viem/**/@noble/hashes": "1.8.0",
254-
"@walletconnect/ethereum-provider/**/@reown/appkit/**/@noble/hashes": "1.8.0"
255-
},
256-
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
257-
=======
258218
"pnpm": {
259219
"overrides": {
260220
"ws": "8.17.1",
@@ -270,5 +230,4 @@
270230
}
271231
},
272232
"packageManager": "pnpm@10.32.1"
273-
>>>>>>> v2.8.0-alpha.2
274233
}

pages/_app.tsx

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,7 @@ import { AppContextProvider } from 'lib/contexts/app';
2828
import { FallbackProvider } from 'lib/contexts/fallback';
2929
import { MarketplaceContextProvider } from 'lib/contexts/marketplace';
3030
import { SettingsContextProvider } from 'lib/contexts/settings';
31-
<<<<<<< HEAD
32-
import { initGrowthBook } from 'lib/growthbook/init';
33-
import useLoadFeatures from 'lib/growthbook/useLoadFeatures';
3431
import usePageViewTracking from 'lib/monitoring/usePageViewTracking';
35-
import { clientConfig as rollbarConfig, Provider as RollbarProvider } from 'lib/rollbar';
36-
import { SocketProvider } from 'lib/socket/context';
37-
=======
38-
>>>>>>> v2.8.0-alpha.2
3932
import { Provider as ChakraProvider } from 'toolkit/chakra/provider';
4033
import { Toaster } from 'toolkit/chakra/toaster';
4134
import AppErrorBoundary from 'ui/shared/AppError/AppErrorBoundary';

pages/api/monitoring/pageview.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// SPDX-License-Identifier: LicenseRef-Blockscout
2+
13
import type { NextApiRequest, NextApiResponse } from 'next';
24

35
import { isKnownBotRequest, isLikelyHumanBrowser } from 'nextjs/utils/checkRealBrowser';

0 commit comments

Comments
 (0)