nekosia.js 0.1.4 β 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 -60
- package/types/index.d.ts +101 -53
- 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,60 +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 api",
|
|
7
|
-
"anime art",
|
|
8
|
-
"anime
|
|
9
|
-
"anime
|
|
10
|
-
"anime
|
|
11
|
-
"anime
|
|
12
|
-
"anime
|
|
13
|
-
"anime",
|
|
14
|
-
"anime
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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,99 +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: { original: ImageMetadata; compressed: ImageMetadata
|
|
261
|
+
metadata: { original: ImageMetadata; compressed: ImageMetadata };
|
|
231
262
|
|
|
232
263
|
/**
|
|
233
|
-
*
|
|
234
|
-
* @
|
|
264
|
+
* The category the image belongs to.
|
|
265
|
+
* @type String
|
|
266
|
+
* @example "catgirl"
|
|
235
267
|
*/
|
|
236
268
|
category: string;
|
|
237
269
|
|
|
238
270
|
/**
|
|
239
|
-
* Tags
|
|
271
|
+
* Tags associated with the image.
|
|
272
|
+
* @type Array
|
|
240
273
|
*/
|
|
241
274
|
tags: string[];
|
|
242
275
|
|
|
243
276
|
/**
|
|
244
277
|
* Content rating of the image.
|
|
245
278
|
*
|
|
246
|
-
* `safe` - Image safe
|
|
279
|
+
* `safe` - Image safe for all audiences.
|
|
247
280
|
*
|
|
248
|
-
* `questionable` - Image may contain content
|
|
281
|
+
* `questionable` - Image may contain content unsuitable for some viewers.
|
|
249
282
|
*
|
|
250
|
-
* `nsfw` - Image contains content
|
|
283
|
+
* `nsfw` - Image contains adult content (Not Safe For Work).
|
|
251
284
|
*
|
|
285
|
+
* @type String
|
|
252
286
|
* @output 'safe' | 'questionable' | 'nsfw'
|
|
253
287
|
*/
|
|
254
288
|
rating: 'safe' | 'questionable' | 'nsfw';
|
|
255
289
|
|
|
256
290
|
/**
|
|
257
|
-
* Information about the anime (
|
|
291
|
+
* Information about the anime (or related media) the image may be associated with.
|
|
292
|
+
* @type Object
|
|
258
293
|
*/
|
|
259
294
|
anime: ImageAnime;
|
|
260
295
|
|
|
261
296
|
/**
|
|
262
|
-
*
|
|
297
|
+
* Details about the source of the image.
|
|
298
|
+
* @type Object
|
|
263
299
|
*/
|
|
264
300
|
source: ImageSource;
|
|
265
301
|
|
|
266
302
|
/**
|
|
267
|
-
*
|
|
303
|
+
* Information about the artist and the associated copyright of the image.
|
|
304
|
+
* @type Object
|
|
268
305
|
*/
|
|
269
306
|
attribution: ImageAttribution;
|
|
270
307
|
}
|
|
271
308
|
|
|
272
309
|
/**
|
|
273
310
|
* Nekosia API class, containing methods for fetching images.
|
|
274
|
-
* All methods are asynchronous and return a Promise
|
|
311
|
+
* All methods are asynchronous and return a Promise resolving to an `ImageResponse`.
|
|
275
312
|
*/
|
|
276
313
|
export class NekosiaAPI {
|
|
277
314
|
/**
|
|
@@ -285,9 +322,10 @@ declare module 'nekosia.js' {
|
|
|
285
322
|
* additionalTags: ['cute', 'sakura', 'cherry-blossom'],
|
|
286
323
|
* blacklistedTags: ['beret']
|
|
287
324
|
* });
|
|
288
|
-
* @
|
|
325
|
+
* @type Object
|
|
326
|
+
* @returns A Promise resolving to an `ImageResponse`.
|
|
289
327
|
*/
|
|
290
|
-
fetchImages(category: AllTagsList, options?: FetchImagesOptions): Promise<ImageResponse>;
|
|
328
|
+
static fetchImages(category: AllTagsList, options?: FetchImagesOptions): Promise<ImageResponse>;
|
|
291
329
|
|
|
292
330
|
/**
|
|
293
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.
|
|
@@ -299,54 +337,62 @@ declare module 'nekosia.js' {
|
|
|
299
337
|
* additionalTags: ['catgirl', 'foxgirl'],
|
|
300
338
|
* blacklistedTags: ['dog-girl']
|
|
301
339
|
* });
|
|
302
|
-
* @
|
|
340
|
+
* @type Object
|
|
341
|
+
* @returns A Promise resolving to an `ImageResponse`.
|
|
303
342
|
*/
|
|
304
|
-
fetchShadowImages(options?: FetchImagesOptions): Promise<ImageResponse>;
|
|
343
|
+
static fetchShadowImages(options?: FetchImagesOptions): Promise<ImageResponse>;
|
|
305
344
|
|
|
306
345
|
/**
|
|
307
346
|
* Fetches an image by its identifier.
|
|
308
347
|
* @param id - The image identifier (e.g., `66ae26a07886f165901e8a3f`).
|
|
309
|
-
* @
|
|
348
|
+
* @type Object
|
|
349
|
+
* @returns A Promise resolving to an `ImageResponse`.
|
|
310
350
|
*/
|
|
311
|
-
fetchById(id: string): Promise<ImageResponse>;
|
|
351
|
+
static fetchById(id: string): Promise<ImageResponse>;
|
|
312
352
|
}
|
|
313
353
|
|
|
314
354
|
/**
|
|
315
|
-
* JSON object response from the API
|
|
355
|
+
* JSON object response from the API containing information about the current version and related details.
|
|
316
356
|
*/
|
|
317
357
|
interface APIVersion {
|
|
318
358
|
/**
|
|
319
359
|
* HTTP status code of the response.
|
|
360
|
+
* @type Number
|
|
320
361
|
* @example 200
|
|
321
362
|
*/
|
|
322
363
|
status: number;
|
|
323
364
|
|
|
324
365
|
/**
|
|
325
366
|
* Indicates whether the request was successful.
|
|
367
|
+
* @type Boolean
|
|
326
368
|
* @example true
|
|
327
369
|
*/
|
|
328
370
|
success: boolean;
|
|
329
371
|
|
|
330
372
|
/**
|
|
331
373
|
* The current version of the API.
|
|
332
|
-
* @
|
|
374
|
+
* @type String
|
|
375
|
+
* @example "1.0.0"
|
|
333
376
|
*/
|
|
334
377
|
version: string;
|
|
335
378
|
|
|
336
379
|
/**
|
|
337
380
|
* URL to the API documentation.
|
|
338
|
-
* @
|
|
381
|
+
* @type String
|
|
382
|
+
* @example "https://nekosia.cat/documentation"
|
|
339
383
|
*/
|
|
340
384
|
documentation: string;
|
|
341
385
|
|
|
342
386
|
/**
|
|
343
|
-
* Contact email.
|
|
344
|
-
* @
|
|
387
|
+
* Contact email for inquiries.
|
|
388
|
+
* @type String
|
|
389
|
+
* @example "contact@nekosia.cat"
|
|
345
390
|
*/
|
|
346
391
|
contact: string;
|
|
347
392
|
|
|
348
393
|
/**
|
|
349
|
-
* List of available API
|
|
394
|
+
* List of available API versions.
|
|
395
|
+
* @type Array
|
|
350
396
|
* @example [1]
|
|
351
397
|
*/
|
|
352
398
|
apis: number[];
|
|
@@ -357,15 +403,17 @@ declare module 'nekosia.js' {
|
|
|
357
403
|
*/
|
|
358
404
|
export const NekosiaVersion: {
|
|
359
405
|
/**
|
|
360
|
-
*
|
|
361
|
-
* @example 1.1.0
|
|
362
|
-
* @
|
|
406
|
+
* Retrieves the current version of the module.
|
|
407
|
+
* @example "1.1.0"
|
|
408
|
+
* @type String
|
|
409
|
+
* @returns A string representing the module version.
|
|
363
410
|
*/
|
|
364
411
|
module: string;
|
|
365
412
|
|
|
366
413
|
/**
|
|
367
|
-
*
|
|
368
|
-
* @
|
|
414
|
+
* Fetches the current API version and related information.
|
|
415
|
+
* @type Object
|
|
416
|
+
* @returns A Promise that resolves to an `APIVersion` object.
|
|
369
417
|
*/
|
|
370
418
|
api(): Promise<APIVersion>;
|
|
371
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;
|