@nuxt/scripts 2.0.0-beta.1 → 2.0.0-beta.3

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 (40) hide show
  1. package/dist/devtools-client/200.html +1 -1
  2. package/dist/devtools-client/404.html +1 -1
  3. package/dist/devtools-client/_nuxt/{Cpb0XAYP.js → B-kTnbRv.js} +1 -1
  4. package/dist/devtools-client/_nuxt/{BjRLaDIG.js → BuTlAAeI.js} +1 -1
  5. package/dist/devtools-client/_nuxt/{BtNUYBXT.js → C41E8Pp1.js} +1 -1
  6. package/dist/devtools-client/_nuxt/{DmlGWZ2X.js → Cbmw_5H5.js} +1 -1
  7. package/dist/devtools-client/_nuxt/{DcG2ZXvY.js → DiZU_C4m.js} +1 -1
  8. package/dist/devtools-client/_nuxt/{RL1np866.js → LFNkKKtz.js} +2 -2
  9. package/dist/devtools-client/_nuxt/builds/latest.json +1 -1
  10. package/dist/devtools-client/_nuxt/builds/meta/a61c6f9c-0e40-40f8-973e-d57734b1be2f.json +1 -0
  11. package/dist/devtools-client/_nuxt/{entry.9HJPJ6Hp.css → entry.CYUdJFoE.css} +1 -1
  12. package/dist/devtools-client/docs/index.html +1 -1
  13. package/dist/devtools-client/first-party/index.html +1 -1
  14. package/dist/devtools-client/index.html +1 -1
  15. package/dist/devtools-client/registry/index.html +1 -1
  16. package/dist/module.json +1 -1
  17. package/dist/module.mjs +12 -18
  18. package/dist/registry.mjs +5 -4
  19. package/dist/runtime/components/Leaflet/ScriptLeafletMap.d.vue.ts +1 -1
  20. package/dist/runtime/components/Leaflet/ScriptLeafletMap.vue.d.ts +1 -1
  21. package/dist/runtime/components/MapLibre/ScriptMapLibreMap.d.vue.ts +18 -18
  22. package/dist/runtime/components/MapLibre/ScriptMapLibreMap.vue.d.ts +18 -18
  23. package/dist/runtime/components/ScriptCarbonAds.vue +3 -2
  24. package/dist/runtime/components/ScriptPayPalButtons.d.vue.ts +1 -1
  25. package/dist/runtime/components/ScriptPayPalButtons.vue.d.ts +1 -1
  26. package/dist/runtime/components/ScriptPayPalMessages.d.vue.ts +1 -1
  27. package/dist/runtime/components/ScriptPayPalMessages.vue.d.ts +1 -1
  28. package/dist/runtime/maplibre-styles.d.ts +16 -6
  29. package/dist/runtime/maplibre-styles.js +9 -9
  30. package/dist/runtime/registry/_gcm-consent.js +30 -7
  31. package/dist/runtime/registry/maplibre.d.ts +7 -1
  32. package/dist/runtime/registry/maplibre.js +23 -15
  33. package/dist/runtime/registry/schemas.d.ts +6 -6
  34. package/dist/runtime/registry/schemas.js +6 -6
  35. package/dist/runtime/registry/speedcurve.js +12 -3
  36. package/dist/runtime/server/utils/network-dispatcher.node.js +136 -11
  37. package/dist/stats.mjs +2 -1
  38. package/dist/types-source.mjs +35 -6
  39. package/package.json +4 -4
  40. package/dist/devtools-client/_nuxt/builds/meta/e28b96f1-78e8-41a4-ad6f-904cd078f85e.json +0 -1
@@ -19,19 +19,19 @@ export declare const LeafletOptions: import("valibot").ObjectSchema<{
19
19
  }, undefined>;
