@farm.js/core 0.1.0-beta.5 → 0.1.0-beta.7
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/agent-runtime.d.mts +2 -2
- package/dist/agent-runtime.d.ts +2 -2
- package/dist/api/route-manager.d.mts +3 -3
- package/dist/api/route-manager.d.ts +3 -3
- package/dist/api.d.mts +3 -3
- package/dist/api.d.ts +3 -3
- package/dist/{app-CakAr8Be.d.mts → app-BWtqQu3R.d.mts} +6 -4
- package/dist/app-markdown.cjs +31 -7
- package/dist/app-markdown.cjs.map +1 -1
- package/dist/app-markdown.d.mts +2 -2
- package/dist/app-markdown.d.ts +2 -2
- package/dist/app-markdown.mjs +2 -1
- package/dist/{app-BjN-da13.d.ts → app-xltejvLY.d.ts} +6 -4
- package/dist/{chunk-A2LUXHD2.mjs → chunk-5VYHFKWE.mjs} +214 -58
- package/dist/chunk-5VYHFKWE.mjs.map +1 -0
- package/dist/{chunk-EEABSBKK.mjs → chunk-6F5OI5GA.mjs} +2 -2
- package/dist/chunk-6F5OI5GA.mjs.map +1 -0
- package/dist/{chunk-LLC7BNXW.mjs → chunk-7FBJLMQH.mjs} +73 -10
- package/dist/chunk-7FBJLMQH.mjs.map +1 -0
- package/dist/{chunk-NM3CRAAL.mjs → chunk-B4W3BNTL.mjs} +24 -8
- package/dist/chunk-B4W3BNTL.mjs.map +1 -0
- package/dist/{chunk-BHG3LVHH.mjs → chunk-CGIXMLSY.mjs} +15 -7
- package/dist/chunk-CGIXMLSY.mjs.map +1 -0
- package/dist/{chunk-C3DLZMBU.mjs → chunk-DJSGLHCN.mjs} +2 -2
- package/dist/{chunk-2NHCNRF6.mjs → chunk-GFMBXLGP.mjs} +56 -20
- package/dist/chunk-GFMBXLGP.mjs.map +1 -0
- package/dist/chunk-I4CUBGVF.mjs +93 -0
- package/dist/chunk-I4CUBGVF.mjs.map +1 -0
- package/dist/{chunk-HNIQFZKB.mjs → chunk-ME4MO2RJ.mjs} +27 -37
- package/dist/chunk-ME4MO2RJ.mjs.map +1 -0
- package/dist/{chunk-RSKVYESE.mjs → chunk-RQ633A5I.mjs} +1 -1
- package/dist/chunk-RQ633A5I.mjs.map +1 -0
- package/dist/{chunk-2CUKEMVR.mjs → chunk-WDU6QXNK.mjs} +1 -1
- package/dist/chunk-WDU6QXNK.mjs.map +1 -0
- package/dist/{chunk-QGQX7SFC.mjs → chunk-ZVWA4ZQ3.mjs} +17 -8
- package/dist/chunk-ZVWA4ZQ3.mjs.map +1 -0
- package/dist/{client-plugins-DQQ1adXM.d.mts → client-plugins-BI2R6Eae.d.mts} +74 -3
- package/dist/{client-plugins-Cw4qUGsw.d.ts → client-plugins-DU9oMspX.d.ts} +74 -3
- package/dist/client-plugins.d.mts +2 -2
- package/dist/client-plugins.d.ts +2 -2
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.mts +2 -2
- package/dist/client.d.ts +2 -2
- package/dist/client.mjs +1 -1
- package/dist/config.d.mts +2 -2
- package/dist/config.d.ts +2 -2
- package/dist/{devtools-LVC3VB5P.mjs → devtools-REQTS3I7.mjs} +6 -5
- package/dist/{devtools-LVC3VB5P.mjs.map → devtools-REQTS3I7.mjs.map} +1 -1
- package/dist/docs.cjs +51 -56
- package/dist/docs.cjs.map +1 -1
- package/dist/docs.mjs +6 -5
- package/dist/env-types.cjs +14 -5
- package/dist/env-types.cjs.map +1 -1
- package/dist/env-types.d.mts +2 -1
- package/dist/env-types.d.ts +2 -1
- package/dist/env-types.mjs +3 -1
- package/dist/env.cjs.map +1 -1
- package/dist/env.d.mts +1 -1
- package/dist/env.d.ts +1 -1
- package/dist/env.mjs +1 -1
- package/dist/i18n/client.d.mts +2 -2
- package/dist/i18n/client.d.ts +2 -2
- package/dist/i18n/index.d.mts +3 -3
- package/dist/i18n/index.d.ts +3 -3
- package/dist/i18n/server.d.mts +5 -5
- package/dist/i18n/server.d.ts +5 -5
- package/dist/index.cjs +931 -567
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +15 -13
- package/dist/index.d.ts +15 -13
- package/dist/index.mjs +23 -16
- package/dist/index.mjs.map +1 -1
- package/dist/integrations.d.mts +2 -2
- package/dist/integrations.d.ts +2 -2
- package/dist/internal/build-runtime.cjs +643 -322
- package/dist/internal/build-runtime.cjs.map +1 -1
- package/dist/internal/build-runtime.d.mts +4 -4
- package/dist/internal/build-runtime.d.ts +4 -4
- package/dist/internal/build-runtime.mjs +11 -10
- package/dist/internal/config-runtime.cjs +135 -39
- package/dist/internal/config-runtime.cjs.map +1 -1
- package/dist/internal/config-runtime.d.mts +3 -3
- package/dist/internal/config-runtime.d.ts +3 -3
- package/dist/internal/config-runtime.mjs +5 -4
- package/dist/internal/production-runtime.d.mts +6 -6
- package/dist/internal/production-runtime.d.ts +6 -6
- package/dist/markdown.cjs +73 -8
- package/dist/markdown.cjs.map +1 -1
- package/dist/markdown.d.mts +19 -2
- package/dist/markdown.d.ts +19 -2
- package/dist/markdown.mjs +5 -1
- package/dist/{metadata-BAPg_Nmo.d.ts → metadata-Cm9ujH4I.d.ts} +1 -1
- package/dist/{metadata-_6i9oFG3.d.mts → metadata-DacXbnLA.d.mts} +1 -1
- package/dist/middleware.d.mts +4 -4
- package/dist/middleware.d.ts +4 -4
- package/dist/plugin.cjs +679 -434
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.mts +2 -2
- package/dist/plugin.d.ts +2 -2
- package/dist/plugin.mjs +8 -7
- package/dist/{production-runtime-DPfgMV9Y.d.mts → production-runtime-4KKq1AVC.d.mts} +2 -2
- package/dist/{production-runtime-BoJDc5mc.d.ts → production-runtime-DRsWDN2x.d.ts} +2 -2
- package/dist/{request-BrFBuc8G.d.mts → request-Dsq4kGW0.d.mts} +1 -1
- package/dist/{request-BslSZIRz.d.ts → request-udtobOLv.d.ts} +1 -1
- package/dist/request.d.mts +2 -2
- package/dist/request.d.ts +2 -2
- package/dist/{resolver-DlOPpjkB.d.mts → resolver-DJqjLMg_.d.mts} +1 -1
- package/dist/{resolver-C6iecsDV.d.ts → resolver-IH4RmPEl.d.ts} +1 -1
- package/dist/routes.d.mts +2 -2
- package/dist/routes.d.ts +2 -2
- package/dist/{runtime-DeAAZ6gO.d.mts → runtime-Cxpq6xZN.d.mts} +2 -2
- package/dist/{runtime-B6GvwDS1.d.ts → runtime-bv63eUiO.d.ts} +2 -2
- package/dist/server-plugins.d.mts +3 -3
- package/dist/server-plugins.d.ts +3 -3
- package/dist/server.cjs +731 -447
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.mts +9 -9
- package/dist/server.d.ts +9 -9
- package/dist/server.mjs +9 -8
- package/dist/server.mjs.map +1 -1
- package/dist/testing.d.mts +2 -2
- package/dist/testing.d.ts +2 -2
- package/dist/{types-BH1lhg5G.d.mts → types-BMxWr97v.d.mts} +2 -2
- package/dist/{types-BH1lhg5G.d.ts → types-BMxWr97v.d.ts} +2 -2
- package/dist/{utils-Drsyz1Vj.d.ts → utils-B-cUHwoK.d.ts} +1 -1
- package/dist/{utils-CHXlMDkg.d.mts → utils-Cm41AefV.d.mts} +1 -1
- package/dist/version.cjs +1 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +682 -437
- package/dist/vite.cjs.map +1 -1
- package/dist/vite.d.mts +2 -2
- package/dist/vite.d.ts +2 -2
- package/dist/vite.mjs +6 -5
- package/package.json +3 -2
- package/types/client.d.ts +1 -1
- package/types/image.d.ts +4 -0
- package/types/images.d.ts +59 -0
- package/dist/chunk-2CUKEMVR.mjs.map +0 -1
- package/dist/chunk-2NHCNRF6.mjs.map +0 -1
- package/dist/chunk-A2LUXHD2.mjs.map +0 -1
- package/dist/chunk-BHG3LVHH.mjs.map +0 -1
- package/dist/chunk-EEABSBKK.mjs.map +0 -1
- package/dist/chunk-HNIQFZKB.mjs.map +0 -1
- package/dist/chunk-LLC7BNXW.mjs.map +0 -1
- package/dist/chunk-NM3CRAAL.mjs.map +0 -1
- package/dist/chunk-QGQX7SFC.mjs.map +0 -1
- package/dist/chunk-RSKVYESE.mjs.map +0 -1
- /package/dist/{chunk-C3DLZMBU.mjs.map → chunk-DJSGLHCN.mjs.map} +0 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__name
|
|
3
|
+
} from "./chunk-CGILA3WO.mjs";
|
|
4
|
+
|
|
5
|
+
// src/auth-config.ts
|
|
6
|
+
import { createRequire } from "module";
|
|
7
|
+
import path from "path";
|
|
8
|
+
import { pathToFileURL } from "url";
|
|
9
|
+
function resolveFarmAuthConfig(input) {
|
|
10
|
+
const config = input === true ? {} : input && typeof input === "object" ? input : {};
|
|
11
|
+
const passwordConfig = typeof config.emailAndPassword === "object" ? config.emailAndPassword : {};
|
|
12
|
+
const resolved = {
|
|
13
|
+
enabled: input !== void 0 && input !== false && config.enabled !== false,
|
|
14
|
+
appName: config.appName,
|
|
15
|
+
basePath: normalizeBasePath(config.basePath),
|
|
16
|
+
emailAndPassword: {
|
|
17
|
+
enabled: config.emailAndPassword !== false,
|
|
18
|
+
requireEmailVerification: passwordConfig.requireEmailVerification ?? false,
|
|
19
|
+
minPasswordLength: passwordConfig.minPasswordLength ?? 8,
|
|
20
|
+
maxPasswordLength: passwordConfig.maxPasswordLength ?? 128
|
|
21
|
+
},
|
|
22
|
+
session: {
|
|
23
|
+
expiresIn: config.session?.expiresIn ?? 60 * 60 * 24 * 7,
|
|
24
|
+
updateAge: config.session?.updateAge ?? 60 * 60 * 24
|
|
25
|
+
},
|
|
26
|
+
database: {
|
|
27
|
+
url: config.database?.url,
|
|
28
|
+
path: config.database?.path || ".farm/auth.sqlite",
|
|
29
|
+
migrateInDevelopment: config.database?.migrateInDevelopment ?? true
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
validateFarmAuthConfig(resolved);
|
|
33
|
+
return resolved;
|
|
34
|
+
}
|
|
35
|
+
__name(resolveFarmAuthConfig, "resolveFarmAuthConfig");
|
|
36
|
+
async function resolveFarmAuthIntegration(config, options) {
|
|
37
|
+
if (!config.enabled) return void 0;
|
|
38
|
+
const root = path.resolve(options.root);
|
|
39
|
+
let modulePath;
|
|
40
|
+
try {
|
|
41
|
+
const resolveFromApp = createRequire(path.join(root, "package.json"));
|
|
42
|
+
modulePath = resolveFromApp.resolve("@farm.js/auth/internal");
|
|
43
|
+
} catch {
|
|
44
|
+
throw new Error(
|
|
45
|
+
"The `auth` config requires @farm.js/auth. Install it with `pnpm add @farm.js/auth` and try again."
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
const runtime = await import(
|
|
49
|
+
/* @vite-ignore */
|
|
50
|
+
pathToFileURL(modulePath).href
|
|
51
|
+
);
|
|
52
|
+
if (typeof runtime.createFarmAuthIntegration !== "function") {
|
|
53
|
+
throw new Error(
|
|
54
|
+
"The installed @farm.js/auth package is incompatible with this version of @farm.js/core."
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
return runtime.createFarmAuthIntegration(config, {
|
|
58
|
+
...options,
|
|
59
|
+
root
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
__name(resolveFarmAuthIntegration, "resolveFarmAuthIntegration");
|
|
63
|
+
function normalizeBasePath(value) {
|
|
64
|
+
const route = (value || "/api/auth").trim();
|
|
65
|
+
const withLeadingSlash = route.startsWith("/") ? route : `/${route}`;
|
|
66
|
+
const normalized = withLeadingSlash.replace(/\/+/g, "/").replace(/\/+$/, "");
|
|
67
|
+
return normalized || "/api/auth";
|
|
68
|
+
}
|
|
69
|
+
__name(normalizeBasePath, "normalizeBasePath");
|
|
70
|
+
function validateFarmAuthConfig(config) {
|
|
71
|
+
const { minPasswordLength, maxPasswordLength } = config.emailAndPassword;
|
|
72
|
+
if (!Number.isInteger(minPasswordLength) || minPasswordLength < 1) {
|
|
73
|
+
throw new Error("auth.emailAndPassword.minPasswordLength must be a positive integer.");
|
|
74
|
+
}
|
|
75
|
+
if (!Number.isInteger(maxPasswordLength) || maxPasswordLength < minPasswordLength) {
|
|
76
|
+
throw new Error(
|
|
77
|
+
"auth.emailAndPassword.maxPasswordLength must be an integer greater than or equal to minPasswordLength."
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
if (!Number.isInteger(config.session.expiresIn) || config.session.expiresIn < 1) {
|
|
81
|
+
throw new Error("auth.session.expiresIn must be a positive integer.");
|
|
82
|
+
}
|
|
83
|
+
if (!Number.isInteger(config.session.updateAge) || config.session.updateAge < 0) {
|
|
84
|
+
throw new Error("auth.session.updateAge must be a non-negative integer.");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
__name(validateFarmAuthConfig, "validateFarmAuthConfig");
|
|
88
|
+
|
|
89
|
+
export {
|
|
90
|
+
resolveFarmAuthConfig,
|
|
91
|
+
resolveFarmAuthIntegration
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=chunk-I4CUBGVF.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/auth-config.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport type { FarmIntegration } from \"./integrations\";\n\nexport interface FarmAuthEmailAndPasswordConfig {\n /** Require a verified email before creating a session. @default false */\n requireEmailVerification?: boolean;\n /** Smallest accepted password length. @default 8 */\n minPasswordLength?: number;\n /** Largest accepted password length. @default 128 */\n maxPasswordLength?: number;\n}\n\nexport interface FarmAuthSessionConfig {\n /** Session lifetime in seconds. @default 604800 */\n expiresIn?: number;\n /** Session refresh interval in seconds. @default 86400 */\n updateAge?: number;\n}\n\nexport interface FarmAuthDatabaseConfig {\n /**\n * Postgres connection string. Defaults to DATABASE_URL.\n * Local development falls back to SQLite when no URL is present.\n */\n url?: string;\n /** Local SQLite path. @default \".farm/auth.sqlite\" */\n path?: string;\n /** Automatically update the auth schema in development. @default true */\n migrateInDevelopment?: boolean;\n}\n\nexport interface FarmAuthConfig {\n /** Set false to disable auth without removing its configuration. @default true */\n enabled?: boolean;\n /** Display name used by authentication emails and metadata. */\n appName?: string;\n /** Route prefix for the auth endpoints. @default \"/api/auth\" */\n basePath?: string;\n /**\n * Email/password authentication. It is enabled by default; set false to\n * disable it when adding another sign-in method.\n */\n emailAndPassword?: boolean | FarmAuthEmailAndPasswordConfig;\n session?: FarmAuthSessionConfig;\n database?: FarmAuthDatabaseConfig;\n}\n\nexport type FarmAuthUserConfig = boolean | FarmAuthConfig;\n\nexport interface ResolvedFarmAuthConfig {\n enabled: boolean;\n appName?: string;\n basePath: string;\n emailAndPassword: {\n enabled: boolean;\n requireEmailVerification: boolean;\n minPasswordLength: number;\n maxPasswordLength: number;\n };\n session: {\n expiresIn: number;\n updateAge: number;\n };\n database: {\n url?: string;\n path: string;\n migrateInDevelopment: boolean;\n };\n}\n\ninterface FarmAuthRuntimeModule {\n createFarmAuthIntegration(\n config: ResolvedFarmAuthConfig,\n options: {\n root: string;\n mode: \"development\" | \"production\";\n },\n ): FarmIntegration;\n}\n\nexport function resolveFarmAuthConfig(\n input: FarmAuthUserConfig | undefined,\n): ResolvedFarmAuthConfig {\n const config = input === true ? {} : input && typeof input === \"object\" ? input : {};\n const passwordConfig = typeof config.emailAndPassword === \"object\" ? config.emailAndPassword : {};\n\n const resolved: ResolvedFarmAuthConfig = {\n enabled: input !== undefined && input !== false && config.enabled !== false,\n appName: config.appName,\n basePath: normalizeBasePath(config.basePath),\n emailAndPassword: {\n enabled: config.emailAndPassword !== false,\n requireEmailVerification: passwordConfig.requireEmailVerification ?? false,\n minPasswordLength: passwordConfig.minPasswordLength ?? 8,\n maxPasswordLength: passwordConfig.maxPasswordLength ?? 128,\n },\n session: {\n expiresIn: config.session?.expiresIn ?? 60 * 60 * 24 * 7,\n updateAge: config.session?.updateAge ?? 60 * 60 * 24,\n },\n database: {\n url: config.database?.url,\n path: config.database?.path || \".farm/auth.sqlite\",\n migrateInDevelopment: config.database?.migrateInDevelopment ?? true,\n },\n };\n\n validateFarmAuthConfig(resolved);\n return resolved;\n}\n\nexport async function resolveFarmAuthIntegration(\n config: ResolvedFarmAuthConfig,\n options: {\n root: string;\n mode: \"development\" | \"production\";\n },\n): Promise<FarmIntegration | undefined> {\n if (!config.enabled) return undefined;\n\n const root = path.resolve(options.root);\n let modulePath: string;\n try {\n const resolveFromApp = createRequire(path.join(root, \"package.json\"));\n modulePath = resolveFromApp.resolve(\"@farm.js/auth/internal\");\n } catch {\n throw new Error(\n \"The `auth` config requires @farm.js/auth. Install it with `pnpm add @farm.js/auth` and try again.\",\n );\n }\n\n const runtime = (await import(\n /* @vite-ignore */ pathToFileURL(modulePath).href\n )) as FarmAuthRuntimeModule;\n if (typeof runtime.createFarmAuthIntegration !== \"function\") {\n throw new Error(\n \"The installed @farm.js/auth package is incompatible with this version of @farm.js/core.\",\n );\n }\n\n return runtime.createFarmAuthIntegration(config, {\n ...options,\n root,\n });\n}\n\nfunction normalizeBasePath(value: string | undefined): string {\n const route = (value || \"/api/auth\").trim();\n const withLeadingSlash = route.startsWith(\"/\") ? route : `/${route}`;\n const normalized = withLeadingSlash.replace(/\\/+/g, \"/\").replace(/\\/+$/, \"\");\n return normalized || \"/api/auth\";\n}\n\nfunction validateFarmAuthConfig(config: ResolvedFarmAuthConfig): void {\n const { minPasswordLength, maxPasswordLength } = config.emailAndPassword;\n if (!Number.isInteger(minPasswordLength) || minPasswordLength < 1) {\n throw new Error(\"auth.emailAndPassword.minPasswordLength must be a positive integer.\");\n }\n if (!Number.isInteger(maxPasswordLength) || maxPasswordLength < minPasswordLength) {\n throw new Error(\n \"auth.emailAndPassword.maxPasswordLength must be an integer greater than or equal to minPasswordLength.\",\n );\n }\n if (!Number.isInteger(config.session.expiresIn) || config.session.expiresIn < 1) {\n throw new Error(\"auth.session.expiresIn must be a positive integer.\");\n }\n if (!Number.isInteger(config.session.updateAge) || config.session.updateAge < 0) {\n throw new Error(\"auth.session.updateAge must be a non-negative integer.\");\n }\n}\n"],"mappings":";;;;;AAAA,SAAS,qBAAqB;AAC9B,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAgFvB,SAAS,sBACd,OACwB;AACxB,QAAM,SAAS,UAAU,OAAO,CAAC,IAAI,SAAS,OAAO,UAAU,WAAW,QAAQ,CAAC;AACnF,QAAM,iBAAiB,OAAO,OAAO,qBAAqB,WAAW,OAAO,mBAAmB,CAAC;AAEhG,QAAM,WAAmC;AAAA,IACvC,SAAS,UAAU,UAAa,UAAU,SAAS,OAAO,YAAY;AAAA,IACtE,SAAS,OAAO;AAAA,IAChB,UAAU,kBAAkB,OAAO,QAAQ;AAAA,IAC3C,kBAAkB;AAAA,MAChB,SAAS,OAAO,qBAAqB;AAAA,MACrC,0BAA0B,eAAe,4BAA4B;AAAA,MACrE,mBAAmB,eAAe,qBAAqB;AAAA,MACvD,mBAAmB,eAAe,qBAAqB;AAAA,IACzD;AAAA,IACA,SAAS;AAAA,MACP,WAAW,OAAO,SAAS,aAAa,KAAK,KAAK,KAAK;AAAA,MACvD,WAAW,OAAO,SAAS,aAAa,KAAK,KAAK;AAAA,IACpD;AAAA,IACA,UAAU;AAAA,MACR,KAAK,OAAO,UAAU;AAAA,MACtB,MAAM,OAAO,UAAU,QAAQ;AAAA,MAC/B,sBAAsB,OAAO,UAAU,wBAAwB;AAAA,IACjE;AAAA,EACF;AAEA,yBAAuB,QAAQ;AAC/B,SAAO;AACT;AA7BgB;AA+BhB,eAAsB,2BACpB,QACA,SAIsC;AACtC,MAAI,CAAC,OAAO,QAAS,QAAO;AAE5B,QAAM,OAAO,KAAK,QAAQ,QAAQ,IAAI;AACtC,MAAI;AACJ,MAAI;AACF,UAAM,iBAAiB,cAAc,KAAK,KAAK,MAAM,cAAc,CAAC;AACpE,iBAAa,eAAe,QAAQ,wBAAwB;AAAA,EAC9D,QAAQ;AACN,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,QAAM,UAAW,MAAM;AAAA;AAAA,IACF,cAAc,UAAU,EAAE;AAAA;AAE/C,MAAI,OAAO,QAAQ,8BAA8B,YAAY;AAC3D,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,QAAQ,0BAA0B,QAAQ;AAAA,IAC/C,GAAG;AAAA,IACH;AAAA,EACF,CAAC;AACH;AAjCsB;AAmCtB,SAAS,kBAAkB,OAAmC;AAC5D,QAAM,SAAS,SAAS,aAAa,KAAK;AAC1C,QAAM,mBAAmB,MAAM,WAAW,GAAG,IAAI,QAAQ,IAAI,KAAK;AAClE,QAAM,aAAa,iBAAiB,QAAQ,QAAQ,GAAG,EAAE,QAAQ,QAAQ,EAAE;AAC3E,SAAO,cAAc;AACvB;AALS;AAOT,SAAS,uBAAuB,QAAsC;AACpE,QAAM,EAAE,mBAAmB,kBAAkB,IAAI,OAAO;AACxD,MAAI,CAAC,OAAO,UAAU,iBAAiB,KAAK,oBAAoB,GAAG;AACjE,UAAM,IAAI,MAAM,qEAAqE;AAAA,EACvF;AACA,MAAI,CAAC,OAAO,UAAU,iBAAiB,KAAK,oBAAoB,mBAAmB;AACjF,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,OAAO,UAAU,OAAO,QAAQ,SAAS,KAAK,OAAO,QAAQ,YAAY,GAAG;AAC/E,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AACA,MAAI,CAAC,OAAO,UAAU,OAAO,QAAQ,SAAS,KAAK,OAAO,QAAQ,YAAY,GAAG;AAC/E,UAAM,IAAI,MAAM,wDAAwD;AAAA,EAC1E;AACF;AAhBS;","names":[]}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-V7RBCSDJ.mjs";
|
|
5
5
|
import {
|
|
6
6
|
resolveDocsConfig
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-B4W3BNTL.mjs";
|
|
8
8
|
import {
|
|
9
9
|
__name
|
|
10
10
|
} from "./chunk-CGILA3WO.mjs";
|
|
@@ -600,8 +600,8 @@ code:not(pre code) {
|
|
|
600
600
|
}
|
|
601
601
|
|
|
602
602
|
.code-block-header {
|
|
603
|
-
min-height:
|
|
604
|
-
padding:
|
|
603
|
+
min-height: 34px;
|
|
604
|
+
padding: 4px 8px 4px 10px;
|
|
605
605
|
}
|
|
606
606
|
|
|
607
607
|
.code-block-title {
|
|
@@ -815,8 +815,8 @@ code:not(pre code) {
|
|
|
815
815
|
}
|
|
816
816
|
|
|
817
817
|
.code-block-header {
|
|
818
|
-
min-height:
|
|
819
|
-
padding:
|
|
818
|
+
min-height: 32px;
|
|
819
|
+
padding: 3px 7px 3px 9px;
|
|
820
820
|
}
|
|
821
821
|
|
|
822
822
|
.code-copy-floating {
|
|
@@ -856,38 +856,30 @@ code:not(pre code) {
|
|
|
856
856
|
|
|
857
857
|
@media (max-width: 640px) {
|
|
858
858
|
.code-block-header {
|
|
859
|
-
min-height:
|
|
860
|
-
padding:
|
|
861
|
-
}
|
|
862
|
-
|
|
863
|
-
.code-block-title {
|
|
864
|
-
font-size: 9px;
|
|
865
|
-
}
|
|
866
|
-
|
|
867
|
-
.code-copy {
|
|
868
|
-
width: 20px;
|
|
869
|
-
height: 20px;
|
|
870
|
-
}
|
|
871
|
-
|
|
872
|
-
.code-copy svg {
|
|
873
|
-
width: 12px;
|
|
874
|
-
height: 12px;
|
|
859
|
+
min-height: 30px;
|
|
860
|
+
padding: 3px 6px 3px 8px;
|
|
875
861
|
}
|
|
876
862
|
|
|
877
863
|
.code-copy-floating {
|
|
878
|
-
top:
|
|
879
|
-
right:
|
|
864
|
+
top: 7px;
|
|
865
|
+
right: 7px;
|
|
880
866
|
}
|
|
881
867
|
|
|
882
868
|
#nd-docs-layout figure.shiki.code-block pre,
|
|
883
869
|
.code-block pre {
|
|
884
|
-
padding:
|
|
885
|
-
font-size:
|
|
886
|
-
line-height: 1.
|
|
870
|
+
padding: 12px !important;
|
|
871
|
+
font-size: 12px;
|
|
872
|
+
line-height: 1.6;
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
#nd-docs-layout figure.shiki.code-block-plain pre,
|
|
876
|
+
.code-block-plain pre {
|
|
877
|
+
padding: 16px 44px 16px 14px !important;
|
|
878
|
+
line-height: 1.65;
|
|
887
879
|
}
|
|
888
880
|
|
|
889
881
|
.sh__line {
|
|
890
|
-
min-height: 1.
|
|
882
|
+
min-height: 1.6em;
|
|
891
883
|
}
|
|
892
884
|
}
|
|
893
885
|
|
|
@@ -2813,7 +2805,7 @@ function renderFarmDocsBridgeCss(docs) {
|
|
|
2813
2805
|
.sh-code { --sh-class: #e5c07b; --sh-identifier: #c8ccd4; --sh-string: #98c379; --sh-keyword: #c678dd; --sh-comment: #5c6370; --sh-property: #e06c75; --sh-sign: #c8ccd4; --sh-space: inherit; }
|
|
2814
2806
|
.code-block { --fd-code-header-bg: color-mix(in srgb, var(--color-fd-foreground, #fff) 5%, var(--color-fd-background, #000)); --fd-code-body-bg: color-mix(in srgb, var(--color-fd-foreground, #fff) 8%, var(--color-fd-background, #000)); position: relative; width: 100%; min-width: 0; max-width: 100%; margin: 20px 0; overflow: hidden; border: 1px solid var(--color-fd-border, hsl(0 0% 15%)); background: var(--color-fd-background, hsl(0 0% 2%)); box-shadow: 3px 3px 0 0 var(--color-fd-border, hsl(0 0% 15%)); font-family: var(--fd-docs-font-mono); }
|
|
2815
2807
|
#nd-docs-layout figure.shiki.code-block { box-shadow: 3px 3px 0 0 var(--color-fd-border, hsl(0 0% 15%)) !important; }
|
|
2816
|
-
.code-block-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; min-height:
|
|
2808
|
+
.code-block-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; min-height: 34px; border-bottom: 1px solid var(--color-fd-border, hsl(0 0% 15%)); background-color: var(--fd-code-header-bg); background-image: repeating-linear-gradient(-45deg, color-mix(in srgb, var(--color-fd-foreground, #fff) 4%, transparent), color-mix(in srgb, var(--color-fd-foreground, #fff) 4%, transparent) 1px, transparent 1px, transparent 6px); padding: 4px 8px 4px 10px; }
|
|
2817
2809
|
.code-block-title { overflow: hidden; color: color-mix(in srgb, var(--color-fd-foreground, #fff) 50%, transparent); font-size: 10px; line-height: 1.2; text-overflow: ellipsis; text-transform: lowercase; white-space: nowrap; }
|
|
2818
2810
|
.code-copy { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; flex: 0 0 auto; border: 1px solid var(--color-fd-border, hsl(0 0% 15%)); background: color-mix(in srgb, var(--color-fd-background, #000) 80%, transparent); color: var(--color-fd-muted-foreground, hsl(0 0% 55%)); cursor: pointer; padding: 0; }
|
|
2819
2811
|
.code-copy-floating { position: absolute; top: 8px; right: 8px; z-index: 2; opacity: 0.72; transition: opacity 150ms ease; }
|
|
@@ -2881,7 +2873,7 @@ function renderFarmDocsBridgeCss(docs) {
|
|
|
2881
2873
|
.prose h2 { margin-top: 34px; padding-top: 22px; font-size: 23px; }
|
|
2882
2874
|
.code-block { margin: 16px 0; box-shadow: 2px 2px 0 0 var(--color-fd-border, hsl(0 0% 15%)); }
|
|
2883
2875
|
#nd-docs-layout figure.shiki.code-block { box-shadow: 2px 2px 0 0 var(--color-fd-border, hsl(0 0% 15%)) !important; }
|
|
2884
|
-
.code-block-header { min-height:
|
|
2876
|
+
.code-block-header { min-height: 32px; padding: 3px 7px 3px 9px; }
|
|
2885
2877
|
.code-copy-floating { top: 6px; right: 6px; }
|
|
2886
2878
|
#nd-docs-layout figure.shiki.code-block pre, .code-block pre { padding: 12px 11px !important; font-size: 12px; line-height: 1.5; }
|
|
2887
2879
|
.sh__line { min-height: 1.5em; }
|
|
@@ -2891,13 +2883,11 @@ function renderFarmDocsBridgeCss(docs) {
|
|
|
2891
2883
|
.fd-page-footer .fd-last-updated-footer { margin-left: 0; }
|
|
2892
2884
|
}
|
|
2893
2885
|
@media (max-width: 640px) {
|
|
2894
|
-
.code-block-header { min-height:
|
|
2895
|
-
.code-
|
|
2896
|
-
.code-
|
|
2897
|
-
.code-
|
|
2898
|
-
.
|
|
2899
|
-
#nd-docs-layout figure.shiki.code-block pre, .code-block pre { padding: 10px !important; font-size: 11px; line-height: 1.55; }
|
|
2900
|
-
.sh__line { min-height: 1.55em; }
|
|
2886
|
+
.code-block-header { min-height: 30px; padding: 3px 6px 3px 8px; }
|
|
2887
|
+
.code-copy-floating { top: 7px; right: 7px; }
|
|
2888
|
+
#nd-docs-layout figure.shiki.code-block pre, .code-block pre { padding: 12px !important; font-size: 12px; line-height: 1.6; }
|
|
2889
|
+
#nd-docs-layout figure.shiki.code-block-plain pre, .code-block-plain pre { padding: 16px 44px 16px 14px !important; line-height: 1.65; }
|
|
2890
|
+
.sh__line { min-height: 1.6em; }
|
|
2901
2891
|
}
|
|
2902
2892
|
${farmDocsPixelBorderCss}
|
|
2903
2893
|
`;
|
|
@@ -3547,4 +3537,4 @@ export {
|
|
|
3547
3537
|
createDocsAPI,
|
|
3548
3538
|
createFarmDocsAPIHandler
|
|
3549
3539
|
};
|
|
3550
|
-
//# sourceMappingURL=chunk-
|
|
3540
|
+
//# sourceMappingURL=chunk-ME4MO2RJ.mjs.map
|