@berachain/config 0.2.7 → 0.2.8-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/bepolia.cjs +7 -1
  2. package/dist/bepolia.mjs +7 -1
  3. package/dist/chunk-4AMLYLHZ.cjs +144 -0
  4. package/dist/chunk-4DGMTEOQ.mjs +144 -0
  5. package/dist/chunk-AU3LYJAB.cjs +75 -0
  6. package/dist/chunk-B2BTOQVP.cjs +25 -0
  7. package/dist/chunk-EYYJ2UZT.cjs +10 -0
  8. package/dist/chunk-F5UIDRP6.mjs +77 -0
  9. package/dist/chunk-G446M2AV.cjs +135 -0
  10. package/dist/chunk-GFHZDTK3.mjs +135 -0
  11. package/dist/chunk-KJXYSGNH.mjs +10 -0
  12. package/dist/chunk-LALEUPWL.mjs +8 -0
  13. package/dist/chunk-MNIORAK3.cjs +148 -0
  14. package/dist/chunk-NF5WIUL6.cjs +77 -0
  15. package/dist/chunk-OWAB24JG.mjs +25 -0
  16. package/dist/chunk-UKXTPLZ5.mjs +148 -0
  17. package/dist/chunk-VWRKCGMU.mjs +75 -0
  18. package/dist/chunk-XA5DMTFW.mjs +75 -0
  19. package/dist/chunk-YT7WZDGI.cjs +8 -0
  20. package/dist/chunk-ZTYHPIUW.cjs +75 -0
  21. package/dist/index.cjs +10 -1
  22. package/dist/index.mjs +10 -1
  23. package/dist/internal/header-sources.cjs +409 -13
  24. package/dist/internal/header-sources.mjs +409 -13
  25. package/dist/internal/index.cjs +37 -1
  26. package/dist/internal/index.mjs +37 -1
  27. package/dist/internal/maintenance.cjs +24 -1
  28. package/dist/internal/maintenance.mjs +24 -1
  29. package/dist/internal/nextjs/index.cjs +83 -1
  30. package/dist/internal/nextjs/index.mjs +83 -1
  31. package/dist/internal/nextjs/utils/index.cjs +40 -1
  32. package/dist/internal/nextjs/utils/index.mjs +40 -1
  33. package/dist/internal/sentry/index.cjs +10 -1
  34. package/dist/internal/sentry/index.mjs +10 -1
  35. package/dist/internal/sentry/sentry.client.config.cjs +65 -1
  36. package/dist/internal/sentry/sentry.client.config.mjs +65 -1
  37. package/dist/internal/tailwind/config.d.ts +1 -1
  38. package/dist/internal/tailwind/index.cjs +237 -1
  39. package/dist/internal/tailwind/index.d.ts +1 -1
  40. package/dist/internal/tailwind/index.mjs +237 -1
  41. package/dist/internal/wagmi/index.cjs +57 -1
  42. package/dist/internal/wagmi/index.mjs +57 -1
  43. package/dist/mainnet.cjs +8 -1
  44. package/dist/mainnet.mjs +8 -1
  45. package/dist/sentry.edge.config-3Y5ABKSB.cjs +22 -0
  46. package/dist/sentry.edge.config-SIWSKDGR.mjs +22 -0
  47. package/dist/sentry.server.config-HY6I2WQ5.mjs +22 -0
  48. package/dist/sentry.server.config-ZXGUVYT6.cjs +22 -0
  49. package/package.json +1 -1
  50. package/dist/chunk-2GCBWNKH.mjs +0 -1
  51. package/dist/chunk-2OLL4MUY.cjs +0 -1
  52. package/dist/chunk-2RLHVELA.mjs +0 -2
  53. package/dist/chunk-5YLBFOPA.mjs +0 -1
  54. package/dist/chunk-6CZTBBJT.cjs +0 -2
  55. package/dist/chunk-DUO7UEQD.cjs +0 -1
  56. package/dist/chunk-HJ25KNL4.cjs +0 -1
  57. package/dist/chunk-HLFO7V5I.cjs +0 -1
  58. package/dist/chunk-ITASDGG4.cjs +0 -1
  59. package/dist/chunk-MS6UGFXI.mjs +0 -1
  60. package/dist/chunk-MW34QRNX.cjs +0 -1
  61. package/dist/chunk-N45AQAIZ.mjs +0 -1
  62. package/dist/chunk-O243TIHY.mjs +0 -1
  63. package/dist/chunk-QHBQ2EN5.mjs +0 -1
  64. package/dist/chunk-QYM6VRYU.mjs +0 -1
  65. package/dist/chunk-WMZLZQ6E.mjs +0 -1
  66. package/dist/chunk-X5MTSC5T.cjs +0 -1
  67. package/dist/chunk-YLWSSHG6.cjs +0 -1
  68. package/dist/sentry.edge.config-AU3IBVBN.cjs +0 -1
  69. package/dist/sentry.edge.config-PXSVFOH6.mjs +0 -1
  70. package/dist/sentry.server.config-IOCQ5KDF.cjs +0 -1
  71. package/dist/sentry.server.config-NEPRXZ2E.mjs +0 -1
