nekosia.js 0.1.3 β†’ 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md 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,58 +1,63 @@
1
- {
2
- "name": "nekosia.js",
3
- "version": "0.1.3",
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",
7
- "anime-api",
8
- "anime-art",
9
- "anime-characters",
10
- "anime-gifs",
11
- "anime-images",
12
- "anime-library",
13
- "api-wrapper",
14
- "cat",
15
- "cat-ears",
16
- "catgirl",
17
- "catgirls",
18
- "cute-animals",
19
- "feline",
20
- "image-api",
21
- "japan",
22
- "javascript",
23
- "js-library",
24
- "kawaii",
25
- "manga",
26
- "moe",
27
- "neko",
28
- "neko-girls",
29
- "nekos",
30
- "nekosia",
31
- "nekosia-api",
32
- "otaku",
33
- "random-anime",
34
- "typescript",
35
- "waifu"
36
- ],
37
- "homepage": "https://nekosia.cat",
38
- "bugs": {
39
- "url": "https://github.com/Nekosia-API/nekosia.js/issues"
40
- },
41
- "repository": {
42
- "type": "git",
43
- "url": "git+https://github.com/Nekosia-API/nekosia.js.git"
44
- },
45
- "license": "ISC",
46
- "author": "Sefinek <contact@sefinek.net> (https://sefinek.net)",
47
- "main": "index.js",
48
- "typings": "types/index.d.ts",
49
- "scripts": {
50
- "test": "jest",
51
- "up": "ncu -u && npm install && npm update && npm audit fix"
52
- },
53
- "devDependencies": {
54
- "@eslint/js": "^9.10.0",
55
- "globals": "^15.9.0",
56
- "jest": "^29.7.0"
57
- }
58
- }
1
+ {
2
+ "name": "nekosia.js",
3
+ "version": "0.1.5",
4
+ "description": "A simple wrapper for the Nekosia API that offers seamless access to random anime images. Add a touch of anime magic and feline charm to your projects, meow~~! Find out why Nekosia is the purrfect choice!",
5
+ "keywords": [
6
+ "anime api",
7
+ "anime art",
8
+ "anime catgirls",
9
+ "anime characters",
10
+ "anime gifs",
11
+ "anime images",
12
+ "anime library",
13
+ "anime nekos",
14
+ "anime wallpaper",
15
+ "anime",
16
+ "anime-api",
17
+ "api wrapper",
18
+ "cat ears",
19
+ "cat",
20
+ "catgirl",
21
+ "catgirls",
22
+ "cute animals",
23
+ "cute nekos",
24
+ "feline",
25
+ "image api",
26
+ "japan",
27
+ "javascript",
28
+ "js library",
29
+ "kawaii",
30
+ "manga",
31
+ "moe",
32
+ "neko girls",
33
+ "neko",
34
+ "nekos",
35
+ "nekosia api",
36
+ "nekosia",
37
+ "otaku",
38
+ "random anime",
39
+ "typescript",
40
+ "waifu"
41
+ ],
42
+ "homepage": "https://nekosia.cat",
43
+ "bugs": {
44
+ "url": "https://github.com/Nekosia-API/nekosia.js/issues"
45
+ },
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "git+https://github.com/Nekosia-API/nekosia.js.git"
49
+ },
50
+ "license": "MIT",
51
+ "author": "Sefinek <contact@sefinek.net> (https://sefinek.net)",
52
+ "main": "index.js",
53
+ "typings": "types/index.d.ts",
54
+ "scripts": {
55
+ "test": "jest",
56
+ "up": "ncu -u && npm install && npm update && npm audit fix"
57
+ },
58
+ "devDependencies": {
59
+ "@eslint/js": "^9.11.1",
60
+ "globals": "^15.10.0",
61
+ "jest": "^29.7.0"
62
+ }
63
+ }
package/types/index.d.ts CHANGED
@@ -10,38 +10,43 @@ declare module 'nekosia.js' {
10
10
  interface FetchImagesOptions {
11
11
  /**
12
12
  * Session type:
13
- * - `id` - Session identified by 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,102 +201,114 @@ declare module 'nekosia.js' {
179
201
  interface ImageResponse {
180
202
  /**
181
203
  * Indicates whether the operation was successful.
204
+ * @type Boolean
182
205
  * @example true
183
206
  */
184
207
  success: boolean;
185
208
 
186
209
  /**
187
210
  * HTTP status code of the response.
211
+ * @type Number
188
212
  * @example 200
189
213
  */
190
214
  status: number;
191
215
 
192
216
  /**
193
217
  * Session key, if applicable, otherwise `null`.
218
+ * @type String
194
219
  */
195
220
  key: string | null;
196
221
 
197
222
  /**
198
223
  * Number of images included in the response.
224
+ * @type Number
199
225
  */
200
226
  count: number;
201
227
 
202
228
  /**
203
- * 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: {
231
- original: ImageMetadata;
232
- compressed: ImageMetadata;
233
- };
261
+ metadata: { original: ImageMetadata; compressed: ImageMetadata };
234
262
 
235
263
  /**
236
- * Category to which the image belongs.
237
- * @example catgirl
264
+ * The category the image belongs to.
265
+ * @type String
266
+ * @example "catgirl"
238
267
  */
239
268
  category: string;
240
269
 
241
270
  /**
242
- * Tags assigned to the image.
271
+ * Tags associated with the image.
272
+ * @type Array
243
273
  */
244
274
  tags: string[];
245
275
 
246
276
  /**
247
277
  * Content rating of the image.
248
278
  *
249
- * `safe` - Image safe to display in any situation.
279
+ * `safe` - Image safe for all audiences.
250
280
  *
251
- * `questionable` - Image may contain content inappropriate for some viewers.
281
+ * `questionable` - Image may contain content unsuitable for some viewers.
252
282
  *
253
- * `nsfw` - Image contains content intended for adults only (Not Safe For Work).
283
+ * `nsfw` - Image contains adult content (Not Safe For Work).
254
284
  *
285
+ * @type String
255
286
  * @output 'safe' | 'questionable' | 'nsfw'
256
287
  */
257
288
  rating: 'safe' | 'questionable' | 'nsfw';
258
289
 
259
290
  /**
260
- * Information about the anime (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
261
293
  */
262
294
  anime: ImageAnime;
263
295
 
264
296
  /**
265
- * Information about the source of the image.
297
+ * Details about the source of the image.
298
+ * @type Object
266
299
  */
267
300
  source: ImageSource;
268
301
 
269
302
  /**
270
- * 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
271
305
  */
272
306
  attribution: ImageAttribution;
273
307
  }
274
308
 
275
309
  /**
276
310
  * Nekosia API class, containing methods for fetching images.
277
- * All methods are asynchronous and return a Promise with an `ImageResponse`.
311
+ * All methods are asynchronous and return a Promise resolving to an `ImageResponse`.
278
312
  */
279
313
  export class NekosiaAPI {
280
314
  /**
@@ -288,9 +322,10 @@ declare module 'nekosia.js' {
288
322
  * additionalTags: ['cute', 'sakura', 'cherry-blossom'],
289
323
  * blacklistedTags: ['beret']
290
324
  * });
291
- * @returns Promise with an `ImageResponse`.
325
+ * @type Object
326
+ * @returns A Promise resolving to an `ImageResponse`.
292
327
  */
293
- fetchImages(category: AllTagsList, options?: FetchImagesOptions): Promise<ImageResponse>;
328
+ static fetchImages(category: AllTagsList, options?: FetchImagesOptions): Promise<ImageResponse>;
294
329
 
295
330
  /**
296
331
  * Fetches images based solely on the tags provided by the user. The main category does not affect the image selection as it is not provided here.
@@ -302,54 +337,62 @@ declare module 'nekosia.js' {
302
337
  * additionalTags: ['catgirl', 'foxgirl'],
303
338
  * blacklistedTags: ['dog-girl']
304
339
  * });
305
- * @returns Promise with an `ImageResponse`.
340
+ * @type Object
341
+ * @returns A Promise resolving to an `ImageResponse`.
306
342
  */
307
- fetchShadowImages(options?: FetchImagesOptions): Promise<ImageResponse>;
343
+ static fetchShadowImages(options?: FetchImagesOptions): Promise<ImageResponse>;
308
344
 
309
345
  /**
310
346
  * Fetches an image by its identifier.
311
347
  * @param id - The image identifier (e.g., `66ae26a07886f165901e8a3f`).
312
- * @returns Promise with an `ImageResponse`.
348
+ * @type Object
349
+ * @returns A Promise resolving to an `ImageResponse`.
313
350
  */
314
- fetchById(id: string): Promise<ImageResponse>;
351
+ static fetchById(id: string): Promise<ImageResponse>;
315
352
  }
316
353
 
317
354
  /**
318
- * JSON object response from the API 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.
319
356
  */
320
357
  interface APIVersion {
321
358
  /**
322
359
  * HTTP status code of the response.
360
+ * @type Number
323
361
  * @example 200
324
362
  */
325
363
  status: number;
326
364
 
327
365
  /**
328
366
  * Indicates whether the request was successful.
367
+ * @type Boolean
329
368
  * @example true
330
369
  */
331
370
  success: boolean;
332
371
 
333
372
  /**
334
373
  * The current version of the API.
335
- * @example 1.0.0
374
+ * @type String
375
+ * @example "1.0.0"
336
376
  */
337
377
  version: string;
338
378
 
339
379
  /**
340
380
  * URL to the API documentation.
341
- * @example https://nekosia.cat/documentation
381
+ * @type String
382
+ * @example "https://nekosia.cat/documentation"
342
383
  */
343
384
  documentation: string;
344
385
 
345
386
  /**
346
- * Contact email.
347
- * @example contact@nekosia.cat
387
+ * Contact email for inquiries.
388
+ * @type String
389
+ * @example "contact@nekosia.cat"
348
390
  */
349
391
  contact: string;
350
392
 
351
393
  /**
352
- * List of available API numbers.
394
+ * List of available API versions.
395
+ * @type Array
353
396
  * @example [1]
354
397
  */
355
398
  apis: number[];
@@ -360,15 +403,17 @@ declare module 'nekosia.js' {
360
403
  */
361
404
  export const NekosiaVersion: {
362
405
  /**
363
- * Get the current version of the module.
406
+ * Retrieves the current version of the module.
364
407
  * @example "1.1.0"
365
- * @returns String with the module version.
408
+ * @type String
409
+ * @returns A string representing the module version.
366
410
  */
367
411
  module: string;
368
412
 
369
413
  /**
370
- * Get the current API version and related information.
371
- * @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.
372
417
  */
373
418
  api(): Promise<APIVersion>;
374
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;