hiroppy 1.0.27 → 1.0.32
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 +15 -7
- package/generated/images.tar.gz +0 -0
- package/generated/jobs.json +2 -2
- package/generated/media.json +2 -2
- package/generated/meta.json +1 -1
- package/generated/sponsors.json +30 -8
- package/generated/talks.json +6 -6
- package/package.json +4 -13
- package/dist/github.d.ts +0 -34
- package/dist/github.d.ts.map +0 -1
- package/dist/github.js +0 -83
- package/dist/hatena.d.ts +0 -7
- package/dist/hatena.d.ts.map +0 -1
- package/dist/hatena.js +0 -20
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -2
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ I am a JS engineer living in Japan, and I love creating OSS and web services.
|
|
|
16
16
|
## Active Repositories
|
|
17
17
|
|
|
18
18
|
- [web-app-template](https://github.com/hiroppy/web-app-template)
|
|
19
|
-
- A minimal web service template 🎃
|
|
19
|
+
- A minimal web service template 🎃 "npx create-app-foundation@latest" !
|
|
20
20
|
- [nextjs-app-router-training](https://github.com/hiroppy/nextjs-app-router-training)
|
|
21
21
|
- Introducing various basic patterns of app router with simplified code.
|
|
22
22
|
|
|
@@ -75,8 +75,6 @@ Thank you for supporting me 😍
|
|
|
75
75
|
<img src="generated/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDgzODg1MD9zPTYwJnY9NA==.jpg" alt="@sosukesuzuki" width="60" />
|
|
76
76
|
</a><a href="https://github.com/tsugitta">
|
|
77
77
|
<img src="generated/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84MTQ0OTExP3M9NjAmdj00.jpg" alt="@tsugitta" width="60" />
|
|
78
|
-
</a><a href="https://github.com">
|
|
79
|
-
<img src="public/blue.png" alt="private user" width="60" />
|
|
80
78
|
</a><a href="https://github.com/spring-raining">
|
|
81
79
|
<img src="generated/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNzcxMDA1P3M9NjAmdj00.jpg" alt="@spring-raining" width="60" />
|
|
82
80
|
</a><a href="https://github.com/nktaro">
|
|
@@ -99,8 +97,6 @@ Thank you for supporting me 😍
|
|
|
99
97
|
<img src="generated/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNjc5MzkwNz9zPTYwJnY9NA==.jpg" alt="@37108" width="60" />
|
|
100
98
|
</a><a href="https://github.com/sakit0">
|
|
101
99
|
<img src="generated/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTAxMDkwNz9zPTYwJnY9NA==.jpg" alt="@sakit0" width="60" />
|
|
102
|
-
</a><a href="https://github.com">
|
|
103
|
-
<img src="public/blue.png" alt="private user" width="60" />
|
|
104
100
|
</a><a href="https://github.com/Leko">
|
|
105
101
|
<img src="generated/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDI0OTYzP3M9NjAmdj00.jpg" alt="@Leko" width="60" />
|
|
106
102
|
</a><a href="https://github.com/vvakame">
|
|
@@ -131,6 +127,18 @@ Thank you for supporting me 😍
|
|
|
131
127
|
<img src="generated/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yMTk0NjI0P3M9NjAmdj00.jpg" alt="@ktsn" width="60" />
|
|
132
128
|
</a><a href="https://github.com/kazupon">
|
|
133
129
|
<img src="generated/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83Mjk4OT9zPTYwJnY9NA==.jpg" alt="@kazupon" width="60" />
|
|
130
|
+
</a><a href="https://github.com/yagipy">
|
|
131
|
+
<img src="generated/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNDI2NDg1OT9zPTYwJnY9NA==.jpg" alt="@yagipy" width="60" />
|
|
132
|
+
</a><a href="https://github.com/potato4d">
|
|
133
|
+
<img src="generated/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82OTkzNTE0P3M9NjAmdj00.jpg" alt="@potato4d" width="60" />
|
|
134
|
+
</a><a href="https://github.com/vwxyutarooo">
|
|
135
|
+
<img src="generated/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NzQ0NDExP3M9NjAmdj00.jpg" alt="@vwxyutarooo" width="60" />
|
|
136
|
+
</a><a href="https://github.com/tomo25">
|
|
137
|
+
<img src="generated/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zODcxMzk5OD9zPTYwJnY9NA==.jpg" alt="@tomo25" width="60" />
|
|
138
|
+
</a><a href="https://github.com/serima">
|
|
139
|
+
<img src="generated/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTMwOTIxP3M9NjAmdj00.jpg" alt="@serima" width="60" />
|
|
140
|
+
</a><a href="https://github.com/yyoshiki41">
|
|
141
|
+
<img src="generated/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80MDE0OTEyP3M9NjAmdj00.jpg" alt="@yyoshiki41" width="60" />
|
|
134
142
|
</a>
|
|
135
143
|
</p>
|
|
136
144
|
|
|
@@ -141,6 +149,6 @@ $ npm i hiroppy
|
|
|
141
149
|
```
|
|
142
150
|
|
|
143
151
|
```ts
|
|
144
|
-
import jobs
|
|
152
|
+
import jobs from "hiroppy/data/jobs" with { type: "json" };
|
|
145
153
|
import media from "hiroppy/data/media" with { type: "json" };
|
|
146
|
-
```
|
|
154
|
+
```
|
package/generated/images.tar.gz
CHANGED
|
Binary file
|
package/generated/jobs.json
CHANGED
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
"title": "エンジニア座談会後編〜開発組織編〜 | Notion",
|
|
116
116
|
"description": "Yuimedi は「エンジニア集団が医療に挑む!」をブランディングに掲げ、デジタル化の潮流に取り残されている日本の・世界の医療業界に真のデジタルツールを導入することを成し遂げたいと考えています。",
|
|
117
117
|
"image": "/images/eXVpbWVkaS5ub3Rpb24uc2l0ZS9pbWFnZS9odHRwcyUzQSUyRiUyRnMzLXVzLXdlc3QtMi5hbWF6b25hd3MuY29tJT.webp",
|
|
118
|
-
"siteName": "
|
|
118
|
+
"siteName": "Yuimedi",
|
|
119
119
|
"siteUrl": "https://yuimedi.notion.site/52914d8c12994bdfbdf8321cd2e96d5b"
|
|
120
120
|
},
|
|
121
121
|
{
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
{
|
|
147
147
|
"title": "メルカリShops のフロントエンド | メルカリエンジニアリング",
|
|
148
148
|
"description": "こんにちは。ソウゾウの Software Engineer の hiroppy です。「連載:「メルカリ Shops」プレオープンまでの開発の裏側」 の最後は、Web フロントエンドの紹介をしたいと思います。メルカリ Shops は既存のメ",
|
|
149
|
-
"image": "/images/
|
|
149
|
+
"image": "/images/c3RvcmFnZS5nb29nbGVhcGlzLmNvbS9wcmQtZW5naW5lZXJpbmctYXNzZXQvMjAyMS8wOC9lM2VlZTY0NS1oaXJvcH.webp",
|
|
150
150
|
"siteUrl": "https://engineering.mercari.com/blog/entry/20210823-a57631d32e/"
|
|
151
151
|
},
|
|
152
152
|
{
|
package/generated/media.json
CHANGED
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
"title": "エンジニア座談会後編〜開発組織編〜 | Notion",
|
|
132
132
|
"description": "Yuimedi は「エンジニア集団が医療に挑む!」をブランディングに掲げ、デジタル化の潮流に取り残されている日本の・世界の医療業界に真のデジタルツールを導入することを成し遂げたいと考えています。",
|
|
133
133
|
"image": "/images/eXVpbWVkaS5ub3Rpb24uc2l0ZS9pbWFnZS9odHRwcyUzQSUyRiUyRnMzLXVzLXdlc3QtMi5hbWF6b25hd3MuY29tJT.webp",
|
|
134
|
-
"siteName": "
|
|
134
|
+
"siteName": "Yuimedi",
|
|
135
135
|
"siteUrl": "https://yuimedi.notion.site/52914d8c12994bdfbdf8321cd2e96d5b",
|
|
136
136
|
"url": "https://yuimedi.notion.site/52914d8c12994bdfbdf8321cd2e96d5b",
|
|
137
137
|
"publishedAt": "2022-11-10",
|
|
@@ -150,7 +150,7 @@
|
|
|
150
150
|
{
|
|
151
151
|
"title": "メルカリShops のフロントエンド | メルカリエンジニアリング",
|
|
152
152
|
"description": "こんにちは。ソウゾウの Software Engineer の hiroppy です。「連載:「メルカリ Shops」プレオープンまでの開発の裏側」 の最後は、Web フロントエンドの紹介をしたいと思います。メルカリ Shops は既存のメ",
|
|
153
|
-
"image": "/images/
|
|
153
|
+
"image": "/images/c3RvcmFnZS5nb29nbGVhcGlzLmNvbS9wcmQtZW5naW5lZXJpbmctYXNzZXQvMjAyMS8wOC9lM2VlZTY0NS1oaXJvcH.webp",
|
|
154
154
|
"siteUrl": "https://engineering.mercari.com/blog/entry/20210823-a57631d32e/",
|
|
155
155
|
"url": "https://engineering.mercari.com/blog/entry/20210823-a57631d32e/",
|
|
156
156
|
"publishedAt": "2021-08-23",
|
package/generated/meta.json
CHANGED
package/generated/sponsors.json
CHANGED
|
@@ -77,10 +77,6 @@
|
|
|
77
77
|
"avatar": "/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84MTQ0OTExP3M9NjAmdj00.jpg",
|
|
78
78
|
"name": "@tsugitta"
|
|
79
79
|
},
|
|
80
|
-
{
|
|
81
|
-
"href": "https://github.comhttps://docs.github.com/sponsors/sponsoring-open-source-contributors/managing-your-sponsorship#managing-the-privacy-setting-for-your-sponsorship",
|
|
82
|
-
"avatar": ""
|
|
83
|
-
},
|
|
84
80
|
{
|
|
85
81
|
"href": "https://github.com/spring-raining",
|
|
86
82
|
"avatar": "/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNzcxMDA1P3M9NjAmdj00.jpg",
|
|
@@ -136,10 +132,6 @@
|
|
|
136
132
|
"avatar": "/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTAxMDkwNz9zPTYwJnY9NA==.jpg",
|
|
137
133
|
"name": "@sakit0"
|
|
138
134
|
},
|
|
139
|
-
{
|
|
140
|
-
"href": "https://github.comhttps://docs.github.com/sponsors/sponsoring-open-source-contributors/managing-your-sponsorship#managing-the-privacy-setting-for-your-sponsorship",
|
|
141
|
-
"avatar": ""
|
|
142
|
-
},
|
|
143
135
|
{
|
|
144
136
|
"href": "https://github.com/Leko",
|
|
145
137
|
"avatar": "/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDI0OTYzP3M9NjAmdj00.jpg",
|
|
@@ -214,6 +206,36 @@
|
|
|
214
206
|
"href": "https://github.com/kazupon",
|
|
215
207
|
"avatar": "/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83Mjk4OT9zPTYwJnY9NA==.jpg",
|
|
216
208
|
"name": "@kazupon"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"href": "https://github.com/yagipy",
|
|
212
|
+
"avatar": "/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNDI2NDg1OT9zPTYwJnY9NA==.jpg",
|
|
213
|
+
"name": "@yagipy"
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"href": "https://github.com/potato4d",
|
|
217
|
+
"avatar": "/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82OTkzNTE0P3M9NjAmdj00.jpg",
|
|
218
|
+
"name": "@potato4d"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"href": "https://github.com/vwxyutarooo",
|
|
222
|
+
"avatar": "/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NzQ0NDExP3M9NjAmdj00.jpg",
|
|
223
|
+
"name": "@vwxyutarooo"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"href": "https://github.com/tomo25",
|
|
227
|
+
"avatar": "/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zODcxMzk5OD9zPTYwJnY9NA==.jpg",
|
|
228
|
+
"name": "@tomo25"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"href": "https://github.com/serima",
|
|
232
|
+
"avatar": "/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTMwOTIxP3M9NjAmdj00.jpg",
|
|
233
|
+
"name": "@serima"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"href": "https://github.com/yyoshiki41",
|
|
237
|
+
"avatar": "/images/YXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80MDE0OTEyP3M9NjAmdj00.jpg",
|
|
238
|
+
"name": "@yyoshiki41"
|
|
217
239
|
}
|
|
218
240
|
]
|
|
219
241
|
}
|
package/generated/talks.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
{
|
|
3
3
|
"title": "Node.js 🤝 TypeScript",
|
|
4
4
|
"description": "Node.js TypeScript 2025/05/19 @hiroppy TODO: スライド + スピーカーノートからLLMでブログに書き起こせるのか検証",
|
|
5
|
-
"image": "/images/
|
|
5
|
+
"image": "/images/bGg3LXVzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9kb2NzL0FIa2J3eUtKWnpidURBT0RlaVprQzFkU29JR0Z1M2ZXbG.webp",
|
|
6
6
|
"siteName": "カンファレンス直前!スタートアップのTypeScript実践Tips",
|
|
7
7
|
"siteUrl": "https://stract.connpass.com/event/354163/",
|
|
8
8
|
"url": "https://docs.google.com/presentation/d/128j6TkIx9RvAvsukcqcKHf7mp6eU2MPTN94NZ__zYFI/edit",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
{
|
|
13
13
|
"title": "eval is evil",
|
|
14
14
|
"description": "eval is Evil 2025/04/02 LT @hiroppy (4/1から入った業務委託、enabling teamにいます)",
|
|
15
|
-
"image": "/images/
|
|
15
|
+
"image": "/images/bGg3LXVzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9kb2NzL0FIa2J3eUpHd3I5RENzS0dIUko4MzdWU2N5R0RfWVhNNG.webp",
|
|
16
16
|
"siteName": "Google Docs",
|
|
17
17
|
"siteUrl": "https://docs.google.com/presentation/d/1z6aZSNjSyhdF52fNS3bPrA8eUcoUtG2mjlDh6wj1OzY/edit",
|
|
18
18
|
"url": "https://docs.google.com/presentation/d/1z6aZSNjSyhdF52fNS3bPrA8eUcoUtG2mjlDh6wj1OzY/edit",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
{
|
|
23
23
|
"title": "Trusted Types & Dynamic Code Brand Checks",
|
|
24
24
|
"description": "Trusted Types & Dynamic Code Brand Checks 2025/02/27 @hiroppy",
|
|
25
|
-
"image": "/images/
|
|
25
|
+
"image": "/images/bGg3LXVzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9kb2NzL0FIa2J3eUxRUk5DVGQ1OW0zLVpiRVZ4SlBzU0x5UW9XX1.webp",
|
|
26
26
|
"siteName": "Meguro.es #29 @ oRo",
|
|
27
27
|
"siteUrl": "https://meguroes.connpass.com/event/342717/",
|
|
28
28
|
"url": "https://docs.google.com/presentation/d/1ae0ISg8sXLGWdIXNnEVnP14PSFRi9ouohWjCbpsPoEw/edit",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
{
|
|
33
33
|
"title": "Turbopack Today",
|
|
34
34
|
"description": "Turbopack Today 2024/09/18 @hiroppy",
|
|
35
|
-
"image": "/images/
|
|
35
|
+
"image": "/images/bGg3LXVzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9kb2NzL0FIa2J3eUxhZ3ZlSXZmdXhxc2ZhQWtsWnQ3LTQwcGJHal.webp",
|
|
36
36
|
"siteName": "Unleash Next.js - LayerX Web Frontend Night",
|
|
37
37
|
"siteUrl": "https://layerx.connpass.com/event/328945/",
|
|
38
38
|
"url": "https://docs.google.com/presentation/d/1PSV8xq1GEYjLaQdT_vjlOUNlsYKsYDpPQ8SSBXahd0E/edit?usp=sharing",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
{
|
|
62
62
|
"title": "メルカリShops の CI/CD と Pull Request 環境 | メルカリエンジニアリング",
|
|
63
63
|
"description": "こんにちは!ソウゾウの Software Engineer の @dragon3 です。連載:「メルカリShops」プレオープンまでの開発の裏側の8日目を担当させていただきます。この記事では、メルカリShops 開発において、日々バリバリに",
|
|
64
|
-
"image": "/images/
|
|
64
|
+
"image": "/images/c3RvcmFnZS5nb29nbGVhcGlzLmNvbS9wcmQtZW5naW5lZXJpbmctYXNzZXQvMjAyMS8wOC9iZThiOTgxNy1kcmFnb2.webp",
|
|
65
65
|
"siteUrl": "https://engineering.mercari.com/blog/entry/20210817-mercari-shops-ci-cd-pr-env/"
|
|
66
66
|
}
|
|
67
67
|
]
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
{
|
|
79
79
|
"title": "メルカリShops のフロントエンド | メルカリエンジニアリング",
|
|
80
80
|
"description": "こんにちは。ソウゾウの Software Engineer の hiroppy です。「連載:「メルカリ Shops」プレオープンまでの開発の裏側」 の最後は、Web フロントエンドの紹介をしたいと思います。メルカリ Shops は既存のメ",
|
|
81
|
-
"image": "/images/
|
|
81
|
+
"image": "/images/c3RvcmFnZS5nb29nbGVhcGlzLmNvbS9wcmQtZW5naW5lZXJpbmctYXNzZXQvMjAyMS8wOC9lM2VlZTY0NS1oaXJvcH.webp",
|
|
82
82
|
"siteUrl": "https://engineering.mercari.com/blog/entry/20210823-a57631d32e/"
|
|
83
83
|
}
|
|
84
84
|
]
|
package/package.json
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hiroppy",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.32",
|
|
4
4
|
"packageManager": "pnpm@10.11.1",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "./dist/index.js",
|
|
7
|
-
"types": "./dist/index.d.ts",
|
|
8
6
|
"exports": {
|
|
9
|
-
".": {
|
|
10
|
-
"import": "./dist/index.js",
|
|
11
|
-
"types": "./dist/index.d.ts"
|
|
12
|
-
},
|
|
13
7
|
"./data/*": {
|
|
14
8
|
"require": "./generated/*.json",
|
|
15
9
|
"import": "./generated/*.json",
|
|
@@ -26,9 +20,9 @@
|
|
|
26
20
|
"build": "pnpm run /build:.*/ && pnpm lint",
|
|
27
21
|
"build:generated": "node scripts/index.ts",
|
|
28
22
|
"build:readme": "node scripts/readme.ts",
|
|
29
|
-
"build:src": "tsc -p src/tsconfig.json",
|
|
30
23
|
"lint": "prettier -w './**/*.{md,yml}' && biome check . --fix",
|
|
31
|
-
"
|
|
24
|
+
"test": "node --test test/*.test.js",
|
|
25
|
+
"reset": "rm data/cache.json && rm -rf generated && mkdir generated && mkdir generated/images",
|
|
32
26
|
"cleanup": "node scripts/cleanup-unused-images.ts",
|
|
33
27
|
"compress:images": "node scripts/compress-images.ts",
|
|
34
28
|
"decompress:images": "node scripts/decompress-images.js",
|
|
@@ -42,7 +36,6 @@
|
|
|
42
36
|
"license": "MIT",
|
|
43
37
|
"files": [
|
|
44
38
|
"generated",
|
|
45
|
-
"dist",
|
|
46
39
|
"scripts/decompress-images.js"
|
|
47
40
|
],
|
|
48
41
|
"publishConfig": {
|
|
@@ -52,9 +45,6 @@
|
|
|
52
45
|
"url": "https://github.com/hiroppy/hiroppy/issues"
|
|
53
46
|
},
|
|
54
47
|
"homepage": "https://github.com/hiroppy/hiroppy#readme",
|
|
55
|
-
"dependencies": {
|
|
56
|
-
"octokit": "5.0.3"
|
|
57
|
-
},
|
|
58
48
|
"devDependencies": {
|
|
59
49
|
"@biomejs/biome": "1.9.4",
|
|
60
50
|
"@types/emoji-js": "3.5.2",
|
|
@@ -62,6 +52,7 @@
|
|
|
62
52
|
"cheerio": "1.0.0",
|
|
63
53
|
"emoji-js": "3.8.1",
|
|
64
54
|
"lefthook": "1.11.13",
|
|
55
|
+
"octokit": "5.0.3",
|
|
65
56
|
"prettier": "3.5.3",
|
|
66
57
|
"sharp": "0.34.2",
|
|
67
58
|
"typescript": "5.8.3"
|
package/dist/github.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Get star count for a repository
|
|
3
|
-
* @param owner - Repository owner
|
|
4
|
-
* @param repo - Repository name
|
|
5
|
-
* @returns Promise<number> - Star count
|
|
6
|
-
*/
|
|
7
|
-
export declare function getStarCount(owner: string, repo: string): Promise<number>;
|
|
8
|
-
/**
|
|
9
|
-
* Get star counts for multiple repositories
|
|
10
|
-
* @param repos - Array of repository names in "owner/repo" format
|
|
11
|
-
* @returns Promise<Record<string, number>> - Object mapping repo names to star counts
|
|
12
|
-
*/
|
|
13
|
-
export declare function getStarCounts(repos: string[]): Promise<Record<string, number>>;
|
|
14
|
-
export interface RepositoryInfo {
|
|
15
|
-
name: string;
|
|
16
|
-
url: string;
|
|
17
|
-
description: string | null;
|
|
18
|
-
language: string | null;
|
|
19
|
-
stars: number;
|
|
20
|
-
forks: number;
|
|
21
|
-
openIssues: number;
|
|
22
|
-
defaultBranch: string;
|
|
23
|
-
createdAt: string;
|
|
24
|
-
updatedAt: string;
|
|
25
|
-
avatar: string;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Get repository information including star count
|
|
29
|
-
* @param owner - Repository owner
|
|
30
|
-
* @param repo - Repository name
|
|
31
|
-
* @returns Promise<RepositoryInfo> - Repository information
|
|
32
|
-
*/
|
|
33
|
-
export declare function getRepositoryInfo(owner: string, repo: string): Promise<RepositoryInfo>;
|
|
34
|
-
//# sourceMappingURL=github.d.ts.map
|
package/dist/github.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"AAeA;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkBjC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC,CA4BzB"}
|
package/dist/github.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { Octokit } from "octokit";
|
|
2
|
-
let octokit = null;
|
|
3
|
-
function getOctokit() {
|
|
4
|
-
if (!octokit) {
|
|
5
|
-
const token = process.env.GITHUB_TOKEN;
|
|
6
|
-
if (!token) {
|
|
7
|
-
throw new Error("GITHUB_TOKEN environment variable is required");
|
|
8
|
-
}
|
|
9
|
-
octokit = new Octokit({ auth: token });
|
|
10
|
-
}
|
|
11
|
-
return octokit;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Get star count for a repository
|
|
15
|
-
* @param owner - Repository owner
|
|
16
|
-
* @param repo - Repository name
|
|
17
|
-
* @returns Promise<number> - Star count
|
|
18
|
-
*/
|
|
19
|
-
export async function getStarCount(owner, repo) {
|
|
20
|
-
try {
|
|
21
|
-
const octokit = getOctokit();
|
|
22
|
-
const { data } = await octokit.rest.repos.get({
|
|
23
|
-
owner,
|
|
24
|
-
repo,
|
|
25
|
-
});
|
|
26
|
-
return data.stargazers_count;
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
console.error(`Failed to fetch star count for ${owner}/${repo}:`, error);
|
|
30
|
-
return 0;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Get star counts for multiple repositories
|
|
35
|
-
* @param repos - Array of repository names in "owner/repo" format
|
|
36
|
-
* @returns Promise<Record<string, number>> - Object mapping repo names to star counts
|
|
37
|
-
*/
|
|
38
|
-
export async function getStarCounts(repos) {
|
|
39
|
-
const results = {};
|
|
40
|
-
const promises = repos.map(async (repoName) => {
|
|
41
|
-
const [owner, repo] = repoName.split("/");
|
|
42
|
-
if (!owner || !repo) {
|
|
43
|
-
console.warn(`Invalid repository name format: ${repoName}. Expected "owner/repo"`);
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
const stars = await getStarCount(owner, repo);
|
|
47
|
-
results[repoName] = stars;
|
|
48
|
-
});
|
|
49
|
-
await Promise.all(promises);
|
|
50
|
-
return results;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Get repository information including star count
|
|
54
|
-
* @param owner - Repository owner
|
|
55
|
-
* @param repo - Repository name
|
|
56
|
-
* @returns Promise<RepositoryInfo> - Repository information
|
|
57
|
-
*/
|
|
58
|
-
export async function getRepositoryInfo(owner, repo) {
|
|
59
|
-
try {
|
|
60
|
-
const octokit = getOctokit();
|
|
61
|
-
const { data } = await octokit.rest.repos.get({
|
|
62
|
-
owner,
|
|
63
|
-
repo,
|
|
64
|
-
});
|
|
65
|
-
return {
|
|
66
|
-
name: data.full_name,
|
|
67
|
-
url: data.html_url,
|
|
68
|
-
description: data.description,
|
|
69
|
-
language: data.language,
|
|
70
|
-
stars: data.stargazers_count,
|
|
71
|
-
forks: data.forks_count,
|
|
72
|
-
openIssues: data.open_issues_count,
|
|
73
|
-
defaultBranch: data.default_branch,
|
|
74
|
-
createdAt: data.created_at,
|
|
75
|
-
updatedAt: data.updated_at,
|
|
76
|
-
avatar: data.owner.avatar_url,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
catch (error) {
|
|
80
|
-
console.error(`Failed to fetch repository info for ${owner}/${repo}:`, error);
|
|
81
|
-
throw error;
|
|
82
|
-
}
|
|
83
|
-
}
|
package/dist/hatena.d.ts
DELETED
package/dist/hatena.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hatena.d.ts","sourceRoot":"","sources":["../src/hatena.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAahE"}
|
package/dist/hatena.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Get bookmark count from Hatena Bookmark
|
|
3
|
-
* @param entry - URL to get bookmark count for
|
|
4
|
-
* @returns Promise<number> - Bookmark count
|
|
5
|
-
*/
|
|
6
|
-
export async function getBookmark(entry) {
|
|
7
|
-
try {
|
|
8
|
-
const url = `https://b.hatena.ne.jp/entry/json/${entry}`;
|
|
9
|
-
const res = await fetch(url);
|
|
10
|
-
if (!res.ok) {
|
|
11
|
-
throw new Error(`HTTP error! status: ${res.status}`);
|
|
12
|
-
}
|
|
13
|
-
const data = (await res.json());
|
|
14
|
-
return data.count || 0;
|
|
15
|
-
}
|
|
16
|
-
catch (error) {
|
|
17
|
-
console.error(`Failed to fetch bookmark for ${entry}:`, error);
|
|
18
|
-
return 0;
|
|
19
|
-
}
|
|
20
|
-
}
|
package/dist/index.d.ts
DELETED
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
package/dist/index.js
DELETED