vinext 0.0.0 → 0.0.2

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 (272) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/dist/build/static-export.d.ts +78 -0
  4. package/dist/build/static-export.d.ts.map +1 -0
  5. package/dist/build/static-export.js +553 -0
  6. package/dist/build/static-export.js.map +1 -0
  7. package/dist/check.d.ts +52 -0
  8. package/dist/check.d.ts.map +1 -0
  9. package/dist/check.js +483 -0
  10. package/dist/check.js.map +1 -0
  11. package/dist/cli.d.ts +15 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +565 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/client/entry.d.ts +2 -0
  16. package/dist/client/entry.d.ts.map +1 -0
  17. package/dist/client/entry.js +85 -0
  18. package/dist/client/entry.js.map +1 -0
  19. package/dist/cloudflare/index.d.ts +8 -0
  20. package/dist/cloudflare/index.d.ts.map +1 -0
  21. package/dist/cloudflare/index.js +8 -0
  22. package/dist/cloudflare/index.js.map +1 -0
  23. package/dist/cloudflare/kv-cache-handler.d.ts +68 -0
  24. package/dist/cloudflare/kv-cache-handler.d.ts.map +1 -0
  25. package/dist/cloudflare/kv-cache-handler.js +304 -0
  26. package/dist/cloudflare/kv-cache-handler.js.map +1 -0
  27. package/dist/cloudflare/tpr.d.ts +78 -0
  28. package/dist/cloudflare/tpr.d.ts.map +1 -0
  29. package/dist/cloudflare/tpr.js +672 -0
  30. package/dist/cloudflare/tpr.js.map +1 -0
  31. package/dist/config/config-matchers.d.ts +106 -0
  32. package/dist/config/config-matchers.d.ts.map +1 -0
  33. package/dist/config/config-matchers.js +499 -0
  34. package/dist/config/config-matchers.js.map +1 -0
  35. package/dist/config/next-config.d.ts +153 -0
  36. package/dist/config/next-config.d.ts.map +1 -0
  37. package/dist/config/next-config.js +274 -0
  38. package/dist/config/next-config.js.map +1 -0
  39. package/dist/deploy.d.ts +87 -0
  40. package/dist/deploy.d.ts.map +1 -0
  41. package/dist/deploy.js +644 -0
  42. package/dist/deploy.js.map +1 -0
  43. package/dist/index.d.ts +156 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +3296 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/init.d.ts +55 -0
  48. package/dist/init.d.ts.map +1 -0
  49. package/dist/init.js +201 -0
  50. package/dist/init.js.map +1 -0
  51. package/dist/routing/app-router.d.ts +96 -0
  52. package/dist/routing/app-router.d.ts.map +1 -0
  53. package/dist/routing/app-router.js +815 -0
  54. package/dist/routing/app-router.js.map +1 -0
  55. package/dist/routing/pages-router.d.ts +52 -0
  56. package/dist/routing/pages-router.d.ts.map +1 -0
  57. package/dist/routing/pages-router.js +239 -0
  58. package/dist/routing/pages-router.js.map +1 -0
  59. package/dist/server/api-handler.d.ts +18 -0
  60. package/dist/server/api-handler.d.ts.map +1 -0
  61. package/dist/server/api-handler.js +169 -0
  62. package/dist/server/api-handler.js.map +1 -0
  63. package/dist/server/app-dev-server.d.ts +42 -0
  64. package/dist/server/app-dev-server.d.ts.map +1 -0
  65. package/dist/server/app-dev-server.js +2718 -0
  66. package/dist/server/app-dev-server.js.map +1 -0
  67. package/dist/server/app-router-entry.d.ts +18 -0
  68. package/dist/server/app-router-entry.d.ts.map +1 -0
  69. package/dist/server/app-router-entry.js +34 -0
  70. package/dist/server/app-router-entry.js.map +1 -0
  71. package/dist/server/dev-server.d.ts +40 -0
  72. package/dist/server/dev-server.d.ts.map +1 -0
  73. package/dist/server/dev-server.js +758 -0
  74. package/dist/server/dev-server.js.map +1 -0
  75. package/dist/server/html.d.ts +22 -0
  76. package/dist/server/html.d.ts.map +1 -0
  77. package/dist/server/html.js +29 -0
  78. package/dist/server/html.js.map +1 -0
  79. package/dist/server/image-optimization.d.ts +56 -0
  80. package/dist/server/image-optimization.d.ts.map +1 -0
  81. package/dist/server/image-optimization.js +103 -0
  82. package/dist/server/image-optimization.js.map +1 -0
  83. package/dist/server/instrumentation.d.ts +68 -0
  84. package/dist/server/instrumentation.d.ts.map +1 -0
  85. package/dist/server/instrumentation.js +90 -0
  86. package/dist/server/instrumentation.js.map +1 -0
  87. package/dist/server/isr-cache.d.ts +61 -0
  88. package/dist/server/isr-cache.d.ts.map +1 -0
  89. package/dist/server/isr-cache.js +134 -0
  90. package/dist/server/isr-cache.js.map +1 -0
  91. package/dist/server/metadata-routes.d.ts +103 -0
  92. package/dist/server/metadata-routes.d.ts.map +1 -0
  93. package/dist/server/metadata-routes.js +270 -0
  94. package/dist/server/metadata-routes.js.map +1 -0
  95. package/dist/server/middleware.d.ts +77 -0
  96. package/dist/server/middleware.d.ts.map +1 -0
  97. package/dist/server/middleware.js +228 -0
  98. package/dist/server/middleware.js.map +1 -0
  99. package/dist/server/prod-server.d.ts +78 -0
  100. package/dist/server/prod-server.d.ts.map +1 -0
  101. package/dist/server/prod-server.js +712 -0
  102. package/dist/server/prod-server.js.map +1 -0
  103. package/dist/shims/amp.d.ts +17 -0
  104. package/dist/shims/amp.d.ts.map +1 -0
  105. package/dist/shims/amp.js +21 -0
  106. package/dist/shims/amp.js.map +1 -0
  107. package/dist/shims/app.d.ts +12 -0
  108. package/dist/shims/app.d.ts.map +1 -0
  109. package/dist/shims/app.js +2 -0
  110. package/dist/shims/app.js.map +1 -0
  111. package/dist/shims/cache-runtime.d.ts +68 -0
  112. package/dist/shims/cache-runtime.d.ts.map +1 -0
  113. package/dist/shims/cache-runtime.js +437 -0
  114. package/dist/shims/cache-runtime.js.map +1 -0
  115. package/dist/shims/cache.d.ts +243 -0
  116. package/dist/shims/cache.d.ts.map +1 -0
  117. package/dist/shims/cache.js +415 -0
  118. package/dist/shims/cache.js.map +1 -0
  119. package/dist/shims/client-only.d.ts +18 -0
  120. package/dist/shims/client-only.d.ts.map +1 -0
  121. package/dist/shims/client-only.js +18 -0
  122. package/dist/shims/client-only.js.map +1 -0
  123. package/dist/shims/config.d.ts +27 -0
  124. package/dist/shims/config.d.ts.map +1 -0
  125. package/dist/shims/config.js +30 -0
  126. package/dist/shims/config.js.map +1 -0
  127. package/dist/shims/constants.d.ts +13 -0
  128. package/dist/shims/constants.d.ts.map +1 -0
  129. package/dist/shims/constants.js +13 -0
  130. package/dist/shims/constants.js.map +1 -0
  131. package/dist/shims/document.d.ts +33 -0
  132. package/dist/shims/document.d.ts.map +1 -0
  133. package/dist/shims/document.js +32 -0
  134. package/dist/shims/document.js.map +1 -0
  135. package/dist/shims/dynamic.d.ts +33 -0
  136. package/dist/shims/dynamic.d.ts.map +1 -0
  137. package/dist/shims/dynamic.js +149 -0
  138. package/dist/shims/dynamic.js.map +1 -0
  139. package/dist/shims/error-boundary.d.ts +33 -0
  140. package/dist/shims/error-boundary.d.ts.map +1 -0
  141. package/dist/shims/error-boundary.js +88 -0
  142. package/dist/shims/error-boundary.js.map +1 -0
  143. package/dist/shims/error.d.ts +16 -0
  144. package/dist/shims/error.d.ts.map +1 -0
  145. package/dist/shims/error.js +45 -0
  146. package/dist/shims/error.js.map +1 -0
  147. package/dist/shims/fetch-cache.d.ts +61 -0
  148. package/dist/shims/fetch-cache.d.ts.map +1 -0
  149. package/dist/shims/fetch-cache.js +307 -0
  150. package/dist/shims/fetch-cache.js.map +1 -0
  151. package/dist/shims/font-google.d.ts +122 -0
  152. package/dist/shims/font-google.d.ts.map +1 -0
  153. package/dist/shims/font-google.js +387 -0
  154. package/dist/shims/font-google.js.map +1 -0
  155. package/dist/shims/font-local.d.ts +61 -0
  156. package/dist/shims/font-local.d.ts.map +1 -0
  157. package/dist/shims/font-local.js +303 -0
  158. package/dist/shims/font-local.js.map +1 -0
  159. package/dist/shims/form.d.ts +30 -0
  160. package/dist/shims/form.d.ts.map +1 -0
  161. package/dist/shims/form.js +78 -0
  162. package/dist/shims/form.js.map +1 -0
  163. package/dist/shims/head-state.d.ts +11 -0
  164. package/dist/shims/head-state.d.ts.map +1 -0
  165. package/dist/shims/head-state.js +47 -0
  166. package/dist/shims/head-state.js.map +1 -0
  167. package/dist/shims/head.d.ts +28 -0
  168. package/dist/shims/head.d.ts.map +1 -0
  169. package/dist/shims/head.js +148 -0
  170. package/dist/shims/head.js.map +1 -0
  171. package/dist/shims/headers.d.ts +150 -0
  172. package/dist/shims/headers.d.ts.map +1 -0
  173. package/dist/shims/headers.js +412 -0
  174. package/dist/shims/headers.js.map +1 -0
  175. package/dist/shims/image-config.d.ts +30 -0
  176. package/dist/shims/image-config.d.ts.map +1 -0
  177. package/dist/shims/image-config.js +91 -0
  178. package/dist/shims/image-config.js.map +1 -0
  179. package/dist/shims/image.d.ts +63 -0
  180. package/dist/shims/image.d.ts.map +1 -0
  181. package/dist/shims/image.js +284 -0
  182. package/dist/shims/image.js.map +1 -0
  183. package/dist/shims/internal/api-utils.d.ts +12 -0
  184. package/dist/shims/internal/api-utils.d.ts.map +1 -0
  185. package/dist/shims/internal/api-utils.js +7 -0
  186. package/dist/shims/internal/api-utils.js.map +1 -0
  187. package/dist/shims/internal/app-router-context.d.ts +21 -0
  188. package/dist/shims/internal/app-router-context.d.ts.map +1 -0
  189. package/dist/shims/internal/app-router-context.js +15 -0
  190. package/dist/shims/internal/app-router-context.js.map +1 -0
  191. package/dist/shims/internal/cookies.d.ts +9 -0
  192. package/dist/shims/internal/cookies.d.ts.map +1 -0
  193. package/dist/shims/internal/cookies.js +9 -0
  194. package/dist/shims/internal/cookies.js.map +1 -0
  195. package/dist/shims/internal/router-context.d.ts +2 -0
  196. package/dist/shims/internal/router-context.d.ts.map +1 -0
  197. package/dist/shims/internal/router-context.js +9 -0
  198. package/dist/shims/internal/router-context.js.map +1 -0
  199. package/dist/shims/internal/utils.d.ts +48 -0
  200. package/dist/shims/internal/utils.d.ts.map +1 -0
  201. package/dist/shims/internal/utils.js +35 -0
  202. package/dist/shims/internal/utils.js.map +1 -0
  203. package/dist/shims/internal/work-unit-async-storage.d.ts +12 -0
  204. package/dist/shims/internal/work-unit-async-storage.d.ts.map +1 -0
  205. package/dist/shims/internal/work-unit-async-storage.js +13 -0
  206. package/dist/shims/internal/work-unit-async-storage.js.map +1 -0
  207. package/dist/shims/layout-segment-context.d.ts +21 -0
  208. package/dist/shims/layout-segment-context.d.ts.map +1 -0
  209. package/dist/shims/layout-segment-context.js +27 -0
  210. package/dist/shims/layout-segment-context.js.map +1 -0
  211. package/dist/shims/legacy-image.d.ts +52 -0
  212. package/dist/shims/legacy-image.d.ts.map +1 -0
  213. package/dist/shims/legacy-image.js +46 -0
  214. package/dist/shims/legacy-image.js.map +1 -0
  215. package/dist/shims/link.d.ts +48 -0
  216. package/dist/shims/link.d.ts.map +1 -0
  217. package/dist/shims/link.js +395 -0
  218. package/dist/shims/link.js.map +1 -0
  219. package/dist/shims/metadata.d.ts +184 -0
  220. package/dist/shims/metadata.d.ts.map +1 -0
  221. package/dist/shims/metadata.js +472 -0
  222. package/dist/shims/metadata.js.map +1 -0
  223. package/dist/shims/navigation-state.d.ts +14 -0
  224. package/dist/shims/navigation-state.d.ts.map +1 -0
  225. package/dist/shims/navigation-state.js +77 -0
  226. package/dist/shims/navigation-state.js.map +1 -0
  227. package/dist/shims/navigation.d.ts +201 -0
  228. package/dist/shims/navigation.d.ts.map +1 -0
  229. package/dist/shims/navigation.js +672 -0
  230. package/dist/shims/navigation.js.map +1 -0
  231. package/dist/shims/og.d.ts +20 -0
  232. package/dist/shims/og.d.ts.map +1 -0
  233. package/dist/shims/og.js +19 -0
  234. package/dist/shims/og.js.map +1 -0
  235. package/dist/shims/router-state.d.ts +11 -0
  236. package/dist/shims/router-state.d.ts.map +1 -0
  237. package/dist/shims/router-state.js +56 -0
  238. package/dist/shims/router-state.js.map +1 -0
  239. package/dist/shims/router.d.ts +103 -0
  240. package/dist/shims/router.d.ts.map +1 -0
  241. package/dist/shims/router.js +536 -0
  242. package/dist/shims/router.js.map +1 -0
  243. package/dist/shims/script.d.ts +58 -0
  244. package/dist/shims/script.d.ts.map +1 -0
  245. package/dist/shims/script.js +163 -0
  246. package/dist/shims/script.js.map +1 -0
  247. package/dist/shims/server-only.d.ts +19 -0
  248. package/dist/shims/server-only.d.ts.map +1 -0
  249. package/dist/shims/server-only.js +19 -0
  250. package/dist/shims/server-only.js.map +1 -0
  251. package/dist/shims/server.d.ts +178 -0
  252. package/dist/shims/server.d.ts.map +1 -0
  253. package/dist/shims/server.js +377 -0
  254. package/dist/shims/server.js.map +1 -0
  255. package/dist/shims/web-vitals.d.ts +24 -0
  256. package/dist/shims/web-vitals.d.ts.map +1 -0
  257. package/dist/shims/web-vitals.js +17 -0
  258. package/dist/shims/web-vitals.js.map +1 -0
  259. package/dist/utils/hash.d.ts +6 -0
  260. package/dist/utils/hash.d.ts.map +1 -0
  261. package/dist/utils/hash.js +20 -0
  262. package/dist/utils/hash.js.map +1 -0
  263. package/dist/utils/project.d.ts +36 -0
  264. package/dist/utils/project.d.ts.map +1 -0
  265. package/dist/utils/project.js +112 -0
  266. package/dist/utils/project.js.map +1 -0
  267. package/dist/utils/query.d.ts +10 -0
  268. package/dist/utils/query.d.ts.map +1 -0
  269. package/dist/utils/query.js +27 -0
  270. package/dist/utils/query.js.map +1 -0
  271. package/package.json +65 -7
  272. package/index.js +0 -1
@@ -0,0 +1,58 @@
1
+ /**
2
+ * next/script shim
3
+ *
4
+ * Provides the <Script> component for loading third-party scripts with
5
+ * configurable loading strategies.
6
+ *
7
+ * Strategies:
8
+ * - "beforeInteractive": rendered as a <script> tag in SSR output
9
+ * - "afterInteractive" (default): loaded client-side after hydration
10
+ * - "lazyOnload": deferred until window.load + requestIdleCallback
11
+ * - "worker": sets type="text/partytown" (requires Partytown setup)
12
+ */
13
+ import React from "react";
14
+ export interface ScriptProps {
15
+ /** Script source URL */
16
+ src?: string;
17
+ /** Loading strategy. Default: "afterInteractive" */
18
+ strategy?: "beforeInteractive" | "afterInteractive" | "lazyOnload" | "worker";
19
+ /** Unique identifier for the script */
20
+ id?: string;
21
+ /** Called when the script has loaded */
22
+ onLoad?: (e: Event) => void;
23
+ /** Called when the script is ready (after load, and on every re-render if already loaded) */
24
+ onReady?: () => void;
25
+ /** Called on script load error */
26
+ onError?: (e: Event) => void;
27
+ /** Inline script content */
28
+ children?: React.ReactNode;
29
+ /** Dangerous inner HTML */
30
+ dangerouslySetInnerHTML?: {
31
+ __html: string;
32
+ };
33
+ /** Script type attribute */
34
+ type?: string;
35
+ /** Async attribute */
36
+ async?: boolean;
37
+ /** Defer attribute */
38
+ defer?: boolean;
39
+ /** Crossorigin attribute */
40
+ crossOrigin?: string;
41
+ /** Nonce for CSP */
42
+ nonce?: string;
43
+ /** Integrity hash */
44
+ integrity?: string;
45
+ /** Additional attributes */
46
+ [key: string]: unknown;
47
+ }
48
+ /**
49
+ * Load a script imperatively (outside of React).
50
+ */
51
+ export declare function handleClientScriptLoad(props: ScriptProps): void;
52
+ /**
53
+ * Initialize multiple scripts at once (called during app bootstrap).
54
+ */
55
+ export declare function initScriptLoader(scripts: ScriptProps[]): void;
56
+ declare function Script(props: ScriptProps): React.ReactElement | null;
57
+ export default Script;
58
+ //# sourceMappingURL=script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../src/shims/script.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,QAAQ,CAAC,EAAE,mBAAmB,GAAG,kBAAkB,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC9E,uCAAuC;IACvC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAC5B,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,kCAAkC;IAClC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,2BAA2B;IAC3B,uBAAuB,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sBAAsB;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAKD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CA6B/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAI7D;AAED,iBAAS,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAgH7D;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,163 @@
1
+ "use client";
2
+ /**
3
+ * next/script shim
4
+ *
5
+ * Provides the <Script> component for loading third-party scripts with
6
+ * configurable loading strategies.
7
+ *
8
+ * Strategies:
9
+ * - "beforeInteractive": rendered as a <script> tag in SSR output
10
+ * - "afterInteractive" (default): loaded client-side after hydration
11
+ * - "lazyOnload": deferred until window.load + requestIdleCallback
12
+ * - "worker": sets type="text/partytown" (requires Partytown setup)
13
+ */
14
+ import React, { useEffect, useRef } from "react";
15
+ // Track scripts that have already been loaded to avoid duplicates
16
+ const loadedScripts = new Set();
17
+ /**
18
+ * Load a script imperatively (outside of React).
19
+ */
20
+ export function handleClientScriptLoad(props) {
21
+ const { src, id, onLoad, onError, strategy: _strategy, onReady: _onReady, children, ...rest } = props;
22
+ if (typeof window === "undefined")
23
+ return;
24
+ const key = id ?? src ?? "";
25
+ if (key && loadedScripts.has(key))
26
+ return;
27
+ const el = document.createElement("script");
28
+ if (src)
29
+ el.src = src;
30
+ if (id)
31
+ el.id = id;
32
+ for (const [attr, value] of Object.entries(rest)) {
33
+ if (attr === "dangerouslySetInnerHTML" || attr === "className")
34
+ continue;
35
+ if (typeof value === "string") {
36
+ el.setAttribute(attr, value);
37
+ }
38
+ else if (typeof value === "boolean" && value) {
39
+ el.setAttribute(attr, "");
40
+ }
41
+ }
42
+ if (children && typeof children === "string") {
43
+ el.textContent = children;
44
+ }
45
+ if (onLoad)
46
+ el.addEventListener("load", onLoad);
47
+ if (onError)
48
+ el.addEventListener("error", onError);
49
+ document.body.appendChild(el);
50
+ if (key)
51
+ loadedScripts.add(key);
52
+ }
53
+ /**
54
+ * Initialize multiple scripts at once (called during app bootstrap).
55
+ */
56
+ export function initScriptLoader(scripts) {
57
+ for (const script of scripts) {
58
+ handleClientScriptLoad(script);
59
+ }
60
+ }
61
+ function Script(props) {
62
+ const { src, id, strategy = "afterInteractive", onLoad, onReady, onError, children, dangerouslySetInnerHTML, ...rest } = props;
63
+ const hasMounted = useRef(false);
64
+ // SSR path: only "beforeInteractive" renders a <script> tag server-side
65
+ if (typeof window === "undefined") {
66
+ if (strategy === "beforeInteractive") {
67
+ const scriptProps = { ...rest };
68
+ if (src)
69
+ scriptProps.src = src;
70
+ if (id)
71
+ scriptProps.id = id;
72
+ if (dangerouslySetInnerHTML) {
73
+ scriptProps.dangerouslySetInnerHTML = dangerouslySetInnerHTML;
74
+ }
75
+ return React.createElement("script", scriptProps, children);
76
+ }
77
+ // Other strategies don't render during SSR
78
+ return null;
79
+ }
80
+ const key = id ?? src ?? "";
81
+ // Client path: load scripts via useEffect based on strategy
82
+ // eslint-disable-next-line react-hooks/rules-of-hooks
83
+ useEffect(() => {
84
+ if (hasMounted.current)
85
+ return;
86
+ hasMounted.current = true;
87
+ // Already loaded — just fire onReady
88
+ if (key && loadedScripts.has(key)) {
89
+ onReady?.();
90
+ return;
91
+ }
92
+ const load = () => {
93
+ if (key && loadedScripts.has(key)) {
94
+ onReady?.();
95
+ return;
96
+ }
97
+ const el = document.createElement("script");
98
+ if (src)
99
+ el.src = src;
100
+ if (id)
101
+ el.id = id;
102
+ for (const [attr, value] of Object.entries(rest)) {
103
+ if (attr === "className") {
104
+ el.setAttribute("class", String(value));
105
+ }
106
+ else if (typeof value === "string") {
107
+ el.setAttribute(attr, value);
108
+ }
109
+ else if (typeof value === "boolean" && value) {
110
+ el.setAttribute(attr, "");
111
+ }
112
+ }
113
+ if (strategy === "worker") {
114
+ el.setAttribute("type", "text/partytown");
115
+ }
116
+ if (dangerouslySetInnerHTML?.__html) {
117
+ el.innerHTML = dangerouslySetInnerHTML.__html;
118
+ }
119
+ else if (children && typeof children === "string") {
120
+ el.textContent = children;
121
+ }
122
+ el.addEventListener("load", (e) => {
123
+ if (key)
124
+ loadedScripts.add(key);
125
+ onLoad?.(e);
126
+ onReady?.();
127
+ });
128
+ if (onError) {
129
+ el.addEventListener("error", onError);
130
+ }
131
+ document.body.appendChild(el);
132
+ };
133
+ if (strategy === "lazyOnload") {
134
+ // Wait for window load, then use idle callback
135
+ if (document.readyState === "complete") {
136
+ if (typeof requestIdleCallback === "function") {
137
+ requestIdleCallback(load);
138
+ }
139
+ else {
140
+ setTimeout(load, 1);
141
+ }
142
+ }
143
+ else {
144
+ window.addEventListener("load", () => {
145
+ if (typeof requestIdleCallback === "function") {
146
+ requestIdleCallback(load);
147
+ }
148
+ else {
149
+ setTimeout(load, 1);
150
+ }
151
+ });
152
+ }
153
+ }
154
+ else {
155
+ // "afterInteractive" (default), "beforeInteractive" (client re-mount), "worker"
156
+ load();
157
+ }
158
+ }, [src, id, strategy, onLoad, onReady, onError, children, dangerouslySetInnerHTML, key, rest]);
159
+ // The component itself renders nothing — scripts are injected imperatively
160
+ return null;
161
+ }
162
+ export default Script;
163
+ //# sourceMappingURL=script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../../src/shims/script.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAmCjD,kEAAkE;AAClE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAkB;IACvD,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACtG,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO;IAE1C,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC;IAC5B,IAAI,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAE1C,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,GAAG;QAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;IACtB,IAAI,EAAE;QAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAEnB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,IAAI,IAAI,KAAK,yBAAyB,IAAI,IAAI,KAAK,WAAW;YAAE,SAAS;QACzE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,EAAE,CAAC;YAC/C,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC7C,EAAE,CAAC,WAAW,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,OAAO;QAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,IAAI,GAAG;QAAE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAsB;IACrD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,KAAkB;IAChC,MAAM,EACJ,GAAG,EACH,EAAE,EACF,QAAQ,GAAG,kBAAkB,EAC7B,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,uBAAuB,EACvB,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjC,wEAAwE;IACxE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;YACrC,MAAM,WAAW,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;YACzD,IAAI,GAAG;gBAAE,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC;YAC/B,IAAI,EAAE;gBAAE,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC;YAC5B,IAAI,uBAAuB,EAAE,CAAC;gBAC5B,WAAW,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;YAChE,CAAC;YACD,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC9D,CAAC;QACD,2CAA2C;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC;IAE5B,4DAA4D;IAC5D,sDAAsD;IACtD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,CAAC,OAAO;YAAE,OAAO;QAC/B,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAE1B,qCAAqC;QACrC,IAAI,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,IAAI,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClC,OAAO,EAAE,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YAED,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,GAAG;gBAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YACtB,IAAI,EAAE;gBAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAEnB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;oBACzB,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1C,CAAC;qBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACrC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC/B,CAAC;qBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,EAAE,CAAC;oBAC/C,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC1B,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,uBAAuB,EAAE,MAAM,EAAE,CAAC;gBACpC,EAAE,CAAC,SAAS,GAAG,uBAAuB,CAAC,MAAgB,CAAC;YAC1D,CAAC;iBAAM,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACpD,EAAE,CAAC,WAAW,GAAG,QAAQ,CAAC;YAC5B,CAAC;YAED,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;gBAChC,IAAI,GAAG;oBAAE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;gBACZ,OAAO,EAAE,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,IAAI,OAAO,EAAE,CAAC;gBACZ,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACxC,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC;QAEF,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC9B,+CAA+C;YAC/C,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBACvC,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE,CAAC;oBAC9C,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;oBACnC,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE,CAAC;wBAC9C,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC;yBAAM,CAAC;wBACN,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACtB,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,gFAAgF;YAChF,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAEhG,2EAA2E;IAC3E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,MAAM,CAAC","sourcesContent":["\"use client\";\n\n/**\n * next/script shim\n *\n * Provides the <Script> component for loading third-party scripts with\n * configurable loading strategies.\n *\n * Strategies:\n * - \"beforeInteractive\": rendered as a <script> tag in SSR output\n * - \"afterInteractive\" (default): loaded client-side after hydration\n * - \"lazyOnload\": deferred until window.load + requestIdleCallback\n * - \"worker\": sets type=\"text/partytown\" (requires Partytown setup)\n */\nimport React, { useEffect, useRef } from \"react\";\n\nexport interface ScriptProps {\n /** Script source URL */\n src?: string;\n /** Loading strategy. Default: \"afterInteractive\" */\n strategy?: \"beforeInteractive\" | \"afterInteractive\" | \"lazyOnload\" | \"worker\";\n /** Unique identifier for the script */\n id?: string;\n /** Called when the script has loaded */\n onLoad?: (e: Event) => void;\n /** Called when the script is ready (after load, and on every re-render if already loaded) */\n onReady?: () => void;\n /** Called on script load error */\n onError?: (e: Event) => void;\n /** Inline script content */\n children?: React.ReactNode;\n /** Dangerous inner HTML */\n dangerouslySetInnerHTML?: { __html: string };\n /** Script type attribute */\n type?: string;\n /** Async attribute */\n async?: boolean;\n /** Defer attribute */\n defer?: boolean;\n /** Crossorigin attribute */\n crossOrigin?: string;\n /** Nonce for CSP */\n nonce?: string;\n /** Integrity hash */\n integrity?: string;\n /** Additional attributes */\n [key: string]: unknown;\n}\n\n// Track scripts that have already been loaded to avoid duplicates\nconst loadedScripts = new Set<string>();\n\n/**\n * Load a script imperatively (outside of React).\n */\nexport function handleClientScriptLoad(props: ScriptProps): void {\n const { src, id, onLoad, onError, strategy: _strategy, onReady: _onReady, children, ...rest } = props;\n if (typeof window === \"undefined\") return;\n\n const key = id ?? src ?? \"\";\n if (key && loadedScripts.has(key)) return;\n\n const el = document.createElement(\"script\");\n if (src) el.src = src;\n if (id) el.id = id;\n\n for (const [attr, value] of Object.entries(rest)) {\n if (attr === \"dangerouslySetInnerHTML\" || attr === \"className\") continue;\n if (typeof value === \"string\") {\n el.setAttribute(attr, value);\n } else if (typeof value === \"boolean\" && value) {\n el.setAttribute(attr, \"\");\n }\n }\n\n if (children && typeof children === \"string\") {\n el.textContent = children;\n }\n\n if (onLoad) el.addEventListener(\"load\", onLoad);\n if (onError) el.addEventListener(\"error\", onError);\n\n document.body.appendChild(el);\n if (key) loadedScripts.add(key);\n}\n\n/**\n * Initialize multiple scripts at once (called during app bootstrap).\n */\nexport function initScriptLoader(scripts: ScriptProps[]): void {\n for (const script of scripts) {\n handleClientScriptLoad(script);\n }\n}\n\nfunction Script(props: ScriptProps): React.ReactElement | null {\n const {\n src,\n id,\n strategy = \"afterInteractive\",\n onLoad,\n onReady,\n onError,\n children,\n dangerouslySetInnerHTML,\n ...rest\n } = props;\n\n const hasMounted = useRef(false);\n\n // SSR path: only \"beforeInteractive\" renders a <script> tag server-side\n if (typeof window === \"undefined\") {\n if (strategy === \"beforeInteractive\") {\n const scriptProps: Record<string, unknown> = { ...rest };\n if (src) scriptProps.src = src;\n if (id) scriptProps.id = id;\n if (dangerouslySetInnerHTML) {\n scriptProps.dangerouslySetInnerHTML = dangerouslySetInnerHTML;\n }\n return React.createElement(\"script\", scriptProps, children);\n }\n // Other strategies don't render during SSR\n return null;\n }\n\n const key = id ?? src ?? \"\";\n\n // Client path: load scripts via useEffect based on strategy\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n if (hasMounted.current) return;\n hasMounted.current = true;\n\n // Already loaded — just fire onReady\n if (key && loadedScripts.has(key)) {\n onReady?.();\n return;\n }\n\n const load = () => {\n if (key && loadedScripts.has(key)) {\n onReady?.();\n return;\n }\n\n const el = document.createElement(\"script\");\n if (src) el.src = src;\n if (id) el.id = id;\n\n for (const [attr, value] of Object.entries(rest)) {\n if (attr === \"className\") {\n el.setAttribute(\"class\", String(value));\n } else if (typeof value === \"string\") {\n el.setAttribute(attr, value);\n } else if (typeof value === \"boolean\" && value) {\n el.setAttribute(attr, \"\");\n }\n }\n\n if (strategy === \"worker\") {\n el.setAttribute(\"type\", \"text/partytown\");\n }\n\n if (dangerouslySetInnerHTML?.__html) {\n el.innerHTML = dangerouslySetInnerHTML.__html as string;\n } else if (children && typeof children === \"string\") {\n el.textContent = children;\n }\n\n el.addEventListener(\"load\", (e) => {\n if (key) loadedScripts.add(key);\n onLoad?.(e);\n onReady?.();\n });\n\n if (onError) {\n el.addEventListener(\"error\", onError);\n }\n\n document.body.appendChild(el);\n };\n\n if (strategy === \"lazyOnload\") {\n // Wait for window load, then use idle callback\n if (document.readyState === \"complete\") {\n if (typeof requestIdleCallback === \"function\") {\n requestIdleCallback(load);\n } else {\n setTimeout(load, 1);\n }\n } else {\n window.addEventListener(\"load\", () => {\n if (typeof requestIdleCallback === \"function\") {\n requestIdleCallback(load);\n } else {\n setTimeout(load, 1);\n }\n });\n }\n } else {\n // \"afterInteractive\" (default), \"beforeInteractive\" (client re-mount), \"worker\"\n load();\n }\n }, [src, id, strategy, onLoad, onReady, onError, children, dangerouslySetInnerHTML, key, rest]);\n\n // The component itself renders nothing — scripts are injected imperatively\n return null;\n}\n\nexport default Script;\n"]}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Shim for the `server-only` package.
3
+ *
4
+ * The real `server-only` npm package uses the `react-server` export
5
+ * condition: it's a no-op when resolved with react-server conditions
6
+ * (RSC environment), and throws when imported in a client bundle.
7
+ *
8
+ * In Vite with @vitejs/plugin-rsc, the RSC environment already uses
9
+ * react-server conditions, so if the real package is installed it works
10
+ * automatically. This shim exists as a fallback so users don't need to
11
+ * install `server-only` as a separate dependency — importing it just
12
+ * works.
13
+ *
14
+ * Build-time enforcement (preventing server code from leaking into
15
+ * client bundles) is handled by the RSC plugin's environment system
16
+ * and "use client" / "use server" directives, not by this module.
17
+ */
18
+ export {};
19
+ //# sourceMappingURL=server-only.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-only.d.ts","sourceRoot":"","sources":["../../src/shims/server-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Shim for the `server-only` package.
3
+ *
4
+ * The real `server-only` npm package uses the `react-server` export
5
+ * condition: it's a no-op when resolved with react-server conditions
6
+ * (RSC environment), and throws when imported in a client bundle.
7
+ *
8
+ * In Vite with @vitejs/plugin-rsc, the RSC environment already uses
9
+ * react-server conditions, so if the real package is installed it works
10
+ * automatically. This shim exists as a fallback so users don't need to
11
+ * install `server-only` as a separate dependency — importing it just
12
+ * works.
13
+ *
14
+ * Build-time enforcement (preventing server code from leaking into
15
+ * client bundles) is handled by the RSC plugin's environment system
16
+ * and "use client" / "use server" directives, not by this module.
17
+ */
18
+ export {};
19
+ //# sourceMappingURL=server-only.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-only.js","sourceRoot":"","sources":["../../src/shims/server-only.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG","sourcesContent":["/**\n * Shim for the `server-only` package.\n *\n * The real `server-only` npm package uses the `react-server` export\n * condition: it's a no-op when resolved with react-server conditions\n * (RSC environment), and throws when imported in a client bundle.\n *\n * In Vite with @vitejs/plugin-rsc, the RSC environment already uses\n * react-server conditions, so if the real package is installed it works\n * automatically. This shim exists as a fallback so users don't need to\n * install `server-only` as a separate dependency — importing it just\n * works.\n *\n * Build-time enforcement (preventing server code from leaking into\n * client bundles) is handled by the RSC plugin's environment system\n * and \"use client\" / \"use server\" directives, not by this module.\n */\n\n// Intentionally empty — this is a marker import, not a runtime API.\nexport {};\n"]}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * next/server shim
3
+ *
4
+ * Provides NextRequest, NextResponse, and related types that work with
5
+ * standard Web APIs (Request/Response). This means they work on Node,
6
+ * Cloudflare Workers, Deno, and any WinterCG-compatible runtime.
7
+ *
8
+ * This is a pragmatic subset — we implement the most commonly used APIs
9
+ * rather than bug-for-bug parity with Next.js internals.
10
+ */
11
+ export declare class NextRequest extends Request {
12
+ private _nextUrl;
13
+ private _cookies;
14
+ constructor(input: URL | RequestInfo, init?: RequestInit);
15
+ get nextUrl(): NextURL;
16
+ get cookies(): RequestCookies;
17
+ /**
18
+ * Client IP address. Prefers Cloudflare's trusted CF-Connecting-IP header
19
+ * over the spoofable X-Forwarded-For. Returns undefined if unavailable.
20
+ */
21
+ get ip(): string | undefined;
22
+ /**
23
+ * Geolocation data. Platform-dependent (e.g., Cloudflare, Vercel).
24
+ * Returns undefined if not available.
25
+ */
26
+ get geo(): {
27
+ city?: string;
28
+ country?: string;
29
+ region?: string;
30
+ latitude?: string;
31
+ longitude?: string;
32
+ } | undefined;
33
+ }
34
+ export declare class NextResponse<_Body = unknown> extends Response {
35
+ private _cookies;
36
+ constructor(body?: BodyInit | null, init?: ResponseInit);
37
+ get cookies(): ResponseCookies;
38
+ /**
39
+ * Create a JSON response.
40
+ */
41
+ static json<JsonBody>(body: JsonBody, init?: ResponseInit): NextResponse<JsonBody>;
42
+ /**
43
+ * Create a redirect response.
44
+ */
45
+ static redirect(url: string | URL, init?: number | ResponseInit): NextResponse;
46
+ /**
47
+ * Create a rewrite response (middleware pattern).
48
+ * Sets the x-middleware-rewrite header.
49
+ */
50
+ static rewrite(destination: string | URL, init?: MiddlewareResponseInit): NextResponse;
51
+ /**
52
+ * Continue to the next handler (middleware pattern).
53
+ * Sets the x-middleware-next header.
54
+ */
55
+ static next(init?: MiddlewareResponseInit): NextResponse;
56
+ }
57
+ export declare class NextURL {
58
+ private _url;
59
+ constructor(input: string | URL, base?: string | URL);
60
+ get href(): string;
61
+ get origin(): string;
62
+ get protocol(): string;
63
+ get host(): string;
64
+ get hostname(): string;
65
+ get port(): string;
66
+ get pathname(): string;
67
+ get search(): string;
68
+ get searchParams(): URLSearchParams;
69
+ get hash(): string;
70
+ set pathname(value: string);
71
+ set search(value: string);
72
+ set hash(value: string);
73
+ clone(): NextURL;
74
+ toString(): string;
75
+ }
76
+ interface CookieEntry {
77
+ name: string;
78
+ value: string;
79
+ }
80
+ export declare class RequestCookies {
81
+ private _headers;
82
+ constructor(headers: Headers);
83
+ private _parse;
84
+ get(name: string): CookieEntry | undefined;
85
+ getAll(): CookieEntry[];
86
+ has(name: string): boolean;
87
+ [Symbol.iterator](): IterableIterator<[string, CookieEntry]>;
88
+ }
89
+ export declare class ResponseCookies {
90
+ private _headers;
91
+ constructor(headers: Headers);
92
+ set(name: string, value: string, options?: CookieOptions): this;
93
+ get(name: string): CookieEntry | undefined;
94
+ getAll(): CookieEntry[];
95
+ delete(name: string): this;
96
+ [Symbol.iterator](): IterableIterator<[string, CookieEntry]>;
97
+ }
98
+ interface CookieOptions {
99
+ path?: string;
100
+ domain?: string;
101
+ maxAge?: number;
102
+ expires?: Date;
103
+ httpOnly?: boolean;
104
+ secure?: boolean;
105
+ sameSite?: "Strict" | "Lax" | "None";
106
+ }
107
+ export interface MiddlewareResponseInit extends ResponseInit {
108
+ request?: {
109
+ headers?: Headers;
110
+ };
111
+ }
112
+ export type NextMiddlewareResult = NextResponse | Response | null | undefined | void;
113
+ export type NextMiddleware = (request: NextRequest, event: NextFetchEvent) => NextMiddlewareResult | Promise<NextMiddlewareResult>;
114
+ /**
115
+ * Minimal NextFetchEvent — extends FetchEvent where available,
116
+ * otherwise provides the waitUntil pattern standalone.
117
+ */
118
+ export declare class NextFetchEvent {
119
+ sourcePage: string;
120
+ private _waitUntilPromises;
121
+ constructor(params: {
122
+ page: string;
123
+ });
124
+ waitUntil(promise: Promise<unknown>): void;
125
+ }
126
+ /**
127
+ * Parse user agent string. Minimal implementation — for full UA parsing,
128
+ * apps should use a dedicated library like `ua-parser-js`.
129
+ */
130
+ export declare function userAgentFromString(ua: string | undefined): UserAgent;
131
+ export declare function userAgent({ headers }: {
132
+ headers: Headers;
133
+ }): UserAgent;
134
+ export interface UserAgent {
135
+ isBot: boolean;
136
+ ua: string;
137
+ browser: {
138
+ name?: string;
139
+ version?: string;
140
+ major?: string;
141
+ };
142
+ device: {
143
+ model?: string;
144
+ type?: string;
145
+ vendor?: string;
146
+ };
147
+ engine: {
148
+ name?: string;
149
+ version?: string;
150
+ };
151
+ os: {
152
+ name?: string;
153
+ version?: string;
154
+ };
155
+ cpu: {
156
+ architecture?: string;
157
+ };
158
+ }
159
+ /**
160
+ * after() — schedule work after the response is sent.
161
+ * In a real server, this would use the platform's waitUntil.
162
+ * Here we simply run it as a microtask (best-effort).
163
+ */
164
+ export declare function after<T>(task: Promise<T> | (() => T | Promise<T>)): void;
165
+ /**
166
+ * connection() — signals that the response requires a live connection
167
+ * (not a static/cached response). Opts the page out of ISR caching
168
+ * and sets Cache-Control: no-store on the response.
169
+ */
170
+ export declare function connection(): Promise<void>;
171
+ /**
172
+ * URLPattern re-export — used in middleware for route matching.
173
+ * Available natively in Node 20+, Cloudflare Workers, Deno.
174
+ * Falls back to urlpattern-polyfill if the global is not available.
175
+ */
176
+ export declare const URLPattern: typeof globalThis.URLPattern;
177
+ export {};
178
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/shims/server.ts"],"names":[],"mappings":"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"}