@farm.js/core 0.1.0-beta.80 → 0.1.0-beta.81

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 (113) hide show
  1. package/dist/agent-runtime.d.mts +1 -1
  2. package/dist/agent-runtime.d.ts +1 -1
  3. package/dist/{app-D1fYgNSZ.d.mts → app-B9tbSdKW.d.mts} +3 -3
  4. package/dist/{app-DKW_R78N.d.ts → app-C7twWiJY.d.ts} +3 -3
  5. package/dist/app-markdown.d.mts +2 -2
  6. package/dist/app-markdown.d.ts +2 -2
  7. package/dist/{chunk-OEI62POE.mjs → chunk-6NV2RJSZ.mjs} +2 -2
  8. package/dist/{chunk-OEI62POE.mjs.map → chunk-6NV2RJSZ.mjs.map} +1 -1
  9. package/dist/{chunk-DNPQOJQW.mjs → chunk-CRK3RQ7C.mjs} +3 -3
  10. package/dist/{chunk-DBG42367.mjs → chunk-CVCIL6KH.mjs} +37 -14
  11. package/dist/chunk-CVCIL6KH.mjs.map +1 -0
  12. package/dist/{chunk-3UGGCJT5.mjs → chunk-HSCQGINR.mjs} +2 -2
  13. package/dist/{chunk-YSX4KDLV.mjs → chunk-VPEC2CWG.mjs} +42 -8
  14. package/dist/chunk-VPEC2CWG.mjs.map +1 -0
  15. package/dist/{chunk-3HIATXA4.mjs → chunk-XSUYR4Q3.mjs} +67 -25
  16. package/dist/chunk-XSUYR4Q3.mjs.map +1 -0
  17. package/dist/{chunk-3S7V7QHJ.mjs → chunk-Z73XASLT.mjs} +46 -19
  18. package/dist/chunk-Z73XASLT.mjs.map +1 -0
  19. package/dist/client/lifecycle.mjs +2 -2
  20. package/dist/{client-plugins-BtfLE4dW.d.mts → client-plugins-HizW0gLc.d.mts} +13 -1
  21. package/dist/{client-plugins-C4me5UPd.d.ts → client-plugins-w_b1wA8e.d.ts} +13 -1
  22. package/dist/client-plugins.cjs +1 -1
  23. package/dist/client-plugins.cjs.map +1 -1
  24. package/dist/client-plugins.d.mts +1 -1
  25. package/dist/client-plugins.d.ts +1 -1
  26. package/dist/client-plugins.mjs +2 -2
  27. package/dist/client.cjs +102 -37
  28. package/dist/client.cjs.map +1 -1
  29. package/dist/client.d.mts +4 -4
  30. package/dist/client.d.ts +4 -4
  31. package/dist/client.mjs +4 -4
  32. package/dist/config.d.mts +1 -1
  33. package/dist/config.d.ts +1 -1
  34. package/dist/index.cjs +186 -60
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.d.mts +9 -9
  37. package/dist/index.d.ts +9 -9
  38. package/dist/index.mjs +7 -7
  39. package/dist/integrations.d.mts +1 -1
  40. package/dist/integrations.d.ts +1 -1
  41. package/dist/internal/build-runtime.cjs +85 -24
  42. package/dist/internal/build-runtime.cjs.map +1 -1
  43. package/dist/internal/build-runtime.d.mts +3 -3
  44. package/dist/internal/build-runtime.d.ts +3 -3
  45. package/dist/internal/build-runtime.mjs +3 -3
  46. package/dist/internal/client-runtime.cjs +1 -1
  47. package/dist/internal/client-runtime.cjs.map +1 -1
  48. package/dist/internal/client-runtime.mjs +2 -2
  49. package/dist/internal/config-runtime.d.mts +2 -2
  50. package/dist/internal/config-runtime.d.ts +2 -2
  51. package/dist/internal/product-telemetry-runtime.cjs +1 -1
  52. package/dist/internal/product-telemetry-runtime.cjs.map +1 -1
  53. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  54. package/dist/internal/production-runtime.d.mts +5 -5
  55. package/dist/internal/production-runtime.d.ts +5 -5
  56. package/dist/{metadata-route-Bf4aVrYO.d.mts → metadata-route-CjF_sf9F.d.mts} +1 -1
  57. package/dist/{metadata-route-CUPYRgfT.d.ts → metadata-route-DkyJlQFD.d.ts} +1 -1
  58. package/dist/middleware.d.mts +3 -3
  59. package/dist/middleware.d.ts +3 -3
  60. package/dist/navigation.cjs +66 -24
  61. package/dist/navigation.cjs.map +1 -1
  62. package/dist/navigation.mjs +3 -3
  63. package/dist/plugin.cjs +40 -7
  64. package/dist/plugin.cjs.map +1 -1
  65. package/dist/plugin.d.mts +1 -1
  66. package/dist/plugin.d.ts +1 -1
  67. package/dist/plugin.mjs +2 -2
  68. package/dist/{production-runtime-D5ECiSmc.d.mts → production-runtime-CDSs0Rwo.d.mts} +1 -1
  69. package/dist/{production-runtime-Cb29k5Oi.d.ts → production-runtime-CSPVu_3h.d.ts} +1 -1
  70. package/dist/query/client.cjs +9 -5
  71. package/dist/query/client.cjs.map +1 -1
  72. package/dist/query/client.mjs +1 -1
  73. package/dist/{render-plan-DZ0LA8wX.d.ts → render-plan-C62oFdVD.d.ts} +1 -1
  74. package/dist/{render-plan-HL0ChBbH.d.mts → render-plan-D3TuPEmY.d.mts} +1 -1
  75. package/dist/renderer-client.cjs +66 -24
  76. package/dist/renderer-client.cjs.map +1 -1
  77. package/dist/renderer-client.d.mts +3 -3
  78. package/dist/renderer-client.d.ts +3 -3
  79. package/dist/renderer-client.mjs +1 -1
  80. package/dist/{request-8__ppqcz.d.ts → request-C-ZYE89s.d.ts} +1 -1
  81. package/dist/{request-DAZMscB9.d.mts → request-DPMdCOtv.d.mts} +1 -1
  82. package/dist/request.d.mts +2 -2
  83. package/dist/request.d.ts +2 -2
  84. package/dist/routes.d.mts +1 -1
  85. package/dist/routes.d.ts +1 -1
  86. package/dist/server-plugins.d.mts +2 -2
  87. package/dist/server-plugins.d.ts +2 -2
  88. package/dist/server.cjs +40 -7
  89. package/dist/server.cjs.map +1 -1
  90. package/dist/server.d.mts +7 -7
  91. package/dist/server.d.ts +7 -7
  92. package/dist/server.mjs +2 -2
  93. package/dist/{spa-router-DMKCWHT5.d.ts → spa-router-C7RwU8o-.d.ts} +6 -2
  94. package/dist/{spa-router-BM-OHflh.d.mts → spa-router-Cr39oWnX.d.mts} +6 -2
  95. package/dist/testing.d.mts +1 -1
  96. package/dist/testing.d.ts +1 -1
  97. package/dist/{utils-B8t0bZ5X.d.ts → utils-B6Jk-ITz.d.ts} +1 -1
  98. package/dist/{utils-B7dij0CU.d.mts → utils-U4zuTiDB.d.mts} +1 -1
  99. package/dist/version.cjs +1 -1
  100. package/dist/version.cjs.map +1 -1
  101. package/dist/version.mjs +1 -1
  102. package/dist/vite.cjs +42 -7
  103. package/dist/vite.cjs.map +1 -1
  104. package/dist/vite.d.mts +1 -1
  105. package/dist/vite.d.ts +1 -1
  106. package/dist/vite.mjs +4 -2
  107. package/package.json +1 -1
  108. package/dist/chunk-3HIATXA4.mjs.map +0 -1
  109. package/dist/chunk-3S7V7QHJ.mjs.map +0 -1
  110. package/dist/chunk-DBG42367.mjs.map +0 -1
  111. package/dist/chunk-YSX4KDLV.mjs.map +0 -1
  112. /package/dist/{chunk-DNPQOJQW.mjs.map → chunk-CRK3RQ7C.mjs.map} +0 -0
  113. /package/dist/{chunk-3UGGCJT5.mjs.map → chunk-HSCQGINR.mjs.map} +0 -0
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  createClientPluginManager,
7
7
  installChunkErrorRecovery
