@nuxt/scripts 1.0.0-beta.30 → 1.0.0-beta.31
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.
- package/dist/client/200.html +1 -1
- package/dist/client/404.html +1 -1
- package/dist/client/_nuxt/{CYlYSSNW.js → 6CwTUC2b.js} +1 -1
- package/dist/client/_nuxt/{D5FIkDae.js → B71AlSZ1.js} +1 -1
- package/dist/client/_nuxt/{AwAKM0sG.js → BYGJV5dd.js} +1 -1
- package/dist/client/_nuxt/{Bl23o3st.js → V4W-T8W6.js} +4 -4
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/70b59a3e-a025-4a77-a25a-dfadf5b1749d.json +1 -0
- package/dist/client/index.html +1 -1
- package/dist/module.d.mts +2 -2
- package/dist/module.d.ts +2 -2
- package/dist/module.json +1 -1
- package/dist/module.mjs +43 -70
- package/dist/registry.mjs +9 -9
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.d.vue.ts +5 -2
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue +11 -2
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsMarkerClusterer.vue.d.ts +5 -2
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.d.vue.ts +14 -0
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue +50 -1
- package/dist/runtime/components/GoogleMaps/ScriptGoogleMapsOverlayView.vue.d.ts +14 -0
- package/dist/runtime/server/proxy-handler.js +25 -35
- package/dist/shared/scripts.D7e2ENu6.mjs +211 -0
- package/dist/stats.mjs +6 -14
- package/dist/types-source.mjs +15 -1
- package/package.json +2 -2
- package/dist/client/_nuxt/builds/meta/f0b4dd20-8496-4003-b7a3-05cbae515923.json +0 -1
- package/dist/shared/scripts.ViOoYQXH.mjs +0 -381
|
@@ -1,381 +0,0 @@
|
|
|
1
|
-
const GA_COLLECT_RE = /([\w$])?"https:\/\/"\+\(.*?\)\+"\.google-analytics\.com\/g\/collect"/g;
|
|
2
|
-
const GA_ANALYTICS_COLLECT_RE = /([\w$])?"https:\/\/"\+\(.*?\)\+"\.analytics\.google\.com\/g\/collect"/g;
|
|
3
|
-
const FATHOM_SELF_HOSTED_RE = /\.src\.indexOf\("cdn\.usefathom\.com"\)\s*<\s*0/;
|
|
4
|
-
const RYBBIT_HOST_SPLIT_RE = /\w+\.split\(["']\/script\.js["']\)\[0\]/g;
|
|
5
|
-
const PRIVACY_NONE = { ip: false, userAgent: false, language: false, screen: false, timezone: false, hardware: false };
|
|
6
|
-
const PRIVACY_FULL = { ip: true, userAgent: true, language: true, screen: true, timezone: true, hardware: true };
|
|
7
|
-
const PRIVACY_HEATMAP = { ip: true, userAgent: false, language: true, screen: false, timezone: false, hardware: true };
|
|
8
|
-
const PRIVACY_IP_ONLY = { ip: true, userAgent: false, language: false, screen: false, timezone: false, hardware: false };
|
|
9
|
-
function deriveRewrites(domains, proxyPrefix) {
|
|
10
|
-
return domains.map(([domain, alias]) => ({
|
|
11
|
-
from: domain,
|
|
12
|
-
to: `${proxyPrefix}/${alias}`
|
|
13
|
-
}));
|
|
14
|
-
}
|
|
15
|
-
function deriveRoutes(domains, proxyPrefix) {
|
|
16
|
-
const routes = {};
|
|
17
|
-
const seen = /* @__PURE__ */ new Set();
|
|
18
|
-
for (const [domain, alias] of domains) {
|
|
19
|
-
if (seen.has(alias))
|
|
20
|
-
continue;
|
|
21
|
-
seen.add(alias);
|
|
22
|
-
routes[`${proxyPrefix}/${alias}/**`] = { proxy: `https://${domain}/**` };
|
|
23
|
-
}
|
|
24
|
-
return routes;
|
|
25
|
-
}
|
|
26
|
-
function fromDomains(domains, proxyPrefix, opts) {
|
|
27
|
-
const { extraRewrites, ...rest } = opts;
|
|
28
|
-
const rewrites = deriveRewrites(domains, proxyPrefix);
|
|
29
|
-
if (extraRewrites) {
|
|
30
|
-
for (const r of extraRewrites)
|
|
31
|
-
rewrites.push({ from: r.from, to: `${proxyPrefix}/${r.to}` });
|
|
32
|
-
}
|
|
33
|
-
return { rewrite: rewrites, routes: deriveRoutes(domains, proxyPrefix), ...rest };
|
|
34
|
-
}
|
|
35
|
-
function buildProxyConfig(proxyPrefix) {
|
|
36
|
-
return {
|
|
37
|
-
googleAnalytics: fromDomains(
|
|
38
|
-
[
|
|
39
|
-
["www.google-analytics.com", "ga"],
|
|
40
|
-
["analytics.google.com", "ga"],
|
|
41
|
-
["stats.g.doubleclick.net", "ga-dc"],
|
|
42
|
-
["pagead2.googlesyndication.com", "ga-syn"],
|
|
43
|
-
["www.googleadservices.com", "ga-ads"],
|
|
44
|
-
["googleads.g.doubleclick.net", "ga-gads"]
|
|
45
|
-
],
|
|
46
|
-
proxyPrefix,
|
|
47
|
-
{
|
|
48
|
-
// GA4: screen/timezone/UA needed for device, time, and OS reports; rest anonymized safely
|
|
49
|
-
privacy: PRIVACY_HEATMAP,
|
|
50
|
-
extraRewrites: [
|
|
51
|
-
// Modern gtag.js uses www.google.com/g/collect
|
|
52
|
-
{ from: "www.google.com/g/collect", to: "ga/g/collect" },
|
|
53
|
-
// Suffix patterns for dynamically constructed URLs
|
|
54
|
-
{ from: ".google-analytics.com/g/collect", to: "ga/g/collect" },
|
|
55
|
-
{ from: ".analytics.google.com/g/collect", to: "ga/g/collect" },
|
|
56
|
-
// Full domain + path patterns
|
|
57
|
-
{ from: "www.google-analytics.com/g/collect", to: "ga/g/collect" },
|
|
58
|
-
{ from: "analytics.google.com/g/collect", to: "ga/g/collect" },
|
|
59
|
-
// DoubleClick collect endpoint
|
|
60
|
-
{ from: "stats.g.doubleclick.net/g/collect", to: "ga/g/collect" }
|
|
61
|
-
],
|
|
62
|
-
// GA4 dynamically constructs collect URLs via string concatenation that can't be
|
|
63
|
-
// caught by AST rewriting. These regex patches handle the remaining patterns.
|
|
64
|
-
postProcess(output, rewrites) {
|
|
65
|
-
const gaRewrite = rewrites.find((r) => r.from.includes("google-analytics.com/g/collect"));
|
|
66
|
-
if (gaRewrite) {
|
|
67
|
-
output = output.replace(
|
|
68
|
-
GA_COLLECT_RE,
|
|
69
|
-
(_, prevChar) => `${prevChar ? `${prevChar} ` : ""}self.location.origin+"${gaRewrite.to}"`
|
|
70
|
-
);
|
|
71
|
-
output = output.replace(
|
|
72
|
-
GA_ANALYTICS_COLLECT_RE,
|
|
73
|
-
(_, prevChar) => `${prevChar ? `${prevChar} ` : ""}self.location.origin+"${gaRewrite.to}"`
|
|
74
|
-
);
|
|
75
|
-
}
|
|
76
|
-
return output;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
),
|
|
80
|
-
googleTagManager: fromDomains(
|
|
81
|
-
[["www.googletagmanager.com", "gtm"]],
|
|
82
|
-
proxyPrefix,
|
|
83
|
-
{ privacy: PRIVACY_NONE }
|
|
84
|
-
),
|
|
85
|
-
metaPixel: fromDomains(
|
|
86
|
-
[
|
|
87
|
-
["connect.facebook.net", "meta"],
|
|
88
|
-
["www.facebook.com/tr", "meta-tr"],
|
|
89
|
-
["facebook.com/tr", "meta-tr"],
|
|
90
|
-
["pixel.facebook.com", "meta-px"],
|
|
91
|
-
["www.facebook.com/plugins", "meta-plugins"]
|
|
92
|
-
],
|
|
93
|
-
proxyPrefix,
|
|
94
|
-
{ privacy: PRIVACY_FULL }
|
|
95
|
-
),
|
|
96
|
-
tiktokPixel: fromDomains(
|
|
97
|
-
[["analytics.tiktok.com", "tiktok"]],
|
|
98
|
-
proxyPrefix,
|
|
99
|
-
{ privacy: PRIVACY_FULL }
|
|
100
|
-
),
|
|
101
|
-
segment: fromDomains(
|
|
102
|
-
[
|
|
103
|
-
["api.segment.io", "segment"],
|
|
104
|
-
["cdn.segment.com", "segment-cdn"]
|
|
105
|
-
],
|
|
106
|
-
proxyPrefix,
|
|
107
|
-
{ privacy: PRIVACY_NONE }
|
|
108
|
-
),
|
|
109
|
-
xPixel: fromDomains(
|
|
110
|
-
[
|
|
111
|
-
["analytics.twitter.com", "x"],
|
|
112
|
-
["static.ads-twitter.com", "x-ads"],
|
|
113
|
-
["t.co", "x-t"]
|
|
114
|
-
],
|
|
115
|
-
proxyPrefix,
|
|
116
|
-
{ privacy: PRIVACY_FULL }
|
|
117
|
-
),
|
|
118
|
-
snapchatPixel: fromDomains(
|
|
119
|
-
[
|
|
120
|
-
["sc-static.net", "snap-cdn"],
|
|
121
|
-
["tr.snapchat.com", "snap"],
|
|
122
|
-
["pixel.tapad.com", "snap-tapad"]
|
|
123
|
-
],
|
|
124
|
-
proxyPrefix,
|
|
125
|
-
{ privacy: PRIVACY_FULL }
|
|
126
|
-
),
|
|
127
|
-
redditPixel: fromDomains(
|
|
128
|
-
[
|
|
129
|
-
["www.redditstatic.com", "reddit-cdn"],
|
|
130
|
-
["alb.reddit.com", "reddit"],
|
|
131
|
-
["pixel-config.reddit.com", "reddit-cfg"]
|
|
132
|
-
],
|
|
133
|
-
proxyPrefix,
|
|
134
|
-
{ privacy: PRIVACY_FULL }
|
|
135
|
-
),
|
|
136
|
-
clarity: fromDomains(
|
|
137
|
-
[
|
|
138
|
-
["www.clarity.ms", "clarity"],
|
|
139
|
-
["scripts.clarity.ms", "clarity-scripts"],
|
|
140
|
-
["d.clarity.ms", "clarity-data"],
|
|
141
|
-
["e.clarity.ms", "clarity-events"],
|
|
142
|
-
["k.clarity.ms", "clarity-collect"]
|
|
143
|
-
],
|
|
144
|
-
proxyPrefix,
|
|
145
|
-
{ privacy: PRIVACY_HEATMAP }
|
|
146
|
-
),
|
|
147
|
-
posthog: {
|
|
148
|
-
// No rewrites needed - PostHog uses NPM mode, SDK URLs are set via api_host config
|
|
149
|
-
privacy: PRIVACY_NONE,
|
|
150
|
-
routes: {
|
|
151
|
-
// US region
|
|
152
|
-
[`${proxyPrefix}/ph/static/**`]: { proxy: "https://us-assets.i.posthog.com/static/**" },
|
|
153
|
-
[`${proxyPrefix}/ph/**`]: { proxy: "https://us.i.posthog.com/**" },
|
|
154
|
-
// EU region
|
|
155
|
-
[`${proxyPrefix}/ph-eu/static/**`]: { proxy: "https://eu-assets.i.posthog.com/static/**" },
|
|
156
|
-
[`${proxyPrefix}/ph-eu/**`]: { proxy: "https://eu.i.posthog.com/**" }
|
|
157
|
-
},
|
|
158
|
-
autoInject: {
|
|
159
|
-
configField: "apiHost",
|
|
160
|
-
computeValue: (proxyPrefix2, config) => {
|
|
161
|
-
const region = config.region || "us";
|
|
162
|
-
return region === "eu" ? `${proxyPrefix2}/ph-eu` : `${proxyPrefix2}/ph`;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
},
|
|
166
|
-
hotjar: fromDomains(
|
|
167
|
-
[
|
|
168
|
-
["static.hotjar.com", "hotjar"],
|
|
169
|
-
["script.hotjar.com", "hotjar-script"],
|
|
170
|
-
["vars.hotjar.com", "hotjar-vars"],
|
|
171
|
-
["in.hotjar.com", "hotjar-in"],
|
|
172
|
-
["vc.hotjar.com", "hotjar-vc"],
|
|
173
|
-
["vc.hotjar.io", "hotjar-vc"],
|
|
174
|
-
["metrics.hotjar.io", "hotjar-metrics"],
|
|
175
|
-
["insights.hotjar.com", "hotjar-insights"],
|
|
176
|
-
["ask.hotjar.io", "hotjar-ask"],
|
|
177
|
-
["events.hotjar.io", "hotjar-events"],
|
|
178
|
-
["identify.hotjar.com", "hotjar-identify"],
|
|
179
|
-
["surveystats.hotjar.io", "hotjar-surveys"]
|
|
180
|
-
],
|
|
181
|
-
proxyPrefix,
|
|
182
|
-
{ privacy: PRIVACY_HEATMAP }
|
|
183
|
-
),
|
|
184
|
-
plausibleAnalytics: fromDomains(
|
|
185
|
-
[["plausible.io", "plausible"]],
|
|
186
|
-
proxyPrefix,
|
|
187
|
-
{
|
|
188
|
-
privacy: PRIVACY_NONE,
|
|
189
|
-
autoInject: {
|
|
190
|
-
configField: "endpoint",
|
|
191
|
-
computeValue: (proxyPrefix2) => `${proxyPrefix2}/plausible/api/event`
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
),
|
|
195
|
-
cloudflareWebAnalytics: fromDomains(
|
|
196
|
-
[
|
|
197
|
-
["static.cloudflareinsights.com", "cfwa"],
|
|
198
|
-
["cloudflareinsights.com", "cfwa-beacon"]
|
|
199
|
-
],
|
|
200
|
-
proxyPrefix,
|
|
201
|
-
{ privacy: PRIVACY_NONE }
|
|
202
|
-
),
|
|
203
|
-
rybbitAnalytics: fromDomains(
|
|
204
|
-
[["app.rybbit.io", "rybbit"]],
|
|
205
|
-
proxyPrefix,
|
|
206
|
-
{
|
|
207
|
-
privacy: PRIVACY_NONE,
|
|
208
|
-
autoInject: {
|
|
209
|
-
configField: "analyticsHost",
|
|
210
|
-
computeValue: (proxyPrefix2) => `${proxyPrefix2}/rybbit/api`
|
|
211
|
-
},
|
|
212
|
-
// Rybbit SDK derives API host via `e.split("/script.js")[0]` from the script tag's
|
|
213
|
-
// src attribute. When bundled, src becomes /_scripts/assets/<hash>.js so the split fails.
|
|
214
|
-
postProcess(output, rewrites) {
|
|
215
|
-
const rybbitRewrite = rewrites.find((r) => r.from === "app.rybbit.io");
|
|
216
|
-
if (rybbitRewrite) {
|
|
217
|
-
output = output.replace(
|
|
218
|
-
RYBBIT_HOST_SPLIT_RE,
|
|
219
|
-
`self.location.origin+"${rybbitRewrite.to}/api"`
|
|
220
|
-
);
|
|
221
|
-
}
|
|
222
|
-
return output;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
),
|
|
226
|
-
umamiAnalytics: fromDomains(
|
|
227
|
-
[["cloud.umami.is", "umami"]],
|
|
228
|
-
proxyPrefix,
|
|
229
|
-
{
|
|
230
|
-
privacy: PRIVACY_NONE,
|
|
231
|
-
extraRewrites: [
|
|
232
|
-
{ from: "api-gateway.umami.dev", to: "umami" }
|
|
233
|
-
],
|
|
234
|
-
autoInject: {
|
|
235
|
-
configField: "hostUrl",
|
|
236
|
-
computeValue: (proxyPrefix2) => `${proxyPrefix2}/umami`
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
),
|
|
240
|
-
databuddyAnalytics: fromDomains(
|
|
241
|
-
[
|
|
242
|
-
["cdn.databuddy.cc", "databuddy"],
|
|
243
|
-
["basket.databuddy.cc", "databuddy-api"]
|
|
244
|
-
],
|
|
245
|
-
proxyPrefix,
|
|
246
|
-
{
|
|
247
|
-
privacy: PRIVACY_NONE,
|
|
248
|
-
autoInject: {
|
|
249
|
-
configField: "apiUrl",
|
|
250
|
-
computeValue: (proxyPrefix2) => `${proxyPrefix2}/databuddy-api`
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
),
|
|
254
|
-
fathomAnalytics: fromDomains(
|
|
255
|
-
[["cdn.usefathom.com", "fathom"]],
|
|
256
|
-
proxyPrefix,
|
|
257
|
-
{
|
|
258
|
-
privacy: PRIVACY_NONE,
|
|
259
|
-
// Fathom SDK checks if script src contains "cdn.usefathom.com" to detect self-hosted
|
|
260
|
-
// mode, then overrides trackerUrl with the script host's root. After AST rewrite already
|
|
261
|
-
// set trackerUrl to the proxy URL, neutralize this check so it doesn't override it.
|
|
262
|
-
postProcess(output) {
|
|
263
|
-
return output.replace(
|
|
264
|
-
FATHOM_SELF_HOSTED_RE,
|
|
265
|
-
'.src.indexOf("cdn.usefathom.com")<-1'
|
|
266
|
-
);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
),
|
|
270
|
-
intercom: fromDomains(
|
|
271
|
-
[
|
|
272
|
-
["widget.intercom.io", "intercom"],
|
|
273
|
-
["api-iam.intercom.io", "intercom-api"],
|
|
274
|
-
["api-iam.eu.intercom.io", "intercom-api-eu"],
|
|
275
|
-
["api-iam.au.intercom.io", "intercom-api-au"],
|
|
276
|
-
["js.intercomcdn.com", "intercom-cdn"],
|
|
277
|
-
["downloads.intercomcdn.com", "intercom-downloads"],
|
|
278
|
-
["video-messages.intercomcdn.com", "intercom-video"]
|
|
279
|
-
],
|
|
280
|
-
proxyPrefix,
|
|
281
|
-
{ privacy: PRIVACY_IP_ONLY }
|
|
282
|
-
),
|
|
283
|
-
crisp: fromDomains(
|
|
284
|
-
[
|
|
285
|
-
["client.crisp.chat", "crisp"],
|
|
286
|
-
["client.relay.crisp.chat", "crisp-relay"],
|
|
287
|
-
["assets.crisp.chat", "crisp-assets"],
|
|
288
|
-
["go.crisp.chat", "crisp-go"],
|
|
289
|
-
["image.crisp.chat", "crisp-image"]
|
|
290
|
-
],
|
|
291
|
-
proxyPrefix,
|
|
292
|
-
{ privacy: PRIVACY_IP_ONLY }
|
|
293
|
-
),
|
|
294
|
-
vercelAnalytics: fromDomains(
|
|
295
|
-
[["va.vercel-scripts.com", "vercel"]],
|
|
296
|
-
proxyPrefix,
|
|
297
|
-
{ privacy: PRIVACY_NONE }
|
|
298
|
-
),
|
|
299
|
-
gravatar: fromDomains(
|
|
300
|
-
[
|
|
301
|
-
["secure.gravatar.com", "gravatar"],
|
|
302
|
-
["gravatar.com/avatar", "gravatar-avatar"]
|
|
303
|
-
],
|
|
304
|
-
proxyPrefix,
|
|
305
|
-
{ privacy: PRIVACY_IP_ONLY }
|
|
306
|
-
),
|
|
307
|
-
carbonAds: fromDomains(
|
|
308
|
-
[["cdn.carbonads.com", "carbon"]],
|
|
309
|
-
proxyPrefix,
|
|
310
|
-
{ privacy: PRIVACY_NONE }
|
|
311
|
-
),
|
|
312
|
-
lemonSqueezy: fromDomains(
|
|
313
|
-
[["assets.lemonsqueezy.com", "lemonsqueezy"]],
|
|
314
|
-
proxyPrefix,
|
|
315
|
-
{ privacy: PRIVACY_NONE }
|
|
316
|
-
),
|
|
317
|
-
matomoAnalytics: fromDomains(
|
|
318
|
-
[["cdn.matomo.cloud", "matomo"]],
|
|
319
|
-
proxyPrefix,
|
|
320
|
-
{ privacy: PRIVACY_NONE }
|
|
321
|
-
),
|
|
322
|
-
stripe: fromDomains(
|
|
323
|
-
[["js.stripe.com", "stripe"]],
|
|
324
|
-
proxyPrefix,
|
|
325
|
-
{ privacy: PRIVACY_IP_ONLY }
|
|
326
|
-
),
|
|
327
|
-
paypal: fromDomains(
|
|
328
|
-
[["www.paypal.com", "paypal"]],
|
|
329
|
-
proxyPrefix,
|
|
330
|
-
{ privacy: PRIVACY_IP_ONLY }
|
|
331
|
-
),
|
|
332
|
-
youtubePlayer: fromDomains(
|
|
333
|
-
[["www.youtube.com", "youtube"]],
|
|
334
|
-
proxyPrefix,
|
|
335
|
-
{ privacy: PRIVACY_IP_ONLY }
|
|
336
|
-
),
|
|
337
|
-
vimeoPlayer: fromDomains(
|
|
338
|
-
[["player.vimeo.com", "vimeo"]],
|
|
339
|
-
proxyPrefix,
|
|
340
|
-
{ privacy: PRIVACY_IP_ONLY }
|
|
341
|
-
),
|
|
342
|
-
googleRecaptcha: {
|
|
343
|
-
privacy: PRIVACY_IP_ONLY,
|
|
344
|
-
rewrite: [
|
|
345
|
-
{ from: "www.gstatic.com", to: `${proxyPrefix}/gstatic` },
|
|
346
|
-
// www.google.com is shared with GA — only rewrite /recaptcha paths
|
|
347
|
-
{ from: "www.google.com/recaptcha", to: `${proxyPrefix}/grecaptcha` },
|
|
348
|
-
{ from: "www.recaptcha.net/recaptcha", to: `${proxyPrefix}/grecaptcha` }
|
|
349
|
-
],
|
|
350
|
-
routes: {
|
|
351
|
-
[`${proxyPrefix}/gstatic/**`]: { proxy: "https://www.gstatic.com/**" },
|
|
352
|
-
[`${proxyPrefix}/grecaptcha/**`]: { proxy: "https://www.google.com/recaptcha/**" }
|
|
353
|
-
}
|
|
354
|
-
},
|
|
355
|
-
googleSignIn: fromDomains(
|
|
356
|
-
[["accounts.google.com", "gsignin"]],
|
|
357
|
-
proxyPrefix,
|
|
358
|
-
{ privacy: PRIVACY_IP_ONLY }
|
|
359
|
-
)
|
|
360
|
-
};
|
|
361
|
-
}
|
|
362
|
-
function getAllProxyConfigs(proxyPrefix) {
|
|
363
|
-
return buildProxyConfig(proxyPrefix);
|
|
364
|
-
}
|
|
365
|
-
const PROXY_URL_RE = /^https?:\/\/([^/]+)(\/.*)?\/\*\*$/;
|
|
366
|
-
const ROUTE_WILDCARD_RE = /\/\*\*$/;
|
|
367
|
-
function routesToInterceptRules(routes) {
|
|
368
|
-
const rules = [];
|
|
369
|
-
for (const [localPath, { proxy }] of Object.entries(routes)) {
|
|
370
|
-
const match = proxy.match(PROXY_URL_RE);
|
|
371
|
-
if (match?.[1]) {
|
|
372
|
-
const domain = match[1];
|
|
373
|
-
const pathPrefix = match[2] || "";
|
|
374
|
-
const target = localPath.replace(ROUTE_WILDCARD_RE, "");
|
|
375
|
-
rules.push({ pattern: domain, pathPrefix, target });
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
return rules;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
export { getAllProxyConfigs as g, routesToInterceptRules as r };
|