@berachain/config 0.2.7 → 0.2.8-beta.1

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 (79) hide show
  1. package/dist/bepolia.cjs +7 -1
  2. package/dist/bepolia.d.ts +4 -0
  3. package/dist/bepolia.d.ts.map +1 -1
  4. package/dist/bepolia.mjs +7 -1
  5. package/dist/chunk-6OF46MO2.mjs +135 -0
  6. package/dist/chunk-AU3LYJAB.cjs +75 -0
  7. package/dist/chunk-B2BTOQVP.cjs +25 -0
  8. package/dist/chunk-CBAAKY4N.cjs +152 -0
  9. package/dist/chunk-DEP7BIPJ.cjs +151 -0
  10. package/dist/chunk-EYYJ2UZT.cjs +10 -0
  11. package/dist/chunk-F5UIDRP6.mjs +77 -0
  12. package/dist/chunk-FEDP4MQE.cjs +135 -0
  13. package/dist/chunk-GB6ZGTAF.mjs +152 -0
  14. package/dist/chunk-KJXYSGNH.mjs +10 -0
  15. package/dist/chunk-LALEUPWL.mjs +8 -0
  16. package/dist/chunk-NF5WIUL6.cjs +77 -0
  17. package/dist/chunk-OWAB24JG.mjs +25 -0
  18. package/dist/chunk-VWRKCGMU.mjs +75 -0
  19. package/dist/chunk-XA5DMTFW.mjs +75 -0
  20. package/dist/chunk-XHPQ7VX6.mjs +151 -0
  21. package/dist/chunk-YT7WZDGI.cjs +8 -0
  22. package/dist/chunk-ZTYHPIUW.cjs +75 -0
  23. package/dist/index.cjs +10 -1
  24. package/dist/index.mjs +10 -1
  25. package/dist/internal/header-sources.cjs +409 -13
  26. package/dist/internal/header-sources.mjs +409 -13
  27. package/dist/internal/index.cjs +37 -1
  28. package/dist/internal/index.d.ts +16 -0
  29. package/dist/internal/index.d.ts.map +1 -1
  30. package/dist/internal/index.mjs +37 -1
  31. package/dist/internal/maintenance.cjs +24 -1
  32. package/dist/internal/maintenance.mjs +24 -1
  33. package/dist/internal/nextjs/index.cjs +83 -1
  34. package/dist/internal/nextjs/index.mjs +83 -1
  35. package/dist/internal/nextjs/utils/index.cjs +40 -1
  36. package/dist/internal/nextjs/utils/index.mjs +40 -1
  37. package/dist/internal/sentry/index.cjs +10 -1
  38. package/dist/internal/sentry/index.mjs +10 -1
  39. package/dist/internal/sentry/sentry.client.config.cjs +65 -1
  40. package/dist/internal/sentry/sentry.client.config.mjs +65 -1
  41. package/dist/internal/tailwind/config.d.ts +1 -1
  42. package/dist/internal/tailwind/index.cjs +237 -1
  43. package/dist/internal/tailwind/index.d.ts +1 -1
  44. package/dist/internal/tailwind/index.mjs +237 -1
  45. package/dist/internal/wagmi/index.cjs +57 -1
  46. package/dist/internal/wagmi/index.mjs +57 -1
  47. package/dist/mainnet.cjs +8 -1
  48. package/dist/mainnet.d.ts +4 -0
  49. package/dist/mainnet.d.ts.map +1 -1
  50. package/dist/mainnet.mjs +8 -1
  51. package/dist/sentry.edge.config-3Y5ABKSB.cjs +22 -0
  52. package/dist/sentry.edge.config-SIWSKDGR.mjs +22 -0
  53. package/dist/sentry.server.config-HY6I2WQ5.mjs +22 -0
  54. package/dist/sentry.server.config-ZXGUVYT6.cjs +22 -0
  55. package/dist/types.d.ts +5 -0
  56. package/dist/types.d.ts.map +1 -1
  57. package/package.json +1 -1
  58. package/dist/chunk-2GCBWNKH.mjs +0 -1
  59. package/dist/chunk-2OLL4MUY.cjs +0 -1
  60. package/dist/chunk-2RLHVELA.mjs +0 -2
  61. package/dist/chunk-5YLBFOPA.mjs +0 -1
  62. package/dist/chunk-6CZTBBJT.cjs +0 -2
  63. package/dist/chunk-DUO7UEQD.cjs +0 -1
  64. package/dist/chunk-HJ25KNL4.cjs +0 -1
  65. package/dist/chunk-HLFO7V5I.cjs +0 -1
  66. package/dist/chunk-ITASDGG4.cjs +0 -1
  67. package/dist/chunk-MS6UGFXI.mjs +0 -1
  68. package/dist/chunk-MW34QRNX.cjs +0 -1
  69. package/dist/chunk-N45AQAIZ.mjs +0 -1
  70. package/dist/chunk-O243TIHY.mjs +0 -1
  71. package/dist/chunk-QHBQ2EN5.mjs +0 -1
  72. package/dist/chunk-QYM6VRYU.mjs +0 -1
  73. package/dist/chunk-WMZLZQ6E.mjs +0 -1
  74. package/dist/chunk-X5MTSC5T.cjs +0 -1
  75. package/dist/chunk-YLWSSHG6.cjs +0 -1
  76. package/dist/sentry.edge.config-AU3IBVBN.cjs +0 -1
  77. package/dist/sentry.edge.config-PXSVFOH6.mjs +0 -1
  78. package/dist/sentry.server.config-IOCQ5KDF.cjs +0 -1
  79. package/dist/sentry.server.config-NEPRXZ2E.mjs +0 -1
