nekosia.js 0.1.3 β 0.1.5
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 +13 -13
- package/package.json +63 -58
- package/types/index.d.ts +100 -55
- package/types/tags.ts +2 -3
package/README.md
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
</div>
|
|
4
4
|
|
|
5
5
|
Nekosia.js is a Node.js module that provides easy access to the Nekosia API, a rich source of anime-themed images.
|
|
6
|
-
The API offers a wide range of categories, allowing you to quickly and flexibly search for images
|
|
7
|
-
You
|
|
6
|
+
The API offers a wide range of categories, allowing you to quickly and flexibly search for images based on your preferences and needs.
|
|
7
|
+
You have full control over the images you retrieve, which sets our API apart from others.
|
|
8
8
|
|
|
9
|
-
But that's not all! The API also supports sessions (based on user ID or IP address), helping to
|
|
9
|
+
But that's not all! The API also supports sessions (based on user ID or IP address), helping to prevent repeated images.
|
|
10
10
|
|
|
11
11
|
<div align="center">
|
|
12
12
|
<a href="https://www.npmjs.com/package/nekosia.js">
|
|
@@ -24,18 +24,18 @@ But that's not all! The API also supports sessions (based on user ID or IP addre
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
## π Key Features of the API
|
|
27
|
-
- **Wide range of categories:** Nekosia API offers [virtually every kind of anime graphic](https://nekosia.cat/documentation?page=api-endpoints#main-categories), not
|
|
28
|
-
- **High image quality:** All images are carefully selected and checked for quality and appropriateness.
|
|
29
|
-
- **Sessions:** The API supports sessions (based on ID or IP address),
|
|
27
|
+
- **Wide range of categories:** Nekosia API offers [virtually every kind of anime graphic](https://nekosia.cat/documentation?page=api-endpoints#main-categories), not just neko images.
|
|
28
|
+
- **High image quality:** All images are carefully selected and checked for both quality and appropriateness.
|
|
29
|
+
- **Sessions:** The API supports sessions (based on ID or IP address), helping to avoid duplicate images.
|
|
30
30
|
- **Dominant colors:** The API returns a palette of dominant colors for each image.
|
|
31
|
-
- **Image compression:** JSON responses include a link to a compressed image
|
|
32
|
-
- **Security:** Nekosia API
|
|
31
|
+
- **Image compression:** JSON responses include a link to a compressed image with a significantly reduced file size compared to the original. This ensures faster load times on client devices without sacrificing quality.
|
|
32
|
+
- **Security:** Nekosia API guarantees that all content is free from NSFW material, making it one of the most trusted sources for anime-themed images.
|
|
33
33
|
|
|
34
34
|
...and thatβs not all!
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
## π Best Anime Booru
|
|
38
|
-
Nekosia also offers its own [Booru](https://nekosia.cat/booru), allowing you to browse images returned by the API.
|
|
38
|
+
Nekosia also offers its own [Booru](https://nekosia.cat/booru), allowing you to browse images returned by the API.
|
|
39
39
|
Users can edit image information, such as tags, which are crucial for us.
|
|
40
40
|
|
|
41
41
|
|
|
@@ -70,7 +70,7 @@ const { NekosiaAPI } = require('nekosia.js');
|
|
|
70
70
|
|
|
71
71
|
|
|
72
72
|
### IP-based Sessions
|
|
73
|
-
In this example, we used an IP-based session. What does this mean? Thanks to this solution, a user with a specific IP address will not encounter
|
|
73
|
+
In this example, we used an IP-based session. What does this mean? Thanks to this solution, a user with a specific IP address will not encounter duplicate images when selecting them randomly.
|
|
74
74
|
|
|
75
75
|
```js
|
|
76
76
|
const { NekosiaAPI } = require('nekosia.js');
|
|
@@ -88,7 +88,7 @@ const { NekosiaAPI } = require('nekosia.js');
|
|
|
88
88
|
```
|
|
89
89
|
|
|
90
90
|
### ID-based Sessions
|
|
91
|
-
You can also use `id`, but this
|
|
91
|
+
You can also use `id`, but this requires providing a user identifier (e.g., from Discord). Pass this information in `id` as a string.
|
|
92
92
|
|
|
93
93
|
```js
|
|
94
94
|
const { NekosiaAPI } = require('nekosia.js');
|
|
@@ -122,8 +122,8 @@ const { NekosiaVersion } = require('nekosia.js');
|
|
|
122
122
|
|
|
123
123
|
|
|
124
124
|
## β Β» Thanks
|
|
125
|
-
If you find the API or this module useful, consider giving a star to the [repository](https://github.com/sefinek24/nekosia.js).
|
|
126
|
-
If you have questions or issues, create a new [Issue](https://github.com/Nekosia-API/nekosia.js/issues/new) or join the [Discord server](https://discord.gg/pba76vJhcP).
|
|
125
|
+
If you find the API or this module useful, consider giving a star to the [repository](https://github.com/sefinek24/nekosia.js).
|
|
126
|
+
If you have any questions or issues, create a new [Issue](https://github.com/Nekosia-API/nekosia.js/issues/new) or join the [Discord server](https://discord.gg/pba76vJhcP).
|
|
127
127
|
|
|
128
128
|
|
|
129
129
|
## π Β» MIT License
|
package/package.json
CHANGED
|
@@ -1,58 +1,63 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "nekosia.js",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "A simple wrapper for the Nekosia API that
|
|
5
|
-
"keywords": [
|
|
6
|
-
"anime",
|
|
7
|
-
"anime
|
|
8
|
-
"anime
|
|
9
|
-
"anime
|
|
10
|
-
"anime
|
|
11
|
-
"anime
|
|
12
|
-
"anime
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"
|
|
54
|
-
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
}
|
|
58
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "nekosia.js",
|
|
3
|
+
"version": "0.1.5",
|
|
4
|
+
"description": "A simple wrapper for the Nekosia API that offers seamless access to random anime images. Add a touch of anime magic and feline charm to your projects, meow~~! Find out why Nekosia is the purrfect choice!",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"anime api",
|
|
7
|
+
"anime art",
|
|
8
|
+
"anime catgirls",
|
|
9
|
+
"anime characters",
|
|
10
|
+
"anime gifs",
|
|
11
|
+
"anime images",
|
|
12
|
+
"anime library",
|
|
13
|
+
"anime nekos",
|
|
14
|
+
"anime wallpaper",
|
|
15
|
+
"anime",
|
|
16
|
+
"anime-api",
|
|
17
|
+
"api wrapper",
|
|
18
|
+
"cat ears",
|
|
19
|
+
"cat",
|
|
20
|
+
"catgirl",
|
|
21
|
+
"catgirls",
|
|
22
|
+
"cute animals",
|
|
23
|
+
"cute nekos",
|
|
24
|
+
"feline",
|
|
25
|
+
"image api",
|
|
26
|
+
"japan",
|
|
27
|
+
"javascript",
|
|
28
|
+
"js library",
|
|
29
|
+
"kawaii",
|
|
30
|
+
"manga",
|
|
31
|
+
"moe",
|
|
32
|
+
"neko girls",
|
|
33
|
+
"neko",
|
|
34
|
+
"nekos",
|
|
35
|
+
"nekosia api",
|
|
36
|
+
"nekosia",
|
|
37
|
+
"otaku",
|
|
38
|
+
"random anime",
|
|
39
|
+
"typescript",
|
|
40
|
+
"waifu"
|
|
41
|
+
],
|
|
42
|
+
"homepage": "https://nekosia.cat",
|
|
43
|
+
"bugs": {
|
|
44
|
+
"url": "https://github.com/Nekosia-API/nekosia.js/issues"
|
|
45
|
+
},
|
|
46
|
+
"repository": {
|
|
47
|
+
"type": "git",
|
|
48
|
+
"url": "git+https://github.com/Nekosia-API/nekosia.js.git"
|
|
49
|
+
},
|
|
50
|
+
"license": "MIT",
|
|
51
|
+
"author": "Sefinek <contact@sefinek.net> (https://sefinek.net)",
|
|
52
|
+
"main": "index.js",
|
|
53
|
+
"typings": "types/index.d.ts",
|
|
54
|
+
"scripts": {
|
|
55
|
+
"test": "jest",
|
|
56
|
+
"up": "ncu -u && npm install && npm update && npm audit fix"
|
|
57
|
+
},
|
|
58
|
+
"devDependencies": {
|
|
59
|
+
"@eslint/js": "^9.11.1",
|
|
60
|
+
"globals": "^15.10.0",
|
|
61
|
+
"jest": "^29.7.0"
|
|
62
|
+
}
|
|
63
|
+
}
|
package/types/index.d.ts
CHANGED
|
@@ -10,38 +10,43 @@ declare module 'nekosia.js' {
|
|
|
10
10
|
interface FetchImagesOptions {
|
|
11
11
|
/**
|
|
12
12
|
* Session type:
|
|
13
|
-
* - `id` - Session identified by
|
|
13
|
+
* - `id` - Session identified by its `id` value (requires the `id` field to be set).
|
|
14
14
|
* - `ip` - Session identified by the user's IP address.
|
|
15
|
+
* @type String
|
|
15
16
|
* @default undefined
|
|
16
17
|
*/
|
|
17
18
|
session?: 'id' | 'ip';
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* Identifier of the fetched image.
|
|
21
|
-
* @
|
|
22
|
+
* @type String
|
|
23
|
+
* @example "66ae26a07886f165901e8a3f"
|
|
22
24
|
*/
|
|
23
25
|
id?: string;
|
|
24
26
|
|
|
25
27
|
/**
|
|
26
|
-
* The number of images to fetch. WARNING! The higher the number, the more data the server will need to process,
|
|
28
|
+
* The number of images to fetch. WARNING! The higher the number, the more data the server will need to process, leading to longer response times.
|
|
27
29
|
*
|
|
28
30
|
* - Minimum - 1
|
|
29
31
|
* - Maximum - 48
|
|
32
|
+
* @type Number
|
|
30
33
|
* @default 1
|
|
31
34
|
*/
|
|
32
35
|
count?: number;
|
|
33
36
|
|
|
34
37
|
/**
|
|
35
38
|
* Additional tags to include in the image search.
|
|
36
|
-
* This can be a single string
|
|
39
|
+
* This can be a single string representing one tag or an array of strings for multiple tags.
|
|
40
|
+
* @type Array
|
|
37
41
|
* @example ["cute", "sakura", "cherry-blossom"]
|
|
38
42
|
* @default []
|
|
39
43
|
*/
|
|
40
44
|
additionalTags?: AllTagsList | AllTagsList[];
|
|
41
45
|
|
|
42
46
|
/**
|
|
43
|
-
* Tags to exclude
|
|
44
|
-
* This can be a single string
|
|
47
|
+
* Tags to exclude from the image search.
|
|
48
|
+
* This can be a single string representing one tag or an array of strings for multiple tags.
|
|
49
|
+
* @type Array
|
|
45
50
|
* @example ["beret", "hat", "short-hair"]
|
|
46
51
|
* @default []
|
|
47
52
|
*/
|
|
@@ -53,10 +58,11 @@ declare module 'nekosia.js' {
|
|
|
53
58
|
*
|
|
54
59
|
* Possible values:
|
|
55
60
|
* - `safe`: Suitable for all audiences, contains no explicit or questionable content.
|
|
56
|
-
* - `questionable`:
|
|
61
|
+
* - `questionable`: May contain content sensitive or inappropriate for younger audiences, but not explicit.
|
|
57
62
|
* - `nsfw`: Contains explicit content, not safe for work (NSFW).
|
|
58
63
|
*
|
|
59
64
|
* The default value is ALWAYS `safe`.
|
|
65
|
+
* @type String
|
|
60
66
|
* @example safe
|
|
61
67
|
* @default safe
|
|
62
68
|
*/
|
|
@@ -68,14 +74,16 @@ declare module 'nekosia.js' {
|
|
|
68
74
|
*/
|
|
69
75
|
interface ImageDetails {
|
|
70
76
|
/**
|
|
71
|
-
* URL
|
|
77
|
+
* URL of the image.
|
|
78
|
+
* @type String
|
|
72
79
|
* @example https://cdn.nekosia.cat/images/maid-uniform/66bc6b7481a59a1cf2c79db5.png
|
|
73
80
|
*/
|
|
74
81
|
url: string;
|
|
75
82
|
|
|
76
83
|
/**
|
|
77
84
|
* Image file extension.
|
|
78
|
-
* @
|
|
85
|
+
* @type String
|
|
86
|
+
* @example `png`, `jpg`, etc.
|
|
79
87
|
*/
|
|
80
88
|
extension: string;
|
|
81
89
|
}
|
|
@@ -86,38 +94,44 @@ declare module 'nekosia.js' {
|
|
|
86
94
|
interface ImageMetadata {
|
|
87
95
|
/**
|
|
88
96
|
* Image width in pixels.
|
|
97
|
+
* @type Number
|
|
89
98
|
* @example 1447
|
|
90
99
|
*/
|
|
91
100
|
width: number;
|
|
92
101
|
|
|
93
102
|
/**
|
|
94
103
|
* Image height in pixels.
|
|
104
|
+
* @type Number
|
|
95
105
|
* @example 2046
|
|
96
106
|
*/
|
|
97
107
|
height: number;
|
|
98
108
|
|
|
99
109
|
/**
|
|
100
110
|
* Image size in bytes.
|
|
111
|
+
* @type Number
|
|
101
112
|
* @example 1001991
|
|
102
113
|
*/
|
|
103
114
|
size: number;
|
|
104
115
|
|
|
105
116
|
/**
|
|
106
117
|
* Image file extension.
|
|
107
|
-
* @
|
|
118
|
+
* @type String
|
|
119
|
+
* @example png
|
|
108
120
|
*/
|
|
109
121
|
extension: string;
|
|
110
122
|
}
|
|
111
123
|
|
|
112
124
|
interface ImageColors {
|
|
113
125
|
/**
|
|
114
|
-
*
|
|
126
|
+
* The main dominant color of the image in hexadecimal format.
|
|
127
|
+
* @type String
|
|
115
128
|
* @example #00FF00
|
|
116
129
|
*/
|
|
117
130
|
main: HexColor;
|
|
118
131
|
|
|
119
132
|
/**
|
|
120
|
-
*
|
|
133
|
+
* A palette of the 14 most dominant colors in the image, represented in hexadecimal format.
|
|
134
|
+
* @type Array
|
|
121
135
|
* @example ["#9D78CD", "#454FC0", "#909AEB", "#F5E3F0", "#94498B", "#BEC1EE", "#CD7D67", "#CC98D5", "#E2AE9E", "#F0B4DB", "#2B1C3E", "#4E8DCB", "#F2DABF", "#5CB6C0"]
|
|
122
136
|
*/
|
|
123
137
|
palette: HexColor[];
|
|
@@ -126,37 +140,43 @@ declare module 'nekosia.js' {
|
|
|
126
140
|
interface ImageAnime {
|
|
127
141
|
/**
|
|
128
142
|
* The title of the anime from which the image originates. `null` if not applicable.
|
|
129
|
-
* @
|
|
143
|
+
* @type String
|
|
144
|
+
* @example "Satsuriku no Tenshi"
|
|
130
145
|
*/
|
|
131
146
|
title: string | null;
|
|
132
147
|
|
|
133
148
|
/**
|
|
134
149
|
* The name of the character depicted in the image. `null` if not applicable.
|
|
135
|
-
* @
|
|
150
|
+
* @type String
|
|
151
|
+
* @example "Rachel Gardner"
|
|
136
152
|
*/
|
|
137
153
|
character: string | null;
|
|
138
154
|
}
|
|
139
155
|
|
|
140
156
|
interface ImageSource {
|
|
141
157
|
/**
|
|
142
|
-
* URL of the source page where the image originates. `null` if not applicable.
|
|
158
|
+
* The URL of the source page where the image originates. `null` if not applicable.
|
|
159
|
+
* @type String
|
|
143
160
|
*/
|
|
144
161
|
url: string | null;
|
|
145
162
|
|
|
146
163
|
/**
|
|
147
|
-
*
|
|
164
|
+
* The direct link to the image. `null` if not applicable.
|
|
165
|
+
* @type String
|
|
148
166
|
*/
|
|
149
167
|
direct: string | null;
|
|
150
168
|
}
|
|
151
169
|
|
|
152
170
|
interface ArtistDetails {
|
|
153
171
|
/**
|
|
154
|
-
*
|
|
172
|
+
* The artist's username. `null` if not applicable.
|
|
173
|
+
* @type String
|
|
155
174
|
*/
|
|
156
175
|
username: string | null;
|
|
157
176
|
|
|
158
177
|
/**
|
|
159
|
-
*
|
|
178
|
+
* The link to the artist's profile. `null` if not applicable.
|
|
179
|
+
* @type String
|
|
160
180
|
*/
|
|
161
181
|
profile: string | null;
|
|
162
182
|
}
|
|
@@ -164,11 +184,13 @@ declare module 'nekosia.js' {
|
|
|
164
184
|
interface ImageAttribution {
|
|
165
185
|
/**
|
|
166
186
|
* Information about the artist.
|
|
187
|
+
* @type Object
|
|
167
188
|
*/
|
|
168
189
|
artist: ArtistDetails;
|
|
169
190
|
|
|
170
191
|
/**
|
|
171
|
-
*
|
|
192
|
+
* The copyright of the artwork. `null` if not applicable.
|
|
193
|
+
* @type String
|
|
172
194
|
*/
|
|
173
195
|
copyright: string | null;
|
|
174
196
|
}
|
|
@@ -179,102 +201,114 @@ declare module 'nekosia.js' {
|
|
|
179
201
|
interface ImageResponse {
|
|
180
202
|
/**
|
|
181
203
|
* Indicates whether the operation was successful.
|
|
204
|
+
* @type Boolean
|
|
182
205
|
* @example true
|
|
183
206
|
*/
|
|
184
207
|
success: boolean;
|
|
185
208
|
|
|
186
209
|
/**
|
|
187
210
|
* HTTP status code of the response.
|
|
211
|
+
* @type Number
|
|
188
212
|
* @example 200
|
|
189
213
|
*/
|
|
190
214
|
status: number;
|
|
191
215
|
|
|
192
216
|
/**
|
|
193
217
|
* Session key, if applicable, otherwise `null`.
|
|
218
|
+
* @type String
|
|
194
219
|
*/
|
|
195
220
|
key: string | null;
|
|
196
221
|
|
|
197
222
|
/**
|
|
198
223
|
* Number of images included in the response.
|
|
224
|
+
* @type Number
|
|
199
225
|
*/
|
|
200
226
|
count: number;
|
|
201
227
|
|
|
202
228
|
/**
|
|
203
|
-
*
|
|
229
|
+
* Unique identifier for the image.
|
|
230
|
+
* @type String
|
|
204
231
|
*/
|
|
205
232
|
id: string;
|
|
206
233
|
|
|
207
234
|
/**
|
|
208
|
-
*
|
|
235
|
+
* Object containing the dominant colors of the fetched image.
|
|
236
|
+
* @type Object
|
|
209
237
|
*/
|
|
210
238
|
colors: ImageColors;
|
|
211
239
|
|
|
212
240
|
/**
|
|
213
|
-
*
|
|
241
|
+
* Object containing details about both the original and compressed images.
|
|
214
242
|
*/
|
|
215
243
|
image: {
|
|
216
244
|
/**
|
|
217
|
-
*
|
|
245
|
+
* The original uncompressed image. Includes EXIF data to credit the artist.
|
|
246
|
+
* @type Object
|
|
218
247
|
*/
|
|
219
248
|
original: ImageDetails;
|
|
220
249
|
|
|
221
250
|
/**
|
|
222
|
-
*
|
|
251
|
+
* The compressed version of the image, reduced in size without quality loss. Includes EXIF data to credit the artist.
|
|
252
|
+
* @type Object
|
|
223
253
|
*/
|
|
224
254
|
compressed: ImageDetails;
|
|
225
255
|
};
|
|
226
256
|
|
|
227
257
|
/**
|
|
228
|
-
* Metadata
|
|
258
|
+
* Metadata for both the original and compressed images.
|
|
259
|
+
* @type Object
|
|
229
260
|
*/
|
|
230
|
-
metadata: {
|
|
231
|
-
original: ImageMetadata;
|
|
232
|
-
compressed: ImageMetadata;
|
|
233
|
-
};
|
|
261
|
+
metadata: { original: ImageMetadata; compressed: ImageMetadata };
|
|
234
262
|
|
|
235
263
|
/**
|
|
236
|
-
*
|
|
237
|
-
* @
|
|
264
|
+
* The category the image belongs to.
|
|
265
|
+
* @type String
|
|
266
|
+
* @example "catgirl"
|
|
238
267
|
*/
|
|
239
268
|
category: string;
|
|
240
269
|
|
|
241
270
|
/**
|
|
242
|
-
* Tags
|
|
271
|
+
* Tags associated with the image.
|
|
272
|
+
* @type Array
|
|
243
273
|
*/
|
|
244
274
|
tags: string[];
|
|
245
275
|
|
|
246
276
|
/**
|
|
247
277
|
* Content rating of the image.
|
|
248
278
|
*
|
|
249
|
-
* `safe` - Image safe
|
|
279
|
+
* `safe` - Image safe for all audiences.
|
|
250
280
|
*
|
|
251
|
-
* `questionable` - Image may contain content
|
|
281
|
+
* `questionable` - Image may contain content unsuitable for some viewers.
|
|
252
282
|
*
|
|
253
|
-
* `nsfw` - Image contains content
|
|
283
|
+
* `nsfw` - Image contains adult content (Not Safe For Work).
|
|
254
284
|
*
|
|
285
|
+
* @type String
|
|
255
286
|
* @output 'safe' | 'questionable' | 'nsfw'
|
|
256
287
|
*/
|
|
257
288
|
rating: 'safe' | 'questionable' | 'nsfw';
|
|
258
289
|
|
|
259
290
|
/**
|
|
260
|
-
* Information about the anime (
|
|
291
|
+
* Information about the anime (or related media) the image may be associated with.
|
|
292
|
+
* @type Object
|
|
261
293
|
*/
|
|
262
294
|
anime: ImageAnime;
|
|
263
295
|
|
|
264
296
|
/**
|
|
265
|
-
*
|
|
297
|
+
* Details about the source of the image.
|
|
298
|
+
* @type Object
|
|
266
299
|
*/
|
|
267
300
|
source: ImageSource;
|
|
268
301
|
|
|
269
302
|
/**
|
|
270
|
-
*
|
|
303
|
+
* Information about the artist and the associated copyright of the image.
|
|
304
|
+
* @type Object
|
|
271
305
|
*/
|
|
272
306
|
attribution: ImageAttribution;
|
|
273
307
|
}
|
|
274
308
|
|
|
275
309
|
/**
|
|
276
310
|
* Nekosia API class, containing methods for fetching images.
|
|
277
|
-
* All methods are asynchronous and return a Promise
|
|
311
|
+
* All methods are asynchronous and return a Promise resolving to an `ImageResponse`.
|
|
278
312
|
*/
|
|
279
313
|
export class NekosiaAPI {
|
|
280
314
|
/**
|
|
@@ -288,9 +322,10 @@ declare module 'nekosia.js' {
|
|
|
288
322
|
* additionalTags: ['cute', 'sakura', 'cherry-blossom'],
|
|
289
323
|
* blacklistedTags: ['beret']
|
|
290
324
|
* });
|
|
291
|
-
* @
|
|
325
|
+
* @type Object
|
|
326
|
+
* @returns A Promise resolving to an `ImageResponse`.
|
|
292
327
|
*/
|
|
293
|
-
fetchImages(category: AllTagsList, options?: FetchImagesOptions): Promise<ImageResponse>;
|
|
328
|
+
static fetchImages(category: AllTagsList, options?: FetchImagesOptions): Promise<ImageResponse>;
|
|
294
329
|
|
|
295
330
|
/**
|
|
296
331
|
* Fetches images based solely on the tags provided by the user. The main category does not affect the image selection as it is not provided here.
|
|
@@ -302,54 +337,62 @@ declare module 'nekosia.js' {
|
|
|
302
337
|
* additionalTags: ['catgirl', 'foxgirl'],
|
|
303
338
|
* blacklistedTags: ['dog-girl']
|
|
304
339
|
* });
|
|
305
|
-
* @
|
|
340
|
+
* @type Object
|
|
341
|
+
* @returns A Promise resolving to an `ImageResponse`.
|
|
306
342
|
*/
|
|
307
|
-
fetchShadowImages(options?: FetchImagesOptions): Promise<ImageResponse>;
|
|
343
|
+
static fetchShadowImages(options?: FetchImagesOptions): Promise<ImageResponse>;
|
|
308
344
|
|
|
309
345
|
/**
|
|
310
346
|
* Fetches an image by its identifier.
|
|
311
347
|
* @param id - The image identifier (e.g., `66ae26a07886f165901e8a3f`).
|
|
312
|
-
* @
|
|
348
|
+
* @type Object
|
|
349
|
+
* @returns A Promise resolving to an `ImageResponse`.
|
|
313
350
|
*/
|
|
314
|
-
fetchById(id: string): Promise<ImageResponse>;
|
|
351
|
+
static fetchById(id: string): Promise<ImageResponse>;
|
|
315
352
|
}
|
|
316
353
|
|
|
317
354
|
/**
|
|
318
|
-
* JSON object response from the API
|
|
355
|
+
* JSON object response from the API containing information about the current version and related details.
|
|
319
356
|
*/
|
|
320
357
|
interface APIVersion {
|
|
321
358
|
/**
|
|
322
359
|
* HTTP status code of the response.
|
|
360
|
+
* @type Number
|
|
323
361
|
* @example 200
|
|
324
362
|
*/
|
|
325
363
|
status: number;
|
|
326
364
|
|
|
327
365
|
/**
|
|
328
366
|
* Indicates whether the request was successful.
|
|
367
|
+
* @type Boolean
|
|
329
368
|
* @example true
|
|
330
369
|
*/
|
|
331
370
|
success: boolean;
|
|
332
371
|
|
|
333
372
|
/**
|
|
334
373
|
* The current version of the API.
|
|
335
|
-
* @
|
|
374
|
+
* @type String
|
|
375
|
+
* @example "1.0.0"
|
|
336
376
|
*/
|
|
337
377
|
version: string;
|
|
338
378
|
|
|
339
379
|
/**
|
|
340
380
|
* URL to the API documentation.
|
|
341
|
-
* @
|
|
381
|
+
* @type String
|
|
382
|
+
* @example "https://nekosia.cat/documentation"
|
|
342
383
|
*/
|
|
343
384
|
documentation: string;
|
|
344
385
|
|
|
345
386
|
/**
|
|
346
|
-
* Contact email.
|
|
347
|
-
* @
|
|
387
|
+
* Contact email for inquiries.
|
|
388
|
+
* @type String
|
|
389
|
+
* @example "contact@nekosia.cat"
|
|
348
390
|
*/
|
|
349
391
|
contact: string;
|
|
350
392
|
|
|
351
393
|
/**
|
|
352
|
-
* List of available API
|
|
394
|
+
* List of available API versions.
|
|
395
|
+
* @type Array
|
|
353
396
|
* @example [1]
|
|
354
397
|
*/
|
|
355
398
|
apis: number[];
|
|
@@ -360,15 +403,17 @@ declare module 'nekosia.js' {
|
|
|
360
403
|
*/
|
|
361
404
|
export const NekosiaVersion: {
|
|
362
405
|
/**
|
|
363
|
-
*
|
|
406
|
+
* Retrieves the current version of the module.
|
|
364
407
|
* @example "1.1.0"
|
|
365
|
-
* @
|
|
408
|
+
* @type String
|
|
409
|
+
* @returns A string representing the module version.
|
|
366
410
|
*/
|
|
367
411
|
module: string;
|
|
368
412
|
|
|
369
413
|
/**
|
|
370
|
-
*
|
|
371
|
-
* @
|
|
414
|
+
* Fetches the current API version and related information.
|
|
415
|
+
* @type Object
|
|
416
|
+
* @returns A Promise that resolves to an `APIVersion` object.
|
|
372
417
|
*/
|
|
373
418
|
api(): Promise<APIVersion>;
|
|
374
419
|
};
|
package/types/tags.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
'absolute-territory', 'after-the-rain', 'afternoon-tea', 'ahoge', 'air-comiket', 'ajitani-hifumi', 'akazukin', 'aksktrpg', 'akura', 'alice-in-wonderland', 'alice-margatroid', 'alice-tendou', 'alllisso', 'alluring-face', 'alone', 'amamine', 'amamineko-cafe', 'amashiro-natsuki', 'ame-nochi-yuki', 'ameto-yuki', 'angel', 'angry', 'angry-face', 'apex', 'apple', 'apple-pie', 'apron-dress', 'aqua', 'aquarium', 'areola-slip', 'aria-tsukushi', 'arknights', 'arknights-battle-illustration-contest', 'armed-girls', 'armpits', 'ashen-hair', 'ass', 'assault-rifle', 'autumn', 'autumn-leaves', 'axillary-costume', 'azki', 'azkiart', 'azur-lane', 'azur-lane-fleet', 'baby-face', 'babydoll', 'background', 'balloon', 'balloons', 'bandages', 'bandaid', 'bangtail', 'bare-feet', 'bare-soles', 'barefoot', 'barefoot-school-uniform', 'basketball', 'basketball-uniform', 'bath-time', 'bath-towel', 'beach', 'beach-ball', 'beast-girl', 'beautiful', 'beautiful-breasts', 'beautiful-reimu', 'bed', 'bed-hair', 'bedroom', 'belly', 'belly-glimpse', 'bellybutton', 'bench', 'beret', 'bewitching-thighs', 'big-breasts', 'bikini', 'bikini-top', 'birthday', 'black-and-white', 'black-bikini', 'black-dress', 'black-hair', 'black-hair-with-red-eyes', 'black-knee-high-socks', 'black-ribbon', 'black-sailor-uniform', 'black-shoes', 'black-stockings', 'black-thigh-high-socks', 'black-thigh-highs', 'black-tights', 'black-twintails', 'blazer', 'blonde', 'bloomers', 'blue', 'blue-archive', 'blue-eues', 'blue-eyes', 'blue-hair', 'blue-ribbon', 'blue-ribbono', 'blue-shoes', 'blue-skirt', 'blue-sky', 'bluearchive', 'blushing', 'bocchi-chan', 'botamochi', 'bottomless', 'bouquet', 'boy-cut', 'bra', 'braid', 'breast-hold', 'breasts', 'bride', 'brown-hair', 'bubble-tea', 'bubblegum', 'bue-eyes', 'bunny-ears', 'bunny-girl', 'butterfly', 'by-the-window', 'cable-knitting', 'cake', 'cameltoe', 'camisole', 'camisole-dress', 'canal', 'candy', 'candy-apple', 'car', 'cardigan', 'cardigan-uniform', 'casual-wear', 'cat', 'cat-and-girl', 'cat-ears', 'cat-ears-hat', 'cat-ears-headphones', 'cat-ears-hoodie', 'cat-ears-maid', 'cat-lingerie', 'cat-mouth', 'cat-pose', 'cat-tail', 'catgirl', 'celia-claire', 'celica', 'cheeks', 'cheerleader', 'chericot-rozel', 'cherry', 'cherry-blossom', 'cherry-petals', 'chest-outline', 'chibi', 'chihuahua', 'chin-resting', 'china-dress', 'chinese-lolita', 'chinese-style', 'chino', 'chino-kafuu', 'chitosezaka-suzu', 'chiyu', 'chocolate', 'chocolate-mint', 'choker', 'christmas', 'chuuni', 'classroom', 'cloak', 'closed-eyes', 'clouds', 'coffee', 'collar', 'collarbone', 'comic-treasure', 'confused', 'cookie', 'corset', 'cosmos', 'costume-change', 'crossed-legs', 'crying', 'cuite', 'cutaway-shoulder', 'cute', 'cute-cat', 'cuteness-is-justice', 'cyber', 'dakimakura-cover', 'dango', 'detexted', 'dnf', 'dog-and-girl', 'dog-ears', 'dog-girl', 'doggirl', 'donut', 'doujin', 'drawers', 'drawing-a-sword', 'dress', 'dress-shirt', 'dungeon-fighter-online', 'dvdart', 'ear-cleaning', 'elementary-school-student', 'elevator', 'enticing-brassiere', 'epic-seven', 'epic-seven-fan-art-illustration-contest', 'exposed-back', 'eye-mask', 'eyepatch', 'fairy-eye', 'fairy-tale', 'fallenshadow', 'fan-work', 'fantasy', 'fantasy-girl', 'feather-ears', 'feet', 'felicia-lulufleur', 'festival-of-white', 'fishnets', 'flare-skirt', 'flared-bikini', 'flat-chest', 'flower', 'flowers-and-girls', 'footwear', 'forest', 'fox-ears', 'fox-mask', 'fox-shrine-maiden', 'foxgirl', 'frills', 'fubuki-shiragami', 'fubuki-shiragami-fanart', 'futaba-sharo', 'fuwamoco', 'fuwawa', 'fuwawa-abyssgard', 'fuyoyo', 'fuzzy', 'fwmcpix', 'game', 'game-pad', 'gamer', 'gamer-girl', 'ganbare-ganbare', 'garter', 'garter-ring', 'garter-stockings', 'garterbelt', 'gawr-gura', 'gawrgura', 'gawrt', 'genshin-impact', 'gensokyo-in-spring', 'getting-dressed', 'gijinka', 'girl', 'girls', 'girls-frontline', 'glasses', 'gloves', 'gothic-lolita', 'greek-foot', 'green-eyes', 'green-hair', 'green-ribbon', 'guildcq', 'guitar', 'gun', 'gym-uniform', 'hairdressing', 'hairpin', 'hairstyle-change', 'hakui-koyori', 'half-pants', 'half-pigtails', 'half-up-hairstyle', 'halloween', 'halo', 'hamico', 'hammann', 'han-costume', 'hanami', 'hand-held-pigtails', 'hand-on-crotch', 'handcuffs', 'hands-forming-a-heart', 'harness', 'haruhara-shun', 'hayate-hisakawa', 'hazakura-chikori', 'headband', 'headboard-angle', 'headdress', 'headphone', 'headphones', 'headset', 'heart', 'heart-eyes', 'heartbreak', 'hearts', 'hedgehog', 'heels', 'heterochromia', 'hibiki', 'hibiscus', 'high-angle', 'high-leg-panties', 'high-school-girl', 'high-waisted-skirt', 'hiiro', 'hikaru', 'himura-moritaka', 'hirakata-kana', 'hizuki-miu', 'hizuki-rurufu', 'holding-hands-with-fingers-interlocked', 'holding-ice-in-mouth', 'holoadvent', 'hololive', 'hololive-en', 'hololive-english', 'hololiveen', 'holox', 'hong', 'hood', 'hoodie', 'hoshi', 'hoshino', 'hoshizora-no-memoria', 'hot-pants', 'hot-spring', 'houzuki-michiru', 'hu-tao', 'hutao', 'hyerang', 'ice-cream', 'ichigori-ena', 'idol', 'illumination', 'in-the-train', 'incredibly-cute', 'indie-virtual-youtuber', 'infamous-left-foot-defense', 'inflatable-pool', 'inner-color', 'inugami-korone', 'iochi-mari', 'itigori-ena', 'itou-yuna', 'izayoi-nonomi', 'jagged-sclera', 'japanese-clothes', 'japanese-maid', 'japanese-style', 'japanese-style-maid', 'japanese-umbrella', 'jersey', 'jk', 'joint-work', 'jumper-skirt', 'just-woke-up', 'kabashima-hana', 'kamiko-kana', 'kamioka-chiroru', 'kamisato-ayaka', 'kamiyama-shiki', 'kancolle', 'kantai-collection', 'kanzaki-ririka', 'karyl', 'katana', 'katcolle', 'kazari-rua', 'kigurumi', 'kimono', 'kimono-dress', 'kindergarten-pupil', 'kingdom', 'kirakira-monstars', 'kiryuu-kikyou', 'kitchen', 'knee-high-socks', 'kneeling', 'knockout-knockers', 'koahri', 'kohaku-nene', 'koharu', 'koiko-irori', 'koito-amuno', 'kokoro-amamiya', 'korie-riko', 'korone', 'koyori-hakui', 'koyori-sketch', 'kuda-izuna', 'kuro-namako', 'kuromi-serika', 'kuroneko', 'kurose-kiri', 'kyaru', 'lancat', 'lanmewko', 'lap-pillow', 'laplus-darkness', 'large-breasts', 'lattice-tower', 'leaning-forward', 'left-foot-shield', 'legato', 'leggings', 'lemon', 'leo', 'lifted-clothing', 'lily-of-the-valley', 'lime', 'lingerie', 'little-devil', 'lolicon-bait', 'lolipop-complete', 'lolita', 'lolita-fashion', 'lollipop', 'long-black-hair', 'long-blond-hair', 'long-gloves', 'long-hair', 'long-pink-hair', 'long-red-hair', 'long-white-gloves', 'long-white-hair', 'loungewear', 'lying-down', 'lying-on-one-side', 'macaron', 'machikaze-fuuna', 'mad', 'magical-girl', 'mahiro-oyama', 'maid', 'maid-bikini', 'maid-day', 'maid-uniform', 'makeup', 'mari-iochi', 'marie', 'marine-day', 'marine-look', 'maruro', 'mascot', 'matsumiya-kiseri', 'mayoi-shigure', 'mea-kagura', 'medium-hair', 'metaljelly', 'mf-bunko-j', 'middle-school-student', 'midriff', 'mihoshi-mei', 'miike-chan', 'mika', 'mika-misono', 'mikeneko', 'mikeneko-fanart', 'miko', 'minami-kotone', 'mini-hakama', 'miniskirt', 'miniskirt-miko', 'mirror', 'miu-channel', 'miu-hizuki', 'mizuki', 'mizukiart', 'mococo', 'mococo-abyssgard', 'mofumies', 'mole-under-the-eye', 'moon', 'msi', 'murasaki-shion', 'myoya', 'nachoneko', 'nagi-hisakawa', 'nail-polish', 'naked-navel', 'nap', 'natori-sana', 'navel-piercing', 'necktie', 'necomi', 'needs-to-be-appreciated-more', 'negligee', 'nekoha-shizuku', 'nekokobushi', 'nekomata-okayu', 'new-year', 'newsboy-cap', 'night', 'night-sky', 'nijisanji', 'nikke', 'nine-tailed', 'nkshoujo', 'no-game-no-life', 'noire', 'nolan', 'nonaka-yuu', 'not-wearing-any-panties', 'nurse', 'off-shoulder', 'off-shoulder-dress', 'okomeillust', 'okusora-ayane', 'old-fashioned-school-swimsuit', 'older-girl', 'omochi-box', 'omochi-monaka', 'one-eye-covered', 'one-piece', 'one-piece-swimsuit', 'ookami-mio', 'open-shirt', 'orange-ribbon', 'otokonoko', 'overalls', 'overly-long-sleeves', 'pajama', 'pajamas', 'panchira', 'panties', 'pantsu', 'panty-peek', 'pantyhose', 'parasol', 'parfait', 'patting', 'paw-pads', 'peace-sign', 'pee-holding', 'pekora-usada-fanart', 'personification-of-drinks', 'photo-editing', 'photoshop', 'piink', 'pillow', 'pinching-garments', 'pink', 'pink-eyes', 'pink-hair', 'pink-ribbon', 'pink-shoes', 'pink-skirt', 'pink-sweater', 'pink-twintails', 'plaid-pattern', 'plaid-skirt', 'plastic-bottle', 'platform', 'playing-cards', 'plump-thighs', 'plushie', 'pocky-day', 'pointy-ears', 'ponytail', 'pool', 'pool-at-night', 'porch', 'present', 'princess-connect', 'prone-position', 'psycho', 'purple-ears', 'purple-eyes', 'purple-hair', 'purple-ribbon', 'queen-of-hearts', 'rabbit-girl', 'ragna-doll', 'railroad-crossing', 'railway', 'rain', 'rainy-season', 'ramune', 'randoseru', 'rawr', 're-oekaki', 'red-and-blue', 'red-eyes', 'red-hair', 'red-pigtails', 'red-ribbon', 'red-shoes', 'red-skirt', 'reflected-glare', 'reimu-hakurei', 'remilia-scarlet', 'remiliacn', 'rena-yorumi', 'reverse-sitting', 'rhodes', 'ribbed-fabric', 'ribbon', 'ribbonos', 'ribbons', 'ringo-chan', 'roar', 'rocket-launcher', 'roxanne', 'rribbon', 'rubbib', 'rucaco', 'rukako', 'ruki-roki', 'rumi', 'runa-shinomiya', 'rushia-uruha', 'sad', 'saekiya-sabou', 'saiba-midori', 'saiba-momoi', 'sailor', 'sailor-dress', 'sailor-one-piece', 'sailor-swimsuit', 'sailor-uniform', 'sakamata-chloe', 'sakura', 'sakura-miko', 'sakuraba-moeka', 'sakurai-hana', 'sand', 'sandals', 'santa', 'santa-cosplay', 'sassy-loli', 'scared', 'scarf', 'scenery', 'sch', 'school-girl', 'school-swimsuit', 'school-uniform', 'school-uniform-cardigan', 'school-uniform-hoodie', 'schoolgirl', 'sea', 'see-through', 'selfie', 'serena-hanazono', 'setokane', 'shano-hiyori', 'shanoa-asmr', 'shigure', 'shimapan', 'shiori', 'shirakami-fubuki', 'shirakawa-yumea', 'shirasu-azusa', 'shiroko-terror', 'shiromichan', 'short-boots', 'short-haircut', 'short-pants', 'short-white-hair', 'shouu-kun', 'showgirl', 'side-string-bikini', 'side-tie-panty', 'silver-hair', 'silver-long-hair', 'singer', 'sisters', 'sitting', 'sitting-on-feet', 'sitting-with-hands-around-knees', 'skirt', 'skirt-lift', 'sleep', 'sleep-wear', 'sleeping-face', 'sleepy', 'sleepy-face', 'sleeveless', 'sleeveless-dress', 'sleeveless-parka', 'small-breasts', 'small-fangs', 'smile', 'snack-nili', 'snow', 'snow-leopard', 'snowman', 'socks', 'sofa', 'sole', 'somna', 'sotis', 'spiked-bat', 'spiral-eyes', 'splashes', 'spring', 'squirrel', 'stairs', 'standing-picture', 'starlight-stage', 'starry-sky', 'starry-sky-dress', 'steamed-bun-with-meat-filling', 'stirrup-leggings', 'stockings', 'straight-fringe', 'strap-shoes', 'strapless', 'straw-hat', 'strawberries', 'strawberry', 'string-ribbon', 'striped-bikini', 'striped-knee-highs', 'striped-thigh-high-socks', 'subculture', 'sukumizu', 'summer', 'summer-dress', 'summer-kimono', 'summer-pockets', 'summer-sky', 'sunaookami-shiroko', 'sunflower', 'sunflowers', 'sunglasses', 'sunohara-kokona', 'sunset', 'supine', 'suspender-skirt', 'suzuho-hotaru', 'sweat', 'sweater', 'swim-ring', 'swimsuit', 'swimsuit-parka', 'swimwear', 'sword', 't-shirt', 'tail', 'tail-from-under-skirt', 'tail-with-ribbon', 'taiwan', 'takanashi-hoshino', 'tattoo', 'tea', 'tea-time', 'tears', 'teary-eyed', 'teary-eyes', 'teketi', 'telephone', 'tenshinoikenie', 'the-person-behind', 'the-soles-of-feet-in-socks', 'theriantrope', 'thick-eyebrows', 'thigh-high-socks', 'thigh-highs', 'thighhighs', 'thighs', 'tie-side-bikini', 'tiger', 'tight', 'tired', 'toes', 'tokoshibyra', 'tongue-out', 'touhou', 'touhou-project', 'towel', 'transparency', 'tropical-fish', 'tsugiri-noa', 'tsurara', 'twin-pig-tails', 'twin-ponytails', 'twins', 'twintails', 'two-shot', 'uise-iu', 'umbrella', 'underwater', 'uniform', 'upwards-gaze', 'uruha-rushia-fanart', 'usada-pekora', 'usagigo', 'valentine', 'vampire', 'vdonburi', 'verslll', 'virtual', 'virtual-esports-project', 'vrchat', 'vtuber', 'w-sitting', 'waitress', 'wallpaper', 'water', 'water-surface', 'watermelon', 'wearing-only-a-shirt', 'wedding-dress', 'wet', 'wet-see-through', 'what-is-this-cuteness', 'white', 'white-bikini', 'white-cat', 'white-day', 'white-dress', 'white-hair', 'white-hairpin', 'white-high-socks', 'white-knee-high-socks', 'white-ribbon', 'white-sailor-uniform', 'white-school-swimsuit', 'white-socks', 'white-stockings', 'white-swimsuit', 'white-thigh-high-socks', 'white-tiger', 'white-tights', 'wide-brim-hat', 'wind-chime', 'winer', 'wings', 'wink', 'winter', 'witch', 'wolf-ears', 'wolf-girl', 'women-in-parka', 'yandere', 'yawn', 'year-of-the-tiger', 'yellow-bikini', 'yellow-eyes', 'yellow-hair', 'yellow-ribbon', 'yoko', 'young-girl', 'youtuber', 'yozuki-mofu', 'yuika-shiina', 'yukata', 'yukihana-lamy', 'yukikaze', 'yutori-natsu'
|
|
3
|
-
] as const;
|
|
1
|
+
// https://api.nekosia.cat/api/v1/tags
|
|
2
|
+
export const TAGS = ['absolute-territory','after-the-rain','afternoon-tea','ahoge','ajitani-hifumi','akazukin','aksktrpg','akura','alice-in-wonderland','alice-margatroid','alice-tendou','alllisso','alluring-face','alone','amamine','amamineko-cafe','amashiro-natsuki','ame-nochi-yuki','ameto-yuki','angel','angry-face','animal-ears','apex','apple','apple-caramel','apple-pie','apron-dress','aqua','aquarium','areola-slip','aria-tsukushi','arknights','arknights-battle-illustration-contest','armed-girls','armpits','ashen-hair','assault-rifle','autumn','autumn-leaves','axillary-costume','azki','azkiart','azur-lane','babydoll','back-alley','background','balloon','balloons','bandages','bandaid','bangtail','bare-feet','bare-soles','barefoot','basketball','basketball-uniform','bath-time','bath-towel','beach','beach-ball','beast-girl','beautiful','beautiful-reimu','bed','bed-hair','bedroom','belly','belly-glimpse','bellybutton','bench','beret','bewitching-thighs','big-breasts','bikini','bikini-top','birthday','black-and-white','black-bikini','black-dress','black-hair','black-hair-with-red-eyes','black-knee-high-socks','black-ribbon','black-sailor-uniform','black-shoes','black-skirt','black-stockings','black-thigh-high-socks','black-thigh-highs','black-tights','blazer','blonde','bloomers','blue-archive','blue-eues','blue-eyes','blue-hair','blue-ribbon','blue-shoes','blue-skirt','blue-sky','bluearchive','blushing','bocchi-chan','bondage','botamochi','bottomless','boy-cut','bra','braid','breast-hold','breasts','bride','brown-hair','bubble-tea','bunny-ears','bunny-girl','butterfly','by-the-window','cable-knitting','cake','cameltoe','camisole','camisole-dress','canal','candy','candy-apple','car','cardigan','cardigan-uniform','casual-wear','cat','cat-and-girl','cat-ears','cat-ears-hat','cat-ears-headphones','cat-ears-hoodie','cat-ears-maid','cat-mouth','cat-pose','cat-tail','catgirl','celia-claire','celica','cheeks','cheerleader','chericot-rozel','cherry','cherry-blossom','cherry-petals','chest-outline','chibi','chihuahua','chin-resting','chinese-lolita','chinese-style','chino','chino-kafuu','chitosezaka-suzu','chiyu','chocolate','chocolate-mint','choker','christmas','chuuni','classroom','cloak','closed-eyes','clouds','coffee','collar','comic-treasure','confused','cookie','corset','cosmos','costume-change','crossed-legs','crying','cuite','cutaway-shoulder','cute','cute-cat','cuteness-is-justice','dakimakura-cover','dango','detexted','dog-and-girl','dog-ears','dog-girl','doggirl','donut','doujin','drawers','drawmei','dress','dress-shirt','dvdart','elementary-school-student','elevator','enticing-brassiere','epic-seven','epic-seven-fan-art-illustration-contest','exposed-back','eye-mask','eyepatch','fairy-eye','fairy-tale','fallenshadow','fantasy','fantasy-girl','feather-ears','feet','felicia-lulufleur','festival-of-white','firefly','fishnets','flare-skirt','flared-bikini','flat-chest','flower','flowers-and-girls','forest','fox-ears','fox-mask','fox-shrine-maiden','foxgirl','frills','fubuki-shiragami','fubuki-shiragami-fanart','fuwamoco','fuwawa','fuwawa-abyssgard','fuyoyo','fuzzy','fwmcpix','game','game-pad','gamer','gamer-girl','ganbare-ganbare','garter','garter-ring','garter-stockings','garterbelt','gawr-gura','genshin-impact','gensokyo-in-spring','getting-dressed','gijinka','girl','girls','girls-frontline','glasses','gloves','gothic-lolita','greek-foot','green-eyes','green-hair','green-ribbon','guildcq','guitar','gun','gym-uniform','hairdressing','hairpin','hairstyle-change','hakui-koyori','half-pants','half-pigtails','half-up-hairstyle','halloween','halo','hamico','hammann','hammock','han-costume','hanami','hands-forming-a-heart','harness','haruhara-shun','hayate-hisakawa','hazakura-chikori','headband','headboard-angle','headdress','headphone','headphones','headset','heart','heart-eyes','heartbreak','hearts','hedgehog','heels','herta','heterochromia','hibiki','hibiscus','high-angle','high-school-girl','high-waisted-skirt','hiiro','hikaru','himura-moritaka','hirakata-kana','hizuki-miu','hizuki-rurufu','holding-hands-with-fingers-interlocked','holding-ice-in-mouth','holoadvent','hololive','hololive-en','hololive-english','hololiveen','holox','hong','honkaistarrail','hood','hoodie','hoshi','hoshino','hoshitsuki-neiro','hoshizora-no-memoria','hot-pants','hot-spring','houzuki-michiru','hu-tao','hutao','hyerang','ice-cream','ichigori-ena','idol','illumination','in-the-train','incredibly-cute','indie-virtual-youtuber','indie-vtuber','infamous-left-foot-defense','inflatable-pool','inner-color','inugami-korone','itigori-ena','itou-yuna','izayoi-nonomi','jagged-sclera','japanese-clothes','japanese-maid','japanese-style','japanese-style-maid','japanese-umbrella','jersey','jk','jumper-skirt','jumpy','just-woke-up','kabashima-hana','kamiko-kana','kamioka-chiroru','kamisato-ayaka','kamiyama-shiki','kancolle','kantai-collection','kanzaki-ririka','karin','karyl','katana','katcolle','kazari-rua','kazueru','kazusa-kyoyama','kigurumi','kimono','kimono-dress','kindergarten-pupil','kingdom','kirakira-monstars','kiryuu-kikyou','kitchen','klee','knee-high-socks','kneeling','knockout-knockers','koahri','kohaku-nene','koharu','koiko-irori','koito-amuno','kokoro-amamiya','korie-riko','korone','koyori-hakui','koyori-sketch','kuda-izuna','kuro-namako','kuromi-serika','kuroneko','kyaru','kyouyama-kazusa','lancat','lanmewko','lap-pillow','laplus-darkness','large-breasts','lattice-tower','leaning-forward','left-foot-shield','legato','leggings','legs','lemon','leo','lily-of-the-valley','lime','lingerie','little-devil','lolicon-bait','lolipop-complete','lolita','lolita-fashion','lollipop','long-black-hair','long-blond-hair','long-gloves','long-hair','long-pink-hair','long-red-hair','long-white-gloves','long-white-hair','loungewear','lying-down','lying-on-one-side','macaron','machikaze-fuuna','mad','magical-girl','maid','maid-bikini','maid-day','maid-uniform','makeup','mari-iochi','marie','marine-day','marine-look','maruro','mascot','matsumiya-kiseri','mayoi-shigure','mea-kagura','medium-hair','mf-bunko-j','middle-school-student','midori-matsukaze','midriff','mihoshi-mei','miike-chan','mika','mika-misono','mikeneko','mikeneko-fanart','miko','miku-maekawa','minami-kotone','mini-hakama','miniskirt','miniskirt-miko','mint','mirror','miu-channel','miu-hizuki','mizukiart','mococo','mococo-abyssgard','mole-under-the-eye','moon','murasaki-shion','muryo','myoya','nachoneko','nagi-hisakawa','nahida','nail-polish','naked-navel','nanashi-mumei','nap','natori-sana','necktie','necomi','needs-to-be-appreciated-more','negligee','nekoha-shizuku','nekomata-okayu','new-year','newsboy-cap','night','night-sky','nijisanji','nikke','nine-tailed','nintendo-switch','nintendoswitch','no-game-no-life','noire','nolan','nonaka-yuu','nurse','off-shoulder','off-shoulder-dress','okomeillust','okusora-ayane','old-fashioned-school-swimsuit','older-girl','omochi-box','omochi-monaka','one-eye-covered','one-piece','one-piece-swimsuit','ookami-mio','open-shirt','orange-ribbon','otokonoko','overalls','overly-long-sleeves','pajamas','panchira','panties','pantsu','pantyhose','parasol','park','patting','paw-pads','peace-sign','pekora-usada-fanart','personification-of-drinks','photo-editing','photoshop','pigtails','pillow','pinching-garments','pink','pink-eyes','pink-hair','pink-ribbon','pink-shoes','pink-skirt','pink-sweater','pink-twintails','plaid-pattern','plaid-skirt','plastic-bottle','platform','playing-cards','plump-thighs','plushie','pocky','pointy-ears','ponytail','pool','pool-at-night','porch','present','princess-connect','prone-position','psycho','pu-ht','purple-ears','purple-eyes','purple-hair','purple-ribbon','purple-skirt','queen-of-hearts','rabbit-girl','ragna-doll','railroad-crossing','railway','rain','rainy-season','ramune','randoseru','rawr','re-oekaki','red-and-blue','red-eyes','red-hair','red-pigtails','red-ribbon','red-ribbons','red-skirt','reflected-glare','reimu-hakurei','reisa-uzawa','remilia-scarlet','rena-yorumi','reverse-sitting','rhodes','ribbed-fabric','ribbon','ribbonos','ribbons','ringo-chan','roar','rocket-launcher','roxanne','rribbon','rubbib','rucaco','rukako','ruki-roki','rumi','runa-shinomiya','rurudo','rurudo-lion','rushia-uruha','sad','saekiya-sabou','saiba-midori','saiba-momoi','sailor','sailor-dress','sailor-one-piece','sailor-swimsuit','sailor-uniform','sakamata-chloe','sakura','sakura-miko','sakuraba-moeka','sakurai-hana','sand','santa','santa-cosplay','sassy-loli','scared','scarf','scenery','school-girl','school-swimsuit','school-uniform','school-uniform-cardigan','school-uniform-hoodie','schoolgirl','sea','see-through','selfie','setokane','shano-hiyori','shanoa-asmr','shigure','shiori','shirai-tanuki','shirakami-fubuki','shirakawa-yumea','shirasu-azusa','shiroko','shiroko-terror','shiromichan','shooting-star','short-boots','short-haircut','short-pants','short-white-hair','shouu-kun','showgirl','side-string-bikini','side-tie-panty','silver-hair','silver-long-hair','singer','sisters','sitting','sitting-on-feet','sitting-with-hands-around-knees','skirt','skirt-lift','sleep','sleep-wear','sleeping-face','sleepy','sleepy-face','sleeveless','sleeveless-dress','sleeveless-parka','small-fangs','smile','snack-nili','sneakers','snow','snow-leopard','snowman','socks','sofa','sole','somna','sorasaki-hina','spiral-eyes','splashes','spring','squirrel','stairs','standing-picture','starlight-stage','starry-sky','starry-sky-dress','steamed-bun-with-meat-filling','stockings','straight-fringe','strap-shoes','straw-hat','strawberries','strawberry','string-ribbon','striped-bikini','striped-thigh-high-socks','sukumizu','summer','summer-dress','summer-kimono','summer-pockets','sunaookami-shiroko','sunflowers','sunglasses','sunohara-kokona','sunset','supine','suspender-skirt','suzuho-hotaru','sweat','sweater','swim-ring','swimsuit','swimsuit-parka','swimwear','swing','sword','t-shirt','tail','tail-from-under-skirt','tail-holding','tail-with-ribbon','taiwan','takanashi','takanashi-hoshino','tattoo','tea','tea-time','tears','teary-eyed','teary-eyes','telephone','tenshinoikenie','the-person-behind','the-soles-of-feet-in-socks','theriantrope','thick-eyebrows','thigh-high-socks','thigh-highs','thighhighs','thighs','tie-side-bikini','tiger','tight','tired','tobu-railway','toes','tokoshibyra','tongue-out','touhou','touhou-project','towel','transparency','tropical-fish','tsugiri-noa','tsurara','twins','twintails','uise-iu','umbrella','underwater','uniform','upwards-gaze','uruha-rushia-fanart','usada-pekora','usagigo','valentine','vampire','vdonburi','vrchat','vtuber','w-sitting','wa-lolita','waitress','wallpaper','water','water-surface','watermelon','weapon','wearing-only-a-shirt','wedding-dress','wet','wet-see-through','white-bikini','white-cat','white-day','white-dress','white-hair','white-hairpin','white-high-socks','white-knee-high-socks','white-ribbon','white-sailor-uniform','white-school-swimsuit','white-skirt','white-socks','white-stockings','white-swimsuit','white-thigh-high-socks','white-tiger','white-tights','wide-brim-hat','wings','wink','winter','witch','wolf-ears','wolf-girl','yandere','yawn','yellow-bikini','yellow-eyes','yellow-hair','yellow-ribbon','yoko','young-girl','yuika-shiina','yukata','yukihana-lamy','yukikaze','yukinoshita-peo','yutori-natsu'] as const;
|