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 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 according to your preferences and needs.
7
- You decide what images you want to retrieve, which makes our API stand out from others.
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 avoid repeated images.
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 limited to neko images.
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), which helps avoid duplicate images.
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 that is much smaller than the original. This can be useful if you want images to load quickly on client devices without sacrificing quality.
32
- - **Security:** Nekosia API ensures that all provided content is free from NSFW material, making it one of the most trusted sources of anime-themed images.
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 duplicates when randomly selecting images.
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 will require providing a user identifier (e.g., from Discord). Pass this information in `id` as a string.
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",
4
- "description": "A simple wrapper for the Nekosia API that provides easy access to random anime images. Enhance your projects with the magic of anime and a touch of feline charm meow~~! Discover why switching to Nekosia is the purrfect choice!",
5
- "keywords": [
6
- "anime api",
7
- "anime art",
8
- "anime characters",
9
- "anime gifs",
10
- "anime images",
11
- "anime library",
12
- "anime wallpaper",
13
- "anime",
14
- "anime-api",
15
- "api wrapper",
16
- "cat ears",
17
- "cat",
18
- "catgirl",
19
- "catgirls",
20
- "cute-animals",
21
- "feline",
22
- "image api",
23
- "japan",
24
- "javascript",
25
- "js library",
26
- "kawaii",
27
- "manga",
28
- "moe",
29
- "neko girls",
30
- "neko",
31
- "nekos",
32
- "nekosia api",
33
- "nekosia",
34
- "otaku",
35
- "random-anime",
36
- "typescript",
37
- "waifu"
38
- ],
39
- "homepage": "https://nekosia.cat",
40
- "bugs": {
41
- "url": "https://github.com/Nekosia-API/nekosia.js/issues"
42
- },
43
- "repository": {
44
- "type": "git",
45
- "url": "git+https://github.com/Nekosia-API/nekosia.js.git"
46
- },
47
- "license": "ISC",
48
- "author": "Sefinek <contact@sefinek.net> (https://sefinek.net)",
49
- "main": "index.js",
50
- "typings": "types/index.d.ts",
51
- "scripts": {
52
- "test": "jest",
53
- "up": "ncu -u && npm install && npm update && npm audit fix"
54
- },
55
- "devDependencies": {
56
- "@eslint/js": "^9.10.0",
57
- "globals": "^15.9.0",
58
- "jest": "^29.7.0"
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 the `id` value (requires the `id` field to be set).
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
- * @example 66ae26a07886f165901e8a3f
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, which will result in a longer response time.
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 with one tag or an array of strings with multiple tags.
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 during the image search.
44
- * This can be a single string with one tag or an array of strings with multiple tags.
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`: Contains content that may be sensitive or inappropriate for younger audiences, but not explicit.
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 leading to the image.
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
- * @example `png` or `jpg`, etc.
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
- * @example jpeg
118
+ * @type String
119
+ * @example png
108
120
  */
109
121
  extension: string;
110
122
  }
111
123
 
112
124
  interface ImageColors {
113
125
  /**
114
- * Main dominant color of the image in hexadecimal format.
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
- * Palette of the 14 most dominant colors in the image, presented in hexadecimal format.
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
- * @example Satsuriku no Tenshi
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
- * @example Rachel Gardner
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
- * Direct link to the image. `null` if not applicable.
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
- * Artist's username. `null` if not applicable.
172
+ * The artist's username. `null` if not applicable.
173
+ * @type String
155
174
  */
156
175
  username: string | null;
157
176
 
158
177
  /**
159
- * Link to the artist's profile. `null` if not applicable.
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
- * Copyright of the artwork. `null` if not applicable.
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
- * Image identifier.
229
+ * Unique identifier for the image.
230
+ * @type String
204
231
  */
205
232
  id: string;
206
233
 
207
234
  /**
208
- * Structure containing the dominant colors of the fetched image.
235
+ * Object containing the dominant colors of the fetched image.
236
+ * @type Object
209
237
  */
210
238
  colors: ImageColors;
211
239
 
212
240
  /**
213
- * Structure containing details about the original and compressed images.
241
+ * Object containing details about both the original and compressed images.
214
242
  */
215
243
  image: {
216
244
  /**
217
- * Original uncompressed image. The file includes EXIF data to acknowledge the artist's work.
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
- * Compressed image with a smaller size, without quality loss. The file includes EXIF data to acknowledge the artist's work.
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 about the original and compressed images.
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
- * Category to which the image belongs.
234
- * @example catgirl
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 assigned to the image.
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 to display in any situation.
279
+ * `safe` - Image safe for all audiences.
247
280
  *
248
- * `questionable` - Image may contain content inappropriate for some viewers.
281
+ * `questionable` - Image may contain content unsuitable for some viewers.
249
282
  *
250
- * `nsfw` - Image contains content intended for adults only (Not Safe For Work).
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 (not necessarily an anime) to which the image may belong.
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
- * Information about the source of the image.
297
+ * Details about the source of the image.
298
+ * @type Object
263
299
  */
264
300
  source: ImageSource;
265
301
 
266
302
  /**
267
- * Structure containing information about the artist and associated copyright of the image.
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 with an `ImageResponse`.
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
- * @returns Promise with an `ImageResponse`.
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
- * @returns Promise with an `ImageResponse`.
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
- * @returns Promise with an `ImageResponse`.
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 regarding the current version of the API and related information.
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
- * @example 1.0.0
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
- * @example https://nekosia.cat/documentation
381
+ * @type String
382
+ * @example "https://nekosia.cat/documentation"
339
383
  */
340
384
  documentation: string;
341
385
 
342
386
  /**
343
- * Contact email.
344
- * @example contact@nekosia.cat
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 numbers.
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
- * Get the current version of the module.
361
- * @example 1.1.0
362
- * @returns String with the module version.
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
- * Get the current API version and related information.
368
- * @returns Promise that resolves to an `APIVersion` object.
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
- export const TAGS = [
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;