@xyd-js/documan 0.1.0-xyd.16 → 0.1.0-xyd.18

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/build.js CHANGED
@@ -6,7 +6,7 @@ import { execSync } from "child_process";
6
6
  import { build as viteBuild } from "vite";
7
7
  import tsconfigPaths from "vite-tsconfig-paths";
8
8
  import { reactRouter } from "@xyd-js/react-router-dev/vite";
9
- import { vitePlugins as xydContentVitePlugins } from "@xyd-js/content";
9
+ import { vitePlugins as xydContentVitePlugins } from "@xyd-js/content/vite";
10
10
  import { pluginZero } from "@xyd-js/plugin-zero";
11
11
  var __filename = fileURLToPath(import.meta.url);
12
12
  var __dirname = path.dirname(__filename);
@@ -23,10 +23,14 @@ async function build() {
23
23
  scripts: {},
24
24
  dependencies: {
25
25
  // TODO: better
26
- "@xyd-js/content": "latest",
27
- "@xyd-js/components": "latest",
28
- "@xyd-js/framework": "latest",
29
- "@xyd-js/theme-poetry": "latest",
26
+ // "@xyd-js/content": "latest",
27
+ // "@xyd-js/components": "latest",
28
+ // "@xyd-js/framework": "latest",
29
+ // "@xyd-js/theme-poetry": "latest",
30
+ "@xyd-js/content": "workspace:*",
31
+ "@xyd-js/components": "workspace:*",
32
+ "@xyd-js/framework": "workspace:*",
33
+ "@xyd-js/theme-poetry": "workspace:*",
30
34
  "@react-router/node": "^7.1.1",
31
35
  "isbot": "^5"
32
36
  },
@@ -36,12 +40,11 @@ async function build() {
36
40
  fs.mkdirSync(buildDir, { recursive: true });
37
41
  }
38
42
  fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContent, null, 2), "utf8");
39
- execSync("npm install", { cwd: buildDir, stdio: "inherit" });
43
+ execSync("pnpm i", { cwd: buildDir, stdio: "inherit" });
40
44
  }