@@ -1,16 +1,412 @@
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 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=t?.match(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",v),p.searchParams.set("sentry_release",x),{dsn:e[0],projectId:o,deprecatedSecret:n||void 0,cspEndpoint:p,org:c,publicKey:e[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 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])=>i[l]??[]).filter(i=>!!i?.trim())}let p=a(o("connect").concat(n.connectionSources??[]).filter(l=>{let i=m(l);return!(!i||i.trim()===""||i.startsWith(d)&&i!==d)})),R=a(o("img").concat(n.pictureSources??[])),P=a(o("frame").concat(n.frameSources??[])),E=a(o("font").concat(n.fontSources??[])),j=a(o("style").concat(n.styleSources??[])),N=a(o("worker").concat(n.workerSources??[])),U=a(o("media").concat(n.mediaSources??[])),O=e==="disabled"?a(o("script").concat(n.scriptSources??[])):a([e.nonce?`'nonce-${e.nonce}'`:"","'strict-dynamic'","'sha256-k2HGvaYkGyYZxOwKGxgE1mr06tZEDcEXNZ5mdcldK0o='",...e.sha??[]].filter(l=>l!=="")),f=`
2
- default-src 'self' ${c.join(" ")};
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-6OF46MO2.mjs";
11
+ import "../chunk-GB6ZGTAF.mjs";
12
+ import "../chunk-XHPQ7VX6.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(" ")};
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=[`${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 Z({response:t,csp:s}){let e=$()?.cspEndpoint,r=s?.dynamicScriptCsp!=="disabled"?s?.dynamicScriptCsp?.nonce??Buffer.from(crypto.randomUUID()).toString("base64"):void 0,n=process.env.NODE_ENV==="development",c=[{key:"Content-Security-Policy",value:B({...s,dynamicScriptCsp:s?.dynamicScriptCsp==="disabled"?s.dynamicScriptCsp:{...s?.dynamicScriptCsp,nonce:r},isDevelopment:n,cspReporting:e?.toString()})},{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}export{Z as cspMiddleware,B as getContentSecurityPolicy,D as headerSourceModules,Y as staticPictureSources};
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
+ };
@@ -1 +1,37 @@
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
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+ var _chunkFEDP4MQEcjs = require('../chunk-FEDP4MQE.cjs');
6
+ require('../chunk-CBAAKY4N.cjs');
7
+ require('../chunk-DEP7BIPJ.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 = _chunkFEDP4MQEcjs.appConfig; exports.chainConfigs = _chunkFEDP4MQEcjs.chainConfigs; exports.chainId = _chunkAU3LYJABcjs.defaultChainId; exports.config = _chunkFEDP4MQEcjs.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;
@@ -36,6 +36,10 @@ export declare const chainConfigs: {
36
36
  readonly uri: string;
37
37
  readonly name: "Berachain Beep";
38
38
  };
39
+ readonly onramp: {
40
+ uri: string;
41
+ name: string;
42
+ } | null;
39
43
  readonly bex: {
40
44
  readonly chainName: "BERACHAIN";
41
45
  readonly vault: "0x4Be03f781C497A489E3cB0287833452cA9B9E80B";
@@ -156,6 +160,10 @@ export declare const chainConfigs: {
156
160
  readonly name: "Berachain Beep";
157
161
  readonly uri: string;
158
162
  };
163
+ readonly onramp: {
164
+ readonly name: "Berachain Onramp";
165
+ readonly uri: string;
166
+ };
159
167
  readonly bex: {
160
168
  readonly chainName: "BEPOLIA";
161
169
  readonly vault: "0x708cA656b68A6b7384a488A36aD33505a77241FE";
@@ -386,6 +394,10 @@ export declare const config: {
386
394
  readonly name: "Berachain Beep";
387
395
  readonly uri: string;
388
396
  };
397
+ readonly onramp: {
398
+ readonly name: "Berachain Onramp";
399
+ readonly uri: string;
400
+ };
389
401
  readonly bex: {
390
402
  readonly chainName: "BEPOLIA";
391
403
  readonly vault: "0x708cA656b68A6b7384a488A36aD33505a77241FE";
@@ -512,6 +524,10 @@ export declare const config: {
512
524
  readonly uri: string;
513
525
  readonly name: "Berachain Beep";
514
526
  };
527
+ readonly onramp: {
528
+ uri: string;
529
+ name: string;
530
+ } | null;
515
531
  readonly bex: {
516
532
  readonly chainName: "BERACHAIN";
517
533
  readonly vault: "0x4Be03f781C497A489E3cB0287833452cA9B9E80B";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,CAAC;AAQrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGf,CAAC;AAgIX,eAAO,MAAM,SAAS;;iBArHlB,MAAM;YACJ;;;eAGG;qBACH,QAAQ;qBAGR,iBAAiB,EAAE,iDAAiD;qBACpE,IAAI;;iBAIN,OAAO;YACL;;;eAGG;qBACH,mBAAmB,EAAwC,MAAM;YACjE;;;;eAIG;qBACH,IAAI,EAA8B,MAAM;qBACxC,OAAO,EAAiC,MAAM;YAC9C;;;;eAIG;qBACH,YAAY,EAAuC,MAAM;YACzD;;;;eAIG;qBACH,UAAU,EAAqC,MAAM;qBACrD,SAAS,EAAmC,MAAM;qBAClD,KAAK,EAA+B,MAAM;qBAC1C,SAAS,EAAqC,MAAM;qBACpD,IAAI,EAA8B,MAAM;qBACxC,SAAS,EAAmC,MAAM;;;;iBAKpD,OAAO;qBACL,MAAM;qBACN,OAAO;qBAGP,MAAM;;iBAER,KAAK,EAAE,4BAA4B;iBACnC,aAAa,EAAE,kDAAkD;iBACjE,QAAQ;iBAER,SAAS,EAAE,kCAAkC;iBAC7C,OAAO,EAAE,gCAAgC;iBACzC,IAAI,EAAE,4BAA4B;iBAClC,OAAO,EAAE,gCAAgC;iBACzC,QAAQ,EAAE,iCAAiC;iBAC3C,IAAI,EAAE,6BAA6B;iBACnC,IAAI,EAAE,6BAA6B;iBACnC,UAAU,EAAE,mCAAmC;iBAC/C,OAAO,EAAE,gCAAgC;iBACzC,OAAO,EAAE,yBAAyB;iBAClC,QAAQ,EAAE,8BAA8B;iBACxC,OAAO,EAAE,sCAAsC;iBAC/C,MAAM,EAAE,8BAA8B;iBACtC,UAAU,EAAE,yBAAyB;;;QAGrC;;;WAGG;iBACH,2BAA2B,EAAE,IAAI;QACjC;;;WAGG;iBACH,kBAAkB,EAAE,IAAI;QAExB;;;WAGG;iBACH,yCAAyC;;;;;;;;;;QAqB3C;;WAEG;;;;CAQK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAET,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,CAAC;AAQrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGf,CAAC;AAgIX,eAAO,MAAM,SAAS;;iBArHlB,MAAM;YACJ;;;eAGG;qBACH,QAAQ;qBAGR,iBAAiB,EAAE,iDAAiD;qBACpE,IAAI;;iBAIN,OAAO;YACL;;;eAGG;qBACH,mBAAmB,EAAwC,MAAM;YACjE;;;;eAIG;qBACH,IAAI,EAA8B,MAAM;qBACxC,OAAO,EAAiC,MAAM;YAC9C;;;;eAIG;qBACH,YAAY,EAAuC,MAAM;YACzD;;;;eAIG;qBACH,UAAU,EAAqC,MAAM;qBACrD,SAAS,EAAmC,MAAM;qBAClD,KAAK,EAA+B,MAAM;qBAC1C,SAAS,EAAqC,MAAM;qBACpD,IAAI,EAA8B,MAAM;qBACxC,SAAS,EAAmC,MAAM;;;;iBAKpD,OAAO;qBACL,MAAM;qBACN,OAAO;qBAGP,MAAM;;iBAER,KAAK,EAAE,4BAA4B;iBACnC,aAAa,EAAE,kDAAkD;iBACjE,QAAQ;iBAER,SAAS,EAAE,kCAAkC;iBAC7C,OAAO,EAAE,gCAAgC;iBACzC,IAAI,EAAE,4BAA4B;iBAClC,OAAO,EAAE,gCAAgC;iBACzC,QAAQ,EAAE,iCAAiC;iBAC3C,IAAI,EAAE,6BAA6B;iBACnC,IAAI,EAAE,6BAA6B;iBACnC,UAAU,EAAE,mCAAmC;iBAC/C,OAAO,EAAE,gCAAgC;iBACzC,OAAO,EAAE,yBAAyB;iBAClC,QAAQ,EAAE,8BAA8B;iBACxC,OAAO,EAAE,sCAAsC;iBAC/C,MAAM,EAAE,8BAA8B;iBACtC,UAAU,EAAE,yBAAyB;;;QAGrC;;;WAGG;iBACH,2BAA2B,EAAE,IAAI;QACjC;;;WAGG;iBACH,kBAAkB,EAAE,IAAI;QAExB;;;WAGG;iBACH,yCAAyC;;;;;;;;;;QAqB3C;;WAEG;;;;CAQK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAET,CAAC"}
@@ -1 +1,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
+ import {
2
+ appConfig,
3
+ chainConfigs,
4
+ config
5
+ } from "../chunk-6OF46MO2.mjs";
6
+ import "../chunk-GB6ZGTAF.mjs";
7
+ import "../chunk-XHPQ7VX6.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 +1,24 @@
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
+ "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 +1,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};
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
+ };