8
- } from "../chunk-3UGGCJT5.mjs";
8
+ } from "../chunk-HSCQGINR.mjs";
9
9
  import {
10
10
  searchParamsToObject
11
11
  } from "../chunk-DD7QQZZO.mjs";
@@ -17,7 +17,7 @@ import {
17
17
  stripFarmBasePath
18
18
  } from "../chunk-PQKQCRXL.mjs";
19
19
  import "../chunk-FXG2PS27.mjs";
20
- import "../chunk-OEI62POE.mjs";
20
+ import "../chunk-6NV2RJSZ.mjs";
21
21
  import {
22
22
  __name
23
23
  } from "../chunk-CGILA3WO.mjs";
@@ -1,6 +1,6 @@
1
- export { aq as loadConfig, ap as resolveConfig, ar as resolveDeployConfig } from '../client-plugins-BtfLE4dW.mjs';
1
+ export { aq as loadConfig, ap as resolveConfig, ar as resolveDeployConfig } from '../client-plugins-HizW0gLc.mjs';
2
2
  import { build, createServer, loadEnv } from 'vite';
3
- export { l as logger } from '../utils-B7dij0CU.mjs';
3
+ export { l as logger } from '../utils-U4zuTiDB.mjs';
4
4
  import '../lifecycle-De0vQG45.mjs';
5
5
  import '../renderer.mjs';
6
6
  import 'http';
@@ -1,6 +1,6 @@
1
- export { aq as loadConfig, ap as resolveConfig, ar as resolveDeployConfig } from '../client-plugins-C4me5UPd.js';
1
+ export { aq as loadConfig, ap as resolveConfig, ar as resolveDeployConfig } from '../client-plugins-w_b1wA8e.js';
2
2
  import { build, createServer, loadEnv } from 'vite';
3
- export { l as logger } from '../utils-B8t0bZ5X.js';
3
+ export { l as logger } from '../utils-B6Jk-ITz.js';
4
4
  import '../lifecycle-De0vQG45.js';
5
5
  import '../renderer.js';
6
6
  import 'http';
