@groovenet/contracts 0.1.0 → 1.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"albums.d.ts","sourceRoot":"","sources":["../src/albums.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import { z } from "zod";
2
+ import { genreFilterRefSchema, trackSchema } from "./tracks.js";
3
+ export const albumArtSourceSchema = z.enum(["discogs", "apple_music", "upload"]);
4
+ export const albumArtMatchStatusSchema = z.enum(["matched", "mismatch", "no_reference", "no_candidate"]);
5
+ /** Omitted: unchanged; null: reset to Discogs; []: deliberately empty. */
6
+ export const albumTaxonomyOverridesSchema = z.object({
7
+ genre_override_ids: z.array(z.string().uuid()).max(100).nullable().optional(),
8
+ style_override_ids: z.array(z.string().uuid()).max(100).nullable().optional(),
9
+ });
10
+ /** The album/release entity. Unknown database columns pass through. */
11
+ const albumShape = z.object({
12
+ ...albumTaxonomyOverridesSchema.shape,
13
+ /** Display/search values after the per-friend replacement layer. */
14
+ effective_genres: z.array(z.string()).optional(),
15
+ effective_styles: z.array(z.string()).optional(),
16
+ release_id: z.string(),
17
+ friend_id: z.number().int(),
18
+ username: z.string().optional(),
19
+ title: z.string(),
20
+ artist: z.string(),
21
+ year: z.union([z.string(), z.number()]).nullable().optional(),
22
+ genres: z.array(z.string()).nullable().optional(),
23
+ styles: z.array(z.string()).nullable().optional(),
24
+ album_thumbnail: z.string().nullable().optional(),
25
+ audio_file_album_art_url: z.string().nullable().optional(),
26
+ discogs_url: z.string().nullable().optional(),
27
+ date_added: z.string().nullable().optional(),
28
+ date_changed: z.string().nullable().optional(),
29
+ track_count: z.number().int().optional(),
30
+ album_rating: z.number().nullable().optional(),
31
+ album_notes: z.string().nullable().optional(),
32
+ purchase_price: z.number().nullable().optional(),
33
+ condition: z.string().nullable().optional(),
34
+ label: z.string().nullable().optional(),
35
+ catalog_number: z.string().nullable().optional(),
36
+ country: z.string().nullable().optional(),
37
+ format: z.string().nullable().optional(),
38
+ created_at: z.string().optional(),
39
+ updated_at: z.string().optional(),
40
+ library_identifier: z.string().nullable().optional(),
41
+ // Artwork provenance (#494); the displayed cover is still audio_file_album_art_url || album_thumbnail.
42
+ album_art_source: albumArtSourceSchema.nullable().optional(),
43
+ discogs_art_url: z.string().nullable().optional(),
44
+ apple_music_art_url: z.string().nullable().optional(),
45
+ art_match_status: albumArtMatchStatusSchema.nullable().optional(),
46
+ art_match_distance: z.number().nullable().optional(),
47
+ });
48
+ export const albumSchema = albumShape.passthrough();
49
+ /** Wire shape of `GET /api/albums` query params once coerced from strings. */
50
+ export const albumSearchQuerySchema = z.object({
51
+ q: z.string().optional(),
52
+ sort: z.string().optional(),
53
+ friend_id: z.number().int().optional(),
54
+ limit: z.number().int().min(0).optional(),
55
+ offset: z.number().int().min(0).optional(),
56
+ missing_library_identifier: z.boolean().optional(),
57
+ missing_local_cover_art_url: z.boolean().optional(),
58
+ missing_audio: z.boolean().optional(),
59
+ genre: z.array(z.string()).max(20).optional(),
60
+ include_similar: z.boolean().optional(),
61
+ similar_limit: z.number().int().min(0).optional(),
62
+ similar_exclude: z.array(z.string()).max(20).optional(),
63
+ });
64
+ export const albumSearchResponseSchema = z.object({
65
+ hits: z.array(albumSchema),
66
+ estimatedTotalHits: z.number().int(),
67
+ offset: z.number().int(),
68
+ limit: z.number().int(),
69
+ query: z.string(),
70
+ sort: z.string(),
71
+ added_genres: z.array(genreFilterRefSchema).optional(),
72
+ });
73
+ export const albumDetailSchema = z.object({
74
+ album: albumSchema,
75
+ tracks: z.array(trackSchema),
76
+ });
77
+ export const albumDeleteResponseSchema = z.object({ success: z.boolean() });
78
+ export const albumArtworkStateSchema = z.object({
79
+ release_id: z.string(),
80
+ friend_id: z.number().int(),
81
+ current_url: z.string().nullable(),
82
+ source: albumArtSourceSchema.nullable(),
83
+ discogs_art_url: z.string().nullable(),
84
+ apple_music_art_url: z.string().nullable(),
85
+ art_match_status: albumArtMatchStatusSchema.nullable(),
86
+ art_match_distance: z.number().int().nullable(),
87
+ has_local_audio: z.boolean(),
88
+ });
89
+ export const albumPlayableStructureTrackSchema = z
90
+ .object({
91
+ track_id: z.string(),
92
+ friend_id: z.number().int(),
93
+ position: z.union([z.string(), z.number()]).nullable().optional(),
94
+ title: z.string(),
95
+ artist: z.string(),
96
+ })
97
+ .passthrough();
98
+ export const albumPlayableStructureSideSchema = z.object({
99
+ side_key: z.string(),
100
+ side_label: z.string(),
101
+ ordinal: z.number().int(),
102
+ track_count: z.number().int(),
103
+ tracks: z.array(albumPlayableStructureTrackSchema),
104
+ });
105
+ export const albumPlayableStructureSchema = z.object({
106
+ album: albumSchema,
107
+ sides: z.array(albumPlayableStructureSideSchema),
108
+ });
109
+ export const albumJsonSchemas = {
110
+ AlbumArtSource: z.toJSONSchema(albumArtSourceSchema),
111
+ AlbumArtMatchStatus: z.toJSONSchema(albumArtMatchStatusSchema),
112
+ Album: z.toJSONSchema(albumSchema),
113
+ AlbumSearchResponse: z.toJSONSchema(albumSearchResponseSchema),
114
+ AlbumDetail: z.toJSONSchema(albumDetailSchema),
115
+ AlbumDeleteResponse: z.toJSONSchema(albumDeleteResponseSchema),
116
+ AlbumArtworkState: z.toJSONSchema(albumArtworkStateSchema),
117
+ AlbumPlayableStructure: z.toJSONSchema(albumPlayableStructureSchema),
118
+ };
119
+ //# sourceMappingURL=albums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"albums.js","sourceRoot":"","sources":["../src/albums.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;AAEzG,0EAA0E;AAC1E,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7E,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC9E,CAAC,CAAC;AAEH,uEAAuE;AACvE,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,GAAG,4BAA4B,CAAC,KAAK;IACrC,oEAAoE;IACpE,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChD,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7D,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACxC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpD,uGAAuG;IACvG,gBAAgB,EAAE,oBAAoB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrD,gBAAgB,EAAE,yBAAyB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjE,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACvD,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;AAEpD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1C,0BAA0B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClD,2BAA2B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnD,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACrC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7C,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IAC1B,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;CACvD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IACvC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,gBAAgB,EAAE,yBAAyB,CAAC,QAAQ,EAAE;IACtD,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC/C,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC;KAC/C,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,gCAAgC,CAAC;CACjD,CAAC,CAAC;AAgBH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,cAAc,EAAE,CAAC,CAAC,YAAY,CAAC,oBAAoB,CAAC;IACpD,mBAAmB,EAAE,CAAC,CAAC,YAAY,CAAC,yBAAyB,CAAC;IAC9D,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC;IAClC,mBAAmB,EAAE,CAAC,CAAC,YAAY,CAAC,yBAAyB,CAAC;IAC9D,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC;IAC9C,mBAAmB,EAAE,CAAC,CAAC,YAAY,CAAC,yBAAyB,CAAC;IAC9D,iBAAiB,EAAE,CAAC,CAAC,YAAY,CAAC,uBAAuB,CAAC;IAC1D,sBAAsB,EAAE,CAAC,CAAC,YAAY,CAAC,4BAA4B,CAAC;CACrE,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { z } from "zod";
2
+ /** A friend is a library: one Discogs collection, owner of its tracks and albums. */
3
+ export declare const friendSchema: z.ZodObject<{
4
+ id: z.ZodNumber;
5
+ username: z.ZodString;
6
+ }, z.core.$strip>;
7
+ export declare const friendListResponseSchema: z.ZodObject<{
8
+ results: z.ZodArray<z.ZodObject<{
9
+ id: z.ZodNumber;
10
+ username: z.ZodString;
11
+ }, z.core.$strip>>;
12
+ }, z.core.$strip>;
13
+ export declare const friendCreateSchema: z.ZodObject<{
14
+ username: z.ZodString;
15
+ }, z.core.$strip>;
16
+ export declare const friendCreateResponseSchema: z.ZodObject<{
17
+ message: z.ZodString;
18
+ }, z.core.$strip>;
19
+ /** The library new sessions open on; null until one is chosen. */
20
+ export declare const defaultLibrarySettingsSchema: z.ZodObject<{
21
+ friend_id: z.ZodNullable<z.ZodNumber>;
22
+ }, z.core.$strip>;
23
+ export declare const defaultLibrarySettingsUpdateSchema: z.ZodObject<{
24
+ friend_id: z.ZodNumber;
25
+ }, z.core.$strip>;
26
+ export declare const defaultLibrarySettingsUpdateResponseSchema: z.ZodObject<{
27
+ friend_id: z.ZodNumber;
28
+ }, z.core.$strip>;
29
+ export type Friend = z.infer<typeof friendSchema>;
30
+ export type FriendListResponse = z.infer<typeof friendListResponseSchema>;
31
+ export type FriendCreate = z.infer<typeof friendCreateSchema>;
32
+ export type FriendCreateResponse = z.infer<typeof friendCreateResponseSchema>;
33
+ export type DefaultLibrarySettings = z.infer<typeof defaultLibrarySettingsSchema>;
34
+ export type DefaultLibrarySettingsUpdate = z.infer<typeof defaultLibrarySettingsUpdateSchema>;
35
+ export type DefaultLibrarySettingsUpdateResponse = z.infer<typeof defaultLibrarySettingsUpdateResponseSchema>;
36
+ export declare const friendJsonSchemas: {
37
+ Friend: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
38
+ id: z.ZodNumber;
39
+ username: z.ZodString;
40
+ }, z.core.$strip>>;
41
+ FriendListResponse: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
42
+ results: z.ZodArray<z.ZodObject<{
43
+ id: z.ZodNumber;
44
+ username: z.ZodString;
45
+ }, z.core.$strip>>;
46
+ }, z.core.$strip>>;
47
+ FriendCreate: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
48
+ username: z.ZodString;
49
+ }, z.core.$strip>>;
50
+ FriendCreateResponse: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
51
+ message: z.ZodString;
52
+ }, z.core.$strip>>;
53
+ DefaultLibrarySettings: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
54
+ friend_id: z.ZodNullable<z.ZodNumber>;
55
+ }, z.core.$strip>>;
56
+ DefaultLibrarySettingsUpdate: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
57
+ friend_id: z.ZodNumber;
58
+ }, z.core.$strip>>;
59
+ DefaultLibrarySettingsUpdateResponse: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
60
+ friend_id: z.ZodNumber;
61
+ }, z.core.$strip>>;
62
+ };
63
+ //# sourceMappingURL=friends.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"friends.d.ts","sourceRoot":"","sources":["../src/friends.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qFAAqF;AACrF,eAAO,MAAM,YAAY;;;iBAGvB,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;iBAEnC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;iBAE7B,CAAC;AAEH,eAAO,MAAM,0BAA0B;;iBAErC,CAAC;AAEH,kEAAkE;AAClE,eAAO,MAAM,4BAA4B;;iBAEvC,CAAC;AAEH,eAAO,MAAM,kCAAkC;;iBAE7C,CAAC;AAEH,eAAO,MAAM,0CAA0C;;iBAErD,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CACxD,OAAO,0CAA0C,CAClD,CAAC;AAIF,eAAO,MAAM,iBAAiB;IAC5B,MAAM;;;;IACN,kBAAkB;;;;;;IAClB,YAAY;;;IACZ,oBAAoB;;;IACpB,sBAAsB;;;IACtB,4BAA4B;;;IAC5B,oCAAoC;;;CACrC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ /** A friend is a library: one Discogs collection, owner of its tracks and albums. */
3
+ export const friendSchema = z.object({
4
+ id: z.number().int(),
5
+ username: z.string(),
6
+ });
7
+ export const friendListResponseSchema = z.object({
8
+ results: z.array(friendSchema),
9
+ });
10
+ export const friendCreateSchema = z.object({
11
+ username: z.string().min(1),
12
+ });
13
+ export const friendCreateResponseSchema = z.object({
14
+ message: z.string(),
15
+ });
16
+ /** The library new sessions open on; null until one is chosen. */
17
+ export const defaultLibrarySettingsSchema = z.object({
18
+ friend_id: z.number().int().nullable(),
19
+ });
20
+ export const defaultLibrarySettingsUpdateSchema = z.object({
21
+ friend_id: z.number().int(),
22
+ });
23
+ export const defaultLibrarySettingsUpdateResponseSchema = z.object({
24
+ friend_id: z.number().int(),
25
+ });
26
+ // Request bodies publish their input shape: the routes strip unknown fields
27
+ // rather than reject them, so OpenAPI must not claim `additionalProperties: false`.
28
+ export const friendJsonSchemas = {
29
+ Friend: z.toJSONSchema(friendSchema),
30
+ FriendListResponse: z.toJSONSchema(friendListResponseSchema),
31
+ FriendCreate: z.toJSONSchema(friendCreateSchema, { io: "input" }),
32
+ FriendCreateResponse: z.toJSONSchema(friendCreateResponseSchema),
33
+ DefaultLibrarySettings: z.toJSONSchema(defaultLibrarySettingsSchema),
34
+ DefaultLibrarySettingsUpdate: z.toJSONSchema(defaultLibrarySettingsUpdateSchema, { io: "input" }),
35
+ DefaultLibrarySettingsUpdateResponse: z.toJSONSchema(defaultLibrarySettingsUpdateResponseSchema),
36
+ };
37
+ //# sourceMappingURL=friends.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"friends.js","sourceRoot":"","sources":["../src/friends.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,qFAAqF;AACrF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC;IACzD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0CAA0C,GAAG,CAAC,CAAC,MAAM,CAAC;IACjE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAC5B,CAAC,CAAC;AAYH,4EAA4E;AAC5E,oFAAoF;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC;IACpC,kBAAkB,EAAE,CAAC,CAAC,YAAY,CAAC,wBAAwB,CAAC;IAC5D,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;IACjE,oBAAoB,EAAE,CAAC,CAAC,YAAY,CAAC,0BAA0B,CAAC;IAChE,sBAAsB,EAAE,CAAC,CAAC,YAAY,CAAC,4BAA4B,CAAC;IACpE,4BAA4B,EAAE,CAAC,CAAC,YAAY,CAAC,kCAAkC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;IACjG,oCAAoC,EAAE,CAAC,CAAC,YAAY,CAAC,0CAA0C,CAAC;CACjG,CAAC"}
package/build/index.d.ts CHANGED
@@ -1,2 +1,8 @@
1
1
  export * from "./liveSets.js";
2
+ export * from "./playlists.js";
3
+ export * from "./tracks.js";
4
+ export * from "./albums.js";
5
+ export * from "./friends.js";
6
+ export * from "./recordCare.js";
7
+ export * from "./spins.js";
2
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
package/build/index.js CHANGED
@@ -1,2 +1,8 @@
1
1
  export * from "./liveSets.js";
2
+ export * from "./playlists.js";
3
+ export * from "./tracks.js";
4
+ export * from "./albums.js";
5
+ export * from "./friends.js";
6
+ export * from "./recordCare.js";
7
+ export * from "./spins.js";
2
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}