20
20
  export declare const MapLibreOptions: import("valibot").ObjectSchema<{
21
21
  /**
22
- * Inject the MapLibre GL JS 5.24.0 stylesheet when the script begins
23
- * loading. Disable this when supplying the stylesheet through Nuxt.
22
+ * Inject the MapLibre stylesheet when the script begins loading. Disable
23
+ * this when supplying the stylesheet through Nuxt.
24
24
  * @default true
25
25
  */
26
26
  readonly injectStyles: import("valibot").OptionalSchema<import("valibot").BooleanSchema<undefined>, undefined>;
27
27
  /**
28
- * Stylesheet URL used when `injectStyles` is enabled.
29
- * @default 'https://unpkg.com/maplibre-gl@5.24.0/dist/maplibre-gl.css'
28
+ * Stylesheet URL used when `injectStyles` is enabled. Defaults to the
29
+ * stylesheet shipped in the `maplibre-gl` package.
30
30
  */
31
31
  readonly stylesheetUrl: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
32
32
  /**
33
- * Worker URL for the CSP-compatible MapLibre build. Pair this with a custom
34
- * `scriptInput.src` that loads `maplibre-gl-csp.js`.
33
+ * Worker URL passed to `maplibregl.setWorkerUrl()`. Set this when serving
34
+ * the MapLibre worker from your own origin.
35
35
  */
36
36
  readonly workerUrl: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
37
37
  }, undefined>;
@@ -21,19 +21,19 @@ export const LeafletOptions = object({
21
21
  });
22
22
  export const MapLibreOptions = object({
23
23
  /**
24
- * Inject the MapLibre GL JS 5.24.0 stylesheet when the script begins
25
- * loading. Disable this when supplying the stylesheet through Nuxt.
24
+ * Inject the MapLibre stylesheet when the script begins loading. Disable
25
+ * this when supplying the stylesheet through Nuxt.
26
26
  * @default true
27
27
  */
28
28
  injectStyles: optional(boolean()),
29
29
  /**
30
- * Stylesheet URL used when `injectStyles` is enabled.
31
- * @default 'https://unpkg.com/maplibre-gl@5.24.0/dist/maplibre-gl.css'
30
+ * Stylesheet URL used when `injectStyles` is enabled. Defaults to the
31
+ * stylesheet shipped in the `maplibre-gl` package.
32
32
  */
33
33
  stylesheetUrl: optional(string()),
34
34
  /**
35
- * Worker URL for the CSP-compatible MapLibre build. Pair this with a custom
36
- * `scriptInput.src` that loads `maplibre-gl-csp.js`.
35
+ * Worker URL passed to `maplibregl.setWorkerUrl()`. Set this when serving
36
+ * the MapLibre worker from your own origin.
37
37
  */
38
38
  workerUrl: optional(string())
39
39
  });
@@ -4,9 +4,18 @@ import { useRegistryScript } from "../utils.js";
4
4
  import { afterNextPaint } from "../utils/after-next-paint.js";
5
5
  import { SpeedCurveOptions } from "./schemas.js";
6
6
  export { SpeedCurveOptions };
7
- const LUX_USER_CONFIG_KEYS = Object.keys(SpeedCurveOptions.entries).filter(
8
- (k) => k !== "id" && k !== "autoTrackSpaNavigations" && k !== "spaMode"
9
- );
7
+ const LUX_USER_CONFIG_KEYS = [
8
+ "label",
9
+ "samplerate",
10
+ "sendBeaconOnPageHidden",
11
+ "trackErrors",
12
+ "maxErrors",
13
+ "minMeasureTime",
14
+ "maxMeasureTime",
15
+ "newBeaconOnPageShow",
16
+ "trackHiddenPages",
17
+ "cookieDomain"
18
+ ];
10
19
  let luxWired = false;
11
20
  let teardownAutoTracker = () => {
12
21
  };
@@ -1,21 +1,146 @@
1
1
  import { lookup } from "node:dns";
