@farm.js/core 0.1.0-beta.21 → 0.1.0-beta.23
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.
- package/dist/after.d.mts +25 -0
- package/dist/after.d.ts +25 -0
- package/dist/agent-runtime.d.mts +97 -0
- package/dist/agent-runtime.d.ts +97 -0
- package/dist/api/route-manager.d.mts +68 -0
- package/dist/api/route-manager.d.ts +68 -0
- package/dist/api/runtime.d.mts +3 -0
- package/dist/api/runtime.d.ts +3 -0
- package/dist/api.cjs +22 -19
- package/dist/api.cjs.map +1 -1
- package/dist/api.d.mts +50 -0
- package/dist/api.d.ts +50 -0
- package/dist/api.mjs +2 -1
- package/dist/app-CTFnOJaI.d.ts +308 -0
- package/dist/app-DA6ospIq.d.mts +308 -0
- package/dist/app-markdown.d.mts +25 -0
- package/dist/app-markdown.d.ts +25 -0
- package/dist/cache.d.mts +192 -0
- package/dist/cache.d.ts +192 -0
- package/dist/{chunk-MIUW47JX.mjs → chunk-2PEJGY5V.mjs} +15 -20
- package/dist/chunk-2PEJGY5V.mjs.map +1 -0
- package/dist/{chunk-RIXKJPGI.mjs → chunk-42325TLU.mjs} +2 -2
- package/dist/chunk-4IVNW5QD.mjs +82 -0
- package/dist/chunk-4IVNW5QD.mjs.map +1 -0
- package/dist/{chunk-I3UWA2P2.mjs → chunk-5NOVWCFL.mjs} +2 -2
- package/dist/chunk-5NOVWCFL.mjs.map +1 -0
- package/dist/chunk-D42BNPZH.mjs +79 -0
- package/dist/chunk-D42BNPZH.mjs.map +1 -0
- package/dist/{chunk-LLPN5SEZ.mjs → chunk-DVPRBMU2.mjs} +2 -2
- package/dist/{chunk-VIC7NJ77.mjs → chunk-FJGTYLCO.mjs} +67 -20
- package/dist/chunk-FJGTYLCO.mjs.map +1 -0
- package/dist/chunk-GIELMNBG.mjs +15 -0
- package/dist/chunk-GIELMNBG.mjs.map +1 -0
- package/dist/chunk-GQVQESLY.mjs +25 -0
- package/dist/chunk-GQVQESLY.mjs.map +1 -0
- package/dist/chunk-H53KVQUU.mjs +48 -0
- package/dist/chunk-H53KVQUU.mjs.map +1 -0
- package/dist/chunk-HCGQYYHI.mjs +1 -0
- package/dist/chunk-HCGQYYHI.mjs.map +1 -0
- package/dist/{chunk-4EATUJFO.mjs → chunk-ICTGDDV4.mjs} +20 -22
- package/dist/chunk-ICTGDDV4.mjs.map +1 -0
- package/dist/{chunk-UCYWGN2P.mjs → chunk-OHNSROHS.mjs} +1 -1
- package/dist/{chunk-FRPWCMMG.mjs → chunk-SBWOTAX4.mjs} +63 -2
- package/dist/chunk-SBWOTAX4.mjs.map +1 -0
- package/dist/{chunk-FKKM7HVF.mjs → chunk-TX54PXAJ.mjs} +109 -58
- package/dist/chunk-TX54PXAJ.mjs.map +1 -0
- package/dist/{chunk-CEVMYGDL.mjs → chunk-YD5IRKVS.mjs} +13 -9
- package/dist/chunk-YD5IRKVS.mjs.map +1 -0
- package/dist/chunk-recovery-lnQFzcQP.d.mts +26 -0
- package/dist/chunk-recovery-lnQFzcQP.d.ts +26 -0
- package/dist/client-BT1mFQas.d.mts +447 -0
- package/dist/client-Nn0q4eO4.d.ts +447 -0
- package/dist/client-cache-CIlyBlmx.d.ts +6 -0
- package/dist/client-cache-D-EZ7XVW.d.mts +6 -0
- package/dist/client-plugins-CCilIb_G.d.mts +2092 -0
- package/dist/client-plugins-DuuleQKk.d.ts +2092 -0
- package/dist/client-plugins.d.mts +25 -0
- package/dist/client-plugins.d.ts +25 -0
- package/dist/client.cjs +122 -35
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.mts +454 -0
- package/dist/client.d.ts +454 -0
- package/dist/client.mjs +13 -2
- package/dist/config.d.mts +32 -0
- package/dist/config.d.ts +32 -0
- package/dist/cron.d.mts +78 -0
- package/dist/cron.d.ts +78 -0
- package/dist/deferred.d.mts +42 -0
- package/dist/deferred.d.ts +42 -0
- package/dist/deployment.d.mts +36 -0
- package/dist/deployment.d.ts +36 -0
- package/dist/{devtools-52FYXIEK.mjs → devtools-326RBQCN.mjs} +7 -6
- package/dist/{devtools-52FYXIEK.mjs.map → devtools-326RBQCN.mjs.map} +1 -1
- package/dist/docs.cjs.map +1 -1
- package/dist/docs.d.mts +80 -0
- package/dist/docs.d.ts +80 -0
- package/dist/docs.mjs +6 -5
- package/dist/env-types.d.mts +12 -0
- package/dist/env-types.d.ts +12 -0
- package/dist/env.d.mts +45 -0
- package/dist/env.d.ts +45 -0
- package/dist/environment/vite.d.mts +22 -0
- package/dist/environment/vite.d.ts +22 -0
- package/dist/environment.d.mts +18 -0
- package/dist/environment.d.ts +18 -0
- package/dist/font.d.mts +95 -0
- package/dist/font.d.ts +95 -0
- package/dist/headers.d.mts +22 -0
- package/dist/headers.d.ts +22 -0
- package/dist/i18n/client.d.mts +32 -0
- package/dist/i18n/client.d.ts +32 -0
- package/dist/i18n/index.d.mts +20 -0
- package/dist/i18n/index.d.ts +20 -0
- package/dist/i18n/server.d.mts +30 -0
- package/dist/i18n/server.d.ts +30 -0
- package/dist/image/server.d.mts +37 -0
- package/dist/image/server.d.ts +37 -0
- package/dist/image/sharp.d.mts +7 -0
- package/dist/image/sharp.d.ts +7 -0
- package/dist/image-config-Duob7wER.d.mts +50 -0
- package/dist/image-config-Duob7wER.d.ts +50 -0
- package/dist/image.d.mts +39 -0
- package/dist/image.d.ts +39 -0
- package/dist/index.cjs +496 -123
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +480 -0
- package/dist/index.d.ts +480 -0
- package/dist/index.mjs +70 -52
- package/dist/index.mjs.map +1 -1
- package/dist/integration-api-CHT2OKAf.d.mts +93 -0
- package/dist/integration-api-CHT2OKAf.d.ts +93 -0
- package/dist/integrations.d.mts +25 -0
- package/dist/integrations.d.ts +25 -0
- package/dist/internal/build-runtime.cjs +386 -83
- package/dist/internal/build-runtime.cjs.map +1 -1
- package/dist/internal/build-runtime.d.mts +42 -0
- package/dist/internal/build-runtime.d.ts +42 -0
- package/dist/internal/build-runtime.mjs +17 -13
- package/dist/internal/client-runtime.d.mts +17 -0
- package/dist/internal/client-runtime.d.ts +17 -0
- package/dist/internal/config-runtime.cjs +41 -0
- package/dist/internal/config-runtime.cjs.map +1 -1
- package/dist/internal/config-runtime.d.mts +42 -0
- package/dist/internal/config-runtime.d.ts +42 -0
- package/dist/internal/config-runtime.mjs +5 -4
- package/dist/internal/metadata-image-runtime.d.mts +25 -0
- package/dist/internal/metadata-image-runtime.d.ts +25 -0
- package/dist/internal/production-node-env.d.mts +12 -0
- package/dist/internal/production-node-env.d.ts +12 -0
- package/dist/internal/production-runtime.cjs +178 -0
- package/dist/internal/production-runtime.cjs.map +1 -1
- package/dist/internal/production-runtime.d.mts +80 -0
- package/dist/internal/production-runtime.d.ts +80 -0
- package/dist/internal/production-runtime.mjs +13 -1
- package/dist/internal/production-runtime.mjs.map +1 -1
- package/dist/island-CfGru1MO.d.mts +9 -0
- package/dist/island-CfGru1MO.d.ts +9 -0
- package/dist/markdown.d.mts +60 -0
- package/dist/markdown.d.ts +60 -0
- package/dist/metadata-DyPRG0wX.d.ts +22 -0
- package/dist/metadata-_GHcAySx.d.mts +22 -0
- package/dist/middleware.cjs +17 -17
- package/dist/middleware.cjs.map +1 -1
- package/dist/middleware.d.mts +172 -0
- package/dist/middleware.d.ts +172 -0
- package/dist/middleware.mjs +3 -2
- package/dist/navigation-errors-Dvwpzaer.d.mts +13 -0
- package/dist/navigation-errors-Dvwpzaer.d.ts +13 -0
- package/dist/navigation.d.mts +14 -0
- package/dist/navigation.d.ts +14 -0
- package/dist/observability.d.mts +335 -0
- package/dist/observability.d.ts +335 -0
- package/dist/params-BALtrRim.d.ts +15 -0
- package/dist/params-ry-lxqmy.d.mts +15 -0
- package/dist/plugin-BJDf43dc.d.mts +165 -0
- package/dist/plugin-BJDf43dc.d.ts +165 -0
- package/dist/plugin.cjs +261 -62
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.mts +25 -0
- package/dist/plugin.d.ts +25 -0
- package/dist/plugin.mjs +13 -9
- package/dist/production-runtime-C4cO3esK.d.mts +81 -0
- package/dist/production-runtime-DrEy8kBO.d.ts +81 -0
- package/dist/query/client.d.mts +61 -0
- package/dist/query/client.d.ts +61 -0
- package/dist/query/index.d.mts +90 -0
- package/dist/query/index.d.ts +90 -0
- package/dist/query/parsers.d.mts +25 -0
- package/dist/query/parsers.d.ts +25 -0
- package/dist/query/server.d.mts +55 -0
- package/dist/query/server.d.ts +55 -0
- package/dist/request-B2PpOxYK.d.mts +6 -0
- package/dist/request-D40lt6aN.d.ts +6 -0
- package/dist/request.d.mts +26 -0
- package/dist/request.d.ts +26 -0
- package/dist/resolver-DJqjLMg_.d.mts +14 -0
- package/dist/resolver-IH4RmPEl.d.ts +14 -0
- package/dist/route-runtime-DoOHzCAD.d.mts +38 -0
- package/dist/route-runtime-DoOHzCAD.d.ts +38 -0
- package/dist/router.d.mts +36 -0
- package/dist/router.d.ts +36 -0
- package/dist/routes.d.mts +227 -0
- package/dist/routes.d.ts +227 -0
- package/dist/runtime-Bpp-c28k.d.ts +231 -0
- package/dist/runtime-Cxpq6xZN.d.mts +27 -0
- package/dist/runtime-Q3u74Nbq.d.mts +231 -0
- package/dist/runtime-bv63eUiO.d.ts +27 -0
- package/dist/server-action-security.d.mts +45 -0
- package/dist/server-action-security.d.ts +45 -0
- package/dist/server-fn-client.d.mts +33 -0
- package/dist/server-fn-client.d.ts +33 -0
- package/dist/server-fn-error-DDh14a0V.d.mts +26 -0
- package/dist/server-fn-error-DDh14a0V.d.ts +26 -0
- package/dist/server-fn.d.mts +121 -0
- package/dist/server-fn.d.ts +121 -0
- package/dist/server-plugins.d.mts +58 -0
- package/dist/server-plugins.d.ts +58 -0
- package/dist/server-query-client.d.mts +51 -0
- package/dist/server-query-client.d.ts +51 -0
- package/dist/server-query.d.mts +37 -0
- package/dist/server-query.d.ts +37 -0
- package/dist/server.cjs +285 -85
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.mts +53 -0
- package/dist/server.d.ts +53 -0
- package/dist/server.mjs +26 -31
- package/dist/server.mjs.map +1 -1
- package/dist/storage.d.mts +52 -0
- package/dist/storage.d.ts +52 -0
- package/dist/testing.d.mts +104 -0
- package/dist/testing.d.ts +104 -0
- package/dist/theme/client.cjs +115 -0
- package/dist/theme/client.cjs.map +1 -0
- package/dist/theme/client.d.mts +17 -0
- package/dist/theme/client.d.ts +17 -0
- package/dist/theme/client.mjs +16 -0
- package/dist/theme/client.mjs.map +1 -0
- package/dist/theme/index.cjs +71 -0
- package/dist/theme/index.cjs.map +1 -0
- package/dist/theme/index.d.mts +6 -0
- package/dist/theme/index.d.ts +6 -0
- package/dist/theme/index.mjs +9 -0
- package/dist/theme/index.mjs.map +1 -0
- package/dist/theme/server.cjs +191 -0
- package/dist/theme/server.cjs.map +1 -0
- package/dist/theme/server.d.mts +8 -0
- package/dist/theme/server.d.ts +8 -0
- package/dist/theme/server.mjs +18 -0
- package/dist/theme/server.mjs.map +1 -0
- package/dist/transport-BmbGTXA5.d.mts +49 -0
- package/dist/transport-BmbGTXA5.d.ts +49 -0
- package/dist/types-BMxWr97v.d.mts +81 -0
- package/dist/types-BMxWr97v.d.ts +81 -0
- package/dist/types-CsR8fpgF.d.mts +30 -0
- package/dist/types-CsR8fpgF.d.ts +30 -0
- package/dist/types-D1A6-XvH.d.mts +73 -0
- package/dist/types-D1A6-XvH.d.ts +73 -0
- package/dist/types-DTzm4TCl.d.mts +78 -0
- package/dist/types-DTzm4TCl.d.ts +78 -0
- package/dist/utils-3sQgfkya.d.ts +23 -0
- package/dist/utils-Bop7bly-.d.mts +23 -0
- package/dist/version.cjs +1 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.d.mts +3 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +285 -64
- package/dist/vite.cjs.map +1 -1
- package/dist/vite.d.mts +25 -0
- package/dist/vite.d.ts +25 -0
- package/dist/vite.mjs +13 -9
- package/dist/workflows-CusFV6mn.d.mts +153 -0
- package/dist/workflows-CusFV6mn.d.ts +153 -0
- package/dist/workflows.d.mts +1 -0
- package/dist/workflows.d.ts +1 -0
- package/package.json +25 -1
- package/dist/chunk-4EATUJFO.mjs.map +0 -1
- package/dist/chunk-CEVMYGDL.mjs.map +0 -1
- package/dist/chunk-FKKM7HVF.mjs.map +0 -1
- package/dist/chunk-FRPWCMMG.mjs.map +0 -1
- package/dist/chunk-I3UWA2P2.mjs.map +0 -1
- package/dist/chunk-MIUW47JX.mjs.map +0 -1
- package/dist/chunk-VIC7NJ77.mjs.map +0 -1
- /package/dist/{chunk-RIXKJPGI.mjs.map → chunk-42325TLU.mjs.map} +0 -0
- /package/dist/{chunk-LLPN5SEZ.mjs.map → chunk-DVPRBMU2.mjs.map} +0 -0
- /package/dist/{chunk-UCYWGN2P.mjs.map → chunk-OHNSROHS.mjs.map} +0 -0
package/dist/server.cjs
CHANGED
|
@@ -5632,6 +5632,52 @@ var init_config = __esm({
|
|
|
5632
5632
|
}
|
|
5633
5633
|
});
|
|
5634
5634
|
|
|
5635
|
+
// src/theme/config.ts
|
|
5636
|
+
function resolveFarmThemeConfig(config, basePath = "/") {
|
|
5637
|
+
if (config && "enabled" in config) {
|
|
5638
|
+
return config;
|
|
5639
|
+
}
|
|
5640
|
+
if (!config) {
|
|
5641
|
+
return {
|
|
5642
|
+
enabled: false,
|
|
5643
|
+
default: "system",
|
|
5644
|
+
storageKey: DEFAULT_FARM_THEME_STORAGE_KEY,
|
|
5645
|
+
cookiePath: normalizeCookiePath(basePath)
|
|
5646
|
+
};
|
|
5647
|
+
}
|
|
5648
|
+
const storageKey = config.storageKey?.trim() || DEFAULT_FARM_THEME_STORAGE_KEY;
|
|
5649
|
+
if (!STORAGE_KEY_PATTERN.test(storageKey)) {
|
|
5650
|
+
throw new Error(
|
|
5651
|
+
"theme.storageKey may only contain letters, numbers, dots, underscores, and hyphens."
|
|
5652
|
+
);
|
|
5653
|
+
}
|
|
5654
|
+
const defaultTheme = config.default ?? "system";
|
|
5655
|
+
if (defaultTheme !== "light" && defaultTheme !== "dark" && defaultTheme !== "system") {
|
|
5656
|
+
throw new Error('theme.default must be "light", "dark", or "system".');
|
|
5657
|
+
}
|
|
5658
|
+
return {
|
|
5659
|
+
enabled: true,
|
|
5660
|
+
default: defaultTheme,
|
|
5661
|
+
storageKey,
|
|
5662
|
+
cookiePath: normalizeCookiePath(basePath)
|
|
5663
|
+
};
|
|
5664
|
+
}
|
|
5665
|
+
function normalizeCookiePath(basePath) {
|
|
5666
|
+
const normalized = `/${basePath}`.replace(/\/{2,}/g, "/");
|
|
5667
|
+
if (normalized === "/") return normalized;
|
|
5668
|
+
return normalized.replace(/\/$/, "");
|
|
5669
|
+
}
|
|
5670
|
+
var DEFAULT_FARM_THEME_STORAGE_KEY, STORAGE_KEY_PATTERN;
|
|
5671
|
+
var init_config2 = __esm({
|
|
5672
|
+
"src/theme/config.ts"() {
|
|
5673
|
+
"use strict";
|
|
5674
|
+
DEFAULT_FARM_THEME_STORAGE_KEY = "farm-theme";
|
|
5675
|
+
STORAGE_KEY_PATTERN = /^[A-Za-z0-9._-]+$/;
|
|
5676
|
+
__name(resolveFarmThemeConfig, "resolveFarmThemeConfig");
|
|
5677
|
+
__name(normalizeCookiePath, "normalizeCookiePath");
|
|
5678
|
+
}
|
|
5679
|
+
});
|
|
5680
|
+
|
|
5635
5681
|
// src/devtools-config.ts
|
|
5636
5682
|
function resolveFarmDevtoolsConfig(config, mode = "development") {
|
|
5637
5683
|
if (mode !== "development" || config === false) {
|
|
@@ -10733,6 +10779,7 @@ async function resolveConfig(userConfig, mode) {
|
|
|
10733
10779
|
routeRules,
|
|
10734
10780
|
images: resolveFarmImageConfig(userConfig.images),
|
|
10735
10781
|
performance: resolveFarmPerformanceConfig(userConfig.performance),
|
|
10782
|
+
theme: resolveFarmThemeConfig(userConfig.theme, userConfig.basePath || "/"),
|
|
10736
10783
|
publicDir: userConfig.publicDir || "public",
|
|
10737
10784
|
i18n: resolveFarmI18nConfig(userConfig.i18n, { root, mode }),
|
|
10738
10785
|
openapi: {
|
|
@@ -10810,7 +10857,7 @@ async function loadConfig(rootDir, configPath, mode = process.env.NODE_ENV === "
|
|
|
10810
10857
|
return void 0;
|
|
10811
10858
|
}
|
|
10812
10859
|
var import_path9, FARM_RESOLVED_CUSTOM_CONTEXT, DOCS_CONFIG_FILENAMES;
|
|
10813
|
-
var
|
|
10860
|
+
var init_config3 = __esm({
|
|
10814
10861
|
"src/config.ts"() {
|
|
10815
10862
|
"use strict";
|
|
10816
10863
|
init_integrations();
|
|
@@ -10831,6 +10878,7 @@ var init_config2 = __esm({
|
|
|
10831
10878
|
init_auth_config();
|
|
10832
10879
|
init_preload();
|
|
10833
10880
|
init_security();
|
|
10881
|
+
init_config2();
|
|
10834
10882
|
init_config_entry();
|
|
10835
10883
|
FARM_RESOLVED_CUSTOM_CONTEXT = /* @__PURE__ */ Symbol.for("farm.resolvedCustomContext");
|
|
10836
10884
|
__name(normalizeDeployTarget, "normalizeDeployTarget");
|
|
@@ -11333,7 +11381,7 @@ var init_api = __esm({
|
|
|
11333
11381
|
"src/docs/api.ts"() {
|
|
11334
11382
|
"use strict";
|
|
11335
11383
|
import_docs2 = require("@farming-labs/docs");
|
|
11336
|
-
|
|
11384
|
+
init_config3();
|
|
11337
11385
|
init_handler();
|
|
11338
11386
|
__name(isRecord4, "isRecord");
|
|
11339
11387
|
__name(isResolvedDocsConfig2, "isResolvedDocsConfig");
|
|
@@ -12318,7 +12366,7 @@ var init_devtools = __esm({
|
|
|
12318
12366
|
"src/devtools.ts"() {
|
|
12319
12367
|
"use strict";
|
|
12320
12368
|
import_node_path14 = __toESM(require("path"));
|
|
12321
|
-
|
|
12369
|
+
init_config3();
|
|
12322
12370
|
init_cron();
|
|
12323
12371
|
init_route_runtime();
|
|
12324
12372
|
__name(normalizePath, "normalizePath");
|
|
@@ -14025,6 +14073,8 @@ __export(server_exports, {
|
|
|
14025
14073
|
getServerActionInvalidations: () => getServerActionInvalidations,
|
|
14026
14074
|
getServerActionSignal: () => getServerActionSignal,
|
|
14027
14075
|
getStorage: () => getStorage,
|
|
14076
|
+
getTheme: () => getTheme,
|
|
14077
|
+
getThemeSnapshot: () => getThemeSnapshot,
|
|
14028
14078
|
globFiles: () => globFiles,
|
|
14029
14079
|
initStorage: () => initStorage,
|
|
14030
14080
|
invalidate: () => invalidate,
|
|
@@ -20671,6 +20721,125 @@ function DefaultNotFoundPage(_props) {
|
|
|
20671
20721
|
}
|
|
20672
20722
|
__name(DefaultNotFoundPage, "DefaultNotFoundPage");
|
|
20673
20723
|
|
|
20724
|
+
// src/theme/server-runtime.ts
|
|
20725
|
+
init_config2();
|
|
20726
|
+
var THEME_SCRIPT_ID = "farm-theme-script";
|
|
20727
|
+
var THEME_STYLE_ID = "farm-theme-style";
|
|
20728
|
+
function createFarmThemeDocumentParts(input, basePath = "/", serverTheme) {
|
|
20729
|
+
const config = resolveFarmThemeConfig(input, basePath);
|
|
20730
|
+
if (!config.enabled) return { attributes: "", head: "" };
|
|
20731
|
+
const hydrationTheme = serverTheme ?? config.default;
|
|
20732
|
+
const initialTheme = hydrationTheme === "system" ? "light" : hydrationTheme;
|
|
20733
|
+
const script = createFarmThemeBootstrapScript(config, hydrationTheme);
|
|
20734
|
+
return {
|
|
20735
|
+
attributes: ` data-theme="${initialTheme}"`,
|
|
20736
|
+
head: `<style id="${THEME_STYLE_ID}">:root[data-theme="light"]{color-scheme:light}:root[data-theme="dark"]{color-scheme:dark}</style><script id="${THEME_SCRIPT_ID}">${script}</script>`
|
|
20737
|
+
};
|
|
20738
|
+
}
|
|
20739
|
+
__name(createFarmThemeDocumentParts, "createFarmThemeDocumentParts");
|
|
20740
|
+
function createFarmThemeBootstrapScript(config, serverTheme = config.default) {
|
|
20741
|
+
return `(function(config,serverTheme){
|
|
20742
|
+
var isTheme=function(value){return value==="light"||value==="dark"||value==="system";};
|
|
20743
|
+
var decode=function(value){try{return decodeURIComponent(value);}catch(_error){return value;}};
|
|
20744
|
+
var readCookie=function(){var entries=document.cookie.split(";");for(var index=0;index<entries.length;index++){var entry=entries[index];var separator=entry.indexOf("=");if(separator<0)continue;if(decode(entry.slice(0,separator).trim())===config.storageKey)return decode(entry.slice(separator+1).trim());}};
|
|
20745
|
+
var media=window.matchMedia("(prefers-color-scheme: dark)");
|
|
20746
|
+
var resolveTheme=function(theme){return theme==="system"?(media.matches?"dark":"light"):theme;};
|
|
20747
|
+
var storedTheme=readCookie();
|
|
20748
|
+
var preference=isTheme(storedTheme)?storedTheme:config.default;
|
|
20749
|
+
var serverSnapshot={theme:serverTheme,resolvedTheme:serverTheme==="system"?undefined:serverTheme,mounted:false};
|
|
20750
|
+
var apply=function(){var resolvedTheme=resolveTheme(preference);document.documentElement.dataset.theme=resolvedTheme;var snapshot={theme:preference,resolvedTheme:resolvedTheme,mounted:true};if(window.__FARM_THEME__)window.__FARM_THEME__.snapshot=snapshot;return snapshot;};
|
|
20751
|
+
var emit=function(){var snapshot=apply();window.dispatchEvent(new CustomEvent("farm:themechange",{detail:snapshot}));};
|
|
20752
|
+
var persist=function(theme){var secure=window.location.protocol==="https:"?"; Secure":"";document.cookie=encodeURIComponent(config.storageKey)+"="+encodeURIComponent(theme)+"; Path="+config.cookiePath+"; Max-Age=31536000; SameSite=Lax"+secure;try{localStorage.setItem(config.storageKey,theme);}catch(_error){}};
|
|
20753
|
+
var setTheme=function(theme){if(!isTheme(theme))throw new TypeError("Unknown FARMJS theme: "+String(theme));preference=theme;persist(theme);emit();};
|
|
20754
|
+
var initialSnapshot={theme:preference,resolvedTheme:resolveTheme(preference),mounted:true};
|
|
20755
|
+
window.__FARM_THEME__={config:config,serverSnapshot:serverSnapshot,snapshot:initialSnapshot,setTheme:setTheme};
|
|
20756
|
+
document.documentElement.dataset.theme=initialSnapshot.resolvedTheme;
|
|
20757
|
+
var handleSystemChange=function(){if(preference==="system")emit();};
|
|
20758
|
+
if(typeof media.addEventListener==="function")media.addEventListener("change",handleSystemChange);else if(typeof media.addListener==="function")media.addListener(handleSystemChange);
|
|
20759
|
+
window.addEventListener("storage",function(event){if(event.key!==config.storageKey||!isTheme(event.newValue))return;preference=event.newValue;persist(preference);emit();});
|
|
20760
|
+
})(${serializeInlineValue(config)},${serializeInlineValue(serverTheme)});`;
|
|
20761
|
+
}
|
|
20762
|
+
__name(createFarmThemeBootstrapScript, "createFarmThemeBootstrapScript");
|
|
20763
|
+
function serializeInlineValue(value) {
|
|
20764
|
+
return JSON.stringify(value).replace(/</g, "\\u003c").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
20765
|
+
}
|
|
20766
|
+
__name(serializeInlineValue, "serializeInlineValue");
|
|
20767
|
+
|
|
20768
|
+
// src/theme/bridge.ts
|
|
20769
|
+
var FALLBACK_SERVER_SNAPSHOT = Object.freeze({
|
|
20770
|
+
theme: "system",
|
|
20771
|
+
resolvedTheme: void 0,
|
|
20772
|
+
mounted: false
|
|
20773
|
+
});
|
|
20774
|
+
var FARM_THEME_SERVER_SNAPSHOT_RESOLVER = /* @__PURE__ */ Symbol.for("farm.js.theme.server-snapshot-resolver");
|
|
20775
|
+
function _setFarmThemeServerSnapshotResolver(resolver) {
|
|
20776
|
+
globalThis[FARM_THEME_SERVER_SNAPSHOT_RESOLVER] = resolver;
|
|
20777
|
+
}
|
|
20778
|
+
__name(_setFarmThemeServerSnapshotResolver, "_setFarmThemeServerSnapshotResolver");
|
|
20779
|
+
|
|
20780
|
+
// src/theme/server.ts
|
|
20781
|
+
init_config2();
|
|
20782
|
+
var defaultThemeConfig = resolveFarmThemeConfig(void 0);
|
|
20783
|
+
function _setDefaultFarmThemeConfig(config, basePath = "/") {
|
|
20784
|
+
defaultThemeConfig = resolveFarmThemeConfig(config, basePath);
|
|
20785
|
+
}
|
|
20786
|
+
__name(_setDefaultFarmThemeConfig, "_setDefaultFarmThemeConfig");
|
|
20787
|
+
function getTheme(request = getCurrentRequest()) {
|
|
20788
|
+
return readFarmThemePreference(request, defaultThemeConfig);
|
|
20789
|
+
}
|
|
20790
|
+
__name(getTheme, "getTheme");
|
|
20791
|
+
function getThemeSnapshot(request = getCurrentRequest()) {
|
|
20792
|
+
const theme = readFarmThemePreference(request, defaultThemeConfig);
|
|
20793
|
+
return {
|
|
20794
|
+
theme,
|
|
20795
|
+
resolvedTheme: theme === "system" ? void 0 : theme,
|
|
20796
|
+
mounted: false
|
|
20797
|
+
};
|
|
20798
|
+
}
|
|
20799
|
+
__name(getThemeSnapshot, "getThemeSnapshot");
|
|
20800
|
+
function readFarmThemePreference(request, config) {
|
|
20801
|
+
if (!config.enabled) return config.default;
|
|
20802
|
+
const stored = readCookie3(request.headers.get("cookie"), config.storageKey);
|
|
20803
|
+
return isFarmThemePreference(stored) ? stored : config.default;
|
|
20804
|
+
}
|
|
20805
|
+
__name(readFarmThemePreference, "readFarmThemePreference");
|
|
20806
|
+
function readCookie3(cookieHeader, name) {
|
|
20807
|
+
if (!cookieHeader) return void 0;
|
|
20808
|
+
for (const entry of cookieHeader.split(";")) {
|
|
20809
|
+
const separator = entry.indexOf("=");
|
|
20810
|
+
if (separator < 0) continue;
|
|
20811
|
+
const key = decodeCookieValue(entry.slice(0, separator).trim());
|
|
20812
|
+
if (key !== name) continue;
|
|
20813
|
+
return decodeCookieValue(entry.slice(separator + 1).trim());
|
|
20814
|
+
}
|
|
20815
|
+
return void 0;
|
|
20816
|
+
}
|
|
20817
|
+
__name(readCookie3, "readCookie");
|
|
20818
|
+
function decodeCookieValue(value) {
|
|
20819
|
+
try {
|
|
20820
|
+
return decodeURIComponent(value);
|
|
20821
|
+
} catch {
|
|
20822
|
+
return value;
|
|
20823
|
+
}
|
|
20824
|
+
}
|
|
20825
|
+
__name(decodeCookieValue, "decodeCookieValue");
|
|
20826
|
+
function isFarmThemePreference(value) {
|
|
20827
|
+
return value === "light" || value === "dark" || value === "system";
|
|
20828
|
+
}
|
|
20829
|
+
__name(isFarmThemePreference, "isFarmThemePreference");
|
|
20830
|
+
_setFarmThemeServerSnapshotResolver(() => {
|
|
20831
|
+
try {
|
|
20832
|
+
return getThemeSnapshot();
|
|
20833
|
+
} catch {
|
|
20834
|
+
const theme = defaultThemeConfig.default;
|
|
20835
|
+
return {
|
|
20836
|
+
theme,
|
|
20837
|
+
resolvedTheme: theme === "system" ? void 0 : theme,
|
|
20838
|
+
mounted: false
|
|
20839
|
+
};
|
|
20840
|
+
}
|
|
20841
|
+
});
|
|
20842
|
+
|
|
20674
20843
|
// src/server/renderer.ts
|
|
20675
20844
|
var cachedClerkProvider = null;
|
|
20676
20845
|
var importRuntimeModule = new Function("specifier", "return import(specifier);");
|
|
@@ -20679,10 +20848,10 @@ function hasRequestHeader(req, name) {
|
|
|
20679
20848
|
return Array.isArray(value) ? value.length > 0 : Boolean(value);
|
|
20680
20849
|
}
|
|
20681
20850
|
__name(hasRequestHeader, "hasRequestHeader");
|
|
20682
|
-
function
|
|
20851
|
+
function serializeInlineValue2(value) {
|
|
20683
20852
|
return JSON.stringify(value).replace(/</g, "\\u003c").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
20684
20853
|
}
|
|
20685
|
-
__name(
|
|
20854
|
+
__name(serializeInlineValue2, "serializeInlineValue");
|
|
20686
20855
|
function escapeHtmlAttribute2(value) {
|
|
20687
20856
|
return value.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
20688
20857
|
}
|
|
@@ -20776,7 +20945,7 @@ function createDocumentFooter(options) {
|
|
|
20776
20945
|
__name(createDocumentFooter, "createDocumentFooter");
|
|
20777
20946
|
function createDeferredHydrationScript(records) {
|
|
20778
20947
|
if (records.length === 0) return "";
|
|
20779
|
-
return `<script>window.__FARM_DEFERRED_DATA__=${
|
|
20948
|
+
return `<script>window.__FARM_DEFERRED_DATA__=${serializeInlineValue2(
|
|
20780
20949
|
snapshotDeferredData(records)
|
|
20781
20950
|
)};</script>`;
|
|
20782
20951
|
}
|
|
@@ -21917,9 +22086,9 @@ var _ServerRenderer = class _ServerRenderer {
|
|
|
21917
22086
|
slots: routeSlotPayload
|
|
21918
22087
|
});
|
|
21919
22088
|
const propsScript = `<script>
|
|
21920
|
-
window.__FARM_PROPS__ = ${
|
|
21921
|
-
window.__FARM_ROUTE_SLOTS__ = ${
|
|
21922
|
-
window.__FARM_DEPLOYMENT_ID__ = ${
|
|
22089
|
+
window.__FARM_PROPS__ = ${serializeInlineValue2(deferredProps.data.page)};
|
|
22090
|
+
window.__FARM_ROUTE_SLOTS__ = ${serializeInlineValue2(deferredProps.data.slots)};
|
|
22091
|
+
window.__FARM_DEPLOYMENT_ID__ = ${serializeInlineValue2(deploymentId)};
|
|
21923
22092
|
window.__FARM_PATH__ = ${JSON.stringify(req.__FARM_ROUTE__ || req.url || "/")};
|
|
21924
22093
|
window.__FARM_IS_CLIENT__ = ${JSON.stringify(isClientComponent)};
|
|
21925
22094
|
window.__FARM_PAGE_SHOULD_HYDRATE__ = ${JSON.stringify(
|
|
@@ -21937,7 +22106,7 @@ window.__FARM_LOADING_MODULE__ = ${JSON.stringify(
|
|
|
21937
22106
|
)};
|
|
21938
22107
|
window.__FARM_MANIFEST__ = ${JSON.stringify(clientManifest)};
|
|
21939
22108
|
window.__FARM_INTEGRATION_API_MANIFEST__ = ${JSON.stringify(getRegisteredIntegrationAPIManifest())};
|
|
21940
|
-
${getFarmI18nClientSnapshot() ? `window.__FARM_I18N__ = ${
|
|
22109
|
+
${getFarmI18nClientSnapshot() ? `window.__FARM_I18N__ = ${serializeInlineValue2(getFarmI18nClientSnapshot())};` : ""}
|
|
21941
22110
|
</script>`;
|
|
21942
22111
|
const hydrationClickQueueScript = isClientComponent || req.__FARM_SHOULD_HYDRATE__ === true || req.__FARM_HAS_HYDRATABLE_ROUTE_SLOTS__ === true ? createPreHydrationClickQueueScript() : "";
|
|
21943
22112
|
const {
|
|
@@ -21948,6 +22117,11 @@ ${getFarmI18nClientSnapshot() ? `window.__FARM_I18N__ = ${serializeInlineValue(g
|
|
|
21948
22117
|
const i18nSnapshot = getFarmI18nClientSnapshot();
|
|
21949
22118
|
const i18nAlternateTags = i18nSnapshot ? renderI18nAlternateLinks(req.__FARM_ROUTE__ || req.url || "/", i18nSnapshot) : "";
|
|
21950
22119
|
const fontHead = renderFarmFontDevHead(this.config.root || process.cwd());
|
|
22120
|
+
const themeDocument = createFarmThemeDocumentParts(
|
|
22121
|
+
this.config.theme,
|
|
22122
|
+
this.config.basePath,
|
|
22123
|
+
getTheme()
|
|
22124
|
+
);
|
|
21951
22125
|
const streamRoot = import_react5.default.createElement("div", { style: { display: "contents" } }, element);
|
|
21952
22126
|
const { pipe } = (0, import_server2.renderToPipeableStream)(streamRoot, {
|
|
21953
22127
|
onShellReady() {
|
|
@@ -21961,8 +22135,9 @@ ${getFarmI18nClientSnapshot() ? `window.__FARM_I18N__ = ${serializeInlineValue(g
|
|
|
21961
22135
|
console.log(`[FARM STREAM] onShellReady at ${shellReadyMs}ms`);
|
|
21962
22136
|
}
|
|
21963
22137
|
const shell = `<!DOCTYPE html>
|
|
21964
|
-
<html lang="${escapeHtmlAttribute2(i18nSnapshot?.locale || "en")}"${i18nSnapshot ? ` dir="${i18nSnapshot.direction}"` : ""}>
|
|
22138
|
+
<html lang="${escapeHtmlAttribute2(i18nSnapshot?.locale || "en")}"${i18nSnapshot ? ` dir="${i18nSnapshot.direction}"` : ""}${themeDocument.attributes}>
|
|
21965
22139
|
<head>
|
|
22140
|
+
${themeDocument.head}
|
|
21966
22141
|
<meta charset="utf-8">
|
|
21967
22142
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
21968
22143
|
<meta name="farm-deployment-id" content="${escapeHtmlAttribute2(deploymentId)}">
|
|
@@ -22164,15 +22339,21 @@ ${getFarmI18nClientSnapshot() ? `window.__FARM_I18N__ = ${serializeInlineValue(g
|
|
|
22164
22339
|
const i18nSnapshot = getFarmI18nClientSnapshot();
|
|
22165
22340
|
const clientScript = isClientComponent ? ` <script type="module" src="/@farm/client.js"></script>` : "";
|
|
22166
22341
|
const integrationManifestScript = `<script>
|
|
22167
|
-
window.__FARM_DEPLOYMENT_ID__ = ${
|
|
22342
|
+
window.__FARM_DEPLOYMENT_ID__ = ${serializeInlineValue2(this.getDeploymentId())};
|
|
22168
22343
|
window.__FARM_INTEGRATION_API_MANIFEST__ = ${JSON.stringify(getRegisteredIntegrationAPIManifest())};
|
|
22169
|
-
${i18nSnapshot ? `window.__FARM_I18N__ = ${
|
|
22344
|
+
${i18nSnapshot ? `window.__FARM_I18N__ = ${serializeInlineValue2(i18nSnapshot)};` : ""}
|
|
22170
22345
|
</script>`;
|
|
22171
22346
|
const alternateLinks = i18nSnapshot ? renderI18nAlternateLinks(requestPath, i18nSnapshot) : "";
|
|
22172
22347
|
const fontHead = renderFarmFontDevHead(this.config.root || process.cwd());
|
|
22348
|
+
const themeDocument = createFarmThemeDocumentParts(
|
|
22349
|
+
this.config.theme,
|
|
22350
|
+
this.config.basePath,
|
|
22351
|
+
getTheme()
|
|
22352
|
+
);
|
|
22173
22353
|
return `<!DOCTYPE html>
|
|
22174
|
-
<html lang="${escapeHtmlAttribute2(i18nSnapshot?.locale || "en")}"${i18nSnapshot ? ` dir="${i18nSnapshot.direction}"` : ""}>
|
|
22354
|
+
<html lang="${escapeHtmlAttribute2(i18nSnapshot?.locale || "en")}"${i18nSnapshot ? ` dir="${i18nSnapshot.direction}"` : ""}${themeDocument.attributes}>
|
|
22175
22355
|
<head>
|
|
22356
|
+
${themeDocument.head}
|
|
22176
22357
|
<meta charset="utf-8">
|
|
22177
22358
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
22178
22359
|
<meta name="farm-deployment-id" content="${escapeHtmlAttribute2(this.getDeploymentId())}">
|
|
@@ -22219,6 +22400,7 @@ init_config();
|
|
|
22219
22400
|
init_auth_config();
|
|
22220
22401
|
init_preload();
|
|
22221
22402
|
init_security();
|
|
22403
|
+
init_config2();
|
|
22222
22404
|
var defaultDocsConfig = {
|
|
22223
22405
|
enabled: false,
|
|
22224
22406
|
entry: "/docs",
|
|
@@ -22232,6 +22414,7 @@ var _FarmApp = class _FarmApp {
|
|
|
22232
22414
|
constructor(config = {}, viteServer) {
|
|
22233
22415
|
this.config = this.normalizeConfig(config);
|
|
22234
22416
|
configureFarmObservability(this.config.observability);
|
|
22417
|
+
_setDefaultFarmThemeConfig(this.config.theme);
|
|
22235
22418
|
this.i18nRuntime = createFarmI18nRuntime(this.config.i18n);
|
|
22236
22419
|
_setDefaultFarmI18nRuntime(this.i18nRuntime);
|
|
22237
22420
|
this.viteServer = viteServer;
|
|
@@ -22290,6 +22473,7 @@ var _FarmApp = class _FarmApp {
|
|
|
22290
22473
|
security: resolveFarmSecurityConfig(config.security),
|
|
22291
22474
|
images: resolveFarmImageConfig(config.images),
|
|
22292
22475
|
performance: resolveFarmPerformanceConfig(config.performance),
|
|
22476
|
+
theme: resolveFarmThemeConfig(config.theme, config.basePath || "/"),
|
|
22293
22477
|
i18n: isResolvedI18nConfig(config.i18n) ? config.i18n : resolveFarmI18nConfig(config.i18n, {
|
|
22294
22478
|
root,
|
|
22295
22479
|
mode: process.env.NODE_ENV === "production" ? "production" : "development"
|
|
@@ -23494,6 +23678,15 @@ __name(normalizeMiddlewareModule, "normalizeMiddlewareModule");
|
|
|
23494
23678
|
|
|
23495
23679
|
// src/middleware/manager.ts
|
|
23496
23680
|
init_response();
|
|
23681
|
+
|
|
23682
|
+
// src/cli-colors.ts
|
|
23683
|
+
var import_picocolors = __toESM(require("picocolors"));
|
|
23684
|
+
function createCliColors(interactive = process.stdout.isTTY === true) {
|
|
23685
|
+
return import_picocolors.default.createColors(interactive);
|
|
23686
|
+
}
|
|
23687
|
+
__name(createCliColors, "createCliColors");
|
|
23688
|
+
|
|
23689
|
+
// src/middleware/manager.ts
|
|
23497
23690
|
function isMiddlewareResponse(value) {
|
|
23498
23691
|
return value instanceof Response;
|
|
23499
23692
|
}
|
|
@@ -23650,23 +23843,16 @@ var _MiddlewareManager = class _MiddlewareManager {
|
|
|
23650
23843
|
if (applicable.length === 0) {
|
|
23651
23844
|
return false;
|
|
23652
23845
|
}
|
|
23653
|
-
|
|
23654
|
-
|
|
23655
|
-
|
|
23656
|
-
|
|
23657
|
-
|
|
23658
|
-
|
|
23659
|
-
|
|
23660
|
-
|
|
23661
|
-
|
|
23662
|
-
|
|
23663
|
-
].join(" ");
|
|
23664
|
-
console.log(log);
|
|
23665
|
-
} catch {
|
|
23666
|
-
console.log(
|
|
23667
|
-
`[FARM] [MIDDLEWARE] [${method}] Executing ${pathname} (${applicable.length} middleware)`
|
|
23668
|
-
);
|
|
23669
|
-
}
|
|
23846
|
+
const pc = createCliColors();
|
|
23847
|
+
const log = [
|
|
23848
|
+
pc.dim("[") + pc.bold(pc.blue("FARM")) + pc.dim("]"),
|
|
23849
|
+
pc.dim("[") + pc.bold(pc.magenta("MIDDLEWARE")) + pc.dim("]"),
|
|
23850
|
+
pc.dim("[") + pc.bold(pc.white(method.padEnd(3))) + pc.dim("]"),
|
|
23851
|
+
pc.gray("Executing middleware: "),
|
|
23852
|
+
pc.gray(pathname),
|
|
23853
|
+
pc.dim(` (${(Date.now() - startTime).toFixed(2)}ms)`)
|
|
23854
|
+
].join(" ");
|
|
23855
|
+
console.log(log);
|
|
23670
23856
|
for (const entry of applicable) {
|
|
23671
23857
|
const { mw, routeMatch } = entry;
|
|
23672
23858
|
const configMatch = mw.config ? this.matchesConfig(routePathname, mw.config, ctx) : { matched: true };
|
|
@@ -24902,7 +25088,7 @@ function transformError(id, message) {
|
|
|
24902
25088
|
__name(transformError, "transformError");
|
|
24903
25089
|
|
|
24904
25090
|
// package.json
|
|
24905
|
-
var version = "0.1.0-beta.
|
|
25091
|
+
var version = "0.1.0-beta.23";
|
|
24906
25092
|
|
|
24907
25093
|
// src/version.ts
|
|
24908
25094
|
var FARM_VERSION = version;
|
|
@@ -25303,6 +25489,32 @@ __name(mergeFarmViteConfig, "mergeFarmViteConfig");
|
|
|
25303
25489
|
// src/vite.ts
|
|
25304
25490
|
init_fonts();
|
|
25305
25491
|
init_server_http();
|
|
25492
|
+
|
|
25493
|
+
// src/theme/vite.ts
|
|
25494
|
+
init_config2();
|
|
25495
|
+
var FARM_DARK_VARIANT = '@custom-variant dark (&:where([data-theme="dark"], [data-theme="dark"] *));';
|
|
25496
|
+
function createFarmThemeCssPlugin(input, basePath = "/") {
|
|
25497
|
+
const config = resolveFarmThemeConfig(input, basePath);
|
|
25498
|
+
return {
|
|
25499
|
+
name: "farm:theme-css",
|
|
25500
|
+
enforce: "pre",
|
|
25501
|
+
transform(code, id) {
|
|
25502
|
+
if (!config.enabled || !/\.css(?:\?.*)?$/.test(id) || !/@import\s+["']tailwindcss["']/.test(code) || /@custom-variant\s+dark\b/.test(code)) {
|
|
25503
|
+
return null;
|
|
25504
|
+
}
|
|
25505
|
+
return {
|
|
25506
|
+
code: `${code.trimEnd()}
|
|
25507
|
+
|
|
25508
|
+
${FARM_DARK_VARIANT}
|
|
25509
|
+
`,
|
|
25510
|
+
map: null
|
|
25511
|
+
};
|
|
25512
|
+
}
|
|
25513
|
+
};
|
|
25514
|
+
}
|
|
25515
|
+
__name(createFarmThemeCssPlugin, "createFarmThemeCssPlugin");
|
|
25516
|
+
|
|
25517
|
+
// src/vite.ts
|
|
25306
25518
|
var ALL_TYPE_ARTIFACTS = {
|
|
25307
25519
|
routes: true,
|
|
25308
25520
|
api: true,
|
|
@@ -25607,18 +25819,14 @@ function farmPlugin(options = {}, initialPluginManager) {
|
|
|
25607
25819
|
let refreshRouteDiscovery = null;
|
|
25608
25820
|
let workflowHandler = null;
|
|
25609
25821
|
const logUpdate = /* @__PURE__ */ __name((tag, message) => {
|
|
25610
|
-
|
|
25611
|
-
|
|
25612
|
-
|
|
25613
|
-
|
|
25614
|
-
|
|
25615
|
-
|
|
25616
|
-
|
|
25617
|
-
|
|
25618
|
-
console.log(log);
|
|
25619
|
-
} catch {
|
|
25620
|
-
console.log(`[FARM] [${tag}] [UPDATE] ${message}`);
|
|
25621
|
-
}
|
|
25822
|
+
const pc = createCliColors();
|
|
25823
|
+
const log = [
|
|
25824
|
+
pc.dim("[") + pc.bold(pc.blue("FARM")) + pc.dim("]"),
|
|
25825
|
+
pc.dim("[") + pc.bold(pc.cyan(tag)) + pc.dim("]"),
|
|
25826
|
+
pc.dim("[") + pc.bold(pc.yellow("UPDATE")) + pc.dim("]"),
|
|
25827
|
+
pc.gray(message)
|
|
25828
|
+
].join(" ");
|
|
25829
|
+
console.log(log);
|
|
25622
25830
|
}, "logUpdate");
|
|
25623
25831
|
return {
|
|
25624
25832
|
name: "farm",
|
|
@@ -26059,25 +26267,21 @@ window.__FARM_MANIFEST__ = ${inlineValue({
|
|
|
26059
26267
|
return;
|
|
26060
26268
|
}
|
|
26061
26269
|
logResponse.__last = { key: dedupeKey, ts: now };
|
|
26062
|
-
|
|
26063
|
-
|
|
26064
|
-
|
|
26065
|
-
|
|
26066
|
-
|
|
26067
|
-
|
|
26068
|
-
|
|
26069
|
-
|
|
26070
|
-
|
|
26071
|
-
|
|
26072
|
-
|
|
26073
|
-
|
|
26074
|
-
|
|
26075
|
-
|
|
26076
|
-
|
|
26077
|
-
console.log(log);
|
|
26078
|
-
} catch {
|
|
26079
|
-
console.log(`[FARM] [${tag}] [${method}] ${urlPath} - ${status} (${duration}ms)`);
|
|
26080
|
-
}
|
|
26270
|
+
const pc = createCliColors();
|
|
26271
|
+
let statusColor = pc.green;
|
|
26272
|
+
if (status >= 500) statusColor = pc.red;
|
|
26273
|
+
else if (status >= 400) statusColor = pc.yellow;
|
|
26274
|
+
else if (status >= 300) statusColor = pc.cyan;
|
|
26275
|
+
const log = [
|
|
26276
|
+
pc.dim("[") + pc.bold(pc.blue("FARM")) + pc.dim("]"),
|
|
26277
|
+
pc.dim("[") + pc.bold(pc.cyan(tag)) + pc.dim("]"),
|
|
26278
|
+
pc.dim("[") + pc.bold(pc.white(method.padEnd(3))) + pc.dim("]"),
|
|
26279
|
+
pc.gray(urlPath),
|
|
26280
|
+
pc.dim("-"),
|
|
26281
|
+
statusColor(status.toString()),
|
|
26282
|
+
pc.dim(`(${duration}ms)`)
|
|
26283
|
+
].join(" ");
|
|
26284
|
+
console.log(log);
|
|
26081
26285
|
}, "logResponse");
|
|
26082
26286
|
server.middlewares.use(
|
|
26083
26287
|
_withAfterNodeMiddleware(async (req, res, next) => {
|
|
@@ -28697,14 +28901,22 @@ async function renderPage(pageData) {
|
|
|
28697
28901
|
if (!doc.documentElement || !doc.body) return false;
|
|
28698
28902
|
|
|
28699
28903
|
resetReactRoots();
|
|
28904
|
+
const activeFarmTheme =
|
|
28905
|
+
window.__FARM_THEME__?.snapshot?.resolvedTheme ||
|
|
28906
|
+
document.documentElement.getAttribute('data-theme');
|
|
28700
28907
|
Array.from(document.documentElement.attributes).forEach(function(attr) {
|
|
28908
|
+
if (attr.name === 'data-theme') return;
|
|
28701
28909
|
if (!doc.documentElement.hasAttribute(attr.name)) {
|
|
28702
28910
|
document.documentElement.removeAttribute(attr.name);
|
|
28703
28911
|
}
|
|
28704
28912
|
});
|
|
28705
28913
|
Array.from(doc.documentElement.attributes).forEach(function(attr) {
|
|
28914
|
+
if (attr.name === 'data-theme') return;
|
|
28706
28915
|
document.documentElement.setAttribute(attr.name, attr.value);
|
|
28707
28916
|
});
|
|
28917
|
+
if (activeFarmTheme) {
|
|
28918
|
+
document.documentElement.setAttribute('data-theme', activeFarmTheme);
|
|
28919
|
+
}
|
|
28708
28920
|
|
|
28709
28921
|
document.head.innerHTML = doc.head ? doc.head.innerHTML : '';
|
|
28710
28922
|
document.body.innerHTML = doc.body.innerHTML;
|
|
@@ -28713,6 +28925,7 @@ async function renderPage(pageData) {
|
|
|
28713
28925
|
|
|
28714
28926
|
setTimeout(function() {
|
|
28715
28927
|
Array.from(document.querySelectorAll('script')).forEach(function(script) {
|
|
28928
|
+
if (script.id === 'farm-theme-script') return;
|
|
28716
28929
|
const freshScript = document.createElement('script');
|
|
28717
28930
|
Array.from(script.attributes).forEach(function(attr) {
|
|
28718
28931
|
freshScript.setAttribute(attr.name, attr.value);
|
|
@@ -29143,7 +29356,7 @@ async function defineConfig2(config = {}) {
|
|
|
29143
29356
|
return null;
|
|
29144
29357
|
}
|
|
29145
29358
|
};
|
|
29146
|
-
const pc =
|
|
29359
|
+
const pc = createCliColors();
|
|
29147
29360
|
let serverStarted = false;
|
|
29148
29361
|
let startTime = Date.now();
|
|
29149
29362
|
const farmLogger = {
|
|
@@ -29210,6 +29423,7 @@ async function defineConfig2(config = {}) {
|
|
|
29210
29423
|
};
|
|
29211
29424
|
return {
|
|
29212
29425
|
plugins: [
|
|
29426
|
+
createFarmThemeCssPlugin(config.theme, config.basePath),
|
|
29213
29427
|
tailwindcss(),
|
|
29214
29428
|
viteBrowserExternalPlugin,
|
|
29215
29429
|
farmI18nClientBridgePlugin(),
|
|
@@ -29689,8 +29903,8 @@ function assertServerQueryKey(key) {
|
|
|
29689
29903
|
__name(assertServerQueryKey, "assertServerQueryKey");
|
|
29690
29904
|
|
|
29691
29905
|
// src/server/create-server.ts
|
|
29692
|
-
var
|
|
29693
|
-
|
|
29906
|
+
var import_vite3 = require("vite");
|
|
29907
|
+
init_config3();
|
|
29694
29908
|
|
|
29695
29909
|
// src/plugin.ts
|
|
29696
29910
|
init_env();
|
|
@@ -30524,22 +30738,6 @@ var DEFAULT_FARM_DEV_SERVER_PORT = 3e3;
|
|
|
30524
30738
|
function createBrandingPlugin() {
|
|
30525
30739
|
let serverStarted = false;
|
|
30526
30740
|
let startTime = Date.now();
|
|
30527
|
-
const getColors = /* @__PURE__ */ __name(() => {
|
|
30528
|
-
const id = /* @__PURE__ */ __name((s) => s, "id");
|
|
30529
|
-
try {
|
|
30530
|
-
const pc = typeof require === "function" ? require("picocolors") : null;
|
|
30531
|
-
if (pc && typeof pc.createColors === "function") return pc.createColors(true);
|
|
30532
|
-
if (pc) return pc;
|
|
30533
|
-
} catch {
|
|
30534
|
-
}
|
|
30535
|
-
return {
|
|
30536
|
-
dim: id,
|
|
30537
|
-
bold: id,
|
|
30538
|
-
green: id,
|
|
30539
|
-
cyan: id,
|
|
30540
|
-
gray: id
|
|
30541
|
-
};
|
|
30542
|
-
}, "getColors");
|
|
30543
30741
|
return {
|
|
30544
30742
|
name: "farm:branding",
|
|
30545
30743
|
enforce: "pre",
|
|
@@ -30553,7 +30751,7 @@ function createBrandingPlugin() {
|
|
|
30553
30751
|
const elapsed = Date.now() - startTime;
|
|
30554
30752
|
const address = server.httpServer?.address();
|
|
30555
30753
|
const resolvedPort = typeof address === "object" && address ? address.port : server.config.server.port || port || 3e3;
|
|
30556
|
-
const pc =
|
|
30754
|
+
const pc = createCliColors();
|
|
30557
30755
|
console.log("");
|
|
30558
30756
|
console.log(
|
|
30559
30757
|
` ${pc.bold(pc.green("Farm.js"))} ${pc.dim(`v${FARM_VERSION}`)} ${pc.dim(`ready in ${elapsed}ms`)}`
|
|
@@ -30661,19 +30859,19 @@ async function createServer(config = {}) {
|
|
|
30661
30859
|
try {
|
|
30662
30860
|
const tailwindcss = (await import("@tailwindcss/vite")).default;
|
|
30663
30861
|
tailwindVitePlugin = tailwindcss();
|
|
30664
|
-
logger.info("\u{1F4E6} Enabled built-in Tailwind support (@tailwindcss/vite)");
|
|
30665
30862
|
} catch (error) {
|
|
30666
30863
|
logger.warn(
|
|
30667
30864
|
`Tailwind plugin auto-enable failed; continuing without it: ${error.message}`
|
|
30668
30865
|
);
|
|
30669
30866
|
}
|
|
30670
30867
|
}
|
|
30671
|
-
const server = await (0,
|
|
30868
|
+
const server = await (0, import_vite3.createServer)(
|
|
30672
30869
|
mergeFarmViteConfig(
|
|
30673
30870
|
{
|
|
30674
30871
|
root: projectRoot,
|
|
30675
30872
|
css: shouldUseProjectPostcss ? void 0 : { postcss: { plugins: [] } },
|
|
30676
30873
|
plugins: [
|
|
30874
|
+
createFarmThemeCssPlugin(finalConfig.theme, finalConfig.basePath),
|
|
30677
30875
|
...tailwindVitePlugin ? [tailwindVitePlugin] : [],
|
|
30678
30876
|
createDevDependencyStubsPlugin(),
|
|
30679
30877
|
farmI18nClientBridgePlugin(),
|
|
@@ -30884,6 +31082,8 @@ __name(assertFunction, "assertFunction");
|
|
|
30884
31082
|
getServerActionInvalidations,
|
|
30885
31083
|
getServerActionSignal,
|
|
30886
31084
|
getStorage,
|
|
31085
|
+
getTheme,
|
|
31086
|
+
getThemeSnapshot,
|
|
30887
31087
|
globFiles,
|
|
30888
31088
|
initStorage,
|
|
30889
31089
|
invalidate,
|