@sveltepress/create 0.42.2 → 0.42.3
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.cjs +224 -0
- package/dist/index.d.cts +2 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.mjs +212 -0
- package/package.json +25 -25
- package/template-js/package.json +2 -2
- package/template-ts/package.json +2 -2
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const fs = require('node:fs');
|
|
4
|
+
const path = require('node:path');
|
|
5
|
+
const node_url = require('node:url');
|
|
6
|
+
const process = require('node:process');
|
|
7
|
+
const spawn = require('cross-spawn');
|
|
8
|
+
const minimist = require('minimist');
|
|
9
|
+
const prompts = require('prompts');
|
|
10
|
+
const pc = require('picocolors');
|
|
11
|
+
|
|
12
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
|
|
13
|
+
|
|
14
|
+
const fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
15
|
+
const path__default = /*#__PURE__*/_interopDefaultCompat(path);
|
|
16
|
+
const process__default = /*#__PURE__*/_interopDefaultCompat(process);
|
|
17
|
+
const spawn__default = /*#__PURE__*/_interopDefaultCompat(spawn);
|
|
18
|
+
const minimist__default = /*#__PURE__*/_interopDefaultCompat(minimist);
|
|
19
|
+
const prompts__default = /*#__PURE__*/_interopDefaultCompat(prompts);
|
|
20
|
+
const pc__default = /*#__PURE__*/_interopDefaultCompat(pc);
|
|
21
|
+
|
|
22
|
+
const { yellow, blue, reset, red } = pc__default;
|
|
23
|
+
const argv = minimist__default(process__default.argv.slice(2), { string: ["_"] });
|
|
24
|
+
const cwd = process__default.cwd();
|
|
25
|
+
const FRAMEWORKS = [
|
|
26
|
+
{
|
|
27
|
+
name: "js",
|
|
28
|
+
display: "Typescript",
|
|
29
|
+
color: yellow
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: "ts",
|
|
33
|
+
display: "Javascript",
|
|
34
|
+
color: blue
|
|
35
|
+
}
|
|
36
|
+
];
|
|
37
|
+
const TEMPLATES = FRAMEWORKS.map(
|
|
38
|
+
(f) => [f.name]
|
|
39
|
+
).reduce((a, b) => a.concat(b), []);
|
|
40
|
+
const renameFiles = {
|
|
41
|
+
_gitignore: ".gitignore"
|
|
42
|
+
};
|
|
43
|
+
const defaultTargetDir = "sveltepress-project";
|
|
44
|
+
async function init() {
|
|
45
|
+
const argTargetDir = formatTargetDir(argv._[0]);
|
|
46
|
+
const argTemplate = argv.template || argv.t;
|
|
47
|
+
let targetDir = argTargetDir || defaultTargetDir;
|
|
48
|
+
const getProjectName = () => targetDir === "." ? path__default.basename(path__default.resolve()) : targetDir;
|
|
49
|
+
let result;
|
|
50
|
+
try {
|
|
51
|
+
result = await prompts__default(
|
|
52
|
+
[
|
|
53
|
+
{
|
|
54
|
+
type: argTargetDir ? null : "text",
|
|
55
|
+
name: "projectName",
|
|
56
|
+
message: reset("Project name:"),
|
|
57
|
+
initial: defaultTargetDir,
|
|
58
|
+
onState: (state) => {
|
|
59
|
+
targetDir = formatTargetDir(state.value) || defaultTargetDir;
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
type: () => !fs__default.existsSync(targetDir) || isEmpty(targetDir) ? null : "confirm",
|
|
64
|
+
name: "overwrite",
|
|
65
|
+
message: () => `${targetDir === "." ? "Current directory" : `Target directory "${targetDir}"`} is not empty. Remove existing files and continue?`
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
type: (_, { overwrite: overwrite2 }) => {
|
|
69
|
+
if (overwrite2 === false)
|
|
70
|
+
throw new Error(`${red("\u2716")} Operation cancelled`);
|
|
71
|
+
return null;
|
|
72
|
+
},
|
|
73
|
+
name: "overwriteChecker"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: () => isValidPackageName(getProjectName()) ? null : "text",
|
|
77
|
+
name: "packageName",
|
|
78
|
+
message: reset("Package name:"),
|
|
79
|
+
initial: () => toValidPackageName(getProjectName()),
|
|
80
|
+
validate: (dir) => isValidPackageName(dir) || "Invalid package.json name"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
type: argTemplate && TEMPLATES.includes(argTemplate) ? null : "select",
|
|
84
|
+
name: "language",
|
|
85
|
+
message: typeof argTemplate === "string" && !TEMPLATES.includes(argTemplate) ? reset(
|
|
86
|
+
`"${argTemplate}" isn't a valid template. Please choose from below: `
|
|
87
|
+
) : reset("Use Javascript or Typescript for your new project?"),
|
|
88
|
+
initial: 0,
|
|
89
|
+
choices: [{
|
|
90
|
+
title: "Typescript",
|
|
91
|
+
value: "ts",
|
|
92
|
+
selected: true,
|
|
93
|
+
description: "Use Typescript as your new project language"
|
|
94
|
+
}, {
|
|
95
|
+
title: "Javascript",
|
|
96
|
+
value: "js",
|
|
97
|
+
description: "Use Javascript as your new project language"
|
|
98
|
+
}]
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
{
|
|
102
|
+
onCancel: () => {
|
|
103
|
+
throw new Error(`${red("\u2716")} Operation cancelled`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
);
|
|
107
|
+
} catch (cancelled) {
|
|
108
|
+
console.log(cancelled.message);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const { language, overwrite, packageName } = result;
|
|
112
|
+
const root = path__default.join(cwd, targetDir);
|
|
113
|
+
if (overwrite)
|
|
114
|
+
emptyDir(root);
|
|
115
|
+
else if (!fs__default.existsSync(root))
|
|
116
|
+
fs__default.mkdirSync(root, { recursive: true });
|
|
117
|
+
const template = language || argTemplate;
|
|
118
|
+
const pkgInfo = pkgFromUserAgent(process__default.env.npm_config_user_agent);
|
|
119
|
+
const pkgManager = pkgInfo ? pkgInfo.name : "npm";
|
|
120
|
+
const isYarn1 = pkgManager === "yarn" && pkgInfo?.version.startsWith("1.");
|
|
121
|
+
const { customCommand } = FRAMEWORKS.find((v) => v.name === template) ?? {};
|
|
122
|
+
if (customCommand) {
|
|
123
|
+
const fullCustomCommand = customCommand.replace("TARGET_DIR", targetDir).replace(/^npm create/, `${pkgManager} create`).replace("@latest", () => isYarn1 ? "" : "@latest").replace(/^npm exec/, () => {
|
|
124
|
+
if (pkgManager === "pnpm")
|
|
125
|
+
return "pnpm dlx";
|
|
126
|
+
if (pkgManager === "yarn" && !isYarn1)
|
|
127
|
+
return "yarn dlx";
|
|
128
|
+
return "npm exec";
|
|
129
|
+
});
|
|
130
|
+
const [command, ...args] = fullCustomCommand.split(" ");
|
|
131
|
+
const { status } = spawn__default.sync(command, args, {
|
|
132
|
+
stdio: "inherit"
|
|
133
|
+
});
|
|
134
|
+
process__default.exit(status ?? 0);
|
|
135
|
+
}
|
|
136
|
+
console.log(`
|
|
137
|
+
Scaffolding project in ${root}...`);
|
|
138
|
+
const templateDir = path__default.resolve(
|
|
139
|
+
node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (document.currentScript && document.currentScript.src || new URL('index.cjs', document.baseURI).href))),
|
|
140
|
+
"../..",
|
|
141
|
+
`template-${template}`
|
|
142
|
+
);
|
|
143
|
+
const write = (file, content) => {
|
|
144
|
+
const targetPath = path__default.join(root, renameFiles[file] ?? file);
|
|
145
|
+
if (content)
|
|
146
|
+
fs__default.writeFileSync(targetPath, content);
|
|
147
|
+
else
|
|
148
|
+
copy(path__default.join(templateDir, file), targetPath);
|
|
149
|
+
};
|
|
150
|
+
const files = fs__default.readdirSync(templateDir);
|
|
151
|
+
for (const file of files.filter((f) => f !== "package.json"))
|
|
152
|
+
write(file);
|
|
153
|
+
const pkg = JSON.parse(
|
|
154
|
+
fs__default.readFileSync(path__default.join(templateDir, "package.json"), "utf-8")
|
|
155
|
+
);
|
|
156
|
+
pkg.name = packageName || getProjectName();
|
|
157
|
+
write("package.json", JSON.stringify(pkg, null, 2));
|
|
158
|
+
console.log("\nDone. Now run:\n");
|
|
159
|
+
if (root !== cwd)
|
|
160
|
+
console.log(` cd ${path__default.relative(cwd, root)}`);
|
|
161
|
+
switch (pkgManager) {
|
|
162
|
+
case "yarn":
|
|
163
|
+
console.log(" yarn");
|
|
164
|
+
console.log(" yarn dev");
|
|
165
|
+
break;
|
|
166
|
+
default:
|
|
167
|
+
console.log(` ${pkgManager} install`);
|
|
168
|
+
console.log(` ${pkgManager} run dev`);
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
console.log();
|
|
172
|
+
}
|
|
173
|
+
function formatTargetDir(targetDir) {
|
|
174
|
+
return targetDir?.trim().replace(/\/+$/g, "");
|
|
175
|
+
}
|
|
176
|
+
function copy(src, dest) {
|
|
177
|
+
const stat = fs__default.statSync(src);
|
|
178
|
+
if (stat.isDirectory())
|
|
179
|
+
copyDir(src, dest);
|
|
180
|
+
else
|
|
181
|
+
fs__default.copyFileSync(src, dest);
|
|
182
|
+
}
|
|
183
|
+
function isValidPackageName(projectName) {
|
|
184
|
+
return /^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(
|
|
185
|
+
projectName
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
function toValidPackageName(projectName) {
|
|
189
|
+
return projectName.trim().toLowerCase().replace(/\s+/g, "-").replace(/^[._]/, "").replace(/[^a-z\d\-~]+/g, "-");
|
|
190
|
+
}
|
|
191
|
+
function copyDir(srcDir, destDir) {
|
|
192
|
+
fs__default.mkdirSync(destDir, { recursive: true });
|
|
193
|
+
for (const file of fs__default.readdirSync(srcDir)) {
|
|
194
|
+
const srcFile = path__default.resolve(srcDir, file);
|
|
195
|
+
const destFile = path__default.resolve(destDir, file);
|
|
196
|
+
copy(srcFile, destFile);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
function isEmpty(path2) {
|
|
200
|
+
const files = fs__default.readdirSync(path2);
|
|
201
|
+
return files.length === 0 || files.length === 1 && files[0] === ".git";
|
|
202
|
+
}
|
|
203
|
+
function emptyDir(dir) {
|
|
204
|
+
if (!fs__default.existsSync(dir))
|
|
205
|
+
return;
|
|
206
|
+
for (const file of fs__default.readdirSync(dir)) {
|
|
207
|
+
if (file === ".git")
|
|
208
|
+
continue;
|
|
209
|
+
fs__default.rmSync(path__default.resolve(dir, file), { recursive: true, force: true });
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
function pkgFromUserAgent(userAgent) {
|
|
213
|
+
if (!userAgent)
|
|
214
|
+
return void 0;
|
|
215
|
+
const pkgSpec = userAgent.split(" ")[0];
|
|
216
|
+
const pkgSpecArr = pkgSpec.split("/");
|
|
217
|
+
return {
|
|
218
|
+
name: pkgSpecArr[0],
|
|
219
|
+
version: pkgSpecArr[1]
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
init().catch((e) => {
|
|
223
|
+
console.error(e);
|
|
224
|
+
});
|
package/dist/index.d.cts
ADDED
package/dist/index.d.mts
ADDED
package/dist/index.d.ts
ADDED
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import process from 'node:process';
|
|
5
|
+
import spawn from 'cross-spawn';
|
|
6
|
+
import minimist from 'minimist';
|
|
7
|
+
import prompts from 'prompts';
|
|
8
|
+
import pc from 'picocolors';
|
|
9
|
+
|
|
10
|
+
const { yellow, blue, reset, red } = pc;
|
|
11
|
+
const argv = minimist(process.argv.slice(2), { string: ["_"] });
|
|
12
|
+
const cwd = process.cwd();
|
|
13
|
+
const FRAMEWORKS = [
|
|
14
|
+
{
|
|
15
|
+
name: "js",
|
|
16
|
+
display: "Typescript",
|
|
17
|
+
color: yellow
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: "ts",
|
|
21
|
+
display: "Javascript",
|
|
22
|
+
color: blue
|
|
23
|
+
}
|
|
24
|
+
];
|
|
25
|
+
const TEMPLATES = FRAMEWORKS.map(
|
|
26
|
+
(f) => [f.name]
|
|
27
|
+
).reduce((a, b) => a.concat(b), []);
|
|
28
|
+
const renameFiles = {
|
|
29
|
+
_gitignore: ".gitignore"
|
|
30
|
+
};
|
|
31
|
+
const defaultTargetDir = "sveltepress-project";
|
|
32
|
+
async function init() {
|
|
33
|
+
const argTargetDir = formatTargetDir(argv._[0]);
|
|
34
|
+
const argTemplate = argv.template || argv.t;
|
|
35
|
+
let targetDir = argTargetDir || defaultTargetDir;
|
|
36
|
+
const getProjectName = () => targetDir === "." ? path.basename(path.resolve()) : targetDir;
|
|
37
|
+
let result;
|
|
38
|
+
try {
|
|
39
|
+
result = await prompts(
|
|
40
|
+
[
|
|
41
|
+
{
|
|
42
|
+
type: argTargetDir ? null : "text",
|
|
43
|
+
name: "projectName",
|
|
44
|
+
message: reset("Project name:"),
|
|
45
|
+
initial: defaultTargetDir,
|
|
46
|
+
onState: (state) => {
|
|
47
|
+
targetDir = formatTargetDir(state.value) || defaultTargetDir;
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
type: () => !fs.existsSync(targetDir) || isEmpty(targetDir) ? null : "confirm",
|
|
52
|
+
name: "overwrite",
|
|
53
|
+
message: () => `${targetDir === "." ? "Current directory" : `Target directory "${targetDir}"`} is not empty. Remove existing files and continue?`
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
type: (_, { overwrite: overwrite2 }) => {
|
|
57
|
+
if (overwrite2 === false)
|
|
58
|
+
throw new Error(`${red("\u2716")} Operation cancelled`);
|
|
59
|
+
return null;
|
|
60
|
+
},
|
|
61
|
+
name: "overwriteChecker"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
type: () => isValidPackageName(getProjectName()) ? null : "text",
|
|
65
|
+
name: "packageName",
|
|
66
|
+
message: reset("Package name:"),
|
|
67
|
+
initial: () => toValidPackageName(getProjectName()),
|
|
68
|
+
validate: (dir) => isValidPackageName(dir) || "Invalid package.json name"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: argTemplate && TEMPLATES.includes(argTemplate) ? null : "select",
|
|
72
|
+
name: "language",
|
|
73
|
+
message: typeof argTemplate === "string" && !TEMPLATES.includes(argTemplate) ? reset(
|
|
74
|
+
`"${argTemplate}" isn't a valid template. Please choose from below: `
|
|
75
|
+
) : reset("Use Javascript or Typescript for your new project?"),
|
|
76
|
+
initial: 0,
|
|
77
|
+
choices: [{
|
|
78
|
+
title: "Typescript",
|
|
79
|
+
value: "ts",
|
|
80
|
+
selected: true,
|
|
81
|
+
description: "Use Typescript as your new project language"
|
|
82
|
+
}, {
|
|
83
|
+
title: "Javascript",
|
|
84
|
+
value: "js",
|
|
85
|
+
description: "Use Javascript as your new project language"
|
|
86
|
+
}]
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
{
|
|
90
|
+
onCancel: () => {
|
|
91
|
+
throw new Error(`${red("\u2716")} Operation cancelled`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
} catch (cancelled) {
|
|
96
|
+
console.log(cancelled.message);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const { language, overwrite, packageName } = result;
|
|
100
|
+
const root = path.join(cwd, targetDir);
|
|
101
|
+
if (overwrite)
|
|
102
|
+
emptyDir(root);
|
|
103
|
+
else if (!fs.existsSync(root))
|
|
104
|
+
fs.mkdirSync(root, { recursive: true });
|
|
105
|
+
const template = language || argTemplate;
|
|
106
|
+
const pkgInfo = pkgFromUserAgent(process.env.npm_config_user_agent);
|
|
107
|
+
const pkgManager = pkgInfo ? pkgInfo.name : "npm";
|
|
108
|
+
const isYarn1 = pkgManager === "yarn" && pkgInfo?.version.startsWith("1.");
|
|
109
|
+
const { customCommand } = FRAMEWORKS.find((v) => v.name === template) ?? {};
|
|
110
|
+
if (customCommand) {
|
|
111
|
+
const fullCustomCommand = customCommand.replace("TARGET_DIR", targetDir).replace(/^npm create/, `${pkgManager} create`).replace("@latest", () => isYarn1 ? "" : "@latest").replace(/^npm exec/, () => {
|
|
112
|
+
if (pkgManager === "pnpm")
|
|
113
|
+
return "pnpm dlx";
|
|
114
|
+
if (pkgManager === "yarn" && !isYarn1)
|
|
115
|
+
return "yarn dlx";
|
|
116
|
+
return "npm exec";
|
|
117
|
+
});
|
|
118
|
+
const [command, ...args] = fullCustomCommand.split(" ");
|
|
119
|
+
const { status } = spawn.sync(command, args, {
|
|
120
|
+
stdio: "inherit"
|
|
121
|
+
});
|
|
122
|
+
process.exit(status ?? 0);
|
|
123
|
+
}
|
|
124
|
+
console.log(`
|
|
125
|
+
Scaffolding project in ${root}...`);
|
|
126
|
+
const templateDir = path.resolve(
|
|
127
|
+
fileURLToPath(import.meta.url),
|
|
128
|
+
"../..",
|
|
129
|
+
`template-${template}`
|
|
130
|
+
);
|
|
131
|
+
const write = (file, content) => {
|
|
132
|
+
const targetPath = path.join(root, renameFiles[file] ?? file);
|
|
133
|
+
if (content)
|
|
134
|
+
fs.writeFileSync(targetPath, content);
|
|
135
|
+
else
|
|
136
|
+
copy(path.join(templateDir, file), targetPath);
|
|
137
|
+
};
|
|
138
|
+
const files = fs.readdirSync(templateDir);
|
|
139
|
+
for (const file of files.filter((f) => f !== "package.json"))
|
|
140
|
+
write(file);
|
|
141
|
+
const pkg = JSON.parse(
|
|
142
|
+
fs.readFileSync(path.join(templateDir, "package.json"), "utf-8")
|
|
143
|
+
);
|
|
144
|
+
pkg.name = packageName || getProjectName();
|
|
145
|
+
write("package.json", JSON.stringify(pkg, null, 2));
|
|
146
|
+
console.log("\nDone. Now run:\n");
|
|
147
|
+
if (root !== cwd)
|
|
148
|
+
console.log(` cd ${path.relative(cwd, root)}`);
|
|
149
|
+
switch (pkgManager) {
|
|
150
|
+
case "yarn":
|
|
151
|
+
console.log(" yarn");
|
|
152
|
+
console.log(" yarn dev");
|
|
153
|
+
break;
|
|
154
|
+
default:
|
|
155
|
+
console.log(` ${pkgManager} install`);
|
|
156
|
+
console.log(` ${pkgManager} run dev`);
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
console.log();
|
|
160
|
+
}
|
|
161
|
+
function formatTargetDir(targetDir) {
|
|
162
|
+
return targetDir?.trim().replace(/\/+$/g, "");
|
|
163
|
+
}
|
|
164
|
+
function copy(src, dest) {
|
|
165
|
+
const stat = fs.statSync(src);
|
|
166
|
+
if (stat.isDirectory())
|
|
167
|
+
copyDir(src, dest);
|
|
168
|
+
else
|
|
169
|
+
fs.copyFileSync(src, dest);
|
|
170
|
+
}
|
|
171
|
+
function isValidPackageName(projectName) {
|
|
172
|
+
return /^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(
|
|
173
|
+
projectName
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
function toValidPackageName(projectName) {
|
|
177
|
+
return projectName.trim().toLowerCase().replace(/\s+/g, "-").replace(/^[._]/, "").replace(/[^a-z\d\-~]+/g, "-");
|
|
178
|
+
}
|
|
179
|
+
function copyDir(srcDir, destDir) {
|
|
180
|
+
fs.mkdirSync(destDir, { recursive: true });
|
|
181
|
+
for (const file of fs.readdirSync(srcDir)) {
|
|
182
|
+
const srcFile = path.resolve(srcDir, file);
|
|
183
|
+
const destFile = path.resolve(destDir, file);
|
|
184
|
+
copy(srcFile, destFile);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
function isEmpty(path2) {
|
|
188
|
+
const files = fs.readdirSync(path2);
|
|
189
|
+
return files.length === 0 || files.length === 1 && files[0] === ".git";
|
|
190
|
+
}
|
|
191
|
+
function emptyDir(dir) {
|
|
192
|
+
if (!fs.existsSync(dir))
|
|
193
|
+
return;
|
|
194
|
+
for (const file of fs.readdirSync(dir)) {
|
|
195
|
+
if (file === ".git")
|
|
196
|
+
continue;
|
|
197
|
+
fs.rmSync(path.resolve(dir, file), { recursive: true, force: true });
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
function pkgFromUserAgent(userAgent) {
|
|
201
|
+
if (!userAgent)
|
|
202
|
+
return void 0;
|
|
203
|
+
const pkgSpec = userAgent.split(" ")[0];
|
|
204
|
+
const pkgSpecArr = pkgSpec.split("/");
|
|
205
|
+
return {
|
|
206
|
+
name: pkgSpecArr[0],
|
|
207
|
+
version: pkgSpecArr[1]
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
init().catch((e) => {
|
|
211
|
+
console.error(e);
|
|
212
|
+
});
|
package/package.json
CHANGED
|
@@ -1,37 +1,43 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sveltepress/create",
|
|
3
|
-
"
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.42.3",
|
|
4
5
|
"description": "The helper for creating sveltepress projects",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Dongsheng Zhao",
|
|
8
|
+
"email": "1197160272@qq.com"
|
|
9
|
+
},
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"homepage": "https://sveltepress.site/",
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "github",
|
|
14
|
+
"url": "https://github.com/Blackman99/sveltepress",
|
|
15
|
+
"directory": "packages/create"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"svelte",
|
|
19
|
+
"sveltekit",
|
|
20
|
+
"sveltepress"
|
|
21
|
+
],
|
|
5
22
|
"exports": {
|
|
6
23
|
".": {
|
|
7
|
-
"
|
|
8
|
-
"
|
|
24
|
+
"require": "./dist/index.cjs",
|
|
25
|
+
"import": "./dist/index.mjs"
|
|
9
26
|
}
|
|
10
27
|
},
|
|
11
28
|
"main": "./dist/index.cjs",
|
|
12
29
|
"types": "./dist/index.d.ts",
|
|
13
|
-
"homepage": "https://sveltepress.site/",
|
|
14
30
|
"bin": "index.js",
|
|
15
|
-
"type": "module",
|
|
16
31
|
"files": [
|
|
17
32
|
"dist",
|
|
18
33
|
"template-*"
|
|
19
34
|
],
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
"author": {
|
|
26
|
-
"name": "Dongsheng Zhao",
|
|
27
|
-
"email": "1197160272@qq.com"
|
|
28
|
-
},
|
|
29
|
-
"repository": {
|
|
30
|
-
"type": "github",
|
|
31
|
-
"url": "https://github.com/Blackman99/sveltepress",
|
|
32
|
-
"directory": "packages/create"
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"cross-spawn": "^7.0.3",
|
|
37
|
+
"minimist": "^1.2.8",
|
|
38
|
+
"picocolors": "^1.0.0",
|
|
39
|
+
"prompts": "^2.4.2"
|
|
33
40
|
},
|
|
34
|
-
"license": "MIT",
|
|
35
41
|
"devDependencies": {
|
|
36
42
|
"@types/cross-spawn": "^6.0.6",
|
|
37
43
|
"@types/minimist": "^1.2.5",
|
|
@@ -40,12 +46,6 @@
|
|
|
40
46
|
"typescript": "^5.3.3",
|
|
41
47
|
"unbuild": "^2.0.0"
|
|
42
48
|
},
|
|
43
|
-
"dependencies": {
|
|
44
|
-
"cross-spawn": "^7.0.3",
|
|
45
|
-
"minimist": "^1.2.8",
|
|
46
|
-
"picocolors": "^1.0.0",
|
|
47
|
-
"prompts": "^2.4.2"
|
|
48
|
-
},
|
|
49
49
|
"scripts": {
|
|
50
50
|
"build": "unbuild"
|
|
51
51
|
}
|
package/template-js/package.json
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"@sveltejs/adapter-static": "^3.0.1",
|
|
11
11
|
"@sveltejs/kit": "^2.5.1",
|
|
12
12
|
"@sveltejs/vite-plugin-svelte": "^3.0.2",
|
|
13
|
-
"@sveltepress/theme-default": "^
|
|
14
|
-
"@sveltepress/vite": "^0.
|
|
13
|
+
"@sveltepress/theme-default": "^2.0.2",
|
|
14
|
+
"@sveltepress/vite": "^0.33.2",
|
|
15
15
|
"@types/node": "^20.11.20",
|
|
16
16
|
"svelte": "^4.2.12",
|
|
17
17
|
"vite": "^5.1.4"
|
package/template-ts/package.json
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"@sveltejs/adapter-static": "^3.0.1",
|
|
11
11
|
"@sveltejs/kit": "^2.5.1",
|
|
12
12
|
"@sveltejs/vite-plugin-svelte": "^3.0.2",
|
|
13
|
-
"@sveltepress/theme-default": "^
|
|
14
|
-
"@sveltepress/vite": "^0.
|
|
13
|
+
"@sveltepress/theme-default": "^2.0.2",
|
|
14
|
+
"@sveltepress/vite": "^0.33.2",
|
|
15
15
|
"@types/node": "^20.11.20",
|
|
16
16
|
"svelte": "^4.2.12",
|
|
17
17
|
"typescript": "^5.3.3",
|