@webywz/breathing-github-profile 1.0.0 → 1.0.2

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/README.md CHANGED
@@ -7,10 +7,7 @@
7
7
  [![Test](https://github.com/webywz/breathing-github-profile/actions/workflows/test.yml/badge.svg)](https://github.com/webywz/breathing-github-profile/actions/workflows/test.yml)
8
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
9
9
 
10
- Package: `@webywz/breathing-github-profile` · CLI binary: `breathing-profile` · Node 18+
11
-
12
- > Not on the npm registry yet. Install from GitHub until the first publish.
13
- > 尚未发布到 npm,请先从 GitHub 安装。
10
+ Package: `@webywz/breathing-github-profile` · CLI binary: `breathing-profile` · Node.js 18.18+
14
11
 
15
12
  ---
16
13
 
@@ -32,30 +29,25 @@ Live example: [webywz/webywz](https://github.com/webywz/webywz).
32
29
  ## Install · 安装
33
30
 
34
31
  ```bash
35
- npm install github:webywz/breathing-github-profile
32
+ npm i -g @webywz/breathing-github-profile
36
33
  npx breathing-profile --help
34
+ # or without a global install:
35
+ npx @webywz/breathing-github-profile --help
37
36
  ```
38
37
 
39
- From source (develop / unpublished):
40
-
41
- ```bash
42
- git clone https://github.com/webywz/breathing-github-profile.git
43
- cd breathing-github-profile
44
- npm install
45
- npm run build
46
- ```
47
-
48
- One-shot without a local clone:
38
+ One-shot without installing globally:
49
39
 
50
40
  ```bash
51
- npx --yes --package github:webywz/breathing-github-profile -- breathing-profile generate -c config.yml -o README.md
41
+ npx --yes @webywz/breathing-github-profile generate -c config.yml -o README.md
52
42
  ```
53
43
 
54
- After the package is published:
44
+ From source (develop):
55
45
 
56
46
  ```bash
57
- npm i -g @webywz/breathing-github-profile
58
- npx @webywz/breathing-github-profile --help
47
+ git clone https://github.com/webywz/breathing-github-profile.git
48
+ cd breathing-github-profile
49
+ npm install
50
+ npm run build
59
51
  ```
60
52
 
61
53
  ---
@@ -110,7 +102,7 @@ npx breathing-profile validate -c config.yml
110
102
  | `refresh` | Rewrite marker sections only | 只刷新标记区 |
111
103
  | `validate` | Check the config file | 校验配置 |
112
104
 
113
- Optional: set `GITHUB_TOKEN` (or use `secrets.GITHUB_TOKEN` in Actions) for higher API rate limits.
105
+ Optional: set `GITHUB_TOKEN` or `GH_TOKEN` (or use `secrets.GITHUB_TOKEN` in Actions) for higher API rate limits.
114
106
 
115
107
  ---
116
108
 
@@ -121,7 +113,7 @@ Optional: set `GITHUB_TOKEN` (or use `secrets.GITHUB_TOKEN` in Actions) for high
121
113
  | Field | Type | Required | Notes |
122
114
  | --- | --- | --- | --- |
123
115
  | `username` | string | yes | GitHub login |
124
- | `intro.zh` / `intro.en` | string | one of zh/en | Bilingual intro blocks |
116
+ | `intro.zh` / `intro.en` | string | one of zh/en (non-empty) | zh-only, en-only, or both · 仅中文 / 仅英文 / 双语均可 |
125
117
  | `featuredRepos` | string[] | no | Pinned repo names |
126
118
  | `sections` | Section[] | no | Ordered sections |
127
119
  | `style` | StyleConfig | no | Theme / layout knobs |
@@ -198,7 +190,7 @@ jobs:
198
190
  - uses: actions/setup-node@v4
199
191
  with:
200
192
  node-version: '20'
201
- - run: npm install github:webywz/breathing-github-profile
193
+ - run: npm i @webywz/breathing-github-profile@1.0.2
202
194
  - name: Refresh README
203
195
  env:
204
196
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -228,7 +220,7 @@ import {
228
220
  } from '@webywz/breathing-github-profile';
229
221
 
230
222
  const config = loadConfig('config.yml');
231
- const client = new GitHubClient(process.env.GITHUB_TOKEN);
223
+ const client = new GitHubClient(process.env.GITHUB_TOKEN || process.env.GH_TOKEN);
232
224
  const data = await client.getProfileData(config.username);
233
225
  const readme = new ReadmeGenerator(config, data).generate();
234
226
  ```
@@ -266,7 +258,7 @@ examples/ sample configs
266
258
 
267
259
  ## FAQ · 常见问题
268
260
 
269
- **Rate limits?** Set `GITHUB_TOKEN`. Actions already injects `secrets.GITHUB_TOKEN`.
261
+ **Rate limits?** Set `GITHUB_TOKEN` or `GH_TOKEN`. Actions already injects `secrets.GITHUB_TOKEN`.
270
262
 
271
263
  **Only update part of the README?** Use `refresh`, not `generate`.
272
264
 
package/dist/cli.js CHANGED
@@ -12,27 +12,28 @@ const path_1 = require("path");
12
12
  const config_1 = require("./config");
13
13
  const github_1 = require("./github");
14
14
  const generator_1 = require("./generator");
15
+ const version_1 = require("./version");
15
16
  const program = new commander_1.Command();
16
17
  program
17
18
  .name('breathing-profile')
18
- .description('可复用的活跃 GitHub profile README 生成器')
19
- .version('1.0.0');
19
+ .description('Living GitHub profile README generator · 会呼吸的 GitHub profile README 生成器')
20
+ .version((0, version_1.readPackageVersion)());
20
21
  program
21
22
  .command('generate')
22
- .description('生成新的 README.md')
23
- .option('-c, --config <path>', '配置文件路径', 'config.yml')
24
- .option('-o, --output <path>', '输出文件路径', 'README.md')
23
+ .description('Generate a full README · 生成完整 README.md')
24
+ .option('-c, --config <path>', 'Config path · 配置文件路径', 'config.yml')
25
+ .option('-o, --output <path>', 'Output path · 输出文件路径', 'README.md')
25
26
  .action(async (options) => {
26
- const spinner = (0, ora_1.default)('正在生成 README...').start();
27
+ const spinner = (0, ora_1.default)('Generating README… · 正在生成 README...').start();
27
28
  try {
28
29
  if (!(0, fs_1.existsSync)(options.config)) {
29
- throw new Error(`配置文件不存在: ${options.config}`);
30
+ throw new Error(`Config not found / 配置文件不存在: ${options.config}`);
30
31
  }
31
32
  const config = (0, config_1.loadConfig)(options.config);
32
33
  const client = new github_1.GitHubClient();
33
- spinner.text = `正在获取 ${config.username} 的 GitHub 数据...`;
34
+ spinner.text = `Fetching GitHub data for ${config.username}… · 正在获取数据...`;
34
35
  const data = await client.getProfileData(config.username);
35
- spinner.text = '正在生成 README 内容...';
36
+ spinner.text = 'Writing README… · 正在生成 README 内容...';
36
37
  const generator = new generator_1.ReadmeGenerator(config, data);
37
38
  const readme = generator.generate();
38
39
  (0, fs_1.writeFileSync)(options.output, readme, 'utf-8');
@@ -41,34 +42,34 @@ program
41
42
  (0, fs_1.mkdirSync)(dataDir, { recursive: true });
42
43
  }
43
44
  (0, fs_1.writeFileSync)((0, path_1.join)(dataDir, 'profile.json'), JSON.stringify(data, null, 2), 'utf-8');
44
- spinner.succeed(chalk_1.default.green(`✓ README 已生成: ${options.output}`));
45
- console.log(chalk_1.default.gray(` 数据已保存到: ${(0, path_1.join)(dataDir, 'profile.json')}`));
45
+ spinner.succeed(chalk_1.default.green(`✓ README written / 已生成: ${options.output}`));
46
+ console.log(chalk_1.default.gray(` Data saved / 数据已保存: ${(0, path_1.join)(dataDir, 'profile.json')}`));
46
47
  }
47
48
  catch (error) {
48
- spinner.fail(chalk_1.default.red('生成失败'));
49
- console.error(chalk_1.default.red(`错误: ${error.message}`));
49
+ spinner.fail(chalk_1.default.red('Generate failed / 生成失败'));
50
+ console.error(chalk_1.default.red(`Error / 错误: ${error.message}`));
50
51
  process.exit(1);
51
52
  }
52
53
  });
53
54
  program
54
55
  .command('refresh')
55
- .description('刷新现有 README 的标记部分')
56
- .option('-c, --config <path>', '配置文件路径', 'config.yml')
57
- .option('-r, --readme <path>', 'README 文件路径', 'README.md')
56
+ .description('Refresh marker sections only · 只刷新 README 标记部分')
57
+ .option('-c, --config <path>', 'Config path · 配置文件路径', 'config.yml')
58
+ .option('-r, --readme <path>', 'README path · README 文件路径', 'README.md')
58
59
  .action(async (options) => {
59
- const spinner = (0, ora_1.default)('正在刷新 README...').start();
60
+ const spinner = (0, ora_1.default)('Refreshing README… · 正在刷新 README...').start();
60
61
  try {
61
62
  if (!(0, fs_1.existsSync)(options.config)) {
62
- throw new Error(`配置文件不存在: ${options.config}`);
63
+ throw new Error(`Config not found / 配置文件不存在: ${options.config}`);
63
64
  }
64
65
  if (!(0, fs_1.existsSync)(options.readme)) {
65
- throw new Error(`README 文件不存在: ${options.readme}`);
66
+ throw new Error(`README not found / README 文件不存在: ${options.readme}`);
66
67
  }
67
68
  const config = (0, config_1.loadConfig)(options.config);
68
69
  const client = new github_1.GitHubClient();
69
- spinner.text = `正在获取 ${config.username} 的 GitHub 数据...`;
70
+ spinner.text = `Fetching GitHub data for ${config.username}… · 正在获取数据...`;
70
71
  const data = await client.getProfileData(config.username);
71
- spinner.text = '正在更新 README 标记部分...';
72
+ spinner.text = 'Updating markers… · 正在更新 README 标记部分...';
72
73
  const existingReadme = (0, fs_1.readFileSync)(options.readme, 'utf-8');
73
74
  const markerSections = (config.sections || []).map(section => {
74
75
  const marker = section.marker || section.type.toUpperCase();
@@ -91,31 +92,31 @@ program
91
92
  (0, fs_1.mkdirSync)(dataDir, { recursive: true });
92
93
  }
93
94
  (0, fs_1.writeFileSync)((0, path_1.join)(dataDir, 'profile.json'), JSON.stringify(data, null, 2), 'utf-8');
94
- spinner.succeed(chalk_1.default.green(`✓ README 已刷新: ${options.readme}`));
95
- console.log(chalk_1.default.gray(` 数据已保存到: ${(0, path_1.join)(dataDir, 'profile.json')}`));
95
+ spinner.succeed(chalk_1.default.green(`✓ README refreshed / 已刷新: ${options.readme}`));
96
+ console.log(chalk_1.default.gray(` Data saved / 数据已保存: ${(0, path_1.join)(dataDir, 'profile.json')}`));
96
97
  }
97
98
  catch (error) {
98
- spinner.fail(chalk_1.default.red('刷新失败'));
99
- console.error(chalk_1.default.red(`错误: ${error.message}`));
99
+ spinner.fail(chalk_1.default.red('Refresh failed / 刷新失败'));
100
+ console.error(chalk_1.default.red(`Error / 错误: ${error.message}`));
100
101
  process.exit(1);
101
102
  }
102
103
  });
103
104
  program
104
105
  .command('validate')
105
- .description('验证配置文件')
106
- .option('-c, --config <path>', '配置文件路径', 'config.yml')
106
+ .description('Validate config file · 验证配置文件')
107
+ .option('-c, --config <path>', 'Config path · 配置文件路径', 'config.yml')
107
108
  .action(async (options) => {
108
109
  try {
109
110
  if (!(0, fs_1.existsSync)(options.config)) {
110
- throw new Error(`配置文件不存在: ${options.config}`);
111
+ throw new Error(`Config not found / 配置文件不存在: ${options.config}`);
111
112
  }
112
113
  const config = (0, config_1.loadConfig)(options.config);
113
- console.log(chalk_1.default.green('✓ 配置文件有效'));
114
- console.log(chalk_1.default.gray('\n配置内容:'));
114
+ console.log(chalk_1.default.green('✓ Config valid / 配置文件有效'));
115
+ console.log(chalk_1.default.gray('\nConfig / 配置内容:'));
115
116
  console.log(JSON.stringify(config, null, 2));
116
117
  }
117
118
  catch (error) {
118
- console.error(chalk_1.default.red(`✗ 配置文件无效: ${error.message}`));
119
+ console.error(chalk_1.default.red(`✗ Invalid config / 配置无效: ${error.message}`));
119
120
  process.exit(1);
120
121
  }
121
122
  });
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAc5D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CA+B1D;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAazD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAc5D;AAMD,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAkC1D;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAazD"}
package/dist/config.js CHANGED
@@ -20,6 +20,9 @@ function loadConfig(configPath) {
20
20
  validateConfig(config);
21
21
  return config;
22
22
  }
23
+ function hasIntroText(value) {
24
+ return typeof value === 'string' && value.trim().length > 0;
25
+ }
23
26
  function validateConfig(config) {
24
27
  if (!config.username || typeof config.username !== 'string') {
25
28
  throw new Error('配置中必须包含有效的 username 字段');
@@ -27,8 +30,9 @@ function validateConfig(config) {
27
30
  if (!config.intro || typeof config.intro !== 'object') {
28
31
  throw new Error('配置中必须包含 intro 对象');
29
32
  }
30
- if (!config.intro.zh && !config.intro.en) {
31
- throw new Error('intro 必须至少包含 zh 或 en 字段');
33
+ // Blank / whitespace-only strings count as missing; zh-only or en-only is OK.
34
+ if (!hasIntroText(config.intro.zh) && !hasIntroText(config.intro.en)) {
35
+ throw new Error('intro must include at least one non-empty zh or en / intro 必须至少包含非空的 zh 或 en 字段');
32
36
  }
33
37
  if (config.featuredRepos && !Array.isArray(config.featuredRepos)) {
34
38
  throw new Error('featuredRepos 必须是数组');
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AAIA,gCAcC;AAED,wCA+BC;AAED,4CAaC;AAlED,2BAAkC;AAClC,+BAA0C;AAG1C,SAAgB,UAAU,CAAC,UAAkB;IAC3C,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAElD,IAAI,MAAqB,CAAC;IAC1B,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvE,MAAM,GAAG,IAAA,YAAS,EAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,cAAc,CAAC,MAAqB;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB;IAC9B,OAAO;QACL,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;YAClC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;YAC1C,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;SACnC;QACD,KAAK,EAAE;YACL,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;SACb;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/generator.js CHANGED
@@ -30,15 +30,15 @@ class ReadmeGenerator {
30
30
  generateIntro() {
31
31
  const { intro } = this.config;
32
32
  const parts = [];
33
- if (intro.zh) {
33
+ if (intro.zh?.trim()) {
34
34
  parts.push(`## 👨‍💻 关于我
35
35
 
36
- ${intro.zh}`);
36
+ ${intro.zh.trim()}`);
37
37
  }
38
- if (intro.en) {
38
+ if (intro.en?.trim()) {
39
39
  parts.push(`## 👨‍💻 About Me
40
40
 
41
- ${intro.en}`);
41
+ ${intro.en.trim()}`);
42
42
  }
43
43
  return parts.join('\n\n');
44
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
package/dist/github.d.ts CHANGED
@@ -1,8 +1,12 @@
1
1
  import { GitHubUser, GitHubRepo, ProfileData } from './types';
2
+ /** Resolve token: explicit arg, then GITHUB_TOKEN, then GH_TOKEN. */
3
+ export declare function resolveGithubToken(explicit?: string): string | undefined;
2
4
  export declare class GitHubClient {
3
5
  private token?;
4
6
  private baseUrl;
5
7
  constructor(token?: string);
8
+ /** Exposed for tests / callers that need to know if auth is set. */
9
+ get authToken(): string | undefined;
6
10
  private fetch;
7
11
  getUser(username: string): Promise<GitHubUser>;
8
12
  getRepos(username: string): Promise<GitHubRepo[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE9D,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,OAAO,CAA4B;gBAE/B,KAAK,CAAC,EAAE,MAAM;YAIZ,KAAK;IAmBb,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAqBjD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CA4B7D"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE9D,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExE;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,OAAO,CAA4B;gBAE/B,KAAK,CAAC,EAAE,MAAM;IAI1B,oEAAoE;IACpE,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;YAEa,KAAK;IAmBb,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAqBjD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CA4B7D"}
package/dist/github.js CHANGED
@@ -1,10 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GitHubClient = void 0;
4
+ exports.resolveGithubToken = resolveGithubToken;
5
+ /** Resolve token: explicit arg, then GITHUB_TOKEN, then GH_TOKEN. */
6
+ function resolveGithubToken(explicit) {
7
+ return explicit || process.env.GITHUB_TOKEN || process.env.GH_TOKEN || undefined;
8
+ }
4
9
  class GitHubClient {
5
10
  constructor(token) {
6
11
  this.baseUrl = 'https://api.github.com';
7
- this.token = token || process.env.GITHUB_TOKEN;
12
+ this.token = resolveGithubToken(token);
13
+ }
14
+ /** Exposed for tests / callers that need to know if auth is set. */
15
+ get authToken() {
16
+ return this.token;
8
17
  }
9
18
  async fetch(endpoint) {
10
19
  const headers = {
@@ -16,7 +25,7 @@ class GitHubClient {
16
25
  }
17
26
  const response = await fetch(`${this.baseUrl}${endpoint}`, { headers });
18
27
  if (!response.ok) {
19
- throw new Error(`GitHub API 错误: ${response.status} ${response.statusText}`);
28
+ throw new Error(`GitHub API 错误 / GitHub API error: ${response.status} ${response.statusText}`);
20
29
  }
21
30
  return response.json();
22
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAY;IAIvB,YAAY,KAAc;QAFlB,YAAO,GAAG,wBAAwB,CAAC;QAGzC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,KAAK,CAAI,QAAgB;QACrC,MAAM,OAAO,GAA2B;YACtC,QAAQ,EAAE,gCAAgC;YAC1C,YAAY,EAAE,0BAA0B;SACzC,CAAC;QAEF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;QACnD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAExE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAa,UAAU,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC7B,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,CAAC;QACpB,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,OAAO,IAAI,IAAI,QAAQ,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAC5B,UAAU,QAAQ,mBAAmB,OAAO,SAAS,IAAI,eAAe,CACzE,CAAC;YAEF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YAC9B,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YAErB,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO;gBAAE,MAAM;YAClC,IAAI,EAAE,CAAC;QACT,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACxB,CAAC,CAAC;QAEH,MAAM,SAAS,GAA2B,EAAE,CAAC;QAC7C,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC;YACpC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC;YAE/B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI;YACJ,KAAK;YACL,SAAS;YACT,UAAU;YACV,UAAU;YACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;IACJ,CAAC;CACF;AAhFD,oCAgFC"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { ProfileConfig, ProfileData, GitHubUser, GitHubRepo, Section, StyleConfig } from './types';
2
2
  export { loadConfig, validateConfig, getDefaultConfig } from './config';
3
- export { GitHubClient } from './github';
3
+ export { GitHubClient, resolveGithubToken } from './github';
4
4
  export { ReadmeGenerator, updateReadmeMarkers } from './generator';
5
+ export { readPackageVersion } from './version';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateReadmeMarkers = exports.ReadmeGenerator = exports.GitHubClient = exports.getDefaultConfig = exports.validateConfig = exports.loadConfig = void 0;
3
+ exports.readPackageVersion = exports.updateReadmeMarkers = exports.ReadmeGenerator = exports.resolveGithubToken = exports.GitHubClient = exports.getDefaultConfig = exports.validateConfig = exports.loadConfig = void 0;
4
4
  var config_1 = require("./config");
5
5
  Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return config_1.loadConfig; } });
6
6
  Object.defineProperty(exports, "validateConfig", { enumerable: true, get: function () { return config_1.validateConfig; } });
7
7
  Object.defineProperty(exports, "getDefaultConfig", { enumerable: true, get: function () { return config_1.getDefaultConfig; } });
8
8
  var github_1 = require("./github");
9
9
  Object.defineProperty(exports, "GitHubClient", { enumerable: true, get: function () { return github_1.GitHubClient; } });
10
+ Object.defineProperty(exports, "resolveGithubToken", { enumerable: true, get: function () { return github_1.resolveGithubToken; } });
10
11
  var generator_1 = require("./generator");
11
12
  Object.defineProperty(exports, "ReadmeGenerator", { enumerable: true, get: function () { return generator_1.ReadmeGenerator; } });
12
13
  Object.defineProperty(exports, "updateReadmeMarkers", { enumerable: true, get: function () { return generator_1.updateReadmeMarkers; } });
14
+ var version_1 = require("./version");
15
+ Object.defineProperty(exports, "readPackageVersion", { enumerable: true, get: function () { return version_1.readPackageVersion; } });
13
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,mCAAwE;AAA/D,oGAAA,UAAU,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AACrD,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,yCAAmE;AAA1D,4GAAA,eAAe,OAAA;AAAE,gHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,mCAAwE;AAA/D,oGAAA,UAAU,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AACrD,mCAA4D;AAAnD,sGAAA,YAAY,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AACzC,yCAAmE;AAA1D,4GAAA,eAAe,OAAA;AAAE,gHAAA,mBAAmB,OAAA;AAC7C,qCAA+C;AAAtC,6GAAA,kBAAkB,OAAA"}
@@ -0,0 +1,3 @@
1
+ /** Read version from package.json (works from src/ via tsx/jest and from dist/ after build). */
2
+ export declare function readPackageVersion(): string;
3
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAGA,gGAAgG;AAChG,wBAAgB,kBAAkB,IAAI,MAAM,CAW3C"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readPackageVersion = readPackageVersion;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ /** Read version from package.json (works from src/ via tsx/jest and from dist/ after build). */
7
+ function readPackageVersion() {
8
+ try {
9
+ const pkgPath = (0, path_1.join)(__dirname, '..', 'package.json');
10
+ const pkg = JSON.parse((0, fs_1.readFileSync)(pkgPath, 'utf-8'));
11
+ if (typeof pkg.version === 'string' && pkg.version.length > 0) {
12
+ return pkg.version;
13
+ }
14
+ }
15
+ catch {
16
+ // fall through
17
+ }
18
+ return '0.0.0';
19
+ }
20
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;AAIA,gDAWC;AAfD,2BAAkC;AAClC,+BAA4B;AAE5B,gGAAgG;AAChG,SAAgB,kBAAkB;IAChC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,OAAO,EAAE,OAAO,CAAC,CAAyB,CAAC;QAC/E,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9D,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -97,10 +97,32 @@ npm run refresh -- -c examples/webywz.yml -r examples/demo.md
97
97
  ![React](https://img.shields.io/badge/-React-61DAFB)
98
98
  ```
99
99
 
100
+ #### custom · contrib-aquarium embed
101
+
102
+ `custom` 也可嵌入外部 SVG。用 [contrib-aquarium](https://github.com/webywz/contrib-aquarium) 生成鱼缸,再用 `--width` 写入展示宽(viewBox 固定等比,鱼不会被压扁):
103
+
104
+ A `custom` section can also embed an external SVG. Generate a tank with [contrib-aquarium](https://github.com/webywz/contrib-aquarium), pass `--width` for display size (viewBox stays proportional so fish are not squashed):
105
+
106
+ ```bash
107
+ npx contrib-aquarium@0.1.2 generate --user YOUR_LOGIN --out assets/aquarium.svg --width 640
108
+ ```
109
+
110
+ ```yaml
111
+ - type: custom
112
+ marker: AQUARIUM
113
+ title: 🐠 Contribution aquarium
114
+ content: |
115
+ <p align="center">
116
+ <img src="assets/aquarium.svg" width="640" alt="contribution aquarium" />
117
+ </p>
118
+ ```
119
+
120
+ 把生成步骤放进 daily-refresh(Action 输入 `width: "640"`),与 README `<img width>` 对齐即可。 · Put the generate step in daily-refresh (`width: "640"`) so it matches the README `<img width>`.
121
+
100
122
  ## 💡 提示
101
123
 
102
124
  1. **标记名称**: 确保每个章节的 `marker` 唯一
103
- 2. **GitHub Token**: 设置 `GITHUB_TOKEN` 环境变量以避免 API 速率限制
125
+ 2. **GitHub Token**: 设置 `GITHUB_TOKEN` 或 `GH_TOKEN` 环境变量以避免 API 速率限制
104
126
  3. **精选仓库**: 使用 `featuredRepos` 手动选择要展示的项目
105
127
  4. **自定义样式**: 在 `custom` 章节中使用 HTML 和 Markdown
106
128
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webywz/breathing-github-profile",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "可复用的活跃 GitHub profile README 生成器,支持每日自动刷新",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -30,7 +30,9 @@
30
30
  "license": "MIT",
31
31
  "files": [
32
32
  "dist",
33
- "examples"
33
+ "examples",
34
+ "README.md",
35
+ "LICENSE"
34
36
  ],
35
37
  "dependencies": {
36
38
  "yaml": "^2.3.4",
@@ -50,7 +52,7 @@
50
52
  "tsx": "^4.7.0"
51
53
  },
52
54
  "engines": {
53
- "node": ">=16.0.0"
55
+ "node": ">=18.18.0"
54
56
  },
55
57
  "publishConfig": {
56
58
  "access": "public"