41
45
  try {
42
46
  await viteBuild({
43
47
  root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, "../host"),
44
- // @ts-ignore
45
48
  plugins: [
46
49
  ...xydContentVitePlugins({
47
50
  toc: {
@@ -64,7 +67,6 @@ async function build() {
64
67
  build: {
65
68
  ssr: true
66
69
  },
67
- // @ts-ignore
68
70
  plugins: [
69
71
  ...xydContentVitePlugins({
70
72
  toc: {
@@ -93,7 +95,7 @@ import path2 from "node:path";
93
95
  import { fileURLToPath as fileURLToPath2 } from "node:url";
94
96
  import { createServer, searchForWorkspaceRoot } from "vite";
95
97
  import { reactRouter as reactRouter2 } from "@xyd-js/react-router-dev/vite";
96
- import { vitePlugins as xydContentVitePlugins2 } from "@xyd-js/content";
98
+ import { vitePlugins as xydContentVitePlugins2 } from "@xyd-js/content/vite";
97
99
  import { pluginZero as pluginZero2 } from "@xyd-js/plugin-zero";
98
100
  var __filename2 = fileURLToPath2(import.meta.url);
99
101
  var __dirname2 = path2.dirname(__filename2);
package/dist/build.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/run/build.ts","../src/run/dev.ts","../src/run/serve.ts","../src/commands/build.ts"],"sourcesContent":["import path from \"node:path\";\nimport fs from \"node:fs\";\nimport {fileURLToPath} from \"node:url\";\nimport {execSync} from 'child_process';\n\nimport {build as viteBuild} from 'vite';\nimport tsconfigPaths from \"vite-tsconfig-paths\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n// import { reactRouter } from \"@react-router/dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content\"\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// Define the main function to run the builds\nexport async function build() {\n const resp = await pluginZero()\n if (!resp) {\n throw new Error(\"PluginZero not found\")\n }\n\n const buildDir = path.join(process.cwd(), \".xyd/build\");\n\n {\n // TODO: probably we should have better mechanism - maybe bundle?\n\n const packageJsonPath = path.join(buildDir, 'package.json');\n\n const packageJsonContent = {\n type: \"module\",\n scripts: {},\n dependencies: { // TODO: better\n \"@xyd-js/content\": \"latest\",\n \"@xyd-js/components\": \"latest\",\n \"@xyd-js/framework\": \"latest\",\n \"@xyd-js/theme-poetry\": \"latest\",\n \"@react-router/node\": \"^7.1.1\",\n \"isbot\": \"^5\"\n },\n devDependencies: {}\n };\n\n // Ensure the build directory exists\n if (!fs.existsSync(buildDir)) {\n fs.mkdirSync(buildDir, {recursive: true});\n }\n\n // Write the package.json file\n fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContent, null, 2), 'utf8');\n\n // Install packages inside buildDir\n execSync('npm install', {cwd: buildDir, stdio: 'inherit'});\n }\n\n try {\n // Build the client-side bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n // @ts-ignore\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n // Build the SSR bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n build: {\n ssr: true,\n },\n // @ts-ignore\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n console.log('Build completed successfully.'); // TODO: better message\n } catch (error) {\n console.error('Build failed:', error); // TODO: better message\n }\n}\n\n","import path from \"node:path\";\nimport {fileURLToPath} from \"node:url\";\nimport {createServer, searchForWorkspaceRoot} from \"vite\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n// import { reactRouter } from \"@react-router/dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content\";\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nconst port = process.env.XYD_PORT ? parseInt(process.env.XYD_PORT) : 5175;\n\nexport async function dev() {\n const resp = await pluginZero()\n if (!resp) {\n throw new Error(\"PluginZero not found\")\n }\n\n const allowCwd = searchForWorkspaceRoot(process.cwd())\n\n const preview = await createServer({\n // any valid user config options, plus `mode` and `configFile`\n // configFile: path.join(__dirname, \"../src/vite/empty-config.ts\"), // TODO: bundler??\n // configFile: path.join(__dirname, \"../\"), // TODO: bundler??\n // root: path.join(__dirname, \"../\"), // TODO: bundler?\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"), // TODO: bundler?\n server: {\n port: port,\n fs: {\n allow: [\n allowCwd,\n process.env.XYD_CLI ? path.join(__dirname, \"../../\") : \"\",\n // path.join(__dirname, \"../node_modules\") // Ensure node_modules from xyd-documan is included\n ]\n }\n },\n build: {\n rollupOptions: {\n // Exclude package `B` from the client-side bundle\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n },\n },\n ssr: {\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n // noExternal: [\n // \"@xyd-js/uniform\",\n // \"@xyd-js/uniform/content\",\n // \"@xyd-js/plugin-zero\"\n // ],\n },\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n // @ts-ignore\n plugins: [ // TODO: fix plugin ts\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n routes: resp.routes\n }),\n ...resp.vitePlugins\n ],\n });\n\n await preview.listen(port);\n\n preview.printUrls();\n preview.bindCLIShortcuts({print: true});\n\n}","import fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport url from \"node:url\";\n\nimport type {ServerBuild} from \"react-router\";\nimport {createRequestHandler} from \"@react-router/express\";\nimport compression from \"compression\";\nimport express from \"express\";\nimport morgan from \"morgan\";\nimport sourceMapSupport from \"source-map-support\";\nimport getPort from \"get-port\";\n\nfunction parseNumber(raw?: string) {\n if (raw === undefined) return undefined;\n let maybe = Number(raw);\n if (Number.isNaN(maybe)) return undefined;\n return maybe;\n}\n\nexport async function serve() {\n process.env.NODE_ENV = process.env.NODE_ENV ?? \"production\";\n\n sourceMapSupport.install({\n retrieveSourceMap: function (source) {\n let match = source.startsWith(\"file://\");\n if (match) {\n let filePath = url.fileURLToPath(source);\n let sourceMapPath = `${filePath}.map`;\n if (fs.existsSync(sourceMapPath)) {\n return {\n url: source,\n map: fs.readFileSync(sourceMapPath, \"utf8\"),\n };\n }\n }\n return null;\n },\n });\n\n let port = parseNumber(process.env.PORT) ?? (await getPort({port: 3000}));\n\n let buildPathArg = path.join(process.cwd(), \".xyd/build/server/index.js\")\n\n if (!buildPathArg) {\n console.error(`\n Usage: react-router-serve <server-build-path> - e.g. react-router-serve build/server/index.js`);\n process.exit(1);\n }\n\n let buildPath = path.resolve(buildPathArg);\n\n let build: ServerBuild = await import(url.pathToFileURL(buildPath).href);\n\n let onListen = () => {\n let address =\n process.env.HOST ||\n Object.values(os.networkInterfaces())\n .flat()\n .find((ip) => String(ip?.family).includes(\"4\") && !ip?.internal)\n ?.address;\n\n if (!address) {\n console.log(`[xyd-serve] http://localhost:${port}`);\n } else {\n console.log(\n `[xyd-serve] http://localhost:${port} (http://${address}:${port})`\n );\n }\n };\n\n build = {\n ...build,\n assetsBuildDirectory: path.join(process.cwd(), \".xyd/build/client\")\n }\n\n let app = express();\n app.disable(\"x-powered-by\");\n app.use(compression());\n app.use(\n path.posix.join(build.publicPath, \"assets\"),\n express.static(path.join(build.assetsBuildDirectory, \"assets\"), {\n immutable: true,\n maxAge: \"1y\",\n })\n );\n app.use(build.publicPath, express.static(build.assetsBuildDirectory));\n app.use(express.static(\"public\", {maxAge: \"1h\"}));\n app.use(morgan(\"tiny\"));\n\n app.all(\n \"*\",\n createRequestHandler({\n build,\n mode: process.env.NODE_ENV,\n })\n );\n\n let server = process.env.HOST\n ? app.listen(port, process.env.HOST, onListen)\n : app.listen(port, onListen);\n\n [\"SIGTERM\", \"SIGINT\"].forEach((signal) => {\n process.once(signal, () => server?.close(console.error));\n });\n}\n","import {build} from \"../\"\n\n// Execute the build function\nawait build();"],"mappings":"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","names":["path","fileURLToPath","reactRouter","xydContentVitePlugins","pluginZero","__filename","__dirname","fs","path"]}
1
+ {"version":3,"sources":["../src/run/build.ts","../src/run/dev.ts","../src/run/serve.ts","../src/commands/build.ts"],"sourcesContent":["import path from \"node:path\";\nimport fs from \"node:fs\";\nimport {fileURLToPath} from \"node:url\";\nimport {execSync} from 'child_process';\n\nimport {build as viteBuild} from 'vite';\nimport tsconfigPaths from \"vite-tsconfig-paths\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content/vite\"\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// Define the main function to run the builds\nexport async function build() {\n const resp = await pluginZero()\n if (!resp) {\n throw new Error(\"PluginZero not found\")\n }\n\n const buildDir = path.join(process.cwd(), \".xyd/build\");\n\n {\n // TODO: probably we should have better mechanism - maybe bundle?\n\n const packageJsonPath = path.join(buildDir, 'package.json');\n\n const packageJsonContent = {\n type: \"module\",\n scripts: {},\n dependencies: { // TODO: better\n // \"@xyd-js/content\": \"latest\",\n // \"@xyd-js/components\": \"latest\",\n // \"@xyd-js/framework\": \"latest\",\n // \"@xyd-js/theme-poetry\": \"latest\",\n\n \"@xyd-js/content\": \"workspace:*\",\n \"@xyd-js/components\": \"workspace:*\",\n \"@xyd-js/framework\": \"workspace:*\",\n \"@xyd-js/theme-poetry\": \"workspace:*\",\n\n \"@react-router/node\": \"^7.1.1\",\n \"isbot\": \"^5\"\n },\n devDependencies: {}\n };\n\n // Ensure the build directory exists\n if (!fs.existsSync(buildDir)) {\n fs.mkdirSync(buildDir, {recursive: true});\n }\n\n // Write the package.json file\n fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContent, null, 2), 'utf8');\n\n // Install packages inside buildDir\n // execSync('npm install', {cwd: buildDir, stdio: 'inherit'});\n\n execSync('pnpm i', {cwd: buildDir, stdio: 'inherit'});\n }\n\n try {\n // Build the client-side bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n // Build the SSR bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n build: {\n ssr: true,\n },\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n console.log('Build completed successfully.'); // TODO: better message\n } catch (error) {\n console.error('Build failed:', error); // TODO: better message\n }\n}\n\n","import path from \"node:path\";\nimport {fileURLToPath} from \"node:url\";\nimport {createServer, searchForWorkspaceRoot} from \"vite\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content/vite\";\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nconst port = process.env.XYD_PORT ? parseInt(process.env.XYD_PORT) : 5175;\n\nexport async function dev() {\n const respPluginZero = await pluginZero()\n if (!respPluginZero) {\n throw new Error(\"PluginZero not found\")\n }\n\n const allowCwd = searchForWorkspaceRoot(process.cwd())\n\n const preview = await createServer({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"), // TODO: bundler?\n server: {\n port: port,\n fs: {\n allow: [\n allowCwd,\n process.env.XYD_CLI ? path.join(__dirname, \"../../\") : \"\",\n // path.join(__dirname, \"../node_modules\") // Ensure node_modules from xyd-documan is included\n ]\n }\n },\n build: {\n rollupOptions: {\n // Exclude package `B` from the client-side bundle\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n },\n },\n ssr: {\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n },\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n plugins: [ // TODO: fix plugin ts\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n routes: respPluginZero.routes\n }),\n ...respPluginZero.vitePlugins\n ],\n });\n\n await preview.listen(port);\n\n preview.printUrls();\n preview.bindCLIShortcuts({print: true});\n\n}","import fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport url from \"node:url\";\n\nimport type {ServerBuild} from \"react-router\";\nimport {createRequestHandler} from \"@react-router/express\";\nimport compression from \"compression\";\nimport express from \"express\";\nimport morgan from \"morgan\";\nimport sourceMapSupport from \"source-map-support\";\nimport getPort from \"get-port\";\n\nfunction parseNumber(raw?: string) {\n if (raw === undefined) return undefined;\n let maybe = Number(raw);\n if (Number.isNaN(maybe)) return undefined;\n return maybe;\n}\n\nexport async function serve() {\n process.env.NODE_ENV = process.env.NODE_ENV ?? \"production\";\n\n sourceMapSupport.install({\n retrieveSourceMap: function (source) {\n let match = source.startsWith(\"file://\");\n if (match) {\n let filePath = url.fileURLToPath(source);\n let sourceMapPath = `${filePath}.map`;\n if (fs.existsSync(sourceMapPath)) {\n return {\n url: source,\n map: fs.readFileSync(sourceMapPath, \"utf8\"),\n };\n }\n }\n return null;\n },\n });\n\n let port = parseNumber(process.env.PORT) ?? (await getPort({port: 3000}));\n\n let buildPathArg = path.join(process.cwd(), \".xyd/build/server/index.js\")\n\n if (!buildPathArg) {\n console.error(`\n Usage: react-router-serve <server-build-path> - e.g. react-router-serve build/server/index.js`);\n process.exit(1);\n }\n\n let buildPath = path.resolve(buildPathArg);\n\n let build: ServerBuild = await import(url.pathToFileURL(buildPath).href);\n\n let onListen = () => {\n let address =\n process.env.HOST ||\n Object.values(os.networkInterfaces())\n .flat()\n .find((ip) => String(ip?.family).includes(\"4\") && !ip?.internal)\n ?.address;\n\n if (!address) {\n console.log(`[xyd-serve] http://localhost:${port}`);\n } else {\n console.log(\n `[xyd-serve] http://localhost:${port} (http://${address}:${port})`\n );\n }\n };\n\n build = {\n ...build,\n assetsBuildDirectory: path.join(process.cwd(), \".xyd/build/client\")\n }\n\n let app = express();\n app.disable(\"x-powered-by\");\n app.use(compression());\n app.use(\n path.posix.join(build.publicPath, \"assets\"),\n express.static(path.join(build.assetsBuildDirectory, \"assets\"), {\n immutable: true,\n maxAge: \"1y\",\n })\n );\n app.use(build.publicPath, express.static(build.assetsBuildDirectory));\n app.use(express.static(\"public\", {maxAge: \"1h\"}));\n app.use(morgan(\"tiny\"));\n\n app.all(\n \"*\",\n createRequestHandler({\n build,\n mode: process.env.NODE_ENV,\n })\n );\n\n let server = process.env.HOST\n ? app.listen(port, process.env.HOST, onListen)\n : app.listen(port, onListen);\n\n [\"SIGTERM\", \"SIGINT\"].forEach((signal) => {\n process.once(signal, () => server?.close(console.error));\n });\n}\n","import {build} from \"../\"\n\n// Execute the build function\nawait build();"],"mappings":"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","names":["path","fileURLToPath","reactRouter","xydContentVitePlugins","pluginZero","__filename","__dirname","fs","path"]}
package/dist/dev.js CHANGED
@@ -5,7 +5,7 @@ import { fileURLToPath } from "node:url";
5
5
  import { build as viteBuild } from "vite";
6
6
  import tsconfigPaths from "vite-tsconfig-paths";
7
7
  import { reactRouter } from "@xyd-js/react-router-dev/vite";
8
- import { vitePlugins as xydContentVitePlugins } from "@xyd-js/content";
8
+ import { vitePlugins as xydContentVitePlugins } from "@xyd-js/content/vite";
9
9
  import { pluginZero } from "@xyd-js/plugin-zero";
10
10
  var __filename = fileURLToPath(import.meta.url);
11
11
  var __dirname = path.dirname(__filename);
@@ -15,22 +15,18 @@ import path2 from "node:path";
15
15
  import { fileURLToPath as fileURLToPath2 } from "node:url";
16
16
  import { createServer, searchForWorkspaceRoot } from "vite";
17
17
  import { reactRouter as reactRouter2 } from "@xyd-js/react-router-dev/vite";
18
- import { vitePlugins as xydContentVitePlugins2 } from "@xyd-js/content";
18
+ import { vitePlugins as xydContentVitePlugins2 } from "@xyd-js/content/vite";
19
19
  import { pluginZero as pluginZero2 } from "@xyd-js/plugin-zero";
20
20
  var __filename2 = fileURLToPath2(import.meta.url);
21
21
  var __dirname2 = path2.dirname(__filename2);
22
22
  var port = process.env.XYD_PORT ? parseInt(process.env.XYD_PORT) : 5175;
23
23
  async function dev() {
24
- const resp = await pluginZero2();
25
- if (!resp) {
24
+ const respPluginZero = await pluginZero2();
25
+ if (!respPluginZero) {
26
26
  throw new Error("PluginZero not found");
27
27
  }
28
28
  const allowCwd = searchForWorkspaceRoot(process.cwd());
29
29
  const preview = await createServer({
30
- // any valid user config options, plus `mode` and `configFile`
31
- // configFile: path.join(__dirname, "../src/vite/empty-config.ts"), // TODO: bundler??
32
- // configFile: path.join(__dirname, "../"), // TODO: bundler??
33
- // root: path.join(__dirname, "../"), // TODO: bundler?
34
30
  root: process.env.XYD_CLI ? __dirname2 : process.env.XYD_DOCUMAN_HOST || path2.join(__dirname2, "../host"),
35
31
  // TODO: bundler?
36
32
  server: {
@@ -51,16 +47,10 @@ async function dev() {
51
47
  },
52
48
  ssr: {
53
49
  external: ["@xyd-js/uniform", "@xyd-js/uniform/content", "@xyd-js/plugin-zero"]
54
- // noExternal: [
55
- // "@xyd-js/uniform",
56
- // "@xyd-js/uniform/content",
57
- // "@xyd-js/plugin-zero"
58
- // ],
59
50
  },
60
51
  optimizeDeps: {
61
52
  include: ["react/jsx-runtime"]
62
53
  },
63
- // @ts-ignore
64
54
  plugins: [
65
55
  // TODO: fix plugin ts
66
56
  ...xydContentVitePlugins2({
@@ -69,9 +59,9 @@ async function dev() {
69
59
  }
70
60
  }),
71
61
  reactRouter2({
72
- routes: resp.routes
62
+ routes: respPluginZero.routes
73
63
  }),
74
- ...resp.vitePlugins
64
+ ...respPluginZero.vitePlugins
75
65
  ]
76
66
  });
77
67
  await preview.listen(port);
package/dist/dev.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/run/build.ts","../src/run/dev.ts","../src/run/serve.ts","../src/commands/dev.ts"],"sourcesContent":["import path from \"node:path\";\nimport fs from \"node:fs\";\nimport {fileURLToPath} from \"node:url\";\nimport {execSync} from 'child_process';\n\nimport {build as viteBuild} from 'vite';\nimport tsconfigPaths from \"vite-tsconfig-paths\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n// import { reactRouter } from \"@react-router/dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content\"\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// Define the main function to run the builds\nexport async function build() {\n const resp = await pluginZero()\n if (!resp) {\n throw new Error(\"PluginZero not found\")\n }\n\n const buildDir = path.join(process.cwd(), \".xyd/build\");\n\n {\n // TODO: probably we should have better mechanism - maybe bundle?\n\n const packageJsonPath = path.join(buildDir, 'package.json');\n\n const packageJsonContent = {\n type: \"module\",\n scripts: {},\n dependencies: { // TODO: better\n \"@xyd-js/content\": \"latest\",\n \"@xyd-js/components\": \"latest\",\n \"@xyd-js/framework\": \"latest\",\n \"@xyd-js/theme-poetry\": \"latest\",\n \"@react-router/node\": \"^7.1.1\",\n \"isbot\": \"^5\"\n },\n devDependencies: {}\n };\n\n // Ensure the build directory exists\n if (!fs.existsSync(buildDir)) {\n fs.mkdirSync(buildDir, {recursive: true});\n }\n\n // Write the package.json file\n fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContent, null, 2), 'utf8');\n\n // Install packages inside buildDir\n execSync('npm install', {cwd: buildDir, stdio: 'inherit'});\n }\n\n try {\n // Build the client-side bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n // @ts-ignore\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n // Build the SSR bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n build: {\n ssr: true,\n },\n // @ts-ignore\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n console.log('Build completed successfully.'); // TODO: better message\n } catch (error) {\n console.error('Build failed:', error); // TODO: better message\n }\n}\n\n","import path from \"node:path\";\nimport {fileURLToPath} from \"node:url\";\nimport {createServer, searchForWorkspaceRoot} from \"vite\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n// import { reactRouter } from \"@react-router/dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content\";\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nconst port = process.env.XYD_PORT ? parseInt(process.env.XYD_PORT) : 5175;\n\nexport async function dev() {\n const resp = await pluginZero()\n if (!resp) {\n throw new Error(\"PluginZero not found\")\n }\n\n const allowCwd = searchForWorkspaceRoot(process.cwd())\n\n const preview = await createServer({\n // any valid user config options, plus `mode` and `configFile`\n // configFile: path.join(__dirname, \"../src/vite/empty-config.ts\"), // TODO: bundler??\n // configFile: path.join(__dirname, \"../\"), // TODO: bundler??\n // root: path.join(__dirname, \"../\"), // TODO: bundler?\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"), // TODO: bundler?\n server: {\n port: port,\n fs: {\n allow: [\n allowCwd,\n process.env.XYD_CLI ? path.join(__dirname, \"../../\") : \"\",\n // path.join(__dirname, \"../node_modules\") // Ensure node_modules from xyd-documan is included\n ]\n }\n },\n build: {\n rollupOptions: {\n // Exclude package `B` from the client-side bundle\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n },\n },\n ssr: {\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n // noExternal: [\n // \"@xyd-js/uniform\",\n // \"@xyd-js/uniform/content\",\n // \"@xyd-js/plugin-zero\"\n // ],\n },\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n // @ts-ignore\n plugins: [ // TODO: fix plugin ts\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n routes: resp.routes\n }),\n ...resp.vitePlugins\n ],\n });\n\n await preview.listen(port);\n\n preview.printUrls();\n preview.bindCLIShortcuts({print: true});\n\n}","import fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport url from \"node:url\";\n\nimport type {ServerBuild} from \"react-router\";\nimport {createRequestHandler} from \"@react-router/express\";\nimport compression from \"compression\";\nimport express from \"express\";\nimport morgan from \"morgan\";\nimport sourceMapSupport from \"source-map-support\";\nimport getPort from \"get-port\";\n\nfunction parseNumber(raw?: string) {\n if (raw === undefined) return undefined;\n let maybe = Number(raw);\n if (Number.isNaN(maybe)) return undefined;\n return maybe;\n}\n\nexport async function serve() {\n process.env.NODE_ENV = process.env.NODE_ENV ?? \"production\";\n\n sourceMapSupport.install({\n retrieveSourceMap: function (source) {\n let match = source.startsWith(\"file://\");\n if (match) {\n let filePath = url.fileURLToPath(source);\n let sourceMapPath = `${filePath}.map`;\n if (fs.existsSync(sourceMapPath)) {\n return {\n url: source,\n map: fs.readFileSync(sourceMapPath, \"utf8\"),\n };\n }\n }\n return null;\n },\n });\n\n let port = parseNumber(process.env.PORT) ?? (await getPort({port: 3000}));\n\n let buildPathArg = path.join(process.cwd(), \".xyd/build/server/index.js\")\n\n if (!buildPathArg) {\n console.error(`\n Usage: react-router-serve <server-build-path> - e.g. react-router-serve build/server/index.js`);\n process.exit(1);\n }\n\n let buildPath = path.resolve(buildPathArg);\n\n let build: ServerBuild = await import(url.pathToFileURL(buildPath).href);\n\n let onListen = () => {\n let address =\n process.env.HOST ||\n Object.values(os.networkInterfaces())\n .flat()\n .find((ip) => String(ip?.family).includes(\"4\") && !ip?.internal)\n ?.address;\n\n if (!address) {\n console.log(`[xyd-serve] http://localhost:${port}`);\n } else {\n console.log(\n `[xyd-serve] http://localhost:${port} (http://${address}:${port})`\n );\n }\n };\n\n build = {\n ...build,\n assetsBuildDirectory: path.join(process.cwd(), \".xyd/build/client\")\n }\n\n let app = express();\n app.disable(\"x-powered-by\");\n app.use(compression());\n app.use(\n path.posix.join(build.publicPath, \"assets\"),\n express.static(path.join(build.assetsBuildDirectory, \"assets\"), {\n immutable: true,\n maxAge: \"1y\",\n })\n );\n app.use(build.publicPath, express.static(build.assetsBuildDirectory));\n app.use(express.static(\"public\", {maxAge: \"1h\"}));\n app.use(morgan(\"tiny\"));\n\n app.all(\n \"*\",\n createRequestHandler({\n build,\n mode: process.env.NODE_ENV,\n })\n );\n\n let server = process.env.HOST\n ? app.listen(port, process.env.HOST, onListen)\n : app.listen(port, onListen);\n\n [\"SIGTERM\", \"SIGINT\"].forEach((signal) => {\n process.once(signal, () => server?.close(console.error));\n });\n}\n","import {dev} from \"../\"\n\n// Execute the dev function\nawait dev();\n\n"],"mappings":";AAAA,OAAO,UAAU;AACjB,OAAO,QAAQ;AACf,SAAQ,qBAAoB;AAG5B,SAAQ,SAAS,iBAAgB;AACjC,OAAO,mBAAmB;AAE1B,SAAQ,mBAAkB;AAG1B,SAAQ,eAAe,6BAA4B;AACnD,SAAQ,kBAAiB;AAEzB,IAAM,aAAa,cAAc,YAAY,GAAG;AAChD,IAAM,YAAY,KAAK,QAAQ,UAAU;;;ACfzC,OAAOA,WAAU;AACjB,SAAQ,iBAAAC,sBAAoB;AAC5B,SAAQ,cAAc,8BAA6B;AAEnD,SAAQ,eAAAC,oBAAkB;AAG1B,SAAQ,eAAeC,8BAA4B;AACnD,SAAQ,cAAAC,mBAAiB;AAEzB,IAAMC,cAAaJ,eAAc,YAAY,GAAG;AAChD,IAAMK,aAAYN,MAAK,QAAQK,WAAU;AAEzC,IAAM,OAAO,QAAQ,IAAI,WAAW,SAAS,QAAQ,IAAI,QAAQ,IAAI;AAErE,eAAsB,MAAM;AACxB,QAAM,OAAO,MAAMD,YAAW;AAC9B,MAAI,CAAC,MAAM;AACP,UAAM,IAAI,MAAM,sBAAsB;AAAA,EAC1C;AAEA,QAAM,WAAW,uBAAuB,QAAQ,IAAI,CAAC;AAErD,QAAM,UAAU,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,IAK/B,MAAM,QAAQ,IAAI,UAAUE,aAAY,QAAQ,IAAI,oBAAoBN,MAAK,KAAKM,YAAW,SAAS;AAAA;AAAA,IACtG,QAAQ;AAAA,MACJ;AAAA,MACA,IAAI;AAAA,QACA,OAAO;AAAA,UACH;AAAA,UACA,QAAQ,IAAI,UAAUN,MAAK,KAAKM,YAAW,QAAQ,IAAI;AAAA;AAAA,QAE3D;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,OAAO;AAAA,MACH,eAAe;AAAA;AAAA,QAEX,UAAU,CAAC,mBAAmB,2BAA2B,qBAAqB;AAAA,MAClF;AAAA,IACJ;AAAA,IACA,KAAK;AAAA,MACD,UAAU,CAAC,mBAAmB,2BAA2B,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMlF;AAAA,IACA,cAAc;AAAA,MACV,SAAS,CAAC,mBAAmB;AAAA,IACjC;AAAA;AAAA,IAEA,SAAS;AAAA;AAAA,MACL,GAAIH,uBAAsB;AAAA,QACtB,KAAK;AAAA,UACD,UAAU;AAAA,QACd;AAAA,MACJ,CAAC;AAAA,MACDD,aAAY;AAAA,QACR,QAAQ,KAAK;AAAA,MACjB,CAAC;AAAA,MACD,GAAG,KAAK;AAAA,IACZ;AAAA,EACJ,CAAC;AAED,QAAM,QAAQ,OAAO,IAAI;AAEzB,UAAQ,UAAU;AAClB,UAAQ,iBAAiB,EAAC,OAAO,KAAI,CAAC;AAE1C;;;AC3EA,OAAOK,SAAQ;AACf,OAAO,QAAQ;AACf,OAAOC,WAAU;AACjB,OAAO,SAAS;AAGhB,SAAQ,4BAA2B;AACnC,OAAO,iBAAiB;AACxB,OAAO,aAAa;AACpB,OAAO,YAAY;AACnB,OAAO,sBAAsB;AAC7B,OAAO,aAAa;;;ACRpB,MAAM,IAAI;","names":["path","fileURLToPath","reactRouter","xydContentVitePlugins","pluginZero","__filename","__dirname","fs","path"]}
1
+ {"version":3,"sources":["../src/run/build.ts","../src/run/dev.ts","../src/run/serve.ts","../src/commands/dev.ts"],"sourcesContent":["import path from \"node:path\";\nimport fs from \"node:fs\";\nimport {fileURLToPath} from \"node:url\";\nimport {execSync} from 'child_process';\n\nimport {build as viteBuild} from 'vite';\nimport tsconfigPaths from \"vite-tsconfig-paths\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content/vite\"\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// Define the main function to run the builds\nexport async function build() {\n const resp = await pluginZero()\n if (!resp) {\n throw new Error(\"PluginZero not found\")\n }\n\n const buildDir = path.join(process.cwd(), \".xyd/build\");\n\n {\n // TODO: probably we should have better mechanism - maybe bundle?\n\n const packageJsonPath = path.join(buildDir, 'package.json');\n\n const packageJsonContent = {\n type: \"module\",\n scripts: {},\n dependencies: { // TODO: better\n // \"@xyd-js/content\": \"latest\",\n // \"@xyd-js/components\": \"latest\",\n // \"@xyd-js/framework\": \"latest\",\n // \"@xyd-js/theme-poetry\": \"latest\",\n\n \"@xyd-js/content\": \"workspace:*\",\n \"@xyd-js/components\": \"workspace:*\",\n \"@xyd-js/framework\": \"workspace:*\",\n \"@xyd-js/theme-poetry\": \"workspace:*\",\n\n \"@react-router/node\": \"^7.1.1\",\n \"isbot\": \"^5\"\n },\n devDependencies: {}\n };\n\n // Ensure the build directory exists\n if (!fs.existsSync(buildDir)) {\n fs.mkdirSync(buildDir, {recursive: true});\n }\n\n // Write the package.json file\n fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContent, null, 2), 'utf8');\n\n // Install packages inside buildDir\n // execSync('npm install', {cwd: buildDir, stdio: 'inherit'});\n\n execSync('pnpm i', {cwd: buildDir, stdio: 'inherit'});\n }\n\n try {\n // Build the client-side bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n // Build the SSR bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n build: {\n ssr: true,\n },\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n console.log('Build completed successfully.'); // TODO: better message\n } catch (error) {\n console.error('Build failed:', error); // TODO: better message\n }\n}\n\n","import path from \"node:path\";\nimport {fileURLToPath} from \"node:url\";\nimport {createServer, searchForWorkspaceRoot} from \"vite\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content/vite\";\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nconst port = process.env.XYD_PORT ? parseInt(process.env.XYD_PORT) : 5175;\n\nexport async function dev() {\n const respPluginZero = await pluginZero()\n if (!respPluginZero) {\n throw new Error(\"PluginZero not found\")\n }\n\n const allowCwd = searchForWorkspaceRoot(process.cwd())\n\n const preview = await createServer({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"), // TODO: bundler?\n server: {\n port: port,\n fs: {\n allow: [\n allowCwd,\n process.env.XYD_CLI ? path.join(__dirname, \"../../\") : \"\",\n // path.join(__dirname, \"../node_modules\") // Ensure node_modules from xyd-documan is included\n ]\n }\n },\n build: {\n rollupOptions: {\n // Exclude package `B` from the client-side bundle\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n },\n },\n ssr: {\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n },\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n plugins: [ // TODO: fix plugin ts\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n routes: respPluginZero.routes\n }),\n ...respPluginZero.vitePlugins\n ],\n });\n\n await preview.listen(port);\n\n preview.printUrls();\n preview.bindCLIShortcuts({print: true});\n\n}","import fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport url from \"node:url\";\n\nimport type {ServerBuild} from \"react-router\";\nimport {createRequestHandler} from \"@react-router/express\";\nimport compression from \"compression\";\nimport express from \"express\";\nimport morgan from \"morgan\";\nimport sourceMapSupport from \"source-map-support\";\nimport getPort from \"get-port\";\n\nfunction parseNumber(raw?: string) {\n if (raw === undefined) return undefined;\n let maybe = Number(raw);\n if (Number.isNaN(maybe)) return undefined;\n return maybe;\n}\n\nexport async function serve() {\n process.env.NODE_ENV = process.env.NODE_ENV ?? \"production\";\n\n sourceMapSupport.install({\n retrieveSourceMap: function (source) {\n let match = source.startsWith(\"file://\");\n if (match) {\n let filePath = url.fileURLToPath(source);\n let sourceMapPath = `${filePath}.map`;\n if (fs.existsSync(sourceMapPath)) {\n return {\n url: source,\n map: fs.readFileSync(sourceMapPath, \"utf8\"),\n };\n }\n }\n return null;\n },\n });\n\n let port = parseNumber(process.env.PORT) ?? (await getPort({port: 3000}));\n\n let buildPathArg = path.join(process.cwd(), \".xyd/build/server/index.js\")\n\n if (!buildPathArg) {\n console.error(`\n Usage: react-router-serve <server-build-path> - e.g. react-router-serve build/server/index.js`);\n process.exit(1);\n }\n\n let buildPath = path.resolve(buildPathArg);\n\n let build: ServerBuild = await import(url.pathToFileURL(buildPath).href);\n\n let onListen = () => {\n let address =\n process.env.HOST ||\n Object.values(os.networkInterfaces())\n .flat()\n .find((ip) => String(ip?.family).includes(\"4\") && !ip?.internal)\n ?.address;\n\n if (!address) {\n console.log(`[xyd-serve] http://localhost:${port}`);\n } else {\n console.log(\n `[xyd-serve] http://localhost:${port} (http://${address}:${port})`\n );\n }\n };\n\n build = {\n ...build,\n assetsBuildDirectory: path.join(process.cwd(), \".xyd/build/client\")\n }\n\n let app = express();\n app.disable(\"x-powered-by\");\n app.use(compression());\n app.use(\n path.posix.join(build.publicPath, \"assets\"),\n express.static(path.join(build.assetsBuildDirectory, \"assets\"), {\n immutable: true,\n maxAge: \"1y\",\n })\n );\n app.use(build.publicPath, express.static(build.assetsBuildDirectory));\n app.use(express.static(\"public\", {maxAge: \"1h\"}));\n app.use(morgan(\"tiny\"));\n\n app.all(\n \"*\",\n createRequestHandler({\n build,\n mode: process.env.NODE_ENV,\n })\n );\n\n let server = process.env.HOST\n ? app.listen(port, process.env.HOST, onListen)\n : app.listen(port, onListen);\n\n [\"SIGTERM\", \"SIGINT\"].forEach((signal) => {\n process.once(signal, () => server?.close(console.error));\n });\n}\n","import {dev} from \"../\"\n\n// Execute the dev function\nawait dev();\n\n"],"mappings":";AAAA,OAAO,UAAU;AACjB,OAAO,QAAQ;AACf,SAAQ,qBAAoB;AAG5B,SAAQ,SAAS,iBAAgB;AACjC,OAAO,mBAAmB;AAE1B,SAAQ,mBAAkB;AAE1B,SAAQ,eAAe,6BAA4B;AACnD,SAAQ,kBAAiB;AAEzB,IAAM,aAAa,cAAc,YAAY,GAAG;AAChD,IAAM,YAAY,KAAK,QAAQ,UAAU;;;ACdzC,OAAOA,WAAU;AACjB,SAAQ,iBAAAC,sBAAoB;AAC5B,SAAQ,cAAc,8BAA6B;AAEnD,SAAQ,eAAAC,oBAAkB;AAE1B,SAAQ,eAAeC,8BAA4B;AACnD,SAAQ,cAAAC,mBAAiB;AAEzB,IAAMC,cAAaJ,eAAc,YAAY,GAAG;AAChD,IAAMK,aAAYN,MAAK,QAAQK,WAAU;AAEzC,IAAM,OAAO,QAAQ,IAAI,WAAW,SAAS,QAAQ,IAAI,QAAQ,IAAI;AAErE,eAAsB,MAAM;AACxB,QAAM,iBAAiB,MAAMD,YAAW;AACxC,MAAI,CAAC,gBAAgB;AACjB,UAAM,IAAI,MAAM,sBAAsB;AAAA,EAC1C;AAEA,QAAM,WAAW,uBAAuB,QAAQ,IAAI,CAAC;AAErD,QAAM,UAAU,MAAM,aAAa;AAAA,IAC/B,MAAM,QAAQ,IAAI,UAAUE,aAAY,QAAQ,IAAI,oBAAoBN,MAAK,KAAKM,YAAW,SAAS;AAAA;AAAA,IACtG,QAAQ;AAAA,MACJ;AAAA,MACA,IAAI;AAAA,QACA,OAAO;AAAA,UACH;AAAA,UACA,QAAQ,IAAI,UAAUN,MAAK,KAAKM,YAAW,QAAQ,IAAI;AAAA;AAAA,QAE3D;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,OAAO;AAAA,MACH,eAAe;AAAA;AAAA,QAEX,UAAU,CAAC,mBAAmB,2BAA2B,qBAAqB;AAAA,MAClF;AAAA,IACJ;AAAA,IACA,KAAK;AAAA,MACD,UAAU,CAAC,mBAAmB,2BAA2B,qBAAqB;AAAA,IAClF;AAAA,IACA,cAAc;AAAA,MACV,SAAS,CAAC,mBAAmB;AAAA,IACjC;AAAA,IACA,SAAS;AAAA;AAAA,MACL,GAAIH,uBAAsB;AAAA,QACtB,KAAK;AAAA,UACD,UAAU;AAAA,QACd;AAAA,MACJ,CAAC;AAAA,MACDD,aAAY;AAAA,QACR,QAAQ,eAAe;AAAA,MAC3B,CAAC;AAAA,MACD,GAAG,eAAe;AAAA,IACtB;AAAA,EACJ,CAAC;AAED,QAAM,QAAQ,OAAO,IAAI;AAEzB,UAAQ,UAAU;AAClB,UAAQ,iBAAiB,EAAC,OAAO,KAAI,CAAC;AAE1C;;;AChEA,OAAOK,SAAQ;AACf,OAAO,QAAQ;AACf,OAAOC,WAAU;AACjB,OAAO,SAAS;AAGhB,SAAQ,4BAA2B;AACnC,OAAO,iBAAiB;AACxB,OAAO,aAAa;AACpB,OAAO,YAAY;AACnB,OAAO,sBAAsB;AAC7B,OAAO,aAAa;;;ACRpB,MAAM,IAAI;","names":["path","fileURLToPath","reactRouter","xydContentVitePlugins","pluginZero","__filename","__dirname","fs","path"]}
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import { execSync } from "child_process";
6
6
  import { build as viteBuild } from "vite";
7
7
  import tsconfigPaths from "vite-tsconfig-paths";
8
8
  import { reactRouter } from "@xyd-js/react-router-dev/vite";
9
- import { vitePlugins as xydContentVitePlugins } from "@xyd-js/content";
9
+ import { vitePlugins as xydContentVitePlugins } from "@xyd-js/content/vite";
10
10
  import { pluginZero } from "@xyd-js/plugin-zero";
11
11
  var __filename = fileURLToPath(import.meta.url);
12
12
  var __dirname = path.dirname(__filename);
@@ -23,10 +23,14 @@ async function build() {
23
23
  scripts: {},
24
24
  dependencies: {
25
25
  // TODO: better
26
- "@xyd-js/content": "latest",
27
- "@xyd-js/components": "latest",
28
- "@xyd-js/framework": "latest",
29
- "@xyd-js/theme-poetry": "latest",
26
+ // "@xyd-js/content": "latest",
27
+ // "@xyd-js/components": "latest",
28
+ // "@xyd-js/framework": "latest",
29
+ // "@xyd-js/theme-poetry": "latest",
30
+ "@xyd-js/content": "workspace:*",
31
+ "@xyd-js/components": "workspace:*",
32
+ "@xyd-js/framework": "workspace:*",
33
+ "@xyd-js/theme-poetry": "workspace:*",
30
34
  "@react-router/node": "^7.1.1",
31
35
  "isbot": "^5"
32
36
  },
@@ -36,12 +40,11 @@ async function build() {
36
40
  fs.mkdirSync(buildDir, { recursive: true });
37
41
  }
38
42
  fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContent, null, 2), "utf8");
39
- execSync("npm install", { cwd: buildDir, stdio: "inherit" });
43
+ execSync("pnpm i", { cwd: buildDir, stdio: "inherit" });
40
44
  }
41
45
  try {
42
46
  await viteBuild({
43
47
  root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, "../host"),
44
- // @ts-ignore
45
48
  plugins: [
46
49
  ...xydContentVitePlugins({
47
50
  toc: {
@@ -64,7 +67,6 @@ async function build() {
64
67
  build: {
65
68
  ssr: true
66
69
  },
67
- // @ts-ignore
68
70
  plugins: [
69
71
  ...xydContentVitePlugins({
70
72
  toc: {
@@ -93,22 +95,18 @@ import path2 from "node:path";
93
95
  import { fileURLToPath as fileURLToPath2 } from "node:url";
94
96
  import { createServer, searchForWorkspaceRoot } from "vite";
95
97
  import { reactRouter as reactRouter2 } from "@xyd-js/react-router-dev/vite";
96
- import { vitePlugins as xydContentVitePlugins2 } from "@xyd-js/content";
98
+ import { vitePlugins as xydContentVitePlugins2 } from "@xyd-js/content/vite";
97
99
  import { pluginZero as pluginZero2 } from "@xyd-js/plugin-zero";
98
100
  var __filename2 = fileURLToPath2(import.meta.url);
99
101
  var __dirname2 = path2.dirname(__filename2);
100
102
  var port = process.env.XYD_PORT ? parseInt(process.env.XYD_PORT) : 5175;
101
103
  async function dev() {
102
- const resp = await pluginZero2();
103
- if (!resp) {
104
+ const respPluginZero = await pluginZero2();
105
+ if (!respPluginZero) {
104
106
  throw new Error("PluginZero not found");
105
107
  }
106
108
  const allowCwd = searchForWorkspaceRoot(process.cwd());
107
109
  const preview = await createServer({
108
- // any valid user config options, plus `mode` and `configFile`
109
- // configFile: path.join(__dirname, "../src/vite/empty-config.ts"), // TODO: bundler??
110
- // configFile: path.join(__dirname, "../"), // TODO: bundler??
111
- // root: path.join(__dirname, "../"), // TODO: bundler?
112
110
  root: process.env.XYD_CLI ? __dirname2 : process.env.XYD_DOCUMAN_HOST || path2.join(__dirname2, "../host"),
113
111
  // TODO: bundler?
114
112
  server: {
@@ -129,16 +127,10 @@ async function dev() {
129
127
  },
130
128
  ssr: {
131
129
  external: ["@xyd-js/uniform", "@xyd-js/uniform/content", "@xyd-js/plugin-zero"]
132
- // noExternal: [
133
- // "@xyd-js/uniform",
134
- // "@xyd-js/uniform/content",
135
- // "@xyd-js/plugin-zero"
136
- // ],
137
130
  },
138
131
  optimizeDeps: {
139
132
  include: ["react/jsx-runtime"]
140
133
  },
141
- // @ts-ignore
142
134
  plugins: [
143
135
  // TODO: fix plugin ts
144
136
  ...xydContentVitePlugins2({
@@ -147,9 +139,9 @@ async function dev() {
147
139
  }
148
140
  }),
149
141
  reactRouter2({
150
- routes: resp.routes
142
+ routes: respPluginZero.routes
151
143
  }),
152
- ...resp.vitePlugins
144
+ ...respPluginZero.vitePlugins
153
145
  ]
154
146
  });
155
147
  await preview.listen(port);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/run/build.ts","../src/run/dev.ts","../src/run/serve.ts"],"sourcesContent":["import path from \"node:path\";\nimport fs from \"node:fs\";\nimport {fileURLToPath} from \"node:url\";\nimport {execSync} from 'child_process';\n\nimport {build as viteBuild} from 'vite';\nimport tsconfigPaths from \"vite-tsconfig-paths\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n// import { reactRouter } from \"@react-router/dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content\"\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// Define the main function to run the builds\nexport async function build() {\n const resp = await pluginZero()\n if (!resp) {\n throw new Error(\"PluginZero not found\")\n }\n\n const buildDir = path.join(process.cwd(), \".xyd/build\");\n\n {\n // TODO: probably we should have better mechanism - maybe bundle?\n\n const packageJsonPath = path.join(buildDir, 'package.json');\n\n const packageJsonContent = {\n type: \"module\",\n scripts: {},\n dependencies: { // TODO: better\n \"@xyd-js/content\": \"latest\",\n \"@xyd-js/components\": \"latest\",\n \"@xyd-js/framework\": \"latest\",\n \"@xyd-js/theme-poetry\": \"latest\",\n \"@react-router/node\": \"^7.1.1\",\n \"isbot\": \"^5\"\n },\n devDependencies: {}\n };\n\n // Ensure the build directory exists\n if (!fs.existsSync(buildDir)) {\n fs.mkdirSync(buildDir, {recursive: true});\n }\n\n // Write the package.json file\n fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContent, null, 2), 'utf8');\n\n // Install packages inside buildDir\n execSync('npm install', {cwd: buildDir, stdio: 'inherit'});\n }\n\n try {\n // Build the client-side bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n // @ts-ignore\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n // Build the SSR bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n build: {\n ssr: true,\n },\n // @ts-ignore\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n console.log('Build completed successfully.'); // TODO: better message\n } catch (error) {\n console.error('Build failed:', error); // TODO: better message\n }\n}\n\n","import path from \"node:path\";\nimport {fileURLToPath} from \"node:url\";\nimport {createServer, searchForWorkspaceRoot} from \"vite\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n// import { reactRouter } from \"@react-router/dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content\";\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nconst port = process.env.XYD_PORT ? parseInt(process.env.XYD_PORT) : 5175;\n\nexport async function dev() {\n const resp = await pluginZero()\n if (!resp) {\n throw new Error(\"PluginZero not found\")\n }\n\n const allowCwd = searchForWorkspaceRoot(process.cwd())\n\n const preview = await createServer({\n // any valid user config options, plus `mode` and `configFile`\n // configFile: path.join(__dirname, \"../src/vite/empty-config.ts\"), // TODO: bundler??\n // configFile: path.join(__dirname, \"../\"), // TODO: bundler??\n // root: path.join(__dirname, \"../\"), // TODO: bundler?\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"), // TODO: bundler?\n server: {\n port: port,\n fs: {\n allow: [\n allowCwd,\n process.env.XYD_CLI ? path.join(__dirname, \"../../\") : \"\",\n // path.join(__dirname, \"../node_modules\") // Ensure node_modules from xyd-documan is included\n ]\n }\n },\n build: {\n rollupOptions: {\n // Exclude package `B` from the client-side bundle\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n },\n },\n ssr: {\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n // noExternal: [\n // \"@xyd-js/uniform\",\n // \"@xyd-js/uniform/content\",\n // \"@xyd-js/plugin-zero\"\n // ],\n },\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n // @ts-ignore\n plugins: [ // TODO: fix plugin ts\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n routes: resp.routes\n }),\n ...resp.vitePlugins\n ],\n });\n\n await preview.listen(port);\n\n preview.printUrls();\n preview.bindCLIShortcuts({print: true});\n\n}","import fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport url from \"node:url\";\n\nimport type {ServerBuild} from \"react-router\";\nimport {createRequestHandler} from \"@react-router/express\";\nimport compression from \"compression\";\nimport express from \"express\";\nimport morgan from \"morgan\";\nimport sourceMapSupport from \"source-map-support\";\nimport getPort from \"get-port\";\n\nfunction parseNumber(raw?: string) {\n if (raw === undefined) return undefined;\n let maybe = Number(raw);\n if (Number.isNaN(maybe)) return undefined;\n return maybe;\n}\n\nexport async function serve() {\n process.env.NODE_ENV = process.env.NODE_ENV ?? \"production\";\n\n sourceMapSupport.install({\n retrieveSourceMap: function (source) {\n let match = source.startsWith(\"file://\");\n if (match) {\n let filePath = url.fileURLToPath(source);\n let sourceMapPath = `${filePath}.map`;\n if (fs.existsSync(sourceMapPath)) {\n return {\n url: source,\n map: fs.readFileSync(sourceMapPath, \"utf8\"),\n };\n }\n }\n return null;\n },\n });\n\n let port = parseNumber(process.env.PORT) ?? (await getPort({port: 3000}));\n\n let buildPathArg = path.join(process.cwd(), \".xyd/build/server/index.js\")\n\n if (!buildPathArg) {\n console.error(`\n Usage: react-router-serve <server-build-path> - e.g. react-router-serve build/server/index.js`);\n process.exit(1);\n }\n\n let buildPath = path.resolve(buildPathArg);\n\n let build: ServerBuild = await import(url.pathToFileURL(buildPath).href);\n\n let onListen = () => {\n let address =\n process.env.HOST ||\n Object.values(os.networkInterfaces())\n .flat()\n .find((ip) => String(ip?.family).includes(\"4\") && !ip?.internal)\n ?.address;\n\n if (!address) {\n console.log(`[xyd-serve] http://localhost:${port}`);\n } else {\n console.log(\n `[xyd-serve] http://localhost:${port} (http://${address}:${port})`\n );\n }\n };\n\n build = {\n ...build,\n assetsBuildDirectory: path.join(process.cwd(), \".xyd/build/client\")\n }\n\n let app = express();\n app.disable(\"x-powered-by\");\n app.use(compression());\n app.use(\n path.posix.join(build.publicPath, \"assets\"),\n express.static(path.join(build.assetsBuildDirectory, \"assets\"), {\n immutable: true,\n maxAge: \"1y\",\n })\n );\n app.use(build.publicPath, express.static(build.assetsBuildDirectory));\n app.use(express.static(\"public\", {maxAge: \"1h\"}));\n app.use(morgan(\"tiny\"));\n\n app.all(\n \"*\",\n createRequestHandler({\n build,\n mode: process.env.NODE_ENV,\n })\n );\n\n let server = process.env.HOST\n ? app.listen(port, process.env.HOST, onListen)\n : app.listen(port, onListen);\n\n [\"SIGTERM\", \"SIGINT\"].forEach((signal) => {\n process.once(signal, () => server?.close(console.error));\n });\n}\n"],"mappings":"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","names":["path","fileURLToPath","reactRouter","xydContentVitePlugins","pluginZero","__filename","__dirname","fs","path","port","build"]}
1
+ {"version":3,"sources":["../src/run/build.ts","../src/run/dev.ts","../src/run/serve.ts"],"sourcesContent":["import path from \"node:path\";\nimport fs from \"node:fs\";\nimport {fileURLToPath} from \"node:url\";\nimport {execSync} from 'child_process';\n\nimport {build as viteBuild} from 'vite';\nimport tsconfigPaths from \"vite-tsconfig-paths\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content/vite\"\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// Define the main function to run the builds\nexport async function build() {\n const resp = await pluginZero()\n if (!resp) {\n throw new Error(\"PluginZero not found\")\n }\n\n const buildDir = path.join(process.cwd(), \".xyd/build\");\n\n {\n // TODO: probably we should have better mechanism - maybe bundle?\n\n const packageJsonPath = path.join(buildDir, 'package.json');\n\n const packageJsonContent = {\n type: \"module\",\n scripts: {},\n dependencies: { // TODO: better\n // \"@xyd-js/content\": \"latest\",\n // \"@xyd-js/components\": \"latest\",\n // \"@xyd-js/framework\": \"latest\",\n // \"@xyd-js/theme-poetry\": \"latest\",\n\n \"@xyd-js/content\": \"workspace:*\",\n \"@xyd-js/components\": \"workspace:*\",\n \"@xyd-js/framework\": \"workspace:*\",\n \"@xyd-js/theme-poetry\": \"workspace:*\",\n\n \"@react-router/node\": \"^7.1.1\",\n \"isbot\": \"^5\"\n },\n devDependencies: {}\n };\n\n // Ensure the build directory exists\n if (!fs.existsSync(buildDir)) {\n fs.mkdirSync(buildDir, {recursive: true});\n }\n\n // Write the package.json file\n fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContent, null, 2), 'utf8');\n\n // Install packages inside buildDir\n // execSync('npm install', {cwd: buildDir, stdio: 'inherit'});\n\n execSync('pnpm i', {cwd: buildDir, stdio: 'inherit'});\n }\n\n try {\n // Build the client-side bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n // Build the SSR bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n build: {\n ssr: true,\n },\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n console.log('Build completed successfully.'); // TODO: better message\n } catch (error) {\n console.error('Build failed:', error); // TODO: better message\n }\n}\n\n","import path from \"node:path\";\nimport {fileURLToPath} from \"node:url\";\nimport {createServer, searchForWorkspaceRoot} from \"vite\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content/vite\";\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nconst port = process.env.XYD_PORT ? parseInt(process.env.XYD_PORT) : 5175;\n\nexport async function dev() {\n const respPluginZero = await pluginZero()\n if (!respPluginZero) {\n throw new Error(\"PluginZero not found\")\n }\n\n const allowCwd = searchForWorkspaceRoot(process.cwd())\n\n const preview = await createServer({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"), // TODO: bundler?\n server: {\n port: port,\n fs: {\n allow: [\n allowCwd,\n process.env.XYD_CLI ? path.join(__dirname, \"../../\") : \"\",\n // path.join(__dirname, \"../node_modules\") // Ensure node_modules from xyd-documan is included\n ]\n }\n },\n build: {\n rollupOptions: {\n // Exclude package `B` from the client-side bundle\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n },\n },\n ssr: {\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n },\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n plugins: [ // TODO: fix plugin ts\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n routes: respPluginZero.routes\n }),\n ...respPluginZero.vitePlugins\n ],\n });\n\n await preview.listen(port);\n\n preview.printUrls();\n preview.bindCLIShortcuts({print: true});\n\n}","import fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport url from \"node:url\";\n\nimport type {ServerBuild} from \"react-router\";\nimport {createRequestHandler} from \"@react-router/express\";\nimport compression from \"compression\";\nimport express from \"express\";\nimport morgan from \"morgan\";\nimport sourceMapSupport from \"source-map-support\";\nimport getPort from \"get-port\";\n\nfunction parseNumber(raw?: string) {\n if (raw === undefined) return undefined;\n let maybe = Number(raw);\n if (Number.isNaN(maybe)) return undefined;\n return maybe;\n}\n\nexport async function serve() {\n process.env.NODE_ENV = process.env.NODE_ENV ?? \"production\";\n\n sourceMapSupport.install({\n retrieveSourceMap: function (source) {\n let match = source.startsWith(\"file://\");\n if (match) {\n let filePath = url.fileURLToPath(source);\n let sourceMapPath = `${filePath}.map`;\n if (fs.existsSync(sourceMapPath)) {\n return {\n url: source,\n map: fs.readFileSync(sourceMapPath, \"utf8\"),\n };\n }\n }\n return null;\n },\n });\n\n let port = parseNumber(process.env.PORT) ?? (await getPort({port: 3000}));\n\n let buildPathArg = path.join(process.cwd(), \".xyd/build/server/index.js\")\n\n if (!buildPathArg) {\n console.error(`\n Usage: react-router-serve <server-build-path> - e.g. react-router-serve build/server/index.js`);\n process.exit(1);\n }\n\n let buildPath = path.resolve(buildPathArg);\n\n let build: ServerBuild = await import(url.pathToFileURL(buildPath).href);\n\n let onListen = () => {\n let address =\n process.env.HOST ||\n Object.values(os.networkInterfaces())\n .flat()\n .find((ip) => String(ip?.family).includes(\"4\") && !ip?.internal)\n ?.address;\n\n if (!address) {\n console.log(`[xyd-serve] http://localhost:${port}`);\n } else {\n console.log(\n `[xyd-serve] http://localhost:${port} (http://${address}:${port})`\n );\n }\n };\n\n build = {\n ...build,\n assetsBuildDirectory: path.join(process.cwd(), \".xyd/build/client\")\n }\n\n let app = express();\n app.disable(\"x-powered-by\");\n app.use(compression());\n app.use(\n path.posix.join(build.publicPath, \"assets\"),\n express.static(path.join(build.assetsBuildDirectory, \"assets\"), {\n immutable: true,\n maxAge: \"1y\",\n })\n );\n app.use(build.publicPath, express.static(build.assetsBuildDirectory));\n app.use(express.static(\"public\", {maxAge: \"1h\"}));\n app.use(morgan(\"tiny\"));\n\n app.all(\n \"*\",\n createRequestHandler({\n build,\n mode: process.env.NODE_ENV,\n })\n );\n\n let server = process.env.HOST\n ? app.listen(port, process.env.HOST, onListen)\n : app.listen(port, onListen);\n\n [\"SIGTERM\", \"SIGINT\"].forEach((signal) => {\n process.once(signal, () => server?.close(console.error));\n });\n}\n"],"mappings":"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","names":["path","fileURLToPath","reactRouter","xydContentVitePlugins","pluginZero","__filename","__dirname","fs","path","port","build"]}
package/dist/serve.js CHANGED
@@ -5,7 +5,7 @@ import { fileURLToPath } from "node:url";
5
5
  import { build as viteBuild } from "vite";
6
6
  import tsconfigPaths from "vite-tsconfig-paths";
7
7
  import { reactRouter } from "@xyd-js/react-router-dev/vite";
8
- import { vitePlugins as xydContentVitePlugins } from "@xyd-js/content";
8
+ import { vitePlugins as xydContentVitePlugins } from "@xyd-js/content/vite";
9
9
  import { pluginZero } from "@xyd-js/plugin-zero";
10
10
  var __filename = fileURLToPath(import.meta.url);
11
11
  var __dirname = path.dirname(__filename);
@@ -15,7 +15,7 @@ import path2 from "node:path";
15
15
  import { fileURLToPath as fileURLToPath2 } from "node:url";
16
16
  import { createServer, searchForWorkspaceRoot } from "vite";
17
17
  import { reactRouter as reactRouter2 } from "@xyd-js/react-router-dev/vite";
18
- import { vitePlugins as xydContentVitePlugins2 } from "@xyd-js/content";
18
+ import { vitePlugins as xydContentVitePlugins2 } from "@xyd-js/content/vite";
19
19
  import { pluginZero as pluginZero2 } from "@xyd-js/plugin-zero";
20
20
  var __filename2 = fileURLToPath2(import.meta.url);
21
21
  var __dirname2 = path2.dirname(__filename2);
package/dist/serve.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/run/build.ts","../src/run/dev.ts","../src/run/serve.ts","../src/commands/serve.ts"],"sourcesContent":["import path from \"node:path\";\nimport fs from \"node:fs\";\nimport {fileURLToPath} from \"node:url\";\nimport {execSync} from 'child_process';\n\nimport {build as viteBuild} from 'vite';\nimport tsconfigPaths from \"vite-tsconfig-paths\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n// import { reactRouter } from \"@react-router/dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content\"\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// Define the main function to run the builds\nexport async function build() {\n const resp = await pluginZero()\n if (!resp) {\n throw new Error(\"PluginZero not found\")\n }\n\n const buildDir = path.join(process.cwd(), \".xyd/build\");\n\n {\n // TODO: probably we should have better mechanism - maybe bundle?\n\n const packageJsonPath = path.join(buildDir, 'package.json');\n\n const packageJsonContent = {\n type: \"module\",\n scripts: {},\n dependencies: { // TODO: better\n \"@xyd-js/content\": \"latest\",\n \"@xyd-js/components\": \"latest\",\n \"@xyd-js/framework\": \"latest\",\n \"@xyd-js/theme-poetry\": \"latest\",\n \"@react-router/node\": \"^7.1.1\",\n \"isbot\": \"^5\"\n },\n devDependencies: {}\n };\n\n // Ensure the build directory exists\n if (!fs.existsSync(buildDir)) {\n fs.mkdirSync(buildDir, {recursive: true});\n }\n\n // Write the package.json file\n fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContent, null, 2), 'utf8');\n\n // Install packages inside buildDir\n execSync('npm install', {cwd: buildDir, stdio: 'inherit'});\n }\n\n try {\n // Build the client-side bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n // @ts-ignore\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n // Build the SSR bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n build: {\n ssr: true,\n },\n // @ts-ignore\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n console.log('Build completed successfully.'); // TODO: better message\n } catch (error) {\n console.error('Build failed:', error); // TODO: better message\n }\n}\n\n","import path from \"node:path\";\nimport {fileURLToPath} from \"node:url\";\nimport {createServer, searchForWorkspaceRoot} from \"vite\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n// import { reactRouter } from \"@react-router/dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content\";\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nconst port = process.env.XYD_PORT ? parseInt(process.env.XYD_PORT) : 5175;\n\nexport async function dev() {\n const resp = await pluginZero()\n if (!resp) {\n throw new Error(\"PluginZero not found\")\n }\n\n const allowCwd = searchForWorkspaceRoot(process.cwd())\n\n const preview = await createServer({\n // any valid user config options, plus `mode` and `configFile`\n // configFile: path.join(__dirname, \"../src/vite/empty-config.ts\"), // TODO: bundler??\n // configFile: path.join(__dirname, \"../\"), // TODO: bundler??\n // root: path.join(__dirname, \"../\"), // TODO: bundler?\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"), // TODO: bundler?\n server: {\n port: port,\n fs: {\n allow: [\n allowCwd,\n process.env.XYD_CLI ? path.join(__dirname, \"../../\") : \"\",\n // path.join(__dirname, \"../node_modules\") // Ensure node_modules from xyd-documan is included\n ]\n }\n },\n build: {\n rollupOptions: {\n // Exclude package `B` from the client-side bundle\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n },\n },\n ssr: {\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n // noExternal: [\n // \"@xyd-js/uniform\",\n // \"@xyd-js/uniform/content\",\n // \"@xyd-js/plugin-zero\"\n // ],\n },\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n // @ts-ignore\n plugins: [ // TODO: fix plugin ts\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n routes: resp.routes\n }),\n ...resp.vitePlugins\n ],\n });\n\n await preview.listen(port);\n\n preview.printUrls();\n preview.bindCLIShortcuts({print: true});\n\n}","import fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport url from \"node:url\";\n\nimport type {ServerBuild} from \"react-router\";\nimport {createRequestHandler} from \"@react-router/express\";\nimport compression from \"compression\";\nimport express from \"express\";\nimport morgan from \"morgan\";\nimport sourceMapSupport from \"source-map-support\";\nimport getPort from \"get-port\";\n\nfunction parseNumber(raw?: string) {\n if (raw === undefined) return undefined;\n let maybe = Number(raw);\n if (Number.isNaN(maybe)) return undefined;\n return maybe;\n}\n\nexport async function serve() {\n process.env.NODE_ENV = process.env.NODE_ENV ?? \"production\";\n\n sourceMapSupport.install({\n retrieveSourceMap: function (source) {\n let match = source.startsWith(\"file://\");\n if (match) {\n let filePath = url.fileURLToPath(source);\n let sourceMapPath = `${filePath}.map`;\n if (fs.existsSync(sourceMapPath)) {\n return {\n url: source,\n map: fs.readFileSync(sourceMapPath, \"utf8\"),\n };\n }\n }\n return null;\n },\n });\n\n let port = parseNumber(process.env.PORT) ?? (await getPort({port: 3000}));\n\n let buildPathArg = path.join(process.cwd(), \".xyd/build/server/index.js\")\n\n if (!buildPathArg) {\n console.error(`\n Usage: react-router-serve <server-build-path> - e.g. react-router-serve build/server/index.js`);\n process.exit(1);\n }\n\n let buildPath = path.resolve(buildPathArg);\n\n let build: ServerBuild = await import(url.pathToFileURL(buildPath).href);\n\n let onListen = () => {\n let address =\n process.env.HOST ||\n Object.values(os.networkInterfaces())\n .flat()\n .find((ip) => String(ip?.family).includes(\"4\") && !ip?.internal)\n ?.address;\n\n if (!address) {\n console.log(`[xyd-serve] http://localhost:${port}`);\n } else {\n console.log(\n `[xyd-serve] http://localhost:${port} (http://${address}:${port})`\n );\n }\n };\n\n build = {\n ...build,\n assetsBuildDirectory: path.join(process.cwd(), \".xyd/build/client\")\n }\n\n let app = express();\n app.disable(\"x-powered-by\");\n app.use(compression());\n app.use(\n path.posix.join(build.publicPath, \"assets\"),\n express.static(path.join(build.assetsBuildDirectory, \"assets\"), {\n immutable: true,\n maxAge: \"1y\",\n })\n );\n app.use(build.publicPath, express.static(build.assetsBuildDirectory));\n app.use(express.static(\"public\", {maxAge: \"1h\"}));\n app.use(morgan(\"tiny\"));\n\n app.all(\n \"*\",\n createRequestHandler({\n build,\n mode: process.env.NODE_ENV,\n })\n );\n\n let server = process.env.HOST\n ? app.listen(port, process.env.HOST, onListen)\n : app.listen(port, onListen);\n\n [\"SIGTERM\", \"SIGINT\"].forEach((signal) => {\n process.once(signal, () => server?.close(console.error));\n });\n}\n","import {serve} from \"../\"\n\n// Execute the serve function\nawait serve();\n\n"],"mappings":"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","names":["path","fileURLToPath","reactRouter","xydContentVitePlugins","pluginZero","__filename","__dirname","fs","path","port","build"]}
1
+ {"version":3,"sources":["../src/run/build.ts","../src/run/dev.ts","../src/run/serve.ts","../src/commands/serve.ts"],"sourcesContent":["import path from \"node:path\";\nimport fs from \"node:fs\";\nimport {fileURLToPath} from \"node:url\";\nimport {execSync} from 'child_process';\n\nimport {build as viteBuild} from 'vite';\nimport tsconfigPaths from \"vite-tsconfig-paths\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content/vite\"\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// Define the main function to run the builds\nexport async function build() {\n const resp = await pluginZero()\n if (!resp) {\n throw new Error(\"PluginZero not found\")\n }\n\n const buildDir = path.join(process.cwd(), \".xyd/build\");\n\n {\n // TODO: probably we should have better mechanism - maybe bundle?\n\n const packageJsonPath = path.join(buildDir, 'package.json');\n\n const packageJsonContent = {\n type: \"module\",\n scripts: {},\n dependencies: { // TODO: better\n // \"@xyd-js/content\": \"latest\",\n // \"@xyd-js/components\": \"latest\",\n // \"@xyd-js/framework\": \"latest\",\n // \"@xyd-js/theme-poetry\": \"latest\",\n\n \"@xyd-js/content\": \"workspace:*\",\n \"@xyd-js/components\": \"workspace:*\",\n \"@xyd-js/framework\": \"workspace:*\",\n \"@xyd-js/theme-poetry\": \"workspace:*\",\n\n \"@react-router/node\": \"^7.1.1\",\n \"isbot\": \"^5\"\n },\n devDependencies: {}\n };\n\n // Ensure the build directory exists\n if (!fs.existsSync(buildDir)) {\n fs.mkdirSync(buildDir, {recursive: true});\n }\n\n // Write the package.json file\n fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContent, null, 2), 'utf8');\n\n // Install packages inside buildDir\n // execSync('npm install', {cwd: buildDir, stdio: 'inherit'});\n\n execSync('pnpm i', {cwd: buildDir, stdio: 'inherit'});\n }\n\n try {\n // Build the client-side bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n // Build the SSR bundle\n await viteBuild({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"),\n build: {\n ssr: true,\n },\n plugins: [\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n outDir: buildDir,\n routes: resp.routes\n }),\n tsconfigPaths(),\n ...resp.vitePlugins\n ],\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n });\n\n console.log('Build completed successfully.'); // TODO: better message\n } catch (error) {\n console.error('Build failed:', error); // TODO: better message\n }\n}\n\n","import path from \"node:path\";\nimport {fileURLToPath} from \"node:url\";\nimport {createServer, searchForWorkspaceRoot} from \"vite\";\n\nimport {reactRouter} from \"@xyd-js/react-router-dev/vite\";\n\nimport {vitePlugins as xydContentVitePlugins} from \"@xyd-js/content/vite\";\nimport {pluginZero} from \"@xyd-js/plugin-zero\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nconst port = process.env.XYD_PORT ? parseInt(process.env.XYD_PORT) : 5175;\n\nexport async function dev() {\n const respPluginZero = await pluginZero()\n if (!respPluginZero) {\n throw new Error(\"PluginZero not found\")\n }\n\n const allowCwd = searchForWorkspaceRoot(process.cwd())\n\n const preview = await createServer({\n root: process.env.XYD_CLI ? __dirname : process.env.XYD_DOCUMAN_HOST || path.join(__dirname, \"../host\"), // TODO: bundler?\n server: {\n port: port,\n fs: {\n allow: [\n allowCwd,\n process.env.XYD_CLI ? path.join(__dirname, \"../../\") : \"\",\n // path.join(__dirname, \"../node_modules\") // Ensure node_modules from xyd-documan is included\n ]\n }\n },\n build: {\n rollupOptions: {\n // Exclude package `B` from the client-side bundle\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n },\n },\n ssr: {\n external: [\"@xyd-js/uniform\", \"@xyd-js/uniform/content\", \"@xyd-js/plugin-zero\"],\n },\n optimizeDeps: {\n include: [\"react/jsx-runtime\"],\n },\n plugins: [ // TODO: fix plugin ts\n ...(xydContentVitePlugins({\n toc: {\n minDepth: 2,\n }\n }) as Plugin[]),\n reactRouter({\n routes: respPluginZero.routes\n }),\n ...respPluginZero.vitePlugins\n ],\n });\n\n await preview.listen(port);\n\n preview.printUrls();\n preview.bindCLIShortcuts({print: true});\n\n}","import fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport url from \"node:url\";\n\nimport type {ServerBuild} from \"react-router\";\nimport {createRequestHandler} from \"@react-router/express\";\nimport compression from \"compression\";\nimport express from \"express\";\nimport morgan from \"morgan\";\nimport sourceMapSupport from \"source-map-support\";\nimport getPort from \"get-port\";\n\nfunction parseNumber(raw?: string) {\n if (raw === undefined) return undefined;\n let maybe = Number(raw);\n if (Number.isNaN(maybe)) return undefined;\n return maybe;\n}\n\nexport async function serve() {\n process.env.NODE_ENV = process.env.NODE_ENV ?? \"production\";\n\n sourceMapSupport.install({\n retrieveSourceMap: function (source) {\n let match = source.startsWith(\"file://\");\n if (match) {\n let filePath = url.fileURLToPath(source);\n let sourceMapPath = `${filePath}.map`;\n if (fs.existsSync(sourceMapPath)) {\n return {\n url: source,\n map: fs.readFileSync(sourceMapPath, \"utf8\"),\n };\n }\n }\n return null;\n },\n });\n\n let port = parseNumber(process.env.PORT) ?? (await getPort({port: 3000}));\n\n let buildPathArg = path.join(process.cwd(), \".xyd/build/server/index.js\")\n\n if (!buildPathArg) {\n console.error(`\n Usage: react-router-serve <server-build-path> - e.g. react-router-serve build/server/index.js`);\n process.exit(1);\n }\n\n let buildPath = path.resolve(buildPathArg);\n\n let build: ServerBuild = await import(url.pathToFileURL(buildPath).href);\n\n let onListen = () => {\n let address =\n process.env.HOST ||\n Object.values(os.networkInterfaces())\n .flat()\n .find((ip) => String(ip?.family).includes(\"4\") && !ip?.internal)\n ?.address;\n\n if (!address) {\n console.log(`[xyd-serve] http://localhost:${port}`);\n } else {\n console.log(\n `[xyd-serve] http://localhost:${port} (http://${address}:${port})`\n );\n }\n };\n\n build = {\n ...build,\n assetsBuildDirectory: path.join(process.cwd(), \".xyd/build/client\")\n }\n\n let app = express();\n app.disable(\"x-powered-by\");\n app.use(compression());\n app.use(\n path.posix.join(build.publicPath, \"assets\"),\n express.static(path.join(build.assetsBuildDirectory, \"assets\"), {\n immutable: true,\n maxAge: \"1y\",\n })\n );\n app.use(build.publicPath, express.static(build.assetsBuildDirectory));\n app.use(express.static(\"public\", {maxAge: \"1h\"}));\n app.use(morgan(\"tiny\"));\n\n app.all(\n \"*\",\n createRequestHandler({\n build,\n mode: process.env.NODE_ENV,\n })\n );\n\n let server = process.env.HOST\n ? app.listen(port, process.env.HOST, onListen)\n : app.listen(port, onListen);\n\n [\"SIGTERM\", \"SIGINT\"].forEach((signal) => {\n process.once(signal, () => server?.close(console.error));\n });\n}\n","import {serve} from \"../\"\n\n// Execute the serve function\nawait serve();\n\n"],"mappings":"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","names":["path","fileURLToPath","reactRouter","xydContentVitePlugins","pluginZero","__filename","__dirname","fs","path","port","build"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyd-js/documan",
3
- "version": "0.1.0-xyd.16",
3
+ "version": "0.1.0-xyd.18",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",
@@ -26,8 +26,8 @@
26
26
  "isbot": "^5.1.17",
27
27
  "lightningcss": "^1.27.0",
28
28
  "morgan": "^1.10.0",
29
- "react": "^18.3.1",
30
- "react-dom": "^18.3.1",
29
+ "react": "^19.0.0",
30
+ "react-dom": "^19.0.0",
31
31
  "react-router": "^7.1.1",
32
32
  "remark-frontmatter": "^5.0.0",
33
33
  "remark-gfm": "^4.0.0",
@@ -36,14 +36,14 @@
36
36
  "typescript": "^5.6.3",
37
37
  "vfile": "^6.0.3",
38
38
  "yaml": "^2.6.0",
39
- "@xyd-js/plugin-zero": "0.1.0-xyd.10",
40
- "@xyd-js/content": "0.1.0-xyd.4"
39
+ "@xyd-js/content": "0.1.0-xyd.5",
40
+ "@xyd-js/plugin-zero": "0.1.0-xyd.12"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@mdx-js/rollup": "^3.1.0",
44
44
  "@types/node": "^22.7.5",
45
- "@types/react": "^18.3.9",
46
- "@types/react-dom": "^18.3.1",
45
+ "@types/react": "^19.0.0",
46
+ "@types/react-dom": "^19.0.0",
47
47
  "@vitejs/plugin-react": "^4.3.2",
48
48
  "autoprefixer": "^10.4.20",
49
49
  "postcss": "^8.4.47",