You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Without ts-morph added as a devDependency i get the above error.
OpenAPI spec file
{"openapi":"3.1.0","info":{"title":"B\u00e5nder api docs","version":"0.0.1","description":"B\u00e5nder.App is a sophisticated media server developed with the primary goal to deliver high performance and seamless experience for users.\nBeing built on top of Laravel framework and PostgreSQL for database, it leverages the power of robust backend technologies, providing high security, reliability, and scalability.\n\nThe main focus of B\u00e5nder.App is efficient media management and delivery.\nThis application is designed to handle large amounts of media files while ensuring quick and efficient access.\nImplemented queuing functionality through Redis offers efficient job management and load handling.\nThe media information is organized and easily searchable, ensuring users can always find what they are looking for quickly and easily."},"servers":[{"url":"https:\/\/baander.test\/api"}],"security":[{"http":[]}],"paths":{"\/libraries\/{library}\/albums":{"get":{"operationId":"albums.index","summary":"Get a collection of albums","tags":["Album"],"parameters":[{"name":"library","in":"path","required":true,"description":"The library slug","schema":{"type":"string"}},{"name":"fields","in":"query","description":"Comma seperated string of fields you want to select. If nothing is defined `select *` is default.\n- title\n- slug\n- year\n- directory","schema":{"type":"string"}},{"name":"relations","in":"query","description":"Comma seperated string of relations\n- albumArist\n- cover\n- library\n- songs","schema":{"type":"string"}},{"name":"page","in":"query","description":"Current page","schema":{"type":"integer"}},{"name":"limit","in":"query","description":"Items per page","schema":{"type":"integer"}},{"name":"genres","in":"query","description":"_Extension_ Comma seperated list of genres","schema":{"type":"string"}}],"responses":{"200":{"description":"Json paginated set of `AlbumResourceResource`","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/AlbumResourceResource"}},"total":{"type":"integer","description":"Total number of items being paginated."},"count":{"type":"integer","description":"The number of items for the current page"},"limit":{"type":"integer","description":"The number of items per page"},"currentPage":{"type":"integer","description":"The number of current page"},"nextPage":{"type":"integer","description":"The number of next page"},"lastPage":{"type":"integer","description":"The number of last page"}},"required":["data","total","count","limit","currentPage","nextPage","lastPage"]}}}},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}}}},"\/libraries\/{library}\/albums\/{album}":{"get":{"operationId":"albums.show","summary":"Get an album","tags":["Album"],"parameters":[{"name":"library","in":"path","required":true,"description":"The library slug","schema":{"type":"string"}},{"name":"album","in":"path","required":true,"description":"The album slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`AlbumResourceResource`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AlbumResourceResource"}}}},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}}},"\/libraries\/{library}\/artists":{"get":{"operationId":"artists.index","summary":"Get a collection of artists","tags":["Artist"],"parameters":[{"name":"library","in":"path","required":true,"schema":{"type":"string"}},{"name":"fields","in":"query","description":"Comma seperated string of fields you want to select. If nothing is defined `select *` is default.\n- title\n- slug","schema":{"type":"string"}},{"name":"relations","in":"query","description":"Comma seperated string of relations\n- portrait\n- songs","schema":{"type":"string"}},{"name":"page","in":"query","description":"Current page","schema":{"type":"integer"}},{"name":"limit","in":"query","description":"Items per page","schema":{"type":"integer"}},{"name":"genres","in":"query","description":"_Extension_ Comma seperated list of genres","schema":{"type":"string"}}],"responses":{"200":{"description":"Json paginated set of `ArtistResource`","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/ArtistResource"}},"total":{"type":"integer","description":"Total number of items being paginated."},"count":{"type":"integer","description":"The number of items for the current page"},"limit":{"type":"integer","description":"The number of items per page"},"currentPage":{"type":"integer","description":"The number of current page"},"nextPage":{"type":"integer","description":"The number of next page"},"lastPage":{"type":"integer","description":"The number of last page"}},"required":["data","total","count","limit","currentPage","nextPage","lastPage"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}}}},"\/libraries\/{library}\/artists\/{artist}":{"get":{"operationId":"artists.show","summary":"Get an artist","tags":["Artist"],"parameters":[{"name":"library","in":"path","required":true,"schema":{"type":"string"}},{"name":"artist","in":"path","required":true,"description":"The artist slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`ArtistResource`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ArtistResource"}}}},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}}},"\/auth\/login":{"post":{"operationId":"auth.login","summary":"Login","tags":["Auth"],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/LoginRequest"}}}},"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"accessToken":{"$ref":"#\/components\/schemas\/NewAccessTokenResource"},"refreshToken":{"$ref":"#\/components\/schemas\/NewAccessTokenResource"}},"required":["accessToken","refreshToken"]}}}},"401":{"description":"An error","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error overview.","example":"Invalid credentials."}},"required":["message"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}},"security":[{}]}},"\/auth\/refreshToken":{"post":{"operationId":"auth.refreshToken","description":"Needs refresh token with ability \"issue-access-token\"","summary":"Refresh token","tags":["Auth"],"requestBody":{"content":{"application\/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"accessToken":{"$ref":"#\/components\/schemas\/NewAccessTokenResource"}},"required":["accessToken"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}}},"\/auth\/streamToken":{"post":{"operationId":"auth.streamToken","description":"Needs refresh token with ability \"issue-access-token\"","summary":"Get a stream token","tags":["Auth"],"requestBody":{"content":{"application\/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"streamToken":{"$ref":"#\/components\/schemas\/NewAccessTokenResource"}},"required":["streamToken"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}}},"\/auth\/register":{"post":{"operationId":"auth.register","summary":"Register","tags":["Auth"],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RegisterRequest"}}}},"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"accessToken":{"$ref":"#\/components\/schemas\/NewAccessTokenResource"},"refreshToken":{"$ref":"#\/components\/schemas\/NewAccessTokenResource"}},"required":["accessToken","refreshToken"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}},"security":[{}]}},"\/auth\/forgotPassword":{"post":{"operationId":"auth.forgotPassword","summary":"Request reset password link","tags":["Auth"],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ForgotPasswordRequest"}}}},"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}},"security":[{}]}},"\/auth\/resetPassword":{"post":{"operationId":"auth.resetPassword","summary":"Reset password","tags":["Auth"],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ResetPasswordRequest"}}}},"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Password reset successfully."}},"required":["message"]}}}},"400":{"description":"An error","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error overview.","example":"Provided invalid token."}},"required":["message"]}}}},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}},"security":[{}]}},"\/auth\/verify\/:id\/:hash":{"post":{"operationId":"auth.verify","summary":"Verify email","tags":["Auth"],"requestBody":{"content":{"application\/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"`UserResource`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UserResource"}}}},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}},"security":[{}]}},"\/genres":{"get":{"operationId":"genres.index","summary":"Get a collection of genres","tags":["Genre"],"parameters":[{"name":"fields","in":"query","description":"Comma seperated string of fields you want to select. If nothing is defined `select *` is default.\n- name\n- slug","schema":{"type":"string"}},{"name":"relations","in":"query","description":"Comma seperated string of relations\n- songs","schema":{"type":"string"}},{"name":"librarySlug","in":"query","description":"Constrain the query to only fetch genres that are contained within the given library","schema":{"type":"string"}},{"name":"page","in":"query","description":"Current page","schema":{"type":"integer"}},{"name":"limit","in":"query","description":"Items per page","schema":{"type":"integer"}}],"responses":{"200":{"description":"Json paginated set of `GenreResource`","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/GenreResource"}},"total":{"type":"integer","description":"Total number of items being paginated."},"count":{"type":"integer","description":"The number of items for the current page"},"limit":{"type":"integer","description":"The number of items per page"},"currentPage":{"type":"integer","description":"The number of current page"},"nextPage":{"type":"integer","description":"The number of next page"},"lastPage":{"type":"integer","description":"The number of last page"}},"required":["data","total","count","limit","currentPage","nextPage","lastPage"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}}}},"\/genres\/{genre}":{"get":{"operationId":"genres.show","summary":"Get a genre","tags":["Genre"],"parameters":[{"name":"genre","in":"path","required":true,"description":"The genre slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`GenreResource`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/GenreResource"}}}},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}},"patch":{"operationId":"genres.update","summary":"Update a genre","tags":["Genre"],"parameters":[{"name":"genre","in":"path","required":true,"description":"The genre slug","schema":{"type":"string"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateGenreRequest"}}}},"responses":{"200":{"description":"`GenreResource`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/GenreResource"}}}},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}}},"delete":{"operationId":"genres.destroy","summary":"Delete a genre","tags":["Genre"],"parameters":[{"name":"genre","in":"path","required":true,"description":"The genre slug","schema":{"type":"string"}}],"responses":{"204":{"description":"No content","content":{"application\/json":{"schema":{"type":"null"}}}},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}}},"\/images\/{image}":{"get":{"operationId":"image.serve","summary":"Get an image asset","tags":["Image"],"parameters":[{"name":"image","in":"path","required":true,"description":"The image public id","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"string"}}}},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"}},"security":[{}]}},"\/jobs\/scanLibrary\/{slug}":{"post":{"operationId":"job.library-scan","summary":"Scan a library","tags":["Job"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application\/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Job started successfully"}},"required":["message"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}}},"\/libraries":{"get":{"operationId":"libraries.index","summary":"Get a collection of media libraries","tags":["Library"],"parameters":[{"name":"page","in":"query","description":"Current page","schema":{"type":"integer"}},{"name":"limit","in":"query","description":"Items per page","schema":{"type":"integer"}}],"responses":{"200":{"description":"Json paginated set of `LibraryResource`","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/LibraryResource"}},"total":{"type":"integer","description":"Total number of items being paginated."},"count":{"type":"integer","description":"The number of items for the current page"},"limit":{"type":"integer","description":"The number of items per page"},"currentPage":{"type":"integer","description":"The number of current page"},"nextPage":{"type":"integer","description":"The number of next page"},"lastPage":{"type":"integer","description":"The number of last page"}},"required":["data","total","count","limit","currentPage","nextPage","lastPage"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}}},"post":{"operationId":"library.create","summary":"Create a library","tags":["Library"],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateLibraryRequest"}}}},"responses":{"200":{"description":"`LibraryResource`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/LibraryResource"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}}}},"\/libraries\/:slug":{"patch":{"operationId":"library.update","summary":"Update a library specified by the provided slug","tags":["Library"],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateLibraryRequest"}}}},"responses":{"200":{"description":"`LibraryResource`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/LibraryResource"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}}},"delete":{"operationId":"library.delete","summary":"Delete a library","tags":["Library"],"responses":{"204":{"description":"No content","content":{"application\/json":{"schema":{"type":"null"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}}},"\/opcache\/status":{"get":{"operationId":"opCache.getStatus","summary":"Get status","tags":["OpCache"],"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"opcache_enabled":{"type":"boolean"},"file_cache":{"type":"string"},"file_cache_only":{"type":"boolean"},"cache_full":{"type":"boolean"},"restart_pending":{"type":"boolean"},"":{"type":"object"},"memory_usage":{"type":"object","properties":{"used_memory":{"type":"integer"},"free_memory":{"type":"integer"},"wasted_memory":{"type":"integer"},"current_wasted_percentage":{"type":"number"}},"required":["used_memory","free_memory","wasted_memory","current_wasted_percentage"]},"interned_strings_usage":{"type":"object","properties":{"buffer_size":{"type":"integer"},"used_memory":{"type":"integer"},"free_memory":{"type":"integer"},"number_of_strings":{"type":"integer"}},"required":["buffer_size","used_memory","free_memory","number_of_strings"]},"opcache_statistics":{"type":"object","properties":{"num_cached_scripts":{"type":"integer"},"num_cached_keys":{"type":"integer"},"max_cached_keys":{"type":"integer"},"hits":{"type":"integer"},"start_time":{"type":"integer"},"last_restart_time":{"type":"integer"},"oom_restarts":{"type":"integer"},"hash_restarts":{"type":"integer"},"manual_restarts":{"type":"integer"},"misses":{"type":"integer"},"blacklist_misses":{"type":"integer"},"blacklist_miss_ratio":{"type":"integer"},"opcache_hit_rate":{"type":"number"}},"required":["num_cached_scripts","num_cached_keys","max_cached_keys","hits","start_time","last_restart_time","oom_restarts","hash_restarts","manual_restarts","misses","blacklist_misses","blacklist_miss_ratio","opcache_hit_rate"]},"jit":{"type":"object","properties":{"enabled":{"type":"boolean"},"on":{"type":"boolean"},"kind":{"type":"integer"},"opt_level":{"type":"integer"},"opt_flags":{"type":"integer"},"buffer_size":{"type":"integer"},"buffer_free":{"type":"integer"}},"required":["enabled","on","kind","opt_level","opt_flags","buffer_size","buffer_free"]}},"required":["opcache_enabled","file_cache","file_cache_only","cache_full","restart_pending",null,"memory_usage","interned_strings_usage","opcache_statistics","jit"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}}},"\/opcache\/config":{"get":{"operationId":"opcache.getConfig","summary":"Get config","tags":["OpCache"],"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"directives":{"type":"object","properties":{"property":{"anyOf":[{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"string"}]}},"required":["property"]},"version":{"type":"object","properties":{"version":{"type":"string"},"opcache_product_name":{"type":"string"}},"required":["version","opcache_product_name"]},"blacklist":{"type":"array","items":{"type":"string"}}},"required":["directives","version","blacklist"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}}},"\/opcache\/clear":{"post":{"operationId":"opcache.clear","summary":"Clear","tags":["OpCache"],"requestBody":{"content":{"application\/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}}},"\/opcache\/compile":{"post":{"operationId":"opcache.compile","summary":"Compile cache","tags":["OpCache"],"parameters":[{"name":"force","in":"query","schema":{"type":"string"}}],"requestBody":{"content":{"application\/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object","properties":{"totalFiles":{"type":"integer"},"compiled":{"type":"integer"}},"required":["totalFiles","compiled"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}}},"\/libraries\/{library}\/songs":{"get":{"operationId":"songs.index","summary":"Get a collection of songs","tags":["Song"],"parameters":[{"name":"library","in":"path","required":true,"description":"The library slug","schema":{"type":"string"}},{"name":"page","in":"query","description":"Current page","schema":{"type":"integer"}},{"name":"limit","in":"query","description":"Items per page","schema":{"type":"integer"}},{"name":"genreNames","in":"query","description":"Comma seperated list of genre names You can only search for names or slugs. Not both.","schema":{"type":"string"}},{"name":"genreSlugs","in":"query","description":"Comma seperated list of genre slugs","schema":{"type":"string"}},{"name":"relations","in":"query","description":"Comma seperated string of relations\n- album\n- artists\n- album.albumArtist\n- genres","schema":{"type":"string"}}],"responses":{"200":{"description":"Json paginated set of `SongResource`","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/SongResource"}},"total":{"type":"integer","description":"Total number of items being paginated."},"count":{"type":"integer","description":"The number of items for the current page"},"limit":{"type":"integer","description":"The number of items per page"},"currentPage":{"type":"integer","description":"The number of current page"},"nextPage":{"type":"integer","description":"The number of next page"},"lastPage":{"type":"integer","description":"The number of last page"}},"required":["data","total","count","limit","currentPage","nextPage","lastPage"]}}}},"400":{"description":"An error","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error overview.","example":"You cannot search for genre names and slugs at the same time"}},"required":["message"]}}}},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}}}},"\/libraries\/{library}\/songs\/{publicId}":{"get":{"operationId":"songs.show","summary":"Get a song by public id","tags":["Song"],"parameters":[{"name":"library","in":"path","required":true,"description":"The library slug","schema":{"type":"string"}},{"name":"publicId","in":"path","required":true,"schema":{"type":"string"}},{"name":"relations","in":"query","description":"Comma seperated string of relations\n- album\n- artists\n- albumArtist\n- genres","schema":{"type":"string"}}],"responses":{"200":{"description":"`SongResource`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/SongResource"}}}},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}}}},"\/libraries\/{library}\/songs\/stream\/song\/{song}\/direct":{"get":{"operationId":"songs.stream","description":"Requires token with \"access-stream\"","summary":"Direct stream the song","tags":["Song"],"parameters":[{"name":"library","in":"path","required":true,"description":"The library slug","schema":{"type":"string"}},{"name":"song","in":"path","required":true,"description":"The song public id","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application\/json":{"schema":{"type":"object"}}}},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}}},"\/users":{"get":{"operationId":"users.index","summary":"Get a collection of users","tags":["User"],"responses":{"200":{"description":"Json paginated set of `UserResource`","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/UserResource"}},"total":{"type":"integer","description":"Total number of items being paginated."},"count":{"type":"integer","description":"The number of items for the current page"},"limit":{"type":"integer","description":"The number of items per page"},"currentPage":{"type":"integer","description":"The number of current page"},"nextPage":{"type":"integer","description":"The number of next page"},"lastPage":{"type":"integer","description":"The number of last page"}},"required":["data","total","count","limit","currentPage","nextPage","lastPage"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}},"post":{"operationId":"users.store","description":"This is endpoint allows administrators to create users","summary":"Create user","tags":["User"],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateUserRequest"}}}},"responses":{"200":{"description":"`UserResource`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UserResource"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}}}},"\/users\/{user}":{"patch":{"operationId":"users.update","summary":"Update a user","tags":["User"],"parameters":[{"name":"user","in":"path","required":true,"description":"The user ID","schema":{"type":"integer"}}],"requestBody":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UpdateUserRequest"}}}},"responses":{"200":{"description":"`UserResource`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UserResource"}}}},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}}},"get":{"operationId":"users.show","summary":"Get small user detail info","tags":["User"],"parameters":[{"name":"user","in":"path","required":true,"description":"The user ID","schema":{"type":"integer"}}],"responses":{"200":{"description":"`UserResource`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UserResource"}}}},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}},"delete":{"operationId":"users.destroy","summary":"Delete a user","tags":["User"],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No content","content":{"application\/json":{"schema":{"type":"null"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}}},"\/users\/me":{"get":{"operationId":"users.me","summary":"Get the authenticated user","tags":["User"],"responses":{"200":{"description":"`UserResource`","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/UserResource"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"}}}},"\/users\/tokens\/{user}":{"get":{"operationId":"userToken.getUserTokens","summary":"Get a collection of tokens","tags":["UserToken"],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer"}},{"name":"perPage","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"Json paginated set of `PersonalAccessTokenViewResource`","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/PersonalAccessTokenViewResource"}},"total":{"type":"integer","description":"Total number of items being paginated."},"count":{"type":"integer","description":"The number of items for the current page"},"limit":{"type":"integer","description":"The number of items per page"},"currentPage":{"type":"integer","description":"The number of current page"},"nextPage":{"type":"integer","description":"The number of next page"},"lastPage":{"type":"integer","description":"The number of last page"}},"required":["data","total","count","limit","currentPage","nextPage","lastPage"]}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"422":{"$ref":"#\/components\/responses\/ValidationException"},"403":{"$ref":"#\/components\/responses\/AuthorizationException"}}}},"\/users\/tokens\/{token}":{"delete":{"operationId":"userToken.revokeToken","summary":"Revoke a given token","tags":["UserToken"],"parameters":[{"name":"token","in":"path","required":true,"description":"The token ID","schema":{"type":"integer"}}],"responses":{"204":{"description":"No content","content":{"application\/json":{"schema":{"type":"null"}}}},"401":{"$ref":"#\/components\/responses\/AuthenticationException"},"404":{"$ref":"#\/components\/responses\/ModelNotFoundException"}}}}},"components":{"securitySchemes":{"http":{"type":"http","description":"### Access token\nOnly tokens with the ability 'access-api' will have access to the endpoints. Access tokens have a lifetime of 1h.\n\n### Stream token\nStream tokens can only be used for accessing media streams. Stream tokens have a lifetime of 1d.\n\n### Refresh token\nThe refresh token has the 'issue-access-token' ability. Refresh tokens have a lifetime of 7d.\nIt can be used to refresh access and stream tokens.\n\n#### Tip\n\nTokens can be used as a query parameter in cases where its not possible to add a header (e.g. mp3 streaming in the browser). Append the query parameter `_token=YOUR_TOKEN`.","scheme":"bearer","bearerFormat":""}},"schemas":{"AlbumResourceResource":{"type":"object","properties":{"title":{"type":"string"},"slug":{"type":"string"},"year":{"type":["integer","null"]},"directory":{"type":"string"},"createdAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"coverUrl":{"type":"string","description":"Cover relation"},"albumArtist":{"description":"Album artist relation","$ref":"#\/components\/schemas\/ArtistResource"},"songs":{"type":"array","description":"Songs relation","items":{"$ref":"#\/components\/schemas\/SongResource"}}},"required":["title","slug","year","directory","createdAt","updatedAt"],"title":"AlbumResourceResource"},"AlbumWithoutSongsResource":{"type":"object","properties":{"title":{"type":"string"},"slug":{"type":"string"},"year":{"type":["integer","null"]},"directory":{"type":"string"},"coverUrl":{"type":"string"},"createdAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"albumArtist":{"description":"Album artist relation","$ref":"#\/components\/schemas\/ArtistResource"}},"required":["title","slug","year","directory","createdAt","updatedAt"],"title":"AlbumWithoutSongsResource"},"ArtistResource":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"createdAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"portrait":{"description":"Portrait relation","$ref":"#\/components\/schemas\/ImageResource"}},"required":["name","slug","createdAt","updatedAt"],"title":"ArtistResource"},"CreateLibraryRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"path":{"type":"string","maxLength":1000},"type":{"$ref":"#\/components\/schemas\/LibraryType"},"order":{"type":"integer"}},"required":["name","path","type","order"],"title":"CreateLibraryRequest"},"CreateUserRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":160},"email":{"type":"string","format":"email","maxLength":254},"password":{"type":"string","minLength":1,"maxLength":100}},"required":["name","email","password"],"title":"CreateUserRequest"},"ForgotPasswordRequest":{"type":"object","properties":{"email":{"type":"string","format":"email"},"url":{"type":"string"}},"required":["email"],"title":"ForgotPasswordRequest"},"GenreResource":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"createdAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"songs":{"type":"array","description":"Songs relation","items":{"$ref":"#\/components\/schemas\/SongResource"}}},"required":["name","slug","createdAt","updatedAt"],"title":"GenreResource"},"ImageResource":{"type":"object","properties":{"public_id":{"type":"string"},"path":{"type":"string"},"extension":{"type":"string"},"size":{"type":"integer"},"mime_type":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"url":{"type":"string"}},"required":["public_id","path","extension","size","mime_type","width","height","url"],"title":"ImageResource"},"LibraryResource":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"path":{"type":"string"},"type":{"type":"string"},"order":{"type":"integer"},"lastScan":{"type":["string","null"]},"createdAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"}},"required":["name","slug","path","type","order","lastScan","createdAt","updatedAt"],"title":"LibraryResource"},"LibraryType":{"type":"string","enum":["music","podcast","audiobook","movie","tv_show"],"title":"LibraryType"},"LoginRequest":{"type":"object","properties":{"email":{"type":"string","format":"email"},"password":{"type":"string"},"remember":{"type":"boolean"}},"required":["email","password"],"title":"LoginRequest"},"NewAccessTokenResource":{"type":"object","properties":{"token":{"type":"string"},"abilities":{"type":"string"},"expiresAt":{"type":"string"}},"required":["token","abilities","expiresAt"],"title":"NewAccessTokenResource"},"PersonalAccessTokenViewResource":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"abilities":{"type":["array","null"],"items":{"type":"string"}},"userAgent":{"type":["string","null"]},"clientName":{"type":["string","null"]},"clientVersion":{"type":["string","null"]},"clientType":{"type":["string","null"]},"deviceOperatingSystem":{"type":["string","null"]},"deviceName":{"type":["string","null"]},"lastUsedAt":{"type":["string","null"],"format":"date-time"},"expiresAt":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"}},"required":["id","name","abilities","userAgent","clientName","clientVersion","clientType","deviceOperatingSystem","deviceName","lastUsedAt","expiresAt","createdAt","updatedAt"],"title":"PersonalAccessTokenViewResource"},"RegisterRequest":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":255},"password":{"type":"string"},"password_confirmation":{"type":"string"},"name":{"type":"string"}},"required":["email","password","password_confirmation"],"title":"RegisterRequest"},"ResetPasswordRequest":{"type":"object","properties":{"email":{"type":"string","format":"email"},"token":{"type":"string"},"password":{"type":"string"},"password_confirmation":{"type":"string"}},"required":["email","token","password","password_confirmation"],"title":"ResetPasswordRequest"},"SongResource":{"type":"object","properties":{"public_id":{"type":"string"},"title":{"type":"string"},"year":{"type":["integer","null"]},"comment":{"type":["string","null"]},"disc":{"type":["integer","null"]},"length":{"type":["string","null"]},"durationHuman":{"type":"string"},"lyrics":{"type":["string","null"]},"lyricsExist":{"type":"boolean"},"modifiedTime":{"type":["integer","null"]},"path":{"type":"string"},"track":{"type":["integer","null"]},"size":{"type":"integer"},"sizeHuman":{"type":"string"},"mimeType":{"type":"string"},"hash":{"type":["string","null"]},"stream":{"type":["string","null"]},"librarySlug":{"type":"string"},"createdAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"album":{"$ref":"#\/components\/schemas\/AlbumWithoutSongsResource"},"artists":{"type":"array","items":{"$ref":"#\/components\/schemas\/ArtistResource"}}},"required":["public_id","title","year","comment","disc","length","durationHuman","lyrics","lyricsExist","modifiedTime","path","track","size","sizeHuman","mimeType","hash","createdAt","updatedAt"],"title":"SongResource"},"UpdateGenreRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255}},"required":["name"],"title":"UpdateGenreRequest"},"UpdateLibraryRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"path":{"type":"string","maxLength":1000},"type":{"$ref":"#\/components\/schemas\/LibraryType"},"order":{"type":"integer"}},"title":"UpdateLibraryRequest"},"UpdateUserRequest":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":254},"password":{"type":"string","maxLength":100}},"title":"UpdateUserRequest"},"UserResource":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"isAdmin":{"type":"boolean"},"createdAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"}},"required":["name","email","isAdmin","createdAt","updatedAt"],"title":"UserResource"}},"responses":{"ModelNotFoundException":{"description":"Not found","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error overview."}},"required":["message"]}}}},"AuthenticationException":{"description":"Unauthenticated","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error overview."}},"required":["message"]}}}},"ValidationException":{"description":"Validation error","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Errors overview."},"errors":{"type":"object","description":"A detailed description of each field that failed validation.","additionalProperties":{"type":"array","items":{"type":"string"}}}},"required":["message","errors"]}}}},"AuthorizationException":{"description":"Authorization error","content":{"application\/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error overview."}},"required":["message"]}}}}}}}
Expected behavior
All necessary dependencies should be part of the package. If you're concerned about locking consumers out of newer versions then you could depend on the version you need or newer e.g. >=23.0.0
Screenshots
If applicable, add screenshots or logs to help explain your problem.
Describe the bug
If the package is added as a dependency of a project without ts-morph, it is not possible to run the tool.
To Reproduce
node.js v22.7.0
yarn v1.22.22
Install the package as a dev dependency
Add a script to generate a client:
Without ts-morph added as a devDependency i get the above error.
OpenAPI spec file
Expected behavior
All necessary dependencies should be part of the package. If you're concerned about locking consumers out of newer versions then you could depend on the version you need or newer e.g. >=23.0.0
Screenshots
If applicable, add screenshots or logs to help explain your problem.
Additional context
commander and glob doesn't seem to be necessary?
The text was updated successfully, but these errors were encountered: