@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 +73 -59
- package/package.json +1 -1
- package/starter/next.config.mjs +0 -6
- package/starter/package.json +1 -1
- package/dist/adapter.cjs +0 -33
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.
|
|
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.
|
|
3815
|
-
|
|
3816
|
-
|
|
3817
|
-
|
|
3818
|
-
|
|
3819
|
-
|
|
3820
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
package/starter/next.config.mjs
CHANGED
|
@@ -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
|
};
|
package/starter/package.json
CHANGED
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
|