@@ -0,0 +1,75 @@
1
+ // src/internal/sentry/index.ts
2
+ import * as Sentry from "@sentry/nextjs";
3
+ async function registerSentry(opt = {}) {
4
+ if (process.env.NEXT_RUNTIME === "edge") {
5
+ const { initSentryEdge } = await import("./sentry.edge.config-SIWSKDGR.mjs");
6
+ initSentryEdge(Sentry, opt);
7
+ } else if (process.env.NEXT_RUNTIME === "nodejs") {
8
+ const { initSentryServer } = await import("./sentry.server.config-HY6I2WQ5.mjs");
9
+ initSentryServer(Sentry, opt);
10
+ } else {
11
+ }
12
+ }
13
+ function withSentryConfig2(config) {
14
+ const _config = {
15
+ ...config,
16
+ env: {
17
+ ...config.env,
18
+ // This is needed for sentry to know the environment.
19
+ VERCEL_TARGET_ENV: process.env.VERCEL_TARGET_ENV
20
+ },
21
+ webpack: (wpConfig, args) => {
22
+ if (args.isServer && !args.dev && process.env.UPLOAD_SOURCEMAPS === "true") {
23
+ wpConfig.devtool = "source-map";
24
+ }
25
+ return config.webpack?.(wpConfig, args) ?? wpConfig;
26
+ }
27
+ };
28
+ return Sentry.withSentryConfig(_config, {
29
+ // For all available options, see:
30
+ // https://github.com/getsentry/sentry-webpack-plugin#options
31
+ // Suppresses source map uploading logs during build
32
+ // silent: process.env.NODE_ENV === "development",
33
+ org: process.env.SENTRY_ORG,
34
+ project: process.env.SENTRY_PROJECT,
35
+ telemetry: false,
36
+ reactComponentAnnotation: {
37
+ enabled: process.env.UPLOAD_SOURCEMAPS === "true"
38
+ },
39
+ // For all available options, see:
40
+ // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/
41
+ // Upload a larger set of source maps for prettier stack traces (increases build time)
42
+ widenClientFileUpload: process.env.UPLOAD_SOURCEMAPS === "true",
43
+ sourcemaps: {
44
+ disable: process.env.UPLOAD_SOURCEMAPS !== "true"
45
+ // deleteSourcemapsAfterUpload: true,
46
+ },
47
+ debug: process.env.UPLOAD_SOURCEMAPS === "true",
48
+ // sourcemaps: {
49
+ // disable: false,
50
+ // // disable: !["production", "staging"].includes(
51
+ // // process.env.VERCEL_TARGET_ENV ?? "",
52
+ // // ),
53
+ // assets,
54
+ // // deleteSourcemapsAfterUpload: true,
55
+ // },
56
+ // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load)
57
+ tunnelRoute: "/monitoring-tunnel"
58
+ // Hides source maps from generated client bundles
59
+ // hideSourceMaps: true,
60
+ // Automatically tree-shake Sentry logger statements to reduce bundle size
61
+ // disableLogger: true,
62
+ // Enables automatic instrumentation of Vercel Cron Monitors.
63
+ // See the following for more information:
64
+ // https://docs.sentry.io/product/crons/
65
+ // https://vercel.com/docs/cron-jobs
66
+ // automaticVercelMonitors: true,
67
+ });
68
+ }
69
+ var onRequestError = Sentry.captureRequestError;
70
+
71
+ export {
72
+ registerSentry,
73
+ withSentryConfig2 as withSentryConfig,
74
+ onRequestError
75
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/utils/getUriFromLink.ts
2
+ function getUriFromLink(link) {
3
+ return typeof link === "string" ? link : link.uri;
4
+ }
5
+
6
+
7
+
8
+ exports.getUriFromLink = getUriFromLink;
@@ -0,0 +1,75 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/internal/sentry/index.ts
2
+ var _nextjs = require('@sentry/nextjs'); var Sentry = _interopRequireWildcard(_nextjs);
3
+ async function registerSentry(opt = {}) {
4
+ if (process.env.NEXT_RUNTIME === "edge") {
5
+ const { initSentryEdge } = await Promise.resolve().then(() => _interopRequireWildcard(require("./sentry.edge.config-3Y5ABKSB.cjs")));
6
+ initSentryEdge(Sentry, opt);
7
+ } else if (process.env.NEXT_RUNTIME === "nodejs") {
8
+ const { initSentryServer } = await Promise.resolve().then(() => _interopRequireWildcard(require("./sentry.server.config-ZXGUVYT6.cjs")));
9
+ initSentryServer(Sentry, opt);
10
+ } else {
11
+ }
12
+ }
13
+ function withSentryConfig2(config) {
14
+ const _config = {
15
+ ...config,
16
+ env: {
17
+ ...config.env,
18
+ // This is needed for sentry to know the environment.
19
+ VERCEL_TARGET_ENV: process.env.VERCEL_TARGET_ENV
20
+ },
21
+ webpack: (wpConfig, args) => {
22
+ if (args.isServer && !args.dev && process.env.UPLOAD_SOURCEMAPS === "true") {
23
+ wpConfig.devtool = "source-map";
24
+ }
25
+ return _nullishCoalesce(_optionalChain([config, 'access', _ => _.webpack, 'optionalCall', _2 => _2(wpConfig, args)]), () => ( wpConfig));
26
+ }
27
+ };
28
+ return Sentry.withSentryConfig(_config, {
29
+ // For all available options, see:
30
+ // https://github.com/getsentry/sentry-webpack-plugin#options
31
+ // Suppresses source map uploading logs during build
32
+ // silent: process.env.NODE_ENV === "development",
33
+ org: process.env.SENTRY_ORG,
34
+ project: process.env.SENTRY_PROJECT,
35
+ telemetry: false,
36
+ reactComponentAnnotation: {
37
+ enabled: process.env.UPLOAD_SOURCEMAPS === "true"
38
+ },
39
+ // For all available options, see:
40
+ // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/
41
+ // Upload a larger set of source maps for prettier stack traces (increases build time)
42
+ widenClientFileUpload: process.env.UPLOAD_SOURCEMAPS === "true",
43
+ sourcemaps: {
44
+ disable: process.env.UPLOAD_SOURCEMAPS !== "true"
45
+ // deleteSourcemapsAfterUpload: true,
46
+ },
47
+ debug: process.env.UPLOAD_SOURCEMAPS === "true",
48
+ // sourcemaps: {
49
+ // disable: false,
50
+ // // disable: !["production", "staging"].includes(
51
+ // // process.env.VERCEL_TARGET_ENV ?? "",
52
+ // // ),
53
+ // assets,
54
+ // // deleteSourcemapsAfterUpload: true,
55
+ // },
56
+ // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load)
57
+ tunnelRoute: "/monitoring-tunnel"
58
+ // Hides source maps from generated client bundles
59
+ // hideSourceMaps: true,
60
+ // Automatically tree-shake Sentry logger statements to reduce bundle size
61
+ // disableLogger: true,
62
+ // Enables automatic instrumentation of Vercel Cron Monitors.
63
+ // See the following for more information:
64
+ // https://docs.sentry.io/product/crons/
65
+ // https://vercel.com/docs/cron-jobs
66
+ // automaticVercelMonitors: true,
67
+ });
68
+ }
69
+ var onRequestError = Sentry.captureRequestError;
70
+
71
+
72
+
73
+
74
+
75
+ exports.registerSentry = registerSentry; exports.withSentryConfig = withSentryConfig2; exports.onRequestError = onRequestError;
package/dist/index.cjs CHANGED
@@ -1 +1,10 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkDUO7UEQDcjs = require('./chunk-DUO7UEQD.cjs');var _chunk2OLL4MUYcjs = require('./chunk-2OLL4MUY.cjs');exports.ChainId = _chunk2OLL4MUYcjs.a; exports.getUriFromLink = _chunkDUO7UEQDcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkYT7WZDGIcjs = require('./chunk-YT7WZDGI.cjs');
4
+
5
+
6
+ var _chunkEYYJ2UZTcjs = require('./chunk-EYYJ2UZT.cjs');
7
+
8
+
9
+
10
+ exports.ChainId = _chunkEYYJ2UZTcjs.ChainId; exports.getUriFromLink = _chunkYT7WZDGIcjs.getUriFromLink;
package/dist/index.mjs CHANGED
@@ -1 +1,10 @@
1
- import{a as r}from"./chunk-O243TIHY.mjs";import{a as o}from"./chunk-MS6UGFXI.mjs";export{o as ChainId,r as getUriFromLink};
1
+ import {
2
+ getUriFromLink
3
+ } from "./chunk-LALEUPWL.mjs";
4
+ import {
5
+ ChainId
6
+ } from "./chunk-KJXYSGNH.mjs";
7
+ export {
8
+ ChainId,
9
+ getUriFromLink
10
+ };
@@ -1,16 +1,412 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkHLFO7V5Icjs = require('../chunk-HLFO7V5I.cjs');var _chunkDUO7UEQDcjs = require('../chunk-DUO7UEQD.cjs');var _chunkX5MTSC5Tcjs = require('../chunk-X5MTSC5T.cjs');require('../chunk-MW34QRNX.cjs');require('../chunk-HJ25KNL4.cjs');var _chunk6CZTBBJTcjs = require('../chunk-6CZTBBJT.cjs');require('../chunk-2OLL4MUY.cjs');function _(t){let s=t.indexOf("://");if(s===-1)return;let e=t.slice(0,s).toLowerCase(),r=t.slice(s+3),n=r.indexOf("/"),c=(n===-1?r:r.slice(0,n)).toLowerCase(),o=n===-1?"/":r.slice(n);if(c)return{raw:t,scheme:e,host:c,path:o}}function M(t,s){if(!t.startsWith("*."))return t===s;let e=t.slice(1);return s.endsWith(e)&&s.length>e.length}function C(t,s){return t.scheme!==s.scheme||!M(t.host,s.host)?!1:t.path.endsWith("/")?s.path.startsWith(t.path):s.path===t.path}function a(t){let s=t.map(e=>({raw:e,parsed:_(e)}));return s.filter(({parsed:e},r)=>e?!s.some(({parsed:n},c)=>r===c||!n||!C(n,e)?!1:C(e,n)?c<r:!0):!0).map(({raw:e})=>e)}function $({dsn:t=process.env.NEXT_PUBLIC_SENTRY_DSN}={}){if(!t)return;let s=/^(?:https:\/\/)([A-z0-9]{32})(?::{0,1})([A-z0-9]*)(?:@)(o[a-z0-9]+)(?:\.ingest\.us\.sentry\.io)\/([0-9]{16})/i,e=_optionalChain([t, 'optionalAccess', _2 => _2.match, 'call', _3 => _3(s)]);if(!e)return;let[,r,n,c,o]=e,p=new URL(`https://${c}.ingest.us.sentry.io/api/${o}/security/?sentry_key=${r}`);return p.searchParams.set("sentry_key",r),p.searchParams.set("sentry_env",_chunkHLFO7V5Icjs.a),p.searchParams.set("sentry_release",_chunkHLFO7V5Icjs.c),{dsn:e[0],projectId:o,deprecatedSecret:n||void 0,cspEndpoint:p,org:c,publicKey:e[1]}}var u=_chunkX5MTSC5Tcjs.a[_chunk6CZTBBJTcjs.a],z={berachain:{connect:["https://*.berachain.com/",_chunk6CZTBBJTcjs.b?null:"https://*.berachain-staging.com/","https://raw.githubusercontent.com/berachain/metadata/",`${_chunk6CZTBBJTcjs.g}/`,"https://*.quiknode.pro",u.pol.bribeBoostApi,_chunkDUO7UEQDcjs.a.call(void 0, u.beep),_chunkDUO7UEQDcjs.a.call(void 0, u.api),_chunk6CZTBBJTcjs.k,_chunk6CZTBBJTcjs.j,_chunk6CZTBBJTcjs.l,"https://api.routescan.io/v2/network/"],img:[`${_chunk6CZTBBJTcjs.g}/`,"https://raw.githubusercontent.com/berachain/metadata/"]},beranames:{connect:["https://beranames-assets-berachain.s3.eu-central-003.backblazeb2.com/"],img:["https://beranames-assets-berachain.s3.eu-central-003.backblazeb2.com/"]},swapAggregators:{connect:[u.bex.aggregatorsProxyUrl?`${u.bex.aggregatorsProxyUrl}/`:null,"https://open-api.openocean.finance/","https://api.haiku.trade/","https://api.fly.trade/","https://api.enso.finance/","https://api.enso.build/","https://api.relay.link/"]},walletConnect:{connect:["wss://relay.walletconnect.com/","wss://relay.walletconnect.org/","https://verify.walletconnect.org/v3/public-key"],frame:["https://verify.walletconnect.com/","https://verify.walletconnect.org/"]},coinbaseWallet:{connect:["wss://www.walletlink.org/rpc","https://www.walletlink.org/events","https://chain-proxy.wallet.coinbase.com/"]},metamask:{connect:["wss://metamask-sdk.api.cx.metamask.io/socket.io/","https://metamask-sdk.api.cx.metamask.io"]},thirdweb:{connect:["https://*.thirdweb.com/"],frame:["https://embedded-wallet.thirdweb.com/"]},dynamic:{connect:["https://app.dynamicauth.com/api"]},binance:{connect:["https://wallet.binance.com/tonbridge/"]},tron:{connect:["https://api.trongrid.io/"]},layerZero:{connect:["https://*.layerzero-scan.com/","https://scan.layerzero-api.com/"]},pelagus:{img:["https://pelaguswallet.io/docs/img"]},externalRpcs:{connect:["https://api.avax.network/ext/bc/C/rpc","https://polygon-rpc.com","https://mainnet.optimism.io/","https://arb1.arbitrum.io/rpc","https://mainnet.base.org/","https://eth.merkle.io"]},tokenIcons:{img:["https://assets.coingecko.com/coins/images/","https://coin-images.coingecko.com/coins/images/","https://icons.llama.fi/","https://icons.llamao.fi/","https://static.debank.com/","https://raw.githubusercontent.com/trustwallet/assets/"]},bend:{img:["https://cdn.morpho.org/"]},pyth:{connect:["https://hermes.pyth.network/v2/"]},fonts:{font:["https://cdn.jsdelivr.net/npm/@fontsource/","https://fonts.gstatic.com","https://use.typekit.net/"]},sentry:{connect:["https://*.sentry.io/"]},posthog:{connect:["https://*.posthog.com"],img:["https://*.posthog.com"],frame:["https://*.posthog.com"],font:["https://*.posthog.com"],style:["https://*.posthog.com"],media:["https://*.posthog.com"]},vercel:{connect:["https://vercel.live","wss://ws-us3.pusher.com"],img:["https://vercel.live","https://vercel.com"],frame:["https://vercel.live/"],font:["https://vercel.live","https://assets.vercel.com"],style:["https://vercel.live"]}},D= exports.headerSourceModules =z;function B({isDevelopment:t,cspReporting:s,dynamicScriptCsp:e={},modules:r={},...n}){let c=[];function o(l){return Object.entries(D).filter(([i])=>r[i]!==!1).flatMap(([,i])=>_nullishCoalesce(i[l], () => ([]))).filter(i=>!!_optionalChain([i, 'optionalAccess', _4 => _4.trim, 'call', _5 => _5()]))}let p=a(o("connect").concat(_nullishCoalesce(n.connectionSources, () => ([]))).filter(l=>{let i=_chunkDUO7UEQDcjs.a.call(void 0, l);return!(!i||i.trim()===""||i.startsWith(_chunk6CZTBBJTcjs.h)&&i!==_chunk6CZTBBJTcjs.h)})),R=a(o("img").concat(_nullishCoalesce(n.pictureSources, () => ([])))),P=a(o("frame").concat(_nullishCoalesce(n.frameSources, () => ([])))),E=a(o("font").concat(_nullishCoalesce(n.fontSources, () => ([])))),j=a(o("style").concat(_nullishCoalesce(n.styleSources, () => ([])))),N=a(o("worker").concat(_nullishCoalesce(n.workerSources, () => ([])))),U=a(o("media").concat(_nullishCoalesce(n.mediaSources, () => ([])))),O=e==="disabled"?a(o("script").concat(_nullishCoalesce(n.scriptSources, () => ([])))):a([e.nonce?`'nonce-${e.nonce}'`:"","'strict-dynamic'","'sha256-k2HGvaYkGyYZxOwKGxgE1mr06tZEDcEXNZ5mdcldK0o='",..._nullishCoalesce(e.sha, () => ([]))].filter(l=>l!=="")),f=`
2
- default-src 'self' ${c.join(" ")};
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+ var _chunkB2BTOQVPcjs = require('../chunk-B2BTOQVP.cjs');
5
+
6
+
7
+ var _chunkYT7WZDGIcjs = require('../chunk-YT7WZDGI.cjs');
8
+
9
+
10
+ var _chunkG446M2AVcjs = require('../chunk-G446M2AV.cjs');
11
+ require('../chunk-MNIORAK3.cjs');
12
+ require('../chunk-4AMLYLHZ.cjs');
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+ var _chunkAU3LYJABcjs = require('../chunk-AU3LYJAB.cjs');
22
+ require('../chunk-EYYJ2UZT.cjs');
23
+
24
+ // src/internal/dedupeCspSources.ts
25
+ function parseSource(raw) {
26
+ const schemeSplit = raw.indexOf("://");
27
+ if (schemeSplit === -1) {
28
+ return void 0;
29
+ }
30
+ const scheme = raw.slice(0, schemeSplit).toLowerCase();
31
+ const rest = raw.slice(schemeSplit + 3);
32
+ const pathStart = rest.indexOf("/");
33
+ const host = (pathStart === -1 ? rest : rest.slice(0, pathStart)).toLowerCase();
34
+ const path = pathStart === -1 ? "/" : rest.slice(pathStart);
35
+ if (!host) {
36
+ return void 0;
37
+ }
38
+ return { raw, scheme, host, path };
39
+ }
40
+ function hostMatches(patternHost, targetHost) {
41
+ if (!patternHost.startsWith("*.")) {
42
+ return patternHost === targetHost;
43
+ }
44
+ const suffix = patternHost.slice(1);
45
+ return targetHost.endsWith(suffix) && targetHost.length > suffix.length;
46
+ }
47
+ function covers(pattern, target) {
48
+ if (pattern.scheme !== target.scheme) {
49
+ return false;
50
+ }
51
+ if (!hostMatches(pattern.host, target.host)) {
52
+ return false;
53
+ }
54
+ if (pattern.path.endsWith("/")) {
55
+ return target.path.startsWith(pattern.path);
56
+ }
57
+ return target.path === pattern.path;
58
+ }
59
+ function dedupeCspSources(sources) {
60
+ const parsed = sources.map((raw) => ({ raw, parsed: parseSource(raw) }));
61
+ return parsed.filter(({ parsed: target }, i) => {
62
+ if (!target) {
63
+ return true;
64
+ }
65
+ return !parsed.some(({ parsed: pattern }, j) => {
66
+ if (i === j || !pattern) {
67
+ return false;
68
+ }
69
+ if (!covers(pattern, target)) {
70
+ return false;
71
+ }
72
+ if (covers(target, pattern)) {
73
+ return j < i;
74
+ }
75
+ return true;
76
+ });
77
+ }).map(({ raw }) => raw);
78
+ }
79
+
80
+ // src/internal/sentry/getSentryKeys.ts
81
+ function getSentryKeys({
82
+ dsn = process.env.NEXT_PUBLIC_SENTRY_DSN
83
+ } = {}) {
84
+ if (!dsn) {
85
+ return void 0;
86
+ }
87
+ const re = /^(?:https:\/\/)([A-z0-9]{32})(?::{0,1})([A-z0-9]*)(?:@)(o[a-z0-9]+)(?:\.ingest\.us\.sentry\.io)\/([0-9]{16})/i;
88
+ const match = _optionalChain([dsn, 'optionalAccess', _ => _.match, 'call', _2 => _2(re)]);
89
+ if (!match) {
90
+ return void 0;
91
+ }
92
+ const [
93
+ ,
94
+ key,
95
+ // this is a secret stored in a deprecated dns format
96
+ deprecatedSecret,
97
+ org,
98
+ projectId
99
+ ] = match;
100
+ const cspEndpoint = new URL(
101
+ `https://${org}.ingest.us.sentry.io/api/${projectId}/security/?sentry_key=${key}`
102
+ );
103
+ cspEndpoint.searchParams.set("sentry_key", key);
104
+ cspEndpoint.searchParams.set("sentry_env", _chunkB2BTOQVPcjs.sentryEnvironment);
105
+ cspEndpoint.searchParams.set("sentry_release", _chunkB2BTOQVPcjs.sentryRelease);
106
+ return {
107
+ dsn: match[0],
108
+ projectId,
109
+ deprecatedSecret: deprecatedSecret || void 0,
110
+ cspEndpoint,
111
+ org,
112
+ publicKey: match[1]
113
+ };
114
+ }
115
+
116
+ // src/internal/header-sources.ts
117
+ var config = _chunkG446M2AVcjs.chainConfigs[_chunkAU3LYJABcjs.defaultChainId];
118
+ var modules = {
119
+ berachain: {
120
+ connect: [
121
+ "https://*.berachain.com/",
122
+ // staging hosts are only reachable outside production
123
+ _chunkAU3LYJABcjs.isProduction ? null : "https://*.berachain-staging.com/",
124
+ "https://raw.githubusercontent.com/berachain/metadata/",
125
+ `${_chunkAU3LYJABcjs.imageBaseUrl}/`,
126
+ "https://*.quiknode.pro",
127
+ // Subgraph queries are served by same-origin typed REST endpoints under
128
+ // /api/honey/* and /api/pol/* (covered by 'self'), not direct browser
129
+ // requests to the upstream URLs.
130
+ config.pol.bribeBoostApi,
131
+ _chunkYT7WZDGIcjs.getUriFromLink.call(void 0, config.beep),
132
+ _chunkYT7WZDGIcjs.getUriFromLink.call(void 0, config.api),
133
+ _chunkAU3LYJABcjs.jsonRpcUrl,
134
+ _chunkAU3LYJABcjs.publicJsonRpcUrl,
135
+ _chunkAU3LYJABcjs.alchemyJsonRpcUrl,
136
+ "https://api.routescan.io/v2/network/"
137
+ ],
138
+ img: [
139
+ // trailing slash so sub-paths (e.g. /bend-curators/x.png/public) match;
140
+ // CSP path-matches exactly without it
141
+ `${_chunkAU3LYJABcjs.imageBaseUrl}/`,
142
+ "https://raw.githubusercontent.com/berachain/metadata/"
143
+ ]
144
+ },
145
+ beranames: {
146
+ connect: [
147
+ // avatars
148
+ "https://beranames-assets-berachain.s3.eu-central-003.backblazeb2.com/"
149
+ ],
150
+ img: [
151
+ "https://beranames-assets-berachain.s3.eu-central-003.backblazeb2.com/"
152
+ ]
153
+ },
154
+ swapAggregators: {
155
+ connect: [
156
+ // empty on chains without a proxy — omit rather than emit a bare "/"
157
+ config.bex.aggregatorsProxyUrl ? `${config.bex.aggregatorsProxyUrl}/` : null,
158
+ "https://open-api.openocean.finance/",
159
+ "https://api.haiku.trade/",
160
+ "https://api.fly.trade/",
161
+ "https://api.enso.finance/",
162
+ "https://api.enso.build/",
163
+ // zaps
164
+ "https://api.relay.link/"
165
+ ]
166
+ },
167
+ walletConnect: {
168
+ connect: [
169
+ "wss://relay.walletconnect.com/",
170
+ "wss://relay.walletconnect.org/",
171
+ "https://verify.walletconnect.org/v3/public-key"
172
+ ],
173
+ frame: [
174
+ "https://verify.walletconnect.com/",
175
+ "https://verify.walletconnect.org/"
176
+ ]
177
+ },
178
+ coinbaseWallet: {
179
+ connect: [
180
+ "wss://www.walletlink.org/rpc",
181
+ "https://www.walletlink.org/events",
182
+ "https://chain-proxy.wallet.coinbase.com/"
183
+ ]
184
+ },
185
+ metamask: {
186
+ connect: [
187
+ "wss://metamask-sdk.api.cx.metamask.io/socket.io/",
188
+ "https://metamask-sdk.api.cx.metamask.io"
189
+ ]
190
+ },
191
+ thirdweb: {
192
+ connect: ["https://*.thirdweb.com/"],
193
+ // export pk iframe
194
+ frame: ["https://embedded-wallet.thirdweb.com/"]
195
+ },
196
+ dynamic: {
197
+ connect: ["https://app.dynamicauth.com/api"]
198
+ },
199
+ binance: {
200
+ connect: ["https://wallet.binance.com/tonbridge/"]
201
+ },
202
+ tron: {
203
+ connect: ["https://api.trongrid.io/"]
204
+ },
205
+ layerZero: {
206
+ connect: [
207
+ "https://*.layerzero-scan.com/",
208
+ "https://scan.layerzero-api.com/"
209
+ ]
210
+ },
211
+ pelagus: {
212
+ img: ["https://pelaguswallet.io/docs/img"]
213
+ },
214
+ externalRpcs: {
215
+ // non-Berachain chains read by wallets/bridges
216
+ connect: [
217
+ "https://api.avax.network/ext/bc/C/rpc",
218
+ "https://polygon-rpc.com",
219
+ "https://mainnet.optimism.io/",
220
+ "https://arb1.arbitrum.io/rpc",
221
+ "https://mainnet.base.org/",
222
+ "https://eth.merkle.io"
223
+ ]
224
+ },
225
+ tokenIcons: {
226
+ img: [
227
+ "https://assets.coingecko.com/coins/images/",
228
+ "https://coin-images.coingecko.com/coins/images/",
229
+ "https://icons.llama.fi/",
230
+ "https://icons.llamao.fi/",
231
+ "https://static.debank.com/",
232
+ "https://raw.githubusercontent.com/trustwallet/assets/"
233
+ ]
234
+ },
235
+ bend: {
236
+ img: ["https://cdn.morpho.org/"]
237
+ },
238
+ pyth: {
239
+ connect: ["https://hermes.pyth.network/v2/"]
240
+ },
241
+ fonts: {
242
+ font: [
243
+ "https://cdn.jsdelivr.net/npm/@fontsource/",
244
+ // collected by sentry (needed by browser extensions)
245
+ "https://fonts.gstatic.com",
246
+ "https://use.typekit.net/"
247
+ ]
248
+ },
249
+ sentry: {
250
+ // csp reporting
251
+ connect: ["https://*.sentry.io/"]
252
+ },
253
+ posthog: {
254
+ // toolbar + heatmaps
255
+ connect: ["https://*.posthog.com"],
256
+ img: ["https://*.posthog.com"],
257
+ frame: ["https://*.posthog.com"],
258
+ font: ["https://*.posthog.com"],
259
+ style: ["https://*.posthog.com"],
260
+ media: ["https://*.posthog.com"]
261
+ },
262
+ vercel: {
263
+ // toolbar + live comments
264
+ connect: ["https://vercel.live", "wss://ws-us3.pusher.com"],
265
+ img: ["https://vercel.live", "https://vercel.com"],
266
+ frame: ["https://vercel.live/"],
267
+ font: ["https://vercel.live", "https://assets.vercel.com"],
268
+ style: ["https://vercel.live"]
269
+ }
270
+ };
271
+ var headerSourceModules = modules;
272
+ function getContentSecurityPolicy({
273
+ isDevelopment,
274
+ cspReporting,
275
+ dynamicScriptCsp = {},
276
+ modules: enabledModules = {},
277
+ ...args
278
+ }) {
279
+ const defaultSrc = [];
280
+ function collect(directive) {
281
+ return Object.entries(headerSourceModules).filter(
282
+ ([module]) => enabledModules[module] !== false
283
+ ).flatMap(([, sources]) => _nullishCoalesce(sources[directive], () => ( []))).filter((url) => Boolean(_optionalChain([url, 'optionalAccess', _3 => _3.trim, 'call', _4 => _4()])));
284
+ }
285
+ const connectionSources = dedupeCspSources(
286
+ collect("connect").concat(_nullishCoalesce(args.connectionSources, () => ( []))).filter((link) => {
287
+ const url = _chunkYT7WZDGIcjs.getUriFromLink.call(void 0, link);
288
+ if (!url || url.trim() === "") {
289
+ return false;
290
+ }
291
+ if (url.startsWith(_chunkAU3LYJABcjs.goldskyBaseUrl) && url !== _chunkAU3LYJABcjs.goldskyBaseUrl) {
292
+ return false;
293
+ }
294
+ return true;
295
+ })
296
+ );
297
+ const pictureSources = dedupeCspSources(
298
+ collect("img").concat(_nullishCoalesce(args.pictureSources, () => ( [])))
299
+ );
300
+ const frameSources = dedupeCspSources(
301
+ collect("frame").concat(_nullishCoalesce(args.frameSources, () => ( [])))
302
+ );
303
+ const fontSources = dedupeCspSources(
304
+ collect("font").concat(_nullishCoalesce(args.fontSources, () => ( [])))
305
+ );
306
+ const styleSources = dedupeCspSources(
307
+ collect("style").concat(_nullishCoalesce(args.styleSources, () => ( [])))
308
+ );
309
+ const workerSources = dedupeCspSources(
310
+ collect("worker").concat(_nullishCoalesce(args.workerSources, () => ( [])))
311
+ );
312
+ const mediaSources = dedupeCspSources(
313
+ collect("media").concat(_nullishCoalesce(args.mediaSources, () => ( [])))
314
+ );
315
+ const scriptSources = dynamicScriptCsp === "disabled" ? dedupeCspSources(collect("script").concat(_nullishCoalesce(args.scriptSources, () => ( [])))) : dedupeCspSources(
316
+ [
317
+ dynamicScriptCsp.nonce ? `'nonce-${dynamicScriptCsp.nonce}'` : "",
318
+ "'strict-dynamic'",
319
+ "'sha256-k2HGvaYkGyYZxOwKGxgE1mr06tZEDcEXNZ5mdcldK0o='",
320
+ ..._nullishCoalesce(dynamicScriptCsp.sha, () => ( []))
321
+ ].filter((source) => source !== "")
322
+ );
323
+ let cspHeader = `
324
+ default-src 'self' ${defaultSrc.join(" ")};
3
325
  base-uri 'self';
4
- frame-src 'self' ${P.join(" ")};
326
+ frame-src 'self' ${frameSources.join(" ")};
5
327
  frame-ancestors 'self' https://*.posthog.com;
6
- script-src 'self' ${O.concat([t?"'unsafe-eval'":""]).join(" ")};
7
- worker-src 'self' blob: data: ${N.join(" ")};
8
- font-src 'self' ${E.join(" ")};
9
- style-src 'self' ${j.join(" ")} 'unsafe-inline';
10
- img-src 'self' data: ${R.join(" ")};
11
- connect-src 'self' ${p.join(" ")};
12
- media-src 'self' ${U.join(" ")};
13
- `;return s&&(f+=`
14
- report-uri ${s};
328
+ script-src 'self' ${scriptSources.concat([isDevelopment ? "'unsafe-eval'" : ""]).join(" ")};
329
+ worker-src 'self' blob: data: ${workerSources.join(" ")};
330
+ font-src 'self' ${fontSources.join(" ")};
331
+ style-src 'self' ${styleSources.join(" ")} 'unsafe-inline';
332
+ img-src 'self' data: ${pictureSources.join(" ")};
333
+ connect-src 'self' ${connectionSources.join(" ")};
334
+ media-src 'self' ${mediaSources.join(" ")};
335
+ `;
336
+ if (cspReporting) {
337
+ cspHeader += `
338
+ report-uri ${cspReporting};
15
339
  report-to csp-endpoint;
16
- `),f.replace(/\s{2,}/g," ").trim()}var Y=[`${_chunk6CZTBBJTcjs.g}/`,"https://raw.githubusercontent.com/berachain/metadata/","https://assets.coingecko.com/coins/images/","https://berachain.ghost.io/content/images/"].filter(t=>!(!t||t.trim()===""));function Z({response:t,csp:s}){let e=_optionalChain([$, 'call', _6 => _6(), 'optionalAccess', _7 => _7.cspEndpoint]),r=_optionalChain([s, 'optionalAccess', _8 => _8.dynamicScriptCsp])!=="disabled"?_nullishCoalesce(_optionalChain([s, 'optionalAccess', _9 => _9.dynamicScriptCsp, 'optionalAccess', _10 => _10.nonce]), () => (Buffer.from(crypto.randomUUID()).toString("base64"))):void 0,n=process.env.NODE_ENV==="development",c=[{key:"Content-Security-Policy",value:B({...s,dynamicScriptCsp:_optionalChain([s, 'optionalAccess', _11 => _11.dynamicScriptCsp])==="disabled"?s.dynamicScriptCsp:{..._optionalChain([s, 'optionalAccess', _12 => _12.dynamicScriptCsp]),nonce:r},isDevelopment:n,cspReporting:_optionalChain([e, 'optionalAccess', _13 => _13.toString, 'call', _14 => _14()])})},{key:"X-Frame-Options",value:"DENY"},{key:"X-Content-Type-Options",value:"nosniff"},{key:"X-Nonce",value:r}];e&&(c.push({key:"Reporting-To",value:`{"group":"csp-endpoint","max_age":10886400,"endpoints":[{"url":"${e}"}],"include_subdomains":true}"`}),c.push({key:"Reporting-Endpoints",value:`csp-endpoint="${e}"`}));for(let o of c)o.value&&t.headers.set(o.key,o.value);return t}exports.cspMiddleware = Z; exports.getContentSecurityPolicy = B; exports.headerSourceModules = D; exports.staticPictureSources = Y;
340
+ `;
341
+ }
342
+ return cspHeader.replace(/\s{2,}/g, " ").trim();
343
+ }
344
+ var staticPictureSources = [
345
+ // Only add image delivery URL if it exists and can be processed
346
+ `${_chunkAU3LYJABcjs.imageBaseUrl}/`,
347
+ "https://raw.githubusercontent.com/berachain/metadata/",
348
+ "https://assets.coingecko.com/coins/images/",
349
+ "https://berachain.ghost.io/content/images/"
350
+ ].filter((url) => {
351
+ if (!url || url.trim() === "") {
352
+ return false;
353
+ }
354
+ return true;
355
+ });
356
+ function cspMiddleware({
357
+ response,
358
+ csp
359
+ }) {
360
+ const sentryCspEndpoint = _optionalChain([getSentryKeys, 'call', _5 => _5(), 'optionalAccess', _6 => _6.cspEndpoint]);
361
+ const nonce = _optionalChain([csp, 'optionalAccess', _7 => _7.dynamicScriptCsp]) !== "disabled" ? _nullishCoalesce(_optionalChain([csp, 'optionalAccess', _8 => _8.dynamicScriptCsp, 'optionalAccess', _9 => _9.nonce]), () => ( Buffer.from(crypto.randomUUID()).toString("base64"))) : void 0;
362
+ const isDevelopment = process.env.NODE_ENV === "development";
363
+ const headers = [
364
+ {
365
+ key: "Content-Security-Policy",
366
+ value: getContentSecurityPolicy({
367
+ ...csp,
368
+ dynamicScriptCsp: _optionalChain([csp, 'optionalAccess', _10 => _10.dynamicScriptCsp]) === "disabled" ? csp.dynamicScriptCsp : {
369
+ ..._optionalChain([csp, 'optionalAccess', _11 => _11.dynamicScriptCsp]),
370
+ nonce
371
+ },
372
+ isDevelopment,
373
+ cspReporting: _optionalChain([sentryCspEndpoint, 'optionalAccess', _12 => _12.toString, 'call', _13 => _13()])
374
+ })
375
+ },
376
+ {
377
+ key: "X-Frame-Options",
378
+ value: "DENY"
379
+ },
380
+ {
381
+ key: "X-Content-Type-Options",
382
+ value: "nosniff"
383
+ },
384
+ {
385
+ key: "X-Nonce",
386
+ value: nonce
387
+ }
388
+ ];
389
+ if (sentryCspEndpoint) {
390
+ headers.push({
391
+ key: "Reporting-To",
392
+ value: `{"group":"csp-endpoint","max_age":10886400,"endpoints":[{"url":"${sentryCspEndpoint}"}],"include_subdomains":true}"`
393
+ });
394
+ headers.push({
395
+ key: "Reporting-Endpoints",
396
+ value: `csp-endpoint="${sentryCspEndpoint}"`
397
+ });
398
+ }
399
+ for (const header of headers) {
400
+ if (!header.value) {
401
+ continue;
402
+ }
403
+ response.headers.set(header.key, header.value);
404
+ }
405
+ return response;
406
+ }
407
+
408
+
409
+
410
+
411
+
412
+ exports.cspMiddleware = cspMiddleware; exports.getContentSecurityPolicy = getContentSecurityPolicy; exports.headerSourceModules = headerSourceModules; exports.staticPictureSources = staticPictureSources;