@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
@@ -1,450 +1,9 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
- var __export = (target, all) => {
10
- for (var name in all)
11
- __defProp(target, name, { get: all[name], enumerable: true });
12
- };
13
- var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from))
16
- if (!__hasOwnProp.call(to, key) && key !== except)
17
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
- }
19
- return to;
20
- };
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
30
2
 
31
- // src/client-plugins.ts
32
- var client_plugins_exports = {};
33
- __export(client_plugins_exports, {
34
- FarmClientPluginManager: () => FarmClientPluginManager,
35
- createClientPluginManager: () => createClientPluginManager
36
- });
37
- module.exports = __toCommonJS(client_plugins_exports);
38
3
 
39
- // src/client/plugin.ts
40
- var PERFORMANCE_ENTRY_TYPES = [
41
- "navigation",
42
- "paint",
43
- "largest-contentful-paint",
44
- "layout-shift",
45
- "event"
46
- ];
47
- var _FarmClientPluginManager = class _FarmClientPluginManager {
48
- constructor(registrations, options) {
49
- this.instances = [];
50
- this.performanceObservers = [];
51
- this.navigationSequence = 0;
52
- this.starting = false;
53
- this.started = false;
54
- this.closed = false;
55
- this.reportedErrors = /* @__PURE__ */ new WeakSet();
56
- this.handleWindowError = /* @__PURE__ */ __name((event) => {
57
- const error = event.error ?? new Error(event.message || "Unknown browser error");
58
- void this.reportError(error, "window", void 0, this.getLocation(), event);
59
- }, "handleWindowError");
60
- this.handleUnhandledRejection = /* @__PURE__ */ __name((event) => {
61
- void this.reportError(
62
- event.reason,
63
- "unhandled-rejection",
64
- void 0,
65
- this.getLocation(),
66
- event
67
- );
68
- }, "handleUnhandledRejection");
69
- this.handlePageHide = /* @__PURE__ */ __name((event) => {
70
- if (event.persisted) return;
71
- void this.close("pagehide");
72
- }, "handlePageHide");
73
- this.registrations = sortRegistrations(registrations);
74
- this.options = {
75
- ...options,
76
- isDev: options.isDev ?? false,
77
- isProd: options.isProd ?? !options.isDev,
78
- window: options.window ?? (typeof window !== "undefined" ? window : void 0)
79
- };
80
- }
81
- start() {
82
- if (this.startPromise) return this.startPromise;
83
- this.startPromise = Promise.resolve().then(() => this.startInternal());
84
- return this.startPromise;
85
- }
86
- async beginHydration(input) {
87
- await this.start();
88
- const session = {
89
- ...input,
90
- location: this.getLocation(),
91
- startedAt: now()
92
- };
93
- await this.runHook(
94
- "hydration.before",
95
- (instance) => instance.plugin.hydration?.before?.({
96
- ...this.createStateEvent(instance),
97
- ...session
98
- })
99
- );
100
- return session;
101
- }
102
- async completeHydration(session, options = {}) {
103
- await this.runHook(
104
- "hydration.after",
105
- (instance) => instance.plugin.hydration?.after?.({
106
- ...this.createStateEvent(instance),
107
- ...session,
108
- durationMs: now() - session.startedAt,
109
- recovered: options.recovered ?? false
110
- })
111
- );
112
- }
113
- async failHydration(session, error) {
114
- await this.reportError(error, "hydration", void 0, session.location);
115
- }
116
- async beginNavigation(input) {
117
- await this.start();
118
- this.currentNavigation?.controller.abort("superseded");
119
- const controller = new AbortController();
120
- const session = {
121
- id: `navigation:${++this.navigationSequence}`,
122
- from: input.from === null ? null : toClientLocation(input.from ?? this.getLocation().href, this.getBaseUrl()),
123
- to: toClientLocation(input.to, this.getBaseUrl()),
124
- action: input.action,
125
- signal: controller.signal,
126
- startedAt: now(),
127
- route: input.route
128
- };
129
- this.currentNavigation = { controller, session };
130
- await this.runHook(
131
- "navigation.before",
132
- (instance) => instance.plugin.navigation?.before?.({
133
- ...this.createStateEvent(instance),
134
- ...session
135
- })
136
- );
137
- return session;
138
- }
139
- async markNavigationLoaded(session, data) {
140
- if (session.signal.aborted) return;
141
- await this.runHook(
142
- "navigation.loaded",
143
- (instance) => instance.plugin.navigation?.loaded?.({
144
- ...this.createStateEvent(instance),
145
- ...session,
146
- data,
147
- durationMs: now() - session.startedAt
148
- })
149
- );
150
- }
151
- cancelNavigation(session, reason = "canceled") {
152
- const current = this.currentNavigation;
153
- if (!current || session && current.session !== session) return;
154
- current.controller.abort(reason);
155
- this.currentNavigation = void 0;
156
- }
157
- async resolveNavigation(session) {
158
- if (session.signal.aborted) return;
159
- await this.runHook(
160
- "navigation.resolved",
161
- (instance) => instance.plugin.navigation?.resolved?.({
162
- ...this.createStateEvent(instance),
163
- ...session,
164
- durationMs: now() - session.startedAt
165
- })
166
- );
167
- }
168
- scheduleNavigationRendered(session) {
169
- if (session.signal.aborted) return Promise.resolve();
170
- const clientWindow = this.options.window;
171
- const schedule = clientWindow?.requestAnimationFrame ? (callback) => clientWindow.requestAnimationFrame(() => clientWindow.requestAnimationFrame(callback)) : (callback) => setTimeout(callback, 0);
172
- return new Promise((resolve) => {
173
- schedule(() => {
174
- if (session.signal.aborted || this.closed) {
175
- resolve();
176
- return;
177
- }
178
- void this.runHook(
179
- "navigation.rendered",
180
- (instance) => instance.plugin.navigation?.rendered?.({
181
- ...this.createStateEvent(instance),
182
- ...session,
183
- durationMs: now() - session.startedAt
184
- })
185
- ).finally(() => {
186
- if (this.currentNavigation?.session === session) {
187
- this.currentNavigation = void 0;
188
- }
189
- resolve();
190
- });
191
- });
192
- });
193
- }
194
- async failNavigation(session, error) {
195
- if (!session.signal.aborted) {
196
- await this.runHook(
197
- "navigation.error",
198
- (instance) => instance.plugin.navigation?.error?.({
199
- ...this.createStateEvent(instance),
200
- ...session,
201
- durationMs: now() - session.startedAt,
202
- error
203
- })
204
- );
205
- await this.reportError(error, "navigation", session, session.to);
206
- }
207
- if (this.currentNavigation?.session === session) {
208
- this.currentNavigation = void 0;
209
- }
210
- }
211
- async reportError(error, phase, navigation, location = this.getLocation(), sourceEvent) {
212
- if (this.closed) return;
213
- if (isObject(error)) {
214
- if (this.reportedErrors.has(error)) return;
215
- this.reportedErrors.add(error);
216
- }
217
- if (!this.started && !this.starting) await this.start();
218
- if (this.closed) return;
219
- await this.runErrorHooks({ error, phase, navigation, location }, void 0, sourceEvent);
220
- }
221
- close(reason = "manual") {
222
- if (this.closePromise) return this.closePromise;
223
- this.closePromise = this.closeInternal(reason);
224
- return this.closePromise;
225
- }
226
- getPlugins() {
227
- return this.instances.map(({ registration }) => ({
228
- name: registration.name,
229
- version: registration.version
230
- }));
231
- }
232
- async startInternal() {
233
- if (this.started || this.closed) return;
234
- if (process.env.NODE_ENV !== "production" && this.options.isDev && this.options.window) {
235
- try {
236
- const { createFarmRuntimeErrorOverlay } = await import("@farm.js/core/internal/client-error-overlay");
237
- this.runtimeErrorOverlay = createFarmRuntimeErrorOverlay({ window: this.options.window });
238
- } catch (error) {
239
- this.logHookError("farm:runtime-error-overlay", "load", error);
240
- }
241
- }
242
- this.starting = true;
243
- try {
244
- for (const registration of this.registrations) {
245
- try {
246
- const definition = registration.definition;
247
- if (!definition || typeof definition !== "object") {
248
- throw new TypeError(
249
- `Client plugin "${registration.name}" does not define a lifecycle object`
250
- );
251
- }
252
- const instance = {
253
- registration,
254
- plugin: definition,
255
- state: void 0
256
- };
257
- instance.state = await definition.setup?.(this.createSetupEvent(instance));
258
- this.instances.push(instance);
259
- } catch (error) {
260
- this.logHookError(registration.name, "setup", error);
261
- await this.runErrorHooks({
262
- error,
263
- phase: "setup",
264
- location: this.getLocation()
265
- });
266
- }
267
- }
268
- this.started = true;
269
- this.installBrowserListeners();
270
- this.installPerformanceObservers();
271
- } finally {
272
- this.starting = false;
273
- }
274
- }
275
- installBrowserListeners() {
276
- const clientWindow = this.options.window;
277
- if (!clientWindow) return;
278
- if (this.runtimeErrorOverlay || this.instances.some(({ plugin }) => plugin.error)) {
279
- clientWindow.addEventListener("error", this.handleWindowError);
280
- clientWindow.addEventListener("unhandledrejection", this.handleUnhandledRejection);
281
- }
282
- clientWindow.addEventListener("pagehide", this.handlePageHide);
283
- }
284
- installPerformanceObservers() {
285
- if (!this.instances.some(({ plugin }) => plugin.performance)) return;
286
- const Observer = typeof PerformanceObserver !== "undefined" ? PerformanceObserver : void 0;
287
- if (!Observer) return;
288
- const supported = new Set(Observer.supportedEntryTypes || []);
289
- for (const type of PERFORMANCE_ENTRY_TYPES) {
290
- if (!supported.has(type)) continue;
291
- try {
292
- const observer = new Observer((list) => {
293
- for (const entry of list.getEntries()) {
294
- void this.runHook(
295
- "performance",
296
- (instance) => instance.plugin.performance?.({
297
- ...this.createStateEvent(instance),
298
- entry,
299
- location: this.getLocation()
300
- })
301
- );
302
- }
303
- });
304
- observer.observe({ type, buffered: true });
305
- this.performanceObservers.push(observer);
306
- } catch (error) {
307
- void this.reportError(error, "performance");
308
- }
309
- }
310
- }
311
- async closeInternal(reason) {
312
- if (this.closed) return;
313
- if (this.startPromise) await this.startPromise;
314
- this.closed = true;
315
- this.currentNavigation?.controller.abort(reason);
316
- this.currentNavigation = void 0;
317
- const clientWindow = this.options.window;
318
- clientWindow?.removeEventListener("error", this.handleWindowError);
319
- clientWindow?.removeEventListener("unhandledrejection", this.handleUnhandledRejection);
320
- clientWindow?.removeEventListener("pagehide", this.handlePageHide);
321
- for (const observer of this.performanceObservers) observer.disconnect();
322
- this.performanceObservers.length = 0;
323
- this.runtimeErrorOverlay?.destroy();
324
- for (const instance of [...this.instances].reverse()) {
325
- try {
326
- await instance.plugin.close?.({
327
- ...this.createStateEvent(instance),
328
- reason
329
- });
330
- } catch (error) {
331
- this.logHookError(instance.registration.name, "close", error);
332
- }
333
- }
334
- }
335
- async runHook(hook, invoke) {
336
- for (const instance of this.instances) {
337
- try {
338
- await invoke(instance);
339
- } catch (error) {
340
- this.logHookError(instance.registration.name, hook, error);
341
- await this.runErrorHooks(
342
- {
343
- error,
344
- phase: `plugin:${hook}`,
345
- location: this.getLocation()
346
- },
347
- instance
348
- );
349
- }
350
- }
351
- }
352
- async runErrorHooks(event, excluded, sourceEvent) {
353
- this.runtimeErrorOverlay?.show(event.error, {
354
- phase: event.phase,
355
- location: event.location,
356
- sourceEvent
357
- });
358
- for (const instance of this.instances) {
359
- if (instance === excluded || !instance.plugin.error) continue;
360
- try {
361
- await instance.plugin.error({
362
- ...this.createStateEvent(instance),
363
- ...event
364
- });
365
- } catch (error) {
366
- this.logHookError(instance.registration.name, "error", error);
367
- }
368
- }
369
- }
370
- createSetupEvent(instance) {
371
- return {
372
- plugin: {
373
- name: instance.registration.name,
374
- version: instance.registration.version
375
- },
376
- public: readonlyPublicData(instance.registration.public),
377
- router: this.options.router,
378
- isDev: Boolean(this.options.isDev),
379
- isProd: Boolean(this.options.isProd),
380
- deploymentId: this.options.deploymentId
381
- };
382
- }
383
- createStateEvent(instance) {
384
- return {
385
- ...this.createSetupEvent(instance),
386
- state: instance.state
387
- };
388
- }
389
- getLocation() {
390
- const href = this.options.window?.location.href ?? "http://localhost/";
391
- return toClientLocation(href, href);
392
- }
393
- getBaseUrl() {
394
- return this.options.window?.location.href ?? "http://localhost/";
395
- }
396
- logHookError(name, hook, error) {
397
- console.error(`[Farm.js] Client plugin "${name}" failed in ${hook}:`, error);
398
- }
399
- };
400
- __name(_FarmClientPluginManager, "FarmClientPluginManager");
401
- var FarmClientPluginManager = _FarmClientPluginManager;
402
- function createClientPluginManager(registrations, options) {
403
- return new FarmClientPluginManager(registrations, options);
404
- }
405
- __name(createClientPluginManager, "createClientPluginManager");
406
- function sortRegistrations(registrations) {
407
- const rank = /* @__PURE__ */ __name((enforce) => enforce === "pre" ? 0 : enforce === "post" ? 2 : 1, "rank");
408
- return registrations.map((registration, index) => ({ registration, index })).sort(
409
- (left, right) => rank(left.registration.enforce) - rank(right.registration.enforce) || left.index - right.index
410
- ).map(({ registration }) => registration);
411
- }
412
- __name(sortRegistrations, "sortRegistrations");
413
- function toClientLocation(input, base) {
414
- if (typeof input === "object" && "href" in input && "pathname" in input) {
415
- return {
416
- href: input.href,
417
- pathname: input.pathname,
418
- search: input.search,
419
- hash: input.hash
420
- };
421
- }
422
- const url = new URL(input, base);
423
- return {
424
- href: url.href,
425
- pathname: url.pathname,
426
- search: url.search,
427
- hash: url.hash
428
- };
429
- }
430
- __name(toClientLocation, "toClientLocation");
431
- function readonlyPublicData(value) {
432
- if (value && typeof value === "object") {
433
- return Object.freeze(value);
434
- }
435
- return value;
436
- }
437
- __name(readonlyPublicData, "readonlyPublicData");
438
- function now() {
439
- return typeof performance !== "undefined" ? performance.now() : Date.now();
440
- }
441
- __name(now, "now");
442
- function isObject(value) {
443
- return typeof value === "object" && value !== null || typeof value === "function";
444
- }
445
- __name(isObject, "isObject");
446
- // Annotate the CommonJS export names for ESM import in node:
447
- 0 && (module.exports = {
448
- FarmClientPluginManager,
449
- createClientPluginManager
450
- });
4
+ var _chunkVB6UCX3Vcjs = require('./chunk-VB6UCX3V.cjs');
5
+ require('./chunk-S3JO3N4H.cjs');
6
+
7
+
8
+
9
+ exports.FarmClientPluginManager = _chunkVB6UCX3Vcjs.FarmClientPluginManager; exports.createClientPluginManager = _chunkVB6UCX3Vcjs.createClientPluginManager;