diff --git a/app/build.cli.ts b/app/build.cli.ts index fee5373..0b7ca13 100644 --- a/app/build.cli.ts +++ b/app/build.cli.ts @@ -1,30 +1,10 @@ import pkg from "./package.json" with { type: "json" }; import c from "picocolors"; import { formatNumber } from "bknd/utils"; -import * as esbuild from "esbuild"; const deps = Object.keys(pkg.dependencies); const external = ["jsonv-ts/*", "wrangler", "bknd", "bknd/*", ...deps]; -if (process.env.DEBUG) { - const result = await esbuild.build({ - entryPoints: ["./src/cli/index.ts"], - outdir: "./dist/cli", - platform: "node", - minify: true, - format: "esm", - metafile: true, - bundle: true, - external, - define: { - __isDev: "0", - __version: JSON.stringify(pkg.version), - }, - }); - await Bun.write("./dist/cli/metafile-esm.json", JSON.stringify(result.metafile, null, 2)); - process.exit(0); -} - const result = await Bun.build({ entrypoints: ["./src/cli/index.ts"], target: "node", diff --git a/app/package.json b/app/package.json index 862d52f..4f57040 100644 --- a/app/package.json +++ b/app/package.json @@ -104,6 +104,7 @@ "@vitest/coverage-v8": "3.0.9", "autoprefixer": "^10.4.21", "clsx": "^2.1.1", + "commander": "^14.0.2", "dotenv": "^17.2.3", "jotai": "^2.12.2", "jsdom": "^26.1.0", diff --git a/app/src/adapter/bun/bun.adapter.ts b/app/src/adapter/bun/bun.adapter.ts index e1e003b..51c9be3 100644 --- a/app/src/adapter/bun/bun.adapter.ts +++ b/app/src/adapter/bun/bun.adapter.ts @@ -1,5 +1,3 @@ -/// - import path from "node:path"; import { type RuntimeBkndConfig, createRuntimeApp } from "bknd/adapter"; import { registerLocalMediaAdapter } from "."; diff --git a/app/src/adapter/nextjs/nextjs.adapter.ts b/app/src/adapter/nextjs/nextjs.adapter.ts index eed1c35..50a82a8 100644 --- a/app/src/adapter/nextjs/nextjs.adapter.ts +++ b/app/src/adapter/nextjs/nextjs.adapter.ts @@ -1,5 +1,6 @@ import { createFrameworkApp, type FrameworkBkndConfig } from "bknd/adapter"; import { isNode } from "bknd/utils"; +// @ts-expect-error next is not installed import type { NextApiRequest } from "next"; type NextjsEnv = NextApiRequest["env"]; diff --git a/app/src/ui/routes/settings/utils/schema.ts b/app/src/ui/routes/settings/utils/schema.ts index 1c5e88d..eb7686b 100644 --- a/app/src/ui/routes/settings/utils/schema.ts +++ b/app/src/ui/routes/settings/utils/schema.ts @@ -1,4 +1,4 @@ -import type { JSONSchema7 } from "json-schema"; +import type { JSONSchema } from "json-schema-to-ts"; import { omitKeys, type s } from "bknd/utils"; export function extractSchema< @@ -10,7 +10,7 @@ export function extractSchema< config: Config, keys: Keys[], ): [ - JSONSchema7, + Exclude, Partial, { [K in Keys]: { diff --git a/bun.lock b/bun.lock index 6e4e87e..cc43399 100644 --- a/bun.lock +++ b/bun.lock @@ -74,6 +74,7 @@ "@vitest/coverage-v8": "3.0.9", "autoprefixer": "^10.4.21", "clsx": "^2.1.1", + "commander": "^14.0.2", "dotenv": "^17.2.3", "jotai": "^2.12.2", "jsdom": "^26.1.0", @@ -1746,7 +1747,7 @@ "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], - "commander": ["commander@9.5.0", "", {}, "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="], + "commander": ["commander@14.0.2", "", {}, "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ=="], "commondir": ["commondir@1.0.1", "", {}, "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="], @@ -4692,6 +4693,8 @@ "tsc-alias/chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], + "tsc-alias/commander": ["commander@9.5.0", "", {}, "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="], + "tsconfig-paths/json5": ["json5@1.0.2", "", { "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="], "tsdx/semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], @@ -4732,6 +4735,8 @@ "vitest/vite": ["vite@6.2.1", "", { "dependencies": { "esbuild": "^0.25.0", "postcss": "^8.5.3", "rollup": "^4.30.1" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q=="], + "wait-port/commander": ["commander@9.5.0", "", {}, "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="], + "wait-port/debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], "webdriver/@types/node": ["@types/node@20.17.24", "", { "dependencies": { "undici-types": "~6.19.2" } }, "sha512-d7fGCyB96w9BnWQrOsJtpyiSaBcAYYr75bnK6ZRjDbql2cGLj/3GsL5OYmLPNq76l7Gf2q4Rv9J2o6h5CrD9sA=="],