@farm.js/core 0.1.17 → 0.1.19

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 (269) hide show
  1. package/dist/after.cjs +12 -225
  2. package/dist/agent-runtime.cjs +83 -2800
  3. package/dist/api/client.cjs +17 -4060
  4. package/dist/api/route-manager.cjs +34 -4354
  5. package/dist/api/runtime.cjs +29 -2696
  6. package/dist/api.cjs +88 -8434
  7. package/dist/app-markdown.cjs +39 -280
  8. package/dist/app-markdown.mjs +3 -3
  9. package/dist/cache.cjs +38 -1560
  10. package/dist/chunk-22GUSVNJ.cjs +351 -0
  11. package/dist/{chunk-EN7WTEAY.mjs → chunk-2ANEVVF7.mjs} +1 -1
  12. package/dist/chunk-2CQ74SP6.cjs +13 -0
  13. package/dist/{chunk-YD4J4XCI.mjs → chunk-2GNATDDE.mjs} +1 -1
  14. package/dist/chunk-2SJ4RQ6P.cjs +57 -0
  15. package/dist/chunk-3376ZTRC.cjs +1 -0
  16. package/dist/chunk-4PNUXIVU.cjs +472 -0
  17. package/dist/chunk-4PPEPOZZ.cjs +21 -0
  18. package/dist/chunk-4ZFL5GFN.cjs +520 -0
  19. package/dist/chunk-5OVTOKGH.cjs +65 -0
  20. package/dist/chunk-5QIKR7RR.cjs +224 -0
  21. package/dist/chunk-5ZSWG4UX.cjs +127 -0
  22. package/dist/chunk-62YJ2IEB.cjs +238 -0
  23. package/dist/chunk-6EODJYCX.cjs +183 -0
  24. package/dist/chunk-6EXBPJ24.cjs +434 -0
  25. package/dist/chunk-6QQDAAAZ.cjs +38 -0
  26. package/dist/chunk-6V4TDWEC.cjs +455 -0
  27. package/dist/chunk-72ADZ6GQ.cjs +19 -0
  28. package/dist/chunk-75BRBIFP.cjs +172 -0
  29. package/dist/{chunk-ZCNJKLA2.mjs → chunk-7BC6GAL7.mjs} +1 -1
  30. package/dist/chunk-7W3CPVXS.cjs +24 -0
  31. package/dist/chunk-A6WIQH5Z.cjs +31 -0
  32. package/dist/chunk-A777V5WU.cjs +725 -0
  33. package/dist/chunk-AFOD3LYZ.cjs +377 -0
  34. package/dist/chunk-AH7HOAQ3.cjs +151 -0
  35. package/dist/chunk-AMDMVWMI.cjs +39 -0
  36. package/dist/chunk-AORPIPNB.cjs +552 -0
  37. package/dist/chunk-ARJWXNQL.cjs +256 -0
  38. package/dist/chunk-AYJR42WX.cjs +711 -0
  39. package/dist/chunk-BBVSJVBZ.cjs +600 -0
  40. package/dist/chunk-BIDYX3SL.cjs +91 -0
  41. package/dist/chunk-BYODCJD6.cjs +663 -0
  42. package/dist/chunk-C3VRMB6H.cjs +85 -0
  43. package/dist/chunk-C5GUTBZK.cjs +173 -0
  44. package/dist/chunk-CIAGU2X4.cjs +337 -0
  45. package/dist/chunk-CMGMGHUZ.cjs +27 -0
  46. package/dist/chunk-CXP5U3RW.cjs +54 -0
  47. package/dist/chunk-D2ULAULS.cjs +166 -0
  48. package/dist/chunk-D7JTOLFK.cjs +285 -0
  49. package/dist/chunk-DVM4FKZL.cjs +169 -0
  50. package/dist/chunk-DYEJQTDN.cjs +49 -0
  51. package/dist/chunk-E2ROOWQC.cjs +2225 -0
  52. package/dist/chunk-E3UK5IIB.cjs +593 -0
  53. package/dist/chunk-EM6SBQKM.cjs +470 -0
  54. package/dist/chunk-FJSWYIR7.cjs +482 -0
  55. package/dist/chunk-FK6GO24V.cjs +54 -0
  56. package/dist/{chunk-MVIWBEJF.mjs → chunk-FVZGEVTO.mjs} +7 -7
  57. package/dist/chunk-FXUUWYAX.cjs +654 -0
  58. package/dist/chunk-G3HRIVEY.cjs +395 -0
  59. package/dist/chunk-G643DQCH.cjs +13 -0
  60. package/dist/chunk-G7HXGLEC.cjs +175 -0
  61. package/dist/chunk-GDSHDTJ4.cjs +152 -0
  62. package/dist/chunk-GPVTX3HT.cjs +1415 -0
  63. package/dist/chunk-H6G5INWM.cjs +1094 -0
  64. package/dist/{chunk-DHDVMXYK.mjs → chunk-HALDNTIV.mjs} +30 -4
  65. package/dist/chunk-HBTUGXHS.cjs +180 -0
  66. package/dist/chunk-HREOKQWT.cjs +45 -0
  67. package/dist/{chunk-5QOEPUYE.mjs → chunk-HSDL2AUR.mjs} +1 -1
  68. package/dist/chunk-I4J452B7.cjs +435 -0
  69. package/dist/chunk-I57LW5VZ.cjs +94 -0
  70. package/dist/chunk-I5YBCWQ6.cjs +40 -0
  71. package/dist/chunk-I7PUUDGY.cjs +389 -0
  72. package/dist/chunk-IAMRBF3Z.cjs +86 -0
  73. package/dist/chunk-IQXFRNY2.cjs +169 -0
  74. package/dist/chunk-ISTFC3MZ.cjs +1357 -0
  75. package/dist/chunk-IXTFU4PL.cjs +2355 -0
  76. package/dist/chunk-J3LOGE4T.cjs +42 -0
  77. package/dist/chunk-J7FSKED3.cjs +93 -0
  78. package/dist/chunk-JDNHKPTD.cjs +22 -0
  79. package/dist/chunk-JSROZYYO.cjs +164 -0
  80. package/dist/chunk-K6FNHVDR.cjs +696 -0
  81. package/dist/chunk-KGZIORNL.cjs +43 -0
  82. package/dist/chunk-KR6CKSXT.cjs +15 -0
  83. package/dist/chunk-KROWKCUH.cjs +185 -0
  84. package/dist/chunk-KVFPGF2M.cjs +46 -0
  85. package/dist/{chunk-TNBAYAWO.mjs → chunk-L4DVIHOC.mjs} +1 -1
  86. package/dist/chunk-LCCBO7PJ.cjs +46 -0
  87. package/dist/chunk-LIUGYUX3.cjs +22 -0
  88. package/dist/chunk-LTNGXMQ6.cjs +55 -0
  89. package/dist/chunk-M2L4MYDQ.cjs +14 -0
  90. package/dist/chunk-MCJLA63J.cjs +1 -0
  91. package/dist/chunk-MKB2EGIR.cjs +148 -0
  92. package/dist/chunk-MQ3H6LT5.cjs +202 -0
  93. package/dist/chunk-MT763TDW.cjs +43 -0
  94. package/dist/{chunk-XWAYMDLB.mjs → chunk-MVUREHPN.mjs} +1 -1
  95. package/dist/chunk-MWSK6C4J.cjs +18 -0
  96. package/dist/chunk-MWWVKDW3.cjs +169 -0
  97. package/dist/{chunk-6VQIKZZO.mjs → chunk-N255VYFP.mjs} +1 -1
  98. package/dist/chunk-NBAHDVOJ.cjs +2040 -0
  99. package/dist/chunk-NO3WWW3N.cjs +192 -0
  100. package/dist/chunk-NSFC3LHB.cjs +10244 -0
  101. package/dist/chunk-NZKJGRB3.cjs +230 -0
  102. package/dist/chunk-OAVTUMJP.cjs +1496 -0
  103. package/dist/{chunk-SXHV42UQ.mjs → chunk-OFEY6KHO.mjs} +88 -13
  104. package/dist/chunk-OHY2ZWUG.cjs +25 -0
  105. package/dist/chunk-OI6CMLWX.cjs +47 -0
  106. package/dist/chunk-OWOUTKIJ.cjs +558 -0
  107. package/dist/chunk-OX6O6WVA.cjs +74 -0
  108. package/dist/chunk-OXSIH4D6.cjs +476 -0
  109. package/dist/chunk-OYDRPBBV.cjs +453 -0
  110. package/dist/chunk-OYEUREB6.cjs +35 -0
  111. package/dist/chunk-PCOTGFSM.cjs +139 -0
  112. package/dist/{chunk-76DG3LF3.mjs → chunk-PGQBL5DN.mjs} +1 -1
  113. package/dist/chunk-PZYCPSCC.cjs +35 -0
  114. package/dist/chunk-QBK2AA4U.cjs +445 -0
  115. package/dist/{chunk-UTBVHYS3.mjs → chunk-QBPKKQTD.mjs} +2 -2
  116. package/dist/chunk-QBPXNZGV.cjs +487 -0
  117. package/dist/chunk-QNPEUFHQ.cjs +27 -0
  118. package/dist/chunk-QZRVZSPN.cjs +236 -0
  119. package/dist/chunk-R5A5KNVX.cjs +20 -0
  120. package/dist/chunk-R5JIFR6B.cjs +42 -0
  121. package/dist/chunk-R6AIILII.cjs +193 -0
  122. package/dist/chunk-RFYO7QUD.cjs +9 -0
  123. package/dist/chunk-RG3ZOTG5.cjs +34 -0
  124. package/dist/chunk-ROUTX2E5.cjs +390 -0
  125. package/dist/chunk-RTHIVJ2G.cjs +54 -0
  126. package/dist/chunk-S27FMYAM.cjs +644 -0
  127. package/dist/chunk-S3A45T7F.cjs +166 -0
  128. package/dist/chunk-S3JO3N4H.cjs +17 -0
  129. package/dist/chunk-SK35NQKK.cjs +27 -0
  130. package/dist/chunk-SU7MH53P.cjs +180 -0
  131. package/dist/chunk-SVRTJOUF.cjs +113 -0
  132. package/dist/chunk-SWN467MP.cjs +18 -0
  133. package/dist/chunk-SYQ3MOWW.cjs +73 -0
  134. package/dist/chunk-T5CERMEH.cjs +417 -0
  135. package/dist/chunk-TFAXUHWX.cjs +206 -0
  136. package/dist/chunk-TIWHTW3Q.cjs +24 -0
  137. package/dist/chunk-TKJZFIML.cjs +20 -0
  138. package/dist/chunk-TKNSDBBN.cjs +193 -0
  139. package/dist/chunk-U4KT7QP3.cjs +23 -0
  140. package/dist/chunk-U5BMPGS3.cjs +862 -0
  141. package/dist/chunk-UJ2C4ICS.cjs +277 -0
  142. package/dist/chunk-UQZ4AYTH.cjs +168 -0
  143. package/dist/chunk-US2QVW3E.cjs +36 -0
  144. package/dist/{chunk-QGVJVSNX.mjs → chunk-V4AICMQA.mjs} +2 -2
  145. package/dist/chunk-VB6UCX3V.cjs +421 -0
  146. package/dist/chunk-VEKFLAQM.cjs +300 -0
  147. package/dist/chunk-VQDBNVOO.cjs +14 -0
  148. package/dist/chunk-W4E7WMXE.cjs +71 -0
  149. package/dist/chunk-WJ3HK3LJ.cjs +1102 -0
  150. package/dist/chunk-WMAPPDMM.cjs +28 -0
  151. package/dist/chunk-WMOGFOUJ.cjs +223 -0
  152. package/dist/chunk-WPYFSQKK.cjs +37 -0
  153. package/dist/{chunk-56DAX2BE.mjs → chunk-WZXN4R5Y.mjs} +24 -13
  154. package/dist/chunk-XDGMADQM.cjs +14225 -0
  155. package/dist/chunk-XGC343EY.cjs +443 -0
  156. package/dist/chunk-XSKZORAS.cjs +727 -0
  157. package/dist/chunk-XWAWFQFS.cjs +82 -0
  158. package/dist/chunk-Y4YMF2NQ.cjs +460 -0
  159. package/dist/chunk-Y4YWHNKU.cjs +250 -0
  160. package/dist/chunk-Y53ZSFN6.cjs +504 -0
  161. package/dist/chunk-YA6LLTIJ.cjs +411 -0
  162. package/dist/chunk-YFPGHF5F.cjs +202 -0
  163. package/dist/chunk-YJRZR7VU.cjs +28 -0
  164. package/dist/chunk-YTAABQEV.cjs +1 -0
  165. package/dist/chunk-YX3DBN4M.cjs +18 -0
  166. package/dist/chunk-YZTASLPQ.cjs +64 -0
  167. package/dist/chunk-Z5HIWVDP.cjs +2173 -0
  168. package/dist/chunk-ZEG3OPIB.cjs +93 -0
  169. package/dist/chunk-ZMN3H73H.cjs +155 -0
  170. package/dist/client/lifecycle.cjs +6 -35
  171. package/dist/client-plugins.cjs +7 -448
  172. package/dist/client.cjs +171 -9808
  173. package/dist/config.cjs +8 -36
  174. package/dist/cron.cjs +24 -491
  175. package/dist/deferred.cjs +26 -475
  176. package/dist/deployment.cjs +39 -210
  177. package/dist/devtools-5KGPDVKL.cjs +388 -0
  178. package/dist/{devtools-UFVTMQX5.mjs → devtools-FY5R7TQ4.mjs} +3 -3
  179. package/dist/devtools-client-4WAPJY5L.cjs +254 -0
  180. package/dist/devtools-ui-5GBDIGMK.cjs +1296 -0
  181. package/dist/docs.cjs +46 -5657
  182. package/dist/docs.mjs +5 -5
  183. package/dist/env-types.cjs +5 -226
  184. package/dist/env.cjs +21 -338
  185. package/dist/environment/vite.cjs +8 -372
  186. package/dist/environment.cjs +12 -94
  187. package/dist/font.cjs +13 -63
  188. package/dist/headers.cjs +7 -123
  189. package/dist/i18n/client.cjs +55 -294
  190. package/dist/i18n/index.cjs +22 -209
  191. package/dist/i18n/server.cjs +22 -745
  192. package/dist/image/server.cjs +13 -729
  193. package/dist/image/sharp.cjs +33 -171
  194. package/dist/image.cjs +41 -85
  195. package/dist/index.cjs +1151 -68080
  196. package/dist/index.mjs +14 -14
  197. package/dist/instrumentation.cjs +12 -138
  198. package/dist/integration-orm-55F7CII5.cjs +13 -0
  199. package/dist/integrations.cjs +55 -4090
  200. package/dist/internal/app-markdown-runtime.cjs +27 -224
  201. package/dist/internal/app-markdown-runtime.mjs +2 -2
  202. package/dist/internal/build-runtime.cjs +120 -52259
  203. package/dist/internal/build-runtime.mjs +13 -13
  204. package/dist/internal/cli-runtime.cjs +67 -13811
  205. package/dist/internal/cli-runtime.mjs +7 -7
  206. package/dist/internal/client-error-overlay.cjs +80 -733
  207. package/dist/internal/client-error-overlay.mjs +1 -1
  208. package/dist/internal/client-runtime.cjs +81 -913
  209. package/dist/internal/compression-runtime.cjs +8 -214
  210. package/dist/internal/config-runtime.cjs +42 -6547
  211. package/dist/internal/config-runtime.mjs +3 -3
  212. package/dist/internal/docs-precompiled-runtime.cjs +26 -46
  213. package/dist/internal/infra-analytics-runtime.cjs +10 -536
  214. package/dist/internal/isolated-boundary.cjs +14 -414
  215. package/dist/internal/metadata-image-runtime.cjs +7 -285
  216. package/dist/internal/product-telemetry-runtime.cjs +42 -97
  217. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  218. package/dist/internal/production-node-env.cjs +6 -63
  219. package/dist/internal/production-runtime.cjs +418 -7133
  220. package/dist/internal/production-runtime.mjs +3 -3
  221. package/dist/internal/request-cookies.cjs +6 -54
  222. package/dist/json-ld.cjs +24 -50
  223. package/dist/layers-E4WPJNY5.cjs +17 -0
  224. package/dist/manager-G4B2IPYE.cjs +14 -0
  225. package/dist/markdown.cjs +21 -547
  226. package/dist/markdown.mjs +1 -1
  227. package/dist/middleware.cjs +36 -2995
  228. package/dist/navigation.cjs +22 -2588
  229. package/dist/nitro-4I2MYLY2.cjs +652 -0
  230. package/dist/observability.cjs +22 -614
  231. package/dist/og.cjs +5 -28
  232. package/dist/plugin.cjs +106 -37442
  233. package/dist/plugin.mjs +9 -9
  234. package/dist/query/client.cjs +113 -449
  235. package/dist/query/index.cjs +26 -288
  236. package/dist/query/parsers.cjs +23 -247
  237. package/dist/query/server.cjs +36 -298
  238. package/dist/renderer/react/client.cjs +9 -43
  239. package/dist/renderer/react/server.cjs +40 -103
  240. package/dist/renderer/react/vite.cjs +7 -29
  241. package/dist/renderer-client.cjs +126 -4295
  242. package/dist/renderer.cjs +31 -249
  243. package/dist/request.cjs +5 -68
  244. package/dist/router.cjs +11 -474
  245. package/dist/routes.cjs +42 -2461
  246. package/dist/{schema-dev-notice-2IE2F2XI.mjs → schema-dev-notice-O67CPXJ6.mjs} +1 -1
  247. package/dist/schema-dev-notice-Y7MQEFGN.cjs +56 -0
  248. package/dist/schema.cjs +6 -33
  249. package/dist/search-client-G3RICOFU.cjs +13 -0
  250. package/dist/server-action-security.cjs +25 -541
  251. package/dist/server-fn-client.cjs +6 -337
  252. package/dist/server-fn.cjs +32 -1841
  253. package/dist/server-plugins.cjs +15 -884
  254. package/dist/server-query-client.cjs +15 -1883
  255. package/dist/server-query.cjs +16 -1838
  256. package/dist/server.cjs +296 -44681
  257. package/dist/server.mjs +11 -11
  258. package/dist/storage.cjs +57 -576
  259. package/dist/testing.cjs +89 -3186
  260. package/dist/theme/client.cjs +13 -108
  261. package/dist/theme/index.cjs +6 -68
  262. package/dist/theme/runtime.cjs +13 -78
  263. package/dist/theme/server.cjs +10 -179
  264. package/dist/version.cjs +4 -32
  265. package/dist/version.mjs +1 -1
  266. package/dist/vite.cjs +119 -37773
  267. package/dist/vite.mjs +9 -9
  268. package/dist/workflows.cjs +19 -1040
  269. package/package.json +1 -1
@@ -0,0 +1,277 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+ var _chunkIQXFRNY2cjs = require('./chunk-IQXFRNY2.cjs');
4
+
5
+
6
+ var _chunk75BRBIFPcjs = require('./chunk-75BRBIFP.cjs');
7
+
8
+
9
+ var _chunkLIUGYUX3cjs = require('./chunk-LIUGYUX3.cjs');
10
+
11
+
12
+ var _chunkBIDYX3SLcjs = require('./chunk-BIDYX3SL.cjs');
13
+
14
+
15
+ var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
16
+
17
+ // src/i18n/server.ts
18
+ var _async_hooks = require('async_hooks');
19
+
20
+ // src/i18n/runtime.ts
21
+ var _intlmessageformat = require('intl-messageformat'); var _intlmessageformat2 = _interopRequireDefault(_intlmessageformat);
22
+ var _FarmI18nRuntime = class _FarmI18nRuntime {
23
+ constructor(config, catalogs = {}) {
24
+ this.compiled = /* @__PURE__ */ new Map();
25
+ this.warnedMissing = /* @__PURE__ */ new Set();
26
+ this.config = config;
27
+ this.catalogs = catalogs;
28
+ }
29
+ async initialize() {
30
+ if (!this.config.enabled) return;
31
+ const bundle = await _chunkIQXFRNY2cjs.readFarmI18nCatalogs.call(void 0, this.config);
32
+ this.replaceCatalogs(bundle.catalogs);
33
+ }
34
+ async reload() {
35
+ await this.initialize();
36
+ }
37
+ replaceCatalogs(catalogs) {
38
+ this.catalogs = catalogs;
39
+ this.compiled.clear();
40
+ this.warnedMissing.clear();
41
+ }
42
+ getCatalogs() {
43
+ return Object.fromEntries(
44
+ Object.entries(this.catalogs).map(([locale, catalog]) => [locale, { ...catalog }])
45
+ );
46
+ }
47
+ resolveRequest(request, options = {}) {
48
+ return _chunk75BRBIFPcjs.resolveFarmLocaleRequest.call(void 0, request, this.config, options);
49
+ }
50
+ translate(locale, key, values) {
51
+ const result = this.formatMessage(locale, key, values);
52
+ if (Array.isArray(result) && result.some((part) => typeof part !== "string")) {
53
+ throw new Error(`Farm i18n message "${key}" contains rich content. Render it with t.rich().`);
54
+ }
55
+ return Array.isArray(result) ? result.join("") : String(result);
56
+ }
57
+ translateRich(locale, key, values) {
58
+ const result = this.formatMessage(locale, key, values);
59
+ return Array.isArray(result) && result.length === 1 ? result[0] : result;
60
+ }
61
+ getRawMessage(locale, key) {
62
+ return this.resolveMessage(locale, key);
63
+ }
64
+ hasMessage(locale, key) {
65
+ return this.readOwnMessage(locale, key) !== void 0;
66
+ }
67
+ getClientSnapshot(resolution) {
68
+ return {
69
+ locale: resolution.locale,
70
+ source: resolution.source,
71
+ locales: this.config.locales,
72
+ defaultLocale: this.config.defaultLocale,
73
+ routing: this.config.routing,
74
+ basePath: this.config.basePath,
75
+ cookie: this.config.cookie,
76
+ direction: _chunkBIDYX3SLcjs.getFarmLocaleDirection.call(void 0, resolution.locale, this.config.direction),
77
+ messages: {
78
+ ...this.catalogs[this.config.fallbackLocale],
79
+ ...this.catalogs[resolution.locale]
80
+ }
81
+ };
82
+ }
83
+ formatMessage(locale, key, values) {
84
+ const message = this.resolveMessage(locale, key);
85
+ const cacheKey = `${locale}\0${key}\0${message}`;
86
+ let formatter = this.compiled.get(cacheKey);
87
+ if (!formatter) {
88
+ formatter = new (0, _intlmessageformat2.default)(message, locale);
89
+ this.compiled.set(cacheKey, formatter);
90
+ }
91
+ return formatter.format(values);
92
+ }
93
+ // Look up a message by own-property only. A key named after an
94
+ // Object.prototype member (toString, valueOf, constructor, ...) must resolve
95
+ // to a real catalog entry or undefined, never the inherited prototype value
96
+ // (mirrors the own-property handling added to catalog.ts in #454).
97
+ readOwnMessage(locale, key) {
98
+ const direct = this.catalogs[locale];
99
+ if (direct && Object.prototype.hasOwnProperty.call(direct, key)) return direct[key];
100
+ const fallback = this.catalogs[this.config.fallbackLocale];
101
+ if (fallback && Object.prototype.hasOwnProperty.call(fallback, key)) return fallback[key];
102
+ return void 0;
103
+ }
104
+ resolveMessage(locale, key) {
105
+ const message = this.readOwnMessage(locale, key);
106
+ if (message !== void 0) return message;
107
+ if (this.config.strict) {
108
+ throw new Error(`Missing Farm i18n message "${key}" for locale "${locale}".`);
109
+ }
110
+ const warningKey = `${locale}:${key}`;
111
+ if (!this.warnedMissing.has(warningKey)) {
112
+ this.warnedMissing.add(warningKey);
113
+ console.warn(`[Farm.js] Missing i18n message "${key}" for locale "${locale}".`);
114
+ }
115
+ return key;
116
+ }
117
+ };
118
+ _chunkS3JO3N4Hcjs.__name.call(void 0, _FarmI18nRuntime, "FarmI18nRuntime");
119
+ var FarmI18nRuntime = _FarmI18nRuntime;
120
+ function createFarmI18nRuntime(config, catalogs) {
121
+ return new FarmI18nRuntime(config, catalogs);
122
+ }
123
+ _chunkS3JO3N4Hcjs.__name.call(void 0, createFarmI18nRuntime, "createFarmI18nRuntime");
124
+
125
+ // src/i18n/server.ts
126
+ var FARM_I18N_REQUEST_STORE = /* @__PURE__ */ Symbol.for("farm.i18n.requestStore");
127
+ var FARM_I18N_DEFAULT_RUNTIME = /* @__PURE__ */ Symbol.for("farm.i18n.defaultRuntime");
128
+ function getRequestStore() {
129
+ const state = globalThis;
130
+ return _nullishCoalesce(state[FARM_I18N_REQUEST_STORE], () => ( (state[FARM_I18N_REQUEST_STORE] = new (0, _async_hooks.AsyncLocalStorage)())));
131
+ }
132
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getRequestStore, "getRequestStore");
133
+ function getState() {
134
+ const state = getRequestStore().getStore();
135
+ if (!state) {
136
+ throw new Error(
137
+ "No Farm i18n request context is active. Use this API while rendering, inside an API route, or use createTranslator(locale)."
138
+ );
139
+ }
140
+ return state;
141
+ }
142
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getState, "getState");
143
+ function _setDefaultFarmI18nRuntime(runtime) {
144
+ globalThis[FARM_I18N_DEFAULT_RUNTIME] = runtime;
145
+ }
146
+ _chunkS3JO3N4Hcjs.__name.call(void 0, _setDefaultFarmI18nRuntime, "_setDefaultFarmI18nRuntime");
147
+ async function _runWithFarmI18nRequest(runtime, request, fn, options = {}) {
148
+ const resolution = runtime.resolveRequest(request, options);
149
+ const state = {
150
+ runtime,
151
+ resolution,
152
+ snapshot: runtime.getClientSnapshot(resolution)
153
+ };
154
+ return getRequestStore().run(state, () => fn(resolution));
155
+ }
156
+ _chunkS3JO3N4Hcjs.__name.call(void 0, _runWithFarmI18nRequest, "_runWithFarmI18nRequest");
157
+ async function runWithLocale(locale, fn) {
158
+ const runtime = getDefaultRuntime();
159
+ assertLocale(runtime, locale);
160
+ const resolution = {
161
+ locale,
162
+ source: "explicit",
163
+ pathname: "/",
164
+ persist: false
165
+ };
166
+ const state = {
167
+ runtime,
168
+ resolution,
169
+ snapshot: runtime.getClientSnapshot(resolution)
170
+ };
171
+ return getRequestStore().run(state, fn);
172
+ }
173
+ _chunkS3JO3N4Hcjs.__name.call(void 0, runWithLocale, "runWithLocale");
174
+ function getLocale() {
175
+ return getState().resolution.locale;
176
+ }
177
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getLocale, "getLocale");
178
+ function getLocaleSource() {
179
+ return getState().resolution.source;
180
+ }
181
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getLocaleSource, "getLocaleSource");
182
+ var t = createTranslatorFromState(() => getState());
183
+ function createTranslator(locale) {
184
+ const runtime = getDefaultRuntime();
185
+ assertLocale(runtime, locale);
186
+ return createTranslatorFromState(() => ({
187
+ runtime,
188
+ resolution: {
189
+ locale,
190
+ source: "explicit",
191
+ pathname: "/",
192
+ persist: false
193
+ },
194
+ snapshot: runtime.getClientSnapshot({
195
+ locale,
196
+ source: "explicit",
197
+ pathname: "/",
198
+ persist: false
199
+ })
200
+ }));
201
+ }
202
+ _chunkS3JO3N4Hcjs.__name.call(void 0, createTranslator, "createTranslator");
203
+ function getFarmI18nClientSnapshot() {
204
+ return _optionalChain([getRequestStore, 'call', _ => _(), 'access', _2 => _2.getStore, 'call', _3 => _3(), 'optionalAccess', _4 => _4.snapshot]);
205
+ }
206
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getFarmI18nClientSnapshot, "getFarmI18nClientSnapshot");
207
+ var format = {
208
+ number(value, options) {
209
+ return new Intl.NumberFormat(getLocale(), options).format(value);
210
+ },
211
+ currency(value, currency, options = {}) {
212
+ return new Intl.NumberFormat(getLocale(), {
213
+ ...options,
214
+ style: "currency",
215
+ currency
216
+ }).format(value);
217
+ },
218
+ date(value, options) {
219
+ return new Intl.DateTimeFormat(getLocale(), options).format(value);
220
+ },
221
+ relativeTime(value, unit, options) {
222
+ return new Intl.RelativeTimeFormat(getLocale(), options).format(value, unit);
223
+ },
224
+ list(values, options) {
225
+ const ListFormat = Intl.ListFormat;
226
+ return new ListFormat(getLocale(), options).format(Array.from(values));
227
+ }
228
+ };
229
+ function getDefaultRuntime() {
230
+ const runtime = globalThis[FARM_I18N_DEFAULT_RUNTIME];
231
+ if (!_optionalChain([runtime, 'optionalAccess', _5 => _5.config, 'access', _6 => _6.enabled])) {
232
+ throw new Error("Farm i18n is not configured for this application.");
233
+ }
234
+ return runtime;
235
+ }
236
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getDefaultRuntime, "getDefaultRuntime");
237
+ function assertLocale(runtime, locale) {
238
+ if (!runtime.config.locales.includes(locale)) {
239
+ throw new Error(`Unsupported Farm i18n locale "${locale}".`);
240
+ }
241
+ }
242
+ _chunkS3JO3N4Hcjs.__name.call(void 0, assertLocale, "assertLocale");
243
+ function createTranslatorFromState(resolveState) {
244
+ const translator = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, ((key, values) => {
245
+ const state = resolveState();
246
+ return state.runtime.translate(state.resolution.locale, key, values);
247
+ }), "translator");
248
+ translator.rich = (key, values) => {
249
+ const state = resolveState();
250
+ return state.runtime.translateRich(state.resolution.locale, key, values);
251
+ };
252
+ translator.raw = (key) => {
253
+ const state = resolveState();
254
+ return state.runtime.getRawMessage(state.resolution.locale, key);
255
+ };
256
+ translator.has = (key) => {
257
+ const state = resolveState();
258
+ return state.runtime.hasMessage(state.resolution.locale, key);
259
+ };
260
+ return translator;
261
+ }
262
+ _chunkS3JO3N4Hcjs.__name.call(void 0, createTranslatorFromState, "createTranslatorFromState");
263
+ _chunkLIUGYUX3cjs._setFarmI18nSnapshotResolver.call(void 0, () => getFarmI18nClientSnapshot());
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+ exports.FarmI18nRuntime = FarmI18nRuntime; exports.createFarmI18nRuntime = createFarmI18nRuntime; exports._setDefaultFarmI18nRuntime = _setDefaultFarmI18nRuntime; exports._runWithFarmI18nRequest = _runWithFarmI18nRequest; exports.runWithLocale = runWithLocale; exports.getLocale = getLocale; exports.getLocaleSource = getLocaleSource; exports.t = t; exports.createTranslator = createTranslator; exports.getFarmI18nClientSnapshot = getFarmI18nClientSnapshot; exports.format = format;
@@ -0,0 +1,168 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+ var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
4
+
5
+ // src/server/response.ts
6
+ function watchResponseEvent(res, events) {
7
+ if (typeof res.once !== "function" || typeof res.removeListener !== "function") {
8
+ return null;
9
+ }
10
+ let settled = false;
11
+ const listeners = events.map(([event, value]) => {
12
+ const listener = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, () => {
13
+ if (settled) return;
14
+ settled = true;
15
+ dispose();
16
+ resolvePromise(value);
17
+ }, "listener");
18
+ return { event, listener };
19
+ });
20
+ let resolvePromise;
21
+ const promise = new Promise((resolve) => {
22
+ resolvePromise = resolve;
23
+ for (const { event, listener } of listeners) {
24
+ res.once(event, listener);
25
+ }
26
+ });
27
+ const dispose = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, () => {
28
+ for (const { event, listener } of listeners) {
29
+ res.removeListener(event, listener);
30
+ }
31
+ }, "dispose");
32
+ return { promise, dispose };
33
+ }
34
+ _chunkS3JO3N4Hcjs.__name.call(void 0, watchResponseEvent, "watchResponseEvent");
35
+ async function waitForWritable(res) {
36
+ if (res.writableEnded || res.destroyed) {
37
+ return false;
38
+ }
39
+ const watcher = watchResponseEvent(res, [
40
+ ["drain", true],
41
+ ["close", false],
42
+ ["error", false]
43
+ ]);
44
+ if (!watcher) {
45
+ return false;
46
+ }
47
+ try {
48
+ return await watcher.promise;
49
+ } finally {
50
+ watcher.dispose();
51
+ }
52
+ }
53
+ _chunkS3JO3N4Hcjs.__name.call(void 0, waitForWritable, "waitForWritable");
54
+ function splitSetCookieHeader(value) {
55
+ const cookies = [];
56
+ let start = 0;
57
+ for (let index = 0; index < value.length; index += 1) {
58
+ if (value[index] !== ",") continue;
59
+ let next = index + 1;
60
+ while (value[next] === " " || value[next] === " ") next += 1;
61
+ const equals = value.indexOf("=", next);
62
+ if (equals === -1) continue;
63
+ const separator = value.slice(next, equals);
64
+ if (separator.length === 0 || /[;,\s]/.test(separator)) continue;
65
+ cookies.push(value.slice(start, index).trim());
66
+ start = next;
67
+ index = next - 1;
68
+ }
69
+ cookies.push(value.slice(start).trim());
70
+ return cookies.filter(Boolean);
71
+ }
72
+ _chunkS3JO3N4Hcjs.__name.call(void 0, splitSetCookieHeader, "splitSetCookieHeader");
73
+ function applyWebResponseHeaders(res, headers, options = {}) {
74
+ const responseHeaders = headers;
75
+ const rawSetCookies = _optionalChain([responseHeaders, 'access', _ => _.raw, 'optionalCall', _2 => _2(), 'access', _3 => _3["set-cookie"]]);
76
+ const setCookies = _optionalChain([responseHeaders, 'access', _4 => _4.getSetCookie, 'optionalCall', _5 => _5()]) || rawSetCookies || [];
77
+ const existing = options.appendSetCookie && typeof res.getHeader === "function" ? res.getHeader("Set-Cookie") : void 0;
78
+ const existingCookies = Array.isArray(existing) ? existing.map(String) : existing === void 0 ? [] : [String(existing)];
79
+ let fallbackSetCookie = "";
80
+ headers.forEach((value, key) => {
81
+ if (key.toLowerCase() === "set-cookie") {
82
+ fallbackSetCookie = value;
83
+ return;
84
+ }
85
+ res.setHeader(key, value);
86
+ });
87
+ const cookies = setCookies.length > 0 ? setCookies : fallbackSetCookie ? splitSetCookieHeader(fallbackSetCookie) : [];
88
+ if (cookies.length > 0) {
89
+ res.setHeader("Set-Cookie", [...existingCookies, ...cookies]);
90
+ }
91
+ }
92
+ _chunkS3JO3N4Hcjs.__name.call(void 0, applyWebResponseHeaders, "applyWebResponseHeaders");
93
+ async function sendWebResponse(res, response) {
94
+ res.statusCode = response.status;
95
+ applyWebResponseHeaders(res, response.headers, { appendSetCookie: true });
96
+ if (!response.body) {
97
+ res.end();
98
+ return;
99
+ }
100
+ if (typeof res.write !== "function") {
101
+ const body = await response.arrayBuffer();
102
+ res.end(Buffer.from(body));
103
+ return;
104
+ }
105
+ const reader = response.body.getReader();
106
+ const disconnectWatcher = watchResponseEvent(res, [
107
+ ["close", true],
108
+ ["error", true]
109
+ ]);
110
+ try {
111
+ while (true) {
112
+ if (res.destroyed) {
113
+ void reader.cancel().catch(() => {
114
+ });
115
+ return;
116
+ }
117
+ const read = reader.read().then((result) => ({ type: "read", result }));
118
+ const next = disconnectWatcher ? await Promise.race([
119
+ read,
120
+ disconnectWatcher.promise.then(() => ({ type: "disconnect" }))
121
+ ]) : await read;
122
+ if (next.type === "disconnect") {
123
+ void reader.cancel().catch(() => {
124
+ });
125
+ return;
126
+ }
127
+ const { done, value } = next.result;
128
+ if (done) {
129
+ break;
130
+ }
131
+ if (!value || value.byteLength === 0) {
132
+ continue;
133
+ }
134
+ if (!res.write(value)) {
135
+ if (!await waitForWritable(res)) {
136
+ void reader.cancel().catch(() => {
137
+ });
138
+ return;
139
+ }
140
+ }
141
+ }
142
+ res.end();
143
+ } catch (error) {
144
+ void reader.cancel(error).catch(() => {
145
+ });
146
+ if (!res.writableEnded) {
147
+ const responseError = error instanceof Error ? error : new Error(String(error));
148
+ if (typeof res.destroy === "function") {
149
+ res.destroy(responseError);
150
+ } else {
151
+ res.end();
152
+ }
153
+ }
154
+ throw error;
155
+ } finally {
156
+ _optionalChain([disconnectWatcher, 'optionalAccess', _6 => _6.dispose, 'call', _7 => _7()]);
157
+ try {
158
+ reader.releaseLock();
159
+ } catch (e) {
160
+ }
161
+ }
162
+ }
163
+ _chunkS3JO3N4Hcjs.__name.call(void 0, sendWebResponse, "sendWebResponse");
164
+
165
+
166
+
167
+
168
+ exports.applyWebResponseHeaders = applyWebResponseHeaders; exports.sendWebResponse = sendWebResponse;
@@ -0,0 +1,36 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
4
+
5
+ // src/utils/decode.ts
6
+ function decodeRouteSegment(segment) {
7
+ try {
8
+ return decodeURIComponent(segment);
9
+ } catch (e) {
10
+ return segment;
11
+ }
12
+ }
13
+ _chunkS3JO3N4Hcjs.__name.call(void 0, decodeRouteSegment, "decodeRouteSegment");
14
+ function canonicalizeRequestPathSegments(pathname) {
15
+ const segments = pathname.split("/").filter(Boolean);
16
+ if (!pathname.includes("%")) return segments;
17
+ return segments.map(decodeRouteSegment);
18
+ }
19
+ _chunkS3JO3N4Hcjs.__name.call(void 0, canonicalizeRequestPathSegments, "canonicalizeRequestPathSegments");
20
+ function canonicalizeRequestPathname(pathname) {
21
+ const encoded = pathname.includes("%");
22
+ if (!encoded && !pathname.includes("//")) return pathname;
23
+ const collapsed = pathname.replace(/\/{2,}/g, "/");
24
+ if (!encoded) return collapsed;
25
+ return collapsed.split("/").map((segment) => {
26
+ const decoded = decodeRouteSegment(segment);
27
+ return decoded === segment ? segment : decoded.replace(/\//g, "%2F");
28
+ }).join("/");
29
+ }
30
+ _chunkS3JO3N4Hcjs.__name.call(void 0, canonicalizeRequestPathname, "canonicalizeRequestPathname");
31
+
32
+
33
+
34
+
35
+
36
+ exports.decodeRouteSegment = decodeRouteSegment; exports.canonicalizeRequestPathSegments = canonicalizeRequestPathSegments; exports.canonicalizeRequestPathname = canonicalizeRequestPathname;
@@ -28,7 +28,7 @@ import {
28
28
  resolveFarmNoindexPreviews,
29
29
  resolveFarmPerformanceConfig,
30
30
  resolveFarmSecurityConfig
31
- } from "./chunk-ZCNJKLA2.mjs";
31
+ } from "./chunk-7BC6GAL7.mjs";
32
32
  import {
33
33
  resolveFarmImageConfig
34
34
  } from "./chunk-G2KY33I6.mjs";
@@ -47,7 +47,7 @@ import {
47
47
  } from "./chunk-FA2W42OV.mjs";
48
48
  import {
49
49
  resolveMarkdownConfig
50
- } from "./chunk-SXHV42UQ.mjs";
50
+ } from "./chunk-OFEY6KHO.mjs";
51
51
  import {
52
52
  resolveWorkflowsConfig
53
53
  } from "./chunk-EGJDUF4Q.mjs";