contrib-aquarium 0.1.0 → 0.1.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 +126 -77
- package/dist/cli.js +26 -1
- package/dist/cli.js.map +1 -1
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +4 -1
- package/dist/generate.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/mapping.d.ts +2 -1
- package/dist/mapping.d.ts.map +1 -1
- package/dist/mapping.js +4 -10
- package/dist/mapping.js.map +1 -1
- package/dist/render.d.ts +8 -2
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +68 -48
- package/dist/render.js.map +1 -1
- package/dist/theme.d.ts +30 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +80 -0
- package/dist/theme.js.map +1 -0
- package/dist/types.d.ts +10 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,41 +1,61 @@
|
|
|
1
1
|
# contrib-aquarium
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
|
-
<img src="docs/aquarium.svg" width="860" alt="Living SVG aquarium
|
|
4
|
+
<img src="docs/aquarium.svg" width="860" alt="Living SVG aquarium from webywz GitHub contributions" />
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
8
|
<a href="https://github.com/webywz/contrib-aquarium/actions/workflows/ci.yml"><img src="https://github.com/webywz/contrib-aquarium/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
|
|
9
9
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-c4a35a?labelColor=1b2a2e" alt="MIT" /></a>
|
|
10
|
+
<a href="https://www.npmjs.com/package/contrib-aquarium"><img src="https://img.shields.io/npm/v/contrib-aquarium?color=2a7a5c&labelColor=1b2a2e" alt="npm version" /></a>
|
|
10
11
|
<a href="https://www.npmjs.com/package/contrib-aquarium"><img src="https://img.shields.io/badge/npx-contrib--aquarium-2a7a5c?labelColor=1b2a2e" alt="npx contrib-aquarium" /></a>
|
|
11
12
|
</p>
|
|
12
13
|
|
|
13
14
|
<p align="center">
|
|
14
15
|
<strong>A living SVG aquarium driven by a GitHub contribution graph.</strong><br/>
|
|
15
|
-
Drop one image
|
|
16
|
+
Drop one image into a profile README. Activity becomes fish, kelp, bubbles, and water.
|
|
16
17
|
</p>
|
|
17
18
|
|
|
18
19
|
<p align="center">
|
|
19
|
-
|
|
20
|
+
<strong>由 GitHub 贡献日历驱动的活体 SVG 鱼缸。</strong><br/>
|
|
21
|
+
把一张图放进 README,提交就变成鱼、海藻、气泡和水纹。
|
|
20
22
|
</p>
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
Self-contained SVG (CSS + SMIL) — no JavaScript in the embed, so GitHub can host it as a normal image. Dark water, brass rim; readable on light and dark themes.
|
|
23
25
|
|
|
24
|
-
|
|
26
|
+
自包含 SVG(CSS + SMIL),嵌入不需要 JS,可当普通图片用。暗水色 + 铜框,浅色 / 深色主题都站得住。
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
>
|
|
28
|
-
> v0.1.0 是第一版。发布到 npm 之前请 clone 本仓库,用 `npm run generate`。
|
|
28
|
+
`npx contrib-aquarium` · package `contrib-aquarium` · v0.1.1 · Node.js 18.18+
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
32
|
-
##
|
|
32
|
+
## Features · 特性
|
|
33
|
+
|
|
34
|
+
| | EN | 中文 |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| Mapping | Year total → fish count; streaks → kelp; last 14 days → bubbles | 全年总数 → 鱼数;连续打卡 → 海藻;近两周 → 气泡 |
|
|
37
|
+
| Sources | GraphQL calendar, public events, or deterministic mock | GraphQL 日历 / 公开 Events / 确定性 mock |
|
|
38
|
+
| Themes | `deep` · `reef` · `midnight` (palette only) | 三种配色,布局与映射不变 |
|
|
39
|
+
| Embed | Commit SVG, or refresh daily via composite Action | 提交 SVG,或用 Action 每日重画 |
|
|
40
|
+
| API | CLI + TypeScript library | CLI + 库 |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Install · 安装
|
|
33
45
|
|
|
34
46
|
```bash
|
|
35
47
|
npx contrib-aquarium generate --user YOUR_LOGIN --out aquarium.svg
|
|
48
|
+
|
|
49
|
+
# or globally
|
|
50
|
+
npm i -g contrib-aquarium
|
|
51
|
+
contrib-aquarium generate --user YOUR_LOGIN --out aquarium.svg
|
|
36
52
|
```
|
|
37
53
|
|
|
38
|
-
|
|
54
|
+
Token optional. Without one, public events or a username-hash mock still render — demos never go blank.
|
|
55
|
+
|
|
56
|
+
没有 token 也能跑:公开 Events 或按用户名哈希的演示日历会顶上,预览不会空。
|
|
57
|
+
|
|
58
|
+
From source:
|
|
39
59
|
|
|
40
60
|
```bash
|
|
41
61
|
git clone https://github.com/webywz/contrib-aquarium.git
|
|
@@ -44,97 +64,116 @@ npm install
|
|
|
44
64
|
npm run generate -- --user YOUR_LOGIN --out aquarium.svg
|
|
45
65
|
```
|
|
46
66
|
|
|
47
|
-
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Quick start · 快速开始
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# real calendar (needs token)
|
|
73
|
+
export GITHUB_TOKEN=ghp_...
|
|
74
|
+
npx contrib-aquarium generate --user webywz --out aquarium.svg
|
|
75
|
+
|
|
76
|
+
# recent public events only
|
|
77
|
+
npx contrib-aquarium generate --user webywz --source events --out aquarium.svg
|
|
78
|
+
|
|
79
|
+
# offline demo (byte-stable for a given UTC day)
|
|
80
|
+
npx contrib-aquarium generate --user webywz --source mock --out aquarium.svg
|
|
81
|
+
|
|
82
|
+
# theme
|
|
83
|
+
npx contrib-aquarium generate --user webywz --theme reef --out aquarium.svg
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
In a README:
|
|
48
87
|
|
|
49
88
|
```markdown
|
|
50
|
-
|
|
89
|
+
<p align="center">
|
|
90
|
+
<img src="aquarium.svg" width="860" alt="My contribution aquarium" />
|
|
91
|
+
</p>
|
|
51
92
|
```
|
|
52
93
|
|
|
53
|
-
|
|
94
|
+
Or a raw URL from another repo:
|
|
54
95
|
|
|
55
|
-
|
|
96
|
+
```markdown
|
|
97
|
+

|
|
98
|
+
```
|
|
56
99
|
|
|
57
100
|
---
|
|
58
101
|
|
|
59
102
|
## Data sources · 数据来源
|
|
60
103
|
|
|
61
|
-
`--source auto` (default) tries
|
|
104
|
+
`--source auto` (default) tries in order:
|
|
62
105
|
|
|
63
|
-
| Priority | Source |
|
|
106
|
+
| Priority | Source | Token | Result |
|
|
64
107
|
| --- | --- | --- | --- |
|
|
65
|
-
| 1 |
|
|
66
|
-
| 2 |
|
|
67
|
-
| 3 |
|
|
68
|
-
|
|
69
|
-
`--source graphql|events|mock` pins a single path.
|
|
108
|
+
| 1 | GraphQL `contributionsCollection` | yes (`--token`, `GITHUB_TOKEN`, or `GH_TOKEN`) | Full last-year calendar |
|
|
109
|
+
| 2 | Public events `GET /users/{login}/events/public` | no | Recent activity (~90 days retained) |
|
|
110
|
+
| 3 | Mock from username hash | no | Stable fake year for CI / demos / offline |
|
|
70
111
|
|
|
71
|
-
|
|
112
|
+
Pin a path with `--source graphql|events|mock`.
|
|
72
113
|
|
|
73
|
-
|
|
74
|
-
# real calendar
|
|
75
|
-
export GITHUB_TOKEN=ghp_...
|
|
76
|
-
npx contrib-aquarium generate --user webywz --out docs/aquarium.svg
|
|
77
|
-
|
|
78
|
-
# recent public events only
|
|
79
|
-
npx contrib-aquarium generate --user webywz --source events --out aquarium.svg
|
|
80
|
-
|
|
81
|
-
# offline demo (byte-stable for a given UTC day)
|
|
82
|
-
npx contrib-aquarium generate --user webywz --source mock --out aquarium.svg
|
|
83
|
-
```
|
|
114
|
+
`--source auto` 按上表回退。GraphQL 要 token,拿完整贡献日历;公开 Events 不要 token,只有最近活动;mock 用用户名哈希生成确定假日历,保证离线 / CI / 演示出图。
|
|
84
115
|
|
|
85
|
-
|
|
116
|
+
Fine-grained or classic PAT that can read public user data is enough. In Actions, `secrets.GITHUB_TOKEN` covers public calendars.
|
|
86
117
|
|
|
87
118
|
---
|
|
88
119
|
|
|
89
120
|
## How activity becomes an aquarium · 贡献如何变成鱼缸
|
|
90
121
|
|
|
91
|
-
| Signal | Becomes |
|
|
122
|
+
| Signal | Becomes · 变成 |
|
|
92
123
|
| --- | --- |
|
|
93
|
-
| Yearly contribution total | School size
|
|
94
|
-
| Busiest weeks | Larger koi /
|
|
95
|
-
| Current streak | Kelp height and count |
|
|
96
|
-
| Last 14 days | Bubble density |
|
|
97
|
-
| Each week's total | Pebble / reef bed
|
|
98
|
-
| Activity density |
|
|
124
|
+
| Yearly contribution total | School size 3–18 fish · 鱼数量 `round(3 + sqrt(total) × 0.48)` |
|
|
125
|
+
| Busiest weeks | Larger koi / centerpiece angelfish · 更大锦鲤 / 主鱼 |
|
|
126
|
+
| Current streak | Kelp height and count · 海藻高度与簇数 |
|
|
127
|
+
| Last 14 days | Bubble density · 气泡密度 |
|
|
128
|
+
| Each week's total | Pebble / reef bed · 沙地礁石起伏 |
|
|
129
|
+
| Activity density | Water and plant motion · 水纹与海藻摆动 |
|
|
99
130
|
|
|
100
|
-
Empty years still get a few wanderers.
|
|
131
|
+
Empty years still get a few wanderers. Same username + calendar snapshot → same tank.
|
|
101
132
|
|
|
102
|
-
|
|
103
|
-
| --- | --- |
|
|
104
|
-
| 全年贡献总数 | 鱼的数量(3–18)。`round(3 + sqrt(total) × 0.48)` |
|
|
105
|
-
| 最忙的几周 | 更大的锦鲤 / 一条主鱼(神仙鱼) |
|
|
106
|
-
| 当前连续提交 | 海藻高度与簇数 |
|
|
107
|
-
| 近 14 天 | 气泡密度 |
|
|
108
|
-
| 每周合计 | 沙地上的礁石起伏 |
|
|
109
|
-
| 活跃密度 | 水纹与海藻摆动幅度 |
|
|
133
|
+
空年份仍有几条游鱼。同一用户名 + 同一日历快照,画出同一座缸。
|
|
110
134
|
|
|
111
135
|
---
|
|
112
136
|
|
|
113
|
-
##
|
|
137
|
+
## Themes · 主题
|
|
114
138
|
|
|
115
|
-
|
|
139
|
+
`--theme` changes palette only — layout and activity mapping stay the same.
|
|
116
140
|
|
|
117
|
-
|
|
141
|
+
| Name | Feel · 观感 |
|
|
142
|
+
| --- | --- |
|
|
143
|
+
| `deep` (default) | Classic dark teal · 默认深青 |
|
|
144
|
+
| `reef` | Warmer tropical water · 暖色珊瑚 |
|
|
145
|
+
| `midnight` | Violet night, neon accents · 午夜紫 |
|
|
118
146
|
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
<img src="aquarium.svg" width="860" alt="My contribution aquarium" />
|
|
122
|
-
</p>
|
|
147
|
+
```bash
|
|
148
|
+
npx contrib-aquarium generate --user YOUR_LOGIN --theme midnight --out aquarium.svg
|
|
123
149
|
```
|
|
124
150
|
|
|
125
|
-
|
|
151
|
+
---
|
|
126
152
|
|
|
127
|
-
|
|
128
|
-
|
|
153
|
+
## Embed size · 嵌入尺寸
|
|
154
|
+
|
|
155
|
+
`--width` sets the SVG **display** width for README embeds. The internal `viewBox` stays `0 0 860 300`, so fish and layout scale proportionally — never squash.
|
|
156
|
+
|
|
157
|
+
`--width` 只改 SVG 的展示宽;内部 `viewBox` 仍是 `0 0 860 300`,鱼和构图等比缩放,不会挤扁。
|
|
158
|
+
|
|
159
|
+
| Flag | Default | |
|
|
160
|
+
| --- | --- | --- |
|
|
161
|
+
| `--width` | `860` | Display width in px · 展示宽度 |
|
|
162
|
+
| `--height` | proportional · 等比 | Display height; omit to keep aspect · 省略则保持比例 |
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# Narrower card for a profile README · 主页 README 窄卡
|
|
166
|
+
npx contrib-aquarium generate --user YOUR_LOGIN --width 640 --out aquarium.svg
|
|
167
|
+
|
|
168
|
+
# Then embed without an extra HTML width attribute · 嵌入时不必再写 HTML width
|
|
169
|
+
# <img src="aquarium.svg" alt="My contribution aquarium" />
|
|
129
170
|
```
|
|
130
171
|
|
|
131
|
-
|
|
172
|
+
---
|
|
132
173
|
|
|
133
|
-
|
|
174
|
+
## Embed daily · 每日嵌入
|
|
134
175
|
|
|
135
|
-
|
|
136
|
-
2. Uses this repo as a composite action
|
|
137
|
-
3. Commits `aquarium.svg` when the tank actually changed
|
|
176
|
+
Copy [`examples/github-action.yml`](examples/github-action.yml) into your **profile** repo (`USER/USER`) as `.github/workflows/aquarium.yml`. It runs on a daily cron + `workflow_dispatch`, uses this repo as a composite action, and commits `aquarium.svg` when the tank changed.
|
|
138
177
|
|
|
139
178
|
```yaml
|
|
140
179
|
- uses: webywz/contrib-aquarium@main
|
|
@@ -143,13 +182,11 @@ Copy [`examples/github-action.yml`](examples/github-action.yml) into your **prof
|
|
|
143
182
|
out: aquarium.svg
|
|
144
183
|
```
|
|
145
184
|
|
|
146
|
-
This project's
|
|
185
|
+
This project's demo refreshes the same way: [`.github/workflows/daily-aquarium.yml`](.github/workflows/daily-aquarium.yml) updates [`docs/aquarium.svg`](docs/aquarium.svg) for `webywz`.
|
|
147
186
|
|
|
148
|
-
|
|
187
|
+
把示例 workflow 拷到个人主页仓库即可每天重画。GitHub Camo may cache the README thumbnail briefly after a push; the file in the repo is current.
|
|
149
188
|
|
|
150
|
-
GitHub
|
|
151
|
-
|
|
152
|
-
GitHub 的 Camo 代理可能短暂缓存图片;仓库里的文件是新的,README 缩略图有时会晚几个小时。
|
|
189
|
+
GitHub 的 Camo 代理可能短暂缓存缩略图;仓库里的文件是新的。
|
|
153
190
|
|
|
154
191
|
---
|
|
155
192
|
|
|
@@ -158,14 +195,19 @@ GitHub 的 Camo 代理可能短暂缓存图片;仓库里的文件是新的,R
|
|
|
158
195
|
```
|
|
159
196
|
contrib-aquarium generate --user <login> [--out aquarium.svg]
|
|
160
197
|
[--source auto|graphql|events|mock]
|
|
198
|
+
[--theme deep|reef|midnight]
|
|
199
|
+
[--width <px>] [--height <px>]
|
|
161
200
|
[--token <gh_token>]
|
|
162
201
|
```
|
|
163
202
|
|
|
164
203
|
| Flag | Default | |
|
|
165
204
|
| --- | --- | --- |
|
|
166
205
|
| `--user` | required | GitHub login |
|
|
167
|
-
| `--out` | `aquarium.svg` | Output path (
|
|
168
|
-
| `--source` | `auto` | See data sources
|
|
206
|
+
| `--out` | `aquarium.svg` | Output path (dirs created) |
|
|
207
|
+
| `--source` | `auto` | See data sources |
|
|
208
|
+
| `--theme` | `deep` | `deep` · `reef` · `midnight` |
|
|
209
|
+
| `--width` | `860` | Display width (viewBox fixed) · 展示宽 |
|
|
210
|
+
| `--height` | proportional · 等比 | Display height · 展示高 |
|
|
169
211
|
| `--token` | `$GITHUB_TOKEN` / `$GH_TOKEN` | GraphQL auth |
|
|
170
212
|
|
|
171
213
|
```bash
|
|
@@ -177,7 +219,7 @@ npm run lint
|
|
|
177
219
|
|
|
178
220
|
---
|
|
179
221
|
|
|
180
|
-
## Library
|
|
222
|
+
## Library · 库
|
|
181
223
|
|
|
182
224
|
```ts
|
|
183
225
|
import { generateAquarium, renderAquarium, mockActivity } from "contrib-aquarium";
|
|
@@ -185,16 +227,23 @@ import { generateAquarium, renderAquarium, mockActivity } from "contrib-aquarium
|
|
|
185
227
|
const { svg, activity } = await generateAquarium({
|
|
186
228
|
user: "webywz",
|
|
187
229
|
source: "auto",
|
|
230
|
+
theme: "reef",
|
|
188
231
|
});
|
|
189
232
|
|
|
190
|
-
// or draw a fixture
|
|
191
233
|
const svgFromMock = renderAquarium(mockActivity("webywz", new Date("2026-10-29")));
|
|
234
|
+
|
|
235
|
+
// Narrower embed · 窄嵌入(viewBox 仍 860×300)
|
|
236
|
+
const narrow = renderAquarium(mockActivity("webywz"), "deep", { width: 640 });
|
|
192
237
|
```
|
|
193
238
|
|
|
194
|
-
|
|
239
|
+
Also exported: `loadActivity`, `fetchGraphqlActivity`, `fetchEventsActivity`, `getTheme`, `parseTheme`, `THEME_NAMES`, `resolveSvgDisplaySize`, and size helpers. Types ship with the package.
|
|
240
|
+
|
|
241
|
+
另导出活动加载、主题解析、`resolveSvgDisplaySize` 与尺寸常量;TypeScript 类型随包发布。
|
|
195
242
|
|
|
196
243
|
---
|
|
197
244
|
|
|
198
|
-
##
|
|
245
|
+
## Links · 链接
|
|
199
246
|
|
|
200
|
-
[
|
|
247
|
+
- npm: [contrib-aquarium](https://www.npmjs.com/package/contrib-aquarium)
|
|
248
|
+
- Live on profile: [webywz/webywz](https://github.com/webywz/webywz)
|
|
249
|
+
- License: [MIT](LICENSE)
|
package/dist/cli.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
3
3
|
import { dirname, resolve } from "node:path";
|
|
4
4
|
import { generateAquarium } from "./generate.js";
|
|
5
|
+
import { parseTheme } from "./theme.js";
|
|
5
6
|
import { readPackageVersion } from "./util.js";
|
|
6
7
|
function parseArgs(argv) {
|
|
7
8
|
const args = argv.slice(2);
|
|
@@ -40,12 +41,17 @@ Turn a GitHub year into a living SVG aquarium.
|
|
|
40
41
|
Usage:
|
|
41
42
|
contrib-aquarium generate --user <login> [--out aquarium.svg]
|
|
42
43
|
[--source auto|graphql|events|mock]
|
|
44
|
+
[--theme deep|reef|midnight]
|
|
45
|
+
[--width <px>] [--height <px>]
|
|
43
46
|
[--token <gh_token>]
|
|
44
47
|
|
|
45
48
|
Options:
|
|
46
49
|
--user GitHub login (required)
|
|
47
50
|
--out Output path (default: aquarium.svg)
|
|
48
51
|
--source auto (default), graphql, events, or mock
|
|
52
|
+
--theme Color theme: deep (default), reef, or midnight
|
|
53
|
+
--width SVG display width in px (default: 860); viewBox stays 860×300
|
|
54
|
+
--height SVG display height in px (default: proportional to --width)
|
|
49
55
|
--token GitHub token; falls back to GITHUB_TOKEN / GH_TOKEN
|
|
50
56
|
--help Show this message
|
|
51
57
|
--version Print version
|
|
@@ -56,6 +62,7 @@ Data sources (auto):
|
|
|
56
62
|
3. Deterministic mock from username always works; offline demos
|
|
57
63
|
|
|
58
64
|
The SVG is self-contained (CSS + SMIL). Drop it in a README as an image.
|
|
65
|
+
Use --width for narrower README embeds without squashing the fish.
|
|
59
66
|
`;
|
|
60
67
|
}
|
|
61
68
|
function asString(value) {
|
|
@@ -69,6 +76,18 @@ function parseSource(value) {
|
|
|
69
76
|
}
|
|
70
77
|
throw new Error(`Unknown --source "${value}". Use auto, graphql, events, or mock.`);
|
|
71
78
|
}
|
|
79
|
+
function parsePositiveNumber(flag, value) {
|
|
80
|
+
if (value === undefined)
|
|
81
|
+
return undefined;
|
|
82
|
+
if (typeof value !== "string") {
|
|
83
|
+
throw new Error(`Missing value for --${flag}`);
|
|
84
|
+
}
|
|
85
|
+
const n = Number(value);
|
|
86
|
+
if (!Number.isFinite(n) || n <= 0) {
|
|
87
|
+
throw new Error(`Invalid --${flag} "${value}". Use a positive number.`);
|
|
88
|
+
}
|
|
89
|
+
return n;
|
|
90
|
+
}
|
|
72
91
|
async function run(argv) {
|
|
73
92
|
let parsed;
|
|
74
93
|
try {
|
|
@@ -98,14 +117,20 @@ async function run(argv) {
|
|
|
98
117
|
}
|
|
99
118
|
const out = resolve(asString(flags.out) ?? "aquarium.svg");
|
|
100
119
|
try {
|
|
120
|
+
const theme = parseTheme(asString(flags.theme));
|
|
121
|
+
const width = parsePositiveNumber("width", flags.width);
|
|
122
|
+
const height = parsePositiveNumber("height", flags.height);
|
|
101
123
|
const { svg, activity } = await generateAquarium({
|
|
102
124
|
user,
|
|
103
125
|
token: asString(flags.token),
|
|
104
126
|
source: parseSource(flags.source),
|
|
127
|
+
theme,
|
|
128
|
+
width,
|
|
129
|
+
height,
|
|
105
130
|
});
|
|
106
131
|
await mkdir(dirname(out), { recursive: true });
|
|
107
132
|
await writeFile(out, svg, "utf8");
|
|
108
|
-
console.error(`contrib-aquarium · ${activity.login} · source=${activity.source} · ${activity.totalContributions} contributions`);
|
|
133
|
+
console.error(`contrib-aquarium · ${activity.login} · source=${activity.source} · theme=${theme} · ${activity.totalContributions} contributions`);
|
|
109
134
|
console.error(`wrote ${out}`);
|
|
110
135
|
return 0;
|
|
111
136
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAK/C,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAY,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAClB,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,IAAI;IACX,OAAO,oBAAoB,kBAAkB,EAAE
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/generate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElE,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElE,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAOzB"}
|
package/dist/generate.js
CHANGED
|
@@ -2,7 +2,10 @@ import { loadActivity } from "./activity.js";
|
|
|
2
2
|
import { renderAquarium } from "./render.js";
|
|
3
3
|
export async function generateAquarium(options) {
|
|
4
4
|
const activity = await loadActivity(options);
|
|
5
|
-
const svg = renderAquarium(activity
|
|
5
|
+
const svg = renderAquarium(activity, options.theme ?? "deep", {
|
|
6
|
+
width: options.width,
|
|
7
|
+
height: options.height,
|
|
8
|
+
});
|
|
6
9
|
return { svg, activity };
|
|
7
10
|
}
|
|
8
11
|
//# sourceMappingURL=generate.js.map
|
package/dist/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAwB;IAExB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAwB;IAExB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,IAAI,MAAM,EAAE;QAC5D,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC3B,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export { generateAquarium } from "./generate.js";
|
|
2
2
|
export { loadActivity, mockActivity, fetchGraphqlActivity, fetchEventsActivity, ActivityError } from "./activity.js";
|
|
3
|
-
export { renderAquarium, SVG_WIDTH, SVG_HEIGHT, countSvgElements } from "./render.js";
|
|
3
|
+
export { renderAquarium, resolveSvgDisplaySize, SVG_WIDTH, SVG_HEIGHT, countSvgElements } from "./render.js";
|
|
4
4
|
export { mapAquarium, mapFishCount, mapPlantCount, mapBubbleCount, currentStreak, recentTotal, flattenDays, } from "./mapping.js";
|
|
5
|
-
export type { Activity, AquariumModel, ContributionDay, ContributionWeek, DataSource, GenerateOptions, GenerateResult, LoadOptions, LoadSource, } from "./types.js";
|
|
5
|
+
export type { Activity, AquariumModel, ContributionDay, ContributionWeek, DataSource, GenerateOptions, GenerateResult, LoadOptions, LoadSource, SvgSizeOptions, } from "./types.js";
|
|
6
6
|
export { FISH_MIN, FISH_MAX, PLANT_MIN, PLANT_MAX, BUBBLE_MIN, BUBBLE_MAX } from "./types.js";
|
|
7
|
+
export { getTheme, parseTheme, THEME_NAMES } from "./theme.js";
|
|
8
|
+
export type { Theme, ThemeName } from "./theme.js";
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,QAAQ,EACR,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,cAAc,EACd,WAAW,EACX,UAAU,EACV,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC/D,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { generateAquarium } from "./generate.js";
|
|
2
2
|
export { loadActivity, mockActivity, fetchGraphqlActivity, fetchEventsActivity, ActivityError } from "./activity.js";
|
|
3
|
-
export { renderAquarium, SVG_WIDTH, SVG_HEIGHT, countSvgElements } from "./render.js";
|
|
3
|
+
export { renderAquarium, resolveSvgDisplaySize, SVG_WIDTH, SVG_HEIGHT, countSvgElements } from "./render.js";
|
|
4
4
|
export { mapAquarium, mapFishCount, mapPlantCount, mapBubbleCount, currentStreak, recentTotal, flattenDays, } from "./mapping.js";
|
|
5
5
|
export { FISH_MIN, FISH_MAX, PLANT_MIN, PLANT_MAX, BUBBLE_MIN, BUBBLE_MAX } from "./types.js";
|
|
6
|
+
export { getTheme, parseTheme, THEME_NAMES } from "./theme.js";
|
|
6
7
|
//# 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":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,cAAc,CAAC;AAatB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/mapping.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Activity, type AquariumModel, type ContributionDay } from "./types.js";
|
|
2
|
+
import { type ThemeName } from "./theme.js";
|
|
2
3
|
export declare function flattenDays(activity: Activity): ContributionDay[];
|
|
3
4
|
/**
|
|
4
5
|
* Map yearly totals onto a readable school size.
|
|
@@ -15,5 +16,5 @@ export declare function mapBubbleCount(recent14Total: number): number;
|
|
|
15
16
|
*/
|
|
16
17
|
export declare function currentStreak(days: ContributionDay[], todayIso?: string): number;
|
|
17
18
|
export declare function recentTotal(days: ContributionDay[], window?: number): number;
|
|
18
|
-
export declare function mapAquarium(activity: Activity): AquariumModel;
|
|
19
|
+
export declare function mapAquarium(activity: Activity, themeName?: ThemeName): AquariumModel;
|
|
19
20
|
//# sourceMappingURL=mapping.d.ts.map
|
package/dist/mapping.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,QAAQ,EACb,KAAK,aAAa,EAElB,KAAK,eAAe,EAKrB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,QAAQ,EACb,KAAK,aAAa,EAElB,KAAK,eAAe,EAKrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAGlE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,eAAe,EAAE,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAS/D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAU5E;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,eAAe,EAAE,EACvB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAeR;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,MAAM,SAAK,GAAG,MAAM,CAGxE;AAYD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,GAAE,SAAkB,GAAG,aAAa,CAmH5F"}
|
package/dist/mapping.js
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import { BUBBLE_MAX, BUBBLE_MIN, FISH_MAX, FISH_MIN, PLANT_MAX, PLANT_MIN, } from "./types.js";
|
|
2
|
+
import { getTheme } from "./theme.js";
|
|
2
3
|
import { clamp, hashString, lerp, mulberry32, pick } from "./util.js";
|
|
3
|
-
const PALETTES = [
|
|
4
|
-
{ body: "#e6c07b", accent: "#c46b4a" },
|
|
5
|
-
{ body: "#d9a441", accent: "#b87333" },
|
|
6
|
-
{ body: "#5fa8a3", accent: "#2f6f74" },
|
|
7
|
-
{ body: "#c5d4d1", accent: "#7f9996" },
|
|
8
|
-
{ body: "#d4896a", accent: "#9e4d3c" },
|
|
9
|
-
{ body: "#7eb3c9", accent: "#3d6f88" },
|
|
10
|
-
];
|
|
11
4
|
export function flattenDays(activity) {
|
|
12
5
|
return activity.weeks.flatMap((week) => week.days);
|
|
13
6
|
}
|
|
@@ -70,7 +63,8 @@ function speciesForRank(rank, intensity, rng) {
|
|
|
70
63
|
return "koi";
|
|
71
64
|
return "tetra";
|
|
72
65
|
}
|
|
73
|
-
export function mapAquarium(activity) {
|
|
66
|
+
export function mapAquarium(activity, themeName = "deep") {
|
|
67
|
+
const theme = getTheme(themeName);
|
|
74
68
|
const days = flattenDays(activity);
|
|
75
69
|
const dayCount = Math.max(days.length, 1);
|
|
76
70
|
const activeDays = days.filter((day) => day.count > 0).length;
|
|
@@ -106,7 +100,7 @@ export function mapAquarium(activity) {
|
|
|
106
100
|
y = 56 + rng() * 168;
|
|
107
101
|
}
|
|
108
102
|
usedY.push(y);
|
|
109
|
-
const palette = pick(rng,
|
|
103
|
+
const palette = pick(rng, theme.fish);
|
|
110
104
|
const duration = lerp(18, 9, turbulence) + rng() * 8 + size * 0.18;
|
|
111
105
|
fish.push({
|
|
112
106
|
id: i,
|
package/dist/mapping.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,GASV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"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"}
|
package/dist/render.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ThemeName } from "./theme.js";
|
|
2
|
+
import type { Activity, SvgSizeOptions } from "./types.js";
|
|
2
3
|
export declare const SVG_WIDTH = 860;
|
|
3
4
|
export declare const SVG_HEIGHT = 300;
|
|
4
|
-
|
|
5
|
+
/** Resolve SVG presentation size. viewBox stays SVG_WIDTH×SVG_HEIGHT so fish never stretch. */
|
|
6
|
+
export declare function resolveSvgDisplaySize(size?: SvgSizeOptions): {
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
};
|
|
10
|
+
export declare function renderAquarium(activity: Activity, themeName?: ThemeName, size?: SvgSizeOptions): string;
|
|
5
11
|
export declare function countSvgElements(svg: string, kind: "fish" | "plant" | "bubble"): number;
|
|
6
12
|
//# sourceMappingURL=render.d.ts.map
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EACV,QAAQ,EAMR,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,UAAU,MAAM,CAAC;AAG9B,+FAA+F;AAC/F,wBAAgB,qBAAqB,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAY9F;AAgRD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,QAAQ,EAClB,SAAS,GAAE,SAAkB,EAC7B,IAAI,CAAC,EAAE,cAAc,GACpB,MAAM,CA8CR;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAGvF"}
|
package/dist/render.js
CHANGED
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
import { mapAquarium } from "./mapping.js";
|
|
2
|
+
import { getTheme } from "./theme.js";
|
|
2
3
|
import { escapeXml, formatRange } from "./util.js";
|
|
3
4
|
export const SVG_WIDTH = 860;
|
|
4
5
|
export const SVG_HEIGHT = 300;
|
|
5
|
-
|
|
6
|
+
/** Resolve SVG presentation size. viewBox stays SVG_WIDTH×SVG_HEIGHT so fish never stretch. */
|
|
7
|
+
export function resolveSvgDisplaySize(size) {
|
|
8
|
+
const aspect = SVG_HEIGHT / SVG_WIDTH;
|
|
9
|
+
if (size?.width !== undefined && size?.height !== undefined) {
|
|
10
|
+
return { width: size.width, height: size.height };
|
|
11
|
+
}
|
|
12
|
+
if (size?.width !== undefined) {
|
|
13
|
+
return { width: size.width, height: Math.round(size.width * aspect) };
|
|
14
|
+
}
|
|
15
|
+
if (size?.height !== undefined) {
|
|
16
|
+
return { width: Math.round(size.height / aspect), height: size.height };
|
|
17
|
+
}
|
|
18
|
+
return { width: SVG_WIDTH, height: SVG_HEIGHT };
|
|
19
|
+
}
|
|
6
20
|
function fmt(n, digits = 2) {
|
|
7
21
|
return n.toFixed(digits).replace(/\.?0+$/, "");
|
|
8
22
|
}
|
|
@@ -75,8 +89,8 @@ function bladePath(x, height, lean, width) {
|
|
|
75
89
|
Q ${fmt(x + lean, 1)} ${fmt(top + 8, 1)} ${fmt(x + lean * 0.2, 1)} ${fmt(top, 1)}
|
|
76
90
|
Q ${fmt(x + lean * 0.55 + width, 1)} ${fmt(268 - height * 0.62, 1)} ${fmt(x + width * 0.35, 1)} 268 Z`;
|
|
77
91
|
}
|
|
78
|
-
function drawPlant(plant) {
|
|
79
|
-
const color =
|
|
92
|
+
function drawPlant(plant, theme) {
|
|
93
|
+
const color = theme.kelp[plant.palette % theme.kelp.length];
|
|
80
94
|
const blades = [];
|
|
81
95
|
for (let i = 0; i < plant.blades; i++) {
|
|
82
96
|
const lean = (i - (plant.blades - 1) / 2) * 16 + (i % 2 === 0 ? 6 : -4);
|
|
@@ -92,16 +106,16 @@ function drawBubble(bubble) {
|
|
|
92
106
|
<circle cx="${fmt(bubble.x - bubble.r * 0.28, 1)}" cy="${fmt(bubble.startY - bubble.r * 0.3, 1)}" r="${fmt(Math.max(0.4, bubble.r * 0.28), 2)}" fill="rgba(255,255,255,0.45)"/>
|
|
93
107
|
</g>`;
|
|
94
108
|
}
|
|
95
|
-
function drawReef(columns) {
|
|
109
|
+
function drawReef(columns, theme) {
|
|
96
110
|
return columns
|
|
97
111
|
.map((col) => {
|
|
98
112
|
const cx = col.x + col.width / 2;
|
|
99
113
|
const pebbles = [
|
|
100
|
-
`<ellipse cx="${fmt(cx, 2)}" cy="264.5" rx="${fmt(Math.max(2.2, col.width * 0.72), 2)}" ry="${fmt(Math.max(2, col.height * 0.34), 2)}" fill="
|
|
101
|
-
`<ellipse cx="${fmt(cx + col.width * 0.18, 2)}" cy="${fmt(263.2 - col.height * 0.22, 2)}" rx="${fmt(Math.max(1.4, col.width * 0.4), 2)}" ry="${fmt(Math.max(1.5, col.height * 0.28), 2)}" fill="
|
|
114
|
+
`<ellipse cx="${fmt(cx, 2)}" cy="264.5" rx="${fmt(Math.max(2.2, col.width * 0.72), 2)}" ry="${fmt(Math.max(2, col.height * 0.34), 2)}" fill="${theme.reef[0]}"/>`,
|
|
115
|
+
`<ellipse cx="${fmt(cx + col.width * 0.18, 2)}" cy="${fmt(263.2 - col.height * 0.22, 2)}" rx="${fmt(Math.max(1.4, col.width * 0.4), 2)}" ry="${fmt(Math.max(1.5, col.height * 0.28), 2)}" fill="${theme.reef[1]}"/>`,
|
|
102
116
|
];
|
|
103
117
|
if (col.height > 12) {
|
|
104
|
-
pebbles.push(`<ellipse cx="${fmt(cx - col.width * 0.12, 2)}" cy="${fmt(261.5 - col.height * 0.42, 2)}" rx="${fmt(col.width * 0.28, 2)}" ry="${fmt(col.height * 0.22, 2)}" fill="
|
|
118
|
+
pebbles.push(`<ellipse cx="${fmt(cx - col.width * 0.12, 2)}" cy="${fmt(261.5 - col.height * 0.42, 2)}" rx="${fmt(col.width * 0.28, 2)}" ry="${fmt(col.height * 0.22, 2)}" fill="${theme.reef[2]}"/>`);
|
|
105
119
|
}
|
|
106
120
|
return `<g opacity="${fmt(col.opacity, 2)}">${pebbles.join("")}</g>`;
|
|
107
121
|
})
|
|
@@ -114,7 +128,7 @@ function sourceNote(source) {
|
|
|
114
128
|
return "seeded from public events";
|
|
115
129
|
return "demo pattern from username";
|
|
116
130
|
}
|
|
117
|
-
function caption(activity, model) {
|
|
131
|
+
function caption(activity, model, theme) {
|
|
118
132
|
const login = escapeXml(activity.login.toUpperCase());
|
|
119
133
|
const tracking = activity.login.length > 16 ? "0.08em" : "0.22em";
|
|
120
134
|
const total = activity.totalContributions.toLocaleString("en-US");
|
|
@@ -123,37 +137,39 @@ function caption(activity, model) {
|
|
|
123
137
|
const extras = model.streak > 1 ? ` · ${model.streak}-day streak` : "";
|
|
124
138
|
const sourceLabel = activity.source === "graphql"
|
|
125
139
|
? ""
|
|
126
|
-
: `<text x="828" y="32" fill="
|
|
140
|
+
: `<text x="828" y="32" fill="${theme.caption.note}" font-size="8" font-family="Georgia, serif" text-anchor="end">${note}</text>`;
|
|
127
141
|
return `
|
|
128
|
-
<text x="32" y="268" fill="
|
|
129
|
-
<text x="32" y="282" fill="
|
|
142
|
+
<text x="32" y="268" fill="${theme.caption.title}" font-size="13" font-family="Palatino, 'Palatino Linotype', 'Book Antiqua', Georgia, serif" letter-spacing="${tracking}">${login}</text>
|
|
143
|
+
<text x="32" y="282" fill="${theme.caption.meta}" font-size="9.5" font-family="Georgia, 'Iowan Old Style', serif">${total} contributions · ${range}${extras}</text>
|
|
130
144
|
${sourceLabel}`;
|
|
131
145
|
}
|
|
132
|
-
function defs() {
|
|
146
|
+
function defs(theme) {
|
|
147
|
+
const [w0, w1, w2] = theme.water;
|
|
148
|
+
const [s0, s1] = theme.sand;
|
|
133
149
|
return `<defs>
|
|
134
150
|
<linearGradient id="water" x1="0" y1="0" x2="0" y2="1">
|
|
135
|
-
<stop offset="0%" stop-color="
|
|
136
|
-
<stop offset="38%" stop-color="
|
|
137
|
-
<stop offset="100%" stop-color="
|
|
151
|
+
<stop offset="0%" stop-color="${w0}"/>
|
|
152
|
+
<stop offset="38%" stop-color="${w1}"/>
|
|
153
|
+
<stop offset="100%" stop-color="${w2}"/>
|
|
138
154
|
</linearGradient>
|
|
139
155
|
<radialGradient id="glow" cx="46%" cy="8%" r="72%">
|
|
140
|
-
<stop offset="0%" stop-color="
|
|
141
|
-
<stop offset="42%" stop-color="
|
|
156
|
+
<stop offset="0%" stop-color="${theme.glow.color}" stop-opacity="0.38"/>
|
|
157
|
+
<stop offset="42%" stop-color="${theme.glow.mid}" stop-opacity="0.12"/>
|
|
142
158
|
<stop offset="100%" stop-color="#061018" stop-opacity="0"/>
|
|
143
159
|
</radialGradient>
|
|
144
160
|
<linearGradient id="sand" x1="0" y1="0" x2="0" y2="1">
|
|
145
|
-
<stop offset="0%" stop-color="
|
|
146
|
-
<stop offset="100%" stop-color="
|
|
161
|
+
<stop offset="0%" stop-color="${s0}"/>
|
|
162
|
+
<stop offset="100%" stop-color="${s1}"/>
|
|
147
163
|
</linearGradient>
|
|
148
164
|
<linearGradient id="film" x1="0" y1="0" x2="0" y2="1">
|
|
149
|
-
<stop offset="0%" stop-color="
|
|
150
|
-
<stop offset="100%" stop-color="
|
|
165
|
+
<stop offset="0%" stop-color="${theme.film}" stop-opacity="0.28"/>
|
|
166
|
+
<stop offset="100%" stop-color="${theme.film}" stop-opacity="0"/>
|
|
151
167
|
</linearGradient>
|
|
152
168
|
<linearGradient id="glass" x1="0" y1="0" x2="1" y2="0">
|
|
153
|
-
<stop offset="0%" stop-color="
|
|
154
|
-
<stop offset="18%" stop-color="
|
|
155
|
-
<stop offset="82%" stop-color="
|
|
156
|
-
<stop offset="100%" stop-color="
|
|
169
|
+
<stop offset="0%" stop-color="${theme.glass}" stop-opacity="0.16"/>
|
|
170
|
+
<stop offset="18%" stop-color="${theme.glass}" stop-opacity="0"/>
|
|
171
|
+
<stop offset="82%" stop-color="${theme.glass}" stop-opacity="0"/>
|
|
172
|
+
<stop offset="100%" stop-color="${theme.glass}" stop-opacity="0.12"/>
|
|
157
173
|
</linearGradient>
|
|
158
174
|
<filter id="soft" x="-8%" y="-8%" width="116%" height="116%">
|
|
159
175
|
<feGaussianBlur stdDeviation="0.4" result="b"/>
|
|
@@ -216,26 +232,28 @@ function styles(model) {
|
|
|
216
232
|
}
|
|
217
233
|
</style>`;
|
|
218
234
|
}
|
|
219
|
-
function rocks() {
|
|
235
|
+
function rocks(theme) {
|
|
236
|
+
const [a, b, c] = theme.rock;
|
|
220
237
|
return `
|
|
221
|
-
<ellipse cx="118" cy="266" rx="38" ry="11" fill="
|
|
222
|
-
<ellipse cx="108" cy="258" rx="22" ry="14" fill="
|
|
223
|
-
<ellipse cx="132" cy="260" rx="14" ry="9" fill="
|
|
224
|
-
<ellipse cx="742" cy="268" rx="46" ry="12" fill="
|
|
225
|
-
<ellipse cx="728" cy="258" rx="20" ry="13" fill="
|
|
226
|
-
<ellipse cx="758" cy="261" rx="16" ry="10" fill="
|
|
227
|
-
<ellipse cx="430" cy="270" rx="18" ry="6" fill="
|
|
238
|
+
<ellipse cx="118" cy="266" rx="38" ry="11" fill="${a}" opacity="0.85"/>
|
|
239
|
+
<ellipse cx="108" cy="258" rx="22" ry="14" fill="${b}"/>
|
|
240
|
+
<ellipse cx="132" cy="260" rx="14" ry="9" fill="${c}"/>
|
|
241
|
+
<ellipse cx="742" cy="268" rx="46" ry="12" fill="${a}" opacity="0.8"/>
|
|
242
|
+
<ellipse cx="728" cy="258" rx="20" ry="13" fill="${b}"/>
|
|
243
|
+
<ellipse cx="758" cy="261" rx="16" ry="10" fill="${c}"/>
|
|
244
|
+
<ellipse cx="430" cy="270" rx="18" ry="6" fill="${b}" opacity="0.7"/>`;
|
|
228
245
|
}
|
|
229
|
-
function rays() {
|
|
246
|
+
function rays(theme) {
|
|
247
|
+
const [r0, r1, r2] = theme.ray;
|
|
230
248
|
return `
|
|
231
249
|
<g class="ray" opacity="0.14">
|
|
232
|
-
<polygon points="210,12 268,12 318,268 168,268" fill="
|
|
250
|
+
<polygon points="210,12 268,12 318,268 168,268" fill="${r0}"/>
|
|
233
251
|
</g>
|
|
234
252
|
<g class="ray" opacity="0.1" style="animation-delay:-2.4s">
|
|
235
|
-
<polygon points="470,12 510,12 548,268 430,268" fill="
|
|
253
|
+
<polygon points="470,12 510,12 548,268 430,268" fill="${r1}"/>
|
|
236
254
|
</g>
|
|
237
255
|
<g class="ray" opacity="0.08" style="animation-delay:-4.1s">
|
|
238
|
-
<polygon points="620,12 648,12 700,268 560,268" fill="
|
|
256
|
+
<polygon points="620,12 648,12 700,268 560,268" fill="${r2}"/>
|
|
239
257
|
</g>`;
|
|
240
258
|
}
|
|
241
259
|
function surface() {
|
|
@@ -248,33 +266,35 @@ function surface() {
|
|
|
248
266
|
</path>
|
|
249
267
|
<path class="shimmer" fill="none" stroke="rgba(186,232,228,0.45)" stroke-width="1.1" d="M24,22 Q140,14 250,24 T480,20 T836,26"/>`;
|
|
250
268
|
}
|
|
251
|
-
export function renderAquarium(activity) {
|
|
252
|
-
const
|
|
269
|
+
export function renderAquarium(activity, themeName = "deep", size) {
|
|
270
|
+
const theme = getTheme(themeName);
|
|
271
|
+
const model = mapAquarium(activity, themeName);
|
|
272
|
+
const { width: displayW, height: displayH } = resolveSvgDisplaySize(size);
|
|
253
273
|
const label = escapeXml(`GitHub contribution aquarium for ${activity.login} — ${activity.totalContributions} contributions`);
|
|
254
274
|
const plantsBack = model.plants
|
|
255
275
|
.filter((_, i) => i % 2 === 0)
|
|
256
|
-
.map(drawPlant)
|
|
276
|
+
.map((p) => drawPlant(p, theme))
|
|
257
277
|
.join("");
|
|
258
278
|
const plantsFront = model.plants
|
|
259
279
|
.filter((_, i) => i % 2 === 1)
|
|
260
|
-
.map(drawPlant)
|
|
280
|
+
.map((p) => drawPlant(p, theme))
|
|
261
281
|
.join("");
|
|
262
282
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
263
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
283
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${displayW}" height="${displayH}" viewBox="0 0 ${SVG_WIDTH} ${SVG_HEIGHT}" preserveAspectRatio="xMidYMid meet" role="img" aria-label="${label}" data-user="${escapeXml(activity.login)}" data-source="${activity.source}" data-total="${activity.totalContributions}" data-theme="${theme.name}">
|
|
264
284
|
<title>${label}</title>
|
|
265
|
-
${defs()}
|
|
285
|
+
${defs(theme)}
|
|
266
286
|
${styles(model)}
|
|
267
|
-
<rect width="${SVG_WIDTH}" height="${SVG_HEIGHT}" rx="24" fill="
|
|
287
|
+
<rect width="${SVG_WIDTH}" height="${SVG_HEIGHT}" rx="24" fill="${theme.water[2]}"/>
|
|
268
288
|
<g clip-path="url(#tank)">
|
|
269
289
|
<rect x="10" y="10" width="840" height="280" fill="url(#water)"/>
|
|
270
290
|
<rect x="10" y="10" width="840" height="280" fill="url(#glow)"/>
|
|
271
|
-
${rays()}
|
|
291
|
+
${rays(theme)}
|
|
272
292
|
<rect x="10" y="10" width="840" height="280" filter="url(#haze)" opacity="0.55"/>
|
|
273
293
|
${plantsBack}
|
|
274
294
|
<path d="M10,252 C80,246 160,258 250,250 C360,240 470,258 560,249 C670,238 760,256 850,248 L850,290 L10,290 Z" fill="url(#sand)"/>
|
|
275
295
|
<path d="M10,252 C80,246 160,258 250,250 C360,240 470,258 560,249 C670,238 760,256 850,248" fill="none" stroke="rgba(210,190,150,0.22)" stroke-width="1.2"/>
|
|
276
|
-
${drawReef(model.reef)}
|
|
277
|
-
${rocks()}
|
|
296
|
+
${drawReef(model.reef, theme)}
|
|
297
|
+
${rocks(theme)}
|
|
278
298
|
<g filter="url(#soft)">
|
|
279
299
|
${model.fish.map(drawFish).join("")}
|
|
280
300
|
</g>
|
|
@@ -282,7 +302,7 @@ export function renderAquarium(activity) {
|
|
|
282
302
|
${model.bubbles.map(drawBubble).join("")}
|
|
283
303
|
${surface()}
|
|
284
304
|
<rect x="10" y="10" width="840" height="280" fill="url(#glass)"/>
|
|
285
|
-
${caption(activity, model)}
|
|
305
|
+
${caption(activity, model, theme)}
|
|
286
306
|
</g>
|
|
287
307
|
<rect x="10.6" y="10.6" width="838.8" height="278.8" rx="21" fill="none" stroke="rgba(198,176,122,0.55)" stroke-width="1.4"/>
|
|
288
308
|
<rect x="13" y="13" width="834" height="274" rx="19" fill="none" stroke="rgba(214,236,232,0.16)" stroke-width="0.8"/>
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
package/dist/theme.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const THEME_NAMES: readonly ["deep", "reef", "midnight"];
|
|
2
|
+
export type ThemeName = (typeof THEME_NAMES)[number];
|
|
3
|
+
export type Theme = {
|
|
4
|
+
name: ThemeName;
|
|
5
|
+
/** Water gradient stops top → bottom */
|
|
6
|
+
water: [string, string, string];
|
|
7
|
+
glow: {
|
|
8
|
+
color: string;
|
|
9
|
+
mid: string;
|
|
10
|
+
};
|
|
11
|
+
sand: [string, string];
|
|
12
|
+
film: string;
|
|
13
|
+
glass: string;
|
|
14
|
+
kelp: readonly [string, string, string, string];
|
|
15
|
+
fish: readonly {
|
|
16
|
+
body: string;
|
|
17
|
+
accent: string;
|
|
18
|
+
}[];
|
|
19
|
+
caption: {
|
|
20
|
+
title: string;
|
|
21
|
+
meta: string;
|
|
22
|
+
note: string;
|
|
23
|
+
};
|
|
24
|
+
ray: readonly [string, string, string];
|
|
25
|
+
rock: readonly [string, string, string];
|
|
26
|
+
reef: readonly [string, string, string];
|
|
27
|
+
};
|
|
28
|
+
export declare function parseTheme(value: string | undefined): ThemeName;
|
|
29
|
+
export declare function getTheme(name?: ThemeName): Theme;
|
|
30
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,uCAAwC,CAAC;AACjE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,wCAAwC;IACxC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClD,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC,CAAC;AA0EF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAQ/D;AAED,wBAAgB,QAAQ,CAAC,IAAI,GAAE,SAAkB,GAAG,KAAK,CAExD"}
|
package/dist/theme.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export const THEME_NAMES = ["deep", "reef", "midnight"];
|
|
2
|
+
const DEEP = {
|
|
3
|
+
name: "deep",
|
|
4
|
+
water: ["#163e4c", "#0c2c38", "#07141c"],
|
|
5
|
+
glow: { color: "#2a7a86", mid: "#123844" },
|
|
6
|
+
sand: ["#5a4a36", "#2c241a"],
|
|
7
|
+
film: "#8fd0d4",
|
|
8
|
+
glass: "#d4f0f2",
|
|
9
|
+
kelp: ["#1a4f40", "#227056", "#163e34", "#2a7a5c"],
|
|
10
|
+
fish: [
|
|
11
|
+
{ body: "#e6c07b", accent: "#c46b4a" },
|
|
12
|
+
{ body: "#d9a441", accent: "#b87333" },
|
|
13
|
+
{ body: "#5fa8a3", accent: "#2f6f74" },
|
|
14
|
+
{ body: "#c5d4d1", accent: "#7f9996" },
|
|
15
|
+
{ body: "#d4896a", accent: "#9e4d3c" },
|
|
16
|
+
{ body: "#7eb3c9", accent: "#3d6f88" },
|
|
17
|
+
],
|
|
18
|
+
caption: { title: "#d5e6df", meta: "#9bb8b0", note: "rgba(186,214,208,0.55)" },
|
|
19
|
+
ray: ["#7ec8c4", "#9ad4c8", "#7eb8c2"],
|
|
20
|
+
rock: ["#2a241c", "#3a3228", "#4a4034"],
|
|
21
|
+
reef: ["#6a5844", "#8d7860", "#a89070"],
|
|
22
|
+
};
|
|
23
|
+
const REEF = {
|
|
24
|
+
name: "reef",
|
|
25
|
+
water: ["#1a5f6e", "#0e3d4a", "#082028"],
|
|
26
|
+
glow: { color: "#3cb8a8", mid: "#1a5a58" },
|
|
27
|
+
sand: ["#c4a574", "#6b5338"],
|
|
28
|
+
film: "#a8e8e0",
|
|
29
|
+
glass: "#e8fff8",
|
|
30
|
+
kelp: ["#1f6b4a", "#2d8f62", "#145238", "#3aa870"],
|
|
31
|
+
fish: [
|
|
32
|
+
{ body: "#ff8f6b", accent: "#e04870" },
|
|
33
|
+
{ body: "#ffd166", accent: "#f08a24" },
|
|
34
|
+
{ body: "#06d6a0", accent: "#118ab2" },
|
|
35
|
+
{ body: "#ef476f", accent: "#9b2226" },
|
|
36
|
+
{ body: "#4cc9f0", accent: "#4361ee" },
|
|
37
|
+
{ body: "#f4a261", accent: "#e76f51" },
|
|
38
|
+
],
|
|
39
|
+
caption: { title: "#e8fff6", meta: "#a8d4c8", note: "rgba(168,232,220,0.6)" },
|
|
40
|
+
ray: ["#7ef0d8", "#ffe08a", "#ff9eb5"],
|
|
41
|
+
rock: ["#5c4030", "#7a5640", "#9a7050"],
|
|
42
|
+
reef: ["#8b6914", "#b8860b", "#daa520"],
|
|
43
|
+
};
|
|
44
|
+
const MIDNIGHT = {
|
|
45
|
+
name: "midnight",
|
|
46
|
+
water: ["#1a1430", "#0e0a1c", "#05040c"],
|
|
47
|
+
glow: { color: "#6b5b95", mid: "#2a2048" },
|
|
48
|
+
sand: ["#2a2438", "#12101a"],
|
|
49
|
+
film: "#a89cc8",
|
|
50
|
+
glass: "#d4c8f0",
|
|
51
|
+
kelp: ["#2a3850", "#3a4a68", "#1e2838", "#4a6080"],
|
|
52
|
+
fish: [
|
|
53
|
+
{ body: "#c9b6e4", accent: "#7b5ea7" },
|
|
54
|
+
{ body: "#90e0ef", accent: "#48bfe3" },
|
|
55
|
+
{ body: "#f72585", accent: "#b5179e" },
|
|
56
|
+
{ body: "#e0aaff", accent: "#9d4edd" },
|
|
57
|
+
{ body: "#80ffdb", accent: "#56cfe1" },
|
|
58
|
+
{ body: "#ffd6a5", accent: "#ffadad" },
|
|
59
|
+
],
|
|
60
|
+
caption: { title: "#e8e0f8", meta: "#a898c0", note: "rgba(200,190,230,0.55)" },
|
|
61
|
+
ray: ["#9b8ec4", "#7ec8e8", "#e0a0d0"],
|
|
62
|
+
rock: ["#1a1624", "#2a2438", "#3a3450"],
|
|
63
|
+
reef: ["#3a3550", "#524a70", "#6a6090"],
|
|
64
|
+
};
|
|
65
|
+
const THEMES = {
|
|
66
|
+
deep: DEEP,
|
|
67
|
+
reef: REEF,
|
|
68
|
+
midnight: MIDNIGHT,
|
|
69
|
+
};
|
|
70
|
+
export function parseTheme(value) {
|
|
71
|
+
const raw = (value ?? "deep").trim().toLowerCase();
|
|
72
|
+
if (THEME_NAMES.includes(raw)) {
|
|
73
|
+
return raw;
|
|
74
|
+
}
|
|
75
|
+
throw new Error(`Unknown --theme "${value}". Use: ${THEME_NAMES.join(", ")}`);
|
|
76
|
+
}
|
|
77
|
+
export function getTheme(name = "deep") {
|
|
78
|
+
return THEMES[name];
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export type Activity = {
|
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
21
|
export type LoadSource = "auto" | DataSource;
|
|
22
|
+
export type { ThemeName } from "./theme.js";
|
|
22
23
|
export type LoadOptions = {
|
|
23
24
|
user: string;
|
|
24
25
|
token?: string;
|
|
@@ -26,7 +27,15 @@ export type LoadOptions = {
|
|
|
26
27
|
now?: Date;
|
|
27
28
|
fetchImpl?: typeof fetch;
|
|
28
29
|
};
|
|
29
|
-
export type
|
|
30
|
+
export type SvgSizeOptions = {
|
|
31
|
+
/** Display width in px (viewBox stays 860×300). */
|
|
32
|
+
width?: number;
|
|
33
|
+
/** Display height in px; defaults to proportional when only width is set. */
|
|
34
|
+
height?: number;
|
|
35
|
+
};
|
|
36
|
+
export type GenerateOptions = LoadOptions & {
|
|
37
|
+
theme?: import("./theme.js").ThemeName;
|
|
38
|
+
} & SvgSizeOptions;
|
|
30
39
|
export type GenerateResult = {
|
|
31
40
|
svg: string;
|
|
32
41
|
activity: Activity;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,eAAe,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAE7C,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAuGA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAC3B,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "contrib-aquarium",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "A living SVG aquarium driven by a GitHub contribution graph
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "A living SVG aquarium driven by a GitHub contribution graph \u2014 embeddable in profile READMEs.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
8
|
"bin": {
|
|
9
|
-
"contrib-aquarium": "
|
|
9
|
+
"contrib-aquarium": "dist/cli.js"
|
|
10
10
|
},
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|