@axium/kino 0.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.
Files changed (72) hide show
  1. package/LICENSE.md +157 -0
  2. package/db.json +106 -0
  3. package/dist/client/api.d.ts +49 -0
  4. package/dist/client/api.js +136 -0
  5. package/dist/client/frontend.d.ts +3 -0
  6. package/dist/client/frontend.js +33 -0
  7. package/dist/client/index.d.ts +1 -0
  8. package/dist/client/index.js +1 -0
  9. package/dist/client/web_hook.d.ts +8 -0
  10. package/dist/client/web_hook.js +4 -0
  11. package/dist/common.d.ts +749 -0
  12. package/dist/common.js +212 -0
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.js +1 -0
  15. package/dist/server/api/delete.d.ts +1 -0
  16. package/dist/server/api/delete.js +57 -0
  17. package/dist/server/api/metadata.d.ts +4 -0
  18. package/dist/server/api/metadata.js +153 -0
  19. package/dist/server/api/raw.d.ts +1 -0
  20. package/dist/server/api/raw.js +86 -0
  21. package/dist/server/api/search.d.ts +1 -0
  22. package/dist/server/api/search.js +108 -0
  23. package/dist/server/api/upload.d.ts +1 -0
  24. package/dist/server/api/upload.js +122 -0
  25. package/dist/server/api/views.d.ts +1 -0
  26. package/dist/server/api/views.js +128 -0
  27. package/dist/server/db.d.ts +11 -0
  28. package/dist/server/db.js +100 -0
  29. package/dist/server/hooks.d.ts +9 -0
  30. package/dist/server/hooks.js +19 -0
  31. package/dist/server/images.d.ts +12 -0
  32. package/dist/server/images.js +152 -0
  33. package/dist/server/media.d.ts +47 -0
  34. package/dist/server/media.js +136 -0
  35. package/dist/server/tmdb.d.ts +2 -0
  36. package/dist/server/tmdb.js +7 -0
  37. package/lib/EpisodeList.svelte +89 -0
  38. package/lib/MediaActions.svelte +110 -0
  39. package/lib/MediaCard.svelte +41 -0
  40. package/lib/MediaDetail.svelte +140 -0
  41. package/lib/MediaGrid.svelte +27 -0
  42. package/lib/Poster.svelte +49 -0
  43. package/lib/ProgressBar.svelte +22 -0
  44. package/lib/RecentGrid.svelte +82 -0
  45. package/lib/SearchBar.svelte +174 -0
  46. package/lib/SeasonList.svelte +50 -0
  47. package/lib/index.ts +10 -0
  48. package/lib/tsconfig.json +12 -0
  49. package/lib/watch.svelte.ts +93 -0
  50. package/locales/en.json +103 -0
  51. package/package.json +102 -0
  52. package/routes/+layout.svelte +22 -0
  53. package/routes/+layout.ts +21 -0
  54. package/routes/kino/+page.svelte +57 -0
  55. package/routes/kino/+page.ts +19 -0
  56. package/routes/movies/+page.svelte +22 -0
  57. package/routes/movies/+page.ts +12 -0
  58. package/routes/movies/[id]/+page.svelte +36 -0
  59. package/routes/movies/[id]/+page.ts +7 -0
  60. package/routes/movies/[id]/watch/+page.svelte +34 -0
  61. package/routes/movies/[id]/watch/+page.ts +18 -0
  62. package/routes/tsconfig.json +12 -0
  63. package/routes/tv/+page.svelte +22 -0
  64. package/routes/tv/+page.ts +12 -0
  65. package/routes/tv/[id]/+page.svelte +39 -0
  66. package/routes/tv/[id]/+page.ts +7 -0
  67. package/routes/tv/[id]/[season]/+page.svelte +43 -0
  68. package/routes/tv/[id]/[season]/+page.ts +11 -0
  69. package/routes/tv/[id]/[season]/[episode]/+page.svelte +46 -0
  70. package/routes/tv/[id]/[season]/[episode]/+page.ts +12 -0
  71. package/routes/tv/[id]/[season]/[episode]/watch/+page.svelte +46 -0
  72. package/routes/tv/[id]/[season]/[episode]/watch/+page.ts +22 -0
