@ahmedrowaihi/8n 6.0.26 → 6.0.28

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/index.mjs CHANGED
@@ -3,7 +3,7 @@ import { Command, Option } from "commander";
3
3
  import pc from "picocolors";
4
4
  import { basename, dirname, extname, join, relative, resolve, sep } from "node:path";
5
5
  import { fileURLToPath } from "node:url";
6
- import { appendFileSync, cpSync, existsSync, mkdirSync, readFileSync, readdirSync, watch, writeFileSync } from "node:fs";
6
+ import { appendFileSync, cpSync, existsSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, watch, writeFileSync } from "node:fs";
7
7
  import { x } from "tinyexec";
8
8
  import { loadConfig } from "c12";
9
9
  import { createInterface } from "node:readline/promises";
@@ -3674,7 +3674,7 @@ async function checkSelfUpdate() {
3674
3674
  });
3675
3675
  if (!res.ok) return;
3676
3676
  const { version: latest } = await res.json();
3677
- const current = "6.0.26";
3677
+ const current = "6.0.28";
3678
3678
  if (latest !== current) console.log(pc.yellow("⚠") + pc.dim(` new version available: `) + pc.cyan(latest) + pc.dim(` (current: ${current}) — run `) + pc.cyan("npm i -g @ahmedrowaihi/8n") + pc.dim(" to update"));
3679
3679
  } catch {}
3680
3680
  }
@@ -3732,44 +3732,6 @@ async function runNext(cmd, env, flags = []) {
3732
3732
  env
3733
3733
  } });
3734
3734
  }
3735
- function getProjectBuildDir(projectDir) {
3736
- return join(projectDir, ".8n");
3737
- }
3738
- async function copyStarterToProject(projectDir) {
3739
- const starterDir = getStarterDir();
3740
- const buildDir = getProjectBuildDir(projectDir);
3741
- const spin = spinner("preparing build environment");
3742
- try {
3743
- cpSync(starterDir, buildDir, {
3744
- recursive: true,
3745
- force: true,
3746
- filter: (src) => {
3747
- const rel = src.slice(starterDir.length);
3748
- return !rel.startsWith(sep + "node_modules") && !rel.startsWith(sep + ".next") && !rel.startsWith(sep + "out");
3749
- }
3750
- });
3751
- await x("npm", [
3752
- "install",
3753
- "--legacy-peer-deps",
3754
- "--include=dev"
3755
- ], { nodeOptions: {
3756
- cwd: buildDir,
3757
- stdio: process.env.DEBUG_8N ? "inherit" : "pipe"
3758
- } });
3759
- spin.succeed("build environment ready");
3760
- } catch (err) {
3761
- spin.fail(`setup failed: ${err.message}`);
3762
- throw err;
3763
- }
3764
- }
3765
- async function runNextIn(dir, cmd, env, flags = []) {
3766
- await x(join(dir, "node_modules", ".bin", "next"), [cmd, ...flags], { nodeOptions: {
3767
- cwd: dir,
3768
- stdio: "inherit",
3769
- env
3770
- } });
3771
- }
3772
- const adapterPath = join(dirname(fileURLToPath(import.meta.url)), "adapter.cjs");
3773
3735
  function buildEnv({ config, contentDir, staticExport = false }) {
3774
3736
  const ghRepo = process.env.GITHUB_REPOSITORY;
3775
3737
  const ghServer = process.env.GITHUB_SERVER_URL ?? "https://github.com";
@@ -3785,11 +3747,16 @@ function buildEnv({ config, contentDir, staticExport = false }) {
3785
3747
  NEXT_PUBLIC_NAV_LINKS: JSON.stringify(config.nav?.links ?? []),
3786
3748
  NEXT_PUBLIC_ANIMATIONS: config.animations === false ? "false" : "true",
3787
3749
  NEXT_BASE_PATH: config.basePath ?? ghPagesBasePath ?? "",
3788
- NEXT_STATIC_EXPORT: staticExport ? "true" : "false",
3789
- NEXT_ADAPTER_PATH: adapterPath,
3790
- DOCS_PROJECT_DIR: process.cwd()
3750
+ NEXT_STATIC_EXPORT: staticExport ? "true" : "false"
3791
3751
  };
3792
3752
  }
3753
+ async function runNextFlat(projectDir, cmd, env) {
3754
+ await x(join(projectDir, "node_modules", ".bin", "next"), [cmd], { nodeOptions: {
3755
+ cwd: projectDir,
3756
+ stdio: "inherit",
3757
+ env
3758
+ } });
3759
+ }
3793
3760
 
3794
3761
  //#endregion
3795
3762
  //#region src/commands/dev.ts
@@ -3811,28 +3778,41 @@ async function dev() {
3811
3778
  async function build({ server = false } = {}) {
3812
3779
  const { config, contentDir } = await resolveProject();
3813
3780
  const projectDir = process.cwd();
3814
- console.log(pc.cyan("8n") + pc.dim(` v6.0.26 build → ${contentDir}`));
3815
- syncPublicDir(projectDir);
3816
- if (server) {
3817
- await copyStarterToProject(projectDir);
3818
- await runNextIn(getProjectBuildDir(projectDir), "build", {
3819
- ...buildEnv({
3820
- config,
3821
- contentDir,
3822
- staticExport: false
3823
- }),
3824
- NEXT_DIST_DIR: join("..", ".next")
3825
- });
3826
- } else {
3781
+ console.log(pc.cyan("8n") + pc.dim(` v6.0.28 build → ${contentDir}`));
3782
+ if (server) await runNextFlat(projectDir, "build", buildEnv({
3783
+ config,
3784
+ contentDir,
3785
+ staticExport: false
3786
+ }));
3787
+ else {
3827
3788
  await ensureDepsInstalled();
3789
+ syncPublicDir(projectDir);
3828
3790
  await runNext("build", buildEnv({
3829
3791
  config,
3830
3792
  contentDir,
3831
3793
  staticExport: true
3832
3794
  }));
3795
+ moveOutput(join(getStarterDir(), "out"), join(projectDir, "out"));
3833
3796
  }
3834
3797
  console.log(pc.green("✓") + pc.dim(` build complete → ${server ? ".next/" : "out/"}`));
3835
3798
  }
3799
+ function moveOutput(src, dest) {
3800
+ if (!existsSync(src)) return;
3801
+ if (existsSync(dest)) rmSync(dest, {
3802
+ recursive: true,
3803
+ force: true
3804
+ });
3805
+ try {
3806
+ renameSync(src, dest);
3807
+ } catch (err) {
3808
+ if (err.code !== "EXDEV") throw err;
3809
+ cpSync(src, dest, { recursive: true });
3810
+ rmSync(src, {
3811
+ recursive: true,
3812
+ force: true
3813
+ });
3814
+ }
3815
+ }
3836
3816
 
3837
3817
  //#endregion
3838
3818
  //#region src/commands/start.ts
@@ -4003,8 +3983,42 @@ async function init() {
4003
3983
  //#endregion
4004
3984
  //#region src/commands/install.ts
4005
3985
  async function install() {
3986
+ const starterDir = getStarterDir();
3987
+ const projectDir = process.cwd();
4006
3988
  console.log(pc.cyan("8n") + pc.dim(" install"));
4007
- await ensureDepsInstalled();
3989
+ process.stdout.write(pc.dim(" copying starter files...\n"));
3990
+ cpSync(starterDir, projectDir, {
3991
+ recursive: true,
3992
+ force: true,
3993
+ filter: (src) => {
3994
+ const rel = src.slice(starterDir.length);
3995
+ return !rel.startsWith(sep + "node_modules") && !rel.startsWith(sep + ".next") && !rel.startsWith(sep + "out") && !rel.startsWith(sep + "content") && rel !== sep + "package.json";
3996
+ }
3997
+ });
3998
+ const starterPkg = JSON.parse(readFileSync(join(starterDir, "package.json"), "utf-8"));
3999
+ const projectPkg = JSON.parse(readFileSync(join(projectDir, "package.json"), "utf-8"));
4000
+ const merged = {
4001
+ ...projectPkg,
4002
+ dependencies: {
4003
+ ...starterPkg.dependencies ?? {},
4004
+ ...projectPkg.dependencies ?? {}
4005
+ },
4006
+ devDependencies: {
4007
+ ...starterPkg.devDependencies ?? {},
4008
+ ...projectPkg.devDependencies ?? {}
4009
+ }
4010
+ };
4011
+ writeFileSync(join(projectDir, "package.json"), JSON.stringify(merged, null, 2) + "\n");
4012
+ process.stdout.write(pc.dim(" installing dependencies...\n"));
4013
+ await x("npm", [
4014
+ "install",
4015
+ "--legacy-peer-deps",
4016
+ "--include=dev"
4017
+ ], { nodeOptions: {
4018
+ cwd: projectDir,
4019
+ stdio: process.env.DEBUG_8N ? "inherit" : "pipe"
4020
+ } });
4021
+ process.stdout.write(pc.green("✓") + pc.dim(" project ready\n"));
4008
4022
  }
4009
4023
 
4010
4024
  //#endregion
@@ -4022,7 +4036,7 @@ async function mcp() {
4022
4036
  const mcpDir = join(getStarterDir(), "content", "mcp", "en");
4023
4037
  const server = new McpServer({
4024
4038
  name: "8n",
4025
- version: "6.0.26"
4039
+ version: "6.0.28"
4026
4040
  });
4027
4041
  server.registerTool("read_me", {
4028
4042
  description: "Returns how to use the 8n MCP tools. Call this BEFORE documenting anything with 8n.",
@@ -4163,7 +4177,7 @@ Example: get_component({ name: "components" }) returns all available MDX compone
4163
4177
 
4164
4178
  //#endregion
4165
4179
  //#region src/index.ts
4166
- const program = new Command().name("8n").description("Run your 8n docs site").version("6.0.26").addOption(new Option("--debug").hideHelp()).hook("preAction", (cmd) => {
4180
+ const program = new Command().name("8n").description("Run your 8n docs site").version("6.0.28").addOption(new Option("--debug").hideHelp()).hook("preAction", (cmd) => {
4167
4181
  if (cmd.opts().debug) process.env.DEBUG_8N = "1";
4168
4182
  });
4169
4183
  program.command("init").description("Scaffold a new docs project in the current directory").action(init);
package/package.json CHANGED
@@ -30,5 +30,5 @@
30
30
  "typescript": "^5.9.3",
31
31
  "zod": "^4.3.6"
32
32
  },
33
- "version": "6.0.26"
33
+ "version": "6.0.28"
34
34
  }
@@ -7,16 +7,10 @@ const config = {
7
7
  root: import.meta.dirname,
8
8
  },
9
9
  reactStrictMode: true,
10
- adapterPath: process.env.NEXT_ADAPTER_PATH,
11
-
12
10
  serverExternalPackages: ["twoslash", "typescript", "gray-matter"],
13
-
14
11
  images: {
15
12
  unoptimized: true,
16
13
  },
17
-
18
- distDir: process.env.NEXT_DIST_DIR || ".next",
19
-
20
14
  ...(staticExport ? { output: "export", trailingSlash: true } : {}),
21
15
  ...(basePath ? { basePath, assetPrefix: basePath } : {}),
22
16
  };
@@ -106,5 +106,5 @@
106
106
  "tsx": "^4.21.0",
107
107
  "typescript": "^5.9.3"
108
108
  },
109
- "version": "6.0.26"
109
+ "version": "6.0.28"
110
110
  }
package/dist/adapter.cjs DELETED
@@ -1,33 +0,0 @@
1
- let node_fs = require("node:fs");
2
- let node_path = require("node:path");
3
-
4
- //#region src/adapter.ts
5
- const adapter = {
6
- name: "8n",
7
- async onBuildComplete({ projectDir }) {
8
- const docsProjectDir = process.env.DOCS_PROJECT_DIR;
9
- const staticExport = process.env.NEXT_STATIC_EXPORT === "true";
10
- if (!docsProjectDir) return;
11
- if (process.env.NEXT_DIST_DIR && !staticExport) return;
12
- const folder = staticExport ? "out" : ".next";
13
- const src = (0, node_path.join)(projectDir, folder);
14
- const dest = (0, node_path.join)(docsProjectDir, folder);
15
- if ((0, node_fs.existsSync)(dest)) (0, node_fs.rmSync)(dest, {
16
- recursive: true,
17
- force: true
18
- });
19
- try {
20
- (0, node_fs.renameSync)(src, dest);
21
- } catch (err) {
22
- if (err.code !== "EXDEV") throw err;
23
- (0, node_fs.cpSync)(src, dest, { recursive: true });
24
- (0, node_fs.rmSync)(src, {
25
- recursive: true,
26
- force: true
27
- });
28
- }
29
- }
30
- };
31
- module.exports = adapter;
32
-
33
- //#endregion