@@ -31,7 +31,7 @@ __export(product_telemetry_exports, {
31
31
  module.exports = __toCommonJS(product_telemetry_exports);
32
32
 
33
33
  // package.json
34
- var version = "0.1.0-beta.80";
34
+ var version = "0.1.0-beta.81";
35
35
 
36
36
  // src/version.ts
37
37
  var FARM_VERSION = version;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/product-telemetry.ts","../../package.json","../../src/version.ts"],"sourcesContent":["import { FARM_VERSION } from \"./version\";\n\nexport const FARM_PRODUCTION_SITE_TELEMETRY_SCHEMA_VERSION = 1 as const;\nexport const FARM_PRODUCTION_SITE_TELEMETRY_EVENT_TYPE = \"production_site_active\" as const;\nexport const FARM_PRODUCTION_SITE_TELEMETRY_PACKAGE_NAME = \"@farm.js/core\" as const;\n\nconst DEFAULT_SITE_TELEMETRY_ENDPOINT = \"https://farmjs.dev/api/telemetry/v1/sites\";\nconst REQUEST_TIMEOUT_MS = 3_000;\nconst REPORT_INTERVAL_MS = 24 * 60 * 60 * 1_000;\nconst RETRY_INTERVAL_MS = 5 * 60 * 1_000;\nconst MAX_ORIGINS_PER_INSTANCE = 32;\nconst SAFE_DETAIL_PATTERN = /^[0-9A-Za-z._-]{1,64}$/;\n\nexport interface FarmProductionSiteTelemetryPayload {\n schemaVersion: typeof FARM_PRODUCTION_SITE_TELEMETRY_SCHEMA_VERSION;\n eventType: typeof FARM_PRODUCTION_SITE_TELEMETRY_EVENT_TYPE;\n siteUrl: string;\n packageName: typeof FARM_PRODUCTION_SITE_TELEMETRY_PACKAGE_NAME;\n packageVersion: string;\n renderer: string;\n deployTarget: string;\n}\n\ninterface FarmProductionSiteReporterOptions {\n renderer: string;\n deployTarget?: string;\n endpoint?: string;\n fetch?: typeof fetch;\n now?: () => number;\n reportIntervalMs?: number;\n retryIntervalMs?: number;\n}\n\ninterface OriginReportState {\n pending?: Promise<void>;\n nextReportAt: number;\n}\n\nexport interface FarmProductionSiteReporter {\n report(requestUrl: string | URL, waitUntil?: (promise: Promise<unknown>) => void): void;\n}\n\n/**\n * Reduce an automatically observed request URL to a public HTTPS origin.\n * Request paths, query strings, hashes, and credentials are never returned.\n */\nexport function detectFarmProductionSiteOrigin(value: string | URL): string | undefined {\n try {\n const url = value instanceof URL ? value : new URL(value);\n return normalizeFarmProductionSiteOrigin(url.origin);\n } catch {\n return undefined;\n }\n}\n\n/** Normalize and validate the origin-only value accepted by the ingestion service. */\nexport function normalizeFarmProductionSiteOrigin(value: string): string | undefined {\n const candidate = value.trim();\n if (!candidate || candidate.length > 2_048) return undefined;\n\n try {\n const url = new URL(candidate);\n const hostname = url.hostname.toLowerCase();\n const isIpv4 = /^\\d{1,3}(?:\\.\\d{1,3}){3}$/.test(hostname);\n const isIpv6 = hostname.startsWith(\"[\") && hostname.endsWith(\"]\");\n const isLocal =\n hostname === \"localhost\" || hostname.endsWith(\".localhost\") || hostname.endsWith(\".local\");\n const isSingleLabel = !hostname.includes(\".\");\n\n if (\n url.protocol !== \"https:\" ||\n url.username ||\n url.password ||\n url.search ||\n url.hash ||\n url.pathname !== \"/\" ||\n isIpv4 ||\n isIpv6 ||\n isLocal ||\n isSingleLabel ||\n hostname.endsWith(\".\")\n ) {\n return undefined;\n }\n\n return url.origin;\n } catch {\n return undefined;\n }\n}\n\nexport function createFarmProductionSiteReporter(\n options: FarmProductionSiteReporterOptions,\n): FarmProductionSiteReporter {\n const now = options.now ?? Date.now;\n const reportIntervalMs = options.reportIntervalMs ?? REPORT_INTERVAL_MS;\n const retryIntervalMs = options.retryIntervalMs ?? RETRY_INTERVAL_MS;\n const send = options.fetch ?? globalThis.fetch;\n const reportStates = new Map<string, OriginReportState>();\n\n return {\n report(requestUrl, waitUntil) {\n if (productionTelemetryDisabled()) return;\n\n const siteUrl = detectFarmProductionSiteOrigin(requestUrl);\n if (!siteUrl) return;\n\n let state = reportStates.get(siteUrl);\n if (!state) {\n if (reportStates.size >= MAX_ORIGINS_PER_INSTANCE) return;\n state = { nextReportAt: 0 };\n reportStates.set(siteUrl, state);\n }\n\n const attemptedAt = now();\n if (state.pending || attemptedAt < state.nextReportAt) return;\n\n state.nextReportAt = attemptedAt + reportIntervalMs;\n const payload: FarmProductionSiteTelemetryPayload = {\n schemaVersion: FARM_PRODUCTION_SITE_TELEMETRY_SCHEMA_VERSION,\n eventType: FARM_PRODUCTION_SITE_TELEMETRY_EVENT_TYPE,\n siteUrl,\n packageName: FARM_PRODUCTION_SITE_TELEMETRY_PACKAGE_NAME,\n packageVersion: sanitizeDetail(FARM_VERSION, \"unknown\"),\n renderer: sanitizeDetail(options.renderer, \"custom\"),\n deployTarget: sanitizeDetail(options.deployTarget, \"custom\"),\n };\n state.pending = deliver(send, resolveSiteTelemetryEndpoint(options.endpoint), payload)\n .then((delivered) => {\n if (!delivered) state.nextReportAt = now() + retryIntervalMs;\n })\n .catch(() => {\n state.nextReportAt = now() + retryIntervalMs;\n })\n .finally(() => {\n state.pending = undefined;\n });\n\n if (waitUntil) {\n try {\n waitUntil(state.pending);\n } catch {\n // Delivery remains best-effort if a platform rejects background work.\n }\n } else {\n void state.pending;\n }\n },\n };\n}\n\nasync function deliver(\n send: typeof fetch,\n endpoint: string,\n payload: FarmProductionSiteTelemetryPayload,\n): Promise<boolean> {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);\n timeout.unref?.();\n try {\n const response = await send(endpoint, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(payload),\n signal: controller.signal,\n });\n if (!response.ok) {\n debug(`production-site check-in rejected with HTTP ${response.status}`);\n return false;\n }\n try {\n const result = (await response.json()) as { stored?: unknown };\n if (result && result.stored === false) {\n debug(\"production-site check-in was accepted but not stored\");\n return false;\n }\n } catch {\n // A successful empty response is also a valid acknowledgement.\n }\n return true;\n } catch {\n debug(\"production-site check-in failed\");\n return false;\n } finally {\n clearTimeout(timeout);\n }\n}\n\nfunction resolveSiteTelemetryEndpoint(explicit?: string): string {\n const candidate = explicit || process.env.FARM_TELEMETRY_SITE_ENDPOINT;\n if (!candidate) return DEFAULT_SITE_TELEMETRY_ENDPOINT;\n\n try {\n const url = new URL(candidate);\n const isLocal = [\"localhost\", \"127.0.0.1\", \"::1\"].includes(url.hostname);\n if (url.protocol === \"https:\" || (url.protocol === \"http:\" && isLocal)) {\n return url.toString();\n }\n } catch {\n // Fall through to the Farm-owned endpoint.\n }\n return DEFAULT_SITE_TELEMETRY_ENDPOINT;\n}\n\nfunction productionTelemetryDisabled(): boolean {\n if (process.env.DO_NOT_TRACK !== undefined && !isFalse(process.env.DO_NOT_TRACK)) return true;\n if (isTrue(process.env.FARM_TELEMETRY_DISABLED)) return true;\n return isFalse(process.env.FARM_TELEMETRY);\n}\n\nfunction sanitizeDetail(value: string | undefined, fallback: string): string {\n return value && SAFE_DETAIL_PATTERN.test(value) ? value : fallback;\n}\n\nfunction isTrue(value: string | undefined): boolean {\n return value !== undefined && [\"1\", \"true\", \"yes\", \"on\"].includes(value.toLowerCase());\n}\n\nfunction isFalse(value: string | undefined): boolean {\n return value !== undefined && [\"0\", \"false\", \"no\", \"off\"].includes(value.toLowerCase());\n}\n\nfunction debug(message: string): void {\n if (!isTrue(process.env.FARM_TELEMETRY_DEBUG)) return;\n process.stderr.write(`[farm.telemetry] ${message}\\n`);\n}\n","{\n \"name\": \"@farm.js/core\",\n \"version\": \"0.1.0-beta.80\",\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/product-telemetry-runtime\": [\n \"./dist/internal/product-telemetry-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/isolated-boundary\": [\n \"./dist/internal/isolated-boundary.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/product-telemetry-runtime\": {\n \"types\": \"./dist/internal/product-telemetry-runtime.d.ts\",\n \"import\": \"./dist/internal/product-telemetry-runtime.mjs\",\n \"require\": \"./dist/internal/product-telemetry-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/isolated-boundary\": {\n \"types\": \"./dist/internal/isolated-boundary.d.ts\",\n \"import\": \"./dist/internal/isolated-boundary.mjs\",\n \"require\": \"./dist/internal/isolated-boundary.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","import { version } from \"../package.json\";\n\nexport const FARM_VERSION = version;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/product-telemetry.ts","../../package.json","../../src/version.ts"],"sourcesContent":["import { FARM_VERSION } from \"./version\";\n\nexport const FARM_PRODUCTION_SITE_TELEMETRY_SCHEMA_VERSION = 1 as const;\nexport const FARM_PRODUCTION_SITE_TELEMETRY_EVENT_TYPE = \"production_site_active\" as const;\nexport const FARM_PRODUCTION_SITE_TELEMETRY_PACKAGE_NAME = \"@farm.js/core\" as const;\n\nconst DEFAULT_SITE_TELEMETRY_ENDPOINT = \"https://farmjs.dev/api/telemetry/v1/sites\";\nconst REQUEST_TIMEOUT_MS = 3_000;\nconst REPORT_INTERVAL_MS = 24 * 60 * 60 * 1_000;\nconst RETRY_INTERVAL_MS = 5 * 60 * 1_000;\nconst MAX_ORIGINS_PER_INSTANCE = 32;\nconst SAFE_DETAIL_PATTERN = /^[0-9A-Za-z._-]{1,64}$/;\n\nexport interface FarmProductionSiteTelemetryPayload {\n schemaVersion: typeof FARM_PRODUCTION_SITE_TELEMETRY_SCHEMA_VERSION;\n eventType: typeof FARM_PRODUCTION_SITE_TELEMETRY_EVENT_TYPE;\n siteUrl: string;\n packageName: typeof FARM_PRODUCTION_SITE_TELEMETRY_PACKAGE_NAME;\n packageVersion: string;\n renderer: string;\n deployTarget: string;\n}\n\ninterface FarmProductionSiteReporterOptions {\n renderer: string;\n deployTarget?: string;\n endpoint?: string;\n fetch?: typeof fetch;\n now?: () => number;\n reportIntervalMs?: number;\n retryIntervalMs?: number;\n}\n\ninterface OriginReportState {\n pending?: Promise<void>;\n nextReportAt: number;\n}\n\nexport interface FarmProductionSiteReporter {\n report(requestUrl: string | URL, waitUntil?: (promise: Promise<unknown>) => void): void;\n}\n\n/**\n * Reduce an automatically observed request URL to a public HTTPS origin.\n * Request paths, query strings, hashes, and credentials are never returned.\n */\nexport function detectFarmProductionSiteOrigin(value: string | URL): string | undefined {\n try {\n const url = value instanceof URL ? value : new URL(value);\n return normalizeFarmProductionSiteOrigin(url.origin);\n } catch {\n return undefined;\n }\n}\n\n/** Normalize and validate the origin-only value accepted by the ingestion service. */\nexport function normalizeFarmProductionSiteOrigin(value: string): string | undefined {\n const candidate = value.trim();\n if (!candidate || candidate.length > 2_048) return undefined;\n\n try {\n const url = new URL(candidate);\n const hostname = url.hostname.toLowerCase();\n const isIpv4 = /^\\d{1,3}(?:\\.\\d{1,3}){3}$/.test(hostname);\n const isIpv6 = hostname.startsWith(\"[\") && hostname.endsWith(\"]\");\n const isLocal =\n hostname === \"localhost\" || hostname.endsWith(\".localhost\") || hostname.endsWith(\".local\");\n const isSingleLabel = !hostname.includes(\".\");\n\n if (\n url.protocol !== \"https:\" ||\n url.username ||\n url.password ||\n url.search ||\n url.hash ||\n url.pathname !== \"/\" ||\n isIpv4 ||\n isIpv6 ||\n isLocal ||\n isSingleLabel ||\n hostname.endsWith(\".\")\n ) {\n return undefined;\n }\n\n return url.origin;\n } catch {\n return undefined;\n }\n}\n\nexport function createFarmProductionSiteReporter(\n options: FarmProductionSiteReporterOptions,\n): FarmProductionSiteReporter {\n const now = options.now ?? Date.now;\n const reportIntervalMs = options.reportIntervalMs ?? REPORT_INTERVAL_MS;\n const retryIntervalMs = options.retryIntervalMs ?? RETRY_INTERVAL_MS;\n const send = options.fetch ?? globalThis.fetch;\n const reportStates = new Map<string, OriginReportState>();\n\n return {\n report(requestUrl, waitUntil) {\n if (productionTelemetryDisabled()) return;\n\n const siteUrl = detectFarmProductionSiteOrigin(requestUrl);\n if (!siteUrl) return;\n\n let state = reportStates.get(siteUrl);\n if (!state) {\n if (reportStates.size >= MAX_ORIGINS_PER_INSTANCE) return;\n state = { nextReportAt: 0 };\n reportStates.set(siteUrl, state);\n }\n\n const attemptedAt = now();\n if (state.pending || attemptedAt < state.nextReportAt) return;\n\n state.nextReportAt = attemptedAt + reportIntervalMs;\n const payload: FarmProductionSiteTelemetryPayload = {\n schemaVersion: FARM_PRODUCTION_SITE_TELEMETRY_SCHEMA_VERSION,\n eventType: FARM_PRODUCTION_SITE_TELEMETRY_EVENT_TYPE,\n siteUrl,\n packageName: FARM_PRODUCTION_SITE_TELEMETRY_PACKAGE_NAME,\n packageVersion: sanitizeDetail(FARM_VERSION, \"unknown\"),\n renderer: sanitizeDetail(options.renderer, \"custom\"),\n deployTarget: sanitizeDetail(options.deployTarget, \"custom\"),\n };\n state.pending = deliver(send, resolveSiteTelemetryEndpoint(options.endpoint), payload)\n .then((delivered) => {\n if (!delivered) state.nextReportAt = now() + retryIntervalMs;\n })\n .catch(() => {\n state.nextReportAt = now() + retryIntervalMs;\n })\n .finally(() => {\n state.pending = undefined;\n });\n\n if (waitUntil) {\n try {\n waitUntil(state.pending);\n } catch {\n // Delivery remains best-effort if a platform rejects background work.\n }\n } else {\n void state.pending;\n }\n },\n };\n}\n\nasync function deliver(\n send: typeof fetch,\n endpoint: string,\n payload: FarmProductionSiteTelemetryPayload,\n): Promise<boolean> {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);\n timeout.unref?.();\n try {\n const response = await send(endpoint, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(payload),\n signal: controller.signal,\n });\n if (!response.ok) {\n debug(`production-site check-in rejected with HTTP ${response.status}`);\n return false;\n }\n try {\n const result = (await response.json()) as { stored?: unknown };\n if (result && result.stored === false) {\n debug(\"production-site check-in was accepted but not stored\");\n return false;\n }\n } catch {\n // A successful empty response is also a valid acknowledgement.\n }\n return true;\n } catch {\n debug(\"production-site check-in failed\");\n return false;\n } finally {\n clearTimeout(timeout);\n }\n}\n\nfunction resolveSiteTelemetryEndpoint(explicit?: string): string {\n const candidate = explicit || process.env.FARM_TELEMETRY_SITE_ENDPOINT;\n if (!candidate) return DEFAULT_SITE_TELEMETRY_ENDPOINT;\n\n try {\n const url = new URL(candidate);\n const isLocal = [\"localhost\", \"127.0.0.1\", \"::1\"].includes(url.hostname);\n if (url.protocol === \"https:\" || (url.protocol === \"http:\" && isLocal)) {\n return url.toString();\n }\n } catch {\n // Fall through to the Farm-owned endpoint.\n }\n return DEFAULT_SITE_TELEMETRY_ENDPOINT;\n}\n\nfunction productionTelemetryDisabled(): boolean {\n if (process.env.DO_NOT_TRACK !== undefined && !isFalse(process.env.DO_NOT_TRACK)) return true;\n if (isTrue(process.env.FARM_TELEMETRY_DISABLED)) return true;\n return isFalse(process.env.FARM_TELEMETRY);\n}\n\nfunction sanitizeDetail(value: string | undefined, fallback: string): string {\n return value && SAFE_DETAIL_PATTERN.test(value) ? value : fallback;\n}\n\nfunction isTrue(value: string | undefined): boolean {\n return value !== undefined && [\"1\", \"true\", \"yes\", \"on\"].includes(value.toLowerCase());\n}\n\nfunction isFalse(value: string | undefined): boolean {\n return value !== undefined && [\"0\", \"false\", \"no\", \"off\"].includes(value.toLowerCase());\n}\n\nfunction debug(message: string): void {\n if (!isTrue(process.env.FARM_TELEMETRY_DEBUG)) return;\n process.stderr.write(`[farm.telemetry] ${message}\\n`);\n}\n","{\n \"name\": \"@farm.js/core\",\n \"version\": \"0.1.0-beta.81\",\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/product-telemetry-runtime\": [\n \"./dist/internal/product-telemetry-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/isolated-boundary\": [\n \"./dist/internal/isolated-boundary.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/product-telemetry-runtime\": {\n \"types\": \"./dist/internal/product-telemetry-runtime.d.ts\",\n \"import\": \"./dist/internal/product-telemetry-runtime.mjs\",\n \"require\": \"./dist/internal/product-telemetry-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/isolated-boundary\": {\n \"types\": \"./dist/internal/isolated-boundary.d.ts\",\n \"import\": \"./dist/internal/isolated-boundary.mjs\",\n \"require\": \"./dist/internal/isolated-boundary.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","import { version } from \"../package.json\";\n\nexport const FARM_VERSION = version;\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  FARM_VERSION
3
- } from "../chunk-OEI62POE.mjs";
3
+ } from "../chunk-6NV2RJSZ.mjs";
4
4
  import {
5
5
  __name
6
6
  } from "../chunk-CGILA3WO.mjs";
