navidrome-mcp 1.0.1
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/LICENSE +661 -0
- package/README.md +397 -0
- package/dist/capabilities.d.ts +20 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +25 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/client/auth-manager.d.ts +27 -0
- package/dist/client/auth-manager.d.ts.map +1 -0
- package/dist/client/auth-manager.js +54 -0
- package/dist/client/auth-manager.js.map +1 -0
- package/dist/client/navidrome-client.d.ts +28 -0
- package/dist/client/navidrome-client.d.ts.map +1 -0
- package/dist/client/navidrome-client.js +84 -0
- package/dist/client/navidrome-client.js.map +1 -0
- package/dist/config.d.ts +41 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +132 -0
- package/dist/config.js.map +1 -0
- package/dist/constants/defaults.d.ts +29 -0
- package/dist/constants/defaults.d.ts.map +1 -0
- package/dist/constants/defaults.js +37 -0
- package/dist/constants/defaults.js.map +1 -0
- package/dist/constants/timeouts.d.ts +66 -0
- package/dist/constants/timeouts.d.ts.map +1 -0
- package/dist/constants/timeouts.js +66 -0
- package/dist/constants/timeouts.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +70 -0
- package/dist/index.js.map +1 -0
- package/dist/resources/index.d.ts +21 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +83 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/schemas/common.d.ts +68 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +69 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/index.d.ts +21 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +24 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/pagination.d.ts +153 -0
- package/dist/schemas/pagination.d.ts.map +1 -0
- package/dist/schemas/pagination.js +93 -0
- package/dist/schemas/pagination.js.map +1 -0
- package/dist/schemas/validation.d.ts +147 -0
- package/dist/schemas/validation.d.ts.map +1 -0
- package/dist/schemas/validation.js +143 -0
- package/dist/schemas/validation.js.map +1 -0
- package/dist/tools/handlers/lastfm-handlers.d.ts +5 -0
- package/dist/tools/handlers/lastfm-handlers.d.ts.map +1 -0
- package/dist/tools/handlers/lastfm-handlers.js +143 -0
- package/dist/tools/handlers/lastfm-handlers.js.map +1 -0
- package/dist/tools/handlers/lyrics-handlers.d.ts +5 -0
- package/dist/tools/handlers/lyrics-handlers.d.ts.map +1 -0
- package/dist/tools/handlers/lyrics-handlers.js +51 -0
- package/dist/tools/handlers/lyrics-handlers.js.map +1 -0
- package/dist/tools/handlers/playlist-handlers.d.ts +5 -0
- package/dist/tools/handlers/playlist-handlers.d.ts.map +1 -0
- package/dist/tools/handlers/playlist-handlers.js +316 -0
- package/dist/tools/handlers/playlist-handlers.js.map +1 -0
- package/dist/tools/handlers/queue-handlers.d.ts +5 -0
- package/dist/tools/handlers/queue-handlers.d.ts.map +1 -0
- package/dist/tools/handlers/queue-handlers.js +135 -0
- package/dist/tools/handlers/queue-handlers.js.map +1 -0
- package/dist/tools/handlers/radio-handlers.d.ts +5 -0
- package/dist/tools/handlers/radio-handlers.d.ts.map +1 -0
- package/dist/tools/handlers/radio-handlers.js +323 -0
- package/dist/tools/handlers/radio-handlers.js.map +1 -0
- package/dist/tools/handlers/registry.d.ts +26 -0
- package/dist/tools/handlers/registry.d.ts.map +1 -0
- package/dist/tools/handlers/registry.js +77 -0
- package/dist/tools/handlers/registry.js.map +1 -0
- package/dist/tools/handlers/search-handlers.d.ts +5 -0
- package/dist/tools/handlers/search-handlers.d.ts.map +1 -0
- package/dist/tools/handlers/search-handlers.js +125 -0
- package/dist/tools/handlers/search-handlers.js.map +1 -0
- package/dist/tools/handlers/tag-handlers.d.ts +5 -0
- package/dist/tools/handlers/tag-handlers.d.ts.map +1 -0
- package/dist/tools/handlers/tag-handlers.js +155 -0
- package/dist/tools/handlers/tag-handlers.js.map +1 -0
- package/dist/tools/handlers/user-preferences-handlers.d.ts +5 -0
- package/dist/tools/handlers/user-preferences-handlers.d.ts.map +1 -0
- package/dist/tools/handlers/user-preferences-handlers.js +155 -0
- package/dist/tools/handlers/user-preferences-handlers.js.map +1 -0
- package/dist/tools/index.d.ts +19 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +20 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/lastfm-discovery.d.ts +107 -0
- package/dist/tools/lastfm-discovery.d.ts.map +1 -0
- package/dist/tools/lastfm-discovery.js +238 -0
- package/dist/tools/lastfm-discovery.js.map +1 -0
- package/dist/tools/library.d.ts +31 -0
- package/dist/tools/library.d.ts.map +1 -0
- package/dist/tools/library.js +272 -0
- package/dist/tools/library.js.map +1 -0
- package/dist/tools/listening-history.d.ts +51 -0
- package/dist/tools/listening-history.d.ts.map +1 -0
- package/dist/tools/listening-history.js +126 -0
- package/dist/tools/listening-history.js.map +1 -0
- package/dist/tools/lyrics.d.ts +35 -0
- package/dist/tools/lyrics.d.ts.map +1 -0
- package/dist/tools/lyrics.js +222 -0
- package/dist/tools/lyrics.js.map +1 -0
- package/dist/tools/media-library.d.ts +46 -0
- package/dist/tools/media-library.d.ts.map +1 -0
- package/dist/tools/media-library.js +179 -0
- package/dist/tools/media-library.js.map +1 -0
- package/dist/tools/playlist-management.d.ts +80 -0
- package/dist/tools/playlist-management.d.ts.map +1 -0
- package/dist/tools/playlist-management.js +384 -0
- package/dist/tools/playlist-management.js.map +1 -0
- package/dist/tools/queue-management.d.ts +48 -0
- package/dist/tools/queue-management.d.ts.map +1 -0
- package/dist/tools/queue-management.js +83 -0
- package/dist/tools/queue-management.js.map +1 -0
- package/dist/tools/radio-discovery.d.ts +95 -0
- package/dist/tools/radio-discovery.d.ts.map +1 -0
- package/dist/tools/radio-discovery.js +352 -0
- package/dist/tools/radio-discovery.js.map +1 -0
- package/dist/tools/radio-validation.d.ts +49 -0
- package/dist/tools/radio-validation.d.ts.map +1 -0
- package/dist/tools/radio-validation.js +463 -0
- package/dist/tools/radio-validation.js.map +1 -0
- package/dist/tools/radio.d.ts +38 -0
- package/dist/tools/radio.d.ts.map +1 -0
- package/dist/tools/radio.js +315 -0
- package/dist/tools/radio.js.map +1 -0
- package/dist/tools/search.d.ts +54 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +165 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/tags.d.ts +63 -0
- package/dist/tools/tags.d.ts.map +1 -0
- package/dist/tools/tags.js +260 -0
- package/dist/tools/tags.js.map +1 -0
- package/dist/tools/test.d.ts +50 -0
- package/dist/tools/test.d.ts.map +1 -0
- package/dist/tools/test.js +121 -0
- package/dist/tools/test.js.map +1 -0
- package/dist/tools/user-preferences.d.ts +73 -0
- package/dist/tools/user-preferences.d.ts.map +1 -0
- package/dist/tools/user-preferences.js +231 -0
- package/dist/tools/user-preferences.js.map +1 -0
- package/dist/transformers/song-transformer.d.ts +122 -0
- package/dist/transformers/song-transformer.d.ts.map +1 -0
- package/dist/transformers/song-transformer.js +232 -0
- package/dist/transformers/song-transformer.js.map +1 -0
- package/dist/types/core.d.ts +147 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +19 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +19 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/lyrics.d.ts +58 -0
- package/dist/types/lyrics.d.ts.map +1 -0
- package/dist/types/lyrics.js +19 -0
- package/dist/types/lyrics.js.map +1 -0
- package/dist/types/playlists.d.ts +150 -0
- package/dist/types/playlists.d.ts.map +1 -0
- package/dist/types/playlists.js +19 -0
- package/dist/types/playlists.js.map +1 -0
- package/dist/types/radio.d.ts +192 -0
- package/dist/types/radio.d.ts.map +1 -0
- package/dist/types/radio.js +19 -0
- package/dist/types/radio.js.map +1 -0
- package/dist/types/tags.d.ts +72 -0
- package/dist/types/tags.d.ts.map +1 -0
- package/dist/types/tags.js +19 -0
- package/dist/types/tags.js.map +1 -0
- package/dist/utils/cache.d.ts +32 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +84 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/error-formatter.d.ts +108 -0
- package/dist/utils/error-formatter.d.ts.map +1 -0
- package/dist/utils/error-formatter.js +161 -0
- package/dist/utils/error-formatter.js.map +1 -0
- package/dist/utils/logger.d.ts +33 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +52 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/message-manager.d.ts +74 -0
- package/dist/utils/message-manager.d.ts.map +1 -0
- package/dist/utils/message-manager.js +134 -0
- package/dist/utils/message-manager.js.map +1 -0
- package/dist/utils/version.d.ts +5 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +19 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Navidrome MCP Server - Common Schema Definitions
|
|
3
|
+
* Copyright (C) 2025
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as published
|
|
7
|
+
* by the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { z } from 'zod';
|
|
19
|
+
export declare const IdSchema: z.ZodObject<{
|
|
20
|
+
id: z.ZodString;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
export declare const createIdSchema: (resourceType: string) => z.ZodObject<{
|
|
23
|
+
id: z.ZodString;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
export declare const SearchQuerySchema: z.ZodObject<{
|
|
26
|
+
query: z.ZodString;
|
|
27
|
+
}, z.core.$strip>;
|
|
28
|
+
export declare const ItemTypeSchema: z.ZodEnum<{
|
|
29
|
+
artist: "artist";
|
|
30
|
+
album: "album";
|
|
31
|
+
song: "song";
|
|
32
|
+
}>;
|
|
33
|
+
export declare const ItemListTypeSchema: z.ZodEnum<{
|
|
34
|
+
songs: "songs";
|
|
35
|
+
albums: "albums";
|
|
36
|
+
artists: "artists";
|
|
37
|
+
}>;
|
|
38
|
+
export declare const createLimitSchema: (min?: number, max?: number, defaultValue?: number) => z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
39
|
+
export declare const OffsetSchema: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
40
|
+
export declare const OrderSchema: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
41
|
+
ASC: "ASC";
|
|
42
|
+
DESC: "DESC";
|
|
43
|
+
}>>>;
|
|
44
|
+
export declare const SortSchema: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
45
|
+
export declare const OptionalBooleanSchema: z.ZodOptional<z.ZodBoolean>;
|
|
46
|
+
export declare const RequiredBooleanSchema: z.ZodBoolean;
|
|
47
|
+
export declare const RatingSchema: z.ZodNumber;
|
|
48
|
+
export declare const createTimeoutSchema: (min: number, max: number, defaultValue: number) => z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
49
|
+
export declare const UrlSchema: z.ZodString;
|
|
50
|
+
export declare const StringArraySchema: z.ZodArray<z.ZodString>;
|
|
51
|
+
export declare const OptionalStringArraySchema: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
52
|
+
export declare const NonEmptyStringArraySchema: z.ZodArray<z.ZodString>;
|
|
53
|
+
export declare const PlaylistIdSchema: z.ZodObject<{
|
|
54
|
+
id: z.ZodString;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
export declare const SongIdSchema: z.ZodObject<{
|
|
57
|
+
id: z.ZodString;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
export declare const ArtistIdSchema: z.ZodObject<{
|
|
60
|
+
id: z.ZodString;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
export declare const AlbumIdSchema: z.ZodObject<{
|
|
63
|
+
id: z.ZodString;
|
|
64
|
+
}, z.core.$strip>;
|
|
65
|
+
export declare const TagIdSchema: z.ZodObject<{
|
|
66
|
+
id: z.ZodString;
|
|
67
|
+
}, z.core.$strip>;
|
|
68
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,QAAQ;;iBAEnB,CAAC;AAIH,eAAO,MAAM,cAAc,GAAI,cAAc,MAAM;;iBAEjD,CAAC;AAGH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAGH,eAAO,MAAM,cAAc;;;;EAAsC,CAAC;AAClE,eAAO,MAAM,kBAAkB;;;;EAAyC,CAAC;AAIzE,eAAO,MAAM,iBAAiB,GAAI,YAAO,EAAE,YAAS,EAAE,eAAe,MAAM,2DAK1E,CAAC;AAGF,eAAO,MAAM,YAAY,0CAA0C,CAAC;AAGpE,eAAO,MAAM,WAAW;;;IAAoD,CAAC;AAG7E,eAAO,MAAM,UAAU,0CAAwC,CAAC;AAGhE,eAAO,MAAM,qBAAqB,6BAAyB,CAAC;AAC5D,eAAO,MAAM,qBAAqB,cAAc,CAAC;AAGjD,eAAO,MAAM,YAAY,aAA2B,CAAC;AAIrD,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,cAAc,MAAM,6CACnB,CAAC;AAGhE,eAAO,MAAM,SAAS,aAA4C,CAAC;AAGnE,eAAO,MAAM,iBAAiB,yBAAsB,CAAC;AACrD,eAAO,MAAM,yBAAyB,wCAAiC,CAAC;AACxE,eAAO,MAAM,yBAAyB,yBAA8D,CAAC;AAGrG,eAAO,MAAM,gBAAgB;;iBAA6B,CAAC;AAC3D,eAAO,MAAM,YAAY;;iBAAyB,CAAC;AACnD,eAAO,MAAM,cAAc;;iBAA2B,CAAC;AACvD,eAAO,MAAM,aAAa;;iBAA0B,CAAC;AACrD,eAAO,MAAM,WAAW;;iBAAwB,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Navidrome MCP Server - Common Schema Definitions
|
|
3
|
+
* Copyright (C) 2025
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as published
|
|
7
|
+
* by the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { z } from 'zod';
|
|
19
|
+
// Basic ID validation schema
|
|
20
|
+
export const IdSchema = z.object({
|
|
21
|
+
id: z.string().min(1, 'ID is required'),
|
|
22
|
+
});
|
|
23
|
+
// Required ID with custom message
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
25
|
+
export const createIdSchema = (resourceType) => z.object({
|
|
26
|
+
id: z.string().min(1, `${resourceType} ID is required`),
|
|
27
|
+
});
|
|
28
|
+
// Search query schema
|
|
29
|
+
export const SearchQuerySchema = z.object({
|
|
30
|
+
query: z.string().min(1, 'Search query is required'),
|
|
31
|
+
});
|
|
32
|
+
// Item type enums for user preferences
|
|
33
|
+
export const ItemTypeSchema = z.enum(['song', 'album', 'artist']);
|
|
34
|
+
export const ItemListTypeSchema = z.enum(['songs', 'albums', 'artists']);
|
|
35
|
+
// Common limit validation patterns
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
37
|
+
export const createLimitSchema = (min = 1, max = 500, defaultValue) => {
|
|
38
|
+
if (defaultValue !== undefined) {
|
|
39
|
+
return z.number().min(min).max(max).optional().default(defaultValue);
|
|
40
|
+
}
|
|
41
|
+
return z.number().min(min).max(max);
|
|
42
|
+
};
|
|
43
|
+
// Offset schema for pagination
|
|
44
|
+
export const OffsetSchema = z.number().min(0).optional().default(0);
|
|
45
|
+
// Order enum
|
|
46
|
+
export const OrderSchema = z.enum(['ASC', 'DESC']).optional().default('ASC');
|
|
47
|
+
// Common sort fields (can be extended per tool)
|
|
48
|
+
export const SortSchema = z.string().optional().default('name');
|
|
49
|
+
// Boolean flag schema
|
|
50
|
+
export const OptionalBooleanSchema = z.boolean().optional();
|
|
51
|
+
export const RequiredBooleanSchema = z.boolean();
|
|
52
|
+
// Rating validation
|
|
53
|
+
export const RatingSchema = z.number().min(0).max(5);
|
|
54
|
+
// Duration validation for timeouts
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
56
|
+
export const createTimeoutSchema = (min, max, defaultValue) => z.number().min(min).max(max).optional().default(defaultValue);
|
|
57
|
+
// URL validation
|
|
58
|
+
export const UrlSchema = z.string().url('URL must be a valid URL');
|
|
59
|
+
// String array schemas
|
|
60
|
+
export const StringArraySchema = z.array(z.string());
|
|
61
|
+
export const OptionalStringArraySchema = z.array(z.string()).optional();
|
|
62
|
+
export const NonEmptyStringArraySchema = z.array(z.string()).min(1, 'At least one item is required');
|
|
63
|
+
// Common validation schemas for different resource types
|
|
64
|
+
export const PlaylistIdSchema = createIdSchema('Playlist');
|
|
65
|
+
export const SongIdSchema = createIdSchema('Song');
|
|
66
|
+
export const ArtistIdSchema = createIdSchema('Artist');
|
|
67
|
+
export const AlbumIdSchema = createIdSchema('Album');
|
|
68
|
+
export const TagIdSchema = createIdSchema('Tag');
|
|
69
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/schemas/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Navidrome MCP Server - Schema Export Index
|
|
3
|
+
* Copyright (C) 2025
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as published
|
|
7
|
+
* by the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
export * from './common.js';
|
|
19
|
+
export * from './pagination.js';
|
|
20
|
+
export * from './validation.js';
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,cAAc,aAAa,CAAC;AAG5B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Navidrome MCP Server - Schema Export Index
|
|
3
|
+
* Copyright (C) 2025
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as published
|
|
7
|
+
* by the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
// Common schemas
|
|
19
|
+
export * from './common.js';
|
|
20
|
+
// Pagination schemas
|
|
21
|
+
export * from './pagination.js';
|
|
22
|
+
// Validation schemas
|
|
23
|
+
export * from './validation.js';
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,iBAAiB;AACjB,cAAc,aAAa,CAAC;AAE5B,qBAAqB;AACrB,cAAc,iBAAiB,CAAC;AAEhC,qBAAqB;AACrB,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Navidrome MCP Server - Pagination Schema Definitions
|
|
3
|
+
* Copyright (C) 2025
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as published
|
|
7
|
+
* by the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { z } from 'zod';
|
|
19
|
+
export declare const createPaginationSchema: (limitDefault: number, maxLimit?: number, sortDefault?: string) => z.ZodObject<{
|
|
20
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
21
|
+
offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
22
|
+
sort: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
23
|
+
order: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
24
|
+
ASC: "ASC";
|
|
25
|
+
DESC: "DESC";
|
|
26
|
+
}>>>;
|
|
27
|
+
}, z.core.$strip>;
|
|
28
|
+
export declare const PlaylistPaginationSchema: z.ZodObject<{
|
|
29
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
30
|
+
offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
31
|
+
sort: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
32
|
+
order: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
33
|
+
ASC: "ASC";
|
|
34
|
+
DESC: "DESC";
|
|
35
|
+
}>>>;
|
|
36
|
+
}, z.core.$strip>;
|
|
37
|
+
export declare const AlbumPaginationSchema: z.ZodObject<{
|
|
38
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
39
|
+
offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
40
|
+
sort: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
41
|
+
order: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
42
|
+
ASC: "ASC";
|
|
43
|
+
DESC: "DESC";
|
|
44
|
+
}>>>;
|
|
45
|
+
}, z.core.$strip>;
|
|
46
|
+
export declare const ArtistPaginationSchema: z.ZodObject<{
|
|
47
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
48
|
+
offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
49
|
+
sort: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
50
|
+
order: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
51
|
+
ASC: "ASC";
|
|
52
|
+
DESC: "DESC";
|
|
53
|
+
}>>>;
|
|
54
|
+
}, z.core.$strip>;
|
|
55
|
+
export declare const SongPaginationSchema: z.ZodObject<{
|
|
56
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
57
|
+
offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
58
|
+
sort: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
59
|
+
title: "title";
|
|
60
|
+
artist: "artist";
|
|
61
|
+
album: "album";
|
|
62
|
+
year: "year";
|
|
63
|
+
duration: "duration";
|
|
64
|
+
playCount: "playCount";
|
|
65
|
+
rating: "rating";
|
|
66
|
+
}>>>;
|
|
67
|
+
order: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
68
|
+
ASC: "ASC";
|
|
69
|
+
DESC: "DESC";
|
|
70
|
+
}>>>;
|
|
71
|
+
starred: z.ZodOptional<z.ZodBoolean>;
|
|
72
|
+
}, z.core.$strip>;
|
|
73
|
+
export declare const GenrePaginationSchema: z.ZodObject<{
|
|
74
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
75
|
+
offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
76
|
+
sort: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
77
|
+
order: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
78
|
+
ASC: "ASC";
|
|
79
|
+
DESC: "DESC";
|
|
80
|
+
}>>>;
|
|
81
|
+
}, z.core.$strip>;
|
|
82
|
+
export declare const PlaylistTracksPaginationSchema: z.ZodObject<{
|
|
83
|
+
playlistId: z.ZodString;
|
|
84
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
85
|
+
offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
86
|
+
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
87
|
+
json: "json";
|
|
88
|
+
m3u: "m3u";
|
|
89
|
+
}>>>;
|
|
90
|
+
}, z.core.$strip>;
|
|
91
|
+
export declare const StarredItemsPaginationSchema: z.ZodObject<{
|
|
92
|
+
type: z.ZodEnum<{
|
|
93
|
+
songs: "songs";
|
|
94
|
+
albums: "albums";
|
|
95
|
+
artists: "artists";
|
|
96
|
+
}>;
|
|
97
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
98
|
+
offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
99
|
+
}, z.core.$strip>;
|
|
100
|
+
export declare const TopRatedItemsPaginationSchema: z.ZodObject<{
|
|
101
|
+
type: z.ZodEnum<{
|
|
102
|
+
songs: "songs";
|
|
103
|
+
albums: "albums";
|
|
104
|
+
artists: "artists";
|
|
105
|
+
}>;
|
|
106
|
+
minRating: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
107
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
108
|
+
offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
109
|
+
}, z.core.$strip>;
|
|
110
|
+
export declare const RecentlyPlayedPaginationSchema: z.ZodObject<{
|
|
111
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
112
|
+
offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
113
|
+
timeRange: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
114
|
+
today: "today";
|
|
115
|
+
week: "week";
|
|
116
|
+
month: "month";
|
|
117
|
+
all: "all";
|
|
118
|
+
}>>>;
|
|
119
|
+
}, z.core.$strip>;
|
|
120
|
+
export declare const MostPlayedPaginationSchema: z.ZodObject<{
|
|
121
|
+
type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
122
|
+
songs: "songs";
|
|
123
|
+
albums: "albums";
|
|
124
|
+
artists: "artists";
|
|
125
|
+
}>>>;
|
|
126
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
127
|
+
offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
128
|
+
minPlayCount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
129
|
+
}, z.core.$strip>;
|
|
130
|
+
export declare const TagsPaginationSchema: z.ZodObject<{
|
|
131
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
132
|
+
offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
133
|
+
sort: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
134
|
+
songCount: "songCount";
|
|
135
|
+
albumCount: "albumCount";
|
|
136
|
+
tagName: "tagName";
|
|
137
|
+
tagValue: "tagValue";
|
|
138
|
+
}>>>;
|
|
139
|
+
order: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
140
|
+
ASC: "ASC";
|
|
141
|
+
DESC: "DESC";
|
|
142
|
+
}>>>;
|
|
143
|
+
tagName: z.ZodOptional<z.ZodString>;
|
|
144
|
+
}, z.core.$strip>;
|
|
145
|
+
export declare const SearchPaginationSchema: z.ZodObject<{
|
|
146
|
+
artistCount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
147
|
+
albumCount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
148
|
+
songCount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
149
|
+
}, z.core.$strip>;
|
|
150
|
+
export declare const SimpleSearchPaginationSchema: z.ZodObject<{
|
|
151
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
152
|
+
}, z.core.$strip>;
|
|
153
|
+
//# sourceMappingURL=pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/schemas/pagination.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,sBAAsB,GACjC,cAAc,MAAM,EACpB,iBAAc,EACd,oBAAoB;;;;;;;;iBAOpB,CAAC;AAGH,eAAO,MAAM,wBAAwB;;;;;;;;iBAIpC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;iBAIjC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;iBAIlC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;iBAQ/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;iBAIjC,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;iBAKzC,CAAC;AAGH,eAAO,MAAM,4BAA4B;;;;;;;;iBAIvC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;iBAKxC,CAAC;AAGH,eAAO,MAAM,8BAA8B;;;;;;;;;iBAIzC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;iBAKrC,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;iBAM/B,CAAC;AAGH,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;iBAEvC,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Navidrome MCP Server - Pagination Schema Definitions
|
|
3
|
+
* Copyright (C) 2025
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as published
|
|
7
|
+
* by the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { z } from 'zod';
|
|
19
|
+
import { DEFAULT_VALUES } from '../constants/defaults.js';
|
|
20
|
+
import { createLimitSchema, OffsetSchema, OrderSchema } from './common.js';
|
|
21
|
+
// Base pagination schema factory
|
|
22
|
+
export const createPaginationSchema = (limitDefault, maxLimit = 500, sortDefault = 'name'
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
24
|
+
) => z.object({
|
|
25
|
+
limit: createLimitSchema(1, maxLimit, limitDefault),
|
|
26
|
+
offset: OffsetSchema,
|
|
27
|
+
sort: z.string().optional().default(sortDefault),
|
|
28
|
+
order: OrderSchema,
|
|
29
|
+
});
|
|
30
|
+
// Specific pagination schemas for different resources
|
|
31
|
+
export const PlaylistPaginationSchema = createPaginationSchema(DEFAULT_VALUES.PLAYLISTS_LIMIT, 500, 'name');
|
|
32
|
+
export const AlbumPaginationSchema = createPaginationSchema(DEFAULT_VALUES.ALBUMS_LIMIT, 500, 'name');
|
|
33
|
+
export const ArtistPaginationSchema = createPaginationSchema(DEFAULT_VALUES.ALBUMS_LIMIT, // Use ALBUMS_LIMIT for artists as well
|
|
34
|
+
500, 'name');
|
|
35
|
+
export const SongPaginationSchema = z.object({
|
|
36
|
+
limit: createLimitSchema(1, 500, DEFAULT_VALUES.SONGS_LIMIT),
|
|
37
|
+
offset: OffsetSchema,
|
|
38
|
+
sort: z.enum(['title', 'artist', 'album', 'year', 'duration', 'playCount', 'rating'])
|
|
39
|
+
.optional()
|
|
40
|
+
.default('title'),
|
|
41
|
+
order: OrderSchema,
|
|
42
|
+
starred: z.boolean().optional(),
|
|
43
|
+
});
|
|
44
|
+
export const GenrePaginationSchema = createPaginationSchema(DEFAULT_VALUES.ALBUMS_LIMIT, // Use ALBUMS_LIMIT for genres as well
|
|
45
|
+
500, 'name');
|
|
46
|
+
export const PlaylistTracksPaginationSchema = z.object({
|
|
47
|
+
playlistId: z.string().min(1, 'Playlist ID is required'),
|
|
48
|
+
limit: createLimitSchema(1, 500, DEFAULT_VALUES.PLAYLIST_TRACKS_LIMIT),
|
|
49
|
+
offset: OffsetSchema,
|
|
50
|
+
format: z.enum(['json', 'm3u']).optional().default('json'),
|
|
51
|
+
});
|
|
52
|
+
// User preferences pagination
|
|
53
|
+
export const StarredItemsPaginationSchema = z.object({
|
|
54
|
+
type: z.enum(['songs', 'albums', 'artists']),
|
|
55
|
+
limit: createLimitSchema(1, 500, DEFAULT_VALUES.STARRED_ITEMS_LIMIT),
|
|
56
|
+
offset: OffsetSchema,
|
|
57
|
+
});
|
|
58
|
+
export const TopRatedItemsPaginationSchema = z.object({
|
|
59
|
+
type: z.enum(['songs', 'albums', 'artists']),
|
|
60
|
+
minRating: z.number().min(1).max(5).optional().default(4),
|
|
61
|
+
limit: createLimitSchema(1, 500, DEFAULT_VALUES.TOP_RATED_LIMIT),
|
|
62
|
+
offset: OffsetSchema,
|
|
63
|
+
});
|
|
64
|
+
// Listening history pagination
|
|
65
|
+
export const RecentlyPlayedPaginationSchema = z.object({
|
|
66
|
+
limit: createLimitSchema(1, 500, DEFAULT_VALUES.RECENTLY_PLAYED_LIMIT),
|
|
67
|
+
offset: OffsetSchema,
|
|
68
|
+
timeRange: z.enum(['today', 'week', 'month', 'all']).optional().default('all'),
|
|
69
|
+
});
|
|
70
|
+
export const MostPlayedPaginationSchema = z.object({
|
|
71
|
+
type: z.enum(['songs', 'albums', 'artists']).optional().default('songs'),
|
|
72
|
+
limit: createLimitSchema(1, 500, DEFAULT_VALUES.MOST_PLAYED_LIMIT),
|
|
73
|
+
offset: OffsetSchema,
|
|
74
|
+
minPlayCount: z.number().min(1).optional().default(1),
|
|
75
|
+
});
|
|
76
|
+
// Tag pagination
|
|
77
|
+
export const TagsPaginationSchema = z.object({
|
|
78
|
+
limit: createLimitSchema(1, 500, DEFAULT_VALUES.TAGS_LIMIT),
|
|
79
|
+
offset: OffsetSchema,
|
|
80
|
+
sort: z.enum(['tagName', 'tagValue', 'albumCount', 'songCount']).optional().default('tagName'),
|
|
81
|
+
order: OrderSchema,
|
|
82
|
+
tagName: z.string().optional(),
|
|
83
|
+
});
|
|
84
|
+
// Search pagination (smaller limits for performance)
|
|
85
|
+
export const SearchPaginationSchema = z.object({
|
|
86
|
+
artistCount: z.number().min(0).max(100).optional().default(DEFAULT_VALUES.SEARCH_ALL_LIMIT),
|
|
87
|
+
albumCount: z.number().min(0).max(100).optional().default(DEFAULT_VALUES.SEARCH_ALL_LIMIT),
|
|
88
|
+
songCount: z.number().min(0).max(100).optional().default(DEFAULT_VALUES.SEARCH_ALL_LIMIT),
|
|
89
|
+
});
|
|
90
|
+
export const SimpleSearchPaginationSchema = z.object({
|
|
91
|
+
limit: createLimitSchema(1, 100, DEFAULT_VALUES.SEARCH_LIMIT),
|
|
92
|
+
});
|
|
93
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/schemas/pagination.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Navidrome MCP Server - Validation Schema Definitions
|
|
3
|
+
* Copyright (C) 2025
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as published
|
|
7
|
+
* by the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { z } from 'zod';
|
|
19
|
+
export declare const StarItemSchema: z.ZodObject<{
|
|
20
|
+
id: z.ZodString;
|
|
21
|
+
type: z.ZodEnum<{
|
|
22
|
+
artist: "artist";
|
|
23
|
+
album: "album";
|
|
24
|
+
song: "song";
|
|
25
|
+
}>;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
export declare const SetRatingSchema: z.ZodObject<{
|
|
28
|
+
id: z.ZodString;
|
|
29
|
+
type: z.ZodEnum<{
|
|
30
|
+
artist: "artist";
|
|
31
|
+
album: "album";
|
|
32
|
+
song: "song";
|
|
33
|
+
}>;
|
|
34
|
+
rating: z.ZodNumber;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
export declare const CreatePlaylistSchema: z.ZodObject<{
|
|
37
|
+
name: z.ZodString;
|
|
38
|
+
comment: z.ZodOptional<z.ZodString>;
|
|
39
|
+
public: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
export declare const UpdatePlaylistSchema: z.ZodObject<{
|
|
42
|
+
id: z.ZodString;
|
|
43
|
+
name: z.ZodOptional<z.ZodString>;
|
|
44
|
+
comment: z.ZodOptional<z.ZodString>;
|
|
45
|
+
public: z.ZodOptional<z.ZodBoolean>;
|
|
46
|
+
}, z.core.$strip>;
|
|
47
|
+
export declare const AddTracksToPlaylistSchema: z.ZodObject<{
|
|
48
|
+
playlistId: z.ZodString;
|
|
49
|
+
ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
50
|
+
albumIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
51
|
+
artistIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
52
|
+
discs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
53
|
+
albumId: z.ZodString;
|
|
54
|
+
discNumber: z.ZodNumber;
|
|
55
|
+
}, z.core.$strip>>>;
|
|
56
|
+
}, z.core.$strip>;
|
|
57
|
+
export declare const RemoveTracksFromPlaylistSchema: z.ZodObject<{
|
|
58
|
+
playlistId: z.ZodString;
|
|
59
|
+
trackIds: z.ZodArray<z.ZodString>;
|
|
60
|
+
}, z.core.$strip>;
|
|
61
|
+
export declare const ReorderPlaylistTrackSchema: z.ZodObject<{
|
|
62
|
+
playlistId: z.ZodString;
|
|
63
|
+
trackId: z.ZodString;
|
|
64
|
+
insert_before: z.ZodNumber;
|
|
65
|
+
}, z.core.$strip>;
|
|
66
|
+
export declare const SetQueueSchema: z.ZodObject<{
|
|
67
|
+
songIds: z.ZodArray<z.ZodString>;
|
|
68
|
+
current: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
69
|
+
position: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
70
|
+
}, z.core.$strip>;
|
|
71
|
+
export declare const SearchAllSchema: z.ZodObject<{
|
|
72
|
+
query: z.ZodString;
|
|
73
|
+
artistCount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
74
|
+
albumCount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
75
|
+
songCount: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
76
|
+
}, z.core.$strip>;
|
|
77
|
+
export declare const SearchSongsSchema: z.ZodObject<{
|
|
78
|
+
query: z.ZodString;
|
|
79
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
80
|
+
}, z.core.$strip>;
|
|
81
|
+
export declare const SearchAlbumsSchema: z.ZodObject<{
|
|
82
|
+
query: z.ZodString;
|
|
83
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
84
|
+
}, z.core.$strip>;
|
|
85
|
+
export declare const SearchArtistsSchema: z.ZodObject<{
|
|
86
|
+
query: z.ZodString;
|
|
87
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
88
|
+
}, z.core.$strip>;
|
|
89
|
+
export declare const SearchByTagsSchema: z.ZodObject<{
|
|
90
|
+
tagName: z.ZodString;
|
|
91
|
+
tagValue: z.ZodOptional<z.ZodString>;
|
|
92
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
93
|
+
}, z.core.$strip>;
|
|
94
|
+
export declare const TagDistributionSchema: z.ZodObject<{
|
|
95
|
+
tagNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
96
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
97
|
+
distributionLimit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
98
|
+
}, z.core.$strip>;
|
|
99
|
+
export declare const UniqueTagsSchema: z.ZodObject<{
|
|
100
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
101
|
+
minUsage: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
102
|
+
}, z.core.$strip>;
|
|
103
|
+
export declare const ValidateRadioStreamSchema: z.ZodObject<{
|
|
104
|
+
url: z.ZodString;
|
|
105
|
+
timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
106
|
+
followRedirects: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
107
|
+
}, z.core.$strip>;
|
|
108
|
+
export declare const SimilarArtistsSchema: z.ZodObject<{
|
|
109
|
+
artist: z.ZodString;
|
|
110
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
111
|
+
}, z.core.$strip>;
|
|
112
|
+
export declare const SimilarTracksSchema: z.ZodObject<{
|
|
113
|
+
artist: z.ZodString;
|
|
114
|
+
track: z.ZodString;
|
|
115
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
116
|
+
}, z.core.$strip>;
|
|
117
|
+
export declare const ArtistInfoSchema: z.ZodObject<{
|
|
118
|
+
artist: z.ZodString;
|
|
119
|
+
lang: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
120
|
+
}, z.core.$strip>;
|
|
121
|
+
export declare const TopTracksByArtistSchema: z.ZodObject<{
|
|
122
|
+
artist: z.ZodString;
|
|
123
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
124
|
+
}, z.core.$strip>;
|
|
125
|
+
export declare const TrendingMusicSchema: z.ZodObject<{
|
|
126
|
+
type: z.ZodEnum<{
|
|
127
|
+
artists: "artists";
|
|
128
|
+
tracks: "tracks";
|
|
129
|
+
tags: "tags";
|
|
130
|
+
}>;
|
|
131
|
+
limit: z.ZodNumber | z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
132
|
+
page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
133
|
+
}, z.core.$strip>;
|
|
134
|
+
export declare const GetLyricsSchema: z.ZodObject<{
|
|
135
|
+
title: z.ZodString;
|
|
136
|
+
artist: z.ZodString;
|
|
137
|
+
album: z.ZodOptional<z.ZodString>;
|
|
138
|
+
durationMs: z.ZodOptional<z.ZodNumber>;
|
|
139
|
+
id: z.ZodOptional<z.ZodString>;
|
|
140
|
+
}, z.core.$strip>;
|
|
141
|
+
export declare const TestConnectionSchema: z.ZodObject<{
|
|
142
|
+
includeServerInfo: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
143
|
+
}, z.core.$strip>;
|
|
144
|
+
export declare const GetSongPlaylistsSchema: z.ZodObject<{
|
|
145
|
+
songId: z.ZodString;
|
|
146
|
+
}, z.core.$strip>;
|
|
147
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/schemas/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,eAAO,MAAM,cAAc;;;;;;;iBAGzB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;iBAI1B,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;iBASpC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;iBAGzC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;iBAIrC,CAAC;AAGH,eAAO,MAAM,cAAc;;;;iBAIzB,CAAC;AAGH,eAAO,MAAM,eAAe;;;;;iBAI1B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;iBAE5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;iBAE7B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;iBAE9B,CAAC;AAGH,eAAO,MAAM,kBAAkB;;;;iBAI7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AAGH,eAAO,MAAM,yBAAyB;;;;iBAIpC,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;iBAGlC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;iBAI9B,CAAC;AAGH,eAAO,MAAM,eAAe;;;;;;iBAM1B,CAAC;AAGH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAGH,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC"}
|