@vited/create 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- export { t as THEMES, n as create, r as installPackages, i as resolvePackageManager } from "./src-BAeU7i-K.mjs";
1
+ export { t as THEMES, n as create, r as installPackages, i as resolvePackageManager } from "./src-KPLQg03-.mjs";
@@ -4,15 +4,17 @@ import path from "node:path";
4
4
  import process from "node:process";
5
5
  import { URL } from "node:url";
6
6
  import { promisify } from "node:util";
7
+ import { stringify } from "yaml";
7
8
  import i18next from "i18next";
8
9
  // src/github.ts
10
+ const defaultPnpmVersion = 12;
9
11
  const execFileAsync = promisify(execFile);
10
- async function getGitHubPagesSetup(projectPath, repository, packageManager) {
11
- const githubRepository = await findGitHubRepository(projectPath, repository);
12
+ async function getGitHubPagesSetup(projectPath, packageJson, packageManager) {
13
+ const githubRepository = await findGitHubRepository(projectPath, getRepositoryURL(packageJson));
12
14
  if (!githubRepository) return;
13
15
  return {
14
16
  base: getGitHubBaseURL(githubRepository),
15
- workflow: makeGitHubPagesWorkflow(packageManager)
17
+ workflow: makeGitHubPagesWorkflow(packageManager, getPnpmVersion(packageJson))
16
18
  };
17
19
  }
18
20
  async function writeGitHubPagesWorkflow(projectPath, content) {
@@ -24,7 +26,7 @@ async function writeGitHubPagesWorkflow(projectPath, content) {
24
26
  if (!isNodeError$1(error, "EEXIST")) throw error;
25
27
  }
26
28
  }
27
- async function findGitHubRepository(projectPath, repository) {
29
+ async function findGitHubRepository(projectPath, repositoryURL) {
28
30
  let originURL;
29
31
  try {
30
32
  originURL = (await execFileAsync("git", [
@@ -38,7 +40,7 @@ async function findGitHubRepository(projectPath, repository) {
38
40
  } catch (error) {
39
41
  if (!isExpectedGitLookupFailure(error)) throw error;
40
42
  }
41
- return parseGitHubRepository(originURL) ?? parseGitHubRepository(getRepositoryURL(repository));
43
+ return parseGitHubRepository(originURL) ?? parseGitHubRepository(repositoryURL);
42
44
  }
43
45
  function isExpectedGitLookupFailure(error) {
44
46
  if (isNodeError$1(error, "ENOENT")) return true;
@@ -46,7 +48,11 @@ function isExpectedGitLookupFailure(error) {
46
48
  const code = error["code"];
47
49
  return typeof code === "number" && [2, 128].includes(code);
48
50
  }
49
- function getRepositoryURL(repository) {
51
+ function getRepositoryURL(packageJson) {
52
+ if (!isRecord$1(packageJson)) return;
53
+ return getURLValue(packageJson["repository"]);
54
+ }
55
+ function getURLValue(repository) {
50
56
  if (typeof repository === "string") return repository;
51
57
  if (isRecord$1(repository) && typeof repository["url"] === "string") return repository["url"];
52
58
  }
@@ -85,73 +91,107 @@ function makeGitHubRepository(owner, name) {
85
91
  function getGitHubBaseURL(repository) {
86
92
  return repository.name.toLowerCase() === `${repository.owner.toLowerCase()}.github.io` ? "/" : `/${repository.name}/`;
87
93
  }
88
- function makeGitHubPagesWorkflow(packageManager) {
89
- const setupPackageManagerSteps = {
94
+ function getPnpmVersion(packageJson) {
95
+ if (!isRecord$1(packageJson)) return defaultPnpmVersion;
96
+ const packageManager = packageJson["packageManager"];
97
+ if (typeof packageManager === "string" && /^pnpm[@/]/.test(packageManager)) {
98
+ const version = parseVersion(packageManager);
99
+ if (version) return version;
100
+ }
101
+ const devEngines = packageJson["devEngines"];
102
+ if (isRecord$1(devEngines)) {
103
+ const devEngine = devEngines["packageManager"];
104
+ if (isRecord$1(devEngine) && devEngine["name"] === "pnpm") {
105
+ const version = parseVersion(devEngine["version"]);
106
+ if (version) return version;
107
+ }
108
+ }
109
+ const engines = packageJson["engines"];
110
+ if (isRecord$1(engines)) {
111
+ const version = parseVersion(engines["pnpm"]);
112
+ if (version) return version;
113
+ }
114
+ return defaultPnpmVersion;
115
+ }
116
+ function parseVersion(value) {
117
+ if (typeof value !== "string") return;
118
+ return /\d+(?:\.\d+){0,2}/.exec(value)?.[0];
119
+ }
120
+ function makeGitHubPagesWorkflow(packageManager, pnpmVersion) {
121
+ const setupPackageManagerStepsByPackageManager = {
90
122
  npm: [],
91
- pnpm: [" - uses: pnpm/action-setup@v4"],
92
- yarn: [" - run: corepack enable"],
93
- bun: [" - uses: oven-sh/setup-bun@v2"]
94
- }[packageManager];
95
- const installSteps = {
96
- npm: [" - run: npm install"],
97
- pnpm: [" - run: pnpm approve-builds @swc/core esbuild", " - run: pnpm install"],
98
- yarn: [" - run: yarn install"],
99
- bun: [" - run: bun install"]
100
- }[packageManager];
123
+ pnpm: [{
124
+ uses: "pnpm/action-setup@v4",
125
+ with: { version: pnpmVersion }
126
+ }],
127
+ yarn: [{ run: "corepack enable" }],
128
+ bun: [{ uses: "oven-sh/setup-bun@v2" }]
129
+ };
130
+ const installStepsByPackageManager = {
131
+ npm: [{ run: "npm install" }],
132
+ pnpm: [{ run: "pnpm approve-builds @swc/core esbuild" }, { run: "pnpm install" }],
133
+ yarn: [{ run: "yarn install" }],
134
+ bun: [{ run: "bun install" }]
135
+ };
136
+ const setupPackageManagerSteps = setupPackageManagerStepsByPackageManager[packageManager];
137
+ const installSteps = installStepsByPackageManager[packageManager];
101
138
  const buildCommand = {
102
139
  npm: "npm run docs:build",
103
140
  pnpm: "pnpm run docs:build",
104
141
  yarn: "yarn docs:build",
105
142
  bun: "bun run docs:build"
106
143
  }[packageManager];
107
- return [
108
- "name: Deploy docs to GitHub Pages",
109
- "",
110
- "on:",
111
- " push:",
112
- " branches:",
113
- " - main",
114
- " - master",
115
- " workflow_dispatch:",
116
- "",
117
- "permissions:",
118
- " contents: read",
119
- " pages: write",
120
- "",
121
- "concurrency:",
122
- " group: github-pages",
123
- " cancel-in-progress: false",
124
- "",
125
- "jobs:",
126
- " build:",
127
- " runs-on: ubuntu-latest",
128
- " steps:",
129
- " - uses: actions/checkout@v6",
130
- " - uses: actions/setup-node@v6",
131
- " with:",
132
- " node-version: 22",
133
- ...setupPackageManagerSteps,
134
- " - uses: actions/configure-pages@v5",
135
- ...installSteps,
136
- ` - run: ${buildCommand}`,
137
- " - uses: actions/upload-pages-artifact@v4",
138
- " with:",
139
- " path: ./docs_dist",
140
- "",
141
- " deploy:",
142
- " environment:",
143
- " name: github-pages",
144
- " url: ${{ steps.deployment.outputs.page_url }}",
145
- " runs-on: ubuntu-latest",
146
- " needs: build",
147
- " permissions:",
148
- " pages: write",
149
- " id-token: write",
150
- " steps:",
151
- " - id: deployment",
152
- " uses: actions/deploy-pages@v4",
153
- ""
154
- ].join("\n");
144
+ return stringify({
145
+ name: "Pages",
146
+ on: {
147
+ push: { branches: ["main", "master"] },
148
+ workflow_dispatch: {}
149
+ },
150
+ permissions: {
151
+ contents: "read",
152
+ pages: "write"
153
+ },
154
+ concurrency: {
155
+ group: "github-pages",
156
+ "cancel-in-progress": false
157
+ },
158
+ jobs: {
159
+ build: {
160
+ "runs-on": "ubuntu-latest",
161
+ steps: [
162
+ { uses: "actions/checkout@v6" },
163
+ {
164
+ uses: "actions/setup-node@v6",
165
+ with: { "node-version": 22 }
166
+ },
167
+ ...setupPackageManagerSteps,
168
+ { uses: "actions/configure-pages@v5" },
169
+ ...installSteps,
170
+ { run: buildCommand },
171
+ {
172
+ uses: "actions/upload-pages-artifact@v4",
173
+ with: { path: "./docs_dist" }
174
+ }
175
+ ]
176
+ },
177
+ deploy: {
178
+ environment: {
179
+ name: "github-pages",
180
+ url: "${{ steps.deployment.outputs.page_url }}"
181
+ },
182
+ "runs-on": "ubuntu-latest",
183
+ needs: "build",
184
+ permissions: {
185
+ pages: "write",
186
+ "id-token": "write"
187
+ },
188
+ steps: [{
189
+ id: "deployment",
190
+ uses: "actions/deploy-pages@v4"
191
+ }]
192
+ }
193
+ }
194
+ });
155
195
  }
156
196
  function isNodeError$1(error, code) {
157
197
  return error instanceof Error && "code" in error && error.code === code;
@@ -308,7 +348,7 @@ async function create({ directory, theme, packageManager, install }) {
308
348
  const packageJsonPath = path.join(projectPath, "package.json");
309
349
  const packageJson = await readProjectPackageJson(packageJsonPath, projectPath);
310
350
  addVitedConfiguration(packageJson, projectPath, theme);
311
- const githubPages = await getGitHubPagesSetup(projectPath, packageJson["repository"], packageManager);
351
+ const githubPages = await getGitHubPagesSetup(projectPath, packageJson, packageManager);
312
352
  const base = githubPages?.base;
313
353
  await mkdir(projectPath, { recursive: true });
314
354
  await ensureGitignoreEntry(projectPath, "docs_dist");
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
- import { a as LANGUAGES, c as t, i as resolvePackageManager, n as create, o as isLanguage, s as setLanguage, t as THEMES } from "./src-BAeU7i-K.mjs";
2
+ import { a as LANGUAGES, c as t, i as resolvePackageManager, n as create, o as isLanguage, s as setLanguage, t as THEMES } from "./src-KPLQg03-.mjs";
3
3
  import process from "node:process";
4
4
  import console from "node:console";
5
5
  import { Command, Option } from "commander";
6
6
  import { cancel, confirm, intro, isCancel, outro, select, text } from "@clack/prompts";
7
7
  // package.json
8
- var version = "0.0.4";
8
+ var version = "0.0.6";
9
9
  // src/interactive.ts
10
10
  async function runInteractive() {
11
11
  if (!process.stdin.isTTY || !process.stdout.isTTY) throw new Error(t("interactive.terminalRequired"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vited/create",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "Create and initialize Vited documentation projects",
5
5
  "keywords": [
6
6
  "cli",
@@ -44,7 +44,8 @@
44
44
  "dependencies": {
45
45
  "@clack/prompts": "^1.8.1",
46
46
  "commander": "^11.0.0",
47
- "i18next": "^26.5.11"
47
+ "i18next": "^26.5.11",
48
+ "yaml": "^2.9.1"
48
49
  },
49
50
  "devDependencies": {
50
51
  "@guoyunhe/oxfmt-config": "^1.1.0",