@@ -0,0 +1,749 @@
1
+ import * as z from 'zod';
2
+ export declare const ImageExt: z.ZodLiteral<"jpg" | "png">;
3
+ export declare const ImageID: z.ZodString;
4
+ export declare const ImageFile: z.ZodTemplateLiteral<`${string}.jpg` | `${string}.png`>;
5
+ export declare const imagesSizes: {
6
+ readonly backdrop: readonly ["w300", "w780", "w1280", "original"];
7
+ readonly logo: readonly ["w45", "w92", "w154", "w185", "w300", "w500", "original"];
8
+ readonly poster: readonly ["w92", "w154", "w185", "w342", "w500", "w780", "original"];
9
+ readonly profile: readonly ["w45", "w185", "h632", "original"];
10
+ readonly still: readonly ["w92", "w185", "w300", "original"];
11
+ readonly all: readonly ["w45", "w92", "w154", "w185", "w300", "w342", "w500", "w780", "w1280", "h632", "original"];
12
+ };
13
+ export declare const ImageType: z.ZodLiteral<"backdrop" | "logo" | "poster" | "profile" | "still">;
14
+ export type ImageType = z.infer<typeof ImageType>;
15
+ export declare const ImageSize: z.ZodLiteral<"w300" | "w780" | "w1280" | "original" | "w45" | "w92" | "w154" | "w185" | "w500" | "w342" | "h632">;
16
+ export type ImageSize = z.infer<typeof ImageSize>;
17
+ export declare function imageWidth(size: ImageSize): number;
18
+ export declare const PosterImageSize: z.ZodLiteral<"w780" | "original" | "w92" | "w154" | "w185" | "w500" | "w342">, BackdropImageSize: z.ZodLiteral<"w300" | "w780" | "w1280" | "original">, LogoImageSize: z.ZodLiteral<"w300" | "original" | "w45" | "w92" | "w154" | "w185" | "w500">, ProfileImageSize: z.ZodLiteral<"original" | "w45" | "w185" | "h632">, StillImageSize: z.ZodLiteral<"w300" | "original" | "w92" | "w185">;
19
+ export declare const ImageSelection: z.ZodDiscriminatedUnion<[z.ZodObject<{
20
+ type: z.ZodLiteral<"poster">;
21
+ size: z.ZodOptional<z.ZodLiteral<"w780" | "original" | "w92" | "w154" | "w185" | "w500" | "w342">>;
22
+ }, z.core.$strip>, z.ZodObject<{
23
+ type: z.ZodLiteral<"backdrop">;
24
+ size: z.ZodOptional<z.ZodLiteral<"w300" | "w780" | "w1280" | "original">>;
25
+ }, z.core.$strip>, z.ZodObject<{
26
+ type: z.ZodLiteral<"logo">;
27
+ size: z.ZodOptional<z.ZodLiteral<"w300" | "original" | "w45" | "w92" | "w154" | "w185" | "w500">>;
28
+ }, z.core.$strip>, z.ZodObject<{
29
+ type: z.ZodLiteral<"profile">;
30
+ size: z.ZodOptional<z.ZodLiteral<"original" | "w45" | "w185" | "h632">>;
31
+ }, z.core.$strip>, z.ZodObject<{
32
+ type: z.ZodLiteral<"still">;
33
+ size: z.ZodOptional<z.ZodLiteral<"w300" | "original" | "w92" | "w185">>;
34
+ }, z.core.$strip>, z.ZodObject<{
35
+ type: z.ZodUnion<readonly [z.ZodUndefined, z.ZodNull]>;
36
+ size: z.ZodOptional<z.ZodLiteral<"w300" | "w780" | "w1280" | "original" | "w45" | "w92" | "w154" | "w185" | "w500" | "w342" | "h632">>;
37
+ }, z.core.$strip>], "type">;
38
+ /**
39
+ * How uploads are prepared for playback:
40
+ * original: serve the uploaded file as-is
41
+ * both: keep the original for download and serve a remuxed copy to browsers
42
+ * replace: remux on upload and discard the original
43
+ */
44
+ export declare const RemuxMode: z.ZodLiteral<"original" | "both" | "replace">;
45
+ export type RemuxMode = z.infer<typeof RemuxMode>;
46
+ export declare const ImageCacheMode: z.ZodLiteral<"disabled" | "fallback" | "exact-size" | "quality" | "prefer">;
47
+ export type ImageCacheMode = z.infer<typeof ImageCacheMode>;
48
+ export declare const KinoConfig: z.ZodObject<{
49
+ allow_user_uploads: z.ZodBoolean;
50
+ data_dir: z.ZodString;
51
+ tmdb_api_key: z.ZodString;
52
+ remux: z.ZodLiteral<"original" | "both" | "replace">;
53
+ images: z.ZodObject<{
54
+ cache: z.ZodObject<{
55
+ mode: z.ZodLiteral<"disabled" | "fallback" | "exact-size" | "quality" | "prefer">;
56
+ max_size: z.ZodNumber;
57
+ directory: z.ZodString;
58
+ largest_only: z.ZodBoolean;
59
+ max_image_sizes: z.ZodObject<{
60
+ poster: z.ZodLiteral<"w780" | "original" | "w92" | "w154" | "w185" | "w500" | "w342">;
61
+ backdrop: z.ZodLiteral<"w300" | "w780" | "w1280" | "original">;
62
+ logo: z.ZodLiteral<"w300" | "original" | "w45" | "w92" | "w154" | "w185" | "w500">;
63
+ profile: z.ZodLiteral<"original" | "w45" | "w185" | "h632">;
64
+ still: z.ZodLiteral<"w300" | "original" | "w92" | "w185">;
65
+ }, z.core.$strip>;
66
+ }, z.core.$strip>;
67
+ base_url: z.ZodURL;
68
+ }, z.core.$strip>;
69
+ upload: z.ZodObject<{
70
+ temp_dir: z.ZodString;
71
+ timeout: z.ZodNumber;
72
+ }, z.core.$strip>;
73
+ }, z.core.$strip>;
74
+ export interface KinoConfig extends z.infer<typeof KinoConfig> {
75
+ }
76
+ declare module '@axium/core/plugins' {
77
+ interface $PluginConfigs {
78
+ '@axium/kino': KinoConfig;
79
+ }
80
+ }
81
+ export declare const KinoMovieUploadInit: z.ZodObject<{
82
+ id: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
83
+ name: z.ZodString;
84
+ size: z.ZodCoercedBigInt<unknown>;
85
+ type: z.ZodString;
86
+ hash: z.ZodOptional<z.ZodNullable<z.ZodCustomStringFormat<"hex">>>;
87
+ }, z.core.$strip>;
88
+ export interface KinoMovieUploadInit extends z.infer<typeof KinoMovieUploadInit> {
89
+ }
90
+ export declare const KinoMovieUploadResult: z.ZodObject<{
91
+ max_transfer_size: z.ZodInt;
92
+ movie: z.ZodObject<{
93
+ id: z.ZodInt;
94
+ title: z.ZodString;
95
+ overview: z.ZodString;
96
+ release_date: z.ZodCoercedDate<unknown>;
97
+ adult: z.ZodBoolean;
98
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
99
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
100
+ }, z.core.$strip>;
101
+ token: z.ZodBase64URL;
102
+ }, z.core.$strip>;
103
+ export type KinoMovieUploadResult = z.infer<typeof KinoMovieUploadResult>;
104
+ export declare const KinoTvUploadInit: z.ZodObject<{
105
+ season: z.ZodInt;
106
+ episode: z.ZodInt;
107
+ name: z.ZodString;
108
+ size: z.ZodCoercedBigInt<unknown>;
109
+ type: z.ZodString;
110
+ hash: z.ZodOptional<z.ZodNullable<z.ZodCustomStringFormat<"hex">>>;
111
+ }, z.core.$strip>;
112
+ export interface KinoTvUploadInit extends z.infer<typeof KinoTvUploadInit> {
113
+ }
114
+ export declare const KinoTvUploadResult: z.ZodObject<{
115
+ max_transfer_size: z.ZodInt;
116
+ episode: z.ZodObject<{
117
+ id: z.ZodInt;
118
+ season_number: z.ZodInt;
119
+ episode_number: z.ZodInt;
120
+ air_date: z.ZodCoercedDate<unknown>;
121
+ name: z.ZodString;
122
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
123
+ }, z.core.$strip>;
124
+ token: z.ZodBase64URL;
125
+ }, z.core.$strip>;
126
+ export interface KinoTvUploadResult extends z.infer<typeof KinoTvUploadResult> {
127
+ }
128
+ export declare const KinoSearchQuery: z.ZodObject<{
129
+ query: z.ZodString;
130
+ type: z.ZodOptional<z.ZodLiteral<"movie" | "tv">>;
131
+ }, z.core.$strip>;
132
+ export interface KinoSearchQuery extends z.infer<typeof KinoSearchQuery> {
133
+ }
134
+ export declare const KinoSearchResults: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
135
+ id: z.ZodInt;
136
+ title: z.ZodString;
137
+ overview: z.ZodString;
138
+ release_date: z.ZodCoercedDate<unknown>;
139
+ adult: z.ZodBoolean;
140
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
141
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
142
+ type: z.ZodLiteral<"movie">;
143
+ }, z.core.$strip>, z.ZodObject<{
144
+ id: z.ZodInt;
145
+ name: z.ZodString;
146
+ overview: z.ZodString;
147
+ first_air_date: z.ZodCoercedDate<unknown>;
148
+ adult: z.ZodBoolean;
149
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
150
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
151
+ seasons: z.ZodOptional<z.ZodArray<z.ZodObject<{
152
+ id: z.ZodInt;
153
+ season_number: z.ZodInt;
154
+ air_date: z.ZodCoercedDate<unknown>;
155
+ name: z.ZodString;
156
+ overview: z.ZodString;
157
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
158
+ episodes: z.ZodOptional<z.ZodArray<z.ZodObject<{
159
+ id: z.ZodInt;
160
+ season_number: z.ZodInt;
161
+ episode_number: z.ZodInt;
162
+ air_date: z.ZodCoercedDate<unknown>;
163
+ name: z.ZodString;
164
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
165
+ }, z.core.$strip>>>;
166
+ }, z.core.$strip>>>;
167
+ type: z.ZodLiteral<"tv">;
168
+ }, z.core.$strip>]>>;
169
+ export type KinoSearchResults = z.infer<typeof KinoSearchResults>;
170
+ /** How far through a movie or episode a user is, in seconds */
171
+ export declare const KinoProgress: z.ZodObject<{
172
+ position: z.ZodDefault<z.ZodNumber>;
173
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
174
+ }, z.core.$strip>;
175
+ export interface KinoProgress extends z.infer<typeof KinoProgress> {
176
+ }
177
+ /** Fraction of the way through an item, or null when the runtime isn't known yet */
178
+ export declare function viewProgress(view?: Partial<KinoProgress> | null): number | null;
179
+ /** Information about the file backing a movie or episode. `null` when nothing has been uploaded yet. */
180
+ export declare const KinoUpload: z.ZodObject<{
181
+ uploadedAt: z.ZodCoercedDate<unknown>;
182
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
183
+ size: z.ZodCoercedBigInt<unknown>;
184
+ type: z.ZodString;
185
+ }, z.core.$strip>;
186
+ export interface KinoUpload extends z.infer<typeof KinoUpload> {
187
+ }
188
+ export declare const KinoMovie: z.ZodObject<{
189
+ id: z.ZodInt;
190
+ title: z.ZodString;
191
+ overview: z.ZodString;
192
+ release_date: z.ZodCoercedDate<unknown>;
193
+ adult: z.ZodBoolean;
194
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
195
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
196
+ upload: z.ZodOptional<z.ZodNullable<z.ZodObject<{
197
+ uploadedAt: z.ZodCoercedDate<unknown>;
198
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
199
+ size: z.ZodCoercedBigInt<unknown>;
200
+ type: z.ZodString;
201
+ }, z.core.$strip>>>;
202
+ }, z.core.$strip>;
203
+ export interface KinoMovie extends z.infer<typeof KinoMovie> {
204
+ }
205
+ export declare const KinoEpisode: z.ZodObject<{
206
+ id: z.ZodInt;
207
+ season_number: z.ZodInt;
208
+ episode_number: z.ZodInt;
209
+ air_date: z.ZodCoercedDate<unknown>;
210
+ name: z.ZodString;
211
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
212
+ upload: z.ZodOptional<z.ZodNullable<z.ZodObject<{
213
+ uploadedAt: z.ZodCoercedDate<unknown>;
214
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
215
+ size: z.ZodCoercedBigInt<unknown>;
216
+ type: z.ZodString;
217
+ }, z.core.$strip>>>;
218
+ progress: z.ZodOptional<z.ZodNullable<z.ZodObject<{
219
+ position: z.ZodDefault<z.ZodNumber>;
220
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
221
+ }, z.core.$strip>>>;
222
+ }, z.core.$strip>;
223
+ export interface KinoEpisode extends z.infer<typeof KinoEpisode> {
224
+ }
225
+ export declare const KinoSeason: z.ZodObject<{
226
+ id: z.ZodInt;
227
+ season_number: z.ZodInt;
228
+ air_date: z.ZodCoercedDate<unknown>;
229
+ name: z.ZodString;
230
+ overview: z.ZodString;
231
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
232
+ episodes: z.ZodOptional<z.ZodArray<z.ZodObject<{
233
+ id: z.ZodInt;
234
+ season_number: z.ZodInt;
235
+ episode_number: z.ZodInt;
236
+ air_date: z.ZodCoercedDate<unknown>;
237
+ name: z.ZodString;
238
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
239
+ upload: z.ZodOptional<z.ZodNullable<z.ZodObject<{
240
+ uploadedAt: z.ZodCoercedDate<unknown>;
241
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
242
+ size: z.ZodCoercedBigInt<unknown>;
243
+ type: z.ZodString;
244
+ }, z.core.$strip>>>;
245
+ progress: z.ZodOptional<z.ZodNullable<z.ZodObject<{
246
+ position: z.ZodDefault<z.ZodNumber>;
247
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
248
+ }, z.core.$strip>>>;
249
+ }, z.core.$strip>>>;
250
+ }, z.core.$strip>;
251
+ export interface KinoSeason extends z.infer<typeof KinoSeason> {
252
+ }
253
+ /** The containers kino accepts, and the MIME type each is served as */
254
+ export declare const mediaTypes: {
255
+ readonly '.mkv': "video/x-matroska";
256
+ readonly '.mp4': "video/mp4";
257
+ };
258
+ export type MediaExt = keyof typeof mediaTypes;
259
+ export declare const mediaExtensions: MediaExt[];
260
+ /** The extension an upload of `type` should be stored with, or null when the type isn't supported */
261
+ export declare function extensionForType(type: string): MediaExt | null;
262
+ /** `accept` for a media file picker, listing both MIME types and extensions */
263
+ export declare const mediaAccept: string;
264
+ /** Which movie or episode was watched, and how far through it the user is */
265
+ export declare const KinoViewInit: z.ZodDiscriminatedUnion<[z.ZodObject<{
266
+ position: z.ZodDefault<z.ZodNumber>;
267
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
268
+ type: z.ZodLiteral<"movie">;
269
+ id: z.ZodInt;
270
+ }, z.core.$strip>, z.ZodObject<{
271
+ position: z.ZodDefault<z.ZodNumber>;
272
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
273
+ type: z.ZodLiteral<"tv">;
274
+ id: z.ZodInt;
275
+ season: z.ZodInt;
276
+ episode: z.ZodInt;
277
+ }, z.core.$strip>], "type">;
278
+ export type KinoViewInit = z.infer<typeof KinoViewInit>;
279
+ /**
280
+ * Identifies a movie or episode without the progress fields.
281
+ * `Omit` is distributed over the union, since applying it directly would collapse to the shared keys.
282
+ */
283
+ export type KinoViewTarget = KinoViewInit extends infer T ? (T extends object ? Omit<T, keyof KinoProgress> : never) : never;
284
+ /**
285
+ * A recently watched item, built from already-cached metadata so the list never has to hit TMDB.
286
+ * TV entries carry both the show (for artwork) and the episode that was watched.
287
+ */
288
+ export declare const KinoView: z.ZodDiscriminatedUnion<[z.ZodObject<{
289
+ movie: z.ZodObject<{
290
+ id: z.ZodInt;
291
+ title: z.ZodString;
292
+ overview: z.ZodString;
293
+ release_date: z.ZodCoercedDate<unknown>;
294
+ adult: z.ZodBoolean;
295
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
296
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
297
+ upload: z.ZodOptional<z.ZodNullable<z.ZodObject<{
298
+ uploadedAt: z.ZodCoercedDate<unknown>;
299
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
300
+ size: z.ZodCoercedBigInt<unknown>;
301
+ type: z.ZodString;
302
+ }, z.core.$strip>>>;
303
+ }, z.core.$strip>;
304
+ position: z.ZodDefault<z.ZodNumber>;
305
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
306
+ type: z.ZodLiteral<"movie">;
307
+ viewedAt: z.ZodCoercedDate<unknown>;
308
+ }, z.core.$strip>, z.ZodObject<{
309
+ show: z.ZodObject<{
310
+ id: z.ZodInt;
311
+ name: z.ZodString;
312
+ overview: z.ZodString;
313
+ first_air_date: z.ZodCoercedDate<unknown>;
314
+ adult: z.ZodBoolean;
315
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
316
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
317
+ seasons: z.ZodOptional<z.ZodArray<z.ZodObject<{
318
+ id: z.ZodInt;
319
+ season_number: z.ZodInt;
320
+ air_date: z.ZodCoercedDate<unknown>;
321
+ name: z.ZodString;
322
+ overview: z.ZodString;
323
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
324
+ episodes: z.ZodOptional<z.ZodArray<z.ZodObject<{
325
+ id: z.ZodInt;
326
+ season_number: z.ZodInt;
327
+ episode_number: z.ZodInt;
328
+ air_date: z.ZodCoercedDate<unknown>;
329
+ name: z.ZodString;
330
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
331
+ }, z.core.$strip>>>;
332
+ }, z.core.$strip>>>;
333
+ }, z.core.$strip>;
334
+ episode: z.ZodObject<{
335
+ id: z.ZodInt;
336
+ season_number: z.ZodInt;
337
+ episode_number: z.ZodInt;
338
+ air_date: z.ZodCoercedDate<unknown>;
339
+ name: z.ZodString;
340
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
341
+ upload: z.ZodOptional<z.ZodNullable<z.ZodObject<{
342
+ uploadedAt: z.ZodCoercedDate<unknown>;
343
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
344
+ size: z.ZodCoercedBigInt<unknown>;
345
+ type: z.ZodString;
346
+ }, z.core.$strip>>>;
347
+ progress: z.ZodOptional<z.ZodNullable<z.ZodObject<{
348
+ position: z.ZodDefault<z.ZodNumber>;
349
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
350
+ }, z.core.$strip>>>;
351
+ }, z.core.$strip>;
352
+ position: z.ZodDefault<z.ZodNumber>;
353
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
354
+ type: z.ZodLiteral<"tv">;
355
+ viewedAt: z.ZodCoercedDate<unknown>;
356
+ }, z.core.$strip>], "type">;
357
+ export type KinoView = z.infer<typeof KinoView>;
358
+ declare const KinoAPI: {
359
+ readonly 'kino/movies': {
360
+ readonly GET: z.ZodArray<z.ZodObject<{
361
+ id: z.ZodInt;
362
+ title: z.ZodString;
363
+ overview: z.ZodString;
364
+ release_date: z.ZodCoercedDate<unknown>;
365
+ adult: z.ZodBoolean;
366
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
367
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
368
+ upload: z.ZodOptional<z.ZodNullable<z.ZodObject<{
369
+ uploadedAt: z.ZodCoercedDate<unknown>;
370
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
371
+ size: z.ZodCoercedBigInt<unknown>;
372
+ type: z.ZodString;
373
+ }, z.core.$strip>>>;
374
+ }, z.core.$strip>>;
375
+ };
376
+ readonly 'kino/movies/upload': {
377
+ readonly PUT: readonly [z.ZodObject<{
378
+ id: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
379
+ name: z.ZodString;
380
+ size: z.ZodCoercedBigInt<unknown>;
381
+ type: z.ZodString;
382
+ hash: z.ZodOptional<z.ZodNullable<z.ZodCustomStringFormat<"hex">>>;
383
+ }, z.core.$strip>, z.ZodObject<{
384
+ max_transfer_size: z.ZodInt;
385
+ movie: z.ZodObject<{
386
+ id: z.ZodInt;
387
+ title: z.ZodString;
388
+ overview: z.ZodString;
389
+ release_date: z.ZodCoercedDate<unknown>;
390
+ adult: z.ZodBoolean;
391
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
392
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
393
+ }, z.core.$strip>;
394
+ token: z.ZodBase64URL;
395
+ }, z.core.$strip>];
396
+ };
397
+ readonly 'kino/movies/:id': {
398
+ readonly GET: z.ZodObject<{
399
+ id: z.ZodInt;
400
+ title: z.ZodString;
401
+ overview: z.ZodString;
402
+ release_date: z.ZodCoercedDate<unknown>;
403
+ adult: z.ZodBoolean;
404
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
405
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
406
+ upload: z.ZodOptional<z.ZodNullable<z.ZodObject<{
407
+ uploadedAt: z.ZodCoercedDate<unknown>;
408
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
409
+ size: z.ZodCoercedBigInt<unknown>;
410
+ type: z.ZodString;
411
+ }, z.core.$strip>>>;
412
+ }, z.core.$strip>;
413
+ /** Removes the upload and its files. Administrators only. */
414
+ readonly DELETE: z.ZodObject<{
415
+ uploadedAt: z.ZodCoercedDate<unknown>;
416
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
417
+ size: z.ZodCoercedBigInt<unknown>;
418
+ type: z.ZodString;
419
+ }, z.core.$strip>;
420
+ };
421
+ readonly 'kino/views': {
422
+ readonly GET: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
423
+ movie: z.ZodObject<{
424
+ id: z.ZodInt;
425
+ title: z.ZodString;
426
+ overview: z.ZodString;
427
+ release_date: z.ZodCoercedDate<unknown>;
428
+ adult: z.ZodBoolean;
429
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
430
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
431
+ upload: z.ZodOptional<z.ZodNullable<z.ZodObject<{
432
+ uploadedAt: z.ZodCoercedDate<unknown>;
433
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
434
+ size: z.ZodCoercedBigInt<unknown>;
435
+ type: z.ZodString;
436
+ }, z.core.$strip>>>;
437
+ }, z.core.$strip>;
438
+ position: z.ZodDefault<z.ZodNumber>;
439
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
440
+ type: z.ZodLiteral<"movie">;
441
+ viewedAt: z.ZodCoercedDate<unknown>;
442
+ }, z.core.$strip>, z.ZodObject<{
443
+ show: z.ZodObject<{
444
+ id: z.ZodInt;
445
+ name: z.ZodString;
446
+ overview: z.ZodString;
447
+ first_air_date: z.ZodCoercedDate<unknown>;
448
+ adult: z.ZodBoolean;
449
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
450
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
451
+ seasons: z.ZodOptional<z.ZodArray<z.ZodObject<{
452
+ id: z.ZodInt;
453
+ season_number: z.ZodInt;
454
+ air_date: z.ZodCoercedDate<unknown>;
455
+ name: z.ZodString;
456
+ overview: z.ZodString;
457
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
458
+ episodes: z.ZodOptional<z.ZodArray<z.ZodObject<{
459
+ id: z.ZodInt;
460
+ season_number: z.ZodInt;
461
+ episode_number: z.ZodInt;
462
+ air_date: z.ZodCoercedDate<unknown>;
463
+ name: z.ZodString;
464
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
465
+ }, z.core.$strip>>>;
466
+ }, z.core.$strip>>>;
467
+ }, z.core.$strip>;
468
+ episode: z.ZodObject<{
469
+ id: z.ZodInt;
470
+ season_number: z.ZodInt;
471
+ episode_number: z.ZodInt;
472
+ air_date: z.ZodCoercedDate<unknown>;
473
+ name: z.ZodString;
474
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
475
+ upload: z.ZodOptional<z.ZodNullable<z.ZodObject<{
476
+ uploadedAt: z.ZodCoercedDate<unknown>;
477
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
478
+ size: z.ZodCoercedBigInt<unknown>;
479
+ type: z.ZodString;
480
+ }, z.core.$strip>>>;
481
+ progress: z.ZodOptional<z.ZodNullable<z.ZodObject<{
482
+ position: z.ZodDefault<z.ZodNumber>;
483
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
484
+ }, z.core.$strip>>>;
485
+ }, z.core.$strip>;
486
+ position: z.ZodDefault<z.ZodNumber>;
487
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
488
+ type: z.ZodLiteral<"tv">;
489
+ viewedAt: z.ZodCoercedDate<unknown>;
490
+ }, z.core.$strip>], "type">>;
491
+ readonly PUT: readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
492
+ position: z.ZodDefault<z.ZodNumber>;
493
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
494
+ type: z.ZodLiteral<"movie">;
495
+ id: z.ZodInt;
496
+ }, z.core.$strip>, z.ZodObject<{
497
+ position: z.ZodDefault<z.ZodNumber>;
498
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
499
+ type: z.ZodLiteral<"tv">;
500
+ id: z.ZodInt;
501
+ season: z.ZodInt;
502
+ episode: z.ZodInt;
503
+ }, z.core.$strip>], "type">, z.ZodDiscriminatedUnion<[z.ZodObject<{
504
+ movie: z.ZodObject<{
505
+ id: z.ZodInt;
506
+ title: z.ZodString;
507
+ overview: z.ZodString;
508
+ release_date: z.ZodCoercedDate<unknown>;
509
+ adult: z.ZodBoolean;
510
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
511
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
512
+ upload: z.ZodOptional<z.ZodNullable<z.ZodObject<{
513
+ uploadedAt: z.ZodCoercedDate<unknown>;
514
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
515
+ size: z.ZodCoercedBigInt<unknown>;
516
+ type: z.ZodString;
517
+ }, z.core.$strip>>>;
518
+ }, z.core.$strip>;
519
+ position: z.ZodDefault<z.ZodNumber>;
520
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
521
+ type: z.ZodLiteral<"movie">;
522
+ viewedAt: z.ZodCoercedDate<unknown>;
523
+ }, z.core.$strip>, z.ZodObject<{
524
+ show: z.ZodObject<{
525
+ id: z.ZodInt;
526
+ name: z.ZodString;
527
+ overview: z.ZodString;
528
+ first_air_date: z.ZodCoercedDate<unknown>;
529
+ adult: z.ZodBoolean;
530
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
531
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
532
+ seasons: z.ZodOptional<z.ZodArray<z.ZodObject<{
533
+ id: z.ZodInt;
534
+ season_number: z.ZodInt;
535
+ air_date: z.ZodCoercedDate<unknown>;
536
+ name: z.ZodString;
537
+ overview: z.ZodString;
538
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
539
+ episodes: z.ZodOptional<z.ZodArray<z.ZodObject<{
540
+ id: z.ZodInt;
541
+ season_number: z.ZodInt;
542
+ episode_number: z.ZodInt;
543
+ air_date: z.ZodCoercedDate<unknown>;
544
+ name: z.ZodString;
545
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
546
+ }, z.core.$strip>>>;
547
+ }, z.core.$strip>>>;
548
+ }, z.core.$strip>;
549
+ episode: z.ZodObject<{
550
+ id: z.ZodInt;
551
+ season_number: z.ZodInt;
552
+ episode_number: z.ZodInt;
553
+ air_date: z.ZodCoercedDate<unknown>;
554
+ name: z.ZodString;
555
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
556
+ upload: z.ZodOptional<z.ZodNullable<z.ZodObject<{
557
+ uploadedAt: z.ZodCoercedDate<unknown>;
558
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
559
+ size: z.ZodCoercedBigInt<unknown>;
560
+ type: z.ZodString;
561
+ }, z.core.$strip>>>;
562
+ progress: z.ZodOptional<z.ZodNullable<z.ZodObject<{
563
+ position: z.ZodDefault<z.ZodNumber>;
564
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
565
+ }, z.core.$strip>>>;
566
+ }, z.core.$strip>;
567
+ position: z.ZodDefault<z.ZodNumber>;
568
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
569
+ type: z.ZodLiteral<"tv">;
570
+ viewedAt: z.ZodCoercedDate<unknown>;
571
+ }, z.core.$strip>], "type">];
572
+ };
573
+ readonly 'kino/tv': {
574
+ readonly GET: z.ZodArray<z.ZodObject<{
575
+ id: z.ZodInt;
576
+ name: z.ZodString;
577
+ overview: z.ZodString;
578
+ first_air_date: z.ZodCoercedDate<unknown>;
579
+ adult: z.ZodBoolean;
580
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
581
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
582
+ seasons: z.ZodOptional<z.ZodArray<z.ZodObject<{
583
+ id: z.ZodInt;
584
+ season_number: z.ZodInt;
585
+ air_date: z.ZodCoercedDate<unknown>;
586
+ name: z.ZodString;
587
+ overview: z.ZodString;
588
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
589
+ episodes: z.ZodOptional<z.ZodArray<z.ZodObject<{
590
+ id: z.ZodInt;
591
+ season_number: z.ZodInt;
592
+ episode_number: z.ZodInt;
593
+ air_date: z.ZodCoercedDate<unknown>;
594
+ name: z.ZodString;
595
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
596
+ }, z.core.$strip>>>;
597
+ }, z.core.$strip>>>;
598
+ }, z.core.$strip>>;
599
+ };
600
+ readonly 'kino/tv/:id': {
601
+ readonly GET: z.ZodObject<{
602
+ id: z.ZodInt;
603
+ name: z.ZodString;
604
+ overview: z.ZodString;
605
+ first_air_date: z.ZodCoercedDate<unknown>;
606
+ adult: z.ZodBoolean;
607
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
608
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
609
+ seasons: z.ZodOptional<z.ZodArray<z.ZodObject<{
610
+ id: z.ZodInt;
611
+ season_number: z.ZodInt;
612
+ air_date: z.ZodCoercedDate<unknown>;
613
+ name: z.ZodString;
614
+ overview: z.ZodString;
615
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
616
+ episodes: z.ZodOptional<z.ZodArray<z.ZodObject<{
617
+ id: z.ZodInt;
618
+ season_number: z.ZodInt;
619
+ episode_number: z.ZodInt;
620
+ air_date: z.ZodCoercedDate<unknown>;
621
+ name: z.ZodString;
622
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
623
+ }, z.core.$strip>>>;
624
+ }, z.core.$strip>>>;
625
+ }, z.core.$strip>;
626
+ };
627
+ readonly 'kino/tv/:id/season/:season': {
628
+ readonly GET: z.ZodObject<{
629
+ id: z.ZodInt;
630
+ season_number: z.ZodInt;
631
+ air_date: z.ZodCoercedDate<unknown>;
632
+ name: z.ZodString;
633
+ overview: z.ZodString;
634
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
635
+ episodes: z.ZodOptional<z.ZodArray<z.ZodObject<{
636
+ id: z.ZodInt;
637
+ season_number: z.ZodInt;
638
+ episode_number: z.ZodInt;
639
+ air_date: z.ZodCoercedDate<unknown>;
640
+ name: z.ZodString;
641
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
642
+ upload: z.ZodOptional<z.ZodNullable<z.ZodObject<{
643
+ uploadedAt: z.ZodCoercedDate<unknown>;
644
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
645
+ size: z.ZodCoercedBigInt<unknown>;
646
+ type: z.ZodString;
647
+ }, z.core.$strip>>>;
648
+ progress: z.ZodOptional<z.ZodNullable<z.ZodObject<{
649
+ position: z.ZodDefault<z.ZodNumber>;
650
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
651
+ }, z.core.$strip>>>;
652
+ }, z.core.$strip>>>;
653
+ }, z.core.$strip>;
654
+ };
655
+ readonly 'kino/tv/:id/season/:season/episode/:episode': {
656
+ readonly GET: z.ZodObject<{
657
+ id: z.ZodInt;
658
+ season_number: z.ZodInt;
659
+ episode_number: z.ZodInt;
660
+ air_date: z.ZodCoercedDate<unknown>;
661
+ name: z.ZodString;
662
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
663
+ upload: z.ZodOptional<z.ZodNullable<z.ZodObject<{
664
+ uploadedAt: z.ZodCoercedDate<unknown>;
665
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
666
+ size: z.ZodCoercedBigInt<unknown>;
667
+ type: z.ZodString;
668
+ }, z.core.$strip>>>;
669
+ progress: z.ZodOptional<z.ZodNullable<z.ZodObject<{
670
+ position: z.ZodDefault<z.ZodNumber>;
671
+ duration: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
672
+ }, z.core.$strip>>>;
673
+ }, z.core.$strip>;
674
+ /** Removes the upload and its files. Administrators only. */
675
+ readonly DELETE: z.ZodObject<{
676
+ uploadedAt: z.ZodCoercedDate<unknown>;
677
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
678
+ size: z.ZodCoercedBigInt<unknown>;
679
+ type: z.ZodString;
680
+ }, z.core.$strip>;
681
+ };
682
+ readonly 'kino/tv/:id/upload': {
683
+ readonly PUT: readonly [z.ZodObject<{
684
+ season: z.ZodInt;
685
+ episode: z.ZodInt;
686
+ name: z.ZodString;
687
+ size: z.ZodCoercedBigInt<unknown>;
688
+ type: z.ZodString;
689
+ hash: z.ZodOptional<z.ZodNullable<z.ZodCustomStringFormat<"hex">>>;
690
+ }, z.core.$strip>, z.ZodObject<{
691
+ max_transfer_size: z.ZodInt;
692
+ episode: z.ZodObject<{
693
+ id: z.ZodInt;
694
+ season_number: z.ZodInt;
695
+ episode_number: z.ZodInt;
696
+ air_date: z.ZodCoercedDate<unknown>;
697
+ name: z.ZodString;
698
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
699
+ }, z.core.$strip>;
700
+ token: z.ZodBase64URL;
701
+ }, z.core.$strip>];
702
+ };
703
+ readonly 'kino/search': {
704
+ readonly POST: readonly [z.ZodObject<{
705
+ query: z.ZodString;
706
+ type: z.ZodOptional<z.ZodLiteral<"movie" | "tv">>;
707
+ }, z.core.$strip>, z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
708
+ id: z.ZodInt;
709
+ title: z.ZodString;
710
+ overview: z.ZodString;
711
+ release_date: z.ZodCoercedDate<unknown>;
712
+ adult: z.ZodBoolean;
713
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
714
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
715
+ type: z.ZodLiteral<"movie">;
716
+ }, z.core.$strip>, z.ZodObject<{
717
+ id: z.ZodInt;
718
+ name: z.ZodString;
719
+ overview: z.ZodString;
720
+ first_air_date: z.ZodCoercedDate<unknown>;
721
+ adult: z.ZodBoolean;
722
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
723
+ backdrop_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
724
+ seasons: z.ZodOptional<z.ZodArray<z.ZodObject<{
725
+ id: z.ZodInt;
726
+ season_number: z.ZodInt;
727
+ air_date: z.ZodCoercedDate<unknown>;
728
+ name: z.ZodString;
729
+ overview: z.ZodString;
730
+ poster_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
731
+ episodes: z.ZodOptional<z.ZodArray<z.ZodObject<{
732
+ id: z.ZodInt;
733
+ season_number: z.ZodInt;
734
+ episode_number: z.ZodInt;
735
+ air_date: z.ZodCoercedDate<unknown>;
736
+ name: z.ZodString;
737
+ still_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
738
+ }, z.core.$strip>>>;
739
+ }, z.core.$strip>>>;
740
+ type: z.ZodLiteral<"tv">;
741
+ }, z.core.$strip>]>>];
742
+ };
743
+ };
744
+ type KinoAPI = typeof KinoAPI;
745
+ declare module '@axium/core/api' {
746
+ interface $API extends KinoAPI {
747
+ }
748
+ }
749
+ export {};