2
- import { Agent, fetch } from "undici";
2
+ import { Agent as HttpAgent, request as httpRequest } from "node:http";
3
+ import { Agent as HttpsAgent, request as httpsRequest } from "node:https";
4
+ import { Readable } from "node:stream";
5
+ import { createBrotliDecompress, createGunzip, createInflate, constants as zlibConstants } from "node:zlib";
6
+ const NULL_BODY_STATUS = /* @__PURE__ */ new Set([101, 103, 204, 205, 304]);
7
+ const ACCEPTED_ENCODINGS = "gzip, deflate, br";
8
+ function toHeaderRecord(headers) {
9
+ const record = {};
10
+ if (!headers)
11
+ return record;
12
+ const append = (name, value) => {
13
+ const key = name.toLowerCase();
14
+ const existing = record[key];
15
+ if (existing === void 0)
16
+ record[key] = value;
17
+ else if (Array.isArray(existing))
18
+ existing.push(value);
19
+ else
20
+ record[key] = [existing, value];
21
+ };
22
+ if (headers instanceof Headers) {
23
+ headers.forEach((value, name) => append(name, value));
24
+ } else if (Array.isArray(headers)) {
25
+ for (const [name, value] of headers) append(name, value);
26
+ } else {
27
+ for (const [name, value] of Object.entries(headers)) append(name, String(value));
28
+ }
29
+ return record;
30
+ }
31
+ function toResponseHeaders(raw) {
32
+ const headers = new Headers();
33
+ for (let i = 0; i < raw.length; i += 2)
34
+ headers.append(raw[i], raw[i + 1]);
35
+ return headers;
36
+ }
37
+ function decodeBody(response) {
38
+ const encodings = String(response.headers["content-encoding"] || "").split(",").map((encoding) => encoding.trim().toLowerCase()).filter(Boolean).reverse();
39
+ const flush = { finishFlush: zlibConstants.Z_SYNC_FLUSH };
40
+ let stream = response;
41
+ for (const encoding of encodings) {
42
+ if (encoding === "gzip" || encoding === "x-gzip")
43
+ stream = stream.pipe(createGunzip(flush));
44
+ else if (encoding === "deflate" || encoding === "x-deflate")
45
+ stream = stream.pipe(createInflate(flush));
46
+ else if (encoding === "br")
47
+ stream = stream.pipe(createBrotliDecompress());
48
+ else
49
+ break;
50
+ }
51
+ return stream;
52
+ }
53
+ function knownBodyLength(body) {
54
+ if (body === void 0 || body === null)
55
+ return null;
56
+ if (typeof body === "string")
57
+ return Buffer.byteLength(body);
58
+ if (body instanceof URLSearchParams)
59
+ return Buffer.byteLength(body.toString());
60
+ if (ArrayBuffer.isView(body))
61
+ return body.byteLength;
62
+ if (body instanceof ArrayBuffer)
63
+ return body.byteLength;
64
+ return null;
65
+ }
66
+ function writeRequestBody(request, body) {
67
+ if (body === void 0 || body === null) {
68
+ request.end();
69
+ return;
70
+ }
71
+ if (typeof body === "string") {
72
+ request.end(body);
73
+ return;
74
+ }
75
+ if (body instanceof ReadableStream) {
76
+ Readable.fromWeb(body).pipe(request);
77
+ return;
78
+ }
79
+ if (body instanceof URLSearchParams) {
80
+ request.end(body.toString());
81
+ return;
82
+ }
83
+ if (ArrayBuffer.isView(body)) {
84
+ request.end(Buffer.from(body.buffer, body.byteOffset, body.byteLength));
85
+ return;
86
+ }
87
+ if (body instanceof ArrayBuffer) {
88
+ request.end(Buffer.from(body));
89
+ return;
90
+ }
91
+ request.destroy(new TypeError(`Unsupported proxy request body of type ${Object.prototype.toString.call(body)}`));
92
+ }
93
+ function requestThroughAgent(url, init, agents) {
94
+ const isSecure = url.protocol === "https:";
95
+ const headers = toHeaderRecord(init.headers);
96
+ if (!("accept-encoding" in headers))
97
+ headers["accept-encoding"] = ACCEPTED_ENCODINGS;
98
+ const method = (init.method || "GET").toUpperCase();
99
+ if (headers["content-length"] === void 0) {
100
+ const length = knownBodyLength(init.body);
101
+ if (length !== null)
102
+ headers["content-length"] = String(length);
103
+ }
104
+ const options = {
105
+ method,
106
+ headers,
107
+ agent: isSecure ? agents.https : agents.http,
108
+ signal: init.signal ?? void 0
109
+ };
110
+ return new Promise((resolve, reject) => {
111
+ const request = (isSecure ? httpsRequest : httpRequest)(url, options, (response) => {
112
+ const status = response.statusCode ?? 502;
113
+ const body = NULL_BODY_STATUS.has(status) || method === "HEAD" ? null : Readable.toWeb(decodeBody(response));
114
+ resolve(new Response(body, {
115
+ status,
116
+ statusText: response.statusMessage || "",
117
+ headers: toResponseHeaders(response.rawHeaders)
118
+ }));
119
+ });
120
+ request.on("error", reject);
121
+ writeRequestBody(request, init.body);
122
+ });
123
+ }
3
124
  export const createNetworkDispatcher = async (createLookup, resolveHostnameOverride) => {
4
125
  const resolveHostname = resolveHostnameOverride || ((hostname, callback) => {
5
126
  lookup(hostname, { all: true, verbatim: true }, (error, addresses) => {
6
127
  callback(error, addresses);
7
128
  });
8
129
  });
9
- const dispatcher = new Agent({
10
- connect: {
11
- lookup: createLookup(resolveHostname)
12
- }
13
- });
130
+ const pinnedLookup = createLookup(resolveHostname);
131
+ const agents = {
132
+ http: new HttpAgent({ keepAlive: true, lookup: pinnedLookup }),
133
+ https: new HttpsAgent({ keepAlive: true, lookup: pinnedLookup })
134
+ };
14
135
  return {
15
- fetch: ((input, init) => fetch(input, {
16
- ...init,
17
- dispatcher
18
- })),
19
- close: () => dispatcher.close()
136
+ fetch: ((input, init) => requestThroughAgent(
137
+ new URL(input instanceof Request ? input.url : String(input)),
138
+ init ?? {},
139
+ agents
140
+ )),
141
+ close: async () => {
142
+ agents.http.destroy();
143
+ agents.https.destroy();
144
+ }
20
145
  };
21
146
  };
