rspress-anatole 0.0.1

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/bin/rspress.js ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ import nodeModule from 'node:module';
3
+
4
+ // enable on-disk code caching of all modules loaded by Node.js
5
+ // requires Nodejs >= 22.8.0
6
+ const { enableCompileCache } = nodeModule;
7
+ if (enableCompileCache) {
8
+ try {
9
+ enableCompileCache();
10
+ } catch {
11
+ // ignore errors
12
+ }
13
+ }
14
+
15
+ import('../dist/index.js');
package/config.ts ADDED
@@ -0,0 +1,7 @@
1
+ import type { UserConfig } from '@rspress/core';
2
+
3
+ export function defineConfig(config: UserConfig): UserConfig {
4
+ return config;
5
+ }
6
+
7
+ export type { UserConfig };
@@ -0,0 +1 @@
1
+ export { }
package/dist/index.js ADDED
@@ -0,0 +1,190 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__ from "node:path";
2
+ import * as __WEBPACK_EXTERNAL_MODULE__rspress_core_1b2e46ce__ from "@rspress/core";
3
+ import * as __WEBPACK_EXTERNAL_MODULE__rspress_shared_logger_4374e44a__ from "@rspress/shared/logger";
4
+ import * as __WEBPACK_EXTERNAL_MODULE_cac__ from "cac";
5
+ import * as __WEBPACK_EXTERNAL_MODULE_chokidar__ from "chokidar";
6
+ import * as __WEBPACK_EXTERNAL_MODULE_picocolors__ from "picocolors";
7
+ import * as __WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__ from "node:fs";
8
+ import * as __WEBPACK_EXTERNAL_MODULE__rspress_shared_constants_70084e62__ from "@rspress/shared/constants";
9
+ import * as __WEBPACK_EXTERNAL_MODULE_node_child_process_27f17141__ from "node:child_process";
10
+ import * as __WEBPACK_EXTERNAL_MODULE_node_fs_promises_153e37e0__ from "node:fs/promises";
11
+ var package_namespaceObject = {
12
+ i8: "1.43.8"
13
+ };
14
+ const findConfig = (basePath)=>__WEBPACK_EXTERNAL_MODULE__rspress_shared_constants_70084e62__.DEFAULT_CONFIG_EXTENSIONS.map((ext)=>basePath + ext).find(__WEBPACK_EXTERNAL_MODULE_node_fs_5ea92f0c__["default"].existsSync);
15
+ async function loadConfigFile(customConfigFile) {
16
+ const baseDir = process.cwd();
17
+ let configFilePath = '';
18
+ configFilePath = customConfigFile ? __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].isAbsolute(customConfigFile) ? customConfigFile : __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(baseDir, customConfigFile) : findConfig(__WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(baseDir, __WEBPACK_EXTERNAL_MODULE__rspress_shared_constants_70084e62__.DEFAULT_CONFIG_NAME));
19
+ if (!configFilePath) {
20
+ __WEBPACK_EXTERNAL_MODULE__rspress_shared_logger_4374e44a__.logger.info(`No config file found in ${baseDir}`);
21
+ return {};
22
+ }
23
+ const { loadConfig } = await import("@rsbuild/core");
24
+ const { content } = await loadConfig({
25
+ cwd: __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].dirname(configFilePath),
26
+ path: configFilePath
27
+ });
28
+ return content;
29
+ }
30
+ function resolveDocRoot(cwd, cliRoot, configRoot) {
31
+ if (cliRoot) return __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(cwd, cliRoot);
32
+ if (configRoot) return __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].isAbsolute(configRoot) ? configRoot : __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(cwd, configRoot);
33
+ return __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(cwd, 'docs');
34
+ }
35
+ async function pathExists(path) {
36
+ try {
37
+ await __WEBPACK_EXTERNAL_MODULE_node_fs_promises_153e37e0__["default"].access(path);
38
+ return true;
39
+ } catch {
40
+ return false;
41
+ }
42
+ }
43
+ const lockfileMap = {
44
+ 'package-lock.json': 'npm',
45
+ 'yarn.lock': 'yarn',
46
+ 'pnpm-lock.yaml': 'pnpm',
47
+ 'bun.lockb': 'bun'
48
+ };
49
+ async function getPackageManager(rootPath) {
50
+ let packageManager = 'npm';
51
+ for (const file of Object.keys(lockfileMap))if (await pathExists(__WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(rootPath, file))) {
52
+ packageManager = lockfileMap[file];
53
+ break;
54
+ }
55
+ return packageManager;
56
+ }
57
+ async function getRspressDependencies(rootPath) {
58
+ const packageJson = JSON.parse(await __WEBPACK_EXTERNAL_MODULE_node_fs_promises_153e37e0__["default"].readFile(__WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].join(rootPath, 'package.json'), {
59
+ encoding: 'utf-8'
60
+ }));
61
+ const dependencies = packageJson?.dependencies ? Object.keys(packageJson.dependencies) : [];
62
+ const devDependencies = packageJson?.devDependencies ? Object.keys(packageJson.devDependencies) : [];
63
+ return dependencies.concat(devDependencies).filter((item)=>item.startsWith('@rspress') || item.startsWith('rspress'));
64
+ }
65
+ async function update() {
66
+ const cwd = process.cwd();
67
+ const packageManager = await getPackageManager(cwd);
68
+ const rspressDependencies = await getRspressDependencies(cwd);
69
+ __WEBPACK_EXTERNAL_MODULE__rspress_shared_logger_4374e44a__.logger.greet(`Using ${packageManager} to update ${rspressDependencies.join(' ')}`);
70
+ if ('npm' === packageManager || 'bun' === packageManager) {
71
+ const dependencies = rspressDependencies.map((item)=>`${item}@latest`);
72
+ (0, __WEBPACK_EXTERNAL_MODULE_node_child_process_27f17141__.spawn)(packageManager, [
73
+ 'install',
74
+ '--save',
75
+ ...dependencies
76
+ ], {
77
+ stdio: 'inherit'
78
+ });
79
+ } else {
80
+ const subCommand = 'yarn' === packageManager ? 'upgrade' : 'update';
81
+ (0, __WEBPACK_EXTERNAL_MODULE_node_child_process_27f17141__.spawn)(packageManager, [
82
+ subCommand,
83
+ '--latest',
84
+ ...rspressDependencies
85
+ ], {
86
+ stdio: 'inherit'
87
+ });
88
+ }
89
+ }
90
+ const CONFIG_FILES = [
91
+ 'rspress.config.ts',
92
+ 'rspress.config.js',
93
+ 'i18n.json'
94
+ ];
95
+ const META_FILE = '_meta.json';
96
+ const cli = (0, __WEBPACK_EXTERNAL_MODULE_cac__.cac)('rspress').version(package_namespaceObject.i8).help();
97
+ const landingMessage = `🔥 Rspress v${package_namespaceObject.i8}\n`;
98
+ __WEBPACK_EXTERNAL_MODULE__rspress_shared_logger_4374e44a__.logger.greet(landingMessage);
99
+ const setNodeEnv = (env)=>{
100
+ process.env.NODE_ENV = env;
101
+ };
102
+ cli.option('-c,--config [config]', 'Specify the path to the config file');
103
+ cli.command('[root]', 'start dev server').alias('dev').option('--port [port]', 'port number').option('--host [host]', 'hostname').action(async (root, options)=>{
104
+ setNodeEnv('development');
105
+ let isRestarting = false;
106
+ const cwd = process.cwd();
107
+ let cliWatcher;
108
+ let devServer;
109
+ const startDevServer = async ()=>{
110
+ const { port, host } = options || {};
111
+ const config = await loadConfigFile(options?.config);
112
+ config.root = resolveDocRoot(cwd, root, config.root);
113
+ const docDirectory = config.root;
114
+ devServer = await (0, __WEBPACK_EXTERNAL_MODULE__rspress_core_1b2e46ce__.dev)({
115
+ appDirectory: cwd,
116
+ docDirectory,
117
+ config,
118
+ extraBuilderConfig: {
119
+ server: {
120
+ port,
121
+ host
122
+ }
123
+ }
124
+ });
125
+ cliWatcher = __WEBPACK_EXTERNAL_MODULE_chokidar__["default"].watch([
126
+ `${cwd}/**/{${CONFIG_FILES.join(',')}}`,
127
+ docDirectory
128
+ ], {
129
+ ignoreInitial: true,
130
+ ignored: [
131
+ '**/node_modules/**',
132
+ '**/.git/**',
133
+ '**/.DS_Store/**'
134
+ ]
135
+ });
136
+ cliWatcher.on('all', async (eventName, filepath)=>{
137
+ if ('add' === eventName || 'unlink' === eventName || 'change' === eventName && (CONFIG_FILES.includes(__WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].basename(filepath)) || __WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].basename(filepath) === META_FILE)) {
138
+ if (isRestarting) return;
139
+ isRestarting = true;
140
+ console.log(`\n✨ ${eventName} ${__WEBPACK_EXTERNAL_MODULE_picocolors__["default"].green(__WEBPACK_EXTERNAL_MODULE_node_path_c5b9b54f__["default"].relative(cwd, filepath))}, dev server will restart...\n`);
141
+ await devServer.close();
142
+ await cliWatcher.close();
143
+ await startDevServer();
144
+ isRestarting = false;
145
+ }
146
+ });
147
+ };
148
+ await startDevServer();
149
+ const exitProcess = async ()=>{
150
+ try {
151
+ await devServer.close();
152
+ await cliWatcher.close();
153
+ } finally{
154
+ process.exit(0);
155
+ }
156
+ };
157
+ process.on('SIGINT', exitProcess);
158
+ process.on('SIGTERM', exitProcess);
159
+ });
160
+ cli.command('build [root]').action(async (root, options)=>{
161
+ setNodeEnv('production');
162
+ const cwd = process.cwd();
163
+ const config = await loadConfigFile(options.config);
164
+ config.root = resolveDocRoot(cwd, root, config.root);
165
+ const docDirectory = config.root;
166
+ try {
167
+ await (0, __WEBPACK_EXTERNAL_MODULE__rspress_core_1b2e46ce__.build)({
168
+ appDirectory: cwd,
169
+ docDirectory,
170
+ config
171
+ });
172
+ } catch (err) {
173
+ __WEBPACK_EXTERNAL_MODULE__rspress_shared_logger_4374e44a__.logger.error(err);
174
+ process.exit(1);
175
+ }
176
+ });
177
+ cli.command('preview [root]').alias('serve').option('--port [port]', 'port number').option('--host [host]', 'hostname').action(async (root, options)=>{
178
+ setNodeEnv('production');
179
+ const cwd = process.cwd();
180
+ const { port, host } = options || {};
181
+ const config = await loadConfigFile(options?.config);
182
+ config.root = resolveDocRoot(cwd, root, config.root);
183
+ await (0, __WEBPACK_EXTERNAL_MODULE__rspress_core_1b2e46ce__.serve)({
184
+ config,
185
+ host,
186
+ port
187
+ });
188
+ });
189
+ cli.command('update', 'update relevant packages about rspress').action(update);
190
+ cli.parse();
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "rspress-anatole",
3
+ "version": "0.0.1",
4
+ "license": "MIT",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "default": "./dist/index.js"
9
+ },
10
+ "./runtime": {
11
+ "default": "./runtime.ts"
12
+ },
13
+ "./theme": {
14
+ "default": "./theme.ts"
15
+ },
16
+ "./config": {
17
+ "default": "./config.ts"
18
+ }
19
+ },
20
+ "main": "./dist/index.js",
21
+ "module": "./dist/index.js",
22
+ "types": "./dist/index.d.ts",
23
+ "bin": {
24
+ "rspress": "./bin/rspress.js"
25
+ },
26
+ "files": [
27
+ "bin",
28
+ "dist",
29
+ "runtime.ts",
30
+ "theme.ts",
31
+ "config.ts"
32
+ ],
33
+ "dependencies": {
34
+ "@rsbuild/core": "1.2.3",
35
+ "cac": "^6.7.14",
36
+ "chokidar": "^3.6.0",
37
+ "picocolors": "^1.1.1",
38
+ "@rspress-theme-anatole/core": "0.0.1",
39
+ "@rspress-theme-anatole/shared": "0.1.19"
40
+ },
41
+ "devDependencies": {
42
+ "@microsoft/api-extractor": "^7.49.2",
43
+ "@rslib/core": "0.5.2",
44
+ "@types/jest": "~29.5.14",
45
+ "@types/node": "^18.11.17",
46
+ "@types/react": "^18.3.18",
47
+ "rimraf": "^3.0.2",
48
+ "typescript": "^5.5.3"
49
+ },
50
+ "publishConfig": {
51
+ "access": "public"
52
+ },
53
+ "scripts": {
54
+ "build": "rslib build",
55
+ "dev": "rslib build -w",
56
+ "reset": "rimraf ./**/node_modules"
57
+ }
58
+ }
package/runtime.ts ADDED
@@ -0,0 +1 @@
1
+ export * from '@rspress/core/runtime';
package/theme.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from '@rspress/core/theme';
2
+ export { default } from '@rspress/core/theme';