@freqhole/api-client 0.3.10 → 0.3.12
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/package.json +1 -1
- package/src/CharnelLocalTransport.ts +2 -2
- package/src/codegen/routes.ts +3 -2
- package/src/codegen/schema.ts +56 -42
package/package.json
CHANGED
|
@@ -99,7 +99,7 @@ export class CharnelLocalTransport implements Transport {
|
|
|
99
99
|
constructor(_baseUrl: string) {
|
|
100
100
|
// baseUrl no longer needed - all requests go through IPC.
|
|
101
101
|
// (used to also kick off an embedded http loopback server probe
|
|
102
|
-
// here; that server has been removed in favor of the
|
|
102
|
+
// here; that server has been removed in favor of the libmpv backend.)
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
/**
|
|
@@ -429,7 +429,7 @@ export class CharnelLocalTransport implements Transport {
|
|
|
429
429
|
* 1. cached object URL (db-stored blobs)
|
|
430
430
|
* 2. tauri asset:// (via `convertFileSrc`), for any blob with a local path
|
|
431
431
|
*
|
|
432
|
-
* note: when the
|
|
432
|
+
* note: when the libmpv audio backend is enabled (charnel + opt-in)
|
|
433
433
|
* playback bypasses html `<audio>` entirely and reads files via
|
|
434
434
|
* filesystem path — this method is unused for that path.
|
|
435
435
|
*/
|
package/src/codegen/routes.ts
CHANGED
|
@@ -219,8 +219,9 @@ export const routes = {
|
|
|
219
219
|
stream_blob: { method: 'GET', path: '/api/blobs/{id}', req: null, resp: null, auth: { type: 'authenticated' } as const },
|
|
220
220
|
suggestions: { method: 'POST', path: '/api/music/suggestions', req: s.SuggestionsRequestSchema, resp: s.SuggestionsResponseSchema, auth: { type: 'authenticated' } as const },
|
|
221
221
|
sync_album: { method: 'POST', path: '/api/sync/album', req: s.SyncAlbumRequestSchema, resp: s.SyncAlbumResponseSchema, auth: { type: 'role', role: 'member' } as const },
|
|
222
|
+
sync_job_notify: { method: 'POST', path: '/api/sync/job-notify', req: s.SyncJobNotifySchema, resp: z.boolean(), auth: { type: 'public' } as const },
|
|
222
223
|
sync_playlist: { method: 'POST', path: '/api/sync/playlist', req: s.SyncPlaylistRequestSchema, resp: s.SyncPlaylistResponseSchema, auth: { type: 'role', role: 'member' } as const },
|
|
223
|
-
sync_song_by_blake3: { method: 'POST', path: '/api/sync/song-by-blake3', req: s.SyncSongByBlake3RequestSchema, resp: s.
|
|
224
|
+
sync_song_by_blake3: { method: 'POST', path: '/api/sync/song-by-blake3', req: s.SyncSongByBlake3RequestSchema, resp: s.SyncJobQueuedResponseSchema, auth: { type: 'role', role: 'member' } as const },
|
|
224
225
|
synced_sha256s: { method: 'GET', path: '/api/sync/sha256s', req: null, resp: z.string().array(), auth: { type: 'role', role: 'member' } as const },
|
|
225
226
|
top_albums: { method: 'POST', path: '/api/analytics/top-albums', req: s.TopAlbumsRequestSchema, resp: s.TopAlbumSchema.array(), auth: { type: 'authenticated' } as const },
|
|
226
227
|
top_artists: { method: 'POST', path: '/api/analytics/top-artists', req: s.TopArtistsRequestSchema, resp: s.TopArtistSchema.array(), auth: { type: 'authenticated' } as const },
|
|
@@ -270,7 +271,7 @@ export const routes = {
|
|
|
270
271
|
query_videos: { method: 'POST', path: '/api/video/videos/query', req: s.QueryVideosRequestSchema, resp: s.VideosQueryResultSchema, auth: { type: 'authenticated' } as const },
|
|
271
272
|
recently_added_videos: { method: 'POST', path: '/api/video/relations/recently-added-videos', req: s.RecentlyAddedVideosRequestSchema, resp: s.RecentlyAddedVideosResponseSchema, auth: { type: 'authenticated' } as const },
|
|
272
273
|
reprocess_video: { method: 'POST', path: '/api/video/videos/reprocess', req: s.ReprocessVideoRequestSchema, resp: s.ReprocessVideoResultSchema, auth: { type: 'role', role: 'admin' } as const },
|
|
273
|
-
sync_video_by_blake3: { method: 'POST', path: '/api/sync/video-by-blake3', req: s.SyncVideoByBlake3RequestSchema, resp: s.
|
|
274
|
+
sync_video_by_blake3: { method: 'POST', path: '/api/sync/video-by-blake3', req: s.SyncVideoByBlake3RequestSchema, resp: s.SyncJobQueuedResponseSchema, auth: { type: 'role', role: 'member' } as const },
|
|
274
275
|
unassigned_videos: { method: 'POST', path: '/api/video/relations/unassigned-videos', req: s.UnassignedVideosRequestSchema, resp: s.UnassignedVideosResponseSchema, auth: { type: 'authenticated' } as const },
|
|
275
276
|
update_video_season: { method: 'POST', path: '/api/video/seasons/update', req: s.UpdateVideoSeasonRequestSchema, resp: s.VideoSeasonSchema, auth: { type: 'role', role: 'admin' } as const },
|
|
276
277
|
update_video_series: { method: 'POST', path: '/api/video/series/update', req: s.UpdateVideoSeriesRequestSchema, resp: s.VideoSeriesSchema, auth: { type: 'role', role: 'admin' } as const },
|
package/src/codegen/schema.ts
CHANGED
|
@@ -1462,7 +1462,7 @@ export const CreateArtistRequestSchema = z.object({
|
|
|
1462
1462
|
export type CreateArtistRequest = z.infer<typeof CreateArtistRequestSchema>;
|
|
1463
1463
|
|
|
1464
1464
|
export const CreateJobRequestSchema = z.object({
|
|
1465
|
-
job_type: z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment')]),
|
|
1465
|
+
job_type: z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment'), z.literal('SyncSongByBlake3'), z.literal('SyncVideoByBlake3')]),
|
|
1466
1466
|
session_id: z.string().nullish(),
|
|
1467
1467
|
parameters: z.any(),
|
|
1468
1468
|
max_retries: z.number().nullish(),
|
|
@@ -1927,7 +1927,7 @@ export const ErrorDetailSchema = z.object({
|
|
|
1927
1927
|
export type ErrorDetail = z.infer<typeof ErrorDetailSchema>;
|
|
1928
1928
|
|
|
1929
1929
|
export const EventFilterSchema = z.object({
|
|
1930
|
-
kinds: z.array(z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment')])).nullish(),
|
|
1930
|
+
kinds: z.array(z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment'), z.literal('SyncSongByBlake3'), z.literal('SyncVideoByBlake3')])).nullish(),
|
|
1931
1931
|
job_ids: z.array(z.string()).nullish(),
|
|
1932
1932
|
session_ids: z.array(z.string()).nullish(),
|
|
1933
1933
|
entity_refs: z.array(z.union([z.object({
|
|
@@ -3182,7 +3182,7 @@ export const JobEventSchema = z.union([z.object({
|
|
|
3182
3182
|
session_id: z.string(),
|
|
3183
3183
|
complete: z.number(),
|
|
3184
3184
|
total: z.number(),
|
|
3185
|
-
topic: z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment')]),
|
|
3185
|
+
topic: z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment'), z.literal('SyncSongByBlake3'), z.literal('SyncVideoByBlake3')]),
|
|
3186
3186
|
entity_ref: z.union([z.object({
|
|
3187
3187
|
kind: z.literal('album'),
|
|
3188
3188
|
id: z.string()
|
|
@@ -3198,7 +3198,7 @@ export const JobEventSchema = z.union([z.object({
|
|
|
3198
3198
|
job_id: z.string(),
|
|
3199
3199
|
from: z.union([z.literal('pending'), z.literal('running'), z.literal('completed'), z.literal('failed'), z.literal('cancelled')]).nullish(),
|
|
3200
3200
|
to: z.union([z.literal('pending'), z.literal('running'), z.literal('completed'), z.literal('failed'), z.literal('cancelled')]),
|
|
3201
|
-
topic: z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment')]),
|
|
3201
|
+
topic: z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment'), z.literal('SyncSongByBlake3'), z.literal('SyncVideoByBlake3')]),
|
|
3202
3202
|
entity_ref: z.union([z.object({
|
|
3203
3203
|
kind: z.literal('album'),
|
|
3204
3204
|
id: z.string()
|
|
@@ -3213,7 +3213,7 @@ export const JobEventSchema = z.union([z.object({
|
|
|
3213
3213
|
job_id: z.string(),
|
|
3214
3214
|
error_type: z.string(),
|
|
3215
3215
|
message: z.string(),
|
|
3216
|
-
topic: z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment')]),
|
|
3216
|
+
topic: z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment'), z.literal('SyncSongByBlake3'), z.literal('SyncVideoByBlake3')]),
|
|
3217
3217
|
entity_ref: z.union([z.object({
|
|
3218
3218
|
kind: z.literal('album'),
|
|
3219
3219
|
id: z.string()
|
|
@@ -3228,7 +3228,7 @@ export const JobEventSchema = z.union([z.object({
|
|
|
3228
3228
|
job_id: z.string(),
|
|
3229
3229
|
stage: z.string(),
|
|
3230
3230
|
message: z.string().nullish(),
|
|
3231
|
-
topic: z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment')]),
|
|
3231
|
+
topic: z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment'), z.literal('SyncSongByBlake3'), z.literal('SyncVideoByBlake3')]),
|
|
3232
3232
|
entity_ref: z.union([z.object({
|
|
3233
3233
|
kind: z.literal('album'),
|
|
3234
3234
|
id: z.string()
|
|
@@ -3236,11 +3236,12 @@ export const JobEventSchema = z.union([z.object({
|
|
|
3236
3236
|
kind: z.literal('artist'),
|
|
3237
3237
|
id: z.string()
|
|
3238
3238
|
})]).nullish(),
|
|
3239
|
-
created_by: z.string().nullish()
|
|
3239
|
+
created_by: z.string().nullish(),
|
|
3240
|
+
details: z.any().nullish()
|
|
3240
3241
|
}), z.object({
|
|
3241
3242
|
kind: z.literal('completed'),
|
|
3242
3243
|
session_id: z.string(),
|
|
3243
|
-
topic: z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment')]),
|
|
3244
|
+
topic: z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment'), z.literal('SyncSongByBlake3'), z.literal('SyncVideoByBlake3')]),
|
|
3244
3245
|
entity_ref: z.union([z.object({
|
|
3245
3246
|
kind: z.literal('album'),
|
|
3246
3247
|
id: z.string()
|
|
@@ -3278,7 +3279,7 @@ export type JobResponse = z.infer<typeof JobResponseSchema>;
|
|
|
3278
3279
|
export const JobStateSnapshotSchema = z.object({
|
|
3279
3280
|
job_id: z.string(),
|
|
3280
3281
|
session_id: z.string().nullish(),
|
|
3281
|
-
job_type: z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment')]),
|
|
3282
|
+
job_type: z.union([z.literal('ScanDirectory'), z.literal('RescanDirectories'), z.literal('ProcessFile'), z.literal('ProcessDirectory'), z.literal('FetchMedia'), z.literal('PreCheckFetch'), z.literal('ConvertWebp'), z.literal('ImportMusic'), z.literal('ImportVideo'), z.literal('TranscodeVideo'), z.literal('MbAlbumSearch'), z.literal('MbAlbumDetail'), z.literal('LastFmAlbumDetail'), z.literal('LastFmArtistDetail'), z.literal('AudioDbAlbumDetail'), z.literal('AudioDbArtistDetail'), z.literal('AlbumEnrichmentPipeline'), z.literal('AutoApplyAlbumEnrichment'), z.literal('SyncSongByBlake3'), z.literal('SyncVideoByBlake3')]),
|
|
3282
3283
|
status: z.union([z.literal('pending'), z.literal('running'), z.literal('completed'), z.literal('failed'), z.literal('cancelled')]),
|
|
3283
3284
|
entity_ref: z.union([z.object({
|
|
3284
3285
|
kind: z.literal('album'),
|
|
@@ -4658,7 +4659,7 @@ export const PlaybackSessionTypeSchema = z.union([z.literal("song"), z.literal("
|
|
|
4658
4659
|
export type PlaybackSessionType = z.infer<typeof PlaybackSessionTypeSchema>;
|
|
4659
4660
|
|
|
4660
4661
|
export const PlayerCommandSchema = z.union([
|
|
4661
|
-
z.object({ kind: z.literal("load"), paths: z.array(z.string()) }),
|
|
4662
|
+
z.object({ kind: z.literal("load"), paths: z.array(z.string()), start_ms: z.number().nullish(), start_paused: z.boolean() }),
|
|
4662
4663
|
z.object({ kind: z.literal("enqueue"), paths: z.array(z.string()) }),
|
|
4663
4664
|
z.object({ kind: z.literal("play") }),
|
|
4664
4665
|
z.object({ kind: z.literal("pause") }),
|
|
@@ -6079,14 +6080,6 @@ export const RequeryOverrideSchema = z.object({
|
|
|
6079
6080
|
});
|
|
6080
6081
|
export type RequeryOverride = z.infer<typeof RequeryOverrideSchema>;
|
|
6081
6082
|
|
|
6082
|
-
export const RestartPolicySchema = z.object({
|
|
6083
|
-
max_restarts: z.number(),
|
|
6084
|
-
window_ms: z.number(),
|
|
6085
|
-
initial_backoff_ms: z.number(),
|
|
6086
|
-
max_backoff_ms: z.number()
|
|
6087
|
-
});
|
|
6088
|
-
export type RestartPolicy = z.infer<typeof RestartPolicySchema>;
|
|
6089
|
-
|
|
6090
6083
|
export const RevokeOwnInviteRequestSchema = z.object({
|
|
6091
6084
|
code: z.string()
|
|
6092
6085
|
});
|
|
@@ -7015,9 +7008,8 @@ export const SyncAlbumRequestSchema = z.object({
|
|
|
7015
7008
|
mb_release_id: z.string().nullish(),
|
|
7016
7009
|
mb_release_group_id: z.string().nullish(),
|
|
7017
7010
|
tags: z.array(z.string()),
|
|
7018
|
-
|
|
7019
|
-
|
|
7020
|
-
data_base64: z.string().nullish(),
|
|
7011
|
+
images: z.array(z.object({
|
|
7012
|
+
blake3: z.string(),
|
|
7021
7013
|
mime_type: z.string(),
|
|
7022
7014
|
is_primary: z.boolean(),
|
|
7023
7015
|
blob_type: z.string().nullish()
|
|
@@ -7032,28 +7024,52 @@ export const SyncAlbumResponseSchema = z.object({
|
|
|
7032
7024
|
artist_id: z.string(),
|
|
7033
7025
|
existing: z.boolean(),
|
|
7034
7026
|
images_linked: z.number(),
|
|
7035
|
-
|
|
7027
|
+
missing_image_blake3s: z.array(z.string())
|
|
7036
7028
|
});
|
|
7037
7029
|
export type SyncAlbumResponse = z.infer<typeof SyncAlbumResponseSchema>;
|
|
7038
7030
|
|
|
7039
7031
|
export const SyncImageRefSchema = z.object({
|
|
7040
|
-
|
|
7041
|
-
data_base64: z.string().nullish(),
|
|
7032
|
+
blake3: z.string(),
|
|
7042
7033
|
mime_type: z.string(),
|
|
7043
7034
|
is_primary: z.boolean(),
|
|
7044
7035
|
blob_type: z.string().nullish()
|
|
7045
7036
|
});
|
|
7046
7037
|
export type SyncImageRef = z.infer<typeof SyncImageRefSchema>;
|
|
7047
7038
|
|
|
7039
|
+
export const SyncJobNotifySchema = z.object({
|
|
7040
|
+
job_id: z.string(),
|
|
7041
|
+
domain: z.string(),
|
|
7042
|
+
blake3: z.string(),
|
|
7043
|
+
title: z.string(),
|
|
7044
|
+
success: z.boolean(),
|
|
7045
|
+
error: z.string().nullish()
|
|
7046
|
+
});
|
|
7047
|
+
export type SyncJobNotify = z.infer<typeof SyncJobNotifySchema>;
|
|
7048
|
+
|
|
7049
|
+
export const SyncJobQueuedResponseSchema = z.object({
|
|
7050
|
+
job_id: z.string(),
|
|
7051
|
+
artist_id: z.string().nullish()
|
|
7052
|
+
});
|
|
7053
|
+
export type SyncJobQueuedResponse = z.infer<typeof SyncJobQueuedResponseSchema>;
|
|
7054
|
+
|
|
7055
|
+
export const SyncPlaylistMemberSchema = z.object({
|
|
7056
|
+
kind: z.string(),
|
|
7057
|
+
blake3: z.string()
|
|
7058
|
+
});
|
|
7059
|
+
export type SyncPlaylistMember = z.infer<typeof SyncPlaylistMemberSchema>;
|
|
7060
|
+
|
|
7048
7061
|
export const SyncPlaylistRequestSchema = z.object({
|
|
7049
7062
|
source_remote_id: z.string().nullish(),
|
|
7063
|
+
source_node_id: z.string().nullish(),
|
|
7050
7064
|
remote_playlist_id: z.string(),
|
|
7051
7065
|
title: z.string(),
|
|
7052
7066
|
description: z.string().nullish(),
|
|
7053
|
-
|
|
7067
|
+
members: z.array(z.object({
|
|
7068
|
+
kind: z.string(),
|
|
7069
|
+
blake3: z.string()
|
|
7070
|
+
})),
|
|
7054
7071
|
images: z.array(z.object({
|
|
7055
|
-
|
|
7056
|
-
data_base64: z.string().nullish(),
|
|
7072
|
+
blake3: z.string(),
|
|
7057
7073
|
mime_type: z.string(),
|
|
7058
7074
|
is_primary: z.boolean(),
|
|
7059
7075
|
blob_type: z.string().nullish()
|
|
@@ -7064,17 +7080,18 @@ export type SyncPlaylistRequest = z.infer<typeof SyncPlaylistRequestSchema>;
|
|
|
7064
7080
|
|
|
7065
7081
|
export const SyncPlaylistResponseSchema = z.object({
|
|
7066
7082
|
playlist_id: z.string(),
|
|
7067
|
-
|
|
7068
|
-
|
|
7083
|
+
members_added: z.number(),
|
|
7084
|
+
missing_member_blake3s: z.array(z.string()),
|
|
7069
7085
|
song_stubs_created: z.number(),
|
|
7070
7086
|
images_linked: z.number(),
|
|
7071
|
-
|
|
7087
|
+
missing_image_blake3s: z.array(z.string())
|
|
7072
7088
|
});
|
|
7073
7089
|
export type SyncPlaylistResponse = z.infer<typeof SyncPlaylistResponseSchema>;
|
|
7074
7090
|
|
|
7075
7091
|
export const SyncSongByBlake3RequestSchema = z.object({
|
|
7076
7092
|
blake3: z.string(),
|
|
7077
7093
|
sha256: z.string(),
|
|
7094
|
+
node_id: z.string().nullish(),
|
|
7078
7095
|
size: z.number().nullish(),
|
|
7079
7096
|
filename: z.string(),
|
|
7080
7097
|
source_node_id: z.string(),
|
|
@@ -7093,15 +7110,13 @@ export const SyncSongByBlake3RequestSchema = z.object({
|
|
|
7093
7110
|
metadata: z.string().nullish(),
|
|
7094
7111
|
genre_name: z.string().nullish(),
|
|
7095
7112
|
song_images: z.array(z.object({
|
|
7096
|
-
|
|
7097
|
-
data_base64: z.string().nullish(),
|
|
7113
|
+
blake3: z.string(),
|
|
7098
7114
|
mime_type: z.string(),
|
|
7099
7115
|
is_primary: z.boolean(),
|
|
7100
7116
|
blob_type: z.string().nullish()
|
|
7101
7117
|
})),
|
|
7102
7118
|
album_images: z.array(z.object({
|
|
7103
|
-
|
|
7104
|
-
data_base64: z.string().nullish(),
|
|
7119
|
+
blake3: z.string(),
|
|
7105
7120
|
mime_type: z.string(),
|
|
7106
7121
|
is_primary: z.boolean(),
|
|
7107
7122
|
blob_type: z.string().nullish()
|
|
@@ -7113,17 +7128,19 @@ export type SyncSongByBlake3Request = z.infer<typeof SyncSongByBlake3RequestSche
|
|
|
7113
7128
|
export const SyncSongByBlake3ResponseSchema = z.object({
|
|
7114
7129
|
song_id: z.string(),
|
|
7115
7130
|
media_blob_id: z.string(),
|
|
7131
|
+
artist_id: z.string(),
|
|
7116
7132
|
file_path: z.string(),
|
|
7117
7133
|
sha256: z.string(),
|
|
7118
7134
|
blake3: z.string(),
|
|
7119
7135
|
existing: z.boolean(),
|
|
7120
7136
|
images_linked: z.number(),
|
|
7121
|
-
|
|
7137
|
+
missing_image_blake3s: z.array(z.string())
|
|
7122
7138
|
});
|
|
7123
7139
|
export type SyncSongByBlake3Response = z.infer<typeof SyncSongByBlake3ResponseSchema>;
|
|
7124
7140
|
|
|
7125
7141
|
export const SyncVideoByBlake3RequestSchema = z.object({
|
|
7126
7142
|
blake3: z.string(),
|
|
7143
|
+
node_id: z.string().nullish(),
|
|
7127
7144
|
sha256: z.string().nullish(),
|
|
7128
7145
|
size: z.number().nullish(),
|
|
7129
7146
|
filename: z.string(),
|
|
@@ -7142,22 +7159,19 @@ export const SyncVideoByBlake3RequestSchema = z.object({
|
|
|
7142
7159
|
season_title: z.string().nullish(),
|
|
7143
7160
|
parent_blake3: z.string().nullish(),
|
|
7144
7161
|
video_images: z.array(z.object({
|
|
7145
|
-
|
|
7146
|
-
data_base64: z.string().nullish(),
|
|
7162
|
+
blake3: z.string(),
|
|
7147
7163
|
mime_type: z.string(),
|
|
7148
7164
|
is_primary: z.boolean(),
|
|
7149
7165
|
blob_type: z.string().nullish()
|
|
7150
7166
|
})),
|
|
7151
7167
|
series_images: z.array(z.object({
|
|
7152
|
-
|
|
7153
|
-
data_base64: z.string().nullish(),
|
|
7168
|
+
blake3: z.string(),
|
|
7154
7169
|
mime_type: z.string(),
|
|
7155
7170
|
is_primary: z.boolean(),
|
|
7156
7171
|
blob_type: z.string().nullish()
|
|
7157
7172
|
})),
|
|
7158
7173
|
season_images: z.array(z.object({
|
|
7159
|
-
|
|
7160
|
-
data_base64: z.string().nullish(),
|
|
7174
|
+
blake3: z.string(),
|
|
7161
7175
|
mime_type: z.string(),
|
|
7162
7176
|
is_primary: z.boolean(),
|
|
7163
7177
|
blob_type: z.string().nullish()
|
|
@@ -7174,7 +7188,7 @@ export const SyncVideoByBlake3ResponseSchema = z.object({
|
|
|
7174
7188
|
season_id: z.string().nullish(),
|
|
7175
7189
|
existing: z.boolean(),
|
|
7176
7190
|
images_linked: z.number(),
|
|
7177
|
-
|
|
7191
|
+
missing_image_blake3s: z.array(z.string())
|
|
7178
7192
|
});
|
|
7179
7193
|
export type SyncVideoByBlake3Response = z.infer<typeof SyncVideoByBlake3ResponseSchema>;
|
|
7180
7194
|
|