package/dist/stats.mjs CHANGED
@@ -167,7 +167,8 @@ const scriptMeta = {
167
167
  trackedData: []
168
168
  },
169
169
  maplibre: {
170
- urls: ["https://unpkg.com/maplibre-gl@5.24.0/dist/maplibre-gl.js"],
170
+ // Loaded from the `maplibre-gl` package, not a CDN.
171
+ urls: [],
171
172
  trackedData: []
172
173
  },
173
174
  // CDN
@@ -1,5 +1,15 @@
1
1
  const types = {
2
2
  "_gcm-consent": [
3
+ {
4
+ name: "AssertNever",
5
+ kind: "type",
6
+ code: "type AssertNever<T extends never> = T"
7
+ },
8
+ {
9
+ name: "_ConsentKeysChecked",
10
+ kind: "type",
11
+ code: "type _ConsentKeysChecked = AssertNever<Exclude<keyof ConsentState, typeof CONSENT_CATEGORIES[number] | 'wait_for_update' | 'region'>>"
12
+ },
3
13
  {
4
14
  name: "GcmConsentContract",
5
15
  kind: "interface",
@@ -821,7 +831,7 @@ const types = {
821
831
  {
822
832
  name: "MapLibreOptions",
823
833
  kind: "const",
824
- code: "export const MapLibreOptions = object({\n /**\n * Inject the MapLibre GL JS 5.24.0 stylesheet when the script begins\n * loading. Disable this when supplying the stylesheet through Nuxt.\n * @default true\n */\n injectStyles: optional(boolean()),\n /**\n * Stylesheet URL used when `injectStyles` is enabled.\n * @default 'https://unpkg.com/maplibre-gl@5.24.0/dist/maplibre-gl.css'\n */\n stylesheetUrl: optional(string()),\n /**\n * Worker URL for the CSP-compatible MapLibre build. Pair this with a custom\n * `scriptInput.src` that loads `maplibre-gl-csp.js`.\n */\n workerUrl: optional(string()),\n})"
834
+ code: "export const MapLibreOptions = object({\n /**\n * Inject the MapLibre stylesheet when the script begins loading. Disable\n * this when supplying the stylesheet through Nuxt.\n * @default true\n */\n injectStyles: optional(boolean()),\n /**\n * Stylesheet URL used when `injectStyles` is enabled. Defaults to the\n * stylesheet shipped in the `maplibre-gl` package.\n */\n stylesheetUrl: optional(string()),\n /**\n * Worker URL passed to `maplibregl.setWorkerUrl()`. Set this when serving\n * the MapLibre worker from your own origin.\n */\n workerUrl: optional(string()),\n})"
825
835
  },
826
836
  {
827
837
  name: "MapLibreApi",
@@ -836,7 +846,7 @@ const types = {
836
846
  {
837
847
  name: "ScriptMapLibreMapProps",
838
848
  kind: "interface",
839
- code: "interface ScriptMapLibreMapProps {\n /**\n * Defines when the MapLibre script loads.\n * @default 'visible'\n */\n trigger?: ElementScriptTrigger\n /** MapLibre style URL or inline style specification. */\n mapStyle: string | MapLibre.StyleSpecification\n /** Initial and reactively controlled map center. */\n center: MapLibre.LngLatLike\n /** Initial and reactively controlled zoom level. @default 12 */\n zoom?: number\n /** Initial and reactively controlled bearing in degrees. @default 0 */\n bearing?: number\n /** Initial and reactively controlled pitch in degrees. @default 0 */\n pitch?: number\n /** Options passed to `new maplibregl.Map()`. Dedicated props take precedence. */\n options?: Omit<MapLibre.MapOptions, 'container'>\n /** Inject MapLibre's stylesheet when the script begins loading. @default true */\n injectStyles?: boolean\n /** Custom MapLibre stylesheet URL. */\n stylesheetUrl?: string\n /** Worker URL used with MapLibre's CSP-compatible build. */\n workerUrl?: string\n /** Width reserved before the map loads. @default 640 */\n width?: number | string\n /** Height reserved before the map loads. @default 400 */\n height?: number | string\n /** Accessible name for an interactive map. @default 'Interactive map' */\n ariaLabel?: string\n /** Disable map input and remove it from the accessibility tree when decorative. @default true */\n interactive?: boolean\n /** Attributes applied to the outer layout container. */\n rootAttrs?: HTMLAttributes & ReservedProps & Record<string, unknown>\n}"
849
+ code: "interface ScriptMapLibreMapProps {\n /**\n * Defines when the MapLibre script loads.\n * @default 'visible'\n */\n trigger?: ElementScriptTrigger\n /** MapLibre style URL or inline style specification. */\n mapStyle: string | MapLibre.StyleSpecification\n /** Initial and reactively controlled map center. */\n center: MapLibre.LngLatLike\n /** Initial and reactively controlled zoom level. @default 12 */\n zoom?: number\n /** Initial and reactively controlled bearing in degrees. @default 0 */\n bearing?: number\n /** Initial and reactively controlled pitch in degrees. @default 0 */\n pitch?: number\n /** Options passed to `new maplibregl.Map()`. Dedicated props take precedence. */\n options?: Omit<MapLibre.MapOptions, 'container'>\n /** Inject MapLibre's stylesheet when the script begins loading. @default true */\n injectStyles?: boolean\n /** Custom MapLibre stylesheet URL. */\n stylesheetUrl?: string\n /** Worker URL passed to `maplibregl.setWorkerUrl()`. */\n workerUrl?: string\n /** Width reserved before the map loads. @default 640 */\n width?: number | string\n /** Height reserved before the map loads. @default 400 */\n height?: number | string\n /** Accessible name for an interactive map. @default 'Interactive map' */\n ariaLabel?: string\n /** Disable map input and remove it from the accessibility tree when decorative. @default true */\n interactive?: boolean\n /** Attributes applied to the outer layout container. */\n rootAttrs?: HTMLAttributes & ReservedProps & Record<string, unknown>\n}"
840
850
  },
841
851
  {
842
852
  name: "ScriptMapLibreMapEvents",
@@ -1156,6 +1166,26 @@ const types = {
1156
1166
  name: "SpeedCurveApi",
1157
1167
  kind: "interface",
1158
1168
  code: "export interface SpeedCurveApi {\n LUX: LuxGlobal\n}"
1169
+ },
1170
+ {
1171
+ name: "ComposableOnlyKey",
1172
+ kind: "type",
1173
+ code: "type ComposableOnlyKey = 'id' | 'spaMode' | 'autoTrackSpaNavigations'"
1174
+ },
1175
+ {
1176
+ name: "ForwardedKey",
1177
+ kind: "type",
1178
+ code: "type ForwardedKey = Exclude<keyof InferInput<typeof SpeedCurveOptions>, ComposableOnlyKey>"
1179
+ },
1180
+ {
1181
+ name: "AssertNever",
1182
+ kind: "type",
1183
+ code: "type AssertNever<T extends never> = T"
1184
+ },
1185
+ {
1186
+ name: "_AllForwardedKeysListed",
1187
+ kind: "type",
1188
+ code: "type _AllForwardedKeysListed = AssertNever<Exclude<ForwardedKey, typeof LUX_USER_CONFIG_KEYS[number]>>"
1159
1189
  }
1160
1190
  ],
1161
1191
  stripe: [
@@ -1481,21 +1511,20 @@ const schemaFields = {
1481
1511
  name: "injectStyles",
1482
1512
  type: "boolean",
1483
1513
  required: false,
1484
- description: "Inject the MapLibre GL JS 5.24.0 stylesheet when the script begins loading. Disable this when supplying the stylesheet through Nuxt.",
1514
+ description: "Inject the MapLibre stylesheet when the script begins loading. Disable this when supplying the stylesheet through Nuxt.",
1485
1515
  defaultValue: "true"
1486
1516
  },
1487
1517
  {
1488
1518
  name: "stylesheetUrl",
1489
1519
  type: "string",
1490
1520
  required: false,
1491
- description: "Stylesheet URL used when `injectStyles` is enabled.",
1492
- defaultValue: "'https://unpkg.com/maplibre-gl@5.24.0/dist/maplibre-gl.css'"
1521
+ description: "Stylesheet URL used when `injectStyles` is enabled. Defaults to the stylesheet shipped in the `maplibre-gl` package."
1493
1522
  },
1494
1523
  {
1495
1524
  name: "workerUrl",
1496
1525
  type: "string",
1497
1526
  required: false,
1498
- description: "Worker URL for the CSP-compatible MapLibre build. Pair this with a custom `scriptInput.src` that loads `maplibre-gl-csp.js`."
1527
+ description: "Worker URL passed to `maplibregl.setWorkerUrl()`. Set this when serving the MapLibre worker from your own origin."
1499
1528
  }
1500
1529
  ],
1501
1530
  AhrefsAnalyticsOptions: [
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nuxt/scripts",
3
3
  "type": "module",
4
- "version": "2.0.0-beta.1",
4
+ "version": "2.0.0-beta.3",
5
5
  "description": "Load third-party scripts with better performance, privacy and DX in Nuxt Apps.",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -65,6 +65,7 @@
65
65
  "unimport",
66
66
  "#nuxt-scripts/types",
67
67
  "posthog-js",
68
+ "maplibre-gl",
68
69
  "@nuxt/devtools-kit",
69
70
  "sirv"
70
71
  ]
@@ -80,7 +81,7 @@
80
81
  "@types/vimeo__player": "^2.18.3",
81
82
  "@types/youtube": "^0.1.0",
82
83
  "@unhead/vue": "^3.3.1",
83
- "maplibre-gl": "^5.24.0",
84
+ "maplibre-gl": "^6.0.0",
84
85
  "posthog-js": "^1.0.0",
85
86
  "unhead": "^3.3.1"
86
87
  },
@@ -121,6 +122,7 @@
121
122
  },
122
123
  "dependencies": {
123
124
  "@nuxt/devtools-kit": "^3.4.1",
125
+ "@oxc-project/types": "^0.143.0",
124
126
  "@vueuse/core": "^14.4.0",
125
127
  "@vueuse/shared": "^14.4.0",
126
128
  "consola": "^3.4.2",
@@ -129,7 +131,6 @@
129
131
  "magic-string": "^1.1.0",
130
132
  "ofetch": "^1.5.1",
131
133
  "ohash": "^2.0.11",
132
- "oxc-parser": "^0.143.0",
133
134
  "oxc-walker": "^1.1.1",
134
135
  "pathe": "^2.0.3",
135
136
  "semver": "^7.8.5",
@@ -137,7 +138,6 @@
137
138
  "std-env": "^4.2.0",
138
139
  "ufo": "^1.6.4",
139
140
  "ultrahtml": "^1.7.0",
140
- "undici": "^8.10.0",
141
141
  "unplugin": "^3.3.0",
142
142
  "unstorage": "^1.17.5",
143
143
  "valibot": "^1.4.2"
@@ -1 +0,0 @@
1
- {"id":"e28b96f1-78e8-41a4-ad6f-904cd078f85e","timestamp":1787030182691,"prerendered":[]}