@@ -1,17 +1,17 @@
1
1
  export { _runWithAfterRequest } from '../after.mjs';
2
2
  import { R as ResolvedFarmServerConfig } from '../workflows-CkDu_SeN.mjs';
3
3
  export { b as bufferFarmRequestBody, c as createFarmRequestBodyErrorResponse, r as readFarmRequestBody, a as resolveFarmServerConfig } from '../workflows-CkDu_SeN.mjs';
4
- export { _ as _runWithCurrentRequest, g as getCurrentRequest } from '../request-DAZMscB9.mjs';
4
+ export { _ as _runWithCurrentRequest, g as getCurrentRequest } from '../request-DPMdCOtv.mjs';
5
5
  export { configureFarmCache, createFarmCacheKey, getFarmDataCache, normalizeRevalidatePath } from '../cache.mjs';
6
6
  export { c as createFarmLocaleCookie, g as getFarmLocaleVaryHeaders } from '../resolver-D1V41j5Y.mjs';
7
7
  export { localizeFarmHref, localizeFarmPathname, stripFarmLocaleFromPathname } from '../i18n/index.mjs';
8
- export { a as addMetadataImageReference, c as createFarmMetadataRouteResponse, m as mergeMetadata, r as renderMetadataHead } from '../metadata-route-Bf4aVrYO.mjs';
9
- export { _ as _runWithMiddlewareContext, b as _runWithMiddlewareData, a as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner } from '../production-runtime-D5ECiSmc.mjs';
8
+ export { a as addMetadataImageReference, c as createFarmMetadataRouteResponse, m as mergeMetadata, r as renderMetadataHead } from '../metadata-route-CjF_sf9F.mjs';
9
+ export { _ as _runWithMiddlewareContext, b as _runWithMiddlewareData, a as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner } from '../production-runtime-CDSs0Rwo.mjs';
10
10
  export { g as getFarmRedirectError, i as isFarmNotFoundError, a as isFarmRedirectError } from '../navigation-errors-Dvwpzaer.mjs';
11
11
  export { configureFarmObservability, emitFarmEvent, runWithFarmRequestSpan } from '../observability.mjs';
12
12
  export { f as createFarmInstrumentationLifecycle, r as resolveFarmInstrumentationRuntime } from '../instrumentation-runtime-CE06JLHZ.mjs';
13
- import { F as FarmConfig, g as FarmContextFactoryInput } from '../client-plugins-BtfLE4dW.mjs';
14
- export { ah as manageFarmDocumentPreloads, ai as manageFarmHtmlPreloads, aj as manageFarmLinkHeaderPreloads, ak as reportFarmPreloadWarnings } from '../client-plugins-BtfLE4dW.mjs';
13
+ import { F as FarmConfig, g as FarmContextFactoryInput } from '../client-plugins-HizW0gLc.mjs';
14
+ export { ah as manageFarmDocumentPreloads, ai as manageFarmHtmlPreloads, aj as manageFarmLinkHeaderPreloads, ak as reportFarmPreloadWarnings } from '../client-plugins-HizW0gLc.mjs';
15
15
  export { _setDefaultFarmThemeConfig, getTheme } from '../theme/server.mjs';
16
16
  import { c as FarmThemeRuntime, d as FarmThemeConfig, R as ResolvedFarmThemeConfig, a as FarmThemePreference } from '../types-DQnyD3VD.mjs';
17
17
  export { r as resolveFarmTrailingSlashRedirect, s as searchParamsToObject, b as setFarmBasePath, a as setFarmTrailingSlashPreference } from '../base-path-CS4-zFSc.mjs';
@@ -1,17 +1,17 @@
1
1
  export { _runWithAfterRequest } from '../after.js';
2
2
  import { R as ResolvedFarmServerConfig } from '../workflows-CkDu_SeN.js';
3
3
  export { b as bufferFarmRequestBody, c as createFarmRequestBodyErrorResponse, r as readFarmRequestBody, a as resolveFarmServerConfig } from '../workflows-CkDu_SeN.js';
4
- export { _ as _runWithCurrentRequest, g as getCurrentRequest } from '../request-8__ppqcz.js';
4
+ export { _ as _runWithCurrentRequest, g as getCurrentRequest } from '../request-C-ZYE89s.js';
5
5
  export { configureFarmCache, createFarmCacheKey, getFarmDataCache, normalizeRevalidatePath } from '../cache.js';
6
6
  export { c as createFarmLocaleCookie, g as getFarmLocaleVaryHeaders } from '../resolver-DjsNlgad.js';
7
7
  export { localizeFarmHref, localizeFarmPathname, stripFarmLocaleFromPathname } from '../i18n/index.js';
8
- export { a as addMetadataImageReference, c as createFarmMetadataRouteResponse, m as mergeMetadata, r as renderMetadataHead } from '../metadata-route-CUPYRgfT.js';
9
- export { _ as _runWithMiddlewareContext, b as _runWithMiddlewareData, a as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner } from '../production-runtime-Cb29k5Oi.js';
8
+ export { a as addMetadataImageReference, c as createFarmMetadataRouteResponse, m as mergeMetadata, r as renderMetadataHead } from '../metadata-route-DkyJlQFD.js';
9
+ export { _ as _runWithMiddlewareContext, b as _runWithMiddlewareData, a as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner } from '../production-runtime-CSPVu_3h.js';
10
10
  export { g as getFarmRedirectError, i as isFarmNotFoundError, a as isFarmRedirectError } from '../navigation-errors-Dvwpzaer.js';
11
11
  export { configureFarmObservability, emitFarmEvent, runWithFarmRequestSpan } from '../observability.js';
12
12
  export { f as createFarmInstrumentationLifecycle, r as resolveFarmInstrumentationRuntime } from '../instrumentation-runtime-CE06JLHZ.js';
13
- import { F as FarmConfig, g as FarmContextFactoryInput } from '../client-plugins-C4me5UPd.js';
14
- export { ah as manageFarmDocumentPreloads, ai as manageFarmHtmlPreloads, aj as manageFarmLinkHeaderPreloads, ak as reportFarmPreloadWarnings } from '../client-plugins-C4me5UPd.js';
13
+ import { F as FarmConfig, g as FarmContextFactoryInput } from '../client-plugins-w_b1wA8e.js';
14
+ export { ah as manageFarmDocumentPreloads, ai as manageFarmHtmlPreloads, aj as manageFarmLinkHeaderPreloads, ak as reportFarmPreloadWarnings } from '../client-plugins-w_b1wA8e.js';
15
15
  export { _setDefaultFarmThemeConfig, getTheme } from '../theme/server.js';
16
16
  import { c as FarmThemeRuntime, d as FarmThemeConfig, R as ResolvedFarmThemeConfig, a as FarmThemePreference } from '../types-DQnyD3VD.js';
17
17
  export { r as resolveFarmTrailingSlashRedirect, s as searchParamsToObject, b as setFarmBasePath, a as setFarmTrailingSlashPreference } from '../base-path-CS4-zFSc.js';
@@ -1,4 +1,4 @@
1
- import { y as Metadata } from './client-plugins-BtfLE4dW.mjs';
1
+ import { y as Metadata } from './client-plugins-HizW0gLc.mjs';
2
2
 
3
3
  type MetadataImageKind = "opengraph" | "twitter";
4
4
  interface FarmMetadataImageReference {
@@ -1,4 +1,4 @@
1
- import { y as Metadata } from './client-plugins-C4me5UPd.js';
1
+ import { y as Metadata } from './client-plugins-w_b1wA8e.js';
2
2
 
3
3
  type MetadataImageKind = "opengraph" | "twitter";
4
4
  interface FarmMetadataImageReference {
@@ -1,9 +1,9 @@
1
- import { d2 as MiddlewareChain, d7 as RateLimitStorage, d8 as RateLimitStatus, d9 as MemoryRateLimitStorageOptions, cZ as MiddlewareContext, aa as FarmMiddlewareConfig, c_ as MiddlewareFunction, dw as MiddlewareConfig, M as MiddlewareProps } from './client-plugins-BtfLE4dW.mjs';
2
- export { d3 as CookieJar, d4 as CookieOptions, db as MiddlewareResult, d1 as MiddlewareStore, da as NextFunction, d5 as RateLimitConfig, d6 as RateLimitIncrementResult, a9 as ReadonlyMiddlewareStore, c$ as RequestMiddleware, d0 as RequestMiddlewareContext } from './client-plugins-BtfLE4dW.mjs';
1
+ import { d2 as MiddlewareChain, d7 as RateLimitStorage, d8 as RateLimitStatus, d9 as MemoryRateLimitStorageOptions, cZ as MiddlewareContext, aa as FarmMiddlewareConfig, c_ as MiddlewareFunction, dw as MiddlewareConfig, M as MiddlewareProps } from './client-plugins-HizW0gLc.mjs';
2
+ export { d3 as CookieJar, d4 as CookieOptions, db as MiddlewareResult, d1 as MiddlewareStore, da as NextFunction, d5 as RateLimitConfig, d6 as RateLimitIncrementResult, a9 as ReadonlyMiddlewareStore, c$ as RequestMiddleware, d0 as RequestMiddlewareContext } from './client-plugins-HizW0gLc.mjs';
3
3
  import { IncomingMessage, ServerResponse } from 'http';
4
4
  import { ViteDevServer, Plugin } from 'vite';
5
5
  import { R as ResolvedFarmI18nConfig } from './types-mP6R6CzS.mjs';
6
- export { _ as _runWithMiddlewareContext, b as _runWithMiddlewareData, a as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner, g as getMiddlewareContext, d as getMiddlewareData, e as getMiddlewareValue } from './production-runtime-D5ECiSmc.mjs';
6
+ export { _ as _runWithMiddlewareContext, b as _runWithMiddlewareData, a as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner, g as getMiddlewareContext, d as getMiddlewareData, e as getMiddlewareValue } from './production-runtime-CDSs0Rwo.mjs';
7
7
  import './lifecycle-De0vQG45.mjs';
8
8
  import './renderer.mjs';
9
9
  import './types-D1A6-XvH.mjs';
@@ -1,9 +1,9 @@
1
- import { d2 as MiddlewareChain, d7 as RateLimitStorage, d8 as RateLimitStatus, d9 as MemoryRateLimitStorageOptions, cZ as MiddlewareContext, aa as FarmMiddlewareConfig, c_ as MiddlewareFunction, dw as MiddlewareConfig, M as MiddlewareProps } from './client-plugins-C4me5UPd.js';
2
- export { d3 as CookieJar, d4 as CookieOptions, db as MiddlewareResult, d1 as MiddlewareStore, da as NextFunction, d5 as RateLimitConfig, d6 as RateLimitIncrementResult, a9 as ReadonlyMiddlewareStore, c$ as RequestMiddleware, d0 as RequestMiddlewareContext } from './client-plugins-C4me5UPd.js';
1
+ import { d2 as MiddlewareChain, d7 as RateLimitStorage, d8 as RateLimitStatus, d9 as MemoryRateLimitStorageOptions, cZ as MiddlewareContext, aa as FarmMiddlewareConfig, c_ as MiddlewareFunction, dw as MiddlewareConfig, M as MiddlewareProps } from './client-plugins-w_b1wA8e.js';
2
+ export { d3 as CookieJar, d4 as CookieOptions, db as MiddlewareResult, d1 as MiddlewareStore, da as NextFunction, d5 as RateLimitConfig, d6 as RateLimitIncrementResult, a9 as ReadonlyMiddlewareStore, c$ as RequestMiddleware, d0 as RequestMiddlewareContext } from './client-plugins-w_b1wA8e.js';
3
3
  import { IncomingMessage, ServerResponse } from 'http';
4
4
  import { ViteDevServer, Plugin } from 'vite';
5
5
  import { R as ResolvedFarmI18nConfig } from './types-mP6R6CzS.js';
6
- export { _ as _runWithMiddlewareContext, b as _runWithMiddlewareData, a as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner, g as getMiddlewareContext, d as getMiddlewareData, e as getMiddlewareValue } from './production-runtime-Cb29k5Oi.js';
6
+ export { _ as _runWithMiddlewareContext, b as _runWithMiddlewareData, a as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner, g as getMiddlewareContext, d as getMiddlewareData, e as getMiddlewareValue } from './production-runtime-CSPVu_3h.js';
7
7
  import './lifecycle-De0vQG45.js';
8
8
  import './renderer.js';
9
9
  import './types-D1A6-XvH.js';
@@ -510,6 +510,14 @@ __name(rejectPendingDeferred, "rejectPendingDeferred");
510
510
 
511
511
  // src/client/history-sync.ts
512
512
  var FARM_HISTORY_CHANGE_EVENT = "farm:historychange";
513
+ function dispatchHistoryChange(kind) {
514
+ window.dispatchEvent(
515
+ new CustomEvent(FARM_HISTORY_CHANGE_EVENT, {
516
+ detail: { kind }
517
+ })
518
+ );
519
+ }
520
+ __name(dispatchHistoryChange, "dispatchHistoryChange");
513
521
  function notifyHistoryChange(kind) {
514
522
  if (typeof window === "undefined") return;
515
523
  setTimeout(() => {
@@ -517,14 +525,15 @@ function notifyHistoryChange(kind) {
517
525
  window.dispatchEvent(new PopStateEvent("popstate"));
518
526
  return;
519
527
  }
520
- window.dispatchEvent(
521
- new CustomEvent(FARM_HISTORY_CHANGE_EVENT, {
522
- detail: { kind }
523
- })
524
- );
528
+ dispatchHistoryChange(kind);
525
529
  }, 0);
526
530
  }
527
531
  __name(notifyHistoryChange, "notifyHistoryChange");
532
+ function notifyRouterHistoryChange() {
533
+ if (typeof window === "undefined") return;
534
+ setTimeout(() => dispatchHistoryChange("url-search"), 0);
535
+ }
536
+ __name(notifyRouterHistoryChange, "notifyRouterHistoryChange");
528
537
  function subscribeHistoryChange(listener) {
529
538
  if (typeof window === "undefined") return () => {
530
539
  };
@@ -741,6 +750,7 @@ var _SPARouter = class _SPARouter {
741
750
  this.prefetchingUrls = /* @__PURE__ */ new Set();
742
751
  this.observers = /* @__PURE__ */ new Map();
743
752
  this.blockers = /* @__PURE__ */ new Set();
753
+ this.unloadBlockers = /* @__PURE__ */ new Map();
744
754
  this.navigationListeners = /* @__PURE__ */ new Set();
745
755
  this.navigationState = IDLE_NAVIGATION_STATE;
746
756
  this.currentHistoryPath = null;
@@ -752,7 +762,7 @@ var _SPARouter = class _SPARouter {
752
762
  void this.handlePopState(event);
753
763
  }, "onPopState");
754
764
  this.onBeforeUnload = /* @__PURE__ */ __name((event) => {
755
- if (this.blockers.size > 0) {
765
+ if (this.shouldBlockUnload()) {
756
766
  event.preventDefault();
757
767
  event.returnValue = "";
758
768
  }
@@ -930,6 +940,7 @@ var _SPARouter = class _SPARouter {
930
940
  if (isFarmLocaleChangeHref(href)) return;
931
941
  const url = new URL(href, window.location.origin);
932
942
  if (isFarmExternalNavigationURL(url, window.location.origin)) return;
943
+ if (this.options.shouldUseDocumentNavigation(url.pathname)) return;
933
944
  const fullPath = url.pathname + url.search;
934
945
  const interceptFrom = window.location.pathname + window.location.search;
935
946
  if (this.prefetchingUrls.has(fullPath)) return;
@@ -978,10 +989,15 @@ var _SPARouter = class _SPARouter {
978
989
  this.observers.delete(element);
979
990
  }
980
991
  }
981
- addBlocker(blocker) {
992
+ addBlocker(blocker, shouldBlockUnload) {
982
993
  this.blockers.add(blocker);
994
+ this.unloadBlockers.set(
995
+ blocker,
996
+ shouldBlockUnload ?? (() => this.evaluateBlockerForUnload(blocker))
997
+ );
983
998
  return () => {
984
999
  this.blockers.delete(blocker);
1000
+ this.unloadBlockers.delete(blocker);
985
1001
  };
986
1002
  }
987
1003
  getNavigationState() {
@@ -1010,11 +1026,16 @@ var _SPARouter = class _SPARouter {
1010
1026
  this.writePageState("replace", state, href);
1011
1027
  }
1012
1028
  async commitNavigation(options) {
1013
- const historyPath = options.pageData.canonicalPath || options.fullPath;
1029
+ const historyUrl = new URL(
1030
+ options.pageData.canonicalPath || options.fullPath,
1031
+ window.location.origin
1032
+ );
1033
+ historyUrl.hash = options.url.hash;
1034
+ const historyPath = historyUrl.pathname + historyUrl.search + historyUrl.hash;
1014
1035
  const historyState = createHistoryState(
1015
1036
  historyPath,
1016
1037
  options.state,
1017
- void 0,
1038
+ options.replace ? window.history.state : void 0,
1018
1039
  options.pageData.interception?.from ?? null
1019
1040
  );
1020
1041
  const nextHistoryIndex = this.currentHistoryIndex == null ? null : options.replace ? this.currentHistoryIndex : this.currentHistoryIndex + 1;
@@ -1028,18 +1049,8 @@ var _SPARouter = class _SPARouter {
1028
1049
  }
1029
1050
  this.currentHistoryIndex = nextHistoryIndex;
1030
1051
  this.currentHistoryPath = new URL(historyPath, window.location.origin).pathname + new URL(historyPath, window.location.origin).search;
1031
- if (options.pageData.metadata?.title) {
1032
- document.title = options.pageData.metadata.title;
1033
- }
1034
- if (options.pageData.metadata?.description) {
1035
- let metaDesc = document.querySelector('meta[name="description"]');
1036
- if (!metaDesc) {
1037
- metaDesc = document.createElement("meta");
1038
- metaDesc.setAttribute("name", "description");
1039
- document.head.appendChild(metaDesc);
1040
- }
1041
- metaDesc.setAttribute("content", options.pageData.metadata.description);
1042
- }
1052
+ notifyRouterHistoryChange();
1053
+ this.updateDocumentMetadata(options.pageData.metadata);
1043
1054
  _hydrateFarmI18n(options.pageData.i18n);
1044
1055
  if (this.onNavigate) {
1045
1056
  await this.onNavigate(options.pageData);
@@ -1189,9 +1200,7 @@ var _SPARouter = class _SPARouter {
1189
1200
  await this.clientPlugins?.markNavigationLoaded(clientNavigation, pageData);
1190
1201
  }
1191
1202
  if (!this.isCurrentNavigation(navigation, clientNavigation)) return;
1192
- if (pageData.metadata?.title) {
1193
- document.title = pageData.metadata.title;
1194
- }
1203
+ this.updateDocumentMetadata(pageData.metadata);
1195
1204
  _hydrateFarmI18n(pageData.i18n);
1196
1205
  if (this.onNavigate) {
1197
1206
  await this.onNavigate(pageData);
@@ -1235,6 +1244,39 @@ var _SPARouter = class _SPARouter {
1235
1244
  }
1236
1245
  return false;
1237
1246
  }
1247
+ evaluateBlockerForUnload(blocker) {
1248
+ const path = window.location.pathname + window.location.search;
1249
+ const result = blocker({ from: path, to: path, action: "replace" });
1250
+ if (result && typeof result !== "boolean") {
1251
+ void result.catch(() => void 0);
1252
+ return true;
1253
+ }
1254
+ return result === true;
1255
+ }
1256
+ shouldBlockUnload() {
1257
+ for (const blocker of this.blockers) {
1258
+ try {
1259
+ if (this.unloadBlockers.get(blocker)?.()) return true;
1260
+ } catch {
1261
+ return true;
1262
+ }
1263
+ }
1264
+ return false;
1265
+ }
1266
+ updateDocumentMetadata(metadata) {
1267
+ document.title = metadata?.title || "Farm.js App";
1268
+ let description = document.querySelector('meta[name="description"]');
1269
+ if (!metadata?.description) {
1270
+ description?.remove();
1271
+ return;
1272
+ }
1273
+ if (!description) {
1274
+ description = document.createElement("meta");
1275
+ description.setAttribute("name", "description");
1276
+ document.head.appendChild(description);
1277
+ }
1278
+ description.setAttribute("content", metadata.description);
1279
+ }
1238
1280
  startNavigation(options) {
1239
1281
  this.activeNavigation?.controller.abort("superseded");
1240
1282
  const navigation = {