@farm.js/core 0.1.0-beta.60 → 0.1.0-beta.61

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 (80) hide show
  1. package/dist/api/route-manager.cjs.map +1 -1
  2. package/dist/api/route-manager.mjs +3 -3
  3. package/dist/api/runtime.cjs.map +1 -1
  4. package/dist/api/runtime.mjs +2 -2
  5. package/dist/api.cjs.map +1 -1
  6. package/dist/api.mjs +4 -4
  7. package/dist/{chunk-AZ7YUVNR.mjs → chunk-5NEFU3S3.mjs} +2 -2
  8. package/dist/{chunk-HRIVGIZJ.mjs → chunk-6HUGGEFE.mjs} +2 -2
  9. package/dist/{chunk-G6OZHT7C.mjs → chunk-BYBYZSQ4.mjs} +3 -3
  10. package/dist/{chunk-IZ3MFWMA.mjs → chunk-H3W5RDTS.mjs} +2 -2
  11. package/dist/{chunk-IZ3MFWMA.mjs.map → chunk-H3W5RDTS.mjs.map} +1 -1
  12. package/dist/{chunk-P7QDS5AT.mjs → chunk-HUATZB2U.mjs} +2 -2
  13. package/dist/{chunk-I7O53NAU.mjs → chunk-IIHDYOPJ.mjs} +2 -2
  14. package/dist/{chunk-IWR7S3AN.mjs → chunk-ITSBK56Q.mjs} +2 -2
  15. package/dist/{chunk-4IVNW5QD.mjs → chunk-M5PSI4YG.mjs} +7 -6
  16. package/dist/chunk-M5PSI4YG.mjs.map +1 -0
  17. package/dist/{chunk-F3HQMJEF.mjs → chunk-O7JLZXUV.mjs} +2 -2
  18. package/dist/{chunk-ILT7MCIM.mjs → chunk-SDCCR55N.mjs} +2 -2
  19. package/dist/{chunk-26MEOJQB.mjs → chunk-STAPBBAB.mjs} +3 -3
  20. package/dist/{chunk-HX6EW6KA.mjs → chunk-VGOJAATN.mjs} +2 -2
  21. package/dist/{chunk-RHIFZZUI.mjs → chunk-X6WJFY7U.mjs} +7 -2
  22. package/dist/{chunk-RHIFZZUI.mjs.map → chunk-X6WJFY7U.mjs.map} +1 -1
  23. package/dist/{chunk-P5SUT2TG.mjs → chunk-XN5ECVA5.mjs} +7 -7
  24. package/dist/client/lifecycle.mjs +2 -2
  25. package/dist/client-plugins.cjs +1 -1
  26. package/dist/client-plugins.cjs.map +1 -1
  27. package/dist/client-plugins.mjs +2 -2
  28. package/dist/client.cjs +1 -1
  29. package/dist/client.cjs.map +1 -1
  30. package/dist/client.mjs +2 -2
  31. package/dist/headers.cjs.map +1 -1
  32. package/dist/headers.mjs +2 -2
  33. package/dist/index.cjs +9 -4
  34. package/dist/index.cjs.map +1 -1
  35. package/dist/index.mjs +14 -14
  36. package/dist/internal/build-runtime.cjs +8 -13
  37. package/dist/internal/build-runtime.cjs.map +1 -1
  38. package/dist/internal/build-runtime.mjs +9 -9
  39. package/dist/internal/client-runtime.cjs +1 -1
  40. package/dist/internal/client-runtime.cjs.map +1 -1
  41. package/dist/internal/client-runtime.mjs +2 -2
  42. package/dist/internal/production-runtime.cjs +8 -3
  43. package/dist/internal/production-runtime.cjs.map +1 -1
  44. package/dist/internal/production-runtime.mjs +4 -4
  45. package/dist/middleware.cjs.map +1 -1
  46. package/dist/middleware.mjs +5 -5
  47. package/dist/plugin.cjs +8 -13
  48. package/dist/plugin.cjs.map +1 -1
  49. package/dist/plugin.mjs +8 -8
  50. package/dist/request.cjs.map +1 -1
  51. package/dist/request.mjs +1 -1
  52. package/dist/server.cjs +9 -4
  53. package/dist/server.cjs.map +1 -1
  54. package/dist/server.mjs +8 -8
  55. package/dist/testing.cjs.map +1 -1
  56. package/dist/testing.mjs +3 -3
  57. package/dist/theme/server.cjs +7 -12
  58. package/dist/theme/server.cjs.map +1 -1
  59. package/dist/theme/server.d.mts +2 -2
  60. package/dist/theme/server.d.ts +2 -2
  61. package/dist/theme/server.mjs +2 -2
  62. package/dist/version.cjs +1 -1
  63. package/dist/version.cjs.map +1 -1
  64. package/dist/version.mjs +1 -1
  65. package/dist/vite.cjs +8 -13
  66. package/dist/vite.cjs.map +1 -1
  67. package/dist/vite.mjs +8 -8
  68. package/package.json +1 -1
  69. package/dist/chunk-4IVNW5QD.mjs.map +0 -1
  70. /package/dist/{chunk-AZ7YUVNR.mjs.map → chunk-5NEFU3S3.mjs.map} +0 -0
  71. /package/dist/{chunk-HRIVGIZJ.mjs.map → chunk-6HUGGEFE.mjs.map} +0 -0
  72. /package/dist/{chunk-G6OZHT7C.mjs.map → chunk-BYBYZSQ4.mjs.map} +0 -0
  73. /package/dist/{chunk-P7QDS5AT.mjs.map → chunk-HUATZB2U.mjs.map} +0 -0
  74. /package/dist/{chunk-I7O53NAU.mjs.map → chunk-IIHDYOPJ.mjs.map} +0 -0
  75. /package/dist/{chunk-IWR7S3AN.mjs.map → chunk-ITSBK56Q.mjs.map} +0 -0
  76. /package/dist/{chunk-F3HQMJEF.mjs.map → chunk-O7JLZXUV.mjs.map} +0 -0
  77. /package/dist/{chunk-ILT7MCIM.mjs.map → chunk-SDCCR55N.mjs.map} +0 -0
  78. /package/dist/{chunk-26MEOJQB.mjs.map → chunk-STAPBBAB.mjs.map} +0 -0
  79. /package/dist/{chunk-HX6EW6KA.mjs.map → chunk-VGOJAATN.mjs.map} +0 -0
  80. /package/dist/{chunk-P5SUT2TG.mjs.map → chunk-XN5ECVA5.mjs.map} +0 -0
package/dist/testing.mjs CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  resolveFarmRouteContext,
16
16
  withFarmRouteContext
17
17
  } from "./chunk-QKVUNGAH.mjs";
18
- import "./chunk-IWR7S3AN.mjs";
18
+ import "./chunk-ITSBK56Q.mjs";
19
19
  import "./chunk-HO33MT4X.mjs";
20
20
  import "./chunk-FQYDHKKU.mjs";
21
21
  import "./chunk-SXWF4QRU.mjs";
@@ -23,9 +23,9 @@ import "./chunk-YB7QPRM4.mjs";
23
23
  import {
24
24
  invokeAPIRouteEndpoint,
25
25
  matchAPIRoute
26
- } from "./chunk-HX6EW6KA.mjs";
26
+ } from "./chunk-VGOJAATN.mjs";
27
27
  import "./chunk-YTMDIHQN.mjs";
28
- import "./chunk-RHIFZZUI.mjs";
28
+ import "./chunk-X6WJFY7U.mjs";
29
29
  import "./chunk-LM2YNO4U.mjs";
30
30
  import "./chunk-ALCLXXTY.mjs";
31
31
  import "./chunk-GN72QAIH.mjs";
@@ -57,16 +57,10 @@ function getRequestStore() {
57
57
  __name(getRequestStore, "getRequestStore");
58
58
  var requestStore = getRequestStore();
59
59
  _setCurrentRequestResolver(() => requestStore.getStore());
60
- function getCurrentRequest() {
61
- const request = requestStore.getStore();
62
- if (!request) {
63
- throw new Error(
64
- "No current request is available. getCurrentRequest() can only be used during server rendering."
65
- );
66
- }
67
- return request;
60
+ function getCurrentRequestOrNull() {
61
+ return requestStore.getStore() ?? null;
68
62
  }
69
- __name(getCurrentRequest, "getCurrentRequest");
63
+ __name(getCurrentRequestOrNull, "getCurrentRequestOrNull");
70
64
 
71
65
  // src/theme/bridge.ts
72
66
  var FALLBACK_SERVER_SNAPSHOT = Object.freeze({
@@ -126,12 +120,13 @@ function _setDefaultFarmThemeConfig(config, basePath = "/") {
126
120
  defaultThemeConfig = resolveFarmThemeConfig(config, basePath);
127
121
  }
128
122
  __name(_setDefaultFarmThemeConfig, "_setDefaultFarmThemeConfig");
129
- function getTheme(request = getCurrentRequest()) {
123
+ function getTheme(request = getCurrentRequestOrNull()) {
124
+ if (!request) return defaultThemeConfig.default;
130
125
  return readFarmThemePreference(request, defaultThemeConfig);
131
126
  }
132
127
  __name(getTheme, "getTheme");
133
- function getThemeSnapshot(request = getCurrentRequest()) {
134
- const theme = readFarmThemePreference(request, defaultThemeConfig);
128
+ function getThemeSnapshot(request = getCurrentRequestOrNull()) {
129
+ const theme = request ? readFarmThemePreference(request, defaultThemeConfig) : defaultThemeConfig.default;
135
130
  return {
136
131
  theme,
137
132
  resolvedTheme: theme === "system" ? void 0 : theme,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/theme/server.ts","../../src/server/request.ts","../../src/server/request-bridge.ts","../../src/theme/bridge.ts","../../src/theme/config.ts"],"sourcesContent":["import { getCurrentRequest } from \"../server/request\";\nimport { _setFarmThemeServerSnapshotResolver } from \"./bridge\";\nimport { resolveFarmThemeConfig } from \"./config\";\nimport type {\n FarmThemeConfig,\n FarmThemePreference,\n FarmThemeSnapshot,\n ResolvedFarmThemeConfig,\n} from \"./types\";\n\nlet defaultThemeConfig = resolveFarmThemeConfig(undefined);\n\nexport function _setDefaultFarmThemeConfig(\n config: FarmThemeConfig | ResolvedFarmThemeConfig | false | undefined,\n basePath = \"/\",\n): void {\n defaultThemeConfig = resolveFarmThemeConfig(config, basePath);\n}\n\nexport function getTheme(request: Request = getCurrentRequest()): FarmThemePreference {\n return readFarmThemePreference(request, defaultThemeConfig);\n}\n\nexport function getThemeSnapshot(request: Request = getCurrentRequest()): FarmThemeSnapshot {\n const theme = readFarmThemePreference(request, defaultThemeConfig);\n return {\n theme,\n resolvedTheme: theme === \"system\" ? undefined : theme,\n mounted: false,\n };\n}\n\nexport function readFarmThemePreference(\n request: Request,\n config: ResolvedFarmThemeConfig,\n): FarmThemePreference {\n if (!config.enabled) return config.default;\n const stored = readCookie(request.headers.get(\"cookie\"), config.storageKey);\n return isFarmThemePreference(stored) ? stored : config.default;\n}\n\nfunction readCookie(cookieHeader: string | null, name: string): string | undefined {\n if (!cookieHeader) return undefined;\n for (const entry of cookieHeader.split(\";\")) {\n const separator = entry.indexOf(\"=\");\n if (separator < 0) continue;\n const key = decodeCookieValue(entry.slice(0, separator).trim());\n if (key !== name) continue;\n return decodeCookieValue(entry.slice(separator + 1).trim());\n }\n return undefined;\n}\n\nfunction decodeCookieValue(value: string): string {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n}\n\nfunction isFarmThemePreference(value: unknown): value is FarmThemePreference {\n return value === \"light\" || value === \"dark\" || value === \"system\";\n}\n\n_setFarmThemeServerSnapshotResolver(() => {\n try {\n return getThemeSnapshot();\n } catch {\n const theme = defaultThemeConfig.default;\n return {\n theme,\n resolvedTheme: theme === \"system\" ? undefined : theme,\n mounted: false,\n };\n }\n});\n","import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { FarmRequest } from \"../types\";\nimport { _setCurrentRequestResolver } from \"./request-bridge\";\n\nconst REQUEST_STORAGE_KEY = Symbol.for(\"@farm.js/core/request-storage\");\n\nfunction getRequestStore(): AsyncLocalStorage<Request> {\n const runtime = globalThis as typeof globalThis & Record<PropertyKey, unknown>;\n const existing = runtime[REQUEST_STORAGE_KEY];\n if (existing instanceof AsyncLocalStorage) {\n return existing as AsyncLocalStorage<Request>;\n }\n\n const storage = new AsyncLocalStorage<Request>();\n runtime[REQUEST_STORAGE_KEY] = storage;\n return storage;\n}\n\nconst requestStore = getRequestStore();\n\n_setCurrentRequestResolver(() => requestStore.getStore());\n\nexport function createWebRequestFromFarmRequest(req: FarmRequest): Request {\n const forwardedHost = req.headers[\"x-forwarded-host\"];\n const host = Array.isArray(forwardedHost)\n ? forwardedHost[0]\n : forwardedHost || req.headers.host || \"localhost\";\n const forwardedProto = req.headers[\"x-forwarded-proto\"];\n const proto = Array.isArray(forwardedProto) ? forwardedProto[0] : forwardedProto || \"http\";\n const fullUrl = new URL(req.url || \"/\", `${proto}://${host}`).toString();\n\n const headers = new Headers();\n for (const [key, value] of Object.entries(req.headers)) {\n if (value == null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n headers.append(key, item);\n }\n continue;\n }\n\n headers.set(key, value);\n }\n\n return new Request(fullUrl, {\n method: req.method,\n headers,\n });\n}\n\nexport async function _runWithCurrentRequest<T>(\n request: Request,\n fn: () => Promise<T> | T,\n): Promise<T> {\n return requestStore.run(request, fn);\n}\n\nexport function getCurrentRequest(): Request {\n const request = requestStore.getStore();\n if (!request) {\n throw new Error(\n \"No current request is available. getCurrentRequest() can only be used during server rendering.\",\n );\n }\n\n return request;\n}\n","type CurrentRequestResolver = () => Request | undefined;\n\nconst CURRENT_REQUEST_RESOLVER_KEY = Symbol.for(\"farm.currentRequestResolver\");\n\ntype GlobalWithCurrentRequestResolver = typeof globalThis & {\n [CURRENT_REQUEST_RESOLVER_KEY]?: CurrentRequestResolver;\n};\n\nfunction getGlobalState(): GlobalWithCurrentRequestResolver {\n return globalThis as GlobalWithCurrentRequestResolver;\n}\n\nexport function _setCurrentRequestResolver(resolver: CurrentRequestResolver | undefined): void {\n getGlobalState()[CURRENT_REQUEST_RESOLVER_KEY] = resolver;\n}\n\nexport function _resolveCurrentRequest(): Request | undefined {\n return getGlobalState()[CURRENT_REQUEST_RESOLVER_KEY]?.();\n}\n","import type { FarmThemeSnapshot } from \"./types\";\n\nconst FALLBACK_SERVER_SNAPSHOT: FarmThemeSnapshot = Object.freeze({\n theme: \"system\",\n resolvedTheme: undefined,\n mounted: false,\n});\n\nconst FARM_THEME_SERVER_SNAPSHOT_RESOLVER = Symbol.for(\"farm.js.theme.server-snapshot-resolver\");\n\ntype FarmThemeBridgeGlobal = typeof globalThis & {\n [FARM_THEME_SERVER_SNAPSHOT_RESOLVER]?: () => FarmThemeSnapshot;\n};\n\nexport function _setFarmThemeServerSnapshotResolver(resolver: () => FarmThemeSnapshot): void {\n (globalThis as FarmThemeBridgeGlobal)[FARM_THEME_SERVER_SNAPSHOT_RESOLVER] = resolver;\n}\n\nexport function getFarmThemeServerSnapshot(): FarmThemeSnapshot {\n return (\n (globalThis as FarmThemeBridgeGlobal)[FARM_THEME_SERVER_SNAPSHOT_RESOLVER]?.() ??\n FALLBACK_SERVER_SNAPSHOT\n );\n}\n","import type { FarmThemeConfig, ResolvedFarmThemeConfig } from \"./types\";\n\nexport const DEFAULT_FARM_THEME_STORAGE_KEY = \"farm-theme\";\n\nconst STORAGE_KEY_PATTERN = /^[A-Za-z0-9._-]+$/;\n\nexport function resolveFarmThemeConfig(\n config: FarmThemeConfig | ResolvedFarmThemeConfig | false | undefined,\n basePath = \"/\",\n): ResolvedFarmThemeConfig {\n if (config && \"enabled\" in config) {\n return config;\n }\n\n if (!config) {\n return {\n enabled: false,\n default: \"system\",\n storageKey: DEFAULT_FARM_THEME_STORAGE_KEY,\n cookiePath: normalizeCookiePath(basePath),\n };\n }\n\n const storageKey = config.storageKey?.trim() || DEFAULT_FARM_THEME_STORAGE_KEY;\n if (!STORAGE_KEY_PATTERN.test(storageKey)) {\n throw new Error(\n \"theme.storageKey may only contain letters, numbers, dots, underscores, and hyphens.\",\n );\n }\n\n const defaultTheme = config.default ?? \"system\";\n if (defaultTheme !== \"light\" && defaultTheme !== \"dark\" && defaultTheme !== \"system\") {\n throw new Error('theme.default must be \"light\", \"dark\", or \"system\".');\n }\n\n return {\n enabled: true,\n default: defaultTheme,\n storageKey,\n cookiePath: normalizeCookiePath(basePath),\n };\n}\n\nfunction normalizeCookiePath(basePath: string): string {\n const normalized = `/${basePath}`.replace(/\\/{2,}/g, \"/\");\n if (normalized === \"/\") return normalized;\n return normalized.replace(/\\/$/, \"\");\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/theme/server.ts","../../src/server/request.ts","../../src/server/request-bridge.ts","../../src/theme/bridge.ts","../../src/theme/config.ts"],"sourcesContent":["import { getCurrentRequestOrNull } from \"../server/request\";\nimport { _setFarmThemeServerSnapshotResolver } from \"./bridge\";\nimport { resolveFarmThemeConfig } from \"./config\";\nimport type {\n FarmThemeConfig,\n FarmThemePreference,\n FarmThemeSnapshot,\n ResolvedFarmThemeConfig,\n} from \"./types\";\n\nlet defaultThemeConfig = resolveFarmThemeConfig(undefined);\n\nexport function _setDefaultFarmThemeConfig(\n config: FarmThemeConfig | ResolvedFarmThemeConfig | false | undefined,\n basePath = \"/\",\n): void {\n defaultThemeConfig = resolveFarmThemeConfig(config, basePath);\n}\n\n// The theme preference is cosmetic, so a missing request context must never\n// crash a render: without a request to read the cookie from, the configured\n// default applies. Runtimes with partial AsyncLocalStorage support (for\n// example StackBlitz WebContainers) can lose the store mid-render, and a\n// thrown error here would also take down the error page itself.\nexport function getTheme(request: Request | null = getCurrentRequestOrNull()): FarmThemePreference {\n if (!request) return defaultThemeConfig.default;\n return readFarmThemePreference(request, defaultThemeConfig);\n}\n\nexport function getThemeSnapshot(\n request: Request | null = getCurrentRequestOrNull(),\n): FarmThemeSnapshot {\n const theme = request\n ? readFarmThemePreference(request, defaultThemeConfig)\n : defaultThemeConfig.default;\n return {\n theme,\n resolvedTheme: theme === \"system\" ? undefined : theme,\n mounted: false,\n };\n}\n\nexport function readFarmThemePreference(\n request: Request,\n config: ResolvedFarmThemeConfig,\n): FarmThemePreference {\n if (!config.enabled) return config.default;\n const stored = readCookie(request.headers.get(\"cookie\"), config.storageKey);\n return isFarmThemePreference(stored) ? stored : config.default;\n}\n\nfunction readCookie(cookieHeader: string | null, name: string): string | undefined {\n if (!cookieHeader) return undefined;\n for (const entry of cookieHeader.split(\";\")) {\n const separator = entry.indexOf(\"=\");\n if (separator < 0) continue;\n const key = decodeCookieValue(entry.slice(0, separator).trim());\n if (key !== name) continue;\n return decodeCookieValue(entry.slice(separator + 1).trim());\n }\n return undefined;\n}\n\nfunction decodeCookieValue(value: string): string {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n}\n\nfunction isFarmThemePreference(value: unknown): value is FarmThemePreference {\n return value === \"light\" || value === \"dark\" || value === \"system\";\n}\n\n_setFarmThemeServerSnapshotResolver(() => {\n try {\n return getThemeSnapshot();\n } catch {\n const theme = defaultThemeConfig.default;\n return {\n theme,\n resolvedTheme: theme === \"system\" ? undefined : theme,\n mounted: false,\n };\n }\n});\n","import { AsyncLocalStorage } from \"node:async_hooks\";\nimport type { FarmRequest } from \"../types\";\nimport { _setCurrentRequestResolver } from \"./request-bridge\";\n\nconst REQUEST_STORAGE_KEY = Symbol.for(\"@farm.js/core/request-storage\");\n\nfunction getRequestStore(): AsyncLocalStorage<Request> {\n const runtime = globalThis as typeof globalThis & Record<PropertyKey, unknown>;\n const existing = runtime[REQUEST_STORAGE_KEY];\n if (existing instanceof AsyncLocalStorage) {\n return existing as AsyncLocalStorage<Request>;\n }\n\n const storage = new AsyncLocalStorage<Request>();\n runtime[REQUEST_STORAGE_KEY] = storage;\n return storage;\n}\n\nconst requestStore = getRequestStore();\n\n_setCurrentRequestResolver(() => requestStore.getStore());\n\nexport function createWebRequestFromFarmRequest(req: FarmRequest): Request {\n const forwardedHost = req.headers[\"x-forwarded-host\"];\n const host = Array.isArray(forwardedHost)\n ? forwardedHost[0]\n : forwardedHost || req.headers.host || \"localhost\";\n const forwardedProto = req.headers[\"x-forwarded-proto\"];\n const proto = Array.isArray(forwardedProto) ? forwardedProto[0] : forwardedProto || \"http\";\n const fullUrl = new URL(req.url || \"/\", `${proto}://${host}`).toString();\n\n const headers = new Headers();\n for (const [key, value] of Object.entries(req.headers)) {\n if (value == null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n for (const item of value) {\n headers.append(key, item);\n }\n continue;\n }\n\n headers.set(key, value);\n }\n\n return new Request(fullUrl, {\n method: req.method,\n headers,\n });\n}\n\nexport async function _runWithCurrentRequest<T>(\n request: Request,\n fn: () => Promise<T> | T,\n): Promise<T> {\n return requestStore.run(request, fn);\n}\n\nexport function getCurrentRequest(): Request {\n const request = requestStore.getStore();\n if (!request) {\n throw new Error(\n \"No current request is available. getCurrentRequest() can only be used during server rendering.\",\n );\n }\n\n return request;\n}\n\n// Some runtimes (StackBlitz WebContainers among them) lose AsyncLocalStorage\n// context across async boundaries mid-render. Callers whose feature can\n// degrade gracefully should use this instead of getCurrentRequest() so a\n// missing store never turns into a 500.\nexport function getCurrentRequestOrNull(): Request | null {\n return requestStore.getStore() ?? null;\n}\n","type CurrentRequestResolver = () => Request | undefined;\n\nconst CURRENT_REQUEST_RESOLVER_KEY = Symbol.for(\"farm.currentRequestResolver\");\n\ntype GlobalWithCurrentRequestResolver = typeof globalThis & {\n [CURRENT_REQUEST_RESOLVER_KEY]?: CurrentRequestResolver;\n};\n\nfunction getGlobalState(): GlobalWithCurrentRequestResolver {\n return globalThis as GlobalWithCurrentRequestResolver;\n}\n\nexport function _setCurrentRequestResolver(resolver: CurrentRequestResolver | undefined): void {\n getGlobalState()[CURRENT_REQUEST_RESOLVER_KEY] = resolver;\n}\n\nexport function _resolveCurrentRequest(): Request | undefined {\n return getGlobalState()[CURRENT_REQUEST_RESOLVER_KEY]?.();\n}\n","import type { FarmThemeSnapshot } from \"./types\";\n\nconst FALLBACK_SERVER_SNAPSHOT: FarmThemeSnapshot = Object.freeze({\n theme: \"system\",\n resolvedTheme: undefined,\n mounted: false,\n});\n\nconst FARM_THEME_SERVER_SNAPSHOT_RESOLVER = Symbol.for(\"farm.js.theme.server-snapshot-resolver\");\n\ntype FarmThemeBridgeGlobal = typeof globalThis & {\n [FARM_THEME_SERVER_SNAPSHOT_RESOLVER]?: () => FarmThemeSnapshot;\n};\n\nexport function _setFarmThemeServerSnapshotResolver(resolver: () => FarmThemeSnapshot): void {\n (globalThis as FarmThemeBridgeGlobal)[FARM_THEME_SERVER_SNAPSHOT_RESOLVER] = resolver;\n}\n\nexport function getFarmThemeServerSnapshot(): FarmThemeSnapshot {\n return (\n (globalThis as FarmThemeBridgeGlobal)[FARM_THEME_SERVER_SNAPSHOT_RESOLVER]?.() ??\n FALLBACK_SERVER_SNAPSHOT\n );\n}\n","import type { FarmThemeConfig, ResolvedFarmThemeConfig } from \"./types\";\n\nexport const DEFAULT_FARM_THEME_STORAGE_KEY = \"farm-theme\";\n\nconst STORAGE_KEY_PATTERN = /^[A-Za-z0-9._-]+$/;\n\nexport function resolveFarmThemeConfig(\n config: FarmThemeConfig | ResolvedFarmThemeConfig | false | undefined,\n basePath = \"/\",\n): ResolvedFarmThemeConfig {\n if (config && \"enabled\" in config) {\n return config;\n }\n\n if (!config) {\n return {\n enabled: false,\n default: \"system\",\n storageKey: DEFAULT_FARM_THEME_STORAGE_KEY,\n cookiePath: normalizeCookiePath(basePath),\n };\n }\n\n const storageKey = config.storageKey?.trim() || DEFAULT_FARM_THEME_STORAGE_KEY;\n if (!STORAGE_KEY_PATTERN.test(storageKey)) {\n throw new Error(\n \"theme.storageKey may only contain letters, numbers, dots, underscores, and hyphens.\",\n );\n }\n\n const defaultTheme = config.default ?? \"system\";\n if (defaultTheme !== \"light\" && defaultTheme !== \"dark\" && defaultTheme !== \"system\") {\n throw new Error('theme.default must be \"light\", \"dark\", or \"system\".');\n }\n\n return {\n enabled: true,\n default: defaultTheme,\n storageKey,\n cookiePath: normalizeCookiePath(basePath),\n };\n}\n\nfunction normalizeCookiePath(basePath: string): string {\n const normalized = `/${basePath}`.replace(/\\/{2,}/g, \"/\");\n if (normalized === \"/\") return normalized;\n return normalized.replace(/\\/$/, \"\");\n}\n"],"mappings":"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","names":[]}
@@ -1,8 +1,8 @@
1
1
  import { a as FarmThemePreference, F as FarmThemeSnapshot, d as FarmThemeConfig, R as ResolvedFarmThemeConfig } from '../types-DQnyD3VD.mjs';
2
2
 
3
3
  declare function _setDefaultFarmThemeConfig(config: FarmThemeConfig | ResolvedFarmThemeConfig | false | undefined, basePath?: string): void;
4
- declare function getTheme(request?: Request): FarmThemePreference;
5
- declare function getThemeSnapshot(request?: Request): FarmThemeSnapshot;
4
+ declare function getTheme(request?: Request | null): FarmThemePreference;
5
+ declare function getThemeSnapshot(request?: Request | null): FarmThemeSnapshot;
6
6
  declare function readFarmThemePreference(request: Request, config: ResolvedFarmThemeConfig): FarmThemePreference;
7
7
 
8
8
  export { _setDefaultFarmThemeConfig, getTheme, getThemeSnapshot, readFarmThemePreference };
@@ -1,8 +1,8 @@
1
1
  import { a as FarmThemePreference, F as FarmThemeSnapshot, d as FarmThemeConfig, R as ResolvedFarmThemeConfig } from '../types-DQnyD3VD.js';
2
2
 
3
3
  declare function _setDefaultFarmThemeConfig(config: FarmThemeConfig | ResolvedFarmThemeConfig | false | undefined, basePath?: string): void;
4
- declare function getTheme(request?: Request): FarmThemePreference;
5
- declare function getThemeSnapshot(request?: Request): FarmThemeSnapshot;
4
+ declare function getTheme(request?: Request | null): FarmThemePreference;
5
+ declare function getThemeSnapshot(request?: Request | null): FarmThemeSnapshot;
6
6
  declare function readFarmThemePreference(request: Request, config: ResolvedFarmThemeConfig): FarmThemePreference;
7
7
 
8
8
  export { _setDefaultFarmThemeConfig, getTheme, getThemeSnapshot, readFarmThemePreference };
@@ -3,9 +3,9 @@ import {
3
3
  getTheme,
4
4
  getThemeSnapshot,
5
5
  readFarmThemePreference
6
- } from "../chunk-4IVNW5QD.mjs";
6
+ } from "../chunk-M5PSI4YG.mjs";
7
7
  import "../chunk-H53KVQUU.mjs";
8
- import "../chunk-RHIFZZUI.mjs";
8
+ import "../chunk-X6WJFY7U.mjs";
9
9
  import "../chunk-LM2YNO4U.mjs";
10
10
  import "../chunk-GQVQESLY.mjs";
11
11
  import "../chunk-CGILA3WO.mjs";
package/dist/version.cjs CHANGED
@@ -25,7 +25,7 @@ __export(version_exports, {
25
25
  module.exports = __toCommonJS(version_exports);
26
26
 
27
27
  // package.json
28
- var version = "0.1.0-beta.60";
28
+ var version = "0.1.0-beta.61";
29
29
 
30
30
  // src/version.ts
31
31
  var FARM_VERSION = version;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/version.ts","../package.json"],"sourcesContent":["import { version } from \"../package.json\";\n\nexport const FARM_VERSION = version;\n","{\n \"name\": \"@farm.js/core\",\n \"version\": \"0.1.0-beta.60\",\n \"description\": \"Core Farm.js framework for modern integrated apps\",\n \"keywords\": [\n \"@farm.js/core\",\n \"framework\",\n \"react\",\n \"rsc\",\n \"server-components\",\n \"ssr\",\n \"vite\"\n ],\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/farming-labs/farm.js\",\n \"directory\": \"packages/farm\"\n },\n \"files\": [\n \"dist\",\n \"types\"\n ],\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.mjs\",\n \"types\": \"./dist/index.d.ts\",\n \"typesVersions\": {\n \"*\": {\n \"middleware\": [\n \"./types/middleware.d.ts\",\n \"./dist/middleware.d.ts\"\n ],\n \"version\": [\n \"./dist/version.d.ts\"\n ],\n \"router\": [\n \"./dist/router.d.ts\"\n ],\n \"routes\": [\n \"./dist/routes.d.ts\"\n ],\n \"storage\": [\n \"./dist/storage.d.ts\"\n ],\n \"integrations\": [\n \"./dist/integrations.d.ts\"\n ],\n \"cache\": [\n \"./dist/cache.d.ts\"\n ],\n \"deferred\": [\n \"./dist/deferred.d.ts\"\n ],\n \"after\": [\n \"./dist/after.d.ts\"\n ],\n \"navigation\": [\n \"./dist/navigation.d.ts\"\n ],\n \"headers\": [\n \"./dist/headers.d.ts\"\n ],\n \"theme\": [\n \"./dist/theme/index.d.ts\"\n ],\n \"theme/client\": [\n \"./dist/theme/client.d.ts\"\n ],\n \"theme/runtime\": [\n \"./dist/theme/runtime.d.ts\"\n ],\n \"theme/server\": [\n \"./dist/theme/server.d.ts\"\n ],\n \"docs\": [\n \"./dist/docs.d.ts\"\n ],\n \"markdown\": [\n \"./dist/markdown.d.ts\"\n ],\n \"app-markdown\": [\n \"./dist/app-markdown.d.ts\"\n ],\n \"observability\": [\n \"./dist/observability.d.ts\"\n ],\n \"instrumentation\": [\n \"./dist/instrumentation.d.ts\"\n ],\n \"workflows\": [\n \"./dist/workflows.d.ts\"\n ],\n \"cron\": [\n \"./dist/cron.d.ts\"\n ],\n \"server-fn\": [\n \"./dist/server-fn.d.ts\"\n ],\n \"server-fn/client\": [\n \"./dist/server-fn-client.d.ts\"\n ],\n \"server-query\": [\n \"./dist/server-query.d.ts\"\n ],\n \"server-query/client\": [\n \"./dist/server-query-client.d.ts\"\n ],\n \"server-action-security\": [\n \"./dist/server-action-security.d.ts\"\n ],\n \"deployment\": [\n \"./dist/deployment.d.ts\"\n ],\n \"env\": [\n \"./dist/env.d.ts\"\n ],\n \"env-types\": [\n \"./dist/env-types.d.ts\"\n ],\n \"environment\": [\n \"./dist/environment.d.ts\"\n ],\n \"environment/vite\": [\n \"./dist/environment/vite.d.ts\"\n ],\n \"font\": [\n \"./dist/font.d.ts\"\n ],\n \"testing\": [\n \"./dist/testing.d.ts\"\n ],\n \"agent-runtime\": [\n \"./dist/agent-runtime.d.ts\"\n ],\n \"css\": [\n \"./types/css.d.ts\"\n ],\n \"image\": [\n \"./types/image.d.ts\",\n \"./dist/image.d.ts\"\n ],\n \"image/server\": [\n \"./dist/image/server.d.ts\"\n ],\n \"image/sharp\": [\n \"./dist/image/sharp.d.ts\"\n ],\n \"i18n\": [\n \"./dist/i18n/index.d.ts\"\n ],\n \"i18n/server\": [\n \"./dist/i18n/server.d.ts\"\n ],\n \"i18n/client\": [\n \"./dist/i18n/client.d.ts\"\n ],\n \"internal/production-runtime\": [\n \"./dist/internal/production-runtime.d.ts\"\n ],\n \"internal/metadata-image-runtime\": [\n \"./dist/internal/metadata-image-runtime.d.ts\"\n ],\n \"internal/client-runtime\": [\n \"./dist/internal/client-runtime.d.ts\"\n ],\n \"internal/build-runtime\": [\n \"./dist/internal/build-runtime.d.ts\"\n ],\n \"internal/config-runtime\": [\n \"./dist/internal/config-runtime.d.ts\"\n ],\n \"internal/production-node-env\": [\n \"./dist/internal/production-node-env.d.ts\"\n ],\n \"config\": [\n \"./dist/config.d.ts\"\n ],\n \"renderer\": [\n \"./dist/renderer.d.ts\"\n ],\n \"renderer-client\": [\n \"./dist/renderer-client.d.ts\"\n ],\n \"api\": [\n \"./types/api.d.ts\",\n \"./dist/api.d.ts\"\n ],\n \"api/route-manager\": [\n \"./dist/api/route-manager.d.ts\"\n ],\n \"api/runtime\": [\n \"./dist/api/runtime.d.ts\"\n ],\n \"request\": [\n \"./dist/request.d.ts\"\n ],\n \"client\": [\n \"./types/client.d.ts\",\n \"./dist/client.d.ts\"\n ],\n \"client/lifecycle\": [\n \"./dist/client/lifecycle.d.ts\"\n ],\n \"server\": [\n \"./dist/server.d.ts\"\n ],\n \"vite\": [\n \"./dist/vite.d.ts\"\n ],\n \"plugin\": [\n \"./dist/plugin.d.ts\"\n ],\n \"query\": [\n \"./dist/query/index.d.ts\"\n ],\n \"*\": [\n \"./dist/*.d.ts\"\n ]\n }\n },\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.mjs\"\n },\n \"./version\": {\n \"types\": \"./dist/version.d.ts\",\n \"import\": \"./dist/version.mjs\",\n \"require\": \"./dist/version.cjs\"\n },\n \"./config\": {\n \"types\": \"./dist/config.d.ts\",\n \"import\": \"./dist/config.mjs\",\n \"require\": \"./dist/config.cjs\"\n },\n \"./renderer\": {\n \"types\": \"./dist/renderer.d.ts\",\n \"import\": \"./dist/renderer.mjs\",\n \"require\": \"./dist/renderer.cjs\"\n },\n \"./renderer-client\": {\n \"types\": \"./dist/renderer-client.d.ts\",\n \"import\": \"./dist/renderer-client.mjs\",\n \"require\": \"./dist/renderer-client.cjs\"\n },\n \"./renderer/react/server\": {\n \"types\": \"./dist/renderer/react/server.d.ts\",\n \"import\": \"./dist/renderer/react/server.mjs\",\n \"require\": \"./dist/renderer/react/server.cjs\"\n },\n \"./renderer/react/client\": {\n \"types\": \"./dist/renderer/react/client.d.ts\",\n \"import\": \"./dist/renderer/react/client.mjs\",\n \"require\": \"./dist/renderer/react/client.cjs\"\n },\n \"./renderer/react/vite\": {\n \"types\": \"./dist/renderer/react/vite.d.ts\",\n \"import\": \"./dist/renderer/react/vite.mjs\",\n \"require\": \"./dist/renderer/react/vite.cjs\"\n },\n \"./server\": {\n \"types\": \"./dist/server.d.ts\",\n \"import\": \"./dist/server.mjs\",\n \"require\": \"./dist/server.cjs\"\n },\n \"./client\": {\n \"types\": \"./types/client.d.ts\",\n \"import\": \"./dist/client.mjs\",\n \"require\": \"./dist/client.cjs\"\n },\n \"./client/lifecycle\": {\n \"types\": \"./dist/client/lifecycle.d.ts\",\n \"import\": \"./dist/client/lifecycle.mjs\",\n \"require\": \"./dist/client/lifecycle.cjs\"\n },\n \"./storage\": {\n \"types\": \"./dist/storage.d.ts\",\n \"import\": \"./dist/storage.mjs\",\n \"require\": \"./dist/storage.cjs\"\n },\n \"./integrations\": {\n \"types\": \"./dist/integrations.d.ts\",\n \"import\": \"./dist/integrations.mjs\",\n \"require\": \"./dist/integrations.cjs\"\n },\n \"./cache\": {\n \"types\": \"./dist/cache.d.ts\",\n \"import\": \"./dist/cache.mjs\",\n \"require\": \"./dist/cache.cjs\"\n },\n \"./deferred\": {\n \"types\": \"./dist/deferred.d.ts\",\n \"import\": \"./dist/deferred.mjs\",\n \"require\": \"./dist/deferred.cjs\"\n },\n \"./after\": {\n \"types\": \"./dist/after.d.ts\",\n \"import\": \"./dist/after.mjs\",\n \"require\": \"./dist/after.cjs\"\n },\n \"./navigation\": {\n \"types\": \"./dist/navigation.d.ts\",\n \"import\": \"./dist/navigation.mjs\",\n \"require\": \"./dist/navigation.cjs\"\n },\n \"./headers\": {\n \"types\": \"./dist/headers.d.ts\",\n \"import\": \"./dist/headers.mjs\",\n \"require\": \"./dist/headers.cjs\"\n },\n \"./theme\": {\n \"types\": \"./dist/theme/index.d.ts\",\n \"import\": \"./dist/theme/index.mjs\",\n \"require\": \"./dist/theme/index.cjs\"\n },\n \"./theme/client\": {\n \"types\": \"./dist/theme/client.d.ts\",\n \"import\": \"./dist/theme/client.mjs\",\n \"require\": \"./dist/theme/client.cjs\"\n },\n \"./theme/runtime\": {\n \"types\": \"./dist/theme/runtime.d.ts\",\n \"import\": \"./dist/theme/runtime.mjs\",\n \"require\": \"./dist/theme/runtime.cjs\"\n },\n \"./theme/server\": {\n \"types\": \"./dist/theme/server.d.ts\",\n \"import\": \"./dist/theme/server.mjs\",\n \"require\": \"./dist/theme/server.cjs\"\n },\n \"./docs\": {\n \"types\": \"./dist/docs.d.ts\",\n \"import\": \"./dist/docs.mjs\",\n \"require\": \"./dist/docs.cjs\"\n },\n \"./markdown\": {\n \"types\": \"./dist/markdown.d.ts\",\n \"import\": \"./dist/markdown.mjs\",\n \"require\": \"./dist/markdown.cjs\"\n },\n \"./app-markdown\": {\n \"types\": \"./dist/app-markdown.d.ts\",\n \"import\": \"./dist/app-markdown.mjs\",\n \"require\": \"./dist/app-markdown.cjs\"\n },\n \"./observability\": {\n \"types\": \"./dist/observability.d.ts\",\n \"import\": \"./dist/observability.mjs\",\n \"require\": \"./dist/observability.cjs\"\n },\n \"./instrumentation\": {\n \"types\": \"./dist/instrumentation.d.ts\",\n \"import\": \"./dist/instrumentation.mjs\",\n \"require\": \"./dist/instrumentation.cjs\"\n },\n \"./workflows\": {\n \"types\": \"./dist/workflows.d.ts\",\n \"import\": \"./dist/workflows.mjs\",\n \"require\": \"./dist/workflows.cjs\"\n },\n \"./cron\": {\n \"types\": \"./dist/cron.d.ts\",\n \"import\": \"./dist/cron.mjs\",\n \"require\": \"./dist/cron.cjs\"\n },\n \"./server-fn\": {\n \"types\": \"./dist/server-fn.d.ts\",\n \"import\": \"./dist/server-fn.mjs\",\n \"require\": \"./dist/server-fn.cjs\"\n },\n \"./server-fn/client\": {\n \"types\": \"./dist/server-fn-client.d.ts\",\n \"import\": \"./dist/server-fn-client.mjs\",\n \"require\": \"./dist/server-fn-client.cjs\"\n },\n \"./server-query\": {\n \"types\": \"./dist/server-query.d.ts\",\n \"import\": \"./dist/server-query.mjs\",\n \"require\": \"./dist/server-query.cjs\"\n },\n \"./server-query/client\": {\n \"types\": \"./dist/server-query-client.d.ts\",\n \"import\": \"./dist/server-query-client.mjs\",\n \"require\": \"./dist/server-query-client.cjs\"\n },\n \"./server-action-security\": {\n \"types\": \"./dist/server-action-security.d.ts\",\n \"import\": \"./dist/server-action-security.mjs\",\n \"require\": \"./dist/server-action-security.cjs\"\n },\n \"./deployment\": {\n \"types\": \"./dist/deployment.d.ts\",\n \"import\": \"./dist/deployment.mjs\",\n \"require\": \"./dist/deployment.cjs\"\n },\n \"./env\": {\n \"types\": \"./dist/env.d.ts\",\n \"import\": \"./dist/env.mjs\",\n \"require\": \"./dist/env.cjs\"\n },\n \"./env-types\": {\n \"types\": \"./dist/env-types.d.ts\",\n \"import\": \"./dist/env-types.mjs\",\n \"require\": \"./dist/env-types.cjs\"\n },\n \"./environment\": {\n \"types\": \"./dist/environment.d.ts\",\n \"import\": \"./dist/environment.mjs\",\n \"require\": \"./dist/environment.cjs\"\n },\n \"./environment/vite\": {\n \"types\": \"./dist/environment/vite.d.ts\",\n \"import\": \"./dist/environment/vite.mjs\",\n \"require\": \"./dist/environment/vite.cjs\"\n },\n \"./font\": {\n \"types\": \"./dist/font.d.ts\",\n \"import\": \"./dist/font.mjs\",\n \"require\": \"./dist/font.cjs\"\n },\n \"./vite\": {\n \"types\": \"./dist/vite.d.ts\",\n \"import\": \"./dist/vite.mjs\",\n \"require\": \"./dist/vite.cjs\"\n },\n \"./plugin\": {\n \"types\": \"./dist/plugin.d.ts\",\n \"import\": \"./dist/plugin.mjs\",\n \"require\": \"./dist/plugin.cjs\"\n },\n \"./plugin/server\": {\n \"types\": \"./dist/server-plugins.d.ts\",\n \"import\": \"./dist/server-plugins.mjs\",\n \"require\": \"./dist/server-plugins.cjs\"\n },\n \"./plugin/client\": {\n \"types\": \"./dist/client-plugins.d.ts\",\n \"import\": \"./dist/client-plugins.mjs\",\n \"require\": \"./dist/client-plugins.cjs\"\n },\n \"./query\": {\n \"types\": \"./dist/query/index.d.ts\",\n \"import\": \"./dist/query/index.mjs\",\n \"require\": \"./dist/query/index.cjs\"\n },\n \"./query/parsers\": {\n \"types\": \"./dist/query/parsers.d.ts\",\n \"import\": \"./dist/query/parsers.mjs\",\n \"require\": \"./dist/query/parsers.cjs\"\n },\n \"./query/client\": {\n \"types\": \"./dist/query/client.d.ts\",\n \"import\": \"./dist/query/client.mjs\",\n \"require\": \"./dist/query/client.cjs\"\n },\n \"./query/server\": {\n \"types\": \"./dist/query/server.d.ts\",\n \"import\": \"./dist/query/server.mjs\",\n \"require\": \"./dist/query/server.cjs\"\n },\n \"./middleware\": {\n \"types\": \"./dist/middleware.d.ts\",\n \"import\": \"./dist/middleware.mjs\",\n \"require\": \"./dist/middleware.cjs\"\n },\n \"./api\": {\n \"types\": \"./dist/api.d.ts\",\n \"import\": \"./dist/api.mjs\",\n \"require\": \"./dist/api.cjs\"\n },\n \"./api/route-manager\": {\n \"types\": \"./dist/api/route-manager.d.ts\",\n \"import\": \"./dist/api/route-manager.mjs\",\n \"require\": \"./dist/api/route-manager.cjs\"\n },\n \"./api/runtime\": {\n \"types\": \"./dist/api/runtime.d.ts\",\n \"import\": \"./dist/api/runtime.mjs\",\n \"require\": \"./dist/api/runtime.cjs\"\n },\n \"./request\": {\n \"types\": \"./dist/request.d.ts\",\n \"import\": \"./dist/request.mjs\",\n \"require\": \"./dist/request.cjs\"\n },\n \"./router\": {\n \"types\": \"./dist/router.d.ts\",\n \"import\": \"./dist/router.mjs\",\n \"require\": \"./dist/router.cjs\"\n },\n \"./routes\": {\n \"types\": \"./dist/routes.d.ts\",\n \"import\": \"./dist/routes.mjs\",\n \"require\": \"./dist/routes.cjs\"\n },\n \"./testing\": {\n \"types\": \"./dist/testing.d.ts\",\n \"import\": \"./dist/testing.mjs\",\n \"require\": \"./dist/testing.cjs\"\n },\n \"./agent-runtime\": {\n \"types\": \"./dist/agent-runtime.d.ts\",\n \"import\": \"./dist/agent-runtime.mjs\",\n \"require\": \"./dist/agent-runtime.cjs\"\n },\n \"./css\": {\n \"types\": \"./types/css.d.ts\"\n },\n \"./image\": {\n \"types\": \"./types/image.d.ts\",\n \"import\": \"./dist/image.mjs\",\n \"require\": \"./dist/image.cjs\"\n },\n \"./image/server\": {\n \"types\": \"./dist/image/server.d.ts\",\n \"import\": \"./dist/image/server.mjs\",\n \"require\": \"./dist/image/server.cjs\"\n },\n \"./image/sharp\": {\n \"types\": \"./dist/image/sharp.d.ts\",\n \"import\": \"./dist/image/sharp.mjs\",\n \"require\": \"./dist/image/sharp.cjs\"\n },\n \"./i18n\": {\n \"types\": \"./dist/i18n/index.d.ts\",\n \"import\": \"./dist/i18n/index.mjs\",\n \"require\": \"./dist/i18n/index.cjs\"\n },\n \"./i18n/server\": {\n \"types\": \"./dist/i18n/server.d.ts\",\n \"import\": \"./dist/i18n/server.mjs\",\n \"require\": \"./dist/i18n/server.cjs\"\n },\n \"./i18n/client\": {\n \"types\": \"./dist/i18n/client.d.ts\",\n \"import\": \"./dist/i18n/client.mjs\",\n \"require\": \"./dist/i18n/client.cjs\"\n },\n \"./internal/production-runtime\": {\n \"types\": \"./dist/internal/production-runtime.d.ts\",\n \"import\": \"./dist/internal/production-runtime.mjs\",\n \"require\": \"./dist/internal/production-runtime.cjs\"\n },\n \"./internal/metadata-image-runtime\": {\n \"types\": \"./dist/internal/metadata-image-runtime.d.ts\",\n \"import\": \"./dist/internal/metadata-image-runtime.mjs\",\n \"require\": \"./dist/internal/metadata-image-runtime.cjs\"\n },\n \"./internal/client-runtime\": {\n \"types\": \"./dist/internal/client-runtime.d.ts\",\n \"import\": \"./dist/internal/client-runtime.mjs\",\n \"require\": \"./dist/internal/client-runtime.cjs\"\n },\n \"./internal/build-runtime\": {\n \"types\": \"./dist/internal/build-runtime.d.ts\",\n \"import\": \"./dist/internal/build-runtime.mjs\",\n \"require\": \"./dist/internal/build-runtime.cjs\"\n },\n \"./internal/config-runtime\": {\n \"types\": \"./dist/internal/config-runtime.d.ts\",\n \"import\": \"./dist/internal/config-runtime.mjs\",\n \"require\": \"./dist/internal/config-runtime.cjs\"\n },\n \"./internal/production-node-env\": {\n \"types\": \"./dist/internal/production-node-env.d.ts\",\n \"import\": \"./dist/internal/production-node-env.mjs\",\n \"require\": \"./dist/internal/production-node-env.cjs\"\n }\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"build:runtime\": \"tsup --config tsup.runtime.config.ts\",\n \"dev\": \"tsup --watch\",\n \"test\": \"vitest run\",\n \"test:coverage\": \"vitest --coverage\",\n \"lint\": \"biome lint .\",\n \"lint:fix\": \"biome lint --write .\",\n \"format\": \"biome format --write .\",\n \"type-check\": \"tsc --noEmit\",\n \"clean\": \"rm -rf dist\"\n },\n \"dependencies\": {\n \"@farming-labs/docs\": \"^0.2.44\",\n \"@farming-labs/orm\": \"0.0.62\",\n \"@farming-labs/orm-runtime\": \"0.0.62\",\n \"@formatjs/icu-messageformat-parser\": \"3.5.15\",\n \"@jridgewell/trace-mapping\": \"0.3.31\",\n \"@mdx-js/mdx\": \"^3.1.1\",\n \"@opentelemetry/api\": \"1.9.1\",\n \"@scalar/api-reference\": \"^1.38.1\",\n \"@scalar/openapi-parser\": \"^0.22.3\",\n \"@tailwindcss/vite\": \"4.1.18\",\n \"@vercel/og\": \"0.11.1\",\n \"@vitejs/plugin-react\": \"^4.2.1\",\n \"better-call\": \"^1.0.19\",\n \"db0\": \"^0.3.4\",\n \"esbuild\": \"^0.28.0\",\n \"fast-glob\": \"^3.3.2\",\n \"h3\": \"2.0.1-rc.5\",\n \"image-size\": \"^2.0.2\",\n \"intl-messageformat\": \"11.2.12\",\n \"marked\": \"^12.0.2\",\n \"nitro\": \"3.0.1-alpha.0\",\n \"pg\": \"^8.20.0\",\n \"picocolors\": \"^1.0.0\",\n \"remark-gfm\": \"^4.0.1\",\n \"sirv\": \"^2.0.4\",\n \"sugar-high\": \"^0.9.5\",\n \"supports-color\": \"^10.2.2\",\n \"tailwindcss\": \"4.1.18\",\n \"unstorage\": \"^2.0.0-alpha.3\",\n \"vite\": \"^5.0.10\",\n \"zod\": \"^4.1.12\"\n },\n \"devDependencies\": {\n \"@clerk/react\": \"^6.1.0\",\n \"@farm.js/otel\": \"workspace:*\",\n \"@farm.js/renderer-tests\": \"workspace:*\",\n \"@opentelemetry/sdk-node\": \"0.221.0\",\n \"@opentelemetry/sdk-trace-base\": \"2.10.0\",\n \"@types/react\": \"^18.2.45\",\n \"@types/react-dom\": \"^18.2.18\",\n \"@vitest/coverage-v8\": \"^3.2.7\",\n \"jsdom\": \"^25.0.0\",\n \"react\": \"19.2.8\",\n \"react-dom\": \"19.2.8\",\n \"tsup\": \"^8.3.5\",\n \"typescript\": \"^5.3.3\",\n \"vitest\": \"^3.2.7\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.2.0 || ^19.0.0\",\n \"react-dom\": \"^18.2.0 || ^19.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"react\": {\n \"optional\": true\n },\n \"react-dom\": {\n \"optional\": true\n }\n },\n \"optionalDependencies\": {\n \"rolldown\": \"1.2.0\",\n \"sharp\": \"^0.34.5\",\n \"vite-rolldown\": \"npm:vite@8.1.5\"\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEE,cAAW;;;ADAN,IAAM,eAAe;","names":[]}
1
+ {"version":3,"sources":["../src/version.ts","../package.json"],"sourcesContent":["import { version } from \"../package.json\";\n\nexport const FARM_VERSION = version;\n","{\n \"name\": \"@farm.js/core\",\n \"version\": \"0.1.0-beta.61\",\n \"description\": \"Core Farm.js framework for modern integrated apps\",\n \"keywords\": [\n \"@farm.js/core\",\n \"framework\",\n \"react\",\n \"rsc\",\n \"server-components\",\n \"ssr\",\n \"vite\"\n ],\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/farming-labs/farm.js\",\n \"directory\": \"packages/farm\"\n },\n \"files\": [\n \"dist\",\n \"types\"\n ],\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.mjs\",\n \"types\": \"./dist/index.d.ts\",\n \"typesVersions\": {\n \"*\": {\n \"middleware\": [\n \"./types/middleware.d.ts\",\n \"./dist/middleware.d.ts\"\n ],\n \"version\": [\n \"./dist/version.d.ts\"\n ],\n \"router\": [\n \"./dist/router.d.ts\"\n ],\n \"routes\": [\n \"./dist/routes.d.ts\"\n ],\n \"storage\": [\n \"./dist/storage.d.ts\"\n ],\n \"integrations\": [\n \"./dist/integrations.d.ts\"\n ],\n \"cache\": [\n \"./dist/cache.d.ts\"\n ],\n \"deferred\": [\n \"./dist/deferred.d.ts\"\n ],\n \"after\": [\n \"./dist/after.d.ts\"\n ],\n \"navigation\": [\n \"./dist/navigation.d.ts\"\n ],\n \"headers\": [\n \"./dist/headers.d.ts\"\n ],\n \"theme\": [\n \"./dist/theme/index.d.ts\"\n ],\n \"theme/client\": [\n \"./dist/theme/client.d.ts\"\n ],\n \"theme/runtime\": [\n \"./dist/theme/runtime.d.ts\"\n ],\n \"theme/server\": [\n \"./dist/theme/server.d.ts\"\n ],\n \"docs\": [\n \"./dist/docs.d.ts\"\n ],\n \"markdown\": [\n \"./dist/markdown.d.ts\"\n ],\n \"app-markdown\": [\n \"./dist/app-markdown.d.ts\"\n ],\n \"observability\": [\n \"./dist/observability.d.ts\"\n ],\n \"instrumentation\": [\n \"./dist/instrumentation.d.ts\"\n ],\n \"workflows\": [\n \"./dist/workflows.d.ts\"\n ],\n \"cron\": [\n \"./dist/cron.d.ts\"\n ],\n \"server-fn\": [\n \"./dist/server-fn.d.ts\"\n ],\n \"server-fn/client\": [\n \"./dist/server-fn-client.d.ts\"\n ],\n \"server-query\": [\n \"./dist/server-query.d.ts\"\n ],\n \"server-query/client\": [\n \"./dist/server-query-client.d.ts\"\n ],\n \"server-action-security\": [\n \"./dist/server-action-security.d.ts\"\n ],\n \"deployment\": [\n \"./dist/deployment.d.ts\"\n ],\n \"env\": [\n \"./dist/env.d.ts\"\n ],\n \"env-types\": [\n \"./dist/env-types.d.ts\"\n ],\n \"environment\": [\n \"./dist/environment.d.ts\"\n ],\n \"environment/vite\": [\n \"./dist/environment/vite.d.ts\"\n ],\n \"font\": [\n \"./dist/font.d.ts\"\n ],\n \"testing\": [\n \"./dist/testing.d.ts\"\n ],\n \"agent-runtime\": [\n \"./dist/agent-runtime.d.ts\"\n ],\n \"css\": [\n \"./types/css.d.ts\"\n ],\n \"image\": [\n \"./types/image.d.ts\",\n \"./dist/image.d.ts\"\n ],\n \"image/server\": [\n \"./dist/image/server.d.ts\"\n ],\n \"image/sharp\": [\n \"./dist/image/sharp.d.ts\"\n ],\n \"i18n\": [\n \"./dist/i18n/index.d.ts\"\n ],\n \"i18n/server\": [\n \"./dist/i18n/server.d.ts\"\n ],\n \"i18n/client\": [\n \"./dist/i18n/client.d.ts\"\n ],\n \"internal/production-runtime\": [\n \"./dist/internal/production-runtime.d.ts\"\n ],\n \"internal/metadata-image-runtime\": [\n \"./dist/internal/metadata-image-runtime.d.ts\"\n ],\n \"internal/client-runtime\": [\n \"./dist/internal/client-runtime.d.ts\"\n ],\n \"internal/build-runtime\": [\n \"./dist/internal/build-runtime.d.ts\"\n ],\n \"internal/config-runtime\": [\n \"./dist/internal/config-runtime.d.ts\"\n ],\n \"internal/production-node-env\": [\n \"./dist/internal/production-node-env.d.ts\"\n ],\n \"config\": [\n \"./dist/config.d.ts\"\n ],\n \"renderer\": [\n \"./dist/renderer.d.ts\"\n ],\n \"renderer-client\": [\n \"./dist/renderer-client.d.ts\"\n ],\n \"api\": [\n \"./types/api.d.ts\",\n \"./dist/api.d.ts\"\n ],\n \"api/route-manager\": [\n \"./dist/api/route-manager.d.ts\"\n ],\n \"api/runtime\": [\n \"./dist/api/runtime.d.ts\"\n ],\n \"request\": [\n \"./dist/request.d.ts\"\n ],\n \"client\": [\n \"./types/client.d.ts\",\n \"./dist/client.d.ts\"\n ],\n \"client/lifecycle\": [\n \"./dist/client/lifecycle.d.ts\"\n ],\n \"server\": [\n \"./dist/server.d.ts\"\n ],\n \"vite\": [\n \"./dist/vite.d.ts\"\n ],\n \"plugin\": [\n \"./dist/plugin.d.ts\"\n ],\n \"query\": [\n \"./dist/query/index.d.ts\"\n ],\n \"*\": [\n \"./dist/*.d.ts\"\n ]\n }\n },\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.mjs\"\n },\n \"./version\": {\n \"types\": \"./dist/version.d.ts\",\n \"import\": \"./dist/version.mjs\",\n \"require\": \"./dist/version.cjs\"\n },\n \"./config\": {\n \"types\": \"./dist/config.d.ts\",\n \"import\": \"./dist/config.mjs\",\n \"require\": \"./dist/config.cjs\"\n },\n \"./renderer\": {\n \"types\": \"./dist/renderer.d.ts\",\n \"import\": \"./dist/renderer.mjs\",\n \"require\": \"./dist/renderer.cjs\"\n },\n \"./renderer-client\": {\n \"types\": \"./dist/renderer-client.d.ts\",\n \"import\": \"./dist/renderer-client.mjs\",\n \"require\": \"./dist/renderer-client.cjs\"\n },\n \"./renderer/react/server\": {\n \"types\": \"./dist/renderer/react/server.d.ts\",\n \"import\": \"./dist/renderer/react/server.mjs\",\n \"require\": \"./dist/renderer/react/server.cjs\"\n },\n \"./renderer/react/client\": {\n \"types\": \"./dist/renderer/react/client.d.ts\",\n \"import\": \"./dist/renderer/react/client.mjs\",\n \"require\": \"./dist/renderer/react/client.cjs\"\n },\n \"./renderer/react/vite\": {\n \"types\": \"./dist/renderer/react/vite.d.ts\",\n \"import\": \"./dist/renderer/react/vite.mjs\",\n \"require\": \"./dist/renderer/react/vite.cjs\"\n },\n \"./server\": {\n \"types\": \"./dist/server.d.ts\",\n \"import\": \"./dist/server.mjs\",\n \"require\": \"./dist/server.cjs\"\n },\n \"./client\": {\n \"types\": \"./types/client.d.ts\",\n \"import\": \"./dist/client.mjs\",\n \"require\": \"./dist/client.cjs\"\n },\n \"./client/lifecycle\": {\n \"types\": \"./dist/client/lifecycle.d.ts\",\n \"import\": \"./dist/client/lifecycle.mjs\",\n \"require\": \"./dist/client/lifecycle.cjs\"\n },\n \"./storage\": {\n \"types\": \"./dist/storage.d.ts\",\n \"import\": \"./dist/storage.mjs\",\n \"require\": \"./dist/storage.cjs\"\n },\n \"./integrations\": {\n \"types\": \"./dist/integrations.d.ts\",\n \"import\": \"./dist/integrations.mjs\",\n \"require\": \"./dist/integrations.cjs\"\n },\n \"./cache\": {\n \"types\": \"./dist/cache.d.ts\",\n \"import\": \"./dist/cache.mjs\",\n \"require\": \"./dist/cache.cjs\"\n },\n \"./deferred\": {\n \"types\": \"./dist/deferred.d.ts\",\n \"import\": \"./dist/deferred.mjs\",\n \"require\": \"./dist/deferred.cjs\"\n },\n \"./after\": {\n \"types\": \"./dist/after.d.ts\",\n \"import\": \"./dist/after.mjs\",\n \"require\": \"./dist/after.cjs\"\n },\n \"./navigation\": {\n \"types\": \"./dist/navigation.d.ts\",\n \"import\": \"./dist/navigation.mjs\",\n \"require\": \"./dist/navigation.cjs\"\n },\n \"./headers\": {\n \"types\": \"./dist/headers.d.ts\",\n \"import\": \"./dist/headers.mjs\",\n \"require\": \"./dist/headers.cjs\"\n },\n \"./theme\": {\n \"types\": \"./dist/theme/index.d.ts\",\n \"import\": \"./dist/theme/index.mjs\",\n \"require\": \"./dist/theme/index.cjs\"\n },\n \"./theme/client\": {\n \"types\": \"./dist/theme/client.d.ts\",\n \"import\": \"./dist/theme/client.mjs\",\n \"require\": \"./dist/theme/client.cjs\"\n },\n \"./theme/runtime\": {\n \"types\": \"./dist/theme/runtime.d.ts\",\n \"import\": \"./dist/theme/runtime.mjs\",\n \"require\": \"./dist/theme/runtime.cjs\"\n },\n \"./theme/server\": {\n \"types\": \"./dist/theme/server.d.ts\",\n \"import\": \"./dist/theme/server.mjs\",\n \"require\": \"./dist/theme/server.cjs\"\n },\n \"./docs\": {\n \"types\": \"./dist/docs.d.ts\",\n \"import\": \"./dist/docs.mjs\",\n \"require\": \"./dist/docs.cjs\"\n },\n \"./markdown\": {\n \"types\": \"./dist/markdown.d.ts\",\n \"import\": \"./dist/markdown.mjs\",\n \"require\": \"./dist/markdown.cjs\"\n },\n \"./app-markdown\": {\n \"types\": \"./dist/app-markdown.d.ts\",\n \"import\": \"./dist/app-markdown.mjs\",\n \"require\": \"./dist/app-markdown.cjs\"\n },\n \"./observability\": {\n \"types\": \"./dist/observability.d.ts\",\n \"import\": \"./dist/observability.mjs\",\n \"require\": \"./dist/observability.cjs\"\n },\n \"./instrumentation\": {\n \"types\": \"./dist/instrumentation.d.ts\",\n \"import\": \"./dist/instrumentation.mjs\",\n \"require\": \"./dist/instrumentation.cjs\"\n },\n \"./workflows\": {\n \"types\": \"./dist/workflows.d.ts\",\n \"import\": \"./dist/workflows.mjs\",\n \"require\": \"./dist/workflows.cjs\"\n },\n \"./cron\": {\n \"types\": \"./dist/cron.d.ts\",\n \"import\": \"./dist/cron.mjs\",\n \"require\": \"./dist/cron.cjs\"\n },\n \"./server-fn\": {\n \"types\": \"./dist/server-fn.d.ts\",\n \"import\": \"./dist/server-fn.mjs\",\n \"require\": \"./dist/server-fn.cjs\"\n },\n \"./server-fn/client\": {\n \"types\": \"./dist/server-fn-client.d.ts\",\n \"import\": \"./dist/server-fn-client.mjs\",\n \"require\": \"./dist/server-fn-client.cjs\"\n },\n \"./server-query\": {\n \"types\": \"./dist/server-query.d.ts\",\n \"import\": \"./dist/server-query.mjs\",\n \"require\": \"./dist/server-query.cjs\"\n },\n \"./server-query/client\": {\n \"types\": \"./dist/server-query-client.d.ts\",\n \"import\": \"./dist/server-query-client.mjs\",\n \"require\": \"./dist/server-query-client.cjs\"\n },\n \"./server-action-security\": {\n \"types\": \"./dist/server-action-security.d.ts\",\n \"import\": \"./dist/server-action-security.mjs\",\n \"require\": \"./dist/server-action-security.cjs\"\n },\n \"./deployment\": {\n \"types\": \"./dist/deployment.d.ts\",\n \"import\": \"./dist/deployment.mjs\",\n \"require\": \"./dist/deployment.cjs\"\n },\n \"./env\": {\n \"types\": \"./dist/env.d.ts\",\n \"import\": \"./dist/env.mjs\",\n \"require\": \"./dist/env.cjs\"\n },\n \"./env-types\": {\n \"types\": \"./dist/env-types.d.ts\",\n \"import\": \"./dist/env-types.mjs\",\n \"require\": \"./dist/env-types.cjs\"\n },\n \"./environment\": {\n \"types\": \"./dist/environment.d.ts\",\n \"import\": \"./dist/environment.mjs\",\n \"require\": \"./dist/environment.cjs\"\n },\n \"./environment/vite\": {\n \"types\": \"./dist/environment/vite.d.ts\",\n \"import\": \"./dist/environment/vite.mjs\",\n \"require\": \"./dist/environment/vite.cjs\"\n },\n \"./font\": {\n \"types\": \"./dist/font.d.ts\",\n \"import\": \"./dist/font.mjs\",\n \"require\": \"./dist/font.cjs\"\n },\n \"./vite\": {\n \"types\": \"./dist/vite.d.ts\",\n \"import\": \"./dist/vite.mjs\",\n \"require\": \"./dist/vite.cjs\"\n },\n \"./plugin\": {\n \"types\": \"./dist/plugin.d.ts\",\n \"import\": \"./dist/plugin.mjs\",\n \"require\": \"./dist/plugin.cjs\"\n },\n \"./plugin/server\": {\n \"types\": \"./dist/server-plugins.d.ts\",\n \"import\": \"./dist/server-plugins.mjs\",\n \"require\": \"./dist/server-plugins.cjs\"\n },\n \"./plugin/client\": {\n \"types\": \"./dist/client-plugins.d.ts\",\n \"import\": \"./dist/client-plugins.mjs\",\n \"require\": \"./dist/client-plugins.cjs\"\n },\n \"./query\": {\n \"types\": \"./dist/query/index.d.ts\",\n \"import\": \"./dist/query/index.mjs\",\n \"require\": \"./dist/query/index.cjs\"\n },\n \"./query/parsers\": {\n \"types\": \"./dist/query/parsers.d.ts\",\n \"import\": \"./dist/query/parsers.mjs\",\n \"require\": \"./dist/query/parsers.cjs\"\n },\n \"./query/client\": {\n \"types\": \"./dist/query/client.d.ts\",\n \"import\": \"./dist/query/client.mjs\",\n \"require\": \"./dist/query/client.cjs\"\n },\n \"./query/server\": {\n \"types\": \"./dist/query/server.d.ts\",\n \"import\": \"./dist/query/server.mjs\",\n \"require\": \"./dist/query/server.cjs\"\n },\n \"./middleware\": {\n \"types\": \"./dist/middleware.d.ts\",\n \"import\": \"./dist/middleware.mjs\",\n \"require\": \"./dist/middleware.cjs\"\n },\n \"./api\": {\n \"types\": \"./dist/api.d.ts\",\n \"import\": \"./dist/api.mjs\",\n \"require\": \"./dist/api.cjs\"\n },\n \"./api/route-manager\": {\n \"types\": \"./dist/api/route-manager.d.ts\",\n \"import\": \"./dist/api/route-manager.mjs\",\n \"require\": \"./dist/api/route-manager.cjs\"\n },\n \"./api/runtime\": {\n \"types\": \"./dist/api/runtime.d.ts\",\n \"import\": \"./dist/api/runtime.mjs\",\n \"require\": \"./dist/api/runtime.cjs\"\n },\n \"./request\": {\n \"types\": \"./dist/request.d.ts\",\n \"import\": \"./dist/request.mjs\",\n \"require\": \"./dist/request.cjs\"\n },\n \"./router\": {\n \"types\": \"./dist/router.d.ts\",\n \"import\": \"./dist/router.mjs\",\n \"require\": \"./dist/router.cjs\"\n },\n \"./routes\": {\n \"types\": \"./dist/routes.d.ts\",\n \"import\": \"./dist/routes.mjs\",\n \"require\": \"./dist/routes.cjs\"\n },\n \"./testing\": {\n \"types\": \"./dist/testing.d.ts\",\n \"import\": \"./dist/testing.mjs\",\n \"require\": \"./dist/testing.cjs\"\n },\n \"./agent-runtime\": {\n \"types\": \"./dist/agent-runtime.d.ts\",\n \"import\": \"./dist/agent-runtime.mjs\",\n \"require\": \"./dist/agent-runtime.cjs\"\n },\n \"./css\": {\n \"types\": \"./types/css.d.ts\"\n },\n \"./image\": {\n \"types\": \"./types/image.d.ts\",\n \"import\": \"./dist/image.mjs\",\n \"require\": \"./dist/image.cjs\"\n },\n \"./image/server\": {\n \"types\": \"./dist/image/server.d.ts\",\n \"import\": \"./dist/image/server.mjs\",\n \"require\": \"./dist/image/server.cjs\"\n },\n \"./image/sharp\": {\n \"types\": \"./dist/image/sharp.d.ts\",\n \"import\": \"./dist/image/sharp.mjs\",\n \"require\": \"./dist/image/sharp.cjs\"\n },\n \"./i18n\": {\n \"types\": \"./dist/i18n/index.d.ts\",\n \"import\": \"./dist/i18n/index.mjs\",\n \"require\": \"./dist/i18n/index.cjs\"\n },\n \"./i18n/server\": {\n \"types\": \"./dist/i18n/server.d.ts\",\n \"import\": \"./dist/i18n/server.mjs\",\n \"require\": \"./dist/i18n/server.cjs\"\n },\n \"./i18n/client\": {\n \"types\": \"./dist/i18n/client.d.ts\",\n \"import\": \"./dist/i18n/client.mjs\",\n \"require\": \"./dist/i18n/client.cjs\"\n },\n \"./internal/production-runtime\": {\n \"types\": \"./dist/internal/production-runtime.d.ts\",\n \"import\": \"./dist/internal/production-runtime.mjs\",\n \"require\": \"./dist/internal/production-runtime.cjs\"\n },\n \"./internal/metadata-image-runtime\": {\n \"types\": \"./dist/internal/metadata-image-runtime.d.ts\",\n \"import\": \"./dist/internal/metadata-image-runtime.mjs\",\n \"require\": \"./dist/internal/metadata-image-runtime.cjs\"\n },\n \"./internal/client-runtime\": {\n \"types\": \"./dist/internal/client-runtime.d.ts\",\n \"import\": \"./dist/internal/client-runtime.mjs\",\n \"require\": \"./dist/internal/client-runtime.cjs\"\n },\n \"./internal/build-runtime\": {\n \"types\": \"./dist/internal/build-runtime.d.ts\",\n \"import\": \"./dist/internal/build-runtime.mjs\",\n \"require\": \"./dist/internal/build-runtime.cjs\"\n },\n \"./internal/config-runtime\": {\n \"types\": \"./dist/internal/config-runtime.d.ts\",\n \"import\": \"./dist/internal/config-runtime.mjs\",\n \"require\": \"./dist/internal/config-runtime.cjs\"\n },\n \"./internal/production-node-env\": {\n \"types\": \"./dist/internal/production-node-env.d.ts\",\n \"import\": \"./dist/internal/production-node-env.mjs\",\n \"require\": \"./dist/internal/production-node-env.cjs\"\n }\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"build:runtime\": \"tsup --config tsup.runtime.config.ts\",\n \"dev\": \"tsup --watch\",\n \"test\": \"vitest run\",\n \"test:coverage\": \"vitest --coverage\",\n \"lint\": \"biome lint .\",\n \"lint:fix\": \"biome lint --write .\",\n \"format\": \"biome format --write .\",\n \"type-check\": \"tsc --noEmit\",\n \"clean\": \"rm -rf dist\"\n },\n \"dependencies\": {\n \"@farming-labs/docs\": \"^0.2.44\",\n \"@farming-labs/orm\": \"0.0.62\",\n \"@farming-labs/orm-runtime\": \"0.0.62\",\n \"@formatjs/icu-messageformat-parser\": \"3.5.15\",\n \"@jridgewell/trace-mapping\": \"0.3.31\",\n \"@mdx-js/mdx\": \"^3.1.1\",\n \"@opentelemetry/api\": \"1.9.1\",\n \"@scalar/api-reference\": \"^1.38.1\",\n \"@scalar/openapi-parser\": \"^0.22.3\",\n \"@tailwindcss/vite\": \"4.1.18\",\n \"@vercel/og\": \"0.11.1\",\n \"@vitejs/plugin-react\": \"^4.2.1\",\n \"better-call\": \"^1.0.19\",\n \"db0\": \"^0.3.4\",\n \"esbuild\": \"^0.28.0\",\n \"fast-glob\": \"^3.3.2\",\n \"h3\": \"2.0.1-rc.5\",\n \"image-size\": \"^2.0.2\",\n \"intl-messageformat\": \"11.2.12\",\n \"marked\": \"^12.0.2\",\n \"nitro\": \"3.0.1-alpha.0\",\n \"pg\": \"^8.20.0\",\n \"picocolors\": \"^1.0.0\",\n \"remark-gfm\": \"^4.0.1\",\n \"sirv\": \"^2.0.4\",\n \"sugar-high\": \"^0.9.5\",\n \"supports-color\": \"^10.2.2\",\n \"tailwindcss\": \"4.1.18\",\n \"unstorage\": \"^2.0.0-alpha.3\",\n \"vite\": \"^5.0.10\",\n \"zod\": \"^4.1.12\"\n },\n \"devDependencies\": {\n \"@clerk/react\": \"^6.1.0\",\n \"@farm.js/otel\": \"workspace:*\",\n \"@farm.js/renderer-tests\": \"workspace:*\",\n \"@opentelemetry/sdk-node\": \"0.221.0\",\n \"@opentelemetry/sdk-trace-base\": \"2.10.0\",\n \"@types/react\": \"^18.2.45\",\n \"@types/react-dom\": \"^18.2.18\",\n \"@vitest/coverage-v8\": \"^3.2.7\",\n \"jsdom\": \"^25.0.0\",\n \"react\": \"19.2.8\",\n \"react-dom\": \"19.2.8\",\n \"tsup\": \"^8.3.5\",\n \"typescript\": \"^5.3.3\",\n \"vitest\": \"^3.2.7\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.2.0 || ^19.0.0\",\n \"react-dom\": \"^18.2.0 || ^19.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"react\": {\n \"optional\": true\n },\n \"react-dom\": {\n \"optional\": true\n }\n },\n \"optionalDependencies\": {\n \"rolldown\": \"1.2.0\",\n \"sharp\": \"^0.34.5\",\n \"vite-rolldown\": \"npm:vite@8.1.5\"\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEE,cAAW;;;ADAN,IAAM,eAAe;","names":[]}
package/dist/version.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  FARM_VERSION
3
- } from "./chunk-IZ3MFWMA.mjs";
3
+ } from "./chunk-H3W5RDTS.mjs";
4
4
  import "./chunk-CGILA3WO.mjs";
5
5
  export {
6
6
  FARM_VERSION
package/dist/vite.cjs CHANGED
@@ -16350,16 +16350,10 @@ async function _runWithCurrentRequest(request, fn) {
16350
16350
  return requestStore.run(request, fn);
16351
16351
  }
16352
16352
  __name(_runWithCurrentRequest, "_runWithCurrentRequest");
16353
- function getCurrentRequest() {
16354
- const request = requestStore.getStore();
16355
- if (!request) {
16356
- throw new Error(
16357
- "No current request is available. getCurrentRequest() can only be used during server rendering."
16358
- );
16359
- }
16360
- return request;
16353
+ function getCurrentRequestOrNull() {
16354
+ return requestStore.getStore() ?? null;
16361
16355
  }
16362
- __name(getCurrentRequest, "getCurrentRequest");
16356
+ __name(getCurrentRequestOrNull, "getCurrentRequestOrNull");
16363
16357
 
16364
16358
  // src/server/renderer.ts
16365
16359
  init_cache();
@@ -19555,12 +19549,13 @@ function _setDefaultFarmThemeConfig(config, basePath = "/") {
19555
19549
  defaultThemeConfig = resolveFarmThemeConfig(config, basePath);
19556
19550
  }
19557
19551
  __name(_setDefaultFarmThemeConfig, "_setDefaultFarmThemeConfig");
19558
- function getTheme(request = getCurrentRequest()) {
19552
+ function getTheme(request = getCurrentRequestOrNull()) {
19553
+ if (!request) return defaultThemeConfig.default;
19559
19554
  return readFarmThemePreference(request, defaultThemeConfig);
19560
19555
  }
19561
19556
  __name(getTheme, "getTheme");
19562
- function getThemeSnapshot(request = getCurrentRequest()) {
19563
- const theme = readFarmThemePreference(request, defaultThemeConfig);
19557
+ function getThemeSnapshot(request = getCurrentRequestOrNull()) {
19558
+ const theme = request ? readFarmThemePreference(request, defaultThemeConfig) : defaultThemeConfig.default;
19564
19559
  return {
19565
19560
  theme,
19566
19561
  resolvedTheme: theme === "system" ? void 0 : theme,
@@ -19612,7 +19607,7 @@ _setFarmThemeServerSnapshotResolver(() => {
19612
19607
  });
19613
19608
 
19614
19609
  // package.json
19615
- var version = "0.1.0-beta.60";
19610
+ var version = "0.1.0-beta.61";
19616
19611
 
19617
19612
  // src/version.ts
19618
19613
  var FARM_VERSION = version;