@berachain/config 0.2.8-beta.0 → 0.2.8

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 +1 -7
  2. package/dist/bepolia.mjs +1 -7
  3. package/dist/chunk-2GCBWNKH.mjs +1 -0
  4. package/dist/chunk-2OLL4MUY.cjs +1 -0
  5. package/dist/chunk-2RLHVELA.mjs +2 -0
  6. package/dist/chunk-5YLBFOPA.mjs +1 -0
  7. package/dist/chunk-6CZTBBJT.cjs +2 -0
  8. package/dist/chunk-DUO7UEQD.cjs +1 -0
  9. package/dist/chunk-HJ25KNL4.cjs +1 -0
  10. package/dist/chunk-HLFO7V5I.cjs +1 -0
  11. package/dist/chunk-ITASDGG4.cjs +1 -0
  12. package/dist/chunk-MS6UGFXI.mjs +1 -0
  13. package/dist/chunk-MW34QRNX.cjs +1 -0
  14. package/dist/chunk-N45AQAIZ.mjs +1 -0
  15. package/dist/chunk-O243TIHY.mjs +1 -0
  16. package/dist/chunk-QHBQ2EN5.mjs +1 -0
  17. package/dist/chunk-QYM6VRYU.mjs +1 -0
  18. package/dist/chunk-WMZLZQ6E.mjs +1 -0
  19. package/dist/chunk-X5MTSC5T.cjs +1 -0
  20. package/dist/chunk-YLWSSHG6.cjs +1 -0
  21. package/dist/index.cjs +1 -10
  22. package/dist/index.mjs +1 -10
  23. package/dist/internal/header-sources.cjs +13 -409
  24. package/dist/internal/header-sources.d.ts +11 -1
  25. package/dist/internal/header-sources.d.ts.map +1 -1
  26. package/dist/internal/header-sources.mjs +13 -409
  27. package/dist/internal/index.cjs +1 -37
  28. package/dist/internal/index.mjs +1 -37
  29. package/dist/internal/maintenance.cjs +1 -24
  30. package/dist/internal/maintenance.mjs +1 -24
  31. package/dist/internal/nextjs/index.cjs +1 -83
  32. package/dist/internal/nextjs/index.mjs +1 -83
  33. package/dist/internal/nextjs/utils/index.cjs +1 -40
  34. package/dist/internal/nextjs/utils/index.mjs +1 -40
  35. package/dist/internal/sentry/index.cjs +1 -10
  36. package/dist/internal/sentry/index.mjs +1 -10
  37. package/dist/internal/sentry/sentry.client.config.cjs +1 -65
  38. package/dist/internal/sentry/sentry.client.config.mjs +1 -65
  39. package/dist/internal/tailwind/index.cjs +1 -237
  40. package/dist/internal/tailwind/index.mjs +1 -237
  41. package/dist/internal/wagmi/index.cjs +1 -57
  42. package/dist/internal/wagmi/index.mjs +1 -57
  43. package/dist/mainnet.cjs +1 -8
  44. package/dist/mainnet.mjs +1 -8
  45. package/dist/sentry.edge.config-AU3IBVBN.cjs +1 -0
  46. package/dist/sentry.edge.config-PXSVFOH6.mjs +1 -0
  47. package/dist/sentry.server.config-IOCQ5KDF.cjs +1 -0
  48. package/dist/sentry.server.config-NEPRXZ2E.mjs +1 -0
  49. package/package.json +1 -1
  50. package/dist/chunk-4AMLYLHZ.cjs +0 -144
  51. package/dist/chunk-4DGMTEOQ.mjs +0 -144
  52. package/dist/chunk-AU3LYJAB.cjs +0 -75
  53. package/dist/chunk-B2BTOQVP.cjs +0 -25
  54. package/dist/chunk-EYYJ2UZT.cjs +0 -10
  55. package/dist/chunk-F5UIDRP6.mjs +0 -77
  56. package/dist/chunk-G446M2AV.cjs +0 -135
  57. package/dist/chunk-GFHZDTK3.mjs +0 -135
  58. package/dist/chunk-KJXYSGNH.mjs +0 -10
  59. package/dist/chunk-LALEUPWL.mjs +0 -8
  60. package/dist/chunk-MNIORAK3.cjs +0 -148
  61. package/dist/chunk-NF5WIUL6.cjs +0 -77
  62. package/dist/chunk-OWAB24JG.mjs +0 -25
  63. package/dist/chunk-UKXTPLZ5.mjs +0 -148
  64. package/dist/chunk-VWRKCGMU.mjs +0 -75
  65. package/dist/chunk-XA5DMTFW.mjs +0 -75
  66. package/dist/chunk-YT7WZDGI.cjs +0 -8
  67. package/dist/chunk-ZTYHPIUW.cjs +0 -75
  68. package/dist/sentry.edge.config-3Y5ABKSB.cjs +0 -22
  69. package/dist/sentry.edge.config-SIWSKDGR.mjs +0 -22
  70. package/dist/sentry.server.config-HY6I2WQ5.mjs +0 -22
  71. package/dist/sentry.server.config-ZXGUVYT6.cjs +0 -22
@@ -24,7 +24,7 @@ interface HeaderSources {
24
24
  }
25
25
  declare const modules: {
26
26
  readonly berachain: {
27
- readonly connect: ["https://*.berachain.com/", "https://*.berachain-staging.com/" | null, "https://raw.githubusercontent.com/berachain/metadata/", "https://imagedelivery.net/qNj7Q3MCke89zoKzav7eDQ/", "https://*.quiknode.pro", string | null, string, string, string, string, string | undefined, "https://api.routescan.io/v2/network/"];
27
+ readonly connect: ["https://*.berachain.com/", "https://*.berachain-staging.com/" | null, "https://raw.githubusercontent.com/berachain/metadata/", "https://imagedelivery.net/qNj7Q3MCke89zoKzav7eDQ/", "https://*.quiknode.pro/", string | null, string, string, string, string, string | undefined, "https://api.routescan.io/v2/network/"];
28
28
  readonly img: ["https://imagedelivery.net/qNj7Q3MCke89zoKzav7eDQ/", "https://raw.githubusercontent.com/berachain/metadata/"];
29
29
  };
30
30
  readonly beranames: {
@@ -145,5 +145,15 @@ export declare function cspMiddleware({ response, csp, }: {
145
145
  /** per-request CSP customization — toggle modules off and/or append extra sources per directive */
146
146
  csp?: CspOptions;
147
147
  }): NextResponse<unknown>;
148
+ /**
149
+ * Builds static security headers. Dynamic script CSP is disabled by default;
150
+ * callers must provide their own nonce to opt into a nonce-based policy.
151
+ */
152
+ export declare function cspHeaders(
153
+ /** static CSP customization — toggle modules off and/or append extra sources per directive */
154
+ csp?: CspOptions): {
155
+ key: string;
156
+ value: string;
157
+ }[];
148
158
  export {};
149
159
  //# sourceMappingURL=header-sources.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-sources.d.ts","sourceRoot":"","sources":["../../src/internal/header-sources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"header-sources.d.ts","sourceRoot":"","sources":["../../src/internal/header-sources.ts"],"names":[],"mappings":"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"}
@@ -1,412 +1,16 @@
1
- import {
2
- sentryEnvironment,
3
- sentryRelease
4
- } from "../chunk-OWAB24JG.mjs";
5
- import {
6
- getUriFromLink
7
- } from "../chunk-LALEUPWL.mjs";
8
- import {
9
- chainConfigs
10
- } from "../chunk-GFHZDTK3.mjs";
11
- import "../chunk-UKXTPLZ5.mjs";
12
- import "../chunk-4DGMTEOQ.mjs";
13
- import {
14
- alchemyJsonRpcUrl,
15
- defaultChainId,
16
- goldskyBaseUrl,
17
- imageBaseUrl,
18
- isProduction,
19
- jsonRpcUrl,
20
- publicJsonRpcUrl
21
- } from "../chunk-VWRKCGMU.mjs";
22
- import "../chunk-KJXYSGNH.mjs";
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 = dsn?.match(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", sentryEnvironment);
105
- cspEndpoint.searchParams.set("sentry_release", 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 = chainConfigs[defaultChainId];
118
- var modules = {
119
- berachain: {
120
- connect: [
121
- "https://*.berachain.com/",
122
- // staging hosts are only reachable outside production
123
- isProduction ? null : "https://*.berachain-staging.com/",
124
- "https://raw.githubusercontent.com/berachain/metadata/",
125
- `${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
- getUriFromLink(config.beep),
132
- getUriFromLink(config.api),
133
- jsonRpcUrl,
134
- publicJsonRpcUrl,
135
- 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
- `${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]) => sources[directive] ?? []).filter((url) => Boolean(url?.trim()));
284
- }
285
- const connectionSources = dedupeCspSources(
286
- collect("connect").concat(args.connectionSources ?? []).filter((link) => {
287
- const url = getUriFromLink(link);
288
- if (!url || url.trim() === "") {
289
- return false;
290
- }
291
- if (url.startsWith(goldskyBaseUrl) && url !== goldskyBaseUrl) {
292
- return false;
293
- }
294
- return true;
295
- })
296
- );
297
- const pictureSources = dedupeCspSources(
298
- collect("img").concat(args.pictureSources ?? [])
299
- );
300
- const frameSources = dedupeCspSources(
301
- collect("frame").concat(args.frameSources ?? [])
302
- );
303
- const fontSources = dedupeCspSources(
304
- collect("font").concat(args.fontSources ?? [])
305
- );
306
- const styleSources = dedupeCspSources(
307
- collect("style").concat(args.styleSources ?? [])
308
- );
309
- const workerSources = dedupeCspSources(
310
- collect("worker").concat(args.workerSources ?? [])
311
- );
312
- const mediaSources = dedupeCspSources(
313
- collect("media").concat(args.mediaSources ?? [])
314
- );
315
- const scriptSources = dynamicScriptCsp === "disabled" ? dedupeCspSources(collect("script").concat(args.scriptSources ?? [])) : dedupeCspSources(
316
- [
317
- dynamicScriptCsp.nonce ? `'nonce-${dynamicScriptCsp.nonce}'` : "",
318
- "'strict-dynamic'",
319
- "'sha256-k2HGvaYkGyYZxOwKGxgE1mr06tZEDcEXNZ5mdcldK0o='",
320
- ...dynamicScriptCsp.sha ?? []
321
- ].filter((source) => source !== "")
322
- );
323
- let cspHeader = `
324
- default-src 'self' ${defaultSrc.join(" ")};
1
+ import{a as v,c as x}from"../chunk-N45AQAIZ.mjs";import{a as m}from"../chunk-O243TIHY.mjs";import{a as w}from"../chunk-QHBQ2EN5.mjs";import"../chunk-QYM6VRYU.mjs";import"../chunk-2GCBWNKH.mjs";import{a as g,b as y,g as h,h as d,j as b,k as S,l as k}from"../chunk-2RLHVELA.mjs";import"../chunk-MS6UGFXI.mjs";function _(t){let e=t.indexOf("://");if(e===-1)return;let s=t.slice(0,e).toLowerCase(),o=t.slice(e+3),n=o.indexOf("/"),r=(n===-1?o:o.slice(0,n)).toLowerCase(),c=n===-1?"/":o.slice(n);if(r)return{raw:t,scheme:s,host:r,path:c}}function M(t,e){if(!t.startsWith("*."))return t===e;let s=t.slice(1);return e.endsWith(s)&&e.length>s.length}function C(t,e){return t.scheme!==e.scheme||!M(t.host,e.host)?!1:t.path.endsWith("/")?e.path.startsWith(t.path):e.path===t.path}function a(t){let e=t.map(s=>({raw:s,parsed:_(s)}));return e.filter(({parsed:s},o)=>s?!e.some(({parsed:n},r)=>o===r||!n||!C(n,s)?!1:C(s,n)?r<o:!0):!0).map(({raw:s})=>s)}function $({dsn:t=process.env.NEXT_PUBLIC_SENTRY_DSN}={}){if(!t)return;let e=/^(?:https:\/\/)([A-z0-9]{32})(?::{0,1})([A-z0-9]*)(?:@)(o[a-z0-9]+)(?:\.ingest\.us\.sentry\.io)\/([0-9]{16})/i,s=t?.match(e);if(!s)return;let[,o,n,r,c]=s,p=new URL(`https://${r}.ingest.us.sentry.io/api/${c}/security/?sentry_key=${o}`);return p.searchParams.set("sentry_key",o),p.searchParams.set("sentry_env",v),p.searchParams.set("sentry_release",x),{dsn:s[0],projectId:c,deprecatedSecret:n||void 0,cspEndpoint:p,org:r,publicKey:s[1]}}var u=w[g],z={berachain:{connect:["https://*.berachain.com/",y?null:"https://*.berachain-staging.com/","https://raw.githubusercontent.com/berachain/metadata/",`${h}/`,"https://*.quiknode.pro/",u.pol.bribeBoostApi,m(u.beep),m(u.api),S,b,k,"https://api.routescan.io/v2/network/"],img:[`${h}/`,"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=z;function H({isDevelopment:t,cspReporting:e,dynamicScriptCsp:s={},modules:o={},...n}){let r=[];function c(l){return Object.entries(D).filter(([i])=>o[i]!==!1).flatMap(([,i])=>i[l]??[]).filter(i=>!!i?.trim())}let p=a(c("connect").concat(n.connectionSources??[]).filter(l=>{let i=m(l);return!(!i||i.trim()===""||i.startsWith(d)&&i!==d)})),R=a(c("img").concat(n.pictureSources??[])),P=a(c("frame").concat(n.frameSources??[])),E=a(c("font").concat(n.fontSources??[])),N=a(c("style").concat(n.styleSources??[])),j=a(c("worker").concat(n.workerSources??[])),O=a(c("media").concat(n.mediaSources??[])),U=s==="disabled"?a(c("script").concat(n.scriptSources??[])):a([s.nonce?`'nonce-${s.nonce}'`:"","'strict-dynamic'","'sha256-k2HGvaYkGyYZxOwKGxgE1mr06tZEDcEXNZ5mdcldK0o='",...s.sha??[]].filter(l=>l!=="")),f=`
2
+ default-src 'self' ${r.join(" ")};
325
3
  base-uri 'self';
326
- frame-src 'self' ${frameSources.join(" ")};
4
+ frame-src 'self' ${P.join(" ")};
327
5
  frame-ancestors 'self' https://*.posthog.com;
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};
6
+ script-src 'self' ${U.concat([t?"'unsafe-eval'":""]).join(" ")};
7
+ worker-src 'self' blob: data: ${j.join(" ")};
8
+ font-src 'self' ${E.join(" ")};
9
+ style-src 'self' ${N.join(" ")} 'unsafe-inline';
10
+ img-src 'self' data: ${R.join(" ")};
11
+ connect-src 'self' ${p.join(" ")};
12
+ media-src 'self' ${O.join(" ")};
13
+ `;return e&&(f+=`
14
+ report-uri ${e};
339
15
  report-to csp-endpoint;
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
- `${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 = getSentryKeys()?.cspEndpoint;
361
- const nonce = csp?.dynamicScriptCsp !== "disabled" ? csp?.dynamicScriptCsp?.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: csp?.dynamicScriptCsp === "disabled" ? csp.dynamicScriptCsp : {
369
- ...csp?.dynamicScriptCsp,
370
- nonce
371
- },
372
- isDevelopment,
373
- cspReporting: sentryCspEndpoint?.toString()
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
- export {
408
- cspMiddleware,
409
- getContentSecurityPolicy,
410
- headerSourceModules,
411
- staticPictureSources
412
- };
16
+ `),f.replace(/\s{2,}/g," ").trim()}var Z=[`${h}/`,"https://raw.githubusercontent.com/berachain/metadata/","https://assets.coingecko.com/coins/images/","https://berachain.ghost.io/content/images/"].filter(t=>!(!t||t.trim()===""));function G({response:t,csp:e}){let s=e?.dynamicScriptCsp!=="disabled"?e?.dynamicScriptCsp?.nonce??Buffer.from(crypto.randomUUID()).toString("base64"):void 0,o=B({...e,dynamicScriptCsp:e?.dynamicScriptCsp==="disabled"?e.dynamicScriptCsp:{...e?.dynamicScriptCsp,nonce:s}});for(let n of o)n.value&&t.headers.set(n.key,n.value);return t}function B(t){let e=$()?.cspEndpoint,s=t?.dynamicScriptCsp??"disabled",o=s==="disabled"?void 0:s.nonce,n=process.env.NODE_ENV==="development",r=[{key:"Content-Security-Policy",value:H({...t,dynamicScriptCsp:s,isDevelopment:n,cspReporting:e?.toString()})},{key:"X-Frame-Options",value:"DENY"},{key:"X-Content-Type-Options",value:"nosniff"}];return o&&r.push({key:"X-Nonce",value:o}),e&&(r.push({key:"Report-To",value:JSON.stringify({group:"csp-endpoint",max_age:10886400,endpoints:[{url:e}],include_subdomains:!0})}),r.push({key:"Reporting-Endpoints",value:`csp-endpoint="${e}"`})),r}export{B as cspHeaders,G as cspMiddleware,H as getContentSecurityPolicy,D as headerSourceModules,Z as staticPictureSources};
@@ -1,37 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
-
5
- var _chunkG446M2AVcjs = require('../chunk-G446M2AV.cjs');
6
- require('../chunk-MNIORAK3.cjs');
7
- require('../chunk-4AMLYLHZ.cjs');
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
- var _chunkAU3LYJABcjs = require('../chunk-AU3LYJAB.cjs');
19
-
20
-
21
- var _chunkEYYJ2UZTcjs = require('../chunk-EYYJ2UZT.cjs');
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
- exports.ChainId = _chunkEYYJ2UZTcjs.ChainId; exports.alchemyJsonRpcUrl = _chunkAU3LYJABcjs.alchemyJsonRpcUrl; exports.appConfig = _chunkG446M2AVcjs.appConfig; exports.chainConfigs = _chunkG446M2AVcjs.chainConfigs; exports.chainId = _chunkAU3LYJABcjs.defaultChainId; exports.config = _chunkG446M2AVcjs.config; exports.currentDapp = _chunkAU3LYJABcjs.currentDapp; exports.defaultChainId = _chunkAU3LYJABcjs.defaultChainId; exports.getRpcUrls = _chunkAU3LYJABcjs.getRpcUrls; exports.goldskyBaseUrl = _chunkAU3LYJABcjs.goldskyBaseUrl; exports.imageBaseUrl = _chunkAU3LYJABcjs.imageBaseUrl; exports.jsonRpcUrl = _chunkAU3LYJABcjs.jsonRpcUrl; exports.privateRcpUrl = _chunkAU3LYJABcjs.privateRcpUrl; exports.publicJsonRpcUrl = _chunkAU3LYJABcjs.publicJsonRpcUrl;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkX5MTSC5Tcjs = require('../chunk-X5MTSC5T.cjs');require('../chunk-MW34QRNX.cjs');require('../chunk-HJ25KNL4.cjs');var _chunk6CZTBBJTcjs = require('../chunk-6CZTBBJT.cjs');var _chunk2OLL4MUYcjs = require('../chunk-2OLL4MUY.cjs');exports.ChainId = _chunk2OLL4MUYcjs.a; exports.alchemyJsonRpcUrl = _chunk6CZTBBJTcjs.l; exports.appConfig = _chunkX5MTSC5Tcjs.b; exports.chainConfigs = _chunkX5MTSC5Tcjs.a; exports.chainId = _chunk6CZTBBJTcjs.a; exports.config = _chunkX5MTSC5Tcjs.c; exports.currentDapp = _chunk6CZTBBJTcjs.f; exports.defaultChainId = _chunk6CZTBBJTcjs.a; exports.getRpcUrls = _chunk6CZTBBJTcjs.i; exports.goldskyBaseUrl = _chunk6CZTBBJTcjs.h; exports.imageBaseUrl = _chunk6CZTBBJTcjs.g; exports.jsonRpcUrl = _chunk6CZTBBJTcjs.k; exports.privateRcpUrl = _chunk6CZTBBJTcjs.m; exports.publicJsonRpcUrl = _chunk6CZTBBJTcjs.j;
@@ -1,37 +1 @@
1
- import {
2
- appConfig,
3
- chainConfigs,
4
- config
5
- } from "../chunk-GFHZDTK3.mjs";
6
- import "../chunk-UKXTPLZ5.mjs";
7
- import "../chunk-4DGMTEOQ.mjs";
8
- import {
9
- alchemyJsonRpcUrl,
10
- currentDapp,
11
- defaultChainId,
12
- getRpcUrls,
13
- goldskyBaseUrl,
14
- imageBaseUrl,
15
- jsonRpcUrl,
16
- privateRcpUrl,
17
- publicJsonRpcUrl
18
- } from "../chunk-VWRKCGMU.mjs";
19
- import {
20
- ChainId
21
- } from "../chunk-KJXYSGNH.mjs";
22
- export {
23
- ChainId,
24
- alchemyJsonRpcUrl,
25
- appConfig,
26
- chainConfigs,
27
- defaultChainId as chainId,
28
- config,
29
- currentDapp,
30
- defaultChainId,
31
- getRpcUrls,
32
- goldskyBaseUrl,
33
- imageBaseUrl,
34
- jsonRpcUrl,
35
- privateRcpUrl,
36
- publicJsonRpcUrl
37
- };
1
+ import{a as k,b as l,c as m}from"../chunk-QHBQ2EN5.mjs";import"../chunk-QYM6VRYU.mjs";import"../chunk-2GCBWNKH.mjs";import{a as b,f as c,g as d,h as e,i as f,j as g,k as h,l as i,m as j}from"../chunk-2RLHVELA.mjs";import{a}from"../chunk-MS6UGFXI.mjs";export{a as ChainId,i as alchemyJsonRpcUrl,l as appConfig,k as chainConfigs,b as chainId,m as config,c as currentDapp,b as defaultChainId,f as getRpcUrls,e as goldskyBaseUrl,d as imageBaseUrl,h as jsonRpcUrl,j as privateRcpUrl,g as publicJsonRpcUrl};
@@ -1,24 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/internal/maintenance.ts
2
- var _server = require('next/server');
3
- var DEFAULT_MAINTENANCE_EXEMPT_PATHS = [
4
- "/maintenance",
5
- "/_next",
6
- "/api"
7
- ];
8
- function checkMaintenanceMode(req, config) {
9
- const {
10
- isMaintenance,
11
- exemptPaths = DEFAULT_MAINTENANCE_EXEMPT_PATHS,
12
- maintenancePath = "/maintenance"
13
- } = config;
14
- if (isMaintenance && !exemptPaths.some((path) => req.nextUrl.pathname.startsWith(path))) {
15
- return _server.NextResponse.redirect(new URL(maintenancePath, req.url), {
16
- status: 307
17
- });
18
- }
19
- return null;
20
- }
21
-
22
-
23
-
24
- exports.DEFAULT_MAINTENANCE_EXEMPT_PATHS = DEFAULT_MAINTENANCE_EXEMPT_PATHS; exports.checkMaintenanceMode = checkMaintenanceMode;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _server = require('next/server');var o=["/maintenance","/_next","/api"];function p(e,n){let{isMaintenance:t,exemptPaths:a=o,maintenancePath:i="/maintenance"}=n;return t&&!a.some(s=>e.nextUrl.pathname.startsWith(s))?_server.NextResponse.redirect(new URL(i,e.url),{status:307}):null}exports.DEFAULT_MAINTENANCE_EXEMPT_PATHS = o; exports.checkMaintenanceMode = p;
@@ -1,24 +1 @@
1
- // src/internal/maintenance.ts
2
- import { NextResponse } from "next/server";
3
- var DEFAULT_MAINTENANCE_EXEMPT_PATHS = [
4
- "/maintenance",
5
- "/_next",
6
- "/api"
7
- ];
8
- function checkMaintenanceMode(req, config) {
9
- const {
10
- isMaintenance,
11
- exemptPaths = DEFAULT_MAINTENANCE_EXEMPT_PATHS,
12
- maintenancePath = "/maintenance"
13
- } = config;
14
- if (isMaintenance && !exemptPaths.some((path) => req.nextUrl.pathname.startsWith(path))) {
15
- return NextResponse.redirect(new URL(maintenancePath, req.url), {
16
- status: 307
17
- });
18
- }
19
- return null;
20
- }
21
- export {
22
- DEFAULT_MAINTENANCE_EXEMPT_PATHS,
23
- checkMaintenanceMode
24
- };
1
+ import{NextResponse as c}from"next/server";var o=["/maintenance","/_next","/api"];function p(e,n){let{isMaintenance:t,exemptPaths:a=o,maintenancePath:i="/maintenance"}=n;return t&&!a.some(s=>e.nextUrl.pathname.startsWith(s))?c.redirect(new URL(i,e.url),{status:307}):null}export{o as DEFAULT_MAINTENANCE_EXEMPT_PATHS,p as checkMaintenanceMode};