diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index d2ad412..a412072 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -18,7 +18,7 @@ Follow the Installation Guide in the README to ensure a functional local instanc Set this repository as upstream to the forked repository. -`git remote add upstream https://github.com/AnimeThemes/animethemes-api-docs.git` +`git remote add upstream git@github.com:AnimeThemes/animethemes-api-docs.git` Pull upstream changes so that the local main branch is even with the upstream main branch. diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 1e5817d..ea2b720 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -3,7 +3,7 @@ github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: AnimeThemes open_collective: # Replace with a single Open Collective username -ko_fi: animethemes +ko_fi: # Replace with a Ko-fi username tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry liberapay: # Replace with a single Liberapay username diff --git a/.gitignore b/.gitignore index 79442d5..de6381b 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,6 @@ dist/ # VuePress temp directory .temp + +# Cache +docs/.vitepress/cache/ \ No newline at end of file diff --git a/README.md b/README.md index d2ab063..350e114 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
@@ -25,7 +25,7 @@ In the project root directory, start the local development server. `npm run docs:dev` -That's it! The local development server should be running at `localhost:3000`. +That's it! The local development server should be running at `localhost:5173`. ## Contributing diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js index f7534f6..ca29bad 100644 --- a/docs/.vitepress/config.js +++ b/docs/.vitepress/config.js @@ -5,299 +5,604 @@ export default { lang: 'en-US', lastUpdated: true, title: 'AnimeThemes', + titleTemplate: 'AnimeThemes API Documentation', description: 'AnimeThemes API Documentation', + markdown: { + lineNumbers: true + }, themeConfig: { + editLink: { + pattern: 'https://github.com/AnimeThemes/animethemes-api-docs/edit/main/docs/:path' + }, logo: { light: '/logo.svg', dark: '/logo-dark.svg', + alt: 'Logo' }, - siteTitle: 'AnimeThemes API Documentation', + siteTitle: 'AnimeThemes', socialLinks: [ { icon: 'discord', link: 'https://discordapp.com/invite/m9zbVyQ' }, { icon: 'github', link: 'https://github.com/AnimeThemes' }, { icon: 'twitter', link: 'https://twitter.com/AnimeThemesMoe' } ], - sidebar: [ + footer: { + message: 'Released under the MIT License.', + copyright: 'Copyright © AnimeThemes' + }, + search: { + provider: 'local' + }, + nav: [ { - text: 'Introduction', - collapsible: true, + text: 'Intro', items: [ - { text: 'JSON:API', link: '/jsonapi/' }, - { text: 'Rate Limiting', link: '/ratelimiting/' }, - { text: 'Authentication', link: '/authentication/' }, - { text: 'Validation', link: '/validation/' }, + { text: 'Index', link: '/intro/' }, + { text: 'JSON:API', link: '/intro/jsonapi/' }, + { text: 'Rate Limiting', link: '/intro/ratelimiting/' }, + { text: 'Authentication', link: '/intro/authentication/' }, + { text: 'Validation', link: '/intro/validation/' } + ], + }, + { + text: 'Admin', + items: [ + { text: 'Index', link: '/admin/' }, + { text: 'Announcement', link: '/admin/announcement/' }, + { text: 'Dump', link: '/admin/dump/' }, + { text: 'Feature', link: '/admin/feature/' }, + { text: 'Featured Theme', link: '/admin/featuredtheme/' } + ], + }, + { + text: 'Auth', + items: [ + { text: 'Index', link: '/auth/' }, + { text: 'Me', link: '/auth/user/me/' }, + { text: 'Permission', link: '/auth/permission/' }, + { text: 'Role', link: '/auth/role/' }, + { text: 'User', link: '/auth/user/' } + ], + }, + { + text: 'Document', + items: [ + { text: 'Index', link: '/document/' }, + { text: 'Page', link: '/document/page/' } ] }, { - text: 'Anime', - collapsible: true, + text: 'List', items: [ - { text: 'Resource', link: '/anime/' }, - { text: 'Destroy', link: '/anime/destroy/' }, - { text: 'Force Delete', link: '/anime/forceDelete/' }, - { text: 'Index', link: '/anime/index/' }, - { text: 'Show', link: '/anime/show/' }, - { text: 'Store', link: '/anime/store/' }, - { text: 'Update', link: '/anime/update/' }, - { text: 'Year Index', link: '/animeyear/index/' }, - { text: 'Year Show', link: '/animeyear/show/' }, + { text: 'Index', link: '/list/' }, + { text: 'Playlist', link: '/list/playlist/' }, + { text: 'Playlist Image', link: '/list/playlistimage/' }, + { text: 'Playlist Track', link: '/list/playlist/track/' } ] }, { - text: 'Anime Image', - collapsible: true, + text: 'Search', + collapsed: true, items: [ - { text: 'Resource', link: '/animeimage/' }, - { text: 'Destroy', link: '/animeimage/destroy/' }, - { text: 'Index', link: '/animeimage/index/' }, - { text: 'Show', link: '/animeimage/show/' }, - { text: 'Store', link: '/animeimage/store/' }, + { text: 'Search', link: '/search/' } ] }, { - text: 'Anime Synonym', - collapsible: true, + text: 'Wiki', items: [ - { text: 'Resource', link: '/animesynonym/' }, - { text: 'Destroy', link: '/animesynonym/destroy/' }, - { text: 'Force Delete', link: '/animesynonym/forceDelete/' }, - { text: 'Index', link: '/animesynonym/index/' }, - { text: 'Show', link: '/animesynonym/show/' }, - { text: 'Store', link: '/animesynonym/store/' }, - { text: 'Update', link: '/animesynonym/update/' }, + { text: 'Index', link: '/wiki/' }, + { text: 'Anime', link: '/wiki/anime/' }, + { text: 'Anime Image', link: '/wiki/animeimage/' }, + { text: 'Anime Resource', link: '/wiki/animeresource/' }, + { text: 'Anime Series', link: '/wiki/animeseries/' }, + { text: 'Anime Studio', link: '/wiki/animestudio/' }, + { text: 'Anime Synonym', link: '/wiki/animesynonym/' }, + { text: 'Anime Theme', link: '/wiki/animetheme/' }, + { text: 'Anime Theme Entry', link: '/wiki/animethemeentry/' }, + { text: 'Anime Theme Entry Video', link: '/wiki/animethemeentryvideo/' }, + { text: 'Artist', link: '/wiki/artist/' }, + { text: 'Artist Image', link: '/wiki/artistimage/' }, + { text: 'Artist Member', link: '/wiki/artistmember/' }, + { text: 'Artist Resource', link: '/wiki/artistresource/' }, + { text: 'Artist Song', link: '/wiki/artistsong/' }, + { text: 'Audio', link: '/wiki/audio/' }, + { text: 'Image', link: '/wiki/image/' }, + { text: 'Resource', link: '/wiki/resource/' }, + { text: 'Series', link: '/wiki/series/' }, + { text: 'Song', link: '/wiki/song/' }, + { text: 'Song Resource', link: '/wiki/songresource/' }, + { text: 'Studio', link: '/wiki/studio/' }, + { text: 'Studio Image', link: '/wiki/studioimage/' }, + { text: 'Studio Resource', link: '/wiki/studioresource/' }, + { text: 'Video', link: '/wiki/video/' }, + { text: 'Video Script', link: '/wiki/videoscript/' } ] - }, - { - text: 'Anime Theme', - collapsible: true, - items: [ - { text: 'Resource', link: '/animetheme/' }, - { text: 'Destroy', link: '/animetheme/destroy/' }, - { text: 'Force Delete', link: '/animetheme/forceDelete/' }, - { text: 'Index', link: '/animetheme/index/' }, - { text: 'Show', link: '/animetheme/show/' }, - { text: 'Store', link: '/animetheme/store/' }, - { text: 'Update', link: '/animetheme/update/' }, - ] - }, - { - text: 'Anime Theme Entry', - collapsible: true, - items: [ - { text: 'Resource', link: '/animethemeentry/' }, - { text: 'Destroy', link: '/animethemeentry/destroy/' }, - { text: 'Force Delete', link: '/animethemeentry/forceDelete/' }, - { text: 'Index', link: '/animethemeentry/index/' }, - { text: 'Show', link: '/animethemeentry/show/' }, - { text: 'Store', link: '/animethemeentry/store/' }, - { text: 'Update', link: '/animethemeentry/update/' }, - ] - }, - { - text: 'Announcement', - collapsible: true, - items: [ - { text: 'Resource', link: '/announcement/' }, - { text: 'Destroy', link: '/announcement/destroy/' }, - { text: 'Force Delete', link: '/announcement/forceDelete/' }, - { text: 'Index', link: '/announcement/index/' }, - { text: 'Show', link: '/announcement/show/' }, - { text: 'Store', link: '/announcement/store/' }, - { text: 'Update', link: '/announcement/update/' }, - ] - }, - { - text: 'Artist', - collapsible: true, - items: [ - { text: 'Resource', link: '/artist/' }, - { text: 'Destroy', link: '/artist/destroy/' }, - { text: 'Force Delete', link: '/artist/forceDelete/' }, - { text: 'Index', link: '/artist/index/' }, - { text: 'Show', link: '/artist/show/' }, - { text: 'Store', link: '/artist/store/' }, - { text: 'Update', link: '/artist/update/' }, - ] - }, - { - text: 'Audio', - collapsible: true, - items: [ - { text: 'Resource', link: '/audio/' }, - { text: 'Destroy', link: '/audio/destroy/' }, - { text: 'Force Delete', link: '/audio/forceDelete/' }, - { text: 'Index', link: '/audio/index/' }, - { text: 'Show', link: '/audio/show/' }, - { text: 'Store', link: '/audio/store/' }, - { text: 'Update', link: '/audio/update/' }, - ] - }, - { - text: 'Balance', - collapsible: true, - items: [ - { text: 'Resource', link: '/balance/' }, - { text: 'Destroy', link: '/balance/destroy/' }, - { text: 'Force Delete', link: '/balance/forceDelete/' }, - { text: 'Index', link: '/balance/index/' }, - { text: 'Show', link: '/balance/show/' }, - { text: 'Store', link: '/balance/store/' }, - { text: 'Update', link: '/balance/update/' }, - ] - }, - { - text: 'Dump', - collapsible: true, - items: [ - { text: 'Resource', link: '/dump/' }, - { text: 'Destroy', link: '/dump/destroy/' }, - { text: 'Force Delete', link: '/dump/forceDelete/' }, - { text: 'Index', link: '/dump/index/' }, - { text: 'Show', link: '/dump/show/' }, - { text: 'Store', link: '/dump/store/' }, - { text: 'Update', link: '/dump/update/' }, - ] - }, - { - text: 'Feature Flags', - collapsible: true, - items: [ - { text: 'Resource', link: '/config/flags/' }, - { text: 'Show', link: '/config/flags/show/' }, - ] - }, - { - text: 'Global Search', - collapsible: true, - items: [ - { text: 'Search', link: '/search/' }, - ] - }, - { - text: 'Image', - collapsible: true, - items: [ - { text: 'Resource', link: '/image/' }, - { text: 'Destroy', link: '/image/destroy/' }, - { text: 'Force Delete', link: '/image/forceDelete/' }, - { text: 'Index', link: '/image/index/' }, - { text: 'Show', link: '/image/show/' }, - { text: 'Store', link: '/image/store/' }, - { text: 'Update', link: '/image/update/' }, - ] - }, - { - text: 'Page', - collapsible: true, - items: [ - { text: 'Resource', link: '/page/' }, - { text: 'Destroy', link: '/page/destroy/' }, - { text: 'Force Delete', link: '/page/forceDelete/' }, - { text: 'Index', link: '/page/index/' }, - { text: 'Show', link: '/page/show/' }, - { text: 'Store', link: '/page/store/' }, - { text: 'Update', link: '/page/update/' }, - ] - }, - { - text: 'Resource', - collapsible: true, - items: [ - { text: 'Resource', link: '/resource/' }, - { text: 'Destroy', link: '/resource/destroy/' }, - { text: 'Force Delete', link: '/resource/forceDelete/' }, - { text: 'Index', link: '/resource/index/' }, - { text: 'Show', link: '/resource/show/' }, - { text: 'Store', link: '/resource/store/' }, - { text: 'Update', link: '/resource/update/' }, - ] - }, - { - text: 'Series', - collapsible: true, - items: [ - { text: 'Resource', link: '/series/' }, - { text: 'Destroy', link: '/series/destroy/' }, - { text: 'Force Delete', link: '/series/forceDelete/' }, - { text: 'Index', link: '/series/index/' }, - { text: 'Show', link: '/series/show/' }, - { text: 'Store', link: '/series/store/' }, - { text: 'Update', link: '/series/update/' }, - ] - }, - { - text: 'Song', - collapsible: true, - items: [ - { text: 'Resource', link: '/song/' }, - { text: 'Destroy', link: '/song/destroy/' }, - { text: 'Force Delete', link: '/song/forceDelete/' }, - { text: 'Index', link: '/song/index/' }, - { text: 'Show', link: '/song/show/' }, - { text: 'Store', link: '/song/store/' }, - { text: 'Update', link: '/song/update/' }, - ] - }, - { - text: 'Studio', - collapsible: true, - items: [ - { text: 'Resource', link: '/studio/' }, - { text: 'Destroy', link: '/studio/destroy/' }, - { text: 'Force Delete', link: '/studio/forceDelete/' }, - { text: 'Index', link: '/studio/index/' }, - { text: 'Show', link: '/studio/show/' }, - { text: 'Store', link: '/studio/store/' }, - { text: 'Update', link: '/studio/update/' }, - ] - }, - { - text: 'Transaction', - collapsible: true, - items: [ - { text: 'Resource', link: '/transaction/' }, - { text: 'Destroy', link: '/transaction/destroy/' }, - { text: 'Force Delete', link: '/transaction/forceDelete/' }, - { text: 'Index', link: '/transaction/index/' }, - { text: 'Show', link: '/transaction/show/' }, - { text: 'Store', link: '/transaction/store/' }, - { text: 'Update', link: '/transaction/update/' }, - ] - }, - { - text: 'Wiki Config', - collapsible: true, - items: [ - { text: 'Resource', link: '/config/wiki/' }, - { text: 'Show', link: '/config/wiki/show/' }, - ] - }, - { - text: 'Video', - collapsible: true, - items: [ - { text: 'Resource', link: '/video/' }, - { text: 'Destroy', link: '/video/destroy/' }, - { text: 'Force Delete', link: '/video/forceDelete/' }, - { text: 'Index', link: '/video/index/' }, - { text: 'Show', link: '/video/show/' }, - { text: 'Store', link: '/video/store/' }, - { text: 'Update', link: '/video/update/' }, - ] - }, - { - text: 'Video Script', - collapsible: true, - items: [ - { text: 'Resource', link: '/videoscript/' }, - { text: 'Destroy', link: '/videoscript/destroy/' }, - { text: 'Force Delete', link: '/videoscript/forceDelete/' }, - { text: 'Index', link: '/videoscript/index/' }, - { text: 'Show', link: '/videoscript/show/' }, - { text: 'Store', link: '/videoscript/store/' }, - { text: 'Update', link: '/videoscript/update/' }, - ] - }, - ] + } + ], + sidebar: { + '/admin/': [ + { + text: 'Announcement', + collapsed: true, + items: [ + { text: 'Resource', link: '/admin/announcement/' }, + { text: 'Destroy', link: '/admin/announcement/destroy/' }, + { text: 'Force Delete', link: '/admin/announcement/forceDelete/' }, + { text: 'Index', link: '/admin/announcement/index/' }, + { text: 'Restore', link: '/admin/announcement/restore/' }, + { text: 'Show', link: '/admin/announcement/show/' }, + { text: 'Store', link: '/admin/announcement/store/' }, + { text: 'Update', link: '/admin/announcement/update/' } + ] + }, + { + text: 'Dump', + collapsed: true, + items: [ + { text: 'Resource', link: '/admin/dump/' }, + { text: 'Destroy', link: '/admin/dump/destroy/' }, + { text: 'Force Delete', link: '/admin/dump/forceDelete/' }, + { text: 'Index', link: '/admin/dump/index/' }, + { text: 'Restore', link: '/admin/dump/restore/' }, + { text: 'Show', link: '/admin/dump/show/' }, + { text: 'Store', link: '/admin/dump/store/' }, + { text: 'Update', link: '/admin/dump/update/' } + ] + }, + { + text: 'Feature', + collapsed: true, + items: [ + { text: 'Resource', link: '/admin/feature/' }, + { text: 'Index', link: '/admin/feature/index/' }, + { text: 'Show', link: '/admin/feature/show/' }, + { text: 'Update', link: '/admin/feature/update/' } + ] + }, + { + text: 'Featured Theme', + collapsed: true, + items: [ + { text: 'Resource', link: '/admin/featuredtheme/' }, + { text: 'Current', link: '/admin/featuredtheme/current/' }, + { text: 'Destroy', link: '/admin/featuredtheme/destroy/' }, + { text: 'Force Delete', link: '/admin/featuredtheme/forceDelete/' }, + { text: 'Index', link: '/admin/featuredtheme/index/' }, + { text: 'Restore', link: '/admin/featuredtheme/restore/' }, + { text: 'Show', link: '/admin/featuredtheme/show/' }, + { text: 'Store', link: '/admin/featuredtheme/store/' }, + { text: 'Update', link: '/admin/featuredtheme/update/' } + ] + } + ], + '/auth/': [ + { + text: 'Me', + collapsed: true, + items: [ + { text: 'Resource', link: '/auth/user/me/' }, + { text: 'Show', link: '/auth/user/me/show/' }, + { text: 'Playlists', link: '/auth/user/me/playlist/' } + ] + }, + { + text: 'Permission', + collapsed: true, + items: [ + { text: 'Resource', link: '/auth/permission/' } + ] + }, + { + text: 'Role', + collapsed: true, + items: [ + { text: 'Resource', link: '/auth/role/' } + ] + }, + { + text: 'User', + collapsed: true, + items: [ + { text: 'Resource', link: '/auth/user/' } + ] + } + ], + '/document/': [ + { + text: 'Page', + collapsed: true, + items: [ + { text: 'Resource', link: '/document/page/' }, + { text: 'Destroy', link: '/document/page/destroy/' }, + { text: 'Force Delete', link: '/document/page/forceDelete/' }, + { text: 'Index', link: '/document/page/index/' }, + { text: 'Restore', link: '/document/page/restore/' }, + { text: 'Show', link: '/document/page/show/' }, + { text: 'Store', link: '/document/page/store/' }, + { text: 'Update', link: '/document/page/update/' } + ] + } + ], + '/intro/': [ + { + text: 'Introduction', + collapsed: true, + items: [ + { text: 'JSON:API', link: '/intro/jsonapi/' }, + { text: 'Rate Limiting', link: '/intro/ratelimiting/' }, + { text: 'Authentication', link: '/intro/authentication/' }, + { text: 'Validation', link: '/intro/validation/' } + ] + } + ], + '/list/': [ + { + text: 'Playlist', + collapsed: true, + items: [ + { text: 'Resource', link: '/list/playlist/' }, + { text: 'Destroy', link: '/list/playlist/destroy/' }, + { text: 'Force Delete', link: '/list/playlist/forceDelete/' }, + { text: 'Index', link: '/list/playlist/index/' }, + { text: 'Restore', link: '/list/playlist/restore/' }, + { text: 'Show', link: '/list/playlist/show/' }, + { text: 'Store', link: '/list/playlist/store/' }, + { text: 'Update', link: '/list/playlist/update/' }, + { text: 'Forward Index', link: '/list/playlist/forward/' }, + { text: 'Backward Index', link: '/list/playlist/backward/' } + ] + }, + { + text: 'Playlist Image', + collapsed: true, + items: [ + { text: 'Resource', link: '/list/playlistimage/' }, + { text: 'Destroy', link: '/list/playlistimage/destroy/' }, + { text: 'Index', link: '/list/playlistimage/index/' }, + { text: 'Show', link: '/list/playlistimage/show/' }, + { text: 'Store', link: '/list/playlistimage/store/' } + ] + }, + { + text: 'Playlist Track', + collapsed: true, + items: [ + { text: 'Resource', link: '/list/playlist/track/' }, + { text: 'Destroy', link: '/list/playlist/track/destroy/' }, + { text: 'Force Delete', link: '/list/playlist/track/forceDelete/' }, + { text: 'Index', link: '/list/playlist/track/index/' }, + { text: 'Restore', link: '/list/playlist/track/restore/' }, + { text: 'Show', link: '/list/playlist/track/show/' }, + { text: 'Store', link: '/list/playlist/track/store/' }, + { text: 'Update', link: '/list/playlist/track/update/' }, + { text: 'Forward Index', link: '/list/playlist/track/forward/' }, + { text: 'Backward Index', link: '/list/playlist/track/backward/' } + ] + } + ], + '/wiki/': [ + { + text: 'Anime', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/anime/' }, + { text: 'Destroy', link: '/wiki/anime/destroy/' }, + { text: 'Force Delete', link: '/wiki/anime/forceDelete/' }, + { text: 'Index', link: '/wiki/anime/index/' }, + { text: 'Restore', link: '/wiki/anime/restore/' }, + { text: 'Show', link: '/wiki/anime/show/' }, + { text: 'Store', link: '/wiki/anime/store/' }, + { text: 'Update', link: '/wiki/anime/update/' }, + { text: 'Year Index', link: '/wiki/animeyear/index/' }, + { text: 'Year Show', link: '/wiki/animeyear/show/' } + ] + }, + { + text: 'Anime Image', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/animeimage/' }, + { text: 'Destroy', link: '/wiki/animeimage/destroy/' }, + { text: 'Index', link: '/wiki/animeimage/index/' }, + { text: 'Show', link: '/wiki/animeimage/show/' }, + { text: 'Store', link: '/wiki/animeimage/store/' } + ] + }, + { + text: 'Anime Resource', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/animeresource/' }, + { text: 'Destroy', link: '/wiki/animeresource/destroy/' }, + { text: 'Index', link: '/wiki/animeresource/index/' }, + { text: 'Show', link: '/wiki/animeresource/show/' }, + { text: 'Store', link: '/wiki/animeresource/store/' }, + { text: 'Update', link: '/wiki/animeresource/update/' } + ] + }, + { + text: 'Anime Series', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/animeseries/' }, + { text: 'Destroy', link: '/wiki/animeseries/destroy/' }, + { text: 'Index', link: '/wiki/animeseries/index/' }, + { text: 'Show', link: '/wiki/animeseries/show/' }, + { text: 'Store', link: '/wiki/animeseries/store/' } + ] + }, + { + text: 'Anime Studio', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/animestudio/' }, + { text: 'Destroy', link: '/wiki/animestudio/destroy/' }, + { text: 'Index', link: '/wiki/animestudio/index/' }, + { text: 'Show', link: '/wiki/animestudio/show/' }, + { text: 'Store', link: '/wiki/animestudio/store/' } + ] + }, + { + text: 'Anime Synonym', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/animesynonym/' }, + { text: 'Destroy', link: '/wiki/animesynonym/destroy/' }, + { text: 'Force Delete', link: '/wiki/animesynonym/forceDelete/' }, + { text: 'Index', link: '/wiki/animesynonym/index/' }, + { text: 'Restore', link: '/wiki/animesynonym/restore/' }, + { text: 'Show', link: '/wiki/animesynonym/show/' }, + { text: 'Store', link: '/wiki/animesynonym/store/' }, + { text: 'Update', link: '/wiki/animesynonym/update/' } + ] + }, + { + text: 'Anime Theme', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/animetheme/' }, + { text: 'Destroy', link: '/wiki/animetheme/destroy/' }, + { text: 'Force Delete', link: '/wiki/animetheme/forceDelete/' }, + { text: 'Index', link: '/wiki/animetheme/index/' }, + { text: 'Restore', link: '/wiki/animetheme/restore/' }, + { text: 'Show', link: '/wiki/animetheme/show/' }, + { text: 'Store', link: '/wiki/animetheme/store/' }, + { text: 'Update', link: '/wiki/animetheme/update/' } + ] + }, + { + text: 'Anime Theme Entry', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/animethemeentry/' }, + { text: 'Destroy', link: '/wiki/animethemeentry/destroy/' }, + { text: 'Force Delete', link: '/wiki/animethemeentry/forceDelete/' }, + { text: 'Index', link: '/wiki/animethemeentry/index/' }, + { text: 'Restore', link: '/wiki/animethemeentry/restore/' }, + { text: 'Show', link: '/wiki/animethemeentry/show/' }, + { text: 'Store', link: '/wiki/animethemeentry/store/' }, + { text: 'Update', link: '/wiki/animethemeentry/update/' } + ] + }, + { + text: 'Anime Theme Entry Video', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/animethemeentryvideo/' }, + { text: 'Destroy', link: '/wiki/animethemeentryvideo/destroy/' }, + { text: 'Index', link: '/wiki/animethemeentryvideo/index/' }, + { text: 'Show', link: '/wiki/animethemeentryvideo/show/' }, + { text: 'Store', link: '/wiki/animethemeentryvideo/store/' } + ] + }, + { + text: 'Artist', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/artist/' }, + { text: 'Destroy', link: '/wiki/artist/destroy/' }, + { text: 'Force Delete', link: '/wiki/artist/forceDelete/' }, + { text: 'Index', link: '/wiki/artist/index/' }, + { text: 'Restore', link: '/wiki/artist/restore/' }, + { text: 'Show', link: '/wiki/artist/show/' }, + { text: 'Store', link: '/wiki/artist/store/' }, + { text: 'Update', link: '/wiki/artist/update/' } + ] + }, + { + text: 'Artist Image', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/artistimage/' }, + { text: 'Destroy', link: '/wiki/artistimage/destroy/' }, + { text: 'Index', link: '/wiki/artistimage/index/' }, + { text: 'Show', link: '/wiki/artistimage/show/' }, + { text: 'Store', link: '/wiki/artistimage/store/' } + ] + }, + { + text: 'Artist Member', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/artistmember/' }, + { text: 'Destroy', link: '/wiki/artistmember/destroy/' }, + { text: 'Index', link: '/wiki/artistmember/index/' }, + { text: 'Show', link: '/wiki/artistmember/show/' }, + { text: 'Store', link: '/wiki/artistmember/store/' }, + { text: 'Update', link: '/wiki/artistmember/update/' } + ] + }, + { + text: 'Artist Resource', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/artistresource/' }, + { text: 'Destroy', link: '/wiki/artistresource/destroy/' }, + { text: 'Index', link: '/wiki/artistresource/index/' }, + { text: 'Show', link: '/wiki/artistresource/show/' }, + { text: 'Store', link: '/wiki/artistresource/store/' }, + { text: 'Update', link: '/wiki/artistresource/update/' } + ] + }, + { + text: 'Artist Song', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/artistsong/' }, + { text: 'Destroy', link: '/wiki/artistsong/destroy/' }, + { text: 'Index', link: '/wiki/artistsong/index/' }, + { text: 'Show', link: '/wiki/artistsong/show/' }, + { text: 'Store', link: '/wiki/artistsong/store/' }, + { text: 'Update', link: '/wiki/artistsong/update/' } + ] + }, + { + text: 'Audio', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/audio/' }, + { text: 'Destroy', link: '/wiki/audio/destroy/' }, + { text: 'Force Delete', link: '/wiki/audio/forceDelete/' }, + { text: 'Index', link: '/wiki/audio/index/' }, + { text: 'Restore', link: '/wiki/audio/restore/' }, + { text: 'Show', link: '/wiki/audio/show/' }, + { text: 'Store', link: '/wiki/audio/store/' }, + { text: 'Update', link: '/wiki/audio/update/' } + ] + }, + { + text: 'Image', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/image/' }, + { text: 'Destroy', link: '/wiki/image/destroy/' }, + { text: 'Force Delete', link: '/wiki/image/forceDelete/' }, + { text: 'Index', link: '/wiki/image/index/' }, + { text: 'Restore', link: '/wiki/image/restore/' }, + { text: 'Show', link: '/wiki/image/show/' }, + { text: 'Store', link: '/wiki/image/store/' }, + { text: 'Update', link: '/wiki/image/update/' } + ] + }, + { + text: 'Resource', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/resource/' }, + { text: 'Destroy', link: '/wiki/resource/destroy/' }, + { text: 'Force Delete', link: '/wiki/resource/forceDelete/' }, + { text: 'Index', link: '/wiki/resource/index/' }, + { text: 'Restore', link: '/wiki/resource/restore/' }, + { text: 'Show', link: '/wiki/resource/show/' }, + { text: 'Store', link: '/wiki/resource/store/' }, + { text: 'Update', link: '/wiki/resource/update/' } + ] + }, + { + text: 'Series', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/series/' }, + { text: 'Destroy', link: '/wiki/series/destroy/' }, + { text: 'Force Delete', link: '/wiki/series/forceDelete/' }, + { text: 'Index', link: '/wiki/series/index/' }, + { text: 'Restore', link: '/wiki/series/restore/' }, + { text: 'Show', link: '/wiki/series/show/' }, + { text: 'Store', link: '/wiki/series/store/' }, + { text: 'Update', link: '/wiki/series/update/' } + ] + }, + { + text: 'Song', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/song/' }, + { text: 'Destroy', link: '/wiki/song/destroy/' }, + { text: 'Force Delete', link: '/wiki/song/forceDelete/' }, + { text: 'Index', link: '/wiki/song/index/' }, + { text: 'Restore', link: '/wiki/song/restore/' }, + { text: 'Show', link: '/wiki/song/show/' }, + { text: 'Store', link: '/wiki/song/store/' }, + { text: 'Update', link: '/wiki/song/update/' } + ] + }, + { + text: 'Song Resource', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/songresource/' }, + { text: 'Destroy', link: '/wiki/songresource/destroy/' }, + { text: 'Index', link: '/wiki/songresource/index/' }, + { text: 'Show', link: '/wiki/songresource/show/' }, + { text: 'Store', link: '/wiki/songresource/store/' }, + { text: 'Update', link: '/wiki/songresource/update/' } + ] + }, + { + text: 'Studio', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/studio/' }, + { text: 'Destroy', link: '/wiki/studio/destroy/' }, + { text: 'Force Delete', link: '/wiki/studio/forceDelete/' }, + { text: 'Index', link: '/wiki/studio/index/' }, + { text: 'Restore', link: '/wiki/studio/restore/' }, + { text: 'Show', link: '/wiki/studio/show/' }, + { text: 'Store', link: '/wiki/studio/store/' }, + { text: 'Update', link: '/wiki/studio/update/' } + ] + }, + { + text: 'Studio Image', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/studioimage/' }, + { text: 'Destroy', link: '/wiki/studioimage/destroy/' }, + { text: 'Index', link: '/wiki/studioimage/index/' }, + { text: 'Show', link: '/wiki/studioimage/show/' }, + { text: 'Store', link: '/wiki/studioimage/store/' } + ] + }, + { + text: 'Studio Resource', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/studioresource/' }, + { text: 'Destroy', link: '/wiki/studioresource/destroy/' }, + { text: 'Index', link: '/wiki/studioresource/index/' }, + { text: 'Show', link: '/wiki/studioresource/show/' }, + { text: 'Store', link: '/wiki/studioresource/store/' }, + { text: 'Update', link: '/wiki/studioresource/update/' } + ] + }, + { + text: 'Video', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/video/' }, + { text: 'Destroy', link: '/wiki/video/destroy/' }, + { text: 'Force Delete', link: '/wiki/video/forceDelete/' }, + { text: 'Index', link: '/wiki/video/index/' }, + { text: 'Restore', link: '/wiki/video/restore/' }, + { text: 'Show', link: '/wiki/video/show/' }, + { text: 'Store', link: '/wiki/video/store/' }, + { text: 'Update', link: '/wiki/video/update/' } + ] + }, + { + text: 'Video Script', + collapsed: true, + items: [ + { text: 'Resource', link: '/wiki/videoscript/' }, + { text: 'Destroy', link: '/wiki/videoscript/destroy/' }, + { text: 'Force Delete', link: '/wiki/videoscript/forceDelete/' }, + { text: 'Index', link: '/wiki/videoscript/index/' }, + { text: 'Restore', link: '/wiki/videoscript/restore/' }, + { text: 'Show', link: '/wiki/videoscript/show/' }, + { text: 'Store', link: '/wiki/videoscript/store/' }, + { text: 'Update', link: '/wiki/videoscript/update/' } + ] + } + ] + } } } diff --git a/docs/.vitepress/public/favicon.ico b/docs/.vitepress/public/favicon.ico deleted file mode 100644 index d1600f1..0000000 Binary files a/docs/.vitepress/public/favicon.ico and /dev/null differ diff --git a/docs/.vitepress/theme/custom.css b/docs/.vitepress/theme/custom.css new file mode 100644 index 0000000..957b7e4 --- /dev/null +++ b/docs/.vitepress/theme/custom.css @@ -0,0 +1,7 @@ +:root { + --vp-c-brand: #40b8a6; + --vp-c-brand-light: #75ead4; + --vp-c-brand-lighter: #d1fbf1; + --vp-c-brand-dark: #28766e; + --vp-c-brand-darker: #1e4e4a; +} \ No newline at end of file diff --git a/docs/.vitepress/theme/index.js b/docs/.vitepress/theme/index.js new file mode 100644 index 0000000..eaaffeb --- /dev/null +++ b/docs/.vitepress/theme/index.js @@ -0,0 +1,6 @@ +import DefaultTheme from 'vitepress/theme' +import './custom.css' + +export default { + ...DefaultTheme +} \ No newline at end of file diff --git a/docs/announcement/destroy/index.md b/docs/admin/announcement/destroy/index.md similarity index 92% rename from docs/announcement/destroy/index.md rename to docs/admin/announcement/destroy/index.md index 2407ea9..ff62fe3 100644 --- a/docs/announcement/destroy/index.md +++ b/docs/admin/announcement/destroy/index.md @@ -20,6 +20,8 @@ DELETE /announcement/{id} **Roles with Permission**: Admin +**Other Requirements**: Announcement must not be soft deleted + ## Parameters None diff --git a/docs/announcement/forceDelete/index.md b/docs/admin/announcement/forceDelete/index.md similarity index 100% rename from docs/announcement/forceDelete/index.md rename to docs/admin/announcement/forceDelete/index.md diff --git a/docs/admin/announcement/index.md b/docs/admin/announcement/index.md new file mode 100644 index 0000000..baa8df8 --- /dev/null +++ b/docs/admin/announcement/index.md @@ -0,0 +1,55 @@ +--- +title: Announcement +--- + +# Announcement + +--- + +An announcement API resource represents a site-wide message to be broadcasted on the homepage. + +For example, if video streaming is disabled, the site staff may issue a "Video streaming has been disabled!" announcement. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------- | +| id | Integer | No | Yes | The primary key of the resource | +| content | String | No | Yes | The announcement text | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +None + +## Endpoints + +**[Announcement Destroy](/admin/announcement/destroy/)** + +The announcement destroy endpoint soft deletes an announcement and returns the deleted announcement resource. + +**[Announcement Force Delete](/admin/announcement/forceDelete/)** + +The announcement force delete endpoint hard deletes an announcement and returns a confirmation message. + +**[Announcement Index](/admin/announcement/index/)** + +The announcement index endpoint displays a listing of announcement resources. + +**[Announcement Restore](/admin/announcement/restore/)** + +The announcement restore endpoint restores a soft deleted announcement and returns the restored announcement resource. + +**[Announcement Show](/admin/announcement/show/)** + +The announcement show endpoint returns an announcement resource. + +**[Announcement Store](/admin/announcement/store/)** + +The announcement store endpoint creates a new announcement and returns the new announcement resource. + +**[Announcement Update](/admin/announcement/update/)** + +The announcement update endpoint updates an announcement and returns the updated announcement resource. \ No newline at end of file diff --git a/docs/announcement/index/index.md b/docs/admin/announcement/index/index.md similarity index 100% rename from docs/announcement/index/index.md rename to docs/admin/announcement/index/index.md diff --git a/docs/admin/announcement/restore/index.md b/docs/admin/announcement/restore/index.md new file mode 100644 index 0000000..83a9b5c --- /dev/null +++ b/docs/admin/announcement/restore/index.md @@ -0,0 +1,47 @@ +--- +title: Announcement Restore +--- + +# Announcement Restore Endpoint + +The announcement restore endpoint restores a soft deleted announcement and returns the restored announcement resource. + +For example, the `/restore/announcement/1` endpoint will restore the soft deleted announcement of id '1' and return the restored announcement resource. + +## URL + +```sh +PATCH /restore/announcement/{id} +``` + +## Authentication + +**Required Permission**: restore announcement + +**Roles with Permission**: Admin + +**Other Requirements**: Announcement must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + announcement: { + id: id, + content: "content", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/announcement/1 +``` diff --git a/docs/announcement/show/index.md b/docs/admin/announcement/show/index.md similarity index 100% rename from docs/announcement/show/index.md rename to docs/admin/announcement/show/index.md diff --git a/docs/announcement/store/index.md b/docs/admin/announcement/store/index.md similarity index 100% rename from docs/announcement/store/index.md rename to docs/admin/announcement/store/index.md diff --git a/docs/announcement/update/index.md b/docs/admin/announcement/update/index.md similarity index 93% rename from docs/announcement/update/index.md rename to docs/admin/announcement/update/index.md index 39cff6f..53d9a13 100644 --- a/docs/announcement/update/index.md +++ b/docs/admin/announcement/update/index.md @@ -20,6 +20,8 @@ PUT|PATCH /announcement/{id} **Roles with Permission**: Admin +**Other Requirements**: Announcement must not be soft deleted + ## Parameters | Name | Required | Rules | diff --git a/docs/dump/destroy/index.md b/docs/admin/dump/destroy/index.md similarity index 92% rename from docs/dump/destroy/index.md rename to docs/admin/dump/destroy/index.md index 2f134c7..642bf26 100644 --- a/docs/dump/destroy/index.md +++ b/docs/admin/dump/destroy/index.md @@ -20,6 +20,8 @@ DELETE /dump/{id} **Roles with Permission**: Admin +**Other Requirements**: Dump must not be soft deleted + ## Parameters None diff --git a/docs/dump/forceDelete/index.md b/docs/admin/dump/forceDelete/index.md similarity index 100% rename from docs/dump/forceDelete/index.md rename to docs/admin/dump/forceDelete/index.md diff --git a/docs/admin/dump/index.md b/docs/admin/dump/index.md new file mode 100644 index 0000000..da95f45 --- /dev/null +++ b/docs/admin/dump/index.md @@ -0,0 +1,56 @@ +--- +title: Dump +--- + +# Dump + +--- + +A dump API resource represents a database dump of selected tables at a given point in time. + +For example, the animethemes-db-dump-wiki-1663559663946.sql dump represents the database dump of wiki tables performed at 2022-09-19. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :--------------------------------------------| +| id | Integer | No | Yes | The primary key of the resource | +| path | String | No | Yes | The path of the file in storage | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | +| link | String | No | Yes | The URL to download the file from storage | + +## Allowed Include Paths + +None + +## Endpoints + +**[Dump Destroy](/admin/dump/destroy/)** + +The dump destroy endpoint soft deletes a dump and returns the deleted dump resource. + +**[Dump Force Delete](/admin/dump/forceDelete/)** + +The dump force delete endpoint hard deletes a dump and returns a confirmation message. + +**[Dump Index](/admin/dump/index/)** + +The dump index endpoint displays a listing of dump resources. + +**[Dump Restore](/admin/dump/restore/)** + +The dump restore endpoint restores a soft deleted dump and returns the restored dump resource. + +**[Dump Show](/admin/dump/show/)** + +The dump show endpoint returns a dump resource. + +**[Dump Store](/admin/dump/store/)** + +The dump store endpoint creates a new dump and returns the new dump resource. + +**[Dump Update](/admin/dump/update/)** + +The dump update endpoint updates a dump and returns the updated dump resource. \ No newline at end of file diff --git a/docs/dump/index/index.md b/docs/admin/dump/index/index.md similarity index 100% rename from docs/dump/index/index.md rename to docs/admin/dump/index/index.md diff --git a/docs/admin/dump/restore/index.md b/docs/admin/dump/restore/index.md new file mode 100644 index 0000000..b8c13b8 --- /dev/null +++ b/docs/admin/dump/restore/index.md @@ -0,0 +1,48 @@ +--- +title: Dump Restore +--- + +# Dump Restore Endpoint + +The dump restore endpoint restores a soft deleted dump and returns the restored dump resource. + +For example, the `/restore/dump/1` endpoint will restore the soft deleted dump of id '1' and return the restored dump resource. + +## URL + +```sh +PATCH /restore/dump/{id} +``` + +## Authentication + +**Required Permission**: restore dump + +**Roles with Permission**: Admin + +**Other Requirements**: Dump must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + dump: { + id: id, + path: "path", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at", + link: "link + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/dump/1 +``` diff --git a/docs/dump/show/index.md b/docs/admin/dump/show/index.md similarity index 100% rename from docs/dump/show/index.md rename to docs/admin/dump/show/index.md diff --git a/docs/dump/store/index.md b/docs/admin/dump/store/index.md similarity index 100% rename from docs/dump/store/index.md rename to docs/admin/dump/store/index.md diff --git a/docs/dump/update/index.md b/docs/admin/dump/update/index.md similarity index 94% rename from docs/dump/update/index.md rename to docs/admin/dump/update/index.md index d9d10e0..5d6a79f 100644 --- a/docs/dump/update/index.md +++ b/docs/admin/dump/update/index.md @@ -20,6 +20,8 @@ PUT|PATCH /dump/{id} **Roles with Permission**: Admin +**Other Requirements**: Dump must not be soft deleted + ## Parameters | Name | Required | Rules | diff --git a/docs/admin/feature/index.md b/docs/admin/feature/index.md new file mode 100644 index 0000000..3baf836 --- /dev/null +++ b/docs/admin/feature/index.md @@ -0,0 +1,39 @@ +--- +title: Feature +--- + +# Feature + +--- + +A feature API resource represents a feature flag that enable/disable site functionalities. + +For example, the 'allow_discord_notifications' feature enables/disables discord notifications for the configured bot. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :--------------------------------------------| +| id | Integer | No | Yes | The primary key of the resource | +| name | String | No | Yes | The title of the resource | +| value | String | No | Yes | The value of the resource | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | + +## Allowed Include Paths + +None + +## Endpoints + +**[Feature Index](/admin/feature/index/)** + +The feature index endpoint displays a listing of feature resources. + +**[Feature Show](/admin/feature/show/)** + +The feature show endpoint returns a feature resource. + +**[Feature Update](/admin/feature/update/)** + +The feature update endpoint updates a feature and returns the updated feature resource. \ No newline at end of file diff --git a/docs/admin/feature/index/index.md b/docs/admin/feature/index/index.md new file mode 100644 index 0000000..76b7cb7 --- /dev/null +++ b/docs/admin/feature/index/index.md @@ -0,0 +1,84 @@ +--- +title: Feature Index +--- + +# Feature Index Endpoint + +The feature index endpoint returns a listing of feature resources. + +## URL + +```sh +GET /feature/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :-------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for feature resources | +| page[number] | No | The page of feature resources to display | +| page[size] | No | The number of feature resources to display for the current page | +| sort | No | The list of fields to sort the feature resources | + +## Allowed Sort Fields + +| Name | Description | +| :--------: | :------------------------------------------------------------------ | +| id | Sort resources on the primary key | +| name | Sort resources on the title of the resource | +| value | Sort resources on the value of the resource | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | +| random | Sort resources randomly. Ignored if other sort fields are provided. | + +## Filters + +| Name | Description | +| :--------: | :-------------------------------------------------- | +| id | Filter resources on the primary key | +| name | Filter resources on the title of the resource | +| value | Filter resources on the value of the resource | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | + +## Response + +```json +{ + features: [ + { + id: id, + name: "name", + value: "value", + created_at: "created_at", + updated_at: "updated_at" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/feature/ +``` diff --git a/docs/config/wiki/show/index.md b/docs/admin/feature/show/index.md similarity index 55% rename from docs/config/wiki/show/index.md rename to docs/admin/feature/show/index.md index 15db4d7..8257595 100644 --- a/docs/config/wiki/show/index.md +++ b/docs/admin/feature/show/index.md @@ -1,15 +1,15 @@ --- -title: Wiki Show +title: Feature Show --- -# Wiki Show Endpoint +# Feature Show Endpoint -The wiki show endpoint returns the wiki resource. +The feature show endpoint returns a feature resource. ## URL ```sh -GET /config/wiki +GET /feature/{id} ``` ## Authentication @@ -26,8 +26,12 @@ None ```json { - wiki: { - featured_theme: "featured_theme", + feature: { + id: id, + name: "name", + value: "value", + created_at: "created_at", + updated_at: "updated_at" } } ``` @@ -35,5 +39,5 @@ None ## Example ```bash -curl https://api.animethemes.moe/config/wiki +curl https://api.animethemes.moe/feature/1 ``` diff --git a/docs/admin/feature/update/index.md b/docs/admin/feature/update/index.md new file mode 100644 index 0000000..8735b61 --- /dev/null +++ b/docs/admin/feature/update/index.md @@ -0,0 +1,47 @@ +--- +title: Feature Update +--- + +# Feature Update Endpoint + +The feature update endpoint updates a feature and returns the updated feature resource. + +For example, the `/feature/1?value=false` endpoint will update the feature path attribute and return the updated feature resource. + +## URL + +```sh +PUT|PATCH /feature/{id} +``` + +## Authentication + +**Required Permission**: update feature + +**Roles with Permission**: Admin + +## Parameters + +| Name | Required | Rules | +| :-----: | :------: | :---------------- | +| value | No | string, max:192 | + +## Response + +```json +{ + feature: { + id: id, + name: "name", + value: "value", + created_at: "created_at", + updated_at: "updated_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/feature/1 +``` diff --git a/docs/admin/featuredtheme/current/index.md b/docs/admin/featuredtheme/current/index.md new file mode 100644 index 0000000..fe1d462 --- /dev/null +++ b/docs/admin/featuredtheme/current/index.md @@ -0,0 +1,47 @@ +--- +title: Current Featured Theme Show +--- + +# Current Featured Theme Show Endpoint + +The current featured theme show endpoint returns the first featured theme where the current date is between start_at and end_at dates. + +## URL + +```sh +GET /current/featuredtheme/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :-----: | :------: | :------------------------------------------------------ | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters to constrain the inclusion of related resources | +| include | No | Inclusion of related resources | +| sort | No | Sort related resources | + +## Response + +```json +{ + featuredtheme: { + id: id, + start_at: "start_at", + end_at: "end_at", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/current/featuredtheme/ +``` diff --git a/docs/admin/featuredtheme/destroy/index.md b/docs/admin/featuredtheme/destroy/index.md new file mode 100644 index 0000000..b788699 --- /dev/null +++ b/docs/admin/featuredtheme/destroy/index.md @@ -0,0 +1,48 @@ +--- +title: Featured Theme Destroy +--- + +# Featured Theme Destroy Endpoint + +The featured theme destroy endpoint soft deletes a featured theme and returns the deleted featured theme resource. + +For example, the `/featuredtheme/1` endpoint will soft delete the featured theme of id '1' and return the deleted featured theme resource. + +## URL + +```sh +DELETE /featuredtheme/{id} +``` + +## Authentication + +**Required Permission**: delete featured theme + +**Roles with Permission**: Admin + +**Other Requirements**: Featured Theme must not be soft deleted + +## Parameters + +None + +## Response + +```json +{ + featuredtheme: { + id: id, + start_at: "start_at", + end_at: "end_at", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/featuredtheme/1 +``` diff --git a/docs/admin/featuredtheme/forceDelete/index.md b/docs/admin/featuredtheme/forceDelete/index.md new file mode 100644 index 0000000..2fe3344 --- /dev/null +++ b/docs/admin/featuredtheme/forceDelete/index.md @@ -0,0 +1,39 @@ +--- +title: Featured Theme Force Delete +--- + +# Featured Theme Force Delete Endpoint + +The featured theme force delete endpoint hard deletes a featured theme and returns a confirmation message. + +For example, the `/forceDelete/featuredtheme/1` endpoint will hard delete the featured theme of id '1' and return a confirmation message. + +## URL + +```sh +DELETE /forceDelete/featuredtheme/{id} +``` + +## Authentication + +**Required Permission**: force delete featured theme + +**Roles with Permission**: Admin + +## Parameters + +None + +## Response + +```json +{ + message: "The Featured Theme '1' was deleted.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/forceDelete/featuredtheme/1 +``` diff --git a/docs/admin/featuredtheme/index.md b/docs/admin/featuredtheme/index.md new file mode 100644 index 0000000..220b718 --- /dev/null +++ b/docs/admin/featuredtheme/index.md @@ -0,0 +1,65 @@ +--- +title: Featured Theme +--- + +# Featured Theme + +--- + +A featured theme API resource represents a video to be featured on the homepage of the site for a specified amount of time. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :--------------------------------------------| +| id | Integer | No | Yes | The primary key of the resource | +| start_at | Date | No | Yes | The start date of the resource | +| end_at | Date | No | Yes | The end date of the resource | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +* animethemeentry +* animethemeentry.animetheme +* animethemeentry.animetheme.anime +* animethemeentry.animetheme.anime.images +* animethemeentry.animetheme.song +* animethemeentry.animetheme.song.artists +* user +* video + +## Endpoints + +**[Current Featured Theme Show](/admin/featuredtheme/current/)** + +The current featured theme show endpoint returns the first featured theme where the current date is between start_at and end_at dates. + +**[Featured Theme Destroy](/admin/featuredtheme/destroy/)** + +The featured theme destroy endpoint soft deletes a featured theme and returns the deleted featured theme resource. + +**[Featured Theme Force Delete](/admin/featuredtheme/forceDelete/)** + +The featured theme force delete endpoint hard deletes a featured theme and returns a confirmation message. + +**[Featured Theme Index](/admin/featuredtheme/index/)** + +The featured theme index endpoint displays a listing of featured theme resources. + +**[Featured Theme Restore](/admin/featuredtheme/restore/)** + +The featured theme restore endpoint restores a soft deleted featured theme and returns the restored featured theme resource. + +**[Featured Theme Show](/admin/featuredtheme/show/)** + +The featured theme show endpoint returns a featured theme resource. + +**[Featured Theme Store](/admin/featuredtheme/store/)** + +The featured theme store endpoint creates a new featured theme and returns the new featured theme resource. + +**[Featured Theme Update](/admin/featuredtheme/update/)** + +The featured theme update endpoint updates a featured theme and returns the updated featured theme resource. \ No newline at end of file diff --git a/docs/audio/index/index.md b/docs/admin/featuredtheme/index/index.md similarity index 50% rename from docs/audio/index/index.md rename to docs/admin/featuredtheme/index/index.md index 7fe27a6..e76d5e9 100644 --- a/docs/audio/index/index.md +++ b/docs/admin/featuredtheme/index/index.md @@ -1,15 +1,15 @@ --- -title: Audio Index +title: Featured Theme Index --- -# Audio Index Endpoint +# Featured Theme Index Endpoint -The audio index endpoint returns a listing of audio resources. +The featured theme index endpoint returns a listing of featured theme resources whose start date is on or before the current date. ## URL ```sh -GET /audio/ +GET /featuredtheme/ ``` ## Authentication @@ -18,25 +18,21 @@ None ## Parameters -| Name | Required | Description | -| :----------: | :------: | :---------------------------------------------------------------------------- | -| fields | No | Sparse fieldsets for resource types | -| filter | No | Filters for anime resources & constraining the inclusion of related resources | -| include | No | Inclusion of related resources | -| page[number] | No | The page of anime resources to display | -| page[size] | No | The number of anime resources to display for the current page | -| sort | No | The list of fields to sort the resources | +| Name | Required | Description | +| :----------: | :------: | :--------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for featured theme resources | +| page[number] | No | The page of featured theme resources to display | +| page[size] | No | The number of featured theme resources to display for the current page | +| sort | No | The list of fields to sort the featured theme resources | ## Allowed Sort Fields | Name | Description | | :--------: | :------------------------------------------------------------------ | | id | Sort resources on the primary key | -| basename | Sort resources on the basename of the file in storage | -| filename | Sort resources on the filename of the file in storage | -| path | Sort resources on the path of the file in storage | -| size | Sort resources on the size of hte file in storage in Bytes | -| mimetype | Sort resources on the media type of the file in storage | +| start_at | Sort resources on the resource start date | +| end_at | Sort resources on the resource end date | | created_at | Sort resources on the resource creation date | | updated_at | Sort resources on the resource last modified date | | deleted_at | Sort resources on the resource deletion date | @@ -47,11 +43,8 @@ None | Name | Description | | :--------: | :----------------------------------------------------------------- | | id | Filter resources on the primary key | -| basename | Filter resources on the basename of the file in storage | -| filename | Filter resources on the filename of the file in storage | -| path | Filter resources on the path of the file in storage | -| size | Filter resources on the size of hte file in storage in Bytes | -| mimetype | Filter resources on the media type of the file in storage | +| start_at | Filter resources on the resource start date | +| end_at | Filter resources on the resource end date | | created_at | Filter resources on the resource creation date | | updated_at | Filter resources on the resource last modified date | | deleted_at | Filter resources on the resource deletion date | @@ -61,18 +54,14 @@ None ```json { - audios: [ + featuredthemes: [ { id: id, - basename: "basename", - filename: "filename", - path: "path", - size: size, - mimetype: "mimetype", + start_at: "start_at", + end_at: "end_at", created_at: "created_at", updated_at: "updated_at", - deleted_at: "deleted_at", - link: "link" + deleted_at: "deleted_at" }, ... ], @@ -95,5 +84,5 @@ None ## Example ```bash -curl https://api.animethemes.moe/audio/ +curl https://api.animethemes.moe/featuredtheme/ ``` diff --git a/docs/admin/featuredtheme/restore/index.md b/docs/admin/featuredtheme/restore/index.md new file mode 100644 index 0000000..2d0eead --- /dev/null +++ b/docs/admin/featuredtheme/restore/index.md @@ -0,0 +1,48 @@ +--- +title: Featured Theme Restore +--- + +# Featured Theme Restore Endpoint + +The featured theme restore endpoint restores a soft deleted featured theme and returns the restored featured theme resource. + +For example, the `/restore/featuredtheme/1` endpoint will restore the soft deleted featured theme of id '1' and return the restored featured theme resource. + +## URL + +```sh +PATCH /restore/featuredtheme/{id} +``` + +## Authentication + +**Required Permission**: restore featured theme + +**Roles with Permission**: Admin + +**Other Requirements**: Featured Theme must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + featuredtheme: { + id: id, + start_at: "start_at", + end_at: "end_at", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/featuredtheme/1 +``` diff --git a/docs/admin/featuredtheme/show/index.md b/docs/admin/featuredtheme/show/index.md new file mode 100644 index 0000000..19df6a2 --- /dev/null +++ b/docs/admin/featuredtheme/show/index.md @@ -0,0 +1,47 @@ +--- +title: Featured Theme Show +--- + +# Featured Theme Show Endpoint + +The featured theme show endpoint returns a featured theme resource. + +## URL + +```sh +GET /featuredtheme/{id} +``` + +## Authentication + +**Other Requirements**: The start_at date must be on or before the current date + +## Parameters + +| Name | Required | Description | +| :-----: | :------: | :------------------------------------------------------ | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters to constrain the inclusion of related resources | +| include | No | Inclusion of related resources | +| sort | No | Sort related resources | + +## Response + +```json +{ + featuredtheme: { + id: id, + start_at: "start_at", + end_at: "end_at", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/featuredtheme/1 +``` diff --git a/docs/admin/featuredtheme/store/index.md b/docs/admin/featuredtheme/store/index.md new file mode 100644 index 0000000..c12a49c --- /dev/null +++ b/docs/admin/featuredtheme/store/index.md @@ -0,0 +1,52 @@ +--- +title: Featured Theme Store +--- + +# Featured Theme Store Endpoint + +The featured theme store endpoint creates a new featured theme and returns the new featured theme resource. + +For example, the `/featuredtheme?start_at=2023-01-01&end_at=2023-01-07` endpoint will create a new featured theme and return the new featured theme resource. + +## URL + +```sh +POST /featuredtheme +``` + +## Authentication + +**Required Permission**: create featured theme + +**Roles with Permission**: Admin + +## Parameters + +| Name | Required | Rules | +| :------: | :------: | :--------------------------------------------------------------------------------- | +| start_at | Yes | date_format:Y-m-d\TH:i:s.u, before:end_at | +| end_at | Yes | date_format:Y-m-d\TH:i:s.u, after:start_at | +| entry_id | No | integer, Entry ID Exists, Anime Theme Entry Video Exists when video_id is provided | +| user_id | No | integer, User ID Exists | +| video_id | No | integer, Video ID Exists, Anime Theme Entry Video Exists when entry_id is provided | + +## Response + +```json +{ + featuredtheme: { + id: id, + start_at: "start_at", + end_at: "end_at", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/featuredtheme/ +``` diff --git a/docs/admin/featuredtheme/update/index.md b/docs/admin/featuredtheme/update/index.md new file mode 100644 index 0000000..2d47629 --- /dev/null +++ b/docs/admin/featuredtheme/update/index.md @@ -0,0 +1,54 @@ +--- +title: Featured Theme Update +--- + +# Featured Theme Update Endpoint + +The featured theme update endpoint updates a featured theme and returns the updated featured theme resource. + +For example, the `/featuredtheme/1?start_at=2023-01-01` endpoint will update the featured theme start_at attribute and return the updated featured theme resource. + +## URL + +```sh +PUT|PATCH /featuredtheme/{id} +``` + +## Authentication + +**Required Permission**: update featured theme + +**Roles with Permission**: Admin + +**Other Requirements**: Featured Theme must not be soft deleted + +## Parameters + +| Name | Required | Rules | +| :------: | :------: | :--------------------------------------------------------------------------------- | +| start_at | No | date_format:Y-m-d\TH:i:s.u, before:end_at | +| end_at | No | date_format:Y-m-d\TH:i:s.u, after:start_at | +| entry_id | No | integer, Entry ID Exists, Anime Theme Entry Video Exists when video_id is provided | +| user_id | No | integer, User ID Exists | +| video_id | No | integer, Video ID Exists, Anime Theme Entry Video Exists when entry_id is provided | + +## Response + +```json +{ + featuredtheme: { + id: id, + start_at: "start_at", + end_at: "end_at", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/featuredtheme/1 +``` diff --git a/docs/admin/index.md b/docs/admin/index.md new file mode 100644 index 0000000..23c3ee8 --- /dev/null +++ b/docs/admin/index.md @@ -0,0 +1,27 @@ +--- +title: Admin +--- + +# Admin + +--- + +Admin API resources pertain to the administration of the site by the moderation team. + +## Resources + +**[Announcement](/admin/announcement/)** + +An announcement API resource represents a site-wide message to be broadcasted on the homepage. + +**[Dump](/admin/dump/)** + +A dump API resource represents a database dump of selected tables at a given point in time. + +**[Feature](/admin/feature/)** + +A feature API resource represents a feature flag that enable/disable site functionalities. + +**[Featured Theme](/admin/featuredtheme/)** + +A featured theme API resource represents a video to be featured on the homepage of the site for a specified amount of time. \ No newline at end of file diff --git a/docs/anime/index.md b/docs/anime/index.md deleted file mode 100644 index a838ede..0000000 --- a/docs/anime/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Anime ---- - -# Anime - ---- - -An anime API resource represents a production with at least one opening or ending sequence. - -For example, Bakemonogatari is an anime production with five opening sequences and one ending sequence. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :-------------------------------------------------------------- | -| id | Integer | No | The primary key of the resource | -| name | String | No | The primary title of the anime | -| slug | String | No | The URL slug & route key of the resource | -| year | Integer | Yes | The premiere year of the anime | -| season | Enum | Yes | The premiere season of the anime [Winter, Spring, Summer, Fall] | -| synopsis | String | Yes | The brief summary of the anime | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -* animesynonyms -* animethemes -* animethemes.animethemeentries -* animethemes.animethemeentries.videos -* animethemes.animethemeentries.videos.audio -* animethemes.animethemeentries.videos.videoscript -* animethemes.song -* animethemes.song.artists -* images -* resources -* series -* studios - -### Endpoints - -**[Anime Destroy](/anime/destroy/)** - -The anime destroy endpoint soft deletes an anime and returns the deleted anime resource. - -**[Anime Force Delete](/anime/forceDelete/)** - -The anime force delete endpoint hard deletes an anime and returns a confirmation message. - -**[Anime Index](/anime/index/)** - -The anime index endpoint displays a listing of anime resources. - -**[Anime Show](/anime/show/)** - -The anime show endpoint returns an anime resource. - -**[Anime Store](/anime/store/)** - -The anime store endpoint creates a new anime and returns the new anime resource. - -**[Anime Update](/anime/update/)** - -The anime update endpoint updates an anime and returns the updated anime resource. - -**[Year Show](/animeyear/show/)** - -The year show endpoint return a listing of anime resources for a given year grouped by season and ordered by name. - -**[Year Index](/animeyear/index/)** - -The year index endpoint returns a list of unique years from all anime resources. \ No newline at end of file diff --git a/docs/anime/store/index.md b/docs/anime/store/index.md deleted file mode 100644 index 69b0f6b..0000000 --- a/docs/anime/store/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Anime Store ---- - -# Anime Store Endpoint - -The anime store endpoint creates a new anime and returns the new anime resource. - -For example, the `/anime?name=Bakemonogatari&slug=bakemonogatari&year=2009&season=summer` endpoint will create a new Bakemonogatari anime and return the new Bakemonogatari resource. - -## URL - -```sh -POST /anime -``` - -## Authentication - -**Required Permission**: create anime - -**Roles with Permission**: Wiki Editor, Admin - -## Parameters - -| Name | Required | Rules | -| :------: | :------: | :----------------------------------------------------- | -| name | Yes | string, max:192 | -| season | Yes | EnumValue [Winter, Spring, Summer, Fall] | -| slug | Yes | string, max:192, alpha_dash, unique | -| synopsis | No | string, max:65535 | -| year | Yes | integer, digits:4, min:1960, max:[current year + 1] | - -## Response - -```json -{ - anime: { - id: id, - name: "name", - slug: "slug", - year: year, - season: "season", - synopsis: "synopsis", - created_at: "created_at", - updated_at: "updated_at", - deleted_at: "deleted_at" - } -} -``` - -## Example - -```bash -curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/anime/ -``` \ No newline at end of file diff --git a/docs/animeimage/index.md b/docs/animeimage/index.md deleted file mode 100644 index bf5b81c..0000000 --- a/docs/animeimage/index.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Anime Image ---- - -# Anime Image - ---- - -An anime image API resource represents the association between an anime and an image. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :------------------------------------------- | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | - -### Allowed Include Paths - -* anime -* image - -### Endpoints - -**[Anime Image Destroy](/animeimage/destroy/)** - -The anime image destroy endpoint deletes an anime image and returns the deleted anime image resource. - -**[Anime Image Index](/animeimage/index/)** - -The anime image index endpoint displays a listing of anime image resources. - -**[Anime Image Show](/animeimage/show/)** - -The anime image show endpoint returns an anime image resource. - -**[Anime Image Store](/animeimage/store/)** - -The anime image store endpoint creates a new anime image and returns the new anime image resource. \ No newline at end of file diff --git a/docs/animesynonym/index.md b/docs/animesynonym/index.md deleted file mode 100644 index 552d235..0000000 --- a/docs/animesynonym/index.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Anime Synonym ---- - -# Anime Synonym - ---- - -An anime synonym API resource represents an alternate title or common abbreviation for an anime. - -For example, the anime Bakemonogatari has the anime synonym "Monstory". - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :------------------------------------------- | -| id | Integer | No | The primary key of the resource | -| text | String | Yes | The alternate title or common abbreviations | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -* anime - -### Endpoints - -**[Anime Synonym Destroy](/animesynonym/destroy/)** - -The anime synonym destroy endpoint soft deletes an anime synonym and returns the deleted anime synonym resource. - -**[Anime Synonym Force Delete](/animesynonym/forceDelete/)** - -The anime synonym force delete endpoint hard deletes an anime synonym and returns a confirmation message. - -**[Anime Synonym Index](/animesynonym/index/)** - -The anime synonym index endpoint displays a listing of anime synonym resources. - -**[Anime Synonym Show](/animesynonym/show/)** - -The anime synonym show endpoint returns an anime synonym resource. - -**[Anime Synonym Store](/animesynonym/store/)** - -The anime synonym store endpoint creates a new anime synonym and returns the new anime synonym resource. - -**[Anime Synonym Update](/animesynonym/update/)** - -The anime synonym update endpoint updates an anime synonym and returns the updated anime synonym resource. \ No newline at end of file diff --git a/docs/animetheme/index.md b/docs/animetheme/index.md deleted file mode 100644 index 17bb5cd..0000000 --- a/docs/animetheme/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Anime Theme ---- - -# Anime Theme - ---- - -An anime theme API resource represents an OP or ED sequence for an anime. - -For example, the anime Bakemonogatari has five OP anime themes and one ED anime theme. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :--------------------------------------------------------------- | -| id | Integer | No | The primary key of the resource | -| type | Enum | Yes | The type of the sequence [OP, ED] | -| sequence | Integer | Yes | The numeric ordering of the theme | -| group | String | Yes | Used to distinguish sequence belongs to dubs, rebroadcasts, etc. | -| slug | String | No | The URL slug & route key of the resource | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -* anime -* anime.images -* animethemeentries -* animethemeentries.videos -* song -* song.artists - -### Endpoints - -**[Anime Theme Destroy](/animetheme/destroy/)** - -The anime theme destroy endpoint soft deletes an anime theme and returns the deleted anime theme resource. - -**[Anime Theme Force Delete](/animetheme/forceDelete/)** - -The anime theme force delete endpoint hard deletes an anime theme and returns a confirmation message. - -**[Anime Theme Index](/animetheme/index/)** - -The anime theme index endpoint displays a listing of anime theme resources. - -**[Anime Theme Show](/animetheme/show/)** - -The anime theme show endpoint returns an anime theme resource. - -**[Anime Theme Store](/animetheme/store/)** - -The anime theme store endpoint creates a new anime theme and returns the new anime theme resource. - -**[Anime Theme Update](/animetheme/update/)** - -The anime theme update endpoint updates an anime theme and returns the updated anime theme resource. \ No newline at end of file diff --git a/docs/animethemeentry/index.md b/docs/animethemeentry/index.md deleted file mode 100644 index f55c069..0000000 --- a/docs/animethemeentry/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Anime Theme Entry ---- - -# Anime Theme Entry - ---- - -An anime theme entry API resource represents a version of an anime theme. - -For example, the ED theme of the Bakemonogatari anime has three anime theme entries to represent three versions. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :-------------------------------------------------------------- | -| id | Integer | No | The primary key of the resource | -| version | Integer | Yes | The version number of the theme | -| episodes | String | Yes | The episodes that the theme is used for | -| nsfw | Boolean | No | Is not safe for work content included? | -| spoiler | Boolean | No | Is content included that may spoil the viewer? | -| notes | String | Yes | Any additional information for this sequence | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -* animetheme -* animetheme.anime -* videos - -### Endpoints - -**[Anime Theme Entry Destroy](/animethemeentry/destroy/)** - -The anime theme entry destroy endpoint soft deletes an anime theme entry and returns the deleted anime theme entry resource. - -**[Anime Theme Entry Force Delete](/animethemeentry/forceDelete/)** - -The anime theme entry force delete endpoint hard deletes an anime theme entry and returns a confirmation message. - -**[Anime Theme Entry Index](/animethemeentry/index/)** - -The anime theme entry index endpoint displays a listing of anime theme entry resources. - -**[Anime Theme Entry Show](/animethemeentry/show/)** - -The anime theme entry show endpoint returns an anime theme entry resource. - -**[Anime Theme Entry Store](/animethemeentry/store/)** - -The anime theme entry store endpoint creates a new anime theme entry and returns the new anime theme entry resource. - -**[Anime Theme Entry Update](/animethemeentry/update/)** - -The anime theme entry update endpoint updates an anime theme entry and returns the updated anime theme entry resource. \ No newline at end of file diff --git a/docs/announcement/index.md b/docs/announcement/index.md deleted file mode 100644 index b122d4d..0000000 --- a/docs/announcement/index.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Announcement ---- - -# Announcement - ---- - -An announcement API resource represents a site-wide message to be broadcasted on the homepage. - -For example, if video streaming is disabled, the site staff may issue a "Video streaming has been disabled!" announcement. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :--------------------------------------------| -| id | Integer | No | The primary key of the resource | -| content | String | No | The announcement text | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -None - -### Endpoints - -**[Announcement Destroy](/announcement/destroy/)** - -The announcement destroy endpoint soft deletes an announcement and returns the deleted announcement resource. - -**[Announcement Force Delete](/announcement/forceDelete/)** - -The announcement force delete endpoint hard deletes an announcement and returns a confirmation message. - -**[Announcement Index](/announcement/index/)** - -The announcement index endpoint displays a listing of announcement resources. - -**[Announcement Show](/announcement/show/)** - -The announcement show endpoint returns an announcement resource. - -**[Announcement Store](/announcement/store/)** - -The announcement store endpoint creates a new announcement and returns the new announcement resource. - -**[Announcement Update](/announcement/update/)** - -The announcement update endpoint updates an announcement and returns the updated announcement resource. \ No newline at end of file diff --git a/docs/artist/index.md b/docs/artist/index.md deleted file mode 100644 index de3bcd9..0000000 --- a/docs/artist/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Artist ---- - -# Artist - ---- - -An artist API resource represents a musical performer of anime sequences. - -For example, Chiwa Saito is the musical performer of the Bakemonogatari OP1 theme, among many others. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :-------------------------------------------------------------- | -| id | Integer | No | The primary key of the resource | -| name | String | No | The primary title of the artist | -| slug | String | No | The URL slug & route key of the resource | -| as | String | No | Used to distinguish a performance by alias, character or group | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -* groups -* images -* members -* resources -* songs -* songs.animethemes -* songs.animethemes.anime - -### Endpoints - -**[Artist Destroy](/artist/destroy/)** - -The artist destroy endpoint soft deletes an artist and returns the deleted artist resource. - -**[Artist Force Delete](/artist/forceDelete/)** - -The artist force delete endpoint hard deletes an artist and returns a confirmation message. - -**[Artist Index](/artist/index/)** - -The artist index endpoint displays a listing of artist resources. - -**[Artist Show](/artist/show/)** - -The artist show endpoint returns an artist resource. - -**[Artist Store](/artist/store/)** - -The artist store endpoint creates a new artist and returns the new artist resource. - -**[Artist Update](/artist/update/)** - -The artist update endpoint updates an artist and returns the updated artist resource. \ No newline at end of file diff --git a/docs/audio/index.md b/docs/audio/index.md deleted file mode 100644 index 0f7922e..0000000 --- a/docs/audio/index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Audio ---- - -# Audio - ---- - -An audio API resource represents the audio track of a video. - -For example, the audio Bakemonogatari-OP1.ogg represents the audio track of the Bakemonogatari-OP1.webm video. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :------------------------------------------- | -| id | Integer | No | The primary key of the resource | -| basename | String | No | The basename of the file in storage | -| filename | String | No | The filename of the file in storage | -| path | String | No | The path of the file in storage | -| size | Integer | No | The size of the file in storage in Bytes | -| mimetype | String | No | The media type of the file in storage | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | -| link | String | No | The URL to stream the file from storage | - -### Allowed Include Paths - -* videos - -### Endpoints - -**[Audio Destroy](/audio/destroy/)** - -The audio destroy endpoint soft deletes an audio and returns the deleted audio resource. - -**[Audio Force Delete](/audio/forceDelete/)** - -The audio force delete endpoint hard deletes an audio and returns a confirmation message. - -**[Audio Index](/audio/index/)** - -The audio index endpoint displays a listing of audio resources. - -**[Audio Show](/audio/show/)** - -The audio show endpoint returns an audio resource. - -**[Audio Store](/audio/store/)** - -The audio store endpoint creates a new audio and returns the new audio resource. - -**[Audio Update](/audio/update/)** - -The audio update endpoint updates an audio and returns the updated audio resource. \ No newline at end of file diff --git a/docs/auth/index.md b/docs/auth/index.md new file mode 100644 index 0000000..7fced6b --- /dev/null +++ b/docs/auth/index.md @@ -0,0 +1,27 @@ +--- +title: Auth +--- + +# Auth + +--- + +Auth API resources pertain to the authorization of actions on the site. + +## Resources + +**[Me](/auth/user/me/)** + +The "Me" namespace is a collection of endpoints that pertain to the currently authenticated user. + +**[Permission](/auth/permission/)** + +A permission API resource represents an assignable label for users and roles that authorizes a particular action in AnimeThemes. + +**[Role](/auth/role/)** + +A role API resource represents an assignable label for users that provides a configured group of permissions. + +**[User](/auth/user/)** + +A user API resource represents an AnimeThemes account. \ No newline at end of file diff --git a/docs/auth/permission/index.md b/docs/auth/permission/index.md new file mode 100644 index 0000000..b0e75b9 --- /dev/null +++ b/docs/auth/permission/index.md @@ -0,0 +1,19 @@ +--- +title: Permission +--- + +# Permission + +--- + +A permission API resource represents an assignable label for users and roles that authorizes a particular action in AnimeThemes. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------- | +| id | Integer | No | Yes | The primary key of the resource | +| name | String | No | Yes | The label of the resource | +| guard_name | String | No | Yes | The authentication guard of the resource | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | \ No newline at end of file diff --git a/docs/auth/role/index.md b/docs/auth/role/index.md new file mode 100644 index 0000000..2b10485 --- /dev/null +++ b/docs/auth/role/index.md @@ -0,0 +1,22 @@ +--- +title: Role +--- + +# Role + +--- + +A role API resource represents an assignable label for users that provides a configured group of permissions. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------------------------------------------------- | +| id | Integer | No | Yes | The primary key of the resource | +| name | String | No | Yes | The label of the resource | +| guard_name | String | No | Yes | The authentication guard of the resource | +| default | Boolean | No | Yes | Is the role assigned on account verification? | +| color | String | Yes | Yes | The hex representation of the color used to distinguish the resource | +| priority | Integer | Yes | Yes | The weight assigned to the resource, where higher values correspond to higher priority | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | \ No newline at end of file diff --git a/docs/auth/user/index.md b/docs/auth/user/index.md new file mode 100644 index 0000000..fdb892b --- /dev/null +++ b/docs/auth/user/index.md @@ -0,0 +1,19 @@ +--- +title: User +--- + +# User + +--- + +A user API resource represents an AnimeThemes account. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :--------------------------- | +| name | String | No | Yes | The username of the resource | + +## Allowed Include Paths + +* playlists \ No newline at end of file diff --git a/docs/auth/user/me/index.md b/docs/auth/user/me/index.md new file mode 100644 index 0000000..23c0a7a --- /dev/null +++ b/docs/auth/user/me/index.md @@ -0,0 +1,38 @@ +--- +title: Me +--- + +# Me + +--- + +The "Me" namespace is a collection of endpoints that pertain to the currently authenticated user. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :---------------------: | :-----: | :------: | :-----: | :-------------------------------------------------- | +| id | Integer | No | Yes | The primary key of the resource | +| name | String | No | Yes | The username of the resource | +| email | String | No | Yes | The email address of the resource | +| email_verified_at | Date | Yes | Yes | The date that the user verified their email address | +| two_factor_confirmed_at | Date | Yes | Yes | The date that the user confirmed 2FA | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +* permissions +* playlists +* roles + +## Endpoints + +**[My Show](/auth/user/me/show/)** + +The my show endpoint returns the user resource for the currently authenticated user. + +**[My Playlists](/auth/user/me/playlist/)** + +The my playlists endpoint returns a listing of playlist resources owned by the currently authenticated user. \ No newline at end of file diff --git a/docs/auth/user/me/playlist/index.md b/docs/auth/user/me/playlist/index.md new file mode 100644 index 0000000..28e95c1 --- /dev/null +++ b/docs/auth/user/me/playlist/index.md @@ -0,0 +1,90 @@ +--- +title: My Playlists +--- + +# My Playlists Endpoint + +The my playlists endpoint returns a listing of playlist resources owned by the currently authenticated user. + +## URL + +```sh +GET /me/playlist/ +``` + +## Authentication + +**Required Permission**: view playlist + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :------------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for playlist resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of playlist resources to display | +| page[size] | No | The number of playlist resources to display for the current page | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :--------: | :------------------------------------------------------------------ | +| id | Sort resources on the primary key | +| name | Sort resources on the title of the playlist | +| visibility | Sort resources on the visibility state of the playlist | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | +| deleted_at | Sort resources on the resource deletion date | +| random | Sort resources randomly. Ignored if other sort fields are provided. | + +## Filters + +| Name | Description | +| :--------: | :----------------------------------------------------------------------------------- | +| id | Filter resources on the primary key | +| name | Filter resources on the title of the playlist | +| visibility | Filter resources on the visibility state of the playlist [Public, Private, Unlisted] | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| deleted_at | Filter resources on the resource deletion date | +| trashed | Filter resources on trashed (deleted) status [With, Without, Only] | +| has | Filter resources on relations within allowed include paths | + +## Response + +```json +{ + playlists: [ + { + id: id, + name: "name", + visibility: "visibility", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl -H "Authorization: Bearer {token}" https://api.animethemes.moe/me/playlist/ +``` \ No newline at end of file diff --git a/docs/auth/user/me/show/index.md b/docs/auth/user/me/show/index.md new file mode 100644 index 0000000..629e67e --- /dev/null +++ b/docs/auth/user/me/show/index.md @@ -0,0 +1,49 @@ +--- +title: My Show +--- + +# My Show Endpoint + +The my show endpoint returns the user resource for the currently authenticated user. + +## URL + +```sh +GET /me/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :-----: | :------: | :------------------------------------------------------ | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters to constrain the inclusion of related resources | +| include | No | Inclusion of related resources | +| sort | No | Sort related resources | + +## Response + +```json +{ + user: { + id: id, + name: "name", + email: "email", + email_verified_at: "email_verified_at", + two_factor_confirmed_at: "two_factor_confirmed_at", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -H "Authorization: Bearer {token}" https://api.animethemes.moe/me +``` \ No newline at end of file diff --git a/docs/authentication/index.md b/docs/authentication/index.md deleted file mode 100644 index 89123a3..0000000 --- a/docs/authentication/index.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Authentication ---- - -# Authentication - ---- - -The AnimeThemes API uses token-based authentication to grant the user access to protected actions. - -## Token Authentication - -The AnimeThemes API uses the [**Bearer authentication scheme**](https://www.rfc-editor.org/rfc/rfc6750.html) to validate requests for protected actions. - -The `Bearer` token in the `Authorization` request header must correspond to a valid API token. - -```sh -curl -X POST "https://api.animethemes.moe/{protected action}" - -H "Accept: application/json" - -H "Authorization: Bearer {token}" -``` - -## Status Codes - -The AnimeThemes API uses framework-default response status codes for authenticated requests. - -| Code | Description | Examples | -| :--: | :--------------------------------------------------- | :----------------: | -| 200 | OK - request succeeded | DELETE, PATCH, PUT | -| 201 | Created - new resource was created | POST | -| 401 | Unauthorized - invalid or no authentication provided | All | - -## Managing Tokens - -API tokens are managed from the API Tokens Screen within the AnimeThemes application. - -### Creating Tokens - -Log in to AnimeThemes. The Dashboard Screen will be displayed with a Navigation Bar. - -Click the User Menu in the top-right corner of the Navigation Bar. The API Tokens Option will be displayed. - -Select the API Tokens Option. The API Tokens Screen will be displayed. - -On the API Tokens Screen, the Create API Token Form will be displayed. - -On the Create API Token Form, specify a Token Name. - -On the Create API Token Form, click the Create Button. The API Token Modal will be displayed. - -On the API Token Modal, copy and store the token. - -On the API Token Modal, click the Close Button. The Modal will be dismissed and the token will be displayed in the Manage API Tokens Form. - -### Deleting Tokens - -On the Manage API Tokens Form, click the Delete Link. The Delete API Token Modal will be displayed. - -On the Delete API Token Modal, click the Delete Button. The Delete API Token Modal will be dismissed and the API token will be removed from the Manage API Tokens Form. - -## Expiration - -API Tokens are configured to expire after **one year**. - -Expired API Tokens are automatically pruned from AnimeThemes once a day. \ No newline at end of file diff --git a/docs/balance/destroy/index.md b/docs/balance/destroy/index.md deleted file mode 100644 index a628c54..0000000 --- a/docs/balance/destroy/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Balance Destroy ---- - -# Balance Destroy Endpoint - -The balance destroy endpoint soft deletes a balance and returns the deleted balance resource. - -For example, the `/balance/1` endpoint will soft delete the balance of id '1' and return the deleted balance resource. - -## URL - -```sh -DELETE /balance/{id} -``` - -## Authentication - -**Required Permission**: delete balance - -**Roles with Permission**: Admin - -## Parameters - -None - -## Response - -```json -{ - balance: { - id: id, - date: "date", - service: "service", - frequency: "frequency", - usage: usage, - month_to_date_balance: month_to_date_balance, - created_at: "created_at", - updated_at: "updated_at", - deleted_at: "deleted_at" - } -} -``` - -## Example - -```bash -curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/balance/1 -``` diff --git a/docs/balance/forceDelete/index.md b/docs/balance/forceDelete/index.md deleted file mode 100644 index df24446..0000000 --- a/docs/balance/forceDelete/index.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Balance Force Delete ---- - -# Balance Force Delete Endpoint - -The balance force delete endpoint hard deletes a balance and returns a confirmation message. - -For example, the `/forceDelete/balance/1` endpoint will hard delete the balance of id '1' and return a confirmation message. - -## URL - -```sh -DELETE /forceDelete/balance/{id} -``` - -## Authentication - -**Required Permission**: force delete balance - -**Roles with Permission**: Admin - -## Parameters - -None - -## Response - -```json -{ - message: "The Balance 'AWS 2022-06-01' was deleted.", -} -``` - -## Example - -```bash -curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/forceDelete/balance/1 -``` diff --git a/docs/balance/index.md b/docs/balance/index.md deleted file mode 100644 index e24ea9a..0000000 --- a/docs/balance/index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Balance ---- - -# Balance - ---- - -A balance API resource represents an account balance against usage or upcoming charges for the given month. - -### Fields - -| Name | Type | Nullable | Description | -| :-------------------: | :-----: | :------: | :------------------------------------------------------------------------------------------------------- | -| id | Integer | No | The primary key of the resource | -| date | Date | No | The given month that the account balance applies to | -| service | Enum | No | The service that is billing AnimeThemes [Other, DigitalOcean, AWS, Hover, WalkerServers] | -| frequency | Enum | No | The frequency that AnimeThemes is billed by the service [Once, Annually, Biannually, Quarterly, Monthly] | -| usage | Decimal | No | The amount of services consumed by AnimeThemes in the billing period | -| month_to_date_balance | Decimal | No | The balance of the AnimeThemes account with consideration to usage | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -None - -### Endpoints - -**[Balance Destroy](/balance/destroy/)** - -The balance destroy endpoint soft deletes a balance and returns the deleted balance resource. - -**[Balance Force Delete](/balance/forceDelete/)** - -The balance force delete endpoint hard deletes a balance and returns a confirmation message. - -**[Balance Index](/balance/index/)** - -The balance index endpoint displays a listing of balance resources. - -**[Balance Show](/balance/show/)** - -The balance show endpoint returns a balance resource. - -**[Balance Store](/balance/store/)** - -The balance store endpoint creates a new balance and returns the new balance resource. - -**[Balance Update](/balance/update/)** - -The balance update endpoint updates a balance and returns the updated balance resource. \ No newline at end of file diff --git a/docs/balance/index/index.md b/docs/balance/index/index.md deleted file mode 100644 index a4e7d5c..0000000 --- a/docs/balance/index/index.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Balance Index ---- - -# Balance Index Endpoint - -The balance index endpoint returns a listing of balance resources. - -## URL - -```sh -GET /balance/ -``` - -## Authentication - -None - -## Parameters - -| Name | Required | Description | -| :----------: | :------: | :---------------------------------------------------------------------------- | -| fields | No | Sparse fieldsets for resource types | -| filter | No | Filters for balance resources & constraining the inclusion of related resources | -| page[number] | No | The page of balance resources to display | -| page[size] | No | The number of balance resources to display for the current page | -| sort | No | The list of fields to sort the balance resources | - -## Allowed Sort Fields - -| Name | Description | -| :-------------------: | :------------------------------------------------------------------ | -| id | Sort resources on the primary key | -| date | Sort resources on the month that the balance applies to | -| service | Sort resources on the service that is billing AnimeThemes | -| frequency | Sort resources on the frequency that AnimeThemes is billed | -| usage | Sort resources on the consumption of AnimeThemes in the period | -| month_to_date_balance | Sort resources on the balance of the AnimeThemes account | -| created_at | Sort resources on the resource creation date | -| updated_at | Sort resources on the resource last modified date | -| deleted_at | Sort resources on the resource deletion date | -| random | Sort resources randomly. Ignored if other sort fields are provided. | - -## Filters - -| Name | Description | -| :-------------------: | :----------------------------------------------------------------- | -| id | Filter resources on the primary key | -| date | Filter resources on the month that the balance applies to | -| service | Filter resources on the service that is billing AnimeThemes | -| frequency | Filter resources on the frequency that AnimeThemes is billed | -| usage | Filter resources on the consumption of AnimeThemes in the period | -| month_to_date_balance | Filter resources on the balance of the AnimeThemes account | -| created_at | Filter resources on the resource creation date | -| updated_at | Filter resources on the resource last modified date | -| deleted_at | Filter resources on the resource deletion date | -| trashed | Filter resources on trashed (deleted) status [With, Without, Only] | - -## Response - -```json -{ - balances: [ - { - id: id, - date: "date", - service: "service", - frequency: "frequency", - usage: usage, - month_to_date_balance: month_to_date_balance, - created_at: "created_at", - updated_at: "updated_at", - deleted_at: "deleted_at" - }, - ... - ], - links: { - first: "first", - last: "last", - prev: "prev", - next: "next" - }, - meta: { - current_page: current_page, - from: from, - path: "path", - per_page: per_page, - to: to - } -} -``` - -## Example - -```bash -curl https://api.animethemes.moe/balance/ -``` diff --git a/docs/balance/show/index.md b/docs/balance/show/index.md deleted file mode 100644 index 717b506..0000000 --- a/docs/balance/show/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Balance Show ---- - -# Balance Show Endpoint - -The balance show endpoint returns a balance resource. - -## URL - -```sh -GET /balance/{id} -``` - -## Authentication - -None - -## Parameters - -| Name | Required | Description | -| :-----: | :------: | :------------------------------------------------------ | -| fields | No | Sparse fieldsets for resource types | - -## Response - -```json -{ - balance: { - id: id, - date: "date", - service: "service", - frequency: "frequency", - usage: usage, - month_to_date_balance: month_to_date_balance, - created_at: "created_at", - updated_at: "updated_at", - deleted_at: "deleted_at" - } -} -``` - -## Example - -```bash -curl https://api.animethemes.moe/balance/1 -``` diff --git a/docs/balance/store/index.md b/docs/balance/store/index.md deleted file mode 100644 index 4d2f1a6..0000000 --- a/docs/balance/store/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Balance Store ---- - -# Balance Store Endpoint - -The balance store endpoint creates a new balance and returns the new balance resource. - -For example, the `/balance?date=2022-06-01&service=AWS&frequency=Monthly&usage=10.00&month_to_date_balance=50.00` endpoint will create a new balance and return the new balance resource. - -## URL - -```sh -POST /balance -``` - -## Authentication - -**Required Permission**: create balance - -**Roles with Permission**: Admin - -## Parameters - -| Name | Required | Rules | -| :-------------------: | :------: | :--------------------------------------------------------- | -| date | Yes | date_format:Y-m-d | -| service | Yes | EnumValue [Other, DigitalOcean, AWS, Hover, WalkerServers] | -| frequency | Yes | EnumValue [Once, Annually, Biannually, Quarterly, Monthly] | -| usage | Yes | regex:/^\-?\d+(\.\d{1,2})?$/ | -| month_to_date_balance | Yes | regex:/^\-?\d+(\.\d{1,2})?$/ | - -## Response - -```json -{ - balance: { - id: id, - date: "date", - service: "service", - frequency: "frequency", - usage: usage, - month_to_date_balance: month_to_date_balance, - created_at: "created_at", - updated_at: "updated_at", - deleted_at: "deleted_at" - } -} -``` - -## Example - -```bash -curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/balance/ -``` diff --git a/docs/balance/update/index.md b/docs/balance/update/index.md deleted file mode 100644 index f80ed4d..0000000 --- a/docs/balance/update/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Balance Update ---- - -# Balance Update Endpoint - -The balance update endpoint updates a balance and returns the updated balance resource. - -For example, the `/balance/1?usage=10.00` endpoint will update the balance usage attribute and return the updated balance resource. - -## URL - -```sh -PUT|PATCH /balance/{id} -``` - -## Authentication - -**Required Permission**: update balance - -**Roles with Permission**: Admin - -## Parameters - -| Name | Required | Rules | -| :-------------------: | :------: | :--------------------------------------------------------- | -| date | No | date_format:Y-m-d | -| service | No | EnumValue [Other, DigitalOcean, AWS, Hover, WalkerServers] | -| frequency | No | EnumValue [Once, Annually, Biannually, Quarterly, Monthly] | -| usage | No | regex:/^\-?\d+(\.\d{1,2})?$/ | -| month_to_date_balance | No | regex:/^\-?\d+(\.\d{1,2})?$/ | - -## Response - -```json -{ - balance: { - id: id, - date: "date", - service: "service", - frequency: "frequency", - usage: usage, - month_to_date_balance: month_to_date_balance, - created_at: "created_at", - updated_at: "updated_at", - deleted_at: "deleted_at" - } -} -``` - -## Example - -```bash -curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/balance/1 -``` diff --git a/docs/config/flags/index.md b/docs/config/flags/index.md deleted file mode 100644 index a6e33b9..0000000 --- a/docs/config/flags/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Flags ---- - -# Flags - ---- - -The config flags API resource contains the list of feature flags that enable/disable site functionalities. - -### Fields - -| Name | Type | Nullable | Description | -| :-------------------------: | :-----: | :------: | :---------------------------------------------------------- | -| allow_video_streams | Boolean | No | Enable/Disable video streaming | -| allow_audio_streams | Boolean | No | Enable/Disable audio streaming | -| allow_discord_notifications | Boolean | No | Enable/Disable discord notifications for the configured bot | -| allow_view_recording | Boolean | No | Enable/Disable the recording of views for view counts | -| allow_dump_downloading | Boolean | No | Enable/Disable database dump downloading | -| allow_script_downloading | Boolean | No | Enable/Disable encoding script downloading | - -### Allowed Include Paths - -None - -### Endpoints - -**[Flags Show](/config/flags/show/)** - -The Flags Show endpoint return the flags resource. \ No newline at end of file diff --git a/docs/config/flags/show/index.md b/docs/config/flags/show/index.md deleted file mode 100644 index 1568237..0000000 --- a/docs/config/flags/show/index.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Flags Show ---- - -# Flags Show Endpoint - -The flags show endpoint returns the flags resource. - -## URL - -```sh -GET /config/flags -``` - -## Authentication - -None - -## Parameters - -| Name | Required | Description | -| :-----: | :------: | :------------------------------------------------------ | -| fields | No | Sparse fieldsets for resource types | - -## Response - -```json -{ - flags: { - allow_video_streams: allow_video_streams, - allow_audio_streams: allow_audio_streams, - allow_discord_notifications: allow_discord_notifications, - allow_view_recording: allow_view_recording, - allow_dump_downloading: allow_dump_downloading, - allow_script_downloading: allow_script_downloading - } -} -``` - -## Example - -```bash -curl https://api.animethemes.moe/config/flags -``` diff --git a/docs/config/wiki/index.md b/docs/config/wiki/index.md deleted file mode 100644 index fbf5d96..0000000 --- a/docs/config/wiki/index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Wiki ---- - -# Wiki - ---- - -The config wiki API resource contains the list of settings that impact animethemes-web functionalities. - -### Fields - -| Name | Type | Nullable | Description | -| :------------: | :----: | :------: | :-------------------------------------------------------------------- | -| featured_theme | String | Yes | The theme played in the background on the homepage of the wiki client | - -### Allowed Include Paths - -None - -### Endpoints - -**[Wiki Show](/config/wiki/show/)** - -The Wiki Show endpoint return the wiki resource. \ No newline at end of file diff --git a/docs/document/index.md b/docs/document/index.md new file mode 100644 index 0000000..40d1a08 --- /dev/null +++ b/docs/document/index.md @@ -0,0 +1,15 @@ +--- +title: Document +--- + +# Document + +--- + +Document API resources pertain to site documentation. + +## Resources + +**[Page](/document/page/)** + +A page API resource represents a static markdown page used for guides and other documentation. \ No newline at end of file diff --git a/docs/page/destroy/index.md b/docs/document/page/destroy/index.md similarity index 93% rename from docs/page/destroy/index.md rename to docs/document/page/destroy/index.md index d5d604c..a60fcd9 100644 --- a/docs/page/destroy/index.md +++ b/docs/document/page/destroy/index.md @@ -20,6 +20,8 @@ DELETE /page/{slug} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Page must not be soft deleted + ## Parameters None diff --git a/docs/page/forceDelete/index.md b/docs/document/page/forceDelete/index.md similarity index 100% rename from docs/page/forceDelete/index.md rename to docs/document/page/forceDelete/index.md diff --git a/docs/document/page/index.md b/docs/document/page/index.md new file mode 100644 index 0000000..243b319 --- /dev/null +++ b/docs/document/page/index.md @@ -0,0 +1,57 @@ +--- +title: Page +--- + +# Page + +--- + +A page API resource represents a static markdown page used for guides and other documentation. + +For example, the 'encoding/audio_normalization' page represents the documentation for audio normalization. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :--------------------------------------------| +| id | Integer | No | Yes | The primary key of the resource | +| name | String | No | Yes | The primary title of the page | +| slug | String | No | Yes | The URL slug & route key of the resource | +| body | String | No | No | The body content of the resource | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +None + +## Endpoints + +**[Page Destroy](/document/page/destroy/)** + +The page destroy endpoint soft deletes a page and returns the deleted page resource. + +**[Page Force Delete](/document/page/forceDelete/)** + +The page force delete endpoint hard deletes a page and returns a confirmation message. + +**[Page Index](/document/page/index/)** + +The page index endpoint displays a listing of page resources. + +**[Page Restore](/document/page/restore/)** + +The page restore endpoint restores a soft deleted page and returns the restored page resource. + +**[Page Show](/document/page/show/)** + +The page show endpoint returns a page resource. + +**[Page Store](/document/page/store/)** + +The page store endpoint creates a new page and returns the new page resource. + +**[Page Update](/document/page/update/)** + +The page update endpoint updates a page and returns the updated page resource. \ No newline at end of file diff --git a/docs/page/index/index.md b/docs/document/page/index/index.md similarity index 100% rename from docs/page/index/index.md rename to docs/document/page/index/index.md diff --git a/docs/document/page/restore/index.md b/docs/document/page/restore/index.md new file mode 100644 index 0000000..0044b2e --- /dev/null +++ b/docs/document/page/restore/index.md @@ -0,0 +1,49 @@ +--- +title: Page Restore +--- + +# Page Restore Endpoint + +The page restore endpoint restores a soft deleted page and returns the restored page resource. + +For example, the `/restore/page/encoding` endpoint will restore the soft deleted Encoding page and return the restored Encoding resource. + +## URL + +```sh +PATCH /restore/page/{slug} +``` + +## Authentication + +**Required Permission**: restore page + +**Roles with Permission**: Wiki Editor, Admin + +**Other Requirements**: Page must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + page: { + id: id, + name: "name", + slug: "slug", + body: "body", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/page/encoding +``` diff --git a/docs/page/show/index.md b/docs/document/page/show/index.md similarity index 100% rename from docs/page/show/index.md rename to docs/document/page/show/index.md diff --git a/docs/page/store/index.md b/docs/document/page/store/index.md similarity index 100% rename from docs/page/store/index.md rename to docs/document/page/store/index.md diff --git a/docs/page/update/index.md b/docs/document/page/update/index.md similarity index 95% rename from docs/page/update/index.md rename to docs/document/page/update/index.md index 55c528d..69529dd 100644 --- a/docs/page/update/index.md +++ b/docs/document/page/update/index.md @@ -20,6 +20,8 @@ PUT|PATCH /page/{slug} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Page must not be soft deleted + ## Parameters | Name | Required | Rules | diff --git a/docs/dump/index.md b/docs/dump/index.md deleted file mode 100644 index 3a29d1f..0000000 --- a/docs/dump/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Dump ---- - -# Dump - ---- - -A dump API resource represents a database dump of selected tables at a given point in time. - -For example, the animethemes-db-dump-wiki-1663559663946.sql dump represents the database dump of wiki tables performed at 2022-09-19. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :--------------------------------------------| -| id | Integer | No | The primary key of the resource | -| path | String | No | The path of the file in storage | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | -| link | String | No | The URL to download the file from storage | - -### Allowed Include Paths - -None - -### Endpoints - -**[Dump Destroy](/dump/destroy/)** - -The dump destroy endpoint soft deletes a dump and returns the deleted dump resource. - -**[Dump Force Delete](/dump/forceDelete/)** - -The dump force delete endpoint hard deletes a dump and returns a confirmation message. - -**[Dump Index](/dump/index/)** - -The dump index endpoint displays a listing of dump resources. - -**[Dump Show](/dump/show/)** - -The dump show endpoint returns a dump resource. - -**[Dump Store](/dump/store/)** - -The dump store endpoint creates a new dump and returns the new dump resource. - -**[Dump Update](/dump/update/)** - -The dump update endpoint updates a dump and returns the updated dump resource. \ No newline at end of file diff --git a/docs/image/index.md b/docs/image/index.md deleted file mode 100644 index 2bb049b..0000000 --- a/docs/image/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Image ---- - -# Image - ---- - -An image API resource represents a visual component for another resource such as an anime or artist. - -For example, the Bakemonogatari anime has two images to represent small and large cover images. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :-------------------------------------------------------------------------------- | -| id | Integer | No | The primary key of the resource | -| path | String | No | The path of the file in storage | -| size | Integer | No | The size of the file in storage in Bytes | -| mimetype | String | No | The media type of the file in storage | -| facet | Enum | Yes | The component that the resource is intended for [Small Cover, Large Cover, Grill] | -| link | String | No | The URL to stream the file from storage | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -* anime -* artists -* studios - -### Endpoints - -**[Image Destroy](/image/destroy/)** - -The image destroy endpoint soft deletes an image and returns the deleted image resource. - -**[Image Force Delete](/image/forceDelete/)** - -The image force delete endpoint hard deletes an image and returns a confirmation message. - -**[Image Index](/image/index/)** - -The image index endpoint displays a listing of image resources. - -**[Image Show](/image/show/)** - -The image show endpoint returns an image resource. - -**[Image Store](/image/store/)** - -The image store endpoint creates a new image and returns the new image resource. - -**[Image Update](/image/update/)** - -The image update endpoint updates an image and returns the updated image resource. \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 625ec9b..627aa96 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,43 +1,37 @@ --- -title: Introduction ---- +layout: home -# Introduction - ---- - -AnimeThemes is a simple and consistent repository of anime opening and ending themes. We provide direct links to high quality WebMs of your favorite OPs and EDs for your listening and discussion needs. - -The AnimeThemes API provides access to our repository resources for your development needs. - -## [JSON:API](/jsonapi/) - -The AnimeThemes API selectively implements the [**JSON:API Specification**](https://jsonapi.org/format/). - -We provide an overview of where the AnimeThemes API adheres to or deviates from the specification. - -## [Rate Limiting](/ratelimiting/) - -The AnimeThemes API applies the standard named rate limiter of the Laravel Framework. - -We provide an overview of managing request quotas. - -## [Authentication](/authentication/) - -The AnimeThemes API uses token-based authentication to grant the user access to protected actions. - -## [Validation](/validation/) - -The AnimeThemes API uses form requests to validate query parameters. - -## Terms of Use - -The AnimeThemes API applies the [**AnimeThemes Terms of Service**](https://app.animethemes.moe/terms-of-service). - -## Resources - -For API support, please make use of the **#api** channel in the [**Discord Server**](https://discordapp.com/invite/m9zbVyQ). - -To report an issue with or request a new feature for the API, please make use of the [**animethemes-server**](https://github.com/AnimeThemes/animethemes-server) Github. - -To report an issue with or request a new feature for this documentation, please make use of the [**animethemes-api-docs**](https://github.com/AnimeThemes/animethemes-api-docs) Github. \ No newline at end of file +hero: + name: AnimeThemes + text: API Documentation + tagline: Access our repository of Anime opening and ending themes for your development needs + image: + light: /logo.svg + dark: /logo-dark.svg + alt: Logo + actions: + - theme: brand + text: Get Started + link: /intro/ +features: + - icon: 📻 + title: Media Links + details: Embed or download audio and video using links provided by resources + link: /wiki/video/show/#response + linkText: Example + - icon: 🕸️ + title: External Mappings + details: Find resources based on their mappings to sites like MyAnimeList or AniList + link: /intro/jsonapi/#has-filter + linkText: Example + - icon: 🔍 + title: Advanced Querying + details: Support for randomization, searching and filtering by direct fields and relation fields out of the box + link: /intro/jsonapi/#filtering + linkText: Example + - icon: ✍️ + title: Resource Management + details: Apply edits to our database (for users with requisite permissions) + link: /wiki/anime/store/ + linkText: Example +--- \ No newline at end of file diff --git a/docs/intro/authentication/index.md b/docs/intro/authentication/index.md new file mode 100644 index 0000000..ae4bbe4 --- /dev/null +++ b/docs/intro/authentication/index.md @@ -0,0 +1,33 @@ +--- +title: Authentication +--- + +# Authentication + +--- + +The AnimeThemes API uses token-based authentication to grant the user access to protected actions. + +## Token Authentication + +The AnimeThemes API uses the [**Bearer authentication scheme**](https://www.rfc-editor.org/rfc/rfc6750.html) to validate requests for protected actions. + +The `Bearer` token in the `Authorization` request header must correspond to a valid API token. + +```sh +curl -X POST "https://api.animethemes.moe/{protected action}" + -H "Accept: application/json" + -H "Authorization: Bearer {token}" +``` + +## Status Codes + +The AnimeThemes API uses framework-default response status codes for authenticated requests. + +| Code | Description | Examples | +| :--: | :--------------------------------------------------- | :----------------: | +| 200 | OK - request succeeded | DELETE, PATCH, PUT | +| 201 | Created - new resource was created | POST | +| 401 | Unauthorized - invalid or no authentication provided | All | +| 403 | Forbidden - request is not authorized for user | All | +| 404 | Not Found - no resource was found | All | \ No newline at end of file diff --git a/docs/intro/index.md b/docs/intro/index.md new file mode 100644 index 0000000..697fe11 --- /dev/null +++ b/docs/intro/index.md @@ -0,0 +1,43 @@ +--- +title: Introduction +--- + +# Introduction + +--- + +AnimeThemes is a simple and consistent repository of anime opening and ending themes. We provide direct links to high quality WebMs of your favorite OPs and EDs for your listening and discussion needs. + +The AnimeThemes API provides access to our repository resources for your development needs. + +## [JSON:API](/intro/jsonapi/) + +The AnimeThemes API selectively implements the [**JSON:API Specification**](https://jsonapi.org/format/). + +We provide an overview of where the AnimeThemes API adheres to or deviates from the specification. + +## [Rate Limiting](/intro/ratelimiting/) + +The AnimeThemes API applies the standard named rate limiter of the Laravel Framework. + +We provide an overview of managing request quotas. + +## [Authentication](/intro/authentication/) + +The AnimeThemes API uses token-based authentication to grant the user access to protected actions. + +## [Validation](/intro/validation/) + +The AnimeThemes API uses form requests to validate query parameters. + +## Terms of Use + +The AnimeThemes API applies the [**AnimeThemes Terms of Service**](https://app.animethemes.moe/terms-of-service). + +## Resources + +For API support, please make use of the **#api** channel in the [**Discord Server**](https://discordapp.com/invite/m9zbVyQ). + +To report an issue with or request a new feature for the API, please make use of the [**animethemes-server**](https://github.com/AnimeThemes/animethemes-server) Github. + +To report an issue with or request a new feature for this documentation, please make use of the [**animethemes-api-docs**](https://github.com/AnimeThemes/animethemes-api-docs) Github. \ No newline at end of file diff --git a/docs/jsonapi/index.md b/docs/intro/jsonapi/index.md similarity index 94% rename from docs/jsonapi/index.md rename to docs/intro/jsonapi/index.md index d170d1d..e096c34 100644 --- a/docs/jsonapi/index.md +++ b/docs/intro/jsonapi/index.md @@ -58,6 +58,7 @@ The AnimeThemes API Resource Object attributes are included as top-level members slug: "slug", year: year, season: "season", + media_format: "media_format", synopsis: "synopsis", ... } @@ -105,6 +106,7 @@ The AnimeThemes API Resource Object collections shall contain `links` and `meta` slug: "slug", year: year, season: "season", + media_format: "media_format", synopsis: "synopsis", created_at: "created_at", updated_at: "updated_at", @@ -212,6 +214,7 @@ If inclusion of related resources is not specified, the AnimeThemes API shall ** slug: "slug", year: year, season: "season", + media_format: "media_format", synopsis: "synopsis", created_at: "created_at", updated_at: "updated_at", @@ -245,6 +248,7 @@ If the client does not specify the set of fields for a given resource type, the slug: "slug", year: year, season: "season", + media_format: "media_format", synopsis: "synopsis", created_at: "created_at", updated_at: "updated_at", @@ -267,6 +271,7 @@ The AnimeThemes API supports sorting for every endpoint that returns a collectio slug: "slug", year: 1963, season: "season", + media_format: "media_format", synopsis: "synopsis", created_at: "created_at", updated_at: "updated_at", @@ -304,6 +309,7 @@ The AnimeThemes API supports an offset pagination strategy for every endpoint th slug: "slug", year: year, season: "season", + media_format: "media_format", synopsis: "synopsis", created_at: "created_at", updated_at: "updated_at", @@ -355,7 +361,7 @@ The AnimeThemes API supports filtering for every endpoint unless otherwise speci /anime?filter[year]=2000 ``` -**Strategy** +#### Strategy The AnimeThemes API supports the [**recommended**](https://jsonapi.org/recommendations/#filtering) base strategy for filtering with the following extended syntax: @@ -363,7 +369,7 @@ The AnimeThemes API supports the [**recommended**](https://jsonapi.org/recommend filter[scope][field-{comparison operator}-{logical operator}]=value(s) ``` -**Scope** +#### Scope The AnimeThemes API supports scoping filters by resource type. @@ -379,60 +385,60 @@ If a scope is not provided, the filter shall match all types. /anime?filter[created_at]=2021-01-01 ``` -**Comparison Operator** +#### Comparison Operator The AnimeThemes API supports the following comparison operators for filter conditions: -EQ +##### EQ ```powershell # This will match anime of year 2000 /anime?filter[year-eq]=2000 ``` -NE +##### NE ```powershell # This will match anime not of year 2000 /anime?filter[year-ne]=2000 ``` -LT +##### LT ```powershell # This will match anime where the year is less than 2000 /anime?filter[year-lt]=2000 ``` -GT +##### GT ```powershell # This will match anime where the year is greater than 2000 /anime?filter[year-gt]=2000 ``` -LTE +##### LTE ```powershell # This will match anime where the year is less than or equal to 2000 /anime?filter[year-lte]=2000 ``` -GTE +##### GTE ```powershell # This will match anime where the year is greater than 2000 /anime?filter[year-gte]=2000 ``` -LIKE +##### LIKE ```powershell # This will match anime where the name matches the pattern '%monogatari%' /anime?filter[name-like]=%monogatari% ``` -NOT LIKE +##### NOT LIKE ```powershell # This will match anime where the name does not match the pattern '%monogatari%' @@ -446,18 +452,18 @@ If a comparison operator is not provided, the filter shall use the EQ operator. /anime?filter[year]=2000 ``` -**Logical Operators** +#### Logical Operators The AnimeThemes API supports the following logical operators: -AND +##### AND ```powershell # This will match anime where the year is greater than 2000 and less than 2010 /anime?filter[year-gt-and]=2000&filter[year-lt-and]=2010 ``` -OR +##### OR ```powershell # This will match anime where the year is less than 2000 or greater than 2010 @@ -473,7 +479,7 @@ If a logical operator is not provided, the filter shall use the AND operator. The AnimeThemes API supports the following logical operator for multi-value filter conditions: -NOT +##### NOT ```powershell # This will match anime where the year is not in {2000,2001,2002} @@ -487,9 +493,11 @@ If the multi-value logical operator is not specified, the filter shall exclude t /anime?filter[year]=2000,2001,2002 ``` -**Special Filters** +#### Special Filters -Trashed Filter +These filters do not act strictly against a field or are otherwise deserving of distinguishing. + +##### Trashed Filter ```powershell # This filter will include soft-deleted anime that are excluded by default @@ -507,7 +515,7 @@ Trashed Filter /anime?filter[trashed]=without ``` -Has Filter +##### Has Filter ```powershell # This filter will return anime that have at least one related resource diff --git a/docs/ratelimiting/index.md b/docs/intro/ratelimiting/index.md similarity index 100% rename from docs/ratelimiting/index.md rename to docs/intro/ratelimiting/index.md diff --git a/docs/validation/index.md b/docs/intro/validation/index.md similarity index 100% rename from docs/validation/index.md rename to docs/intro/validation/index.md diff --git a/docs/list/index.md b/docs/list/index.md new file mode 100644 index 0000000..85075f7 --- /dev/null +++ b/docs/list/index.md @@ -0,0 +1,23 @@ +--- +title: List +--- + +# List + +--- + +List API resources pertain to user playlists. + +## Resources + +**[Playlist](/list/playlist/)** + +A playlist API resource represents a list of ordered tracks intended for continuous playback. + +**[Playlist Image](/list/playlistimage/)** + +A playlist image API resource represents the association between a playlist and an image. + +**[Playlist Track](/list/playlist/track/)** + +A playlist track API resource represents an entry in a playlist. \ No newline at end of file diff --git a/docs/list/playlist/backward/index.md b/docs/list/playlist/backward/index.md new file mode 100644 index 0000000..aca148e --- /dev/null +++ b/docs/list/playlist/backward/index.md @@ -0,0 +1,70 @@ +--- +title: Playlist Backward Index +--- + +# Playlist Backward Index Endpoint + +The playlist backward index endpoint returns a listing of tracks for the playlist in backward order. + +## URL + +```sh +GET /playlist/{id}/backward +``` + +## Authentication + +**Required Permission**: view playlist track + +**Other Requirements**: If the playlist is private, the user must own the playlist + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :--------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| include | No | Inclusion of related resources | +| page[number] | No | The page of playlist resources to display | +| page[size] | No | The number of playlist resources to display for the current page | + +## Allowed Include Paths + +* video +* video.animethemeentries.animetheme.anime.images +* video.animethemeentries.animetheme.song.artists +* video.audio + +## Response + +```json +{ + tracks: [ + { + id: "id", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/playlist/N4hG/backward +``` \ No newline at end of file diff --git a/docs/list/playlist/destroy/index.md b/docs/list/playlist/destroy/index.md new file mode 100644 index 0000000..7eeedc4 --- /dev/null +++ b/docs/list/playlist/destroy/index.md @@ -0,0 +1,49 @@ +--- +title: Playlist Destroy +--- + +# Playlist Destroy Endpoint + +The playlist destroy endpoint soft deletes a playlist and returns the deleted playlist resource. + +For example, the `/playlist/N4hG` endpoint will soft delete the playlist of id N4hG and return the deleted playlist resource. + +## URL + +```sh +DELETE /playlist/{id} +``` + +## Authentication + +**Required Permission**: delete playlist + +**Other Requirements**: User must own playlist & playlist must not be soft deleted + +## Parameters + +None + +## Response + +```json +{ + playlist: { + id: "id", + name: "name", + visibility: "visibility", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at", + views_count: views_count, + tracks_exists: tracks_exists, + tracks_count: tracks_count + } +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/playlist/N4hG +``` diff --git a/docs/list/playlist/forceDelete/index.md b/docs/list/playlist/forceDelete/index.md new file mode 100644 index 0000000..6e03fe5 --- /dev/null +++ b/docs/list/playlist/forceDelete/index.md @@ -0,0 +1,39 @@ +--- +title: Playlist Force Delete +--- + +# Playlist Force Delete Endpoint + +The playlist force delete endpoint hard deletes a playlist and returns a confirmation message. + +For example, the `/forceDelete/playlist/N4hG` endpoint will hard delete the playlist of id N4hG and return a confirmation message. + +## URL + +```sh +DELETE /forceDelete/playlist/{id} +``` + +## Authentication + +**Required Permission**: force delete playlist + +**Roles with Permission**: Admin + +## Parameters + +None + +## Response + +```json +{ + message: "The Playlist 'Name' was deleted.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/forceDelete/playlist/N4hG +``` \ No newline at end of file diff --git a/docs/list/playlist/forward/index.md b/docs/list/playlist/forward/index.md new file mode 100644 index 0000000..304d1fe --- /dev/null +++ b/docs/list/playlist/forward/index.md @@ -0,0 +1,70 @@ +--- +title: Playlist Forward Index +--- + +# Playlist Forward Index Endpoint + +The playlist forward index endpoint returns a listing of tracks for the playlist in forward order. + +## URL + +```sh +GET /playlist/{id}/forward +``` + +## Authentication + +**Required Permission**: view playlist track + +**Other Requirements**: If the playlist is private, the user must own the playlist + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :--------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| include | No | Inclusion of related resources | +| page[number] | No | The page of playlist resources to display | +| page[size] | No | The number of playlist resources to display for the current page | + +## Allowed Include Paths + +* video +* video.animethemeentries.animetheme.anime.images +* video.animethemeentries.animetheme.song.artists +* video.audio + +## Response + +```json +{ + tracks: [ + { + id: "id", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/playlist/N4hG/forward +``` \ No newline at end of file diff --git a/docs/list/playlist/index.md b/docs/list/playlist/index.md new file mode 100644 index 0000000..242f709 --- /dev/null +++ b/docs/list/playlist/index.md @@ -0,0 +1,71 @@ +--- +title: Playlist +--- + +# Playlist + +--- + +A playlist API resource represents a list of ordered tracks intended for continuous playback. + +For example, a "/r/anime's Best OPs and EDs of 2022" playlist may contain a collection of tracks allowing the continuous playback of Best OP and ED nominations for the /r/anime Awards. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :-----------: | :-----: | :------: | :-----: | :---------------------------------------------------------------- | +| id | String | No | Yes | The primary key of the resource | +| name | String | No | Yes | The title of the playlist | +| visibility | Enum | Yes | Yes | The state of who can see the playlist [Private, Unlisted, Public] | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | +| views_count | Integer | No | No | The number of views recorded for the resource | +| tracks_exists | Boolean | No | No | The existence of tracks belonging to the resource | +| tracks_count | Integer | No | No | The number of tracks belonging to the resource | + +## Allowed Include Paths + +* first +* images +* last +* tracks +* user + +## Endpoints + +**[Playlist Destroy](/list/playlist/destroy/)** + +The playlist destroy endpoint soft deletes a playlist and returns the deleted playlist resource. + +**[Playlist Force Delete](/list/playlist/forceDelete/)** + +The playlist force delete endpoint hard deletes a playlist and returns a confirmation message. + +**[Playlist Index](/list/playlist/index/)** + +The playlist index endpoint displays a listing of playlist resources. + +**[Playlist Restore](/list/playlist/restore/)** + +The playlist restore endpoint restores a soft deleted playlist and returns the restored playlist resource. + +**[Playlist Show](/list/playlist/show/)** + +The playlist show endpoint returns a playlist resource. + +**[Playlist Store](/list/playlist/store/)** + +The playlist store endpoint creates a new playlist and returns the new playlist resource. + +**[Playlist Update](/list/playlist/update/)** + +The playlist update endpoint updates a playlist and returns the updated playlist resource. + +**[Playlist Forward Index](/list/playlist/forward/)** + +The playlist forward index endpoint returns a listing of tracks for the playlist in forward order. + +**[Playlist Backward Index](/list/playlist/backward/)** + +The playlist backward index endpoint returns a listing of tracks for the playlist in backward order. \ No newline at end of file diff --git a/docs/list/playlist/index/index.md b/docs/list/playlist/index/index.md new file mode 100644 index 0000000..55707b3 --- /dev/null +++ b/docs/list/playlist/index/index.md @@ -0,0 +1,100 @@ +--- +title: Playlist Index +--- + +# Playlist Index Endpoint + +The playlist index endpoint returns a listing of public playlist resources. + +## URL + +```sh +GET /playlist/ +``` + +## Authentication + +**Required Permission**: view playlist + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :------------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for playlist resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of playlist resources to display | +| page[size] | No | The number of playlist resources to display for the current page | +| q | No | The query to search for matching playlist resources | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :-----------: | :------------------------------------------------------------------ | +| id | Sort resources on the primary key | +| name | Sort resources on the title of the playlist | +| visibility | Sort resources on the visibility state of the playlist | +| views_count | Sort resources on the number of recorded views | +| tracks_exists | Sort resources on the existence of tracks | +| tracks_count | Sort resources on the number of tracks | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | +| deleted_at | Sort resources on the resource deletion date | +| random | Sort resources randomly. Ignored if other sort fields are provided. | + +## Filters + +| Name | Description | +| :-----------: | :----------------------------------------------------------------------------------- | +| id | Filter resources on the primary key | +| name | Filter resources on the title of the playlist | +| visibility | Filter resources on the visibility state of the playlist [Public, Private, Unlisted] | +| views_count | Filter resources on the number of recorded views | +| tracks_exists | Filter resources on existence of tracks | +| tracks_count | Filter resources on the number of tracks | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| deleted_at | Filter resources on the resource deletion date | +| trashed | Filter resources on trashed (deleted) status [With, Without, Only] | +| has | Filter resources on relations within allowed include paths | + +## Response + +```json +{ + playlists: [ + { + id: "id", + name: "name", + visibility: "visibility", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at", + views_count: views_count, + tracks_exists: tracks_exists, + tracks_count: tracks_count + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/playlist/ +``` \ No newline at end of file diff --git a/docs/list/playlist/restore/index.md b/docs/list/playlist/restore/index.md new file mode 100644 index 0000000..558d310 --- /dev/null +++ b/docs/list/playlist/restore/index.md @@ -0,0 +1,49 @@ +--- +title: Playlist Restore +--- + +# Playlist Restore Endpoint + +The playlist restore endpoint restores a soft deleted playlist and returns the restored playlist resource. + +For example, the `/restore/playlist/N4hG` endpoint will restore the soft deleted playlist of id N4hG and return the restored playlist resource. + +## URL + +```sh +PATCH /restore/playlist/{id} +``` + +## Authentication + +**Required Permission**: restore playlist + +**Other Requirements**: User must own playlist & playlist must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + playlist: { + id: "id", + name: "name", + visibility: "visibility", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at", + views_count: views_count, + tracks_exists: tracks_exists, + tracks_count: tracks_count + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/playlist/N4hG +``` diff --git a/docs/list/playlist/show/index.md b/docs/list/playlist/show/index.md new file mode 100644 index 0000000..551fe05 --- /dev/null +++ b/docs/list/playlist/show/index.md @@ -0,0 +1,52 @@ +--- +title: Playlist Show +--- + +# Playlist Show Endpoint + +The playlist show endpoint returns a playlist resource. + +## URL + +```sh +GET /playlist/{id} +``` + +## Authentication + +**Required Permission**: view playlist + +**Other Requirements**: If the playlist is private, the user must own the playlist + +## Parameters + +| Name | Required | Description | +| :-----: | :------: | :------------------------------------------------------ | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters to constrain the inclusion of related resources | +| include | No | Inclusion of related resources | +| sort | No | Sort related resources | + +## Response + +```json +{ + playlist: { + id: "id", + name: "name", + visibility: "visibility", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at", + views_count: views_count, + tracks_exists: tracks_exists, + tracks_count: tracks_count + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/playlist/N4hG +``` \ No newline at end of file diff --git a/docs/list/playlist/store/index.md b/docs/list/playlist/store/index.md new file mode 100644 index 0000000..83879d4 --- /dev/null +++ b/docs/list/playlist/store/index.md @@ -0,0 +1,50 @@ +--- +title: Playlist Store +--- + +# Playlist Store Endpoint + +The playlist store endpoint creates a new playlist and returns the new playlist resource. + +For example, the `/playlist?name=Best+OPs` endpoint will create a new playlist and return the new playlist resource. + +## URL + +```sh +POST /playlist +``` + +## Authentication + +**Required Permission**: create playlist + +## Parameters + +| Name | Required | Rules | +| :--------: | :------: | :------------------------------------ | +| name | Yes | string, max:192 | +| visibility | Yes | EnumValue [Public, Private, Unlisted] | + +## Response + +```json +{ + playlist: { + id: "id", + name: "name", + visibility: "visibility", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at", + views_count: views_count, + tracks_exists: tracks_exists, + tracks_count: tracks_count + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/playlist/ +``` diff --git a/docs/list/playlist/track/backward/index.md b/docs/list/playlist/track/backward/index.md new file mode 100644 index 0000000..053434b --- /dev/null +++ b/docs/list/playlist/track/backward/index.md @@ -0,0 +1,70 @@ +--- +title: Track Backward Index +--- + +# Track Backward Index Endpoint + +The track backward index endpoint returns a listing of tracks for the playlist in backward order before the specified track. + +## URL + +```sh +GET /playlist/{playlist:id}/track/{track:id}/backward +``` + +## Authentication + +**Required Permission**: view playlist track + +**Other Requirements**: If the playlist is private, the user must own the playlist + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :--------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| include | No | Inclusion of related resources | +| page[number] | No | The page of playlist resources to display | +| page[size] | No | The number of playlist resources to display for the current page | + +## Allowed Include Paths + +* video +* video.animethemeentries.animetheme.anime.images +* video.animethemeentries.animetheme.song.artists +* video.audio + +## Response + +```json +{ + tracks: [ + { + id: "id", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/playlist/N4hG/track/Q3hD/backward +``` \ No newline at end of file diff --git a/docs/list/playlist/track/destroy/index.md b/docs/list/playlist/track/destroy/index.md new file mode 100644 index 0000000..c8455a8 --- /dev/null +++ b/docs/list/playlist/track/destroy/index.md @@ -0,0 +1,46 @@ +--- +title: Playlist Track Destroy +--- + +# Playlist Track Destroy Endpoint + +The playlist track destroy endpoint soft deletes a playlist track and returns the deleted playlist track resource. + +For example, the `/playlist/N4hG/track/Q3hD` endpoint will soft delete the playlist track of id Q3hD and return the deleted playlist track resource. + +The track will be dissociated from the list of tracks within the playlist. + +## URL + +```sh +DELETE /playlist/{id}/track/{id} +``` + +## Authentication + +**Required Permission**: delete playlist track + +**Other Requirements**: User must own playlist & playlist track must not be soft deleted + +## Parameters + +None + +## Response + +```json +{ + track: { + id: "id", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/playlist/N4hG/track/Q3hD +``` diff --git a/docs/list/playlist/track/forceDelete/index.md b/docs/list/playlist/track/forceDelete/index.md new file mode 100644 index 0000000..b73b123 --- /dev/null +++ b/docs/list/playlist/track/forceDelete/index.md @@ -0,0 +1,39 @@ +--- +title: Playlist Track Force Delete +--- + +# Playlist Track Force Delete Endpoint + +The playlist track force delete endpoint hard deletes a playlist track and returns a confirmation message. + +For example, the `/forceDelete/playlist/N4hG/track/Q3hD` endpoint will hard delete the playlist track of id Q3hD and return a confirmation message. + +## URL + +```sh +DELETE /forceDelete/playlist/{id}/track/{id} +``` + +## Authentication + +**Required Permission**: force delete playlist + +**Roles with Permission**: Admin + +## Parameters + +None + +## Response + +```json +{ + message: "The Playlist Track 'Q3hD' was deleted.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/forceDelete/playlist/N4hG/track/Q3hD +``` \ No newline at end of file diff --git a/docs/list/playlist/track/forward/index.md b/docs/list/playlist/track/forward/index.md new file mode 100644 index 0000000..8fdba5e --- /dev/null +++ b/docs/list/playlist/track/forward/index.md @@ -0,0 +1,70 @@ +--- +title: Track Forward Index +--- + +# Track Forward Index Endpoint + +The track forward index endpoint returns a listing of tracks for the playlist in forward order after the specified track. + +## URL + +```sh +GET /playlist/{playlist:id}/track/{track:id}/forward +``` + +## Authentication + +**Required Permission**: view playlist track + +**Other Requirements**: If the playlist is private, the user must own the playlist + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :--------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| include | No | Inclusion of related resources | +| page[number] | No | The page of playlist resources to display | +| page[size] | No | The number of playlist resources to display for the current page | + +## Allowed Include Paths + +* video +* video.animethemeentries.animetheme.anime.images +* video.animethemeentries.animetheme.song.artists +* video.audio + +## Response + +```json +{ + tracks: [ + { + id: "id", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/playlist/N4hG/track/Q3hD/forward +``` \ No newline at end of file diff --git a/docs/list/playlist/track/index.md b/docs/list/playlist/track/index.md new file mode 100644 index 0000000..3fee121 --- /dev/null +++ b/docs/list/playlist/track/index.md @@ -0,0 +1,68 @@ +--- +title: Playlist Track +--- + +# Playlist Track + +--- + +A playlist track API resource represents an entry in a playlist. + +For example, a "/r/anime's Best OPs and EDs of 2022" playlist may contain a track for the ParipiKoumei-OP1.webm video. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------- | +| id | String | No | Yes | The primary key of the resource | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +* next +* playlist +* previous +* video +* video.animethemeentries.animetheme.anime.images +* video.animethemeentries.animetheme.song.artists +* video.audio + +## Endpoints + +**[Playlist Track Destroy](/list/playlist/track/destroy/)** + +The playlist track destroy endpoint soft deletes a playlist track and returns the deleted playlist track resource. + +**[Playlist Track Force Delete](/list/playlist/track/forceDelete/)** + +The playlist track force delete endpoint hard deletes a playlist track and returns a confirmation message. + +**[Playlist Track Index](/list/playlist/track/index/)** + +The playlist track index endpoint displays a listing of playlist track resources. + +**[Playlist Track Restore](/list/playlist/track/restore/)** + +The playlist track restore endpoint restores a soft deleted playlist track and returns the restored playlist track resource. + +**[Playlist Track Show](/list/playlist/track/show/)** + +The playlist track show endpoint returns a playlist track resource. + +**[Playlist Track Store](/list/playlist/track/store/)** + +The playlist track store endpoint creates a new playlist track and returns the new playlist track resource. + +**[Playlist Track Update](/list/playlist/track/update/)** + +The playlist track update endpoint updates a playlist track and returns the updated playlist track resource. + +**[Track Forward Index](/list/playlist/track/forward/)** + +The track forward index endpoint returns a listing of tracks for the playlist in forward order after the specified track. + +**[Track Backward Index](/list/playlist/track/backward/)** + +The track backward index endpoint returns a listing of tracks for the playlist in backward order before the specified track. \ No newline at end of file diff --git a/docs/anime/index/index.md b/docs/list/playlist/track/index/index.md similarity index 54% rename from docs/anime/index/index.md rename to docs/list/playlist/track/index/index.md index 9ddce3f..1eae0c0 100644 --- a/docs/anime/index/index.md +++ b/docs/list/playlist/track/index/index.md @@ -1,43 +1,39 @@ --- -title: Anime Index +title: Playlist Track Index --- -# Anime Index Endpoint +# Playlist Track Index Endpoint -The anime index endpoint returns a listing of anime resources. +The playlist track index endpoint returns a listing of tracks for the playlist. ## URL ```sh -GET /anime/ +GET /playlist/{id}/track ``` ## Authentication -None +**Required Permission**: view playlist track + +**Other Requirements**: If the playlist is private, the user must own the playlist ## Parameters -| Name | Required | Description | -| :----------: | :------: | :---------------------------------------------------------------------------- | -| fields | No | Sparse fieldsets for resource types | -| filter | No | Filters for anime resources & constraining the inclusion of related resources | -| include | No | Inclusion of related resources | -| page[number] | No | The page of anime resources to display | -| page[size] | No | The number of anime resources to display for the current page | -| q | No | The query to search for matching anime resources | -| sort | No | The list of fields to sort the resources | +| Name | Required | Description | +| :----------: | :------: | :------------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for playlist resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of playlist resources to display | +| page[size] | No | The number of playlist resources to display for the current page | +| sort | No | The list of fields to sort the resources | ## Allowed Sort Fields | Name | Description | | :--------: | :------------------------------------------------------------------ | | id | Sort resources on the primary key | -| name | Sort resources on the title of the anime | -| slug | Sort resources on the URL slug of the anime | -| year | Sort resources on the premiere year of the anime | -| season | Sort resources on the premiere season of the anime | -| synopsis | Sort resources on the brief summary of the anime | | created_at | Sort resources on the resource creation date | | updated_at | Sort resources on the resource last modified date | | deleted_at | Sort resources on the resource deletion date | @@ -48,11 +44,7 @@ None | Name | Description | | :--------: | :----------------------------------------------------------------- | | id | Filter resources on the primary key | -| name | Filter resources on the title of the anime | -| slug | Filter resources on the URL slug of the anime | -| year | Filter resources on the premiere year of the anime | -| season | Filter resources on the premiere season of the anime | -| synopsis | Filter resources on the brief summary of the anime | +| video_id | Filter resources on related video ID | | created_at | Filter resources on the resource creation date | | updated_at | Filter resources on the resource last modified date | | deleted_at | Filter resources on the resource deletion date | @@ -63,14 +55,9 @@ None ```json { - anime: [ + tracks: [ { - id: id, - name: "name", - slug: "slug", - year: year, - season: "season", - synopsis: "synopsis", + id: "id", created_at: "created_at", updated_at: "updated_at", deleted_at: "deleted_at" @@ -96,5 +83,5 @@ None ## Example ```bash -curl https://api.animethemes.moe/anime/ +curl https://api.animethemes.moe/playlist/N4hG/track ``` \ No newline at end of file diff --git a/docs/list/playlist/track/restore/index.md b/docs/list/playlist/track/restore/index.md new file mode 100644 index 0000000..4ccd36a --- /dev/null +++ b/docs/list/playlist/track/restore/index.md @@ -0,0 +1,46 @@ +--- +title: Playlist Track Restore +--- + +# Playlist Track Restore Endpoint + +The playlist track restore endpoint restores a soft deleted playlist track and returns the restored playlist track resource. + +For example, the `/restore/playlist/N4hG/track/Q3hD` endpoint will restore the soft deleted playlist track of id Q3hD and return the restored playlist track resource. + +The restored track will be appended to the end of the list of tracks in the playlist. + +## URL + +```sh +PATCH /restore/playlist/{id}/track/{id} +``` + +## Authentication + +**Required Permission**: restore playlist track + +**Other Requirements**: User must own playlist & playlist track must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + track: { + id: "id", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/playlist/N4hG/track/Q3hD +``` diff --git a/docs/list/playlist/track/show/index.md b/docs/list/playlist/track/show/index.md new file mode 100644 index 0000000..8409975 --- /dev/null +++ b/docs/list/playlist/track/show/index.md @@ -0,0 +1,47 @@ +--- +title: Playlist Track Show +--- + +# Playlist Track Show Endpoint + +The playlist track show endpoint returns a playlist track resource. + +## URL + +```sh +GET /playlist/{id}/track/{id} +``` + +## Authentication + +**Required Permission**: view playlist track + +**Other Requirements**: If the playlist is private, the user must own the playlist + +## Parameters + +| Name | Required | Description | +| :-----: | :------: | :------------------------------------------------------ | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters to constrain the inclusion of related resources | +| include | No | Inclusion of related resources | +| sort | No | Sort related resources | + +## Response + +```json +{ + track: { + id: "id", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/playlist/N4hG/track/Q3hD +``` \ No newline at end of file diff --git a/docs/list/playlist/track/store/index.md b/docs/list/playlist/track/store/index.md new file mode 100644 index 0000000..e2965ff --- /dev/null +++ b/docs/list/playlist/track/store/index.md @@ -0,0 +1,55 @@ +--- +title: Playlist Track Store +--- + +# Playlist Track Store Endpoint + +The playlist track store endpoint creates a new playlist track and returns the new playlist track resource. + +For example, the `/playlist/N4hG/track?video_id=2712` endpoint will create a new playlist track for the Bakemonogatari-OP1.webm video and return the new playlist track resource. + +If `next` is set, the new track will be inserted before the next track in the playlist. + +If `previous` is set, the new track will be inserted after the previous track in the playlist. + +If neither `next` or `previous` is set, the new track will be appended to the end of the list of tracks in the playlist. + +## URL + +```sh +POST /playlist/{id}/track +``` + +## Authentication + +**Required Permission**: create playlist track + +**Other Requirements**: The user must own the playlist + +## Parameters + +| Name | Required | Rules | +| :------: | :------: | :------------------------------------------------------ | +| name | Yes | string, max:192 | +| next | No | string, Track ID Exists in Playlist, prohibits:previous | +| previous | No | string, Track ID Exists in Playlist, prohibits:next | +| video_id | Yes | Video ID Exists | + +## Response + +```json +{ + track: { + id: "id", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/playlist/N4hG/track +``` diff --git a/docs/list/playlist/track/update/index.md b/docs/list/playlist/track/update/index.md new file mode 100644 index 0000000..4059773 --- /dev/null +++ b/docs/list/playlist/track/update/index.md @@ -0,0 +1,52 @@ +--- +title: Playlist Track Update +--- + +# Playlist Track Update Endpoint + +The playlist track update endpoint updates a playlist track and returns the updated playlist track resource. + +For example, the `/playlist/N4hG/track/Q3hD?next_id=2` endpoint will update the playlist track of id Q3hD next_id attribute and return the updated playlist track resource. + +If `next` is set, the track will be moved before the next track in the playlist. + +If `previous` is set, the track will be moved after the previous track in the playlist. + +## URL + +```sh +PUT|PATCH /playlist/{id}/track/{id} +``` + +## Authentication + +**Required Permission**: update playlist track + +**Other Requirements**: User must own playlist & playlist track must not be soft deleted + +## Parameters + +| Name | Required | Rules | +| :------: | :------: | :-------------------------------------------------- | +| next | No | string, Track ID exists & Track Playlist ID matches | +| previous | No | string, Track ID exists & Track Playlist ID matches | +| video_id | No | Video ID Exists | + +## Response + +```json +{ + track: { + id: "id", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/playlist/N4hG/track/Q3hD +``` \ No newline at end of file diff --git a/docs/list/playlist/update/index.md b/docs/list/playlist/update/index.md new file mode 100644 index 0000000..73e69d6 --- /dev/null +++ b/docs/list/playlist/update/index.md @@ -0,0 +1,54 @@ +--- +title: Playlist Update +--- + +# Playlist Update Endpoint + +The playlist update endpoint updates a playlist and returns the updated playlist resource. + +For example, the `/playlist/N4hG?visibility=public` endpoint will update the playlist of id N4hG visibility attribute and return the updated playlist resource. + +## URL + +```sh +PUT|PATCH /playlist/{id} +``` + +## Authentication + +**Required Permission**: update playlist + +**Other Requirements**: User must own playlist + +**Other Requirements**: User must own playlist & playlist must not be soft deleted + +## Parameters + +| Name | Required | Rules | +| :--------: | :------: | :------------------------------------ | +| name | No | string, max:192 | +| visibility | No | EnumValue [Public, Private, Unlisted] | + +## Response + +```json +{ + playlist: { + id: "id", + name: "name", + visibility: "visibility", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at", + views_count: views_count, + tracks_exists: tracks_exists, + tracks_count: tracks_count + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/playlist/N4hG +``` \ No newline at end of file diff --git a/docs/list/playlistimage/destroy/index.md b/docs/list/playlistimage/destroy/index.md new file mode 100644 index 0000000..98b277c --- /dev/null +++ b/docs/list/playlistimage/destroy/index.md @@ -0,0 +1,39 @@ +--- +title: Playlist Image Destroy +--- + +# Playlist Image Destroy Endpoint + +The playlist image destroy endpoint deletes a playlist image and returns the deleted playlist image resource. + +For example, the `/playlistimage/N4hG/1` endpoint will delete the association between the playlist of id N4hG and the large cover image of id 1. + +## URL + +```sh +DELETE /playlistimage/{playlist:id}/{image:id} +``` + +## Authentication + +**Required Permission**: delete playlist, delete image + +**Other Requirements**: User must own playlist & playlist must not be soft deleted + +## Parameters + +None + +## Response + +```json +{ + message: "Image 'he3aw0eD3Gm7HKHJ5DRyCWOsK1QeIG91bmUXT2CX.png' has been detached from Playlist '/r/anime's Best OPs and EDs of 2022'.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/playlistimage/N4hG/1 +``` diff --git a/docs/list/playlistimage/index.md b/docs/list/playlistimage/index.md new file mode 100644 index 0000000..746ae50 --- /dev/null +++ b/docs/list/playlistimage/index.md @@ -0,0 +1,39 @@ +--- +title: Playlist Image +--- + +# Playlist Image + +--- + +A playlist image API resource represents the association between a playlist and an image. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------- | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | + +## Allowed Include Paths + +* playlist +* image + +## Endpoints + +**[Playlist Image Destroy](/list/playlistimage/destroy/)** + +The playlist image destroy endpoint deletes a playlist image and returns the deleted playlist image resource. + +**[Playlist Image Index](/list/playlistimage/index/)** + +The playlist image index endpoint displays a listing of playlist image resources. + +**[Playlist Image Show](/list/playlistimage/show/)** + +The playlist image show endpoint returns a playlist image resource. + +**[Playlist Image Store](/list/playlistimage/store/)** + +The playlist image store endpoint creates a new playlist image and returns the new playlist image resource. \ No newline at end of file diff --git a/docs/list/playlistimage/index/index.md b/docs/list/playlistimage/index/index.md new file mode 100644 index 0000000..9c36333 --- /dev/null +++ b/docs/list/playlistimage/index/index.md @@ -0,0 +1,76 @@ +--- +title: Playlist Image Index +--- + +# Playlist Image Index Endpoint + +The playlist image index endpoint returns a listing of playlist image resources. + +## URL + +```sh +GET /playlistimage/ +``` + +## Authentication + +**Required Permission**: view playlist + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :------------------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for playlist image resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of playlist image resources to display | +| page[size] | No | The number of playlist image resources to display for the current page | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :--------: | :------------------------------------------------ | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | + +## Filters + +| Name | Description | +| :--------: | :--------------------------------------------------------- | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| has | Filter resources on relations within allowed include paths | + +## Response + +```json +{ + playlistimages: [ + { + created_at: "created_at", + updated_at: "updated_at" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/playlistimage/ +``` diff --git a/docs/list/playlistimage/show/index.md b/docs/list/playlistimage/show/index.md new file mode 100644 index 0000000..1d4ec3e --- /dev/null +++ b/docs/list/playlistimage/show/index.md @@ -0,0 +1,42 @@ +--- +title: Playlist Image Show +--- + +# Playlist Image Show Endpoint + +The playlist image show endpoint returns an playlist image resource. + +For example, the `/playlistimage/N4hG/1` endpoint will return the playlist image resource for the association between the playlist of id N4hG and the large cover image of id 1. + +## URL + +```sh +GET /playlistimage/{playlist:id}/{image:id} +``` + +## Authentication + +**Required Permission**: view playlist + +**Other Requirements**: If the playlist is private, the user must own the playlist + +## Parameters + +None + +## Response + +```json +{ + playlistimage: { + created_at: "created_at", + updated_at: "updated_at" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/playlistimage/N4hG/1 +``` diff --git a/docs/list/playlistimage/store/index.md b/docs/list/playlistimage/store/index.md new file mode 100644 index 0000000..bb3076d --- /dev/null +++ b/docs/list/playlistimage/store/index.md @@ -0,0 +1,40 @@ +--- +title: Playlist Image Store +--- + +# Playlist Image Store Endpoint + +The playlist image store endpoint creates a new playlist image and returns the new playlist image resource. + +For example, the `/playlistimage/N4hG/1` endpoint will create a new association between the playlist of id N4hG and the large cover image of id 1. + +## URL + +```sh +POST /playlistimage/{playlist:id}/{image:id} +``` + +## Authentication + +**Required Permission**: create playlist, create image + +## Parameters + +None + +## Response + +```json +{ + playlistimage: { + created_at: "created_at", + updated_at: "updated_at" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/playlistimage/N4hG/1 +``` diff --git a/docs/page/index.md b/docs/page/index.md deleted file mode 100644 index 65b5fe2..0000000 --- a/docs/page/index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Page ---- - -# Page - ---- - -A page API resource represents a static markdown page used for guides and other documentation. - -For example, the 'encoding/audio_normalization' page represents the documentation for audio normalization. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :--------------------------------------------| -| id | Integer | No | The primary key of the resource | -| name | String | No | The primary title of the page | -| slug | String | No | The URL slug & route key of the resource | -| body | String | No | The body content of the resource | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -None - -### Endpoints - -**[Page Destroy](/page/destroy/)** - -The page destroy endpoint soft deletes a page and returns the deleted page resource. - -**[Page Force Delete](/page/forceDelete/)** - -The page force delete endpoint hard deletes a page and returns a confirmation message. - -**[Page Index](/page/index/)** - -The page index endpoint displays a listing of page resources. - -**[Page Show](/page/show/)** - -The page show endpoint returns a page resource. - -**[Page Store](/page/store/)** - -The page store endpoint creates a new page and returns the new page resource. - -**[Page Update](/page/update/)** - -The page update endpoint updates a page and returns the updated page resource. \ No newline at end of file diff --git a/docs/resource/index.md b/docs/resource/index.md deleted file mode 100644 index e5a765d..0000000 --- a/docs/resource/index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Resource ---- - -# Resource - ---- - -An external API resource represents a site with supplementary information for another resource such as an anime or artist. - -For example, the Bakemonogatari anime has MyAnimeList, AniList and AniDB resources. - -### Fields - -| Name | Type | Nullable | Description | -| :---------: | :-----: | :------: | :------------------------------------------------------------------| -| id | Integer | No | The primary key of the resource | -| link | String | Yes | The URL of the external site | -| external_id | Integer | Yes | The primary key of the resource in the external site | -| site | Enum | Yes | The external site that the resource belongs to [Official Website, Twitter, AniDB, Anilist, Anime-Planet, Anime News Network, Kitsu, MyAnimeList, Wikipedia] | -| as | String | Yes | Used to distinguish resources that map to the same artist or anime | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -* anime -* artists -* studios - -### Endpoints - -**[Resource Destroy](/resource/destroy/)** - -The resource destroy endpoint soft deletes an external resource and returns the deleted external resource. - -**[Resource Force Delete](/resource/forceDelete/)** - -The resource force delete endpoint hard deletes an external resource and returns a confirmation message. - -**[Resource Index](/resource/index/)** - -The resource index endpoint returns a listing of external resources. - -**[Resource Show](/resource/show/)** - -The resource show endpoint returns an external resource. - -**[Resource Store](/resource/store/)** - -The resource store endpoint creates a new external resource and returns the new external resource. - -**[Resource Update](/resource/update/)** - -The resource update endpoint updates an external resource and returns the updated external resource. \ No newline at end of file diff --git a/docs/search/index.md b/docs/search/index.md index 13f5d1a..2b8b170 100644 --- a/docs/search/index.md +++ b/docs/search/index.md @@ -4,7 +4,7 @@ title: Global Search # Global Search Endpoint -The global search endpoint returns a listing of wiki resources that match a given search term. +The global search endpoint returns a listing of resources that match a given search term. ## URL @@ -39,6 +39,7 @@ None slug: "slug", year: year, season: "season", + media_format: "media_format", synopsis: "synopsis", created_at: "created_at", updated_at: "updated_at", @@ -67,6 +68,16 @@ None deleted_at: "deleted_at" } ], + playlists: [ + { + id: id, + name: "name", + visibility: "visibility", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } + ], series: [ { id: id, diff --git a/docs/series/index.md b/docs/series/index.md deleted file mode 100644 index 4695903..0000000 --- a/docs/series/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Series ---- - -# Series - ---- - -A series API resource represents a collection of related anime. - -For example, the Monogatari series is the collection of the Bakemonogatari anime and its related productions. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :------------------------------------------- | -| id | Integer | No | The primary key of the resource | -| name | String | No | The primary title of the series | -| slug | String | No | The URL slug & route key of the resource | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -* anime - -### Endpoints - -**[Series Destroy](/series/destroy/)** - -The series destroy endpoint soft deletes a series and returns the deleted series resource. - -**[Series Force Delete](/series/forceDelete/)** - -The series force delete endpoint hard deletes a series and returns a confirmation message. - -**[Series Index](/series/index/)** - -The series index endpoint displays a listing of series resources. - -**[Series Show](/series/show/)** - -The series show endpoint returns a series resource. - -**[Series Store](/series/store/)** - -The series store endpoint creates a new series and returns the new series resource. - -**[Series Update](/series/update/)** - -The series update endpoint updates a series and returns the updated series resource. \ No newline at end of file diff --git a/docs/song/index.md b/docs/song/index.md deleted file mode 100644 index 63e2b44..0000000 --- a/docs/song/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Song ---- - -# Song - ---- - -A song API resource represents the composition that accompanies an AnimeTheme. - -For example, Staple Stable is the song for the Bakemonogatari OP1 AnimeTheme. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :------------------------------------------------------------- | -| id | Integer | No | The primary key of the resource | -| title | String | Yes | The name of the composition | -| as | String | Yes | Used to distinguish a performance by alias, character or group | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -* animethemes -* animethemes.anime -* artists - -### Endpoints - -**[Song Destroy](/song/destroy/)** - -The song destroy endpoint soft deletes a song and returns the deleted song resource. - -**[Song Force Delete](/song/forceDelete/)** - -The song force delete endpoint hard deletes a song and returns a confirmation message. - -**[Song Index](/song/index/)** - -The song index endpoint displays a listing of song resources. - -**[Song Show](/song/show/)** - -The song show endpoint returns a song resource. - -**[Song Store](/song/store/)** - -The song store endpoint creates a new song and returns the new song resource. - -**[Song Update](/song/update/)** - -The song update endpoint updates a song and returns the updated song resource. \ No newline at end of file diff --git a/docs/studio/index.md b/docs/studio/index.md deleted file mode 100644 index 82db89a..0000000 --- a/docs/studio/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Studio ---- - -# Studio - ---- - -A studio API resource represents a company that produces anime. - -For example, Shaft is the studio that produced the anime Bakemonogatari. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :------------------------------------------- | -| id | Integer | No | The primary key of the resource | -| name | String | No | The primary title of the studio | -| slug | String | No | The URL slug & route key of the resource | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -* anime -* images -* resources - -### Endpoints - -**[Studio Destroy](/studio/destroy/)** - -The studio destroy endpoint soft deletes a studio and returns the deleted studio resource. - -**[Studio Force Delete](/studio/forceDelete/)** - -The studio force delete endpoint hard deletes a studio and returns a confirmation message. - -**[Studio Index](/studio/index/)** - -The studio index endpoint displays a listing of studio resources. - -**[Studio Show](/studio/show/)** - -The studio show endpoint returns a studio resource. - -**[Studio Store](/studio/store/)** - -The studio store endpoint creates a new studio and returns the new studio resource. - -**[Studio Update](/studio/update/)** - -The studio update endpoint updates a studio and returns the updated studio resource. \ No newline at end of file diff --git a/docs/transaction/destroy/index.md b/docs/transaction/destroy/index.md deleted file mode 100644 index 71655f9..0000000 --- a/docs/transaction/destroy/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Transaction Destroy ---- - -# Transaction Destroy Endpoint - -The transaction destroy endpoint soft deletes a transaction and returns the deleted transaction resource. - -For example, the `/transaction/1` endpoint will soft delete the transaction of id '1' and return the deleted transaction resource. - -## URL - -```sh -DELETE /transaction/{id} -``` - -## Authentication - -**Required Permission**: delete transaction - -**Roles with Permission**: Admin - -## Parameters - -None - -## Response - -```json -{ - transaction: { - id: id, - date: "date", - service: "service", - description: "description", - amount: amount, - external_id: external_id, - created_at: "created_at", - updated_at: "updated_at", - deleted_at: "deleted_at" - } -} -``` - -## Example - -```bash -curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/transaction/1 -``` diff --git a/docs/transaction/forceDelete/index.md b/docs/transaction/forceDelete/index.md deleted file mode 100644 index ac28263..0000000 --- a/docs/transaction/forceDelete/index.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Transaction Force Delete ---- - -# Transaction Force Delete Endpoint - -The transaction force delete endpoint hard deletes a transaction and returns a confirmation message. - -For example, the `/forceDelete/transaction/1` endpoint will hard delete the transaction of id '1' and return a confirmation message. - -## URL - -```sh -DELETE /forceDelete/transaction/{id} -``` - -## Authentication - -**Required Permission**: force delete transaction - -**Roles with Permission**: Admin - -## Parameters - -None - -## Response - -```json -{ - message: "The Transaction 'AWS 2022-06-01' was deleted.", -} -``` - -## Example - -```bash -curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/forceDelete/transaction/1 -``` diff --git a/docs/transaction/index.md b/docs/transaction/index.md deleted file mode 100644 index 94b6f94..0000000 --- a/docs/transaction/index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Transaction ---- - -# Transaction - ---- - -A transaction API resource represents an invoice from or a payment to a billing service by AnimeThemes. - -### Fields - -| Name | Type | Nullable | Description | -| :-------------------: | :-----: | :------: | :--------------------------------------------------------------------------------------- | -| id | Integer | No | The primary key of the resource | -| date | Date | No | The date that the transaction was made | -| service | Enum | No | The service that is billing AnimeThemes [Other, DigitalOcean, AWS, Hover, WalkerServers] | -| description | String | No | The short description of what the transaction is for | -| amount | Decimal | No | The amount of the transaction billed by or paid to the billing service by AnimeThemes | -| external_id | String | Yes | The identifier used by the service for the transaction, if applicable | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -None - -### Endpoints - -**[Transaction Destroy](/transaction/destroy/)** - -The transaction destroy endpoint soft deletes a transaction and returns the deleted transaction resource. - -**[Transaction Force Delete](/transaction/forceDelete/)** - -The transaction force delete endpoint hard deletes a transaction and returns a confirmation message. - -**[Transaction Index](/transaction/index/)** - -The transaction index endpoint displays a listing of transaction resources. - -**[Transaction Show](/transaction/show/)** - -The transaction show endpoint returns a transaction resource. - -**[Transaction Store](/transaction/store/)** - -The transaction store endpoint creates a new transaction and returns the new transaction resource. - -**[Transaction Update](/transaction/update/)** - -The transaction update endpoint updates a transaction and returns the updated transaction resource. \ No newline at end of file diff --git a/docs/transaction/show/index.md b/docs/transaction/show/index.md deleted file mode 100644 index 8a5c778..0000000 --- a/docs/transaction/show/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Transaction Show ---- - -# Transaction Show Endpoint - -The transaction show endpoint returns a transaction resource. - -## URL - -```sh -GET /transaction/{id} -``` - -## Authentication - -None - -## Parameters - -| Name | Required | Description | -| :-----: | :------: | :------------------------------------------------------ | -| fields | No | Sparse fieldsets for resource types | - -## Response - -```json -{ - transaction: { - id: id, - date: "date", - service: "service", - description: "description", - amount: amount, - external_id: external_id, - created_at: "created_at", - updated_at: "updated_at", - deleted_at: "deleted_at" - } -} -``` - -## Example - -```bash -curl https://api.animethemes.moe/transaction/1 -``` diff --git a/docs/transaction/store/index.md b/docs/transaction/store/index.md deleted file mode 100644 index 24bcfd4..0000000 --- a/docs/transaction/store/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Transaction Store ---- - -# Transaction Store Endpoint - -The transaction store endpoint creates a new transaction and returns the new transaction resource. - -For example, the `/transaction?date=2022-06-01&service=AWS&description=June+2022+Payment&amount=10.00` endpoint will create a new transaction and return the new transaction resource. - -## URL - -```sh -POST /transaction -``` - -## Authentication - -**Required Permission**: create transaction - -**Roles with Permission**: Admin - -## Parameters - -| Name | Required | Rules | -| :---------: | :------: | :--------------------------------------------------------- | -| date | Yes | date_format:Y-m-d | -| service | Yes | EnumValue [Other, DigitalOcean, AWS, Hover, WalkerServers] | -| description | Yes | string, max:192 | -| amount | Yes | regex:/^\-?\d+(\.\d{1,2})?$/ | -| external_id | No | string, max:192 | - -## Response - -```json -{ - transaction: { - id: id, - date: "date", - service: "service", - description: "description", - amount: amount, - external_id: external_id, - created_at: "created_at", - updated_at: "updated_at", - deleted_at: "deleted_at" - } -} -``` - -## Example - -```bash -curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/transaction/ -``` diff --git a/docs/transaction/update/index.md b/docs/transaction/update/index.md deleted file mode 100644 index 1850e2e..0000000 --- a/docs/transaction/update/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Transaction Update ---- - -# Transaction Update Endpoint - -The transaction update endpoint updates a transaction and returns the updated transaction resource. - -For example, the `/transaction/1?external_id=12345` endpoint will update the transaction external_id attribute and return the updated transaction resource. - -## URL - -```sh -PUT|PATCH /transaction/{id} -``` - -## Authentication - -**Required Permission**: update transaction - -**Roles with Permission**: Admin - -## Parameters - -| Name | Required | Rules | -| :---------: | :------: | :--------------------------------------------------------- | -| date | No | date_format:Y-m-d | -| service | No | EnumValue [Other, DigitalOcean, AWS, Hover, WalkerServers] | -| description | No | string, max:192 | -| amount | No | regex:/^\-?\d+(\.\d{1,2})?$/ | -| external_id | No | string, max:192 | - -## Response - -```json -{ - transaction: { - id: id, - date: "date", - service: "service", - description: "description", - amount: amount, - external_id: external_id, - created_at: "created_at", - updated_at: "updated_at", - deleted_at: "deleted_at" - } -} -``` - -## Example - -```bash -curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/transaction/1 -``` diff --git a/docs/video/index.md b/docs/video/index.md deleted file mode 100644 index 8317852..0000000 --- a/docs/video/index.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Video ---- - -# Video - ---- - -A video API resource represents a WebM of an anime theme. - -For example, the video Bakemonogatari-OP1.webm represents the WebM of the Bakemonogatari OP1 theme. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :------------------------------------------------------------------------------------ | -| id | Integer | No | The primary key of the resource | -| basename | String | No | The basename of the file in storage | -| filename | String | No | The filename of the file in storage | -| path | String | No | The path of the file in storage | -| size | Integer | No | The size of the file in storage in Bytes | -| mimetype | String | No | The media type of the file in storage | -| resolution | Integer | Yes | The frame height of the file in storage | -| nc | Boolean | No | Is the video creditless? | -| subbed | Boolean | No | Does the video include subtitles of dialogue? | -| lyrics | Boolean | No | Does the video include subtitles of song lyrics? | -| uncen | Boolean | No | Is the video an uncensored version of a censored sequence? | -| source | Enum | Yes | Where did this video come from? [WEB, RAW, BD, DVD, VHS, LD] | -| overlap | Enum | No | The degree to which the sequence and episode content overlap [None, Transition, Over] | -| tags | String | No | The attributes used to distinguish the file within the context of a theme | -| link | String | No | The URL to stream the file from storage | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | - -### Allowed Include Paths - -* animethemeentries -* animethemeentries.animetheme -* animethemeentries.animetheme.anime -* audio -* videoscript - -### Endpoints - -**[Video Destroy](/video/destroy/)** - -The video destroy endpoint soft deletes a video and returns the deleted video resource. - -**[Video Force Delete](/video/forceDelete/)** - -The video force delete endpoint hard deletes a video and returns a confirmation message. - -**[Video Index](/video/index/)** - -The video index endpoint displays a listing of video resources. - -**[Video Show](/video/show/)** - -The video show endpoint returns a video resource. - -**[Video Store](/video/store/)** - -The video store endpoint creates a new video and returns the new video resource. - -**[Video Update](/video/update/)** - -The video update endpoint updates a video and returns the updated video resource. \ No newline at end of file diff --git a/docs/video/index/index.md b/docs/video/index/index.md deleted file mode 100644 index 869fb8b..0000000 --- a/docs/video/index/index.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: Video Index ---- - -# Video Index Endpoint - -The video index endpoint returns a listing of video resources. - -## URL - -```sh -GET /video/ -``` - -## Authentication - -None - -## Parameters - -| Name | Required | Description | -| :----------: | :------: | :---------------------------------------------------------------------------- | -| fields | No | Sparse fieldsets for resource types | -| filter | No | Filters for anime resources & constraining the inclusion of related resources | -| include | No | Inclusion of related resources | -| page[number] | No | The page of anime resources to display | -| page[size] | No | The number of anime resources to display for the current page | -| q | No | The query to search for matching anime resources | -| sort | No | The list of fields to sort the resources | - -## Allowed Sort Fields - -| Name | Description | -| :--------: | :----------------------------------------------------------------------- | -| id | Sort resources on the primary key | -| basename | Sort resources on the basename of the file in storage | -| filename | Sort resources on the filename of the file in storage | -| path | Sort resources on the path of the file in storage | -| size | Sort resources on the size of hte file in storage in Bytes | -| mimetype | Sort resources on the media type of the file in storage | -| resolution | Sort resources on the frame height of the file in storage | -| nc | Sort resources on whether the video is creditless | -| subbed | Sort resources on whether the video includes subtitles of dialogue | -| lyrics | Sort resources on whether the video includes subtitles of song lyrics | -| uncen | Sort resources on whether the video is an uncensored version | -| source | Sort resources on the origin of the video | -| overlap | Sort resources on the degree of overlap between the sequence and episode | -| created_at | Sort resources on the resource creation date | -| updated_at | Sort resources on the resource last modified date | -| deleted_at | Sort resources on the resource deletion date | -| random | Sort resources randomly. Ignored if other sort fields are provided. | - -## Filters - -| Name | Description | -| :--------: | :------------------------------------------------------------------------- | -| id | Filter resources on the primary key | -| basename | Filter resources on the basename of the file in storage | -| filename | Filter resources on the filename of the file in storage | -| path | Filter resources on the path of the file in storage | -| size | Filter resources on the size of hte file in storage in Bytes | -| mimetype | Filter resources on the media type of the file in storage | -| resolution | Filter resources on the frame height of the file in storage | -| nc | Filter resources on whether the video is creditless | -| subbed | Filter resources on whether the video includes subtitles of dialogue | -| lyrics | Filter resources on whether the video includes subtitles of song lyrics | -| uncen | Filter resources on whether the video is an uncensored version | -| source | Filter resources on the origin of the video | -| overlap | Filter resources on the degree of overlap between the sequence and episode | -| created_at | Filter resources on the resource creation date | -| updated_at | Filter resources on the resource last modified date | -| deleted_at | Filter resources on the resource deletion date | -| trashed | Filter resources on trashed (deleted) status [With, Without, Only] | -| has | Filter resources on relations within allowed include paths | - -## Response - -```json -{ - videos: [ - { - id: id, - basename: "basename", - filename: "filename", - path: "path", - size: size, - mimetype: "mimetype", - resolution: resolution, - nc: nc, - subbed: subbed, - lyrics: lyrics, - uncen: uncen, - source: "source", - overlap: "overlap", - created_at: "created_at", - updated_at: "updated_at", - deleted_at: "deleted_at", - tags: "tags", - link: "link" - }, - ... - ], - links: { - first: "first", - last: "last", - prev: "prev", - next: "next" - }, - meta: { - current_page: current_page, - from: from, - path: "path", - per_page: per_page, - to: to - } -} -``` - -## Example - -```bash -curl https://api.animethemes.moe/video/ -``` diff --git a/docs/videoscript/index.md b/docs/videoscript/index.md deleted file mode 100644 index 8c6df6d..0000000 --- a/docs/videoscript/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Video Script ---- - -# Video Script - ---- - -A video script API resource represents an encoding script used to produce a video. - -For example, the 2009/Summer/Bakemonogatari-OP1.txt video script represents the encoding script of the Bakemonogatari-OP1.webm video. - -### Fields - -| Name | Type | Nullable | Description | -| :--------: | :-----: | :------: | :--------------------------------------------| -| id | Integer | No | The primary key of the resource | -| path | String | No | The path of the file in storage | -| created_at | Date | No | The date that the resource was created | -| updated_at | Date | No | The date that the resource was last modified | -| deleted_at | Date | Yes | The date that the resource was deleted | -| link | String | No | The URL to download the file from storage | - -### Allowed Include Paths - -* video - -### Endpoints - -**[Video Script Destroy](/videoscript/destroy/)** - -The video script destroy endpoint soft deletes a video script and returns the deleted video script resource. - -**[Video Script Force Delete](/videoscript/forceDelete/)** - -The video script force delete endpoint hard deletes a video script and returns a confirmation message. - -**[Video Script Index](/videoscript/index/)** - -The video script index endpoint displays a listing of video script resources. - -**[Video Script Show](/videoscript/show/)** - -The video script show endpoint returns a video script resource. - -**[Video Script Store](/videoscript/store/)** - -The video script store endpoint creates a new video script and returns the new video script resource. - -**[Video Script Update](/videoscript/update/)** - -The video script update endpoint updates a video script and returns the updated video script resource. \ No newline at end of file diff --git a/docs/anime/destroy/index.md b/docs/wiki/anime/destroy/index.md similarity index 90% rename from docs/anime/destroy/index.md rename to docs/wiki/anime/destroy/index.md index d706ba3..37003d5 100644 --- a/docs/anime/destroy/index.md +++ b/docs/wiki/anime/destroy/index.md @@ -20,6 +20,8 @@ DELETE /anime/{slug} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Anime must not be soft deleted + ## Parameters None @@ -34,6 +36,7 @@ None slug: "slug", year: year, season: "season", + media_format: "media_format", synopsis: "synopsis", created_at: "created_at", updated_at: "updated_at", diff --git a/docs/anime/forceDelete/index.md b/docs/wiki/anime/forceDelete/index.md similarity index 100% rename from docs/anime/forceDelete/index.md rename to docs/wiki/anime/forceDelete/index.md diff --git a/docs/wiki/anime/index.md b/docs/wiki/anime/index.md new file mode 100644 index 0000000..d1dc6a2 --- /dev/null +++ b/docs/wiki/anime/index.md @@ -0,0 +1,83 @@ +--- +title: Anime +--- + +# Anime + +--- + +An anime API resource represents a production with at least one opening or ending sequence. + +For example, Bakemonogatari is an anime production with five opening sequences and one ending sequence. + +## Fields + +| Name | Type | Nullable | Description | +| :--------: | :-----: | :------: | :------------------------------------------------------------------------------ | +| id | Integer | No | The primary key of the resource | +| name | String | No | The primary title of the anime | +| slug | String | No | The URL slug & route key of the resource | +| year | Integer | Yes | The premiere year of the anime | +| season | Enum | Yes | The premiere season of the anime [Winter, Spring, Summer, Fall] | +| media_format | Enum | No | The media format of the anime [Unknown, TV, TV Short, OVA, Movie, Special, ONA] | +| synopsis | String | Yes | The brief summary of the anime | +| created_at | Date | No | The date that the resource was created | +| updated_at | Date | No | The date that the resource was last modified | +| deleted_at | Date | Yes | The date that the resource was deleted | + +## Allowed Include Paths + +* animesynonyms +* animethemes +* animethemes.animethemeentries +* animethemes.animethemeentries.videos +* animethemes.animethemeentries.videos.audio +* animethemes.animethemeentries.videos.videoscript +* animethemes.song +* animethemes.song.artists +* images +* resources +* series +* studios + +## Allowed Pivots + +* animeresource + +## Endpoints + +**[Anime Destroy](/wiki/anime/destroy/)** + +The anime destroy endpoint soft deletes an anime and returns the deleted anime resource. + +**[Anime Force Delete](/wiki/anime/forceDelete/)** + +The anime force delete endpoint hard deletes an anime and returns a confirmation message. + +**[Anime Index](/wiki/anime/index/)** + +The anime index endpoint displays a listing of anime resources. + +**[Anime Restore](/wiki/anime/restore/)** + +The anime restore endpoint restores a soft deleted anime and returns the restored anime resource. + +**[Anime Show](/wiki/anime/show/)** + +The anime show endpoint returns an anime resource. + +**[Anime Store](/wiki/anime/store/)** + +The anime store endpoint creates a new anime and returns the new anime resource. + +**[Anime Update](/wiki/anime/update/)** + +The anime update endpoint updates an anime and returns the updated anime resource. + +**[Year Show](/wiki/animeyear/show/)** + +The year show endpoint return a listing of anime resources for a given year grouped by season and ordered by name. + +**[Year Index](/wiki/animeyear/index/)** + +The year index endpoint returns a list of unique years from all anime resources. \ No newline at end of file diff --git a/docs/wiki/anime/index/index.md b/docs/wiki/anime/index/index.md new file mode 100644 index 0000000..364832d --- /dev/null +++ b/docs/wiki/anime/index/index.md @@ -0,0 +1,103 @@ +--- +title: Anime Index +--- + +# Anime Index Endpoint + +The anime index endpoint returns a listing of anime resources. + +## URL + +```sh +GET /anime/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :---------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for anime resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of anime resources to display | +| page[size] | No | The number of anime resources to display for the current page | +| q | No | The query to search for matching anime resources | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :----------: | :------------------------------------------------------------------ | +| id | Sort resources on the primary key | +| name | Sort resources on the title of the anime | +| slug | Sort resources on the URL slug of the anime | +| year | Sort resources on the premiere year of the anime | +| season | Sort resources on the premiere season of the anime | +| media_format | Sort resources on the media format of the anime | +| synopsis | Sort resources on the brief summary of the anime | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | +| deleted_at | Sort resources on the resource deletion date | +| random | Sort resources randomly. Ignored if other sort fields are provided. | + +## Filters + +| Name | Description | +| :----------: | :----------------------------------------------------------------- | +| id | Filter resources on the primary key | +| name | Filter resources on the title of the anime | +| slug | Filter resources on the URL slug of the anime | +| year | Filter resources on the premiere year of the anime | +| season | Filter resources on the premiere season of the anime | +| media_format | Filter resources on the media format of the anime | +| synopsis | Filter resources on the brief summary of the anime | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| deleted_at | Filter resources on the resource deletion date | +| trashed | Filter resources on trashed (deleted) status [With, Without, Only] | +| has | Filter resources on relations within allowed include paths | + +## Response + +```json +{ + anime: [ + { + id: id, + name: "name", + slug: "slug", + year: year, + season: "season", + media_format: "media_format", + synopsis: "synopsis", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/anime/ +``` \ No newline at end of file diff --git a/docs/wiki/anime/restore/index.md b/docs/wiki/anime/restore/index.md new file mode 100644 index 0000000..0a27a2a --- /dev/null +++ b/docs/wiki/anime/restore/index.md @@ -0,0 +1,52 @@ +--- +title: Anime Restore +--- + +# Anime Restore Endpoint + +The anime restore endpoint restores a soft deleted anime and returns the restored anime resource. + +For example, the `/restore/anime/bakemonogatari` endpoint will restore the soft deleted Bakemonogatari anime and return the restored Bakemonogatari resource. + +## URL + +```sh +PATCH /restore/anime/{slug} +``` + +## Authentication + +**Required Permission**: restore anime + +**Roles with Permission**: Wiki Editor, Admin + +**Other Requirements**: Anime must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + anime: { + id: id, + name: "name", + slug: "slug", + year: year, + season: "season", + media_format: "media_format", + synopsis: "synopsis", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/anime/bakemonogatari +``` diff --git a/docs/anime/show/index.md b/docs/wiki/anime/show/index.md similarity index 96% rename from docs/anime/show/index.md rename to docs/wiki/anime/show/index.md index a342beb..0785ddd 100644 --- a/docs/anime/show/index.md +++ b/docs/wiki/anime/show/index.md @@ -37,6 +37,7 @@ None slug: "slug", year: year, season: "season", + media_format: "media_format", synopsis: "synopsis", created_at: "created_at", updated_at: "updated_at", diff --git a/docs/wiki/anime/store/index.md b/docs/wiki/anime/store/index.md new file mode 100644 index 0000000..295e005 --- /dev/null +++ b/docs/wiki/anime/store/index.md @@ -0,0 +1,57 @@ +--- +title: Anime Store +--- + +# Anime Store Endpoint + +The anime store endpoint creates a new anime and returns the new anime resource. + +For example, the `/anime?name=Bakemonogatari&slug=bakemonogatari&year=2009&season=summer&media_format=tv` endpoint will create a new Bakemonogatari anime and return the new Bakemonogatari resource. + +## URL + +```sh +POST /anime +``` + +## Authentication + +**Required Permission**: create anime + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +| Name | Required | Rules | +| :----------: | :------: | :---------------------------------------------------------- | +| name | Yes | string, max:192 | +| season | Yes | EnumValue [Winter, Spring, Summer, Fall] | +| media_format | Yes | EnumValue [Unknown, TV, TV Short, OVA, Movie, Special, ONA] | +| slug | Yes | string, max:192, alpha_dash, unique | +| synopsis | No | string, max:65535 | +| year | Yes | integer, digits:4, min:1960, max:[current year + 1] | + +## Response + +```json +{ + anime: { + id: id, + name: "name", + slug: "slug", + year: year, + season: "season", + media_format: "media_format", + synopsis: "synopsis", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/anime/ +``` \ No newline at end of file diff --git a/docs/anime/update/index.md b/docs/wiki/anime/update/index.md similarity index 52% rename from docs/anime/update/index.md rename to docs/wiki/anime/update/index.md index ece8dae..c161c22 100644 --- a/docs/anime/update/index.md +++ b/docs/wiki/anime/update/index.md @@ -20,15 +20,18 @@ PUT|PATCH /anime/{slug} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Anime must not be soft deleted + ## Parameters -| Name | Required | Rules | -| :------: | :------: | :----------------------------------------------------- | -| name | No | string, max:192 | -| season | No | EnumValue [Winter, Spring, Summer, Fall] | -| slug | No | string, max:192, alpha_dash, unique | -| synopsis | No | string, max:65535 | -| year | No | integer, digits:4, min:1960, max:[current year + 1] | +| Name | Required | Rules | +| :----------: | :------: | :---------------------------------------------------------- | +| name | No | string, max:192 | +| season | No | EnumValue [Winter, Spring, Summer, Fall] | +| media_format | No | EnumValue [Unknown, TV, TV Short, OVA, Movie, Special, ONA] | +| slug | No | string, max:192, alpha_dash, unique | +| synopsis | No | string, max:65535 | +| year | No | integer, digits:4, min:1960, max:[current year + 1] | ## Response @@ -40,6 +43,7 @@ PUT|PATCH /anime/{slug} slug: "slug", year: year, season: "season", + media_format: "media_format", synopsis: "synopsis", created_at: "created_at", updated_at: "updated_at", diff --git a/docs/animeimage/destroy/index.md b/docs/wiki/animeimage/destroy/index.md similarity index 85% rename from docs/animeimage/destroy/index.md rename to docs/wiki/animeimage/destroy/index.md index f2a89bc..67cd85f 100644 --- a/docs/animeimage/destroy/index.md +++ b/docs/wiki/animeimage/destroy/index.md @@ -28,10 +28,7 @@ None ```json { - animeimage: { - created_at: "created_at", - updated_at: "updated_at" - } + message: "Image 'OoMI35OjrpjORDlWJvFAZzQOD0vIH1oBQClClSIU.png' has been detached from Anime 'Bakemonogatari'.", } ``` diff --git a/docs/wiki/animeimage/index.md b/docs/wiki/animeimage/index.md new file mode 100644 index 0000000..f613145 --- /dev/null +++ b/docs/wiki/animeimage/index.md @@ -0,0 +1,39 @@ +--- +title: Anime Image +--- + +# Anime Image + +--- + +An anime image API resource represents the association between an anime and an image. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------- | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | + +## Allowed Include Paths + +* anime +* image + +## Endpoints + +**[Anime Image Destroy](/wiki/animeimage/destroy/)** + +The anime image destroy endpoint deletes an anime image and returns the deleted anime image resource. + +**[Anime Image Index](/wiki/animeimage/index/)** + +The anime image index endpoint displays a listing of anime image resources. + +**[Anime Image Show](/wiki/animeimage/show/)** + +The anime image show endpoint returns an anime image resource. + +**[Anime Image Store](/wiki/animeimage/store/)** + +The anime image store endpoint creates a new anime image and returns the new anime image resource. \ No newline at end of file diff --git a/docs/animeimage/index/index.md b/docs/wiki/animeimage/index/index.md similarity index 100% rename from docs/animeimage/index/index.md rename to docs/wiki/animeimage/index/index.md diff --git a/docs/animeimage/show/index.md b/docs/wiki/animeimage/show/index.md similarity index 100% rename from docs/animeimage/show/index.md rename to docs/wiki/animeimage/show/index.md diff --git a/docs/animeimage/store/index.md b/docs/wiki/animeimage/store/index.md similarity index 56% rename from docs/animeimage/store/index.md rename to docs/wiki/animeimage/store/index.md index ca8abed..ce59f06 100644 --- a/docs/animeimage/store/index.md +++ b/docs/wiki/animeimage/store/index.md @@ -6,12 +6,12 @@ title: Anime Image Store The anime image store endpoint creates a new anime image and returns the new anime image resource. -For example, the `/animeimage?anime_id=218&image_id=435` endpoint will create a new association between the Bakemonogatari anime and the large cover image of id 435. +For example, the `/animeimage/bakemonogatari/435` endpoint will create a new association between the Bakemonogatari anime and the large cover image of id 435. ## URL ```sh -POST /animeimage +POST /animeimage/{anime:slug}/{image:id} ``` ## Authentication @@ -22,10 +22,7 @@ POST /animeimage ## Parameters -| Name | Required | Rules | -| :------: | :------: | :----------------------- | -| anime_id | Yes | integer, Anime ID exists | -| image_id | Yes | integer, Image ID exists | +None ## Response @@ -41,5 +38,5 @@ POST /animeimage ## Example ```bash -curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/animeimage/ +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/animeimage/bakemonogatari/435 ``` diff --git a/docs/wiki/animeresource/destroy/index.md b/docs/wiki/animeresource/destroy/index.md new file mode 100644 index 0000000..4ac1dee --- /dev/null +++ b/docs/wiki/animeresource/destroy/index.md @@ -0,0 +1,39 @@ +--- +title: Anime Resource Destroy +--- + +# Anime Resource Destroy Endpoint + +The anime resource destroy endpoint deletes an anime resource and returns the deleted anime resource resource. + +For example, the `/animeresource/bakemonogatari/1083` endpoint will delete the association between the Bakemonogatari anime and the external resource of id 1083. + +## URL + +```sh +DELETE /animeresource/{anime:slug}/{resource:id} +``` + +## Authentication + +**Required Permission**: delete anime, delete external resource + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + message: "Resource 'https://myanimelist.net/anime/5081' has been detached from Anime 'Bakemonogatari'.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/animeresource/bakemonogatari/1083 +``` diff --git a/docs/wiki/animeresource/index.md b/docs/wiki/animeresource/index.md new file mode 100644 index 0000000..86004b0 --- /dev/null +++ b/docs/wiki/animeresource/index.md @@ -0,0 +1,44 @@ +--- +title: Anime Resource +--- + +# Anime Resource + +--- + +An anime resource API resource represents the association between an anime and an external resource. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------------------- | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| as | String | No | Yes | Used to distinguish resources that map to the same anime | + +## Allowed Include Paths + +* anime +* resource + +## Endpoints + +**[Anime Resource Destroy](/wiki/animeresource/destroy/)** + +The anime resource destroy endpoint deletes an anime resource and returns the deleted anime resource resource. + +**[Anime Resource Index](/wiki/animeresource/index/)** + +The anime resource index endpoint displays a listing of anime resource resources. + +**[Anime Resource Show](/wiki/animeresource/show/)** + +The anime resource show endpoint returns an anime resource resource. + +**[Anime Resource Store](/wiki/animeresource/store/)** + +The anime resource store endpoint creates a new anime resource and returns the new anime resource resource. + +**[Anime Resource Update](/wiki/animeresource/update/)** + +The anime resource update endpoint updates an anime resource and returns the updated anime resource resource. \ No newline at end of file diff --git a/docs/wiki/animeresource/index/index.md b/docs/wiki/animeresource/index/index.md new file mode 100644 index 0000000..4ed685e --- /dev/null +++ b/docs/wiki/animeresource/index/index.md @@ -0,0 +1,79 @@ +--- +title: Anime Resource Index +--- + +# Anime Resource Index Endpoint + +The anime resource index endpoint returns a listing of anime resource resources. + +## URL + +```sh +GET /animeresource/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :---------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for anime resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of anime resource resources to display | +| page[size] | No | The number of anime resource resources to display for the current page | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :--------: | :------------------------------------------------ | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | +| as | Sort resources on distinguishing label | + +## Filters + +| Name | Description | +| :--------: | :--------------------------------------------------------- | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| as | Filter resources on the resource distinguishing label | +| has | Filter resources on relations within allowed include paths | + +## Response + +```json +{ + animeresources: [ + { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/animeresource/ +``` diff --git a/docs/wiki/animeresource/show/index.md b/docs/wiki/animeresource/show/index.md new file mode 100644 index 0000000..4bb8ab6 --- /dev/null +++ b/docs/wiki/animeresource/show/index.md @@ -0,0 +1,41 @@ +--- +title: Anime Resource Show +--- + +# Anime Resource Show Endpoint + +The anime resource show endpoint returns an anime resource resource. + +For example, the `/animeresource/bakemonogatari/1083` endpoint will return the anime resource resource for the association between the Bakemonogatari anime and the external resource of id 1083. + +## URL + +```sh +GET /animeresource/{anime:slug}/{resource:id} +``` + +## Authentication + +None + +## Parameters + +None + +## Response + +```json +{ + animeresource: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/animeresource/bakemonogatari/1083 +``` diff --git a/docs/wiki/animeresource/store/index.md b/docs/wiki/animeresource/store/index.md new file mode 100644 index 0000000..44093d5 --- /dev/null +++ b/docs/wiki/animeresource/store/index.md @@ -0,0 +1,45 @@ +--- +title: Anime Resource Store +--- + +# Anime Resource Store Endpoint + +The anime resource store endpoint creates a new anime resource and returns the new anime resource resource. + +For example, the `/animeresource/bakemonogatari/1083` endpoint will create a new association between the Bakemonogatari anime and the external resource of id 1083. + +## URL + +```sh +POST /animeresource/{anime:slug}/{resource:id} +``` + +## Authentication + +**Required Permission**: create anime, create external resource + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +| Name | Required | Rules | +| :--: | :------: | :-------------- | +| as | No | string, max:192 | + +## Response + +```json +{ + animeresource: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/animeresource/bakemonogatari/1083 +``` diff --git a/docs/wiki/animeresource/update/index.md b/docs/wiki/animeresource/update/index.md new file mode 100644 index 0000000..e700de5 --- /dev/null +++ b/docs/wiki/animeresource/update/index.md @@ -0,0 +1,45 @@ +--- +title: Anime Resource Update +--- + +# Anime Resource Update Endpoint + +The anime resource store endpoint updates an anime resource and returns the updated anime resource resource. + +For example, the `/animeresource/bakemonogatari/1083?as=updated+label` endpoint will update the association between the Bakemonogatari anime and the external resource of id 1083. + +## URL + +```sh +PUT|PATCH /animeresource/{anime:slug}/{resource:id} +``` + +## Authentication + +**Required Permission**: update anime, update external resource + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +| Name | Required | Rules | +| :---------: | :------: | :-------------- | +| as | No | string, max:192 | + +## Response + +```json +{ + animeresource: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/animeresource/ +``` diff --git a/docs/wiki/animeseries/destroy/index.md b/docs/wiki/animeseries/destroy/index.md new file mode 100644 index 0000000..7af9a93 --- /dev/null +++ b/docs/wiki/animeseries/destroy/index.md @@ -0,0 +1,39 @@ +--- +title: Anime Series Destroy +--- + +# Anime Series Destroy Endpoint + +The anime series destroy endpoint deletes an anime series and returns the deleted anime series resource. + +For example, the `/animeseries/bakemonogatari/monogatari` endpoint will delete the association between the Bakemonogatari anime and the Monogatari series. + +## URL + +```sh +DELETE /animeseries/{anime:slug}/{series:slug} +``` + +## Authentication + +**Required Permission**: delete anime, delete series + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + message: "Anime 'Bakemonogatari' has been detached from Series 'Monogatari'.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/animeseries/bakemonogatari/monogatari +``` diff --git a/docs/wiki/animeseries/index.md b/docs/wiki/animeseries/index.md new file mode 100644 index 0000000..ac829b9 --- /dev/null +++ b/docs/wiki/animeseries/index.md @@ -0,0 +1,39 @@ +--- +title: Anime Series +--- + +# Anime Series + +--- + +An anime series API resource represents the association between an anime and a series. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------- | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | + +## Allowed Include Paths + +* anime +* series + +## Endpoints + +**[Anime Series Destroy](/wiki/animeseries/destroy/)** + +The anime series destroy endpoint deletes an anime series and returns the deleted anime series resource. + +**[Anime Series Index](/wiki/animeseries/index/)** + +The anime series index endpoint displays a listing of anime series resources. + +**[Anime Series Show](/wiki/animeseries/show/)** + +The anime series show endpoint returns an anime series resource. + +**[Anime Series Store](/wiki/animeseries/store/)** + +The anime series store endpoint creates a new anime series and returns the new anime series resource. \ No newline at end of file diff --git a/docs/wiki/animeseries/index/index.md b/docs/wiki/animeseries/index/index.md new file mode 100644 index 0000000..3461464 --- /dev/null +++ b/docs/wiki/animeseries/index/index.md @@ -0,0 +1,76 @@ +--- +title: Anime Series Index +--- + +# Anime Series Index Endpoint + +The anime series index endpoint returns a listing of anime series resources. + +## URL + +```sh +GET /animeseries/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :----------------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for anime series resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of anime series resources to display | +| page[size] | No | The number of anime series resources to display for the current page | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :--------: | :------------------------------------------------ | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | + +## Filters + +| Name | Description | +| :--------: | :--------------------------------------------------------- | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| has | Filter resources on relations within allowed include paths | + +## Response + +```json +{ + animeseries: [ + { + created_at: "created_at", + updated_at: "updated_at" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/animeseries/ +``` diff --git a/docs/wiki/animeseries/show/index.md b/docs/wiki/animeseries/show/index.md new file mode 100644 index 0000000..27d7d7e --- /dev/null +++ b/docs/wiki/animeseries/show/index.md @@ -0,0 +1,40 @@ +--- +title: Anime Series Show +--- + +# Anime Series Show Endpoint + +The anime series show endpoint returns an anime series resource. + +For example, the `/animeseries/bakemonogatari/monogatari` endpoint will return the anime series resource for the association between the Bakemonogatari anime and the Monogatari series. + +## URL + +```sh +GET /animeseries/{anime:slug}/{series:slug} +``` + +## Authentication + +None + +## Parameters + +None + +## Response + +```json +{ + animeseries: { + created_at: "created_at", + updated_at: "updated_at" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/animeseries/bakemonogatari/monogatari +``` diff --git a/docs/wiki/animeseries/store/index.md b/docs/wiki/animeseries/store/index.md new file mode 100644 index 0000000..c21941e --- /dev/null +++ b/docs/wiki/animeseries/store/index.md @@ -0,0 +1,42 @@ +--- +title: Anime Series Store +--- + +# Anime Series Store Endpoint + +The anime series store endpoint creates a new anime series and returns the new anime series resource. + +For example, the `/animeseries/bakemonogatari/monogatari` endpoint will create a new association between the Bakemonogatari anime and the Monogatari series. + +## URL + +```sh +POST /animeseries/{anime:slug}/{series:slug} +``` + +## Authentication + +**Required Permission**: create anime, create series + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + animeseries: { + created_at: "created_at", + updated_at: "updated_at" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/animeseries/bakemonogatari/monogatari +``` diff --git a/docs/wiki/animestudio/destroy/index.md b/docs/wiki/animestudio/destroy/index.md new file mode 100644 index 0000000..fbee0b6 --- /dev/null +++ b/docs/wiki/animestudio/destroy/index.md @@ -0,0 +1,39 @@ +--- +title: Anime Studio Destroy +--- + +# Anime Studio Destroy Endpoint + +The anime studio destroy endpoint deletes an anime studio and returns the deleted anime studio resource. + +For example, the `/animestudio/bakemonogatari/shaft` endpoint will delete the association between the Bakemonogatari anime and the Shaft studio. + +## URL + +```sh +DELETE /animestudio/{anime:slug}/{studio:slug} +``` + +## Authentication + +**Required Permission**: delete anime, delete studio + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + message: "Anime 'Bakemonogatari' has been detached from Studio 'Shaft'.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/animestudio/bakemonogatari/shaft +``` diff --git a/docs/wiki/animestudio/index.md b/docs/wiki/animestudio/index.md new file mode 100644 index 0000000..db27a49 --- /dev/null +++ b/docs/wiki/animestudio/index.md @@ -0,0 +1,39 @@ +--- +title: Anime Studio +--- + +# Anime Studio + +--- + +An anime studio API resource represents the association between an anime and a studio. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------- | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | + +## Allowed Include Paths + +* anime +* studio + +## Endpoints + +**[Anime Studio Destroy](/wiki/animestudio/destroy/)** + +The anime studio destroy endpoint deletes an anime studio and returns the deleted anime studio resource. + +**[Anime Studio Index](/wiki/animestudio/index/)** + +The anime studio index endpoint displays a listing of anime studio resources. + +**[Anime Studio Show](/wiki/animestudio/show/)** + +The anime studio show endpoint returns an anime studio resource. + +**[Anime Studio Store](/wiki/animestudio/store/)** + +The anime studio store endpoint creates a new anime studio and returns the new anime studio resource. \ No newline at end of file diff --git a/docs/wiki/animestudio/index/index.md b/docs/wiki/animestudio/index/index.md new file mode 100644 index 0000000..ebb7137 --- /dev/null +++ b/docs/wiki/animestudio/index/index.md @@ -0,0 +1,76 @@ +--- +title: Anime Studio Index +--- + +# Anime Studio Index Endpoint + +The anime studio index endpoint returns a listing of anime studio resources. + +## URL + +```sh +GET /animestudio/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :----------------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for anime studio resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of anime studio resources to display | +| page[size] | No | The number of anime studio resources to display for the current page | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :--------: | :------------------------------------------------ | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | + +## Filters + +| Name | Description | +| :--------: | :--------------------------------------------------------- | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| has | Filter resources on relations within allowed include paths | + +## Response + +```json +{ + animestudios: [ + { + created_at: "created_at", + updated_at: "updated_at" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/animestudio/ +``` diff --git a/docs/wiki/animestudio/show/index.md b/docs/wiki/animestudio/show/index.md new file mode 100644 index 0000000..3f1ae57 --- /dev/null +++ b/docs/wiki/animestudio/show/index.md @@ -0,0 +1,40 @@ +--- +title: Anime Studio Show +--- + +# Anime Studio Show Endpoint + +The anime studio show endpoint returns an anime studio resource. + +For example, the `/animestudio/bakemonogatari/shaft` endpoint will return the anime studio resource for the association between the Bakemonogatari anime and the Shaft studio. + +## URL + +```sh +GET /animestudio/{anime:slug}/{studio:slug} +``` + +## Authentication + +None + +## Parameters + +None + +## Response + +```json +{ + animestudio: { + created_at: "created_at", + updated_at: "updated_at" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/animestudio/bakemonogatari/shaft +``` diff --git a/docs/wiki/animestudio/store/index.md b/docs/wiki/animestudio/store/index.md new file mode 100644 index 0000000..46dea08 --- /dev/null +++ b/docs/wiki/animestudio/store/index.md @@ -0,0 +1,42 @@ +--- +title: Anime Studio Store +--- + +# Anime Studio Store Endpoint + +The anime studio store endpoint creates a new anime studio and returns the new anime studio resource. + +For example, the `/animestudio/bakemonogatari/shaft` endpoint will create a new association between the Bakemonogatari anime and the Shaft studio. + +## URL + +```sh +POST /animestudio/{anime:slug}/{studio:slug} +``` + +## Authentication + +**Required Permission**: create anime, create studio + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + animestudio: { + created_at: "created_at", + updated_at: "updated_at" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/animestudio/bakemonogatari/shaft +``` diff --git a/docs/animesynonym/destroy/index.md b/docs/wiki/animesynonym/destroy/index.md similarity index 92% rename from docs/animesynonym/destroy/index.md rename to docs/wiki/animesynonym/destroy/index.md index a37cf98..373f8fa 100644 --- a/docs/animesynonym/destroy/index.md +++ b/docs/wiki/animesynonym/destroy/index.md @@ -20,6 +20,8 @@ DELETE /animesynonym/{id} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Anime synonym must not be soft deleted + ## Parameters None diff --git a/docs/animesynonym/forceDelete/index.md b/docs/wiki/animesynonym/forceDelete/index.md similarity index 100% rename from docs/animesynonym/forceDelete/index.md rename to docs/wiki/animesynonym/forceDelete/index.md diff --git a/docs/wiki/animesynonym/index.md b/docs/wiki/animesynonym/index.md new file mode 100644 index 0000000..33205cf --- /dev/null +++ b/docs/wiki/animesynonym/index.md @@ -0,0 +1,55 @@ +--- +title: Anime Synonym +--- + +# Anime Synonym + +--- + +An anime synonym API resource represents an alternate title or common abbreviation for an anime. + +For example, the anime Bakemonogatari has the anime synonym "Monstory". + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------- | +| id | Integer | No | Yes | The primary key of the resource | +| text | String | Yes | Yes | The alternate title or common abbreviations | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +* anime + +## Endpoints + +**[Anime Synonym Destroy](/wiki/animesynonym/destroy/)** + +The anime synonym destroy endpoint soft deletes an anime synonym and returns the deleted anime synonym resource. + +**[Anime Synonym Force Delete](/wiki/animesynonym/forceDelete/)** + +The anime synonym force delete endpoint hard deletes an anime synonym and returns a confirmation message. + +**[Anime Synonym Index](/wiki/animesynonym/index/)** + +The anime synonym index endpoint displays a listing of anime synonym resources. + +**[Anime Synonym Restore](/wiki/animesynonym/restore/)** + +The anime synonym restore endpoint restores a soft deleted anime synonym and returns the restored anime synonym resource. + +**[Anime Synonym Show](/wiki/animesynonym/show/)** + +The anime synonym show endpoint returns an anime synonym resource. + +**[Anime Synonym Store](/wiki/animesynonym/store/)** + +The anime synonym store endpoint creates a new anime synonym and returns the new anime synonym resource. + +**[Anime Synonym Update](/wiki/animesynonym/update/)** + +The anime synonym update endpoint updates an anime synonym and returns the updated anime synonym resource. \ No newline at end of file diff --git a/docs/animesynonym/index/index.md b/docs/wiki/animesynonym/index/index.md similarity index 100% rename from docs/animesynonym/index/index.md rename to docs/wiki/animesynonym/index/index.md diff --git a/docs/wiki/animesynonym/restore/index.md b/docs/wiki/animesynonym/restore/index.md new file mode 100644 index 0000000..bb3c507 --- /dev/null +++ b/docs/wiki/animesynonym/restore/index.md @@ -0,0 +1,47 @@ +--- +title: Anime Synonym Restore +--- + +# Anime Synonym Restore Endpoint + +The anime synonym restore endpoint restores a soft deleted anime synonym and returns the restored anime synonym resource. + +For example, the `/restore/animesynonym/1523` endpoint will restore the soft deleted Monstory synonym for the Bakemonogatari anime and return the restored anime synonym resource. + +## URL + +```sh +PATCH /restore/animesynonym/{id} +``` + +## Authentication + +**Required Permission**: restore anime synonym + +**Roles with Permission**: Wiki Editor, Admin + +**Other Requirements**: Synonym must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + animesynonym: { + id: id, + text: "text", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/animesynonym/1523 +``` diff --git a/docs/animesynonym/show/index.md b/docs/wiki/animesynonym/show/index.md similarity index 100% rename from docs/animesynonym/show/index.md rename to docs/wiki/animesynonym/show/index.md diff --git a/docs/animesynonym/store/index.md b/docs/wiki/animesynonym/store/index.md similarity index 100% rename from docs/animesynonym/store/index.md rename to docs/wiki/animesynonym/store/index.md diff --git a/docs/animesynonym/update/index.md b/docs/wiki/animesynonym/update/index.md similarity index 94% rename from docs/animesynonym/update/index.md rename to docs/wiki/animesynonym/update/index.md index 5b226ce..35c2e59 100644 --- a/docs/animesynonym/update/index.md +++ b/docs/wiki/animesynonym/update/index.md @@ -20,6 +20,8 @@ PUT|PATCH /animesynonym/{id} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Anime synonym must not be soft deleted + ## Parameters | Name | Required | Rules | diff --git a/docs/animetheme/destroy/index.md b/docs/wiki/animetheme/destroy/index.md similarity index 93% rename from docs/animetheme/destroy/index.md rename to docs/wiki/animetheme/destroy/index.md index 4974ef7..2c5fe9d 100644 --- a/docs/animetheme/destroy/index.md +++ b/docs/wiki/animetheme/destroy/index.md @@ -20,6 +20,8 @@ DELETE /animetheme/{id} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Anime theme must not be soft deleted + ## Parameters None diff --git a/docs/animetheme/forceDelete/index.md b/docs/wiki/animetheme/forceDelete/index.md similarity index 100% rename from docs/animetheme/forceDelete/index.md rename to docs/wiki/animetheme/forceDelete/index.md diff --git a/docs/wiki/animetheme/index.md b/docs/wiki/animetheme/index.md new file mode 100644 index 0000000..ca5fa12 --- /dev/null +++ b/docs/wiki/animetheme/index.md @@ -0,0 +1,63 @@ +--- +title: Anime Theme +--- + +# Anime Theme + +--- + +An anime theme API resource represents an OP or ED sequence for an anime. + +For example, the anime Bakemonogatari has five OP anime themes and one ED anime theme. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :--------------------------------------------------------------- | +| id | Integer | No | Yes | The primary key of the resource | +| type | Enum | Yes | Yes | The type of the sequence [OP, ED] | +| sequence | Integer | Yes | Yes | The numeric ordering of the theme | +| group | String | Yes | Yes | Used to distinguish sequence belongs to dubs, rebroadcasts, etc. | +| slug | String | No | Yes | The URL slug & route key of the resource | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +* anime +* anime.images +* animethemeentries +* animethemeentries.videos +* song +* song.artists + +## Endpoints + +**[Anime Theme Destroy](/wiki/animetheme/destroy/)** + +The anime theme destroy endpoint soft deletes an anime theme and returns the deleted anime theme resource. + +**[Anime Theme Force Delete](/wiki/animetheme/forceDelete/)** + +The anime theme force delete endpoint hard deletes an anime theme and returns a confirmation message. + +**[Anime Theme Index](/wiki/animetheme/index/)** + +The anime theme index endpoint displays a listing of anime theme resources. + +**[Anime Theme Restore](/wiki/animetheme/restore/)** + +The anime theme restore endpoint restores a soft deleted anime theme and returns the restored anime theme resource. + +**[Anime Theme Show](/wiki/animetheme/show/)** + +The anime theme show endpoint returns an anime theme resource. + +**[Anime Theme Store](/wiki/animetheme/store/)** + +The anime theme store endpoint creates a new anime theme and returns the new anime theme resource. + +**[Anime Theme Update](/wiki/animetheme/update/)** + +The anime theme update endpoint updates an anime theme and returns the updated anime theme resource. \ No newline at end of file diff --git a/docs/animetheme/index/index.md b/docs/wiki/animetheme/index/index.md similarity index 86% rename from docs/animetheme/index/index.md rename to docs/wiki/animetheme/index/index.md index 82b4915..e368868 100644 --- a/docs/animetheme/index/index.md +++ b/docs/wiki/animetheme/index/index.md @@ -44,11 +44,12 @@ None ## Allowed Relation Sort Fields -| Name | Description | -| :----------: | :--------------------------------------------------------------------- | -| anime.season | Sort resources on the season of the anime that the resource belongs to | -| anime.year | Sort resources on the year of the anime that the resource belongs to | -| song.title | Sort resources on the title of the song that the resource belongs to | +| Name | Description | +| :----------------: | :--------------------------------------------------------------------------- | +| anime.season | Sort resources on the season of the anime that the resource belongs to | +| anime.media_format | Sort resources on the media_format of the anime that the resource belongs to | +| anime.year | Sort resources on the year of the anime that the resource belongs to | +| song.title | Sort resources on the title of the song that the resource belongs to | ## Filters diff --git a/docs/wiki/animetheme/restore/index.md b/docs/wiki/animetheme/restore/index.md new file mode 100644 index 0000000..c8010c6 --- /dev/null +++ b/docs/wiki/animetheme/restore/index.md @@ -0,0 +1,50 @@ +--- +title: Anime Theme Restore +--- + +# Anime Theme Restore Endpoint + +The anime theme restore endpoint restores a soft deleted anime theme and returns the restored anime theme resource. + +For example, the `/restore/animetheme/3373` endpoint will restore the soft deleted OP1 theme for the Bakemonogatari anime and return the restored anime theme resource. + +## URL + +```sh +PATCH /restore/animetheme/{id} +``` + +## Authentication + +**Required Permission**: restore anime theme + +**Roles with Permission**: Wiki Editor, Admin + +**Other Requirements**: Theme must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + animetheme: { + id: id, + type: "type", + sequence: sequence, + group: "group", + slug: "slug", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/animetheme/3373 +``` diff --git a/docs/animetheme/show/index.md b/docs/wiki/animetheme/show/index.md similarity index 100% rename from docs/animetheme/show/index.md rename to docs/wiki/animetheme/show/index.md diff --git a/docs/animetheme/store/index.md b/docs/wiki/animetheme/store/index.md similarity index 100% rename from docs/animetheme/store/index.md rename to docs/wiki/animetheme/store/index.md diff --git a/docs/animetheme/update/index.md b/docs/wiki/animetheme/update/index.md similarity index 95% rename from docs/animetheme/update/index.md rename to docs/wiki/animetheme/update/index.md index 927a528..e43c1d8 100644 --- a/docs/animetheme/update/index.md +++ b/docs/wiki/animetheme/update/index.md @@ -20,6 +20,8 @@ PUT|PATCH /animetheme/{id} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Anime theme must not be soft deleted + ## Parameters | Name | Required | Rules | diff --git a/docs/animethemeentry/destroy/index.md b/docs/wiki/animethemeentry/destroy/index.md similarity index 93% rename from docs/animethemeentry/destroy/index.md rename to docs/wiki/animethemeentry/destroy/index.md index 9b0ccd3..023ba6d 100644 --- a/docs/animethemeentry/destroy/index.md +++ b/docs/wiki/animethemeentry/destroy/index.md @@ -20,6 +20,8 @@ DELETE /animethemeentry/{id} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Anime theme entry must not be soft deleted + ## Parameters None diff --git a/docs/animethemeentry/forceDelete/index.md b/docs/wiki/animethemeentry/forceDelete/index.md similarity index 100% rename from docs/animethemeentry/forceDelete/index.md rename to docs/wiki/animethemeentry/forceDelete/index.md diff --git a/docs/wiki/animethemeentry/index.md b/docs/wiki/animethemeentry/index.md new file mode 100644 index 0000000..533373b --- /dev/null +++ b/docs/wiki/animethemeentry/index.md @@ -0,0 +1,61 @@ +--- +title: Anime Theme Entry +--- + +# Anime Theme Entry + +--- + +An anime theme entry API resource represents a version of an anime theme. + +For example, the ED theme of the Bakemonogatari anime has three anime theme entries to represent three versions. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :--------------------------------------------- | +| id | Integer | No | Yes | The primary key of the resource | +| version | Integer | Yes | Yes | The version number of the theme | +| episodes | String | Yes | Yes | The episodes that the theme is used for | +| nsfw | Boolean | No | Yes | Is not safe for work content included? | +| spoiler | Boolean | No | Yes | Is content included that may spoil the viewer? | +| notes | String | Yes | Yes | Any additional information for this sequence | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +* animetheme +* animetheme.anime +* videos + +## Endpoints + +**[Anime Theme Entry Destroy](/wiki/animethemeentry/destroy/)** + +The anime theme entry destroy endpoint soft deletes an anime theme entry and returns the deleted anime theme entry resource. + +**[Anime Theme Entry Force Delete](/wiki/animethemeentry/forceDelete/)** + +The anime theme entry force delete endpoint hard deletes an anime theme entry and returns a confirmation message. + +**[Anime Theme Entry Index](/wiki/animethemeentry/index/)** + +The anime theme entry index endpoint displays a listing of anime theme entry resources. + +**[Anime Theme Entry Restore](/wiki/animethemeentry/restore/)** + +The anime theme entry restore endpoint restores a soft deleted anime theme entry and returns the restored anime theme entry resource. + +**[Anime Theme Entry Show](/wiki/animethemeentry/show/)** + +The anime theme entry show endpoint returns an anime theme entry resource. + +**[Anime Theme Entry Store](/wiki/animethemeentry/store/)** + +The anime theme entry store endpoint creates a new anime theme entry and returns the new anime theme entry resource. + +**[Anime Theme Entry Update](/wiki/animethemeentry/update/)** + +The anime theme entry update endpoint updates an anime theme entry and returns the updated anime theme entry resource. \ No newline at end of file diff --git a/docs/animethemeentry/index/index.md b/docs/wiki/animethemeentry/index/index.md similarity index 100% rename from docs/animethemeentry/index/index.md rename to docs/wiki/animethemeentry/index/index.md diff --git a/docs/wiki/animethemeentry/restore/index.md b/docs/wiki/animethemeentry/restore/index.md new file mode 100644 index 0000000..e8ddcbb --- /dev/null +++ b/docs/wiki/animethemeentry/restore/index.md @@ -0,0 +1,51 @@ +--- +title: Anime Theme Entry Restore +--- + +# Anime Theme Entry Restore Endpoint + +The anime theme entry restore endpoint restores a soft deleted anime theme entry and returns the restored anime theme entry resource. + +For example, the `/restore/animethemeentry/3822` endpoint will restore the soft deleted V2 entry for the ED1 theme of the Bakemonogatari anime and return the restored anime theme entry resource. + +## URL + +```sh +PATCH /restore/animethemeentry/{id} +``` + +## Authentication + +**Required Permission**: restore anime theme entry + +**Roles with Permission**: Wiki Editor, Admin + +**Other Requirements**: Entry must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + animethemeentry: { + id: id, + version: version, + episodes: "episodes", + nsfw: nsfw, + spoiler: spoiler, + notes: "notes", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/animethemeentry/3822 +``` diff --git a/docs/animethemeentry/show/index.md b/docs/wiki/animethemeentry/show/index.md similarity index 100% rename from docs/animethemeentry/show/index.md rename to docs/wiki/animethemeentry/show/index.md diff --git a/docs/animethemeentry/store/index.md b/docs/wiki/animethemeentry/store/index.md similarity index 100% rename from docs/animethemeentry/store/index.md rename to docs/wiki/animethemeentry/store/index.md diff --git a/docs/animethemeentry/update/index.md b/docs/wiki/animethemeentry/update/index.md similarity index 95% rename from docs/animethemeentry/update/index.md rename to docs/wiki/animethemeentry/update/index.md index 4cd2a7b..e137469 100644 --- a/docs/animethemeentry/update/index.md +++ b/docs/wiki/animethemeentry/update/index.md @@ -20,6 +20,8 @@ PUT|PATCH /animethemeentry/{id} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Anime theme entry must not be soft deleted + ## Parameters | Name | Required | Rules | diff --git a/docs/wiki/animethemeentryvideo/destroy/index.md b/docs/wiki/animethemeentryvideo/destroy/index.md new file mode 100644 index 0000000..da77971 --- /dev/null +++ b/docs/wiki/animethemeentryvideo/destroy/index.md @@ -0,0 +1,39 @@ +--- +title: Anime Theme Entry Video Destroy +--- + +# Anime Theme Entry Video Destroy Endpoint + +The anime theme entry video destroy endpoint deletes an anime theme entry video and returns the deleted anime theme entry video resource. + +For example, the `/animethemeentryvideo/3814/Bakemonogatari-OP1.webm` endpoint will delete the association between the Bakemonogatari OP1 anime theme entry and the Bakemonogatari-OP1.webm video. + +## URL + +```sh +DELETE /animethemeentryvideo/{animethemeentry:id}/{video:slug} +``` + +## Authentication + +**Required Permission**: delete anime theme entry, delete video + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + message: "Video 'Bakemonogatari-OP1.webm' has been detached from Entry 'Bakemonogatari OP1'.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/animethemeentryvideo/bakemonogatari/monogatari +``` diff --git a/docs/wiki/animethemeentryvideo/index.md b/docs/wiki/animethemeentryvideo/index.md new file mode 100644 index 0000000..20a6f95 --- /dev/null +++ b/docs/wiki/animethemeentryvideo/index.md @@ -0,0 +1,39 @@ +--- +title: Anime Theme Entry Video +--- + +# Anime Theme Entry Video + +--- + +An anime theme entry video API resource represents the association between an anime theme entry and a video. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------- | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | + +## Allowed Include Paths + +* animethemeentry +* video + +## Endpoints + +**[Anime Theme Entry Video Destroy](/wiki/animethemeentryvideo/destroy/)** + +The anime theme entry video destroy endpoint deletes an anime theme entry video and returns the deleted anime theme entry video resource. + +**[Anime Theme Entry Video Index](/wiki/animethemeentryvideo/index/)** + +The anime theme entry video index endpoint displays a listing of anime theme entry video resources. + +**[Anime Theme Entry Video Show](/wiki/animethemeentryvideo/show/)** + +The anime theme entry video show endpoint returns an anime theme entry video resource. + +**[Anime Theme Entry Video Store](/wiki/animethemeentryvideo/store/)** + +The anime theme entry video store endpoint creates a new anime theme entry video and returns the new anime theme entry video resource. \ No newline at end of file diff --git a/docs/wiki/animethemeentryvideo/index/index.md b/docs/wiki/animethemeentryvideo/index/index.md new file mode 100644 index 0000000..0a15380 --- /dev/null +++ b/docs/wiki/animethemeentryvideo/index/index.md @@ -0,0 +1,76 @@ +--- +title: Anime Theme Entry Video Index +--- + +# Anime Theme Entry Video Index Endpoint + +The anime theme entry video index endpoint returns a listing of anime theme entry video resources. + +## URL + +```sh +GET /animethemeentryvideo/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :---------------------------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for anime theme entry video resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of anime theme entry video resources to display | +| page[size] | No | The number of anime theme entry video resources to display for the current page | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :--------: | :------------------------------------------------ | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | + +## Filters + +| Name | Description | +| :--------: | :--------------------------------------------------------- | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| has | Filter resources on relations within allowed include paths | + +## Response + +```json +{ + animethemeentryvideos: [ + { + created_at: "created_at", + updated_at: "updated_at" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/animethemeentryvideo/ +``` diff --git a/docs/wiki/animethemeentryvideo/show/index.md b/docs/wiki/animethemeentryvideo/show/index.md new file mode 100644 index 0000000..e8fa960 --- /dev/null +++ b/docs/wiki/animethemeentryvideo/show/index.md @@ -0,0 +1,40 @@ +--- +title: Anime Theme Entry Video Show +--- + +# Anime Theme Entry Video Show Endpoint + +The anime theme entry video show endpoint returns an anime theme entry video resource. + +For example, the `/animethemeentryvideo/3814/Bakemonogatari-OP1.webm` endpoint will return the anime theme entry video resource for the association between the Bakemonogatari OP1 anime theme entry and the Bakemonogatari-OP1.webm video. + +## URL + +```sh +GET /animethemeentryvideo/{animethemeentry:id}/{video:slug} +``` + +## Authentication + +None + +## Parameters + +None + +## Response + +```json +{ + animethemeentryvideo: { + created_at: "created_at", + updated_at: "updated_at" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/animethemeentryvideo/3814/Bakemonogatari-OP1.webm +``` diff --git a/docs/wiki/animethemeentryvideo/store/index.md b/docs/wiki/animethemeentryvideo/store/index.md new file mode 100644 index 0000000..c1a807a --- /dev/null +++ b/docs/wiki/animethemeentryvideo/store/index.md @@ -0,0 +1,42 @@ +--- +title: Anime Theme Entry Video Store +--- + +# Anime Theme Entry Video Store Endpoint + +The anime theme entry video store endpoint creates a new anime theme entry video and returns the new anime theme entry video resource. + +For example, the `/animethemeentryvideo/3814/Bakemonogatari-OP1.webm` endpoint will create a new association between the Bakemonogatari OP1 anime theme entry and the Bakemonogatari-OP1.webm video. + +## URL + +```sh +POST /animethemeentryvideo/{animethemeentry:id}/{video:slug} +``` + +## Authentication + +**Required Permission**: create anime theme entry, create video + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + animethemeentryvideo: { + created_at: "created_at", + updated_at: "updated_at" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/animethemeentryvideo/3814/Bakemonogatari-OP1.webm +``` diff --git a/docs/animeyear/index/index.md b/docs/wiki/animeyear/index/index.md similarity index 100% rename from docs/animeyear/index/index.md rename to docs/wiki/animeyear/index/index.md diff --git a/docs/animeyear/show/index.md b/docs/wiki/animeyear/show/index.md similarity index 92% rename from docs/animeyear/show/index.md rename to docs/wiki/animeyear/show/index.md index 81011c2..de24667 100644 --- a/docs/animeyear/show/index.md +++ b/docs/wiki/animeyear/show/index.md @@ -36,6 +36,7 @@ None slug: "slug", year: year, season: "season", + media_format: "media_format", synopsis: "synopsis", created_at: "created_at", updated_at: "updated_at", @@ -50,6 +51,7 @@ None slug: "slug", year: year, season: "season", + media_format: "media_format", synopsis: "synopsis", created_at: "created_at", updated_at: "updated_at", @@ -64,6 +66,7 @@ None slug: "slug", year: year, season: "season", + media_format: "media_format", synopsis: "synopsis", created_at: "created_at", updated_at: "updated_at", @@ -78,6 +81,7 @@ None slug: "slug", year: year, season: "season", + media_format: "media_format", synopsis: "synopsis", created_at: "created_at", updated_at: "updated_at", diff --git a/docs/artist/destroy/index.md b/docs/wiki/artist/destroy/index.md similarity index 73% rename from docs/artist/destroy/index.md rename to docs/wiki/artist/destroy/index.md index 4e0fc9d..76089e4 100644 --- a/docs/artist/destroy/index.md +++ b/docs/wiki/artist/destroy/index.md @@ -6,7 +6,7 @@ title: Artist Destroy The artist destroy endpoint soft deletes an artist and returns the deleted artist resource. -For example, the `/artist/chiwa_saito` endpoint will soft delete the Chiwa Saito artist and return the deleted Chiwa Saito resource. +For example, the `/artist/chiwa_saitou` endpoint will soft delete the Chiwa Saitou artist and return the deleted Chiwa Saitou resource. ## URL @@ -20,6 +20,8 @@ DELETE /artist/{slug} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Artist must not be soft deleted + ## Parameters None @@ -42,5 +44,5 @@ None ## Example ```bash -curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/artist/chiwa_saito +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/artist/chiwa_saitou ``` diff --git a/docs/artist/forceDelete/index.md b/docs/wiki/artist/forceDelete/index.md similarity index 65% rename from docs/artist/forceDelete/index.md rename to docs/wiki/artist/forceDelete/index.md index f337392..c205ff0 100644 --- a/docs/artist/forceDelete/index.md +++ b/docs/wiki/artist/forceDelete/index.md @@ -6,7 +6,7 @@ title: Artist Force Delete The artist force delete endpoint hard deletes an artist and returns a confirmation message. -For example, the `/forceDelete/artist/chiwa_saito` endpoint will hard delete the Chiwa Saito artist and return a confirmation message. +For example, the `/forceDelete/artist/chiwa_saitou` endpoint will hard delete the Chiwa Saitou artist and return a confirmation message. ## URL @@ -28,12 +28,12 @@ None ```json { - message: "The Artist 'Chiwa Saito' was deleted.", + message: "The Artist 'Chiwa Saitou' was deleted.", } ``` ## Example ```bash -curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/forceDelete/artist/chiwa_saito +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/forceDelete/artist/chiwa_saitou ``` diff --git a/docs/wiki/artist/index.md b/docs/wiki/artist/index.md new file mode 100644 index 0000000..830e707 --- /dev/null +++ b/docs/wiki/artist/index.md @@ -0,0 +1,68 @@ +--- +title: Artist +--- + +# Artist + +--- + +An artist API resource represents a musical performer of anime sequences. + +For example, Chiwa Saitou is the musical performer of the Bakemonogatari OP1 theme, among many others. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------------------------- | +| id | Integer | No | Yes | The primary key of the resource | +| name | String | No | Yes | The primary title of the artist | +| slug | String | No | Yes | The URL slug & route key of the resource | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +* groups +* images +* members +* resources +* songs +* songs.animethemes +* songs.animethemes.anime + +## Allowed Pivots + +* artistmember +* artistresource +* artistsong + +## Endpoints + +**[Artist Destroy](/wiki/artist/destroy/)** + +The artist destroy endpoint soft deletes an artist and returns the deleted artist resource. + +**[Artist Force Delete](/wiki/artist/forceDelete/)** + +The artist force delete endpoint hard deletes an artist and returns a confirmation message. + +**[Artist Index](/wiki/artist/index/)** + +The artist index endpoint displays a listing of artist resources. + +**[Artist Restore](/wiki/artist/restore/)** + +The artist restore endpoint restores a soft deletesd artist and returns the restored artist resource. + +**[Artist Show](/wiki/artist/show/)** + +The artist show endpoint returns an artist resource. + +**[Artist Store](/wiki/artist/store/)** + +The artist store endpoint creates a new artist and returns the new artist resource. + +**[Artist Update](/wiki/artist/update/)** + +The artist update endpoint updates an artist and returns the updated artist resource. \ No newline at end of file diff --git a/docs/artist/index/index.md b/docs/wiki/artist/index/index.md similarity index 100% rename from docs/artist/index/index.md rename to docs/wiki/artist/index/index.md diff --git a/docs/wiki/artist/restore/index.md b/docs/wiki/artist/restore/index.md new file mode 100644 index 0000000..4d1f10f --- /dev/null +++ b/docs/wiki/artist/restore/index.md @@ -0,0 +1,48 @@ +--- +title: Artist Restore +--- + +# Artist Restore Endpoint + +The artist restore endpoint restores a soft deleted artist and returns the restored artist resource. + +For example, the `/restore/artist/chiwa_saitou` endpoint will restore the soft deleted Chiwa Saitou artist and return the restored Chiwa Saitou resource. + +## URL + +```sh +PATCH /restore/artist/{slug} +``` + +## Authentication + +**Required Permission**: restore artist + +**Roles with Permission**: Wiki Editor, Admin + +**Other Requirements**: Artist must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + artist: { + id: id, + name: "name", + slug: "slug", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/artist/chiwa_saitou +``` diff --git a/docs/artist/show/index.md b/docs/wiki/artist/show/index.md similarity index 84% rename from docs/artist/show/index.md rename to docs/wiki/artist/show/index.md index a4a8a72..3ba781c 100644 --- a/docs/artist/show/index.md +++ b/docs/wiki/artist/show/index.md @@ -6,7 +6,7 @@ title: Artist Show The artist show endpoint returns an artist resource. -For example, the `/artist/chiwa_saito` endpoint will return the artist resource for the artist Chiwa Saito. +For example, the `/artist/chiwa_saitou` endpoint will return the artist resource for the artist Chiwa Saitou. ## URL @@ -45,5 +45,5 @@ None ## Example ```bash -curl https://api.animethemes.moe/artist/chiwa_saito +curl https://api.animethemes.moe/artist/chiwa_saitou ``` diff --git a/docs/artist/store/index.md b/docs/wiki/artist/store/index.md similarity index 85% rename from docs/artist/store/index.md rename to docs/wiki/artist/store/index.md index bcee7e5..2e43e77 100644 --- a/docs/artist/store/index.md +++ b/docs/wiki/artist/store/index.md @@ -6,7 +6,7 @@ title: Artist Store The artist store endpoint creates a new artist and returns the new artist resource. -For example, the `/artist?name=Chiwa+Saito&slug=chiwa_saito` endpoint will create a new Chiwa Saito artist and return the new Chiwa Saito resource. +For example, the `/artist?name=Chiwa+Saito&slug=chiwa_saitou` endpoint will create a new Chiwa Saitou artist and return the new Chiwa Saitou resource. ## URL diff --git a/docs/artist/update/index.md b/docs/wiki/artist/update/index.md similarity index 77% rename from docs/artist/update/index.md rename to docs/wiki/artist/update/index.md index 6fda7e7..41528fd 100644 --- a/docs/artist/update/index.md +++ b/docs/wiki/artist/update/index.md @@ -6,7 +6,7 @@ title: Artist Update The artist update endpoint updates an artist and returns the updated artist resource. -For example, the `/artist/chiwa_saito?name=Chiwa+Saito` endpoint will update the Chiwa Saito artist name attribute and return the updated Chiwa Saito resource. +For example, the `/artist/chiwa_saitou?name=Chiwa+Saito` endpoint will update the Chiwa Saitou artist name attribute and return the updated Chiwa Saitou resource. ## URL @@ -20,6 +20,8 @@ PUT|PATCH /artist/{slug} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Artist must not be soft deleted + ## Parameters | Name | Required | Rules | @@ -45,5 +47,5 @@ PUT|PATCH /artist/{slug} ## Example ```bash -curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/artist/chiwa_saito +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/artist/chiwa_saitou ``` diff --git a/docs/wiki/artistimage/destroy/index.md b/docs/wiki/artistimage/destroy/index.md new file mode 100644 index 0000000..e8be570 --- /dev/null +++ b/docs/wiki/artistimage/destroy/index.md @@ -0,0 +1,39 @@ +--- +title: Artist Image Destroy +--- + +# Artist Image Destroy Endpoint + +The artist image destroy endpoint deletes an artist image and returns the deleted artist image resource. + +For example, the `/artistimage/chiwa_saitou/6703` endpoint will delete the association between the Chiwa Saitou artist and the large cover image of id 6703. + +## URL + +```sh +DELETE /artistimage/{artist:slug}/{image:id} +``` + +## Authentication + +**Required Permission**: delete artist, delete image + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + message: "Image 'KXWxcUb0dF3Kb1SmWP2GRcd72Nv6a0OEjj33pDmP.png' has been detached from Artist 'Chiwa Saitou'.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/artistimage/chiwa_saitou/6703 +``` diff --git a/docs/wiki/artistimage/index.md b/docs/wiki/artistimage/index.md new file mode 100644 index 0000000..e41859c --- /dev/null +++ b/docs/wiki/artistimage/index.md @@ -0,0 +1,39 @@ +--- +title: Artist Image +--- + +# Artist Image + +--- + +An artist image API resource represents the association between an artist and an image. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------- | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | + +## Allowed Include Paths + +* artist +* image + +## Endpoints + +**[Artist Image Destroy](/wiki/artistimage/destroy/)** + +The artist image destroy endpoint deletes an artist image and returns the deleted artist image resource. + +**[Artist Image Index](/wiki/artistimage/index/)** + +The artist image index endpoint displays a listing of artist image resources. + +**[Artist Image Show](/wiki/artistimage/show/)** + +The artist image show endpoint returns an artist image resource. + +**[Artist Image Store](/wiki/artistimage/store/)** + +The artist image store endpoint creates a new artist image and returns the new artist image resource. \ No newline at end of file diff --git a/docs/wiki/artistimage/index/index.md b/docs/wiki/artistimage/index/index.md new file mode 100644 index 0000000..b933afa --- /dev/null +++ b/docs/wiki/artistimage/index/index.md @@ -0,0 +1,76 @@ +--- +title: Artist Image Index +--- + +# Artist Image Index Endpoint + +The artist image index endpoint returns a listing of artist image resources. + +## URL + +```sh +GET /artistimage/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :----------------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for artist image resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of artist image resources to display | +| page[size] | No | The number of artist image resources to display for the current page | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :--------: | :------------------------------------------------ | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | + +## Filters + +| Name | Description | +| :--------: | :--------------------------------------------------------- | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| has | Filter resources on relations within allowed include paths | + +## Response + +```json +{ + artistimages: [ + { + created_at: "created_at", + updated_at: "updated_at" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/artistimage/ +``` diff --git a/docs/wiki/artistimage/show/index.md b/docs/wiki/artistimage/show/index.md new file mode 100644 index 0000000..8b467d2 --- /dev/null +++ b/docs/wiki/artistimage/show/index.md @@ -0,0 +1,40 @@ +--- +title: Artist Image Show +--- + +# Artist Image Show Endpoint + +The artist image show endpoint returns an artist image resource. + +For example, the `/artistimage/chiwa_saitou/6703` endpoint will return the artist image resource for the association between the Chiwa Saitou artist and the large cover image of id 6703. + +## URL + +```sh +GET /artistimage/{artist:slug}/{image:id} +``` + +## Authentication + +None + +## Parameters + +None + +## Response + +```json +{ + artistimage: { + created_at: "created_at", + updated_at: "updated_at" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/artistimage/chiwa_saitou/6703 +``` diff --git a/docs/wiki/artistimage/store/index.md b/docs/wiki/artistimage/store/index.md new file mode 100644 index 0000000..54fc5df --- /dev/null +++ b/docs/wiki/artistimage/store/index.md @@ -0,0 +1,42 @@ +--- +title: Artist Image Store +--- + +# Artist Image Store Endpoint + +The artist image store endpoint creates a new artist image and returns the new artist image resource. + +For example, the `/artistimage/chiwa_saitou/6703` endpoint will create a new association between the Chiwa Saitou artist and the large cover image of id 6703. + +## URL + +```sh +POST /artistimage/{artist:slug}/{image:id} +``` + +## Authentication + +**Required Permission**: create artist, create image + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + artistimage: { + created_at: "created_at", + updated_at: "updated_at" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/artistimage/chiwa_saitou/6703 +``` diff --git a/docs/wiki/artistmember/destroy/index.md b/docs/wiki/artistmember/destroy/index.md new file mode 100644 index 0000000..5f65ddc --- /dev/null +++ b/docs/wiki/artistmember/destroy/index.md @@ -0,0 +1,39 @@ +--- +title: Artist Member Destroy +--- + +# Artist Member Destroy Endpoint + +The artist member destroy endpoint deletes an artist member and returns the deleted artist member resource. + +For example, the `/artistmember/ms/pile` endpoint will delete the association between the μ's group and the Pile member. + +## URL + +```sh +DELETE /artistmember/{artist:slug}/{artist:slug} +``` + +## Authentication + +**Required Permission**: delete artist + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + message: "Member 'Pile' has been detached from Artist 'μ's'.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/artistmember/ms/pile +``` diff --git a/docs/wiki/artistmember/index.md b/docs/wiki/artistmember/index.md new file mode 100644 index 0000000..8704e7e --- /dev/null +++ b/docs/wiki/artistmember/index.md @@ -0,0 +1,44 @@ +--- +title: Artist Member +--- + +# Artist Member + +--- + +An artist member API resource represents the association of an artist and a group/unit. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :--------------------------------------------------- | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| as | String | No | Yes | Used to distinguish membership by alias or character | + +## Allowed Include Paths + +* artist +* member + +## Endpoints + +**[Artist Member Destroy](/wiki/artistmember/destroy/)** + +The artist member destroy endpoint deletes an artist member and returns the deleted artist member resource. + +**[Artist Member Index](/wiki/artistmember/index/)** + +The artist member index endpoint displays a listing of artist member resources. + +**[Artist Member Show](/wiki/artistmember/show/)** + +The artist member show endpoint returns an artist member resource. + +**[Artist Member Store](/wiki/artistmember/store/)** + +The artist member store endpoint creates a new artist member and returns the new artist member resource. + +**[Artist Member Update](/wiki/artistmember/update/)** + +The artist member update endpoint updates an artist member and returns the updated artist member resource. \ No newline at end of file diff --git a/docs/wiki/artistmember/index/index.md b/docs/wiki/artistmember/index/index.md new file mode 100644 index 0000000..65cef00 --- /dev/null +++ b/docs/wiki/artistmember/index/index.md @@ -0,0 +1,79 @@ +--- +title: Artist Member Index +--- + +# Artist Member Index Endpoint + +The artist member index endpoint returns a listing of artist member resources. + +## URL + +```sh +GET /artistmember/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :------------------------------------------------------------------------------------ | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for artist member resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of artist member resources to display | +| page[size] | No | The number of artist member resources to display for the current page | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :--------: | :------------------------------------------------------------ | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | +| as | Sort resources on distinguishing label for alias or character | + +## Filters + +| Name | Description | +| :--------: | :-------------------------------------------------------------- | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| has | Filter resources on relations within allowed include paths | +| as | Filter resources on distinguishing label for alias or character | + +## Response + +```json +{ + artistmembers: [ + { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/artistmember/ +``` diff --git a/docs/wiki/artistmember/show/index.md b/docs/wiki/artistmember/show/index.md new file mode 100644 index 0000000..e9027b0 --- /dev/null +++ b/docs/wiki/artistmember/show/index.md @@ -0,0 +1,41 @@ +--- +title: Artist Member Show +--- + +# Artist Member Show Endpoint + +The artist member show endpoint returns an artist member resource. + +For example, the `/artistmember/ms/pile` endpoint will return the artist member resource for the association between the association between the μ's group and the Pile member. + +## URL + +```sh +GET /artistmember/{artist:slug}/{artist:slug} +``` + +## Authentication + +None + +## Parameters + +None + +## Response + +```json +{ + artistmember: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/artistmember/ms/pile +``` diff --git a/docs/wiki/artistmember/store/index.md b/docs/wiki/artistmember/store/index.md new file mode 100644 index 0000000..2741e52 --- /dev/null +++ b/docs/wiki/artistmember/store/index.md @@ -0,0 +1,45 @@ +--- +title: Artist Member Store +--- + +# Artist Member Store Endpoint + +The artist member store endpoint creates a new artist member and returns the new artist member resource. + +For example, the `/artistmember/ms/pile` endpoint will create a new association between the μ's group and the Pile member. + +## URL + +```sh +POST /artistmember/{artist:slug}/{artist:slug} +``` + +## Authentication + +**Required Permission**: create artist + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +| Name | Required | Rules | +| :--: | :------: | :-------------- | +| as | No | string, max:192 | + +## Response + +```json +{ + artistmember: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/artistmember/ms/pile +``` diff --git a/docs/wiki/artistmember/update/index.md b/docs/wiki/artistmember/update/index.md new file mode 100644 index 0000000..5fc44dc --- /dev/null +++ b/docs/wiki/artistmember/update/index.md @@ -0,0 +1,45 @@ +--- +title: Artist Member Update +--- + +# Artist Member Update Endpoint + +The artist member update endpoint updates an artist member and returns the updated artist member resource. + +For example, the `/artistmember/ms/pile?as=updated+label` endpoint will update the association between the μ's group and the Pile member. + +## URL + +```sh +PUT|PATCH /artistmember/{artist:slug}/{artist:slug} +``` + +## Authentication + +**Required Permission**: update artist + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +| Name | Required | Rules | +| :---------: | :------: | :-------------- | +| as | No | string, max:192 | + +## Response + +```json +{ + artistmember: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/artistmember/ +``` diff --git a/docs/wiki/artistresource/destroy/index.md b/docs/wiki/artistresource/destroy/index.md new file mode 100644 index 0000000..200d7bf --- /dev/null +++ b/docs/wiki/artistresource/destroy/index.md @@ -0,0 +1,39 @@ +--- +title: Artist Resource Destroy +--- + +# Artist Resource Destroy Endpoint + +The artist resource destroy endpoint deletes an artist resource and returns the deleted artist resource resource. + +For example, the `/artistresource/chiwa_saitou/3361` endpoint will delete the association between the Chiwa Saitou artist and the external resource of id 3361. + +## URL + +```sh +DELETE /artistresource/{artist:slug}/{resource:id} +``` + +## Authentication + +**Required Permission**: delete artist, delete external resource + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + message: "Resource 'https://myanimelist.net/people/61' has been detached from Artist 'Chiwa Saitou'.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/artistresource/chiwa_saitou/3361 +``` diff --git a/docs/wiki/artistresource/index.md b/docs/wiki/artistresource/index.md new file mode 100644 index 0000000..75ef719 --- /dev/null +++ b/docs/wiki/artistresource/index.md @@ -0,0 +1,44 @@ +--- +title: Artist Resource +--- + +# Artist Resource + +--- + +An artist resource API resource represents the association between an artist and an external resource. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :-------------------------------------------------------- | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| as | String | No | Yes | Used to distinguish resources that map to the same artist | + +## Allowed Include Paths + +* artist +* resource + +## Endpoints + +**[Artist Resource Destroy](/wiki/artistresource/destroy/)** + +The artist resource destroy endpoint deletes an artist resource and returns the deleted artist resource resource. + +**[Artist Resource Index](/wiki/artistresource/index/)** + +The artist resource index endpoint displays a listing of artist resource resources. + +**[Artist Resource Show](/wiki/artistresource/show/)** + +The artist resource show endpoint returns an artist resource resource. + +**[Artist Resource Store](/wiki/artistresource/store/)** + +The artist resource store endpoint creates a new artist resource and returns the new artist resource resource. + +**[Artist Resource Update](/wiki/artistresource/update/)** + +The artist resource update endpoint updates an artist resource and returns the updated artist resource resource. \ No newline at end of file diff --git a/docs/wiki/artistresource/index/index.md b/docs/wiki/artistresource/index/index.md new file mode 100644 index 0000000..1acb502 --- /dev/null +++ b/docs/wiki/artistresource/index/index.md @@ -0,0 +1,79 @@ +--- +title: Artist Resource Index +--- + +# Artist Resource Index Endpoint + +The artist resource index endpoint returns a listing of artist resource resources. + +## URL + +```sh +GET /artistresource/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :----------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for artist resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of artist resource resources to display | +| page[size] | No | The number of artist resource resources to display for the current page | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :--------: | :------------------------------------------------ | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | +| as | Sort resources on distinguishing label | + +## Filters + +| Name | Description | +| :--------: | :--------------------------------------------------------- | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| as | Filter resources on the resource distinguishing label | +| has | Filter resources on relations within allowed include paths | + +## Response + +```json +{ + artistresources: [ + { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/artistresource/ +``` diff --git a/docs/wiki/artistresource/show/index.md b/docs/wiki/artistresource/show/index.md new file mode 100644 index 0000000..d88dbb4 --- /dev/null +++ b/docs/wiki/artistresource/show/index.md @@ -0,0 +1,41 @@ +--- +title: Artist Resource Show +--- + +# Artist Resource Show Endpoint + +The artist resource show endpoint returns an artist resource resource. + +For example, the `/artistresource/chiwa_saitou/3361` endpoint will return the artist resource resource for the association between the Chiwa Saitou artist and the external resource of id 3361. + +## URL + +```sh +GET /artistresource/{artist:slug}/{resource:id} +``` + +## Authentication + +None + +## Parameters + +None + +## Response + +```json +{ + artistresource: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/artistresource/chiwa_saitou/3361 +``` diff --git a/docs/wiki/artistresource/store/index.md b/docs/wiki/artistresource/store/index.md new file mode 100644 index 0000000..9c8ccad --- /dev/null +++ b/docs/wiki/artistresource/store/index.md @@ -0,0 +1,45 @@ +--- +title: Artist Resource Store +--- + +# Artist Resource Store Endpoint + +The artist resource store endpoint creates a new artist resource and returns the new artist resource resource. + +For example, the `/artistresource/chiwa_saitou/3361` endpoint will create a new association between the Chiwa Saitou artist and the external resource of id 3361. + +## URL + +```sh +POST /artistresource/{artist:slug}/{resource:id} +``` + +## Authentication + +**Required Permission**: create artist, create external resource + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +| Name | Required | Rules | +| :--: | :------: | :-------------- | +| as | No | string, max:192 | + +## Response + +```json +{ + artistresource: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/artistresource/chiwa_saitou/3361 +``` diff --git a/docs/wiki/artistresource/update/index.md b/docs/wiki/artistresource/update/index.md new file mode 100644 index 0000000..ec836f0 --- /dev/null +++ b/docs/wiki/artistresource/update/index.md @@ -0,0 +1,45 @@ +--- +title: Artist Resource Update +--- + +# Artist Resource Update Endpoint + +The artist resource store endpoint updates an artist resource and returns the updated artist resource resource. + +For example, the `/artistresource/chiwa_saitou/3361?as=updated+label` endpoint will update the association between the Chiwa Saitou artist and the external resource of id 3361. + +## URL + +```sh +PUT|PATCH /artistresource/{artist:slug}/{resource:id} +``` + +## Authentication + +**Required Permission**: update artist, update external resource + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +| Name | Required | Rules | +| :---------: | :------: | :-------------- | +| as | No | string, max:192 | + +## Response + +```json +{ + artistresource: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/artistresource/ +``` diff --git a/docs/wiki/artistsong/destroy/index.md b/docs/wiki/artistsong/destroy/index.md new file mode 100644 index 0000000..d825d62 --- /dev/null +++ b/docs/wiki/artistsong/destroy/index.md @@ -0,0 +1,39 @@ +--- +title: Artist Song Destroy +--- + +# Artist Song Destroy Endpoint + +The artist song destroy endpoint deletes an artist song and returns the deleted artist song resource. + +For example, the `/artistsong/chiwa_saitou/3373` endpoint will delete the association between the Chiwa Saitou artist and the "staple stable" song. + +## URL + +```sh +DELETE /artistsong/{artist:slug}/{song:id} +``` + +## Authentication + +**Required Permission**: delete artist, delete song + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + message: "Song 'staple stable' has been detached from Artist 'Chiwa Saitou'.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/artistsong/chiwa_saitou/3373 +``` diff --git a/docs/wiki/artistsong/index.md b/docs/wiki/artistsong/index.md new file mode 100644 index 0000000..2336803 --- /dev/null +++ b/docs/wiki/artistsong/index.md @@ -0,0 +1,44 @@ +--- +title: Artist Song +--- + +# Artist Song + +--- + +An artist song API resource represents the association between an artist and an song. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------------------------- | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| as | String | No | Yes | Used to distinguish a performance by alias, character or group | + +## Allowed Include Paths + +* artist +* song + +## Endpoints + +**[Artist Song Destroy](/wiki/artistsong/destroy/)** + +The artist song destroy endpoint deletes an artist song and returns the deleted artist song resource. + +**[Artist Song Index](/wiki/artistsong/index/)** + +The artist song index endpoint displays a listing of artist song resources. + +**[Artist Song Show](/wiki/artistsong/show/)** + +The artist song show endpoint returns an artist song resource. + +**[Artist Song Store](/wiki/artistsong/store/)** + +The artist song store endpoint creates a new artist song and returns the new artist song resource. + +**[Artist Song Update](/wiki/artistsong/update/)** + +The artist song update endpoint updates an artist song and returns the updated artist song resource. \ No newline at end of file diff --git a/docs/wiki/artistsong/index/index.md b/docs/wiki/artistsong/index/index.md new file mode 100644 index 0000000..d0bb0a3 --- /dev/null +++ b/docs/wiki/artistsong/index/index.md @@ -0,0 +1,79 @@ +--- +title: Artist Song Index +--- + +# Artist Song Index Endpoint + +The artist song index endpoint returns a listing of artist song resources. + +## URL + +```sh +GET /artistsong/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :---------------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for artist song resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of artist song resources to display | +| page[size] | No | The number of artist song resources to display for the current page | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :--------: | :---------------------------------------------------------------------------------- | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | +| as | Sort resources on distinguishing label for performance by alias, character or group | + +## Filters + +| Name | Description | +| :--------: | :------------------------------------------------------------------------------------ | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| has | Filter resources on relations within allowed include paths | +| as | Filter resources on distinguishing label for performance by alias, character or group | + +## Response + +```json +{ + artistsongs: [ + { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/artistsong/ +``` diff --git a/docs/wiki/artistsong/show/index.md b/docs/wiki/artistsong/show/index.md new file mode 100644 index 0000000..2ab0cd2 --- /dev/null +++ b/docs/wiki/artistsong/show/index.md @@ -0,0 +1,41 @@ +--- +title: Artist Song Show +--- + +# Artist Song Show Endpoint + +The artist song show endpoint returns an artist song resource. + +For example, the `/artistsong/chiwa_saitou/3373` endpoint will return the artist song resource for the association between the Chiwa Saitou artist and the "staple stable" song. + +## URL + +```sh +GET /artistsong/{artist:slug}/{song:id} +``` + +## Authentication + +None + +## Parameters + +None + +## Response + +```json +{ + artistsong: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/artistsong/chiwa_saitou/3373 +``` diff --git a/docs/wiki/artistsong/store/index.md b/docs/wiki/artistsong/store/index.md new file mode 100644 index 0000000..93cd9e4 --- /dev/null +++ b/docs/wiki/artistsong/store/index.md @@ -0,0 +1,45 @@ +--- +title: Artist Song Store +--- + +# Artist Song Store Endpoint + +The artist song store endpoint creates a new artist song and returns the new artist song resource. + +For example, the `/artistsong/chiwa_saitou/3373` endpoint will create a new association between the Chiwa Saitou artist and the "staple stable" song. + +## URL + +```sh +POST /artistsong/{artist:slug}/{song:id} +``` + +## Authentication + +**Required Permission**: create artist, create song + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +| Name | Required | Rules | +| :--: | :------: | :-------------- | +| as | No | string, max:192 | + +## Response + +```json +{ + artistsong: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/artistsong/chiwa_saitou/3373 +``` diff --git a/docs/wiki/artistsong/update/index.md b/docs/wiki/artistsong/update/index.md new file mode 100644 index 0000000..6171c0c --- /dev/null +++ b/docs/wiki/artistsong/update/index.md @@ -0,0 +1,45 @@ +--- +title: Artist Song Update +--- + +# Artist Song Update Endpoint + +The artist song update endpoint updates an artist song and returns the updated artist song resource. + +For example, the `/artistsong/chiwa_saitou/3373?as=updated+label` endpoint will update the association between the Chiwa Saitou artist and the "staple stable" song. + +## URL + +```sh +PUT|PATCH /artistsong/{artist:slug}/{song:id} +``` + +## Authentication + +**Required Permission**: update artist, update song + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +| Name | Required | Rules | +| :---------: | :------: | :-------------- | +| as | No | string, max:192 | + +## Response + +```json +{ + artistsong: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/artistsong/ +``` diff --git a/docs/audio/destroy/index.md b/docs/wiki/audio/destroy/index.md similarity index 88% rename from docs/audio/destroy/index.md rename to docs/wiki/audio/destroy/index.md index af084a3..425315a 100644 --- a/docs/audio/destroy/index.md +++ b/docs/wiki/audio/destroy/index.md @@ -20,6 +20,8 @@ DELETE /audio/{basename} **Roles with Permission**: Admin +**Other Requirements**: Audio must not be soft deleted + ## Parameters None @@ -38,7 +40,8 @@ None created_at: "created_at", updated_at: "updated_at", deleted_at: "deleted_at", - link: "link" + link: "link", + views_count: views_count } } ``` diff --git a/docs/audio/forceDelete/index.md b/docs/wiki/audio/forceDelete/index.md similarity index 100% rename from docs/audio/forceDelete/index.md rename to docs/wiki/audio/forceDelete/index.md diff --git a/docs/wiki/audio/index.md b/docs/wiki/audio/index.md new file mode 100644 index 0000000..de71c22 --- /dev/null +++ b/docs/wiki/audio/index.md @@ -0,0 +1,61 @@ +--- +title: Audio +--- + +# Audio + +--- + +An audio API resource represents the audio track of a video. + +For example, the audio Bakemonogatari-OP1.ogg represents the audio track of the Bakemonogatari-OP1.webm video. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :-------------------------------------------- | +| id | Integer | No | Yes | The primary key of the resource | +| basename | String | No | Yes | The basename of the file in storage | +| filename | String | No | Yes | The filename of the file in storage | +| path | String | No | Yes | The path of the file in storage | +| size | Integer | No | Yes | The size of the file in storage in Bytes | +| mimetype | String | No | No | The media type of the file in storage | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | +| link | String | No | Yes | The URL to stream the file from storage | +| views_count | Integer | No | No | The number of views recorded for the resource | + +## Allowed Include Paths + +* videos + +## Endpoints + +**[Audio Destroy](/wiki/audio/destroy/)** + +The audio destroy endpoint soft deletes an audio and returns the deleted audio resource. + +**[Audio Force Delete](/wiki/audio/forceDelete/)** + +The audio force delete endpoint hard deletes an audio and returns a confirmation message. + +**[Audio Index](/wiki/audio/index/)** + +The audio index endpoint displays a listing of audio resources. + +**[Audio Restore](/wiki/audio/restore/)** + +The audio restore endpoint restores a soft deleted audio and returns the restored audio resource. + +**[Audio Show](/wiki/audio/show/)** + +The audio show endpoint returns an audio resource. + +**[Audio Store](/wiki/audio/store/)** + +The audio store endpoint creates a new audio and returns the new audio resource. + +**[Audio Update](/wiki/audio/update/)** + +The audio update endpoint updates an audio and returns the updated audio resource. \ No newline at end of file diff --git a/docs/transaction/index/index.md b/docs/wiki/audio/index/index.md similarity index 61% rename from docs/transaction/index/index.md rename to docs/wiki/audio/index/index.md index 3621d09..0659ae0 100644 --- a/docs/transaction/index/index.md +++ b/docs/wiki/audio/index/index.md @@ -1,15 +1,15 @@ --- -title: Transaction Index +title: Audio Index --- -# Transaction Index Endpoint +# Audio Index Endpoint -The transaction index endpoint returns a listing of transaction resources. +The audio index endpoint returns a listing of audio resources. ## URL ```sh -GET /transaction/ +GET /audio/ ``` ## Authentication @@ -22,6 +22,7 @@ None | :----------: | :------: | :---------------------------------------------------------------------------- | | fields | No | Sparse fieldsets for resource types | | filter | No | Filters for anime resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | | page[number] | No | The page of anime resources to display | | page[size] | No | The number of anime resources to display for the current page | | sort | No | The list of fields to sort the resources | @@ -31,11 +32,12 @@ None | Name | Description | | :---------: | :------------------------------------------------------------------ | | id | Sort resources on the primary key | -| date | Sort resources on the date that the transaction was made | -| service | Sort resources on the service that is billing AnimeThemes | -| description | Sort resources on the description of what the transaction is for | -| amount | Sort resources on the amount of the transaction billed / paid | -| external_id | Sort resources on the identifier used by the service | +| basename | Sort resources on the basename of the file in storage | +| filename | Sort resources on the filename of the file in storage | +| path | Sort resources on the path of the file in storage | +| size | Sort resources on the size of hte file in storage in Bytes | +| mimetype | Sort resources on the media type of the file in storage | +| views_count | Sort resources on the number of recorded views | | created_at | Sort resources on the resource creation date | | updated_at | Sort resources on the resource last modified date | | deleted_at | Sort resources on the resource deletion date | @@ -46,11 +48,12 @@ None | Name | Description | | :---------: | :----------------------------------------------------------------- | | id | Filter resources on the primary key | -| date | Filter resources on the date that the transaction was made | -| service | Filter resources on the service that is billing AnimeThemes | -| description | Filter resources on the description of what the transaction is for | -| amount | Filter resources on the amount of the transaction billed / paid | -| external_id | Filter resources on the identifier used by the service | +| basename | Filter resources on the basename of the file in storage | +| filename | Filter resources on the filename of the file in storage | +| path | Filter resources on the path of the file in storage | +| size | Filter resources on the size of hte file in storage in Bytes | +| mimetype | Filter resources on the media type of the file in storage | +| views_count | Filter resources on the number of recorded views | | created_at | Filter resources on the resource creation date | | updated_at | Filter resources on the resource last modified date | | deleted_at | Filter resources on the resource deletion date | @@ -60,17 +63,19 @@ None ```json { - transactions: [ + audios: [ { id: id, - date: "date", - service: "service", - description: "description", - amount: amount, - external_id: external_id, + basename: "basename", + filename: "filename", + path: "path", + size: size, + mimetype: "mimetype", created_at: "created_at", updated_at: "updated_at", - deleted_at: "deleted_at" + deleted_at: "deleted_at", + link: "link", + views_count: views_count }, ... ], @@ -93,5 +98,5 @@ None ## Example ```bash -curl https://api.animethemes.moe/transaction/ +curl https://api.animethemes.moe/audio/ ``` diff --git a/docs/wiki/audio/restore/index.md b/docs/wiki/audio/restore/index.md new file mode 100644 index 0000000..b7e1ba7 --- /dev/null +++ b/docs/wiki/audio/restore/index.md @@ -0,0 +1,53 @@ +--- +title: Audio Restore +--- + +# Audio Restore Endpoint + +The audio restore endpoint restores a soft deleted audio and returns the restored audio resource. + +For example, the `/restore/audio/Bakemonogatari-OP1.ogg` endpoint will restore the soft deleted Bakemonogatari-OP1.ogg audio and return the restored Bakemonogatari-OP1.ogg resource. + +## URL + +```sh +PATCH /restore/audio/{basename} +``` + +## Authentication + +**Required Permission**: restore audio + +**Roles with Permission**: Admin + +**Other Requirements**: Audio must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + audio: { + id: id, + basename: "basename", + filename: "filename", + path: "path", + size: size, + mimetype: "mimetype", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at", + link: "link", + views_count: views_count + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/audio/Bakemonogatari-OP1.ogg +``` diff --git a/docs/audio/show/index.md b/docs/wiki/audio/show/index.md similarity index 95% rename from docs/audio/show/index.md rename to docs/wiki/audio/show/index.md index 9e27f72..76e3f2d 100644 --- a/docs/audio/show/index.md +++ b/docs/wiki/audio/show/index.md @@ -41,7 +41,8 @@ None created_at: "created_at", updated_at: "updated_at", deleted_at: "deleted_at", - link: "link" + link: "link", + views_count: views_count } } ``` diff --git a/docs/audio/store/index.md b/docs/wiki/audio/store/index.md similarity index 95% rename from docs/audio/store/index.md rename to docs/wiki/audio/store/index.md index 8cc4251..cb003c9 100644 --- a/docs/audio/store/index.md +++ b/docs/wiki/audio/store/index.md @@ -44,7 +44,8 @@ POST /audio created_at: "created_at", updated_at: "updated_at", deleted_at: "deleted_at", - link: "link" + link: "link", + views_count: views_count } } ``` diff --git a/docs/audio/update/index.md b/docs/wiki/audio/update/index.md similarity index 90% rename from docs/audio/update/index.md rename to docs/wiki/audio/update/index.md index d55510b..c55960b 100644 --- a/docs/audio/update/index.md +++ b/docs/wiki/audio/update/index.md @@ -20,6 +20,8 @@ PUT|PATCH /audio/{basename} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Audio must not be soft deleted + ## Parameters | Name | Required | Rules | @@ -39,7 +41,8 @@ PUT|PATCH /audio/{basename} created_at: "created_at", updated_at: "updated_at", deleted_at: "deleted_at", - link: "link" + link: "link", + views_count: views_count } } ``` diff --git a/docs/image/destroy/index.md b/docs/wiki/image/destroy/index.md similarity index 93% rename from docs/image/destroy/index.md rename to docs/wiki/image/destroy/index.md index 2995d34..be5114a 100644 --- a/docs/image/destroy/index.md +++ b/docs/wiki/image/destroy/index.md @@ -20,6 +20,8 @@ DELETE /image/{id} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Image must not be soft deleted + ## Parameters None diff --git a/docs/image/forceDelete/index.md b/docs/wiki/image/forceDelete/index.md similarity index 100% rename from docs/image/forceDelete/index.md rename to docs/wiki/image/forceDelete/index.md diff --git a/docs/wiki/image/index.md b/docs/wiki/image/index.md new file mode 100644 index 0000000..08b2693 --- /dev/null +++ b/docs/wiki/image/index.md @@ -0,0 +1,61 @@ +--- +title: Image +--- + +# Image + +--- + +An image API resource represents a visual component for another resource such as an anime or artist. + +For example, the Bakemonogatari anime has two images to represent small and large cover images. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :-------------------------------------------------------------------------------- | +| id | Integer | No | Yes | The primary key of the resource | +| path | String | No | Yes | The path of the file in storage | +| size | Integer | No | Yes | The size of the file in storage in Bytes | +| mimetype | String | No | No | The media type of the file in storage | +| facet | Enum | Yes | Yes | The component that the resource is intended for [Small Cover, Large Cover, Grill] | +| link | String | No | Yes | The URL to stream the file from storage | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +* anime +* artists +* studios + +## Endpoints + +**[Image Destroy](/wiki/image/destroy/)** + +The image destroy endpoint soft deletes an image and returns the deleted image resource. + +**[Image Force Delete](/wiki/image/forceDelete/)** + +The image force delete endpoint hard deletes an image and returns a confirmation message. + +**[Image Index](/wiki/image/index/)** + +The image index endpoint displays a listing of image resources. + +**[Image Restore](/wiki/image/restore/)** + +The image restore endpoint restores a soft deleted image and returns the restored image resource. + +**[Image Show](/wiki/image/show/)** + +The image show endpoint returns an image resource. + +**[Image Store](/wiki/image/store/)** + +The image store endpoint creates a new image and returns the new image resource. + +**[Image Update](/wiki/image/update/)** + +The image update endpoint updates an image and returns the updated image resource. \ No newline at end of file diff --git a/docs/image/index/index.md b/docs/wiki/image/index/index.md similarity index 100% rename from docs/image/index/index.md rename to docs/wiki/image/index/index.md diff --git a/docs/wiki/image/restore/index.md b/docs/wiki/image/restore/index.md new file mode 100644 index 0000000..8d277f3 --- /dev/null +++ b/docs/wiki/image/restore/index.md @@ -0,0 +1,51 @@ +--- +title: Image Restore +--- + +# Image Restore Endpoint + +The image restore endpoint restores a soft deleted image and returns the restored image resource. + +For example, the `/restore/image/435` endpoint will restore the soft deleted large cover image for the Bakemonogatari anime and return the restored image resource. + +## URL + +```sh +PATCH /restore/image/{id} +``` + +## Authentication + +**Required Permission**: restore image + +**Roles with Permission**: Wiki Editor, Admin + +**Other Requirements**: Image must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + image: { + id: id, + path: "path", + size: size, + mimetype: "mimetype", + facet: "facet", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at", + link: "link" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/image/435 +``` diff --git a/docs/image/show/index.md b/docs/wiki/image/show/index.md similarity index 100% rename from docs/image/show/index.md rename to docs/wiki/image/show/index.md diff --git a/docs/image/store/index.md b/docs/wiki/image/store/index.md similarity index 100% rename from docs/image/store/index.md rename to docs/wiki/image/store/index.md diff --git a/docs/image/update/index.md b/docs/wiki/image/update/index.md similarity index 94% rename from docs/image/update/index.md rename to docs/wiki/image/update/index.md index b07c934..40150a3 100644 --- a/docs/image/update/index.md +++ b/docs/wiki/image/update/index.md @@ -20,6 +20,8 @@ PUT|PATCH /image/{id} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Image must not be soft deleted + ## Parameters | Name | Required | Rules | diff --git a/docs/wiki/index.md b/docs/wiki/index.md new file mode 100644 index 0000000..9da78e1 --- /dev/null +++ b/docs/wiki/index.md @@ -0,0 +1,111 @@ +--- +title: Wiki +--- + +# Wiki + +--- + +Wiki API resources comprise the repository of anime opening and ending themes and their contextual relations. + +## Resources + +**[Anime](/wiki/anime/)** + +An anime API resource represents a production with at least one opening or ending sequence. + +**[Anime Image](/wiki/animeimage/)** + +An anime image API resource represents the association between an anime and an image. + +**[Anime Resource](/wiki/animeresource/)** + +An anime resource API resource represents the association between an anime and an external resource. + +**[Anime Series](/wiki/animeseries/)** + +An anime series API resource represents the association between an anime and a series. + +**[Anime Studio](/wiki/animestudio/)** + +An anime studio API resource represents the association between an anime and a studio. + +**[Anime Synonym](/wiki/animesynonym/)** + +An anime synonym API resource represents an alternate title or common abbreviation for an anime. + +**[Anime Theme](/wiki/animetheme/)** + +An anime theme API resource represents an OP or ED sequence for an anime. + +**[Anime Theme Entry](/wiki/animethemeentry/)** + +An anime theme entry API resource represents a version of an anime theme. + +**[Anime Theme Entry Video](/wiki/animethemeentryvideo/)** + +An anime theme entry video API resource represents the association between an anime theme entry and a video. + +**[Artist](/wiki/artist/)** + +An artist API resource represents a musical performer of anime sequences. + +**[Artist Image](/wiki/artistimage/)** + +An artist image API resource represents the association between an artist and an image. + +**[Artist Member](/wiki/artistmember/)** + +An artist member API resource represents the association of an artist and a group/unit. + +**[Artist Resource](/wiki/artistresource/)** + +An artist resource API resource represents the association between an artist and an external resource. + +**[Artist Song](/wiki/artistsong/)** + +An artist song API resource represents the association between an artist and a song. + +**[Audio](/wiki/audio/)** + +An audio API resource represents the audio track of a video. + +**[Image](/wiki/image/)** + +An image API resource represents a visual component for another resource such as an anime or artist. + +**[Resource](/wiki/resource/)** + +An external API resource represents a site with supplementary information for another resource such as an anime or artist. + +**[Series](/wiki/series/)** + +A series API resource represents a collection of related anime. + +**[Song](/wiki/song/)** + +A song API resource represents the composition that accompanies an AnimeTheme. + +**[Song Resource](/wiki/songresource/)** + +An song resource API resource represents the association between an song and an external resource. + +**[Studio](/wiki/studio/)** + +A studio API resource represents a company that produces anime. + +**[Studio Image](/wiki/studioimage/)** + +A studio image API resource represents the association between a studio and an image. + +**[Studio Resource](/wiki/studioresource/)** + +A studio resource API resource represents the association between a studio and an external resource. + +**[Video](/wiki/video/)** + +A video API resource represents a WebM of an anime theme. + +**[Video Script](/wiki/videoscript/)** + +A video script API resource represents an encoding script used to produce a video. \ No newline at end of file diff --git a/docs/resource/destroy/index.md b/docs/wiki/resource/destroy/index.md similarity index 93% rename from docs/resource/destroy/index.md rename to docs/wiki/resource/destroy/index.md index df6b221..1fc1eb5 100644 --- a/docs/resource/destroy/index.md +++ b/docs/wiki/resource/destroy/index.md @@ -20,6 +20,8 @@ DELETE /resource/{id} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Resource must not be soft deleted + ## Parameters None diff --git a/docs/resource/forceDelete/index.md b/docs/wiki/resource/forceDelete/index.md similarity index 100% rename from docs/resource/forceDelete/index.md rename to docs/wiki/resource/forceDelete/index.md diff --git a/docs/wiki/resource/index.md b/docs/wiki/resource/index.md new file mode 100644 index 0000000..9138b24 --- /dev/null +++ b/docs/wiki/resource/index.md @@ -0,0 +1,67 @@ +--- +title: Resource +--- + +# Resource + +--- + +An external API resource represents a site with supplementary information for another resource such as an anime or artist. + +For example, the Bakemonogatari anime has MyAnimeList, AniList and AniDB resources. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :---------: | :-----: | :------: | :-----: | :------------------------------------------------------------------| +| id | Integer | No | Yes | The primary key of the resource | +| link | String | Yes | Yes | The URL of the external site | +| external_id | Integer | Yes | Yes | The primary key of the resource in the external site | +| site | Enum | Yes | Yes | The external site that the resource belongs to [Official Website, Twitter, AniDB, Anilist, Anime-Planet, Anime News Network, Kitsu, MyAnimeList, Wikipedia, Spotify, YouTube Music, YouTube, Apple Music, Amazon Music, Crunchyroll, HIDIVE, Netflix, Disney Plus, Hulu, Amazon Prime Video] | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +* anime +* artists +* song +* studios + +## Allowed Pivots + +* animeresource +* artistresource +* songresource +* studioresource + +## Endpoints + +**[Resource Destroy](/wiki/resource/destroy/)** + +The resource destroy endpoint soft deletes an external resource and returns the deleted external resource. + +**[Resource Force Delete](/wiki/resource/forceDelete/)** + +The resource force delete endpoint hard deletes an external resource and returns a confirmation message. + +**[Resource Index](/wiki/resource/index/)** + +The resource index endpoint returns a listing of external resources. + +**[Resource Restore](/wiki/resource/restore/)** + +The resource restore endpoint restores a soft deleted external resource and returns the restored external resource. + +**[Resource Show](/wiki/resource/show/)** + +The resource show endpoint returns an external resource. + +**[Resource Store](/wiki/resource/store/)** + +The resource store endpoint creates a new external resource and returns the new external resource. + +**[Resource Update](/wiki/resource/update/)** + +The resource update endpoint updates an external resource and returns the updated external resource. \ No newline at end of file diff --git a/docs/resource/index/index.md b/docs/wiki/resource/index/index.md similarity index 100% rename from docs/resource/index/index.md rename to docs/wiki/resource/index/index.md diff --git a/docs/wiki/resource/restore/index.md b/docs/wiki/resource/restore/index.md new file mode 100644 index 0000000..faf5a2b --- /dev/null +++ b/docs/wiki/resource/restore/index.md @@ -0,0 +1,50 @@ +--- +title: Resource Restore +--- + +# Resource Restore Endpoint + +The resource restore endpoint restores a soft deleted external resource and returns the restored external resource. + +For example, the `/restore/resource/1083` endpoint will restore the soft deleted MyAnimeList resource for the Bakemonogatari anime and return the restored MyAnimeList resource. + +## URL + +```sh +PATCH /restore/resource/{id} +``` + +## Authentication + +**Required Permission**: restore external resource + +**Roles with Permission**: Wiki Editor, Admin + +**Other Requirements**: External resource must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + resource: { + id: id, + link: "link", + external_id: external_id, + site: "site", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at", + link: "link" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/resource/1083 +``` diff --git a/docs/resource/show/index.md b/docs/wiki/resource/show/index.md similarity index 100% rename from docs/resource/show/index.md rename to docs/wiki/resource/show/index.md diff --git a/docs/resource/store/index.md b/docs/wiki/resource/store/index.md similarity index 91% rename from docs/resource/store/index.md rename to docs/wiki/resource/store/index.md index 18c0fe4..8ade472 100644 --- a/docs/resource/store/index.md +++ b/docs/wiki/resource/store/index.md @@ -26,7 +26,7 @@ POST /resource | :---------: | :------: | :--------------------------------------------------------------------------------------------------------------------- | | link | Yes | max:192, url, link matches site | | external_id | No | integer, min:0 | -| site | Yes | EnumValue [Official Website, Twitter, AniDB, Anilist, Anime-Planet, Anime News Network, Kitsu, MyAnimeList, Wikipedia] | +| site | Yes | EnumValue [Official Website, Twitter, AniDB, Anilist, Anime-Planet, Anime News Network, Kitsu, MyAnimeList, Wikipedia, Spotify, YouTube Music, YouTube, Apple Music, Amazon Music, Crunchyroll, HIDIVE, Netflix, Disney Plus, Hulu, Amazon Prime Video] | ## Response diff --git a/docs/resource/update/index.md b/docs/wiki/resource/update/index.md similarity index 88% rename from docs/resource/update/index.md rename to docs/wiki/resource/update/index.md index 9077eac..c227568 100644 --- a/docs/resource/update/index.md +++ b/docs/wiki/resource/update/index.md @@ -20,13 +20,15 @@ PUT|PATCH /resource/{id} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Resource must not be soft deleted + ## Parameters | Name | Required | Rules | | :---------: | :------: | :--------------------------------------------------------------------------------------------------------------------- | | link | No | max:192, url, link matches site | | external_id | No | integer, min:0 | -| site | No | EnumValue [Official Website, Twitter, AniDB, Anilist, Anime-Planet, Anime News Network, Kitsu, MyAnimeList, Wikipedia] | +| site | No | EnumValue [Official Website, Twitter, AniDB, Anilist, Anime-Planet, Anime News Network, Kitsu, MyAnimeList, Wikipedia, Spotify, YouTube Music, YouTube, Apple Music, Amazon Music, Crunchyroll, HIDIVE, Netflix, Disney Plus, Hulu, Amazon Prime Video] | ## Response diff --git a/docs/series/destroy/index.md b/docs/wiki/series/destroy/index.md similarity index 93% rename from docs/series/destroy/index.md rename to docs/wiki/series/destroy/index.md index b6e8aaa..c356499 100644 --- a/docs/series/destroy/index.md +++ b/docs/wiki/series/destroy/index.md @@ -20,6 +20,8 @@ DELETE /series/{slug} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Series must not be soft deleted + ## Parameters None diff --git a/docs/series/forceDelete/index.md b/docs/wiki/series/forceDelete/index.md similarity index 100% rename from docs/series/forceDelete/index.md rename to docs/wiki/series/forceDelete/index.md diff --git a/docs/wiki/series/index.md b/docs/wiki/series/index.md new file mode 100644 index 0000000..28ae971 --- /dev/null +++ b/docs/wiki/series/index.md @@ -0,0 +1,56 @@ +--- +title: Series +--- + +# Series + +--- + +A series API resource represents a collection of related anime. + +For example, the Monogatari series is the collection of the Bakemonogatari anime and its related productions. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------- | +| id | Integer | No | Yes | The primary key of the resource | +| name | String | No | Yes | The primary title of the series | +| slug | String | No | Yes | The URL slug & route key of the resource | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +* anime + +## Endpoints + +**[Series Destroy](/wiki/series/destroy/)** + +The series destroy endpoint soft deletes a series and returns the deleted series resource. + +**[Series Force Delete](/wiki/series/forceDelete/)** + +The series force delete endpoint hard deletes a series and returns a confirmation message. + +**[Series Index](/wiki/series/index/)** + +The series index endpoint displays a listing of series resources. + +**[Series Restore](/wiki/series/restore/)** + +The series restore endpoint restores a soft deleted series and returns the restored series resource. + +**[Series Show](/wiki/series/show/)** + +The series show endpoint returns a series resource. + +**[Series Store](/wiki/series/store/)** + +The series store endpoint creates a new series and returns the new series resource. + +**[Series Update](/wiki/series/update/)** + +The series update endpoint updates a series and returns the updated series resource. \ No newline at end of file diff --git a/docs/series/index/index.md b/docs/wiki/series/index/index.md similarity index 100% rename from docs/series/index/index.md rename to docs/wiki/series/index/index.md diff --git a/docs/wiki/series/restore/index.md b/docs/wiki/series/restore/index.md new file mode 100644 index 0000000..f1ecfa7 --- /dev/null +++ b/docs/wiki/series/restore/index.md @@ -0,0 +1,48 @@ +--- +title: Series Restore +--- + +# Series Restore Endpoint + +The series restore endpoint restores a soft deleted series and returns the restored series resource. + +For example, the `/restore/series/monogatari` endpoint will restore the soft deleted Monogatari series and return the restored Monogatari resource. + +## URL + +```sh +PATCH /restore/series/{slug} +``` + +## Authentication + +**Required Permission**: restore series + +**Roles with Permission**: Wiki Editor, Admin + +**Other Requirements**: Series must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + series: { + id: id, + name: "name", + slug: "slug", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/series/monogatari +``` diff --git a/docs/series/show/index.md b/docs/wiki/series/show/index.md similarity index 100% rename from docs/series/show/index.md rename to docs/wiki/series/show/index.md diff --git a/docs/series/store/index.md b/docs/wiki/series/store/index.md similarity index 100% rename from docs/series/store/index.md rename to docs/wiki/series/store/index.md diff --git a/docs/series/update/index.md b/docs/wiki/series/update/index.md similarity index 94% rename from docs/series/update/index.md rename to docs/wiki/series/update/index.md index 2b2e992..8341f1a 100644 --- a/docs/series/update/index.md +++ b/docs/wiki/series/update/index.md @@ -20,6 +20,8 @@ PUT|PATCH /series/{slug} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Series must not be soft deleted + ## Parameters | Name | Required | Rules | diff --git a/docs/song/destroy/index.md b/docs/wiki/song/destroy/index.md similarity index 93% rename from docs/song/destroy/index.md rename to docs/wiki/song/destroy/index.md index 583e787..816f47d 100644 --- a/docs/song/destroy/index.md +++ b/docs/wiki/song/destroy/index.md @@ -20,6 +20,8 @@ DELETE /song/{id} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Song must not be soft deleted + ## Parameters None diff --git a/docs/song/forceDelete/index.md b/docs/wiki/song/forceDelete/index.md similarity index 100% rename from docs/song/forceDelete/index.md rename to docs/wiki/song/forceDelete/index.md diff --git a/docs/wiki/song/index.md b/docs/wiki/song/index.md new file mode 100644 index 0000000..6438530 --- /dev/null +++ b/docs/wiki/song/index.md @@ -0,0 +1,63 @@ +--- +title: Song +--- + +# Song + +--- + +A song API resource represents the composition that accompanies an AnimeTheme. + +For example, Staple Stable is the song for the Bakemonogatari OP1 AnimeTheme. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------- | +| id | Integer | No | Yes | The primary key of the resource | +| title | String | Yes | Yes | The name of the composition | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +* animethemes +* animethemes.anime +* artists +* resources + +## Allowed Pivots + +* artistsong +* songresource + +## Endpoints + +**[Song Destroy](/wiki/song/destroy/)** + +The song destroy endpoint soft deletes a song and returns the deleted song resource. + +**[Song Force Delete](/wiki/song/forceDelete/)** + +The song force delete endpoint hard deletes a song and returns a confirmation message. + +**[Song Index](/wiki/song/index/)** + +The song index endpoint displays a listing of song resources. + +**[Song Restore](/wiki/song/restore/)** + +The song restore endpoint restores a soft deleted song and returns the restored song resource. + +**[Song Show](/wiki/song/show/)** + +The song show endpoint returns a song resource. + +**[Song Store](/wiki/song/store/)** + +The song store endpoint creates a new song and returns the new song resource. + +**[Song Update](/wiki/song/update/)** + +The song update endpoint updates a song and returns the updated song resource. \ No newline at end of file diff --git a/docs/song/index/index.md b/docs/wiki/song/index/index.md similarity index 100% rename from docs/song/index/index.md rename to docs/wiki/song/index/index.md diff --git a/docs/wiki/song/restore/index.md b/docs/wiki/song/restore/index.md new file mode 100644 index 0000000..c70066c --- /dev/null +++ b/docs/wiki/song/restore/index.md @@ -0,0 +1,47 @@ +--- +title: Song Restore +--- + +# Song Restore Endpoint + +The song restore endpoint restores a soft deleted song and returns the restored song resource. + +For example, the `/restore/song/3373` endpoint will restore the soft deleted "staple stable" song and return the restored "staple stable" resource. + +## URL + +```sh +PATCH /restore/song/{id} +``` + +## Authentication + +**Required Permission**: restore song + +**Roles with Permission**: Wiki Editor, Admin + +**Other Requirements**: Song must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + song: { + id: id, + title: "title", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/song/3373 +``` diff --git a/docs/song/show/index.md b/docs/wiki/song/show/index.md similarity index 100% rename from docs/song/show/index.md rename to docs/wiki/song/show/index.md diff --git a/docs/song/store/index.md b/docs/wiki/song/store/index.md similarity index 100% rename from docs/song/store/index.md rename to docs/wiki/song/store/index.md diff --git a/docs/song/update/index.md b/docs/wiki/song/update/index.md similarity index 94% rename from docs/song/update/index.md rename to docs/wiki/song/update/index.md index 9ce3cfa..44b913a 100644 --- a/docs/song/update/index.md +++ b/docs/wiki/song/update/index.md @@ -20,6 +20,8 @@ PUT|PATCH /song/{id} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Song must not be soft deleted + ## Parameters | Name | Required | Rules | diff --git a/docs/wiki/songresource/destroy/index.md b/docs/wiki/songresource/destroy/index.md new file mode 100644 index 0000000..29eae99 --- /dev/null +++ b/docs/wiki/songresource/destroy/index.md @@ -0,0 +1,39 @@ +--- +title: Song Resource Destroy +--- + +# Song Resource Destroy Endpoint + +The song resource destroy endpoint deletes an song resource and returns the deleted song resource resource. + +For example, the `/songresource/10535/30212` endpoint will delete the association between the Mijuku DREAMER song and the external resource of id 30212. + +## URL + +```sh +DELETE /songresource/{song:id}/{resource:id} +``` + +## Authentication + +**Required Permission**: delete song, delete external resource + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + message: "Resource 'https://open.spotify.com/track/6f9SU0JwNjVDjduReyFpAd?si=2719f3d5bd014f17' has been detached from Song 'Mijuku DREAMER'.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/songresource/10535/30212 +``` diff --git a/docs/wiki/songresource/index.md b/docs/wiki/songresource/index.md new file mode 100644 index 0000000..5ef31ca --- /dev/null +++ b/docs/wiki/songresource/index.md @@ -0,0 +1,44 @@ +--- +title: Song Resource +--- + +# Song Resource + +--- + +An song resource API resource represents the association between an song and an external resource. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------------------- | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| as | String | No | Yes | Used to distinguish resources that map to the same song | + +## Allowed Include Paths + +* song +* resource + +## Endpoints + +**[Song Resource Destroy](/wiki/songresource/destroy/)** + +The song resource destroy endpoint deletes an song resource and returns the deleted song resource resource. + +**[Song Resource Index](/wiki/songresource/index/)** + +The song resource index endpoint displays a listing of song resource resources. + +**[Song Resource Show](/wiki/songresource/show/)** + +The song resource show endpoint returns an song resource resource. + +**[Song Resource Store](/wiki/songresource/store/)** + +The song resource store endpoint creates a new song resource and returns the new song resource resource. + +**[Song Resource Update](/wiki/songresource/update/)** + +The song resource update endpoint updates an song resource and returns the updated song resource resource. \ No newline at end of file diff --git a/docs/wiki/songresource/index/index.md b/docs/wiki/songresource/index/index.md new file mode 100644 index 0000000..2d2efd6 --- /dev/null +++ b/docs/wiki/songresource/index/index.md @@ -0,0 +1,79 @@ +--- +title: Song Resource Index +--- + +# Song Resource Index Endpoint + +The song resource index endpoint returns a listing of song resource resources. + +## URL + +```sh +GET /songresource/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :---------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for song resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of song resource resources to display | +| page[size] | No | The number of song resource resources to display for the current page | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :--------: | :------------------------------------------------ | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | +| as | Sort resources on distinguishing label | + +## Filters + +| Name | Description | +| :--------: | :--------------------------------------------------------- | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| as | Filter resources on the resource distinguishing label | +| has | Filter resources on relations within allowed include paths | + +## Response + +```json +{ + songresources: [ + { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/songresource/ +``` diff --git a/docs/wiki/songresource/show/index.md b/docs/wiki/songresource/show/index.md new file mode 100644 index 0000000..5986ca6 --- /dev/null +++ b/docs/wiki/songresource/show/index.md @@ -0,0 +1,41 @@ +--- +title: Song Resource Show +--- + +# Song Resource Show Endpoint + +The song resource show endpoint returns an song resource resource. + +For example, the `/songresource/10535/30212` endpoint will return the song resource resource for the association between the Mijuku DREAMER song and the external resource of id 30212. + +## URL + +```sh +GET /songresource/{song:id}/{resource:id} +``` + +## Authentication + +None + +## Parameters + +None + +## Response + +```json +{ + songresource: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/songresource/10535/30212 +``` diff --git a/docs/wiki/songresource/store/index.md b/docs/wiki/songresource/store/index.md new file mode 100644 index 0000000..1be7e12 --- /dev/null +++ b/docs/wiki/songresource/store/index.md @@ -0,0 +1,45 @@ +--- +title: Song Resource Store +--- + +# Song Resource Store Endpoint + +The song resource store endpoint creates a new song resource and returns the new song resource resource. + +For example, the `/songresource/10535/30212` endpoint will create a new association between the Mijuku DREAMER song and the external resource of id 30212. + +## URL + +```sh +POST /songresource/{song:id}/{resource:id} +``` + +## Authentication + +**Required Permission**: create song, create external resource + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +| Name | Required | Rules | +| :--: | :------: | :-------------- | +| as | No | string, max:192 | + +## Response + +```json +{ + songresource: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/songresource/10535/30212 +``` diff --git a/docs/wiki/songresource/update/index.md b/docs/wiki/songresource/update/index.md new file mode 100644 index 0000000..de0c19d --- /dev/null +++ b/docs/wiki/songresource/update/index.md @@ -0,0 +1,45 @@ +--- +title: Song Resource Update +--- + +# Song Resource Update Endpoint + +The song resource store endpoint updates an song resource and returns the updated song resource resource. + +For example, the `/songresource/10535/30212?as=updated+label` endpoint will update the association between the Mijuku DREAMER song and the external resource of id 30212. + +## URL + +```sh +PUT|PATCH /songresource/{song:id}/{resource:id} +``` + +## Authentication + +**Required Permission**: update song, update external resource + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +| Name | Required | Rules | +| :---------: | :------: | :-------------- | +| as | No | string, max:192 | + +## Response + +```json +{ + songresource: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/songresource/ +``` diff --git a/docs/studio/destroy/index.md b/docs/wiki/studio/destroy/index.md similarity index 93% rename from docs/studio/destroy/index.md rename to docs/wiki/studio/destroy/index.md index 58a2f47..af709cc 100644 --- a/docs/studio/destroy/index.md +++ b/docs/wiki/studio/destroy/index.md @@ -20,6 +20,8 @@ DELETE /studio/{slug} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Studio must not be soft deleted + ## Parameters None diff --git a/docs/studio/forceDelete/index.md b/docs/wiki/studio/forceDelete/index.md similarity index 100% rename from docs/studio/forceDelete/index.md rename to docs/wiki/studio/forceDelete/index.md diff --git a/docs/wiki/studio/index.md b/docs/wiki/studio/index.md new file mode 100644 index 0000000..6e5c894 --- /dev/null +++ b/docs/wiki/studio/index.md @@ -0,0 +1,62 @@ +--- +title: Studio +--- + +# Studio + +--- + +A studio API resource represents a company that produces anime. + +For example, Shaft is the studio that produced the anime Bakemonogatari. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------- | +| id | Integer | No | Yes | The primary key of the resource | +| name | String | No | Yes | The primary title of the studio | +| slug | String | No | Yes | The URL slug & route key of the resource | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +* anime +* images +* resources + +## Allowed Pivots + +* studioresource + +## Endpoints + +**[Studio Destroy](/wiki/studio/destroy/)** + +The studio destroy endpoint soft deletes a studio and returns the deleted studio resource. + +**[Studio Force Delete](/wiki/studio/forceDelete/)** + +The studio force delete endpoint hard deletes a studio and returns a confirmation message. + +**[Studio Index](/wiki/studio/index/)** + +The studio index endpoint displays a listing of studio resources. + +**[Studio Restore](/wiki/studio/restore/)** + +The studio restore endpoint restores a soft deleted studio and returns the restored studio resource. + +**[Studio Show](/wiki/studio/show/)** + +The studio show endpoint returns a studio resource. + +**[Studio Store](/wiki/studio/store/)** + +The studio store endpoint creates a new studio and returns the new studio resource. + +**[Studio Update](/wiki/studio/update/)** + +The studio update endpoint updates a studio and returns the updated studio resource. \ No newline at end of file diff --git a/docs/studio/index/index.md b/docs/wiki/studio/index/index.md similarity index 100% rename from docs/studio/index/index.md rename to docs/wiki/studio/index/index.md diff --git a/docs/wiki/studio/restore/index.md b/docs/wiki/studio/restore/index.md new file mode 100644 index 0000000..1b8762f --- /dev/null +++ b/docs/wiki/studio/restore/index.md @@ -0,0 +1,48 @@ +--- +title: Studio Restore +--- + +# Studio Restore Endpoint + +The studio restore endpoint restores a soft deleted studio and returns the restored studio resource. + +For example, the `/restore/studio/shaft` endpoint will restore the soft deleted Shaft studio and return the restored Shaft resource. + +## URL + +```sh +PATCH /restore/studio/{slug} +``` + +## Authentication + +**Required Permission**: restore studio + +**Roles with Permission**: Wiki Editor, Admin + +**Other Requirements**: Studio must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + studio: { + id: id, + name: "name", + slug: "slug", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/studio/shaft +``` diff --git a/docs/studio/show/index.md b/docs/wiki/studio/show/index.md similarity index 100% rename from docs/studio/show/index.md rename to docs/wiki/studio/show/index.md diff --git a/docs/studio/store/index.md b/docs/wiki/studio/store/index.md similarity index 100% rename from docs/studio/store/index.md rename to docs/wiki/studio/store/index.md diff --git a/docs/studio/update/index.md b/docs/wiki/studio/update/index.md similarity index 94% rename from docs/studio/update/index.md rename to docs/wiki/studio/update/index.md index 7e48f4b..08e54eb 100644 --- a/docs/studio/update/index.md +++ b/docs/wiki/studio/update/index.md @@ -20,6 +20,8 @@ PUT|PATCH /studio/{slug} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Studio must not be soft deleted + ## Parameters | Name | Required | Rules | diff --git a/docs/wiki/studioimage/destroy/index.md b/docs/wiki/studioimage/destroy/index.md new file mode 100644 index 0000000..ff9fa73 --- /dev/null +++ b/docs/wiki/studioimage/destroy/index.md @@ -0,0 +1,39 @@ +--- +title: Studio Image Destroy +--- + +# Studio Image Destroy Endpoint + +The studio image destroy endpoint deletes a studio image and returns the deleted studio image resource. + +For example, the `/studioimage/shaft/9292` endpoint will delete the association between the Shaft studio and the large cover image of id 9292. + +## URL + +```sh +DELETE /studioimage/{studio:slug}/{image:id} +``` + +## Authentication + +**Required Permission**: delete studio, delete image + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + message: "Image 'MAJjc1O52inaVlaCtoC2VSZkqjRFDdGW9XN7pmz3.png' has been detached from Studio 'Shaft'.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/studioimage/shaft/9292 +``` diff --git a/docs/wiki/studioimage/index.md b/docs/wiki/studioimage/index.md new file mode 100644 index 0000000..d19c5a4 --- /dev/null +++ b/docs/wiki/studioimage/index.md @@ -0,0 +1,39 @@ +--- +title: Studio Image +--- + +# Studio Image + +--- + +A studio image API resource represents the association between a studio and an image. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :------------------------------------------- | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | + +## Allowed Include Paths + +* studio +* image + +## Endpoints + +**[Studio Image Destroy](/wiki/studioimage/destroy/)** + +The studio image destroy endpoint deletes a studio image and returns the deleted studio image resource. + +**[Studio Image Index](/wiki/studioimage/index/)** + +The studio image index endpoint displays a listing of studio image resources. + +**[Studio Image Show](/wiki/studioimage/show/)** + +The studio image show endpoint returns a studio image resource. + +**[Studio Image Store](/wiki/studioimage/store/)** + +The studio image store endpoint creates a new studio image and returns the new studio image resource. \ No newline at end of file diff --git a/docs/wiki/studioimage/index/index.md b/docs/wiki/studioimage/index/index.md new file mode 100644 index 0000000..480515f --- /dev/null +++ b/docs/wiki/studioimage/index/index.md @@ -0,0 +1,76 @@ +--- +title: Studio Image Index +--- + +# Studio Image Index Endpoint + +The studio image index endpoint returns a listing of studio image resources. + +## URL + +```sh +GET /studioimage/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :----------------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for studio image resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of studio image resources to display | +| page[size] | No | The number of studio image resources to display for the current page | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :--------: | :------------------------------------------------ | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | + +## Filters + +| Name | Description | +| :--------: | :--------------------------------------------------------- | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| has | Filter resources on relations within allowed include paths | + +## Response + +```json +{ + studioimages: [ + { + created_at: "created_at", + updated_at: "updated_at" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/studioimage/ +``` diff --git a/docs/wiki/studioimage/show/index.md b/docs/wiki/studioimage/show/index.md new file mode 100644 index 0000000..9eff8da --- /dev/null +++ b/docs/wiki/studioimage/show/index.md @@ -0,0 +1,40 @@ +--- +title: Studio Image Show +--- + +# Studio Image Show Endpoint + +The studio image show endpoint returns a studio image resource. + +For example, the `/studioimage/shaft/9292` endpoint will return the studio image resource for the association between the Shaft studio and the large cover image of id 9292. + +## URL + +```sh +GET /studioimage/{studio:slug}/{image:id} +``` + +## Authentication + +None + +## Parameters + +None + +## Response + +```json +{ + studioimage: { + created_at: "created_at", + updated_at: "updated_at" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/studioimage/shaft/9292 +``` diff --git a/docs/wiki/studioimage/store/index.md b/docs/wiki/studioimage/store/index.md new file mode 100644 index 0000000..371ea58 --- /dev/null +++ b/docs/wiki/studioimage/store/index.md @@ -0,0 +1,42 @@ +--- +title: Studio Image Store +--- + +# Studio Image Store Endpoint + +The studio image store endpoint creates a new studio image and returns the new studio image resource. + +For example, the `/studioimage/shaft/9292` endpoint will create a new association between the Shaft studio and the large cover image of id 9292. + +## URL + +```sh +POST /studioimage/{studio:slug}/{image:id} +``` + +## Authentication + +**Required Permission**: create studio, create image + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + studioimage: { + created_at: "created_at", + updated_at: "updated_at" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/studioimage/shaft/9292 +``` diff --git a/docs/wiki/studioresource/destroy/index.md b/docs/wiki/studioresource/destroy/index.md new file mode 100644 index 0000000..f03f7bd --- /dev/null +++ b/docs/wiki/studioresource/destroy/index.md @@ -0,0 +1,39 @@ +--- +title: Studio Resource Destroy +--- + +# Studio Resource Destroy Endpoint + +The studio resource destroy endpoint deletes a studio resource and returns the deleted studio resource resource. + +For example, the `/studioresource/shaft/14891` endpoint will delete the association between the Shaft studio and the external resource of id 14891. + +## URL + +```sh +DELETE /studioresource/{studio:slug}/{resource:id} +``` + +## Authentication + +**Required Permission**: delete studio, delete external resource + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +None + +## Response + +```json +{ + message: "Resource 'https://myanimelist.net/anime/producer/44' has been detached from Studio 'Shaft'.", +} +``` + +## Example + +```bash +curl -X DELETE -H "Authorization: Bearer {token}" https://api.animethemes.moe/studioresource/shaft/14891 +``` diff --git a/docs/wiki/studioresource/index.md b/docs/wiki/studioresource/index.md new file mode 100644 index 0000000..80feecb --- /dev/null +++ b/docs/wiki/studioresource/index.md @@ -0,0 +1,44 @@ +--- +title: Studio Resource +--- + +# Studio Resource + +--- + +A studio resource API resource represents the association between a studio and an external resource. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :-------------------------------------------------------- | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| as | String | No | Yes | Used to distinguish resources that map to the same studio | + +## Allowed Include Paths + +* studio +* resource + +## Endpoints + +**[Studio Resource Destroy](/wiki/studioresource/destroy/)** + +The studio resource destroy endpoint deletes a studio resource and returns the deleted studio resource resource. + +**[Studio Resource Index](/wiki/studioresource/index/)** + +The studio resource index endpoint displays a listing of studio resource resources. + +**[Studio Resource Show](/wiki/studioresource/show/)** + +The studio resource show endpoint returns a studio resource resource. + +**[Studio Resource Store](/wiki/studioresource/store/)** + +The studio resource store endpoint creates a new studio resource and returns the new studio resource resource. + +**[Studio Resource Update](/wiki/studioresource/update/)** + +The studio resource update endpoint updates a studio resource and returns the updated studio resource resource. \ No newline at end of file diff --git a/docs/wiki/studioresource/index/index.md b/docs/wiki/studioresource/index/index.md new file mode 100644 index 0000000..1ae4259 --- /dev/null +++ b/docs/wiki/studioresource/index/index.md @@ -0,0 +1,79 @@ +--- +title: Studio Resource Index +--- + +# Studio Resource Index Endpoint + +The studio resource index endpoint returns a listing of studio resource resources. + +## URL + +```sh +GET /studioresource/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :----------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for studio resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of studio resource resources to display | +| page[size] | No | The number of studio resource resources to display for the current page | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :--------: | :------------------------------------------------ | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | +| as | Sort resources on distinguishing label | + +## Filters + +| Name | Description | +| :--------: | :--------------------------------------------------------- | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| as | Filter resources on the resource distinguishing label | +| has | Filter resources on relations within allowed include paths | + +## Response + +```json +{ + studioresources: [ + { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/studioresource/ +``` diff --git a/docs/wiki/studioresource/show/index.md b/docs/wiki/studioresource/show/index.md new file mode 100644 index 0000000..f7e0212 --- /dev/null +++ b/docs/wiki/studioresource/show/index.md @@ -0,0 +1,41 @@ +--- +title: Studio Resource Show +--- + +# Studio Resource Show Endpoint + +The studio resource show endpoint returns a studio resource resource. + +For example, the `/studioresource/shaft/14891` endpoint will return the studio resource resource for the association between the Shaft studio and the external resource of id 14891. + +## URL + +```sh +GET /studioresource/{studio:slug}/{resource:id} +``` + +## Authentication + +None + +## Parameters + +None + +## Response + +```json +{ + studioresource: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/studioresource/shaft/14891 +``` diff --git a/docs/wiki/studioresource/store/index.md b/docs/wiki/studioresource/store/index.md new file mode 100644 index 0000000..d48da53 --- /dev/null +++ b/docs/wiki/studioresource/store/index.md @@ -0,0 +1,45 @@ +--- +title: Studio Resource Store +--- + +# Studio Resource Store Endpoint + +The studio resource store endpoint creates a new studio resource and returns the new studio resource resource. + +For example, the `/studioresource/shaft/14891` endpoint will create a new association between the Shaft studio and the external resource of id 14891. + +## URL + +```sh +POST /studioresource/{studio:slug}/{resource:id} +``` + +## Authentication + +**Required Permission**: create studio, create external resource + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +| Name | Required | Rules | +| :--: | :------: | :-------------- | +| as | No | string, max:192 | + +## Response + +```json +{ + studioresource: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl -X POST -H "Authorization: Bearer {token}" https://api.animethemes.moe/studioresource/shaft/14891 +``` diff --git a/docs/wiki/studioresource/update/index.md b/docs/wiki/studioresource/update/index.md new file mode 100644 index 0000000..d70f20d --- /dev/null +++ b/docs/wiki/studioresource/update/index.md @@ -0,0 +1,45 @@ +--- +title: Studio Resource Update +--- + +# Studio Resource Update Endpoint + +The studio resource store endpoint updates a studio resource and returns the updated studio resource resource. + +For example, the `/studioresource/shaft/14891?as=updated+label` endpoint will update the association between the Shaft studio and the external resource of id 14891. + +## URL + +```sh +PUT|PATCH /studioresource/{studio:slug}/{resource:id} +``` + +## Authentication + +**Required Permission**: update studio, update external resource + +**Roles with Permission**: Wiki Editor, Admin + +## Parameters + +| Name | Required | Rules | +| :---------: | :------: | :-------------- | +| as | No | string, max:192 | + +## Response + +```json +{ + studioresource: { + created_at: "created_at", + updated_at: "updated_at", + as: "as" + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/studioresource/ +``` diff --git a/docs/video/destroy/index.md b/docs/wiki/video/destroy/index.md similarity index 90% rename from docs/video/destroy/index.md rename to docs/wiki/video/destroy/index.md index f9400fc..a71702a 100644 --- a/docs/video/destroy/index.md +++ b/docs/wiki/video/destroy/index.md @@ -20,6 +20,8 @@ DELETE /video/{basename} **Roles with Permission**: Admin +**Other Requirements**: Video must not be soft deleted + ## Parameters None @@ -46,7 +48,8 @@ None updated_at: "updated_at", deleted_at: "deleted_at", tags: "tags", - link: "link" + link: "link", + views_count: views_count } } ``` diff --git a/docs/video/forceDelete/index.md b/docs/wiki/video/forceDelete/index.md similarity index 100% rename from docs/video/forceDelete/index.md rename to docs/wiki/video/forceDelete/index.md diff --git a/docs/wiki/video/index.md b/docs/wiki/video/index.md new file mode 100644 index 0000000..478948b --- /dev/null +++ b/docs/wiki/video/index.md @@ -0,0 +1,73 @@ +--- +title: Video +--- + +# Video + +--- + +A video API resource represents a WebM of an anime theme. + +For example, the video Bakemonogatari-OP1.webm represents the WebM of the Bakemonogatari OP1 theme. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :---------: | :-----: | :------: | :-----: | :------------------------------------------------------------------------------------ | +| id | Integer | No | Yes | The primary key of the resource | +| basename | String | No | Yes | The basename of the file in storage | +| filename | String | No | Yes | The filename of the file in storage | +| path | String | No | Yes | The path of the file in storage | +| size | Integer | No | Yes | The size of the file in storage in Bytes | +| mimetype | String | No | No | The media type of the file in storage | +| resolution | Integer | Yes | Yes | The frame height of the file in storage | +| nc | Boolean | No | Yes | Is the video creditless? | +| subbed | Boolean | No | Yes | Does the video include subtitles of dialogue? | +| lyrics | Boolean | No | Yes | Does the video include subtitles of song lyrics? | +| uncen | Boolean | No | Yes | Is the video an uncensored version of a censored sequence? | +| source | Enum | Yes | Yes | Where did this video come from? [WEB, RAW, BD, DVD, VHS, LD] | +| overlap | Enum | No | Yes | The degree to which the sequence and episode content overlap [None, Transition, Over] | +| tags | String | No | Yes | The attributes used to distinguish the file within the context of a theme | +| link | String | No | Yes | The URL to stream the file from storage | +| views_count | Integer | No | No | The number of views recorded for the resource | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | + +## Allowed Include Paths + +* animethemeentries +* animethemeentries.animetheme +* animethemeentries.animetheme.anime +* audio +* videoscript + +## Endpoints + +**[Video Destroy](/wiki/video/destroy/)** + +The video destroy endpoint soft deletes a video and returns the deleted video resource. + +**[Video Force Delete](/wiki/video/forceDelete/)** + +The video force delete endpoint hard deletes a video and returns a confirmation message. + +**[Video Index](/wiki/video/index/)** + +The video index endpoint displays a listing of video resources. + +**[Video Restore](/wiki/video/restore/)** + +The video restore endpoint restores a soft deleted video and returns the restored video resource. + +**[Video Show](/wiki/video/show/)** + +The video show endpoint returns a video resource. + +**[Video Store](/wiki/video/store/)** + +The video store endpoint creates a new video and returns the new video resource. + +**[Video Update](/wiki/video/update/)** + +The video update endpoint updates a video and returns the updated video resource. \ No newline at end of file diff --git a/docs/wiki/video/index/index.md b/docs/wiki/video/index/index.md new file mode 100644 index 0000000..faff82f --- /dev/null +++ b/docs/wiki/video/index/index.md @@ -0,0 +1,126 @@ +--- +title: Video Index +--- + +# Video Index Endpoint + +The video index endpoint returns a listing of video resources. + +## URL + +```sh +GET /video/ +``` + +## Authentication + +None + +## Parameters + +| Name | Required | Description | +| :----------: | :------: | :---------------------------------------------------------------------------- | +| fields | No | Sparse fieldsets for resource types | +| filter | No | Filters for anime resources & constraining the inclusion of related resources | +| include | No | Inclusion of related resources | +| page[number] | No | The page of anime resources to display | +| page[size] | No | The number of anime resources to display for the current page | +| q | No | The query to search for matching anime resources | +| sort | No | The list of fields to sort the resources | + +## Allowed Sort Fields + +| Name | Description | +| :---------: | :----------------------------------------------------------------------- | +| id | Sort resources on the primary key | +| basename | Sort resources on the basename of the file in storage | +| filename | Sort resources on the filename of the file in storage | +| path | Sort resources on the path of the file in storage | +| size | Sort resources on the size of hte file in storage in Bytes | +| mimetype | Sort resources on the media type of the file in storage | +| resolution | Sort resources on the frame height of the file in storage | +| nc | Sort resources on whether the video is creditless | +| subbed | Sort resources on whether the video includes subtitles of dialogue | +| lyrics | Sort resources on whether the video includes subtitles of song lyrics | +| uncen | Sort resources on whether the video is an uncensored version | +| source | Sort resources on the origin of the video | +| overlap | Sort resources on the degree of overlap between the sequence and episode | +| views_count | Sort resources on the number of recorded views | +| created_at | Sort resources on the resource creation date | +| updated_at | Sort resources on the resource last modified date | +| deleted_at | Sort resources on the resource deletion date | +| random | Sort resources randomly. Ignored if other sort fields are provided. | + +## Filters + +| Name | Description | +| :---------: | :------------------------------------------------------------------------- | +| id | Filter resources on the primary key | +| basename | Filter resources on the basename of the file in storage | +| filename | Filter resources on the filename of the file in storage | +| path | Filter resources on the path of the file in storage | +| size | Filter resources on the size of hte file in storage in Bytes | +| mimetype | Filter resources on the media type of the file in storage | +| resolution | Filter resources on the frame height of the file in storage | +| nc | Filter resources on whether the video is creditless | +| subbed | Filter resources on whether the video includes subtitles of dialogue | +| lyrics | Filter resources on whether the video includes subtitles of song lyrics | +| uncen | Filter resources on whether the video is an uncensored version | +| source | Filter resources on the origin of the video | +| overlap | Filter resources on the degree of overlap between the sequence and episode | +| views_count | Filter resources on the number of recorded views | +| created_at | Filter resources on the resource creation date | +| updated_at | Filter resources on the resource last modified date | +| deleted_at | Filter resources on the resource deletion date | +| trashed | Filter resources on trashed (deleted) status [With, Without, Only] | +| has | Filter resources on relations within allowed include paths | + +## Response + +```json +{ + videos: [ + { + id: id, + basename: "basename", + filename: "filename", + path: "path", + size: size, + mimetype: "mimetype", + resolution: resolution, + nc: nc, + subbed: subbed, + lyrics: lyrics, + uncen: uncen, + source: "source", + overlap: "overlap", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at", + tags: "tags", + link: "link", + views_count: views_count + }, + ... + ], + links: { + first: "first", + last: "last", + prev: "prev", + next: "next" + }, + meta: { + current_page: current_page, + from: from, + path: "path", + per_page: per_page, + to: to + } +} +``` + +## Example + +```bash +curl https://api.animethemes.moe/video/ +``` diff --git a/docs/wiki/video/restore/index.md b/docs/wiki/video/restore/index.md new file mode 100644 index 0000000..b1035ab --- /dev/null +++ b/docs/wiki/video/restore/index.md @@ -0,0 +1,61 @@ +--- +title: Video Restore +--- + +# Video Restore Endpoint + +The video restore endpoint restores a soft deleted video and returns the restored video resource. + +For example, the `/restore/video/Bakemonogatari-OP1.webm` endpoint will restore the soft deleted Bakemonogatari-OP1.webm video and return the restored Bakemonogatari-OP1.webm resource. + +## URL + +```sh +PATCH /restore/video/{basename} +``` + +## Authentication + +**Required Permission**: restore video + +**Roles with Permission**: Admin + +**Other Requirements**: Video must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + video: { + id: id, + basename: "basename", + filename: "filename", + path: "path", + size: size, + mimetype: "mimetype", + resolution: resolution, + nc: nc, + subbed: subbed, + lyrics: lyrics, + uncen: uncen, + source: "source", + overlap: "overlap", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at", + tags: "tags", + link: "link", + views_count: views_count + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/video/Bakemonogatari-OP1.webm +``` diff --git a/docs/video/show/index.md b/docs/wiki/video/show/index.md similarity index 96% rename from docs/video/show/index.md rename to docs/wiki/video/show/index.md index b89d5b5..2b3482f 100644 --- a/docs/video/show/index.md +++ b/docs/wiki/video/show/index.md @@ -49,7 +49,8 @@ None updated_at: "updated_at", deleted_at: "deleted_at", tags: "tags", - link: "link" + link: "link", + views_count: views_count } } ``` diff --git a/docs/video/store/index.md b/docs/wiki/video/store/index.md similarity index 97% rename from docs/video/store/index.md rename to docs/wiki/video/store/index.md index f250fed..f793576 100644 --- a/docs/video/store/index.md +++ b/docs/wiki/video/store/index.md @@ -60,7 +60,8 @@ POST /video updated_at: "updated_at", deleted_at: "deleted_at", tags: "tags", - link: "link" + link: "link", + views_count: views_count } } ``` diff --git a/docs/video/update/index.md b/docs/wiki/video/update/index.md similarity index 94% rename from docs/video/update/index.md rename to docs/wiki/video/update/index.md index 14f32d0..06a111c 100644 --- a/docs/video/update/index.md +++ b/docs/wiki/video/update/index.md @@ -20,6 +20,8 @@ PUT|PATCH /video/{basename} **Roles with Permission**: Wiki Editor, Admin +**Other Requirements**: Video must not be soft deleted + ## Parameters | Name | Required | Rules | @@ -55,7 +57,8 @@ PUT|PATCH /video/{basename} updated_at: "updated_at", deleted_at: "deleted_at", tags: "tags", - link: "link" + link: "link", + views_count: views_count } } ``` diff --git a/docs/videoscript/destroy/index.md b/docs/wiki/videoscript/destroy/index.md similarity index 92% rename from docs/videoscript/destroy/index.md rename to docs/wiki/videoscript/destroy/index.md index 6ab4d08..ced5b3a 100644 --- a/docs/videoscript/destroy/index.md +++ b/docs/wiki/videoscript/destroy/index.md @@ -20,6 +20,8 @@ DELETE /videoscript/{id} **Roles with Permission**: Admin +**Other Requirements**: Video script must not be soft deleted + ## Parameters None diff --git a/docs/videoscript/forceDelete/index.md b/docs/wiki/videoscript/forceDelete/index.md similarity index 100% rename from docs/videoscript/forceDelete/index.md rename to docs/wiki/videoscript/forceDelete/index.md diff --git a/docs/wiki/videoscript/index.md b/docs/wiki/videoscript/index.md new file mode 100644 index 0000000..3c6c344 --- /dev/null +++ b/docs/wiki/videoscript/index.md @@ -0,0 +1,56 @@ +--- +title: Video Script +--- + +# Video Script + +--- + +A video script API resource represents an encoding script used to produce a video. + +For example, the 2009/Summer/Bakemonogatari-OP1.txt video script represents the encoding script of the Bakemonogatari-OP1.webm video. + +## Fields + +| Name | Type | Nullable | Default | Description | +| :--------: | :-----: | :------: | :-----: | :--------------------------------------------| +| id | Integer | No | Yes | The primary key of the resource | +| path | String | No | Yes | The path of the file in storage | +| created_at | Date | No | No | The date that the resource was created | +| updated_at | Date | No | No | The date that the resource was last modified | +| deleted_at | Date | Yes | No | The date that the resource was deleted | +| link | String | No | Yes | The URL to download the file from storage | + +## Allowed Include Paths + +* video + +## Endpoints + +**[Video Script Destroy](/wiki/videoscript/destroy/)** + +The video script destroy endpoint soft deletes a video script and returns the deleted video script resource. + +**[Video Script Force Delete](/wiki/videoscript/forceDelete/)** + +The video script force delete endpoint hard deletes a video script and returns a confirmation message. + +**[Video Script Index](/wiki/videoscript/index/)** + +The video script index endpoint displays a listing of video script resources. + +**[Video Script Restore](/wiki/videoscript/restore/)** + +The video script restore endpoint restores a soft deleted video script and returns the restored video script resource. + +**[Video Script Show](/wiki/videoscript/show/)** + +The video script show endpoint returns a video script resource. + +**[Video Script Store](/wiki/videoscript/store/)** + +The video script store endpoint creates a new video script and returns the new video script resource. + +**[Video Script Update](/wiki/videoscript/update/)** + +The video script update endpoint updates a video script and returns the updated video script resource. \ No newline at end of file diff --git a/docs/videoscript/index/index.md b/docs/wiki/videoscript/index/index.md similarity index 100% rename from docs/videoscript/index/index.md rename to docs/wiki/videoscript/index/index.md diff --git a/docs/wiki/videoscript/restore/index.md b/docs/wiki/videoscript/restore/index.md new file mode 100644 index 0000000..861f2e4 --- /dev/null +++ b/docs/wiki/videoscript/restore/index.md @@ -0,0 +1,48 @@ +--- +title: Video Script Restore +--- + +# Video Script Restore Endpoint + +The video script restore endpoint restores a soft deleted video script and returns the restored video script resource. + +For example, the `/restore/videoscript/1` endpoint will restore the soft deleted video script of id '1' and return the restored video script resource. + +## URL + +```sh +PATCH /restore/videoscript/{id} +``` + +## Authentication + +**Required Permission**: restore video script + +**Roles with Permission**: Admin + +**Other Requirements**: Video script must be soft deleted + +## Parameters + +None + +## Response + +```json +{ + videoscript: { + id: id, + path: "path", + created_at: "created_at", + updated_at: "updated_at", + deleted_at: "deleted_at", + link: "link + } +} +``` + +## Example + +```bash +curl -X PATCH -H "Authorization: Bearer {token}" https://api.animethemes.moe/restore/videoscript/1 +``` diff --git a/docs/videoscript/show/index.md b/docs/wiki/videoscript/show/index.md similarity index 100% rename from docs/videoscript/show/index.md rename to docs/wiki/videoscript/show/index.md diff --git a/docs/videoscript/store/index.md b/docs/wiki/videoscript/store/index.md similarity index 100% rename from docs/videoscript/store/index.md rename to docs/wiki/videoscript/store/index.md diff --git a/docs/videoscript/update/index.md b/docs/wiki/videoscript/update/index.md similarity index 94% rename from docs/videoscript/update/index.md rename to docs/wiki/videoscript/update/index.md index 629d722..4a3ca44 100644 --- a/docs/videoscript/update/index.md +++ b/docs/wiki/videoscript/update/index.md @@ -20,6 +20,8 @@ PUT|PATCH /videoscript/{id} **Roles with Permission**: Admin +**Other Requirements**: Video script must not be soft deleted + ## Parameters | Name | Required | Rules | diff --git a/package-lock.json b/package-lock.json index 34d18ee..fd6b508 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,163 +1,178 @@ { "name": "animethemes-api-docs", - "version": "2.0.0", - "lockfileVersion": 2, + "version": "3.0.0", + "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "animethemes-api-docs", - "version": "2.0.0", + "version": "3.0.0", "license": "MIT", "dependencies": { - "dotenv": "^16.0.2", - "vitepress": "^1.0.0-alpha.15", - "vue": "^3.2.39" + "dotenv": "^16.1.4", + "vitepress": "^1.0.0-beta.2" } }, "node_modules/@algolia/autocomplete-core": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.1.tgz", - "integrity": "sha512-eiZw+fxMzNQn01S8dA/hcCpoWCOCwcIIEUtHHdzN5TGB3IpzLbuhqFeTfh2OUhhgkE8Uo17+wH+QJ/wYyQmmzg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.2.tgz", + "integrity": "sha512-hkG80c9kx9ClVAEcUJbTd2ziVC713x9Bji9Ty4XJfKXlxlsx3iXsoNhAwfeR4ulzIUg7OE5gez0UU1zVDdG7kg==", "dependencies": { - "@algolia/autocomplete-shared": "1.7.1" + "@algolia/autocomplete-plugin-algolia-insights": "1.9.2", + "@algolia/autocomplete-shared": "1.9.2" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.2.tgz", + "integrity": "sha512-2LVsf4W66hVHQ3Ua/8k15oPlxjELCztbAkQm/hP42Sw+GLkHAdY1vaVRYziaWq64+Oljfg6FKkZHCdgXH+CGIA==", + "dependencies": { + "@algolia/autocomplete-shared": "1.9.2" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" } }, "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.1.tgz", - "integrity": "sha512-pJwmIxeJCymU1M6cGujnaIYcY3QPOVYZOXhFkWVM7IxKzy272BwCvMFMyc5NpG/QmiObBxjo7myd060OeTNJXg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.2.tgz", + "integrity": "sha512-pqgIm2GNqtCT59Y1ICctIPrYTi34+wNPiNWEclD/yDzp5uDUUsyGe5XrUjCNyQRTKonAlmYxoaEHOn8FWgmBHA==", "dependencies": { - "@algolia/autocomplete-shared": "1.7.1" + "@algolia/autocomplete-shared": "1.9.2" }, "peerDependencies": { - "@algolia/client-search": "^4.9.1", - "algoliasearch": "^4.9.1" + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" } }, "node_modules/@algolia/autocomplete-shared": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.1.tgz", - "integrity": "sha512-eTmGVqY3GeyBTT8IWiB2K5EuURAqhnumfktAEoHxfDY2o7vg2rSnO16ZtIG0fMgt3py28Vwgq42/bVEuaQV7pg==" + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.2.tgz", + "integrity": "sha512-XxX6YDn+7LG+SmdpXEOnj7fc3TjiVpQ0CbGhjLwrd2tYr6LVY2D4Iiu/iuYJ4shvVDWWnpwArSk0uIWC/8OPUA==", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } }, "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.2.tgz", - "integrity": "sha512-FRweBkK/ywO+GKYfAWbrepewQsPTIEirhi1BdykX9mxvBPtGNKccYAxvGdDCumU1jL4r3cayio4psfzKMejBlA==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.17.2.tgz", + "integrity": "sha512-ZkVN7K/JE+qMQbpR6h3gQOGR6yCJpmucSBCmH5YDxnrYbp2CbrVCu0Nr+FGVoWzMJNznj1waShkfQ9awERulLw==", "dependencies": { - "@algolia/cache-common": "4.14.2" + "@algolia/cache-common": "4.17.2" } }, "node_modules/@algolia/cache-common": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.14.2.tgz", - "integrity": "sha512-SbvAlG9VqNanCErr44q6lEKD2qoK4XtFNx9Qn8FK26ePCI8I9yU7pYB+eM/cZdS9SzQCRJBbHUumVr4bsQ4uxg==" + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.17.2.tgz", + "integrity": "sha512-fojbhYIS8ovfYs6hwZpy1O4mBfVRxNgAaZRqsdVQd54hU4MxYDYFCxagYX28lOBz7btcDHld6BMoWXvjzkx6iQ==" }, "node_modules/@algolia/cache-in-memory": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.14.2.tgz", - "integrity": "sha512-HrOukWoop9XB/VFojPv1R5SVXowgI56T9pmezd/djh2JnVN/vXswhXV51RKy4nCpqxyHt/aGFSq2qkDvj6KiuQ==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.17.2.tgz", + "integrity": "sha512-UYQcMzPurNi+cPYkuPemTZkjKAjdgAS1hagC5irujKbrYnN4yscK4TkOI5tX+O8/KegtJt3kOK07OIrJ2QDAAw==", "dependencies": { - "@algolia/cache-common": "4.14.2" + "@algolia/cache-common": "4.17.2" } }, "node_modules/@algolia/client-account": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.14.2.tgz", - "integrity": "sha512-WHtriQqGyibbb/Rx71YY43T0cXqyelEU0lB2QMBRXvD2X0iyeGl4qMxocgEIcbHyK7uqE7hKgjT8aBrHqhgc1w==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.17.2.tgz", + "integrity": "sha512-doSk89pBPDpDyKJSHFADIGa2XSGrBCj3QwPvqtRJXDADpN+OjW+eTR8r4hEs/7X4GGfjfAOAES8JgDx+fZntYw==", "dependencies": { - "@algolia/client-common": "4.14.2", - "@algolia/client-search": "4.14.2", - "@algolia/transporter": "4.14.2" + "@algolia/client-common": "4.17.2", + "@algolia/client-search": "4.17.2", + "@algolia/transporter": "4.17.2" } }, "node_modules/@algolia/client-analytics": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.14.2.tgz", - "integrity": "sha512-yBvBv2mw+HX5a+aeR0dkvUbFZsiC4FKSnfqk9rrfX+QrlNOKEhCG0tJzjiOggRW4EcNqRmaTULIYvIzQVL2KYQ==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.17.2.tgz", + "integrity": "sha512-V+DcXbOtD/hKwAR3qGQrtlrJ3q2f9OKfx843q744o4m3xHv5ueCAvGXB1znPsdaUrVDNAImcgEgqwI9x7EJbDw==", "dependencies": { - "@algolia/client-common": "4.14.2", - "@algolia/client-search": "4.14.2", - "@algolia/requester-common": "4.14.2", - "@algolia/transporter": "4.14.2" + "@algolia/client-common": "4.17.2", + "@algolia/client-search": "4.17.2", + "@algolia/requester-common": "4.17.2", + "@algolia/transporter": "4.17.2" } }, "node_modules/@algolia/client-common": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.14.2.tgz", - "integrity": "sha512-43o4fslNLcktgtDMVaT5XwlzsDPzlqvqesRi4MjQz2x4/Sxm7zYg5LRYFol1BIhG6EwxKvSUq8HcC/KxJu3J0Q==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.17.2.tgz", + "integrity": "sha512-gKBUnjxi0ukJYIJxVREYGt1Dmj1B3RBYbfGWi0dIPp1BC1VvQm+BOuNwsIwmq/x3MPO+sGuK978eKiP3tZDvag==", "dependencies": { - "@algolia/requester-common": "4.14.2", - "@algolia/transporter": "4.14.2" + "@algolia/requester-common": "4.17.2", + "@algolia/transporter": "4.17.2" } }, "node_modules/@algolia/client-personalization": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.14.2.tgz", - "integrity": "sha512-ACCoLi0cL8CBZ1W/2juehSltrw2iqsQBnfiu/Rbl9W2yE6o2ZUb97+sqN/jBqYNQBS+o0ekTMKNkQjHHAcEXNw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.17.2.tgz", + "integrity": "sha512-wc4UgOWxSYWz5wpuelNmlt895jA9twjZWM2ms17Ws8qCvBHF7OVGdMGgbysPB8790YnfvvDnSsWOv3CEj26Eow==", "dependencies": { - "@algolia/client-common": "4.14.2", - "@algolia/requester-common": "4.14.2", - "@algolia/transporter": "4.14.2" + "@algolia/client-common": "4.17.2", + "@algolia/requester-common": "4.17.2", + "@algolia/transporter": "4.17.2" } }, "node_modules/@algolia/client-search": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.14.2.tgz", - "integrity": "sha512-L5zScdOmcZ6NGiVbLKTvP02UbxZ0njd5Vq9nJAmPFtjffUSOGEp11BmD2oMJ5QvARgx2XbX4KzTTNS5ECYIMWw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.17.2.tgz", + "integrity": "sha512-FUjIs+gRe0upJC++uVs4sdxMw15JxfkT86Gr/kqVwi9kcqaZhXntSbW/Fw959bIYXczjmeVQsilYvBWW4YvSZA==", "dependencies": { - "@algolia/client-common": "4.14.2", - "@algolia/requester-common": "4.14.2", - "@algolia/transporter": "4.14.2" + "@algolia/client-common": "4.17.2", + "@algolia/requester-common": "4.17.2", + "@algolia/transporter": "4.17.2" } }, "node_modules/@algolia/logger-common": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.14.2.tgz", - "integrity": "sha512-/JGlYvdV++IcMHBnVFsqEisTiOeEr6cUJtpjz8zc0A9c31JrtLm318Njc72p14Pnkw3A/5lHHh+QxpJ6WFTmsA==" + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.17.2.tgz", + "integrity": "sha512-EfXuweUE+1HiSMsQidaDWA5Lv4NnStYIlh7PO5pLkI+sdhbMX0e5AO5nUAMIFM1VkEANes70RA8fzhP6OqCqQQ==" }, "node_modules/@algolia/logger-console": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.14.2.tgz", - "integrity": "sha512-8S2PlpdshbkwlLCSAB5f8c91xyc84VM9Ar9EdfE9UmX+NrKNYnWR1maXXVDQQoto07G1Ol/tYFnFVhUZq0xV/g==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.17.2.tgz", + "integrity": "sha512-JuG8HGVlJ+l/UEDK4h2Y8q/IEmRjQz1J0aS9tf6GPNbGYiSvMr1DDdZ+hqV3bb1XE6wU8Ypex56HisWMSpnG0A==", "dependencies": { - "@algolia/logger-common": "4.14.2" + "@algolia/logger-common": "4.17.2" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.14.2.tgz", - "integrity": "sha512-CEh//xYz/WfxHFh7pcMjQNWgpl4wFB85lUMRyVwaDPibNzQRVcV33YS+63fShFWc2+42YEipFGH2iPzlpszmDw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.17.2.tgz", + "integrity": "sha512-FKI2lYWwksALfRt2OETFmGb5+P7WVc4py2Ai3H7k8FSfTLwVvs9WVVmtlx6oANQ8RFEK4B85h8DQJTJ29TDfmA==", "dependencies": { - "@algolia/requester-common": "4.14.2" + "@algolia/requester-common": "4.17.2" } }, "node_modules/@algolia/requester-common": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.14.2.tgz", - "integrity": "sha512-73YQsBOKa5fvVV3My7iZHu1sUqmjjfs9TteFWwPwDmnad7T0VTCopttcsM3OjLxZFtBnX61Xxl2T2gmG2O4ehg==" + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.17.2.tgz", + "integrity": "sha512-Rfim23ztAhYpE9qm+KCfCRo+YLJCjiiTG+IpDdzUjMpYPhUtirQT0A35YEd/gKn86YNyydxS9w8iRSjwKh+L0A==" }, "node_modules/@algolia/requester-node-http": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.14.2.tgz", - "integrity": "sha512-oDbb02kd1o5GTEld4pETlPZLY0e+gOSWjWMJHWTgDXbv9rm/o2cF7japO6Vj1ENnrqWvLBmW1OzV9g6FUFhFXg==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.17.2.tgz", + "integrity": "sha512-E0b0kyCDMvUIhQmDNd/mH4fsKJdEEX6PkMKrYJjzm6moo+rP22tqpq4Rfe7DZD8OB6/LsDD3zs3Kvd+L+M5wwQ==", "dependencies": { - "@algolia/requester-common": "4.14.2" + "@algolia/requester-common": "4.17.2" } }, "node_modules/@algolia/transporter": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.14.2.tgz", - "integrity": "sha512-t89dfQb2T9MFQHidjHcfhh6iGMNwvuKUvojAj+JsrHAGbuSy7yE4BylhLX6R0Q1xYRoC4Vvv+O5qIw/LdnQfsQ==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.17.2.tgz", + "integrity": "sha512-m8pXlz5OnNzjD1rcw+duCN4jG4yEzkJBsvKYMoN22Oq6rQwy1AY5muZ+IQUs4dL+A364CYkRMLRWhvXpCZ1x+g==", "dependencies": { - "@algolia/cache-common": "4.14.2", - "@algolia/logger-common": "4.14.2", - "@algolia/requester-common": "4.14.2" + "@algolia/cache-common": "4.17.2", + "@algolia/logger-common": "4.17.2", + "@algolia/requester-common": "4.17.2" } }, "node_modules/@babel/parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", - "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", + "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", "bin": { "parser": "bin/babel-parser.js" }, @@ -166,27 +181,27 @@ } }, "node_modules/@docsearch/css": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.2.1.tgz", - "integrity": "sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g==" + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.0.tgz", + "integrity": "sha512-Ob5FQLubplcBNihAVtriR59FRBeP8u69F6mu4L4yIr60KfsPc10bOV0DoPErJw0zF9IBN2cNLW9qdmt8zWPxyg==" }, "node_modules/@docsearch/js": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.2.1.tgz", - "integrity": "sha512-H1PekEtSeS0msetR2YGGey2w7jQ2wAKfGODJvQTygSwMgUZ+2DHpzUgeDyEBIXRIfaBcoQneqrzsljM62pm6Xg==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.5.0.tgz", + "integrity": "sha512-WqB+z+zVKSXDkGq028nClT9RvMzfFlemZuIulX5ZwWkdUtl4k7M9cmZA/c6kuZf7FG24XQsMHWuBjeUo9hLRyA==", "dependencies": { - "@docsearch/react": "3.2.1", + "@docsearch/react": "3.5.0", "preact": "^10.0.0" } }, "node_modules/@docsearch/react": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.2.1.tgz", - "integrity": "sha512-EzTQ/y82s14IQC5XVestiK/kFFMe2aagoYFuTAIfIb/e+4FU7kSMKonRtLwsCiLQHmjvNQq+HO+33giJ5YVtaQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.0.tgz", + "integrity": "sha512-3IG8mmSMzSHNGy2S1VuPyYU9tFCxFpj5Ov8SYwsSHM4yMvFsaO9oFxXocA5lSenliIELhuOuS5+BdxHa/Qlf2A==", "dependencies": { - "@algolia/autocomplete-core": "1.7.1", - "@algolia/autocomplete-preset-algolia": "1.7.1", - "@docsearch/css": "3.2.1", + "@algolia/autocomplete-core": "1.9.2", + "@algolia/autocomplete-preset-algolia": "1.9.2", + "@docsearch/css": "3.5.0", "algoliasearch": "^4.0.0" }, "peerDependencies": { @@ -207,9 +222,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.9.tgz", - "integrity": "sha512-VZPy/ETF3fBG5PiinIkA0W/tlsvlEgJccyN2DzWZEl0DlVKRbu91PvY2D6Lxgluj4w9QtYHjOWjAT44C+oQ+EQ==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", "cpu": [ "arm" ], @@ -221,10 +236,145 @@ "node": ">=12" } }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/linux-loong64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.9.tgz", - "integrity": "sha512-O+NfmkfRrb3uSsTa4jE3WApidSe3N5++fyOVGP1SmMZi4A3BZELkhUUvj5hwmMuNdlpzAZ8iAPz2vmcR7DCFQA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", "cpu": [ "loong64" ], @@ -236,148 +386,408 @@ "node": ">=12" } }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, "node_modules/@types/web-bluetooth": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.15.tgz", - "integrity": "sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==" + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz", + "integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==" }, "node_modules/@vitejs/plugin-vue": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.1.0.tgz", - "integrity": "sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz", + "integrity": "sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==", "engines": { "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^3.0.0", + "vite": "^4.0.0", "vue": "^3.2.25" } }, "node_modules/@vue/compiler-core": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.39.tgz", - "integrity": "sha512-mf/36OWXqWn0wsC40nwRRGheR/qoID+lZXbIuLnr4/AngM0ov8Xvv8GHunC0rKRIkh60bTqydlqTeBo49rlbqw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", + "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.39", + "@babel/parser": "^7.21.3", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", - "source-map": "^0.6.1" + "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.39.tgz", - "integrity": "sha512-HMFI25Be1C8vLEEv1hgEO1dWwG9QQ8LTTPmCkblVJY/O3OvWx6r1+zsox5mKPMGvqYEZa6l8j+xgOfUspgo7hw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", + "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", "dependencies": { - "@vue/compiler-core": "3.2.39", - "@vue/shared": "3.2.39" + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.39.tgz", - "integrity": "sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", + "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.39", - "@vue/compiler-dom": "3.2.39", - "@vue/compiler-ssr": "3.2.39", - "@vue/reactivity-transform": "3.2.39", - "@vue/shared": "3.2.39", + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-ssr": "3.3.4", + "@vue/reactivity-transform": "3.3.4", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", + "magic-string": "^0.30.0", "postcss": "^8.1.10", - "source-map": "^0.6.1" + "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.39.tgz", - "integrity": "sha512-EoGCJ6lincKOZGW+0Ky4WOKsSmqL7hp1ZYgen8M7u/mlvvEQUaO9tKKOy7K43M9U2aA3tPv0TuYYQFrEbK2eFQ==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", + "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", "dependencies": { - "@vue/compiler-dom": "3.2.39", - "@vue/shared": "3.2.39" + "@vue/compiler-dom": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/@vue/devtools-api": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.2.1.tgz", - "integrity": "sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==" + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" }, "node_modules/@vue/reactivity": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.39.tgz", - "integrity": "sha512-vlaYX2a3qMhIZfrw3Mtfd+BuU+TZmvDrPMa+6lpfzS9k/LnGxkSuf0fhkP0rMGfiOHPtyKoU9OJJJFGm92beVQ==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", + "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", "dependencies": { - "@vue/shared": "3.2.39" + "@vue/shared": "3.3.4" } }, "node_modules/@vue/reactivity-transform": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.39.tgz", - "integrity": "sha512-HGuWu864zStiWs9wBC6JYOP1E00UjMdDWIG5W+FpUx28hV3uz9ODOKVNm/vdOy/Pvzg8+OcANxAVC85WFBbl3A==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", + "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.39", - "@vue/shared": "3.2.39", + "@babel/parser": "^7.20.15", + "@vue/compiler-core": "3.3.4", + "@vue/shared": "3.3.4", "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" + "magic-string": "^0.30.0" } }, "node_modules/@vue/runtime-core": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.39.tgz", - "integrity": "sha512-xKH5XP57JW5JW+8ZG1khBbuLakINTgPuINKL01hStWLTTGFOrM49UfCFXBcFvWmSbci3gmJyLl2EAzCaZWsx8g==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", + "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", "dependencies": { - "@vue/reactivity": "3.2.39", - "@vue/shared": "3.2.39" + "@vue/reactivity": "3.3.4", + "@vue/shared": "3.3.4" } }, "node_modules/@vue/runtime-dom": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.39.tgz", - "integrity": "sha512-4G9AEJP+sLhsqf5wXcyKVWQKUhI+iWfy0hWQgea+CpaTD7BR0KdQzvoQdZhwCY6B3oleSyNLkLAQwm0ya/wNoA==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", + "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", "dependencies": { - "@vue/runtime-core": "3.2.39", - "@vue/shared": "3.2.39", - "csstype": "^2.6.8" + "@vue/runtime-core": "3.3.4", + "@vue/shared": "3.3.4", + "csstype": "^3.1.1" } }, "node_modules/@vue/server-renderer": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.39.tgz", - "integrity": "sha512-1yn9u2YBQWIgytFMjz4f/t0j43awKytTGVptfd3FtBk76t1pd8mxbek0G/DrnjJhd2V7mSTb5qgnxMYt8Z5iSQ==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", + "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", "dependencies": { - "@vue/compiler-ssr": "3.2.39", - "@vue/shared": "3.2.39" + "@vue/compiler-ssr": "3.3.4", + "@vue/shared": "3.3.4" }, "peerDependencies": { - "vue": "3.2.39" + "vue": "3.3.4" } }, "node_modules/@vue/shared": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.39.tgz", - "integrity": "sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==" + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", + "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" }, "node_modules/@vueuse/core": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.2.0.tgz", - "integrity": "sha512-/MZ6qpz6uSyaXrtoeBWQzAKRG3N7CvfVWvQxiM3ei3Xe5ydOjjtVbo7lGl9p8dECV93j7W8s63A8H0kFLpLyxg==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.1.2.tgz", + "integrity": "sha512-roNn8WuerI56A5uiTyF/TEYX0Y+VKlhZAF94unUfdhbDUI+NfwQMn4FUnUscIRUhv3344qvAghopU4bzLPNFlA==", "dependencies": { - "@types/web-bluetooth": "^0.0.15", - "@vueuse/metadata": "9.2.0", - "@vueuse/shared": "9.2.0", - "vue-demi": "*" + "@types/web-bluetooth": "^0.0.17", + "@vueuse/metadata": "10.1.2", + "@vueuse/shared": "10.1.2", + "vue-demi": ">=0.14.0" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/core/node_modules/vue-demi": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", - "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/integrations": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.1.2.tgz", + "integrity": "sha512-wUpG3Wv6LiWerOwCzOAM0iGhNQ4vfFUTkhj/xQy7TLXduh2M3D8N08aS0KqlxsejY6R8NLxydDIM+68QfHZZ8Q==", + "dependencies": { + "@vueuse/core": "10.1.2", + "@vueuse/shared": "10.1.2", + "vue-demi": ">=0.14.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "async-validator": "*", + "axios": "*", + "change-case": "*", + "drauu": "*", + "focus-trap": "*", + "fuse.js": "*", + "idb-keyval": "*", + "jwt-decode": "*", + "nprogress": "*", + "qrcode": "*", + "sortablejs": "*", + "universal-cookie": "*" + }, + "peerDependenciesMeta": { + "async-validator": { + "optional": true + }, + "axios": { + "optional": true + }, + "change-case": { + "optional": true + }, + "drauu": { + "optional": true + }, + "focus-trap": { + "optional": true + }, + "fuse.js": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "jwt-decode": { + "optional": true + }, + "nprogress": { + "optional": true + }, + "qrcode": { + "optional": true + }, + "sortablejs": { + "optional": true + }, + "universal-cookie": { + "optional": true + } + } + }, + "node_modules/@vueuse/integrations/node_modules/vue-demi": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", "hasInstallScript": true, "bin": { "vue-demi-fix": "bin/vue-demi-fix.js", @@ -400,28 +810,28 @@ } }, "node_modules/@vueuse/metadata": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.2.0.tgz", - "integrity": "sha512-exN4KE6iquxDCdt72BgEhb3tlOpECtD61AUdXnUqBTIUCl70x1Ar/QXo3bYcvxmdMS2/peQyfeTzBjRTpvL5xw==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.1.2.tgz", + "integrity": "sha512-3mc5BqN9aU2SqBeBuWE7ne4OtXHoHKggNgxZR2K+zIW4YLsy6xoZ4/9vErQs6tvoKDX6QAqm3lvsrv0mczAwIQ==", "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.2.0.tgz", - "integrity": "sha512-NnRp/noSWuXW0dKhZK5D0YLrDi0nmZ18UeEgwXQq7Ul5TTP93lcNnKjrHtd68j2xFB/l59yPGFlCryL692bnrA==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.1.2.tgz", + "integrity": "sha512-1uoUTPBlgyscK9v6ScGeVYDDzlPSFXBlxuK7SfrDGyUTBiznb3mNceqhwvZHjtDRELZEN79V5uWPTF1VDV8svA==", "dependencies": { - "vue-demi": "*" + "vue-demi": ">=0.14.0" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared/node_modules/vue-demi": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", - "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.5.tgz", + "integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==", "hasInstallScript": true, "bin": { "vue-demi-fix": "bin/vue-demi-fix.js", @@ -444,48 +854,56 @@ } }, "node_modules/algoliasearch": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.14.2.tgz", - "integrity": "sha512-ngbEQonGEmf8dyEh5f+uOIihv4176dgbuOZspiuhmTTBRBuzWu3KCGHre6uHj5YyuC7pNvQGzB6ZNJyZi0z+Sg==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.17.2.tgz", + "integrity": "sha512-VFu43JJNYIW74awp7oeQcQsPcxOhd8psqBDTfyNO2Zt6L1NqnNMTVnaIdQ+8dtKqUDBqQZp0szPxECvX8CK2Fg==", "dependencies": { - "@algolia/cache-browser-local-storage": "4.14.2", - "@algolia/cache-common": "4.14.2", - "@algolia/cache-in-memory": "4.14.2", - "@algolia/client-account": "4.14.2", - "@algolia/client-analytics": "4.14.2", - "@algolia/client-common": "4.14.2", - "@algolia/client-personalization": "4.14.2", - "@algolia/client-search": "4.14.2", - "@algolia/logger-common": "4.14.2", - "@algolia/logger-console": "4.14.2", - "@algolia/requester-browser-xhr": "4.14.2", - "@algolia/requester-common": "4.14.2", - "@algolia/requester-node-http": "4.14.2", - "@algolia/transporter": "4.14.2" + "@algolia/cache-browser-local-storage": "4.17.2", + "@algolia/cache-common": "4.17.2", + "@algolia/cache-in-memory": "4.17.2", + "@algolia/client-account": "4.17.2", + "@algolia/client-analytics": "4.17.2", + "@algolia/client-common": "4.17.2", + "@algolia/client-personalization": "4.17.2", + "@algolia/client-search": "4.17.2", + "@algolia/logger-common": "4.17.2", + "@algolia/logger-console": "4.17.2", + "@algolia/requester-browser-xhr": "4.17.2", + "@algolia/requester-common": "4.17.2", + "@algolia/requester-node-http": "4.17.2", + "@algolia/transporter": "4.17.2" } }, + "node_modules/ansi-sequence-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", + "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==" + }, "node_modules/body-scroll-lock": { "version": "4.0.0-beta.0", "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz", "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==" }, "node_modules/csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/dotenv": { - "version": "16.0.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.2.tgz", - "integrity": "sha512-JvpYKUmzQhYoIFgK2MOnF3bciIZoItIIoryihy0rIA+H4Jy0FmgyKYAHCTN98P5ybGSJcIFbh6QKeJdtZd1qhA==", + "version": "16.1.4", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.1.4.tgz", + "integrity": "sha512-m55RtE8AsPeJBpOIFKihEmqUcoVncQIwo7x9U8ZwLEZw9ZpXboz2c+rvog+jUaJvVrZ5kBOeYQBX5+8Aa/OZQw==", "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" } }, "node_modules/esbuild": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.9.tgz", - "integrity": "sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -494,328 +912,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.15.9", - "@esbuild/linux-loong64": "0.15.9", - "esbuild-android-64": "0.15.9", - "esbuild-android-arm64": "0.15.9", - "esbuild-darwin-64": "0.15.9", - "esbuild-darwin-arm64": "0.15.9", - "esbuild-freebsd-64": "0.15.9", - "esbuild-freebsd-arm64": "0.15.9", - "esbuild-linux-32": "0.15.9", - "esbuild-linux-64": "0.15.9", - "esbuild-linux-arm": "0.15.9", - "esbuild-linux-arm64": "0.15.9", - "esbuild-linux-mips64le": "0.15.9", - "esbuild-linux-ppc64le": "0.15.9", - "esbuild-linux-riscv64": "0.15.9", - "esbuild-linux-s390x": "0.15.9", - "esbuild-netbsd-64": "0.15.9", - "esbuild-openbsd-64": "0.15.9", - "esbuild-sunos-64": "0.15.9", - "esbuild-windows-32": "0.15.9", - "esbuild-windows-64": "0.15.9", - "esbuild-windows-arm64": "0.15.9" - } - }, - "node_modules/esbuild-android-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.9.tgz", - "integrity": "sha512-HQCX7FJn9T4kxZQkhPjNZC7tBWZqJvhlLHPU2SFzrQB/7nDXjmTIFpFTjt7Bd1uFpeXmuwf5h5fZm+x/hLnhbw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.9.tgz", - "integrity": "sha512-E6zbLfqbFVCNEKircSHnPiSTsm3fCRxeIMPfrkS33tFjIAoXtwegQfVZqMGR0FlsvVxp2NEDOUz+WW48COCjSg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz", - "integrity": "sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.9.tgz", - "integrity": "sha512-VZIMlcRN29yg/sv7DsDwN+OeufCcoTNaTl3Vnav7dL/nvsApD7uvhVRbgyMzv0zU/PP0xRhhIpTyc7lxEzHGSw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.9.tgz", - "integrity": "sha512-uM4z5bTvuAXqPxrI204txhlsPIolQPWRMLenvGuCPZTnnGlCMF2QLs0Plcm26gcskhxewYo9LkkmYSS5Czrb5A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.9.tgz", - "integrity": "sha512-HHDjT3O5gWzicGdgJ5yokZVN9K9KG05SnERwl9nBYZaCjcCgj/sX8Ps1jvoFSfNCO04JSsHSOWo4qvxFuj8FoA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.9.tgz", - "integrity": "sha512-AQIdE8FugGt1DkcekKi5ycI46QZpGJ/wqcMr7w6YUmOmp2ohQ8eO4sKUsOxNOvYL7hGEVwkndSyszR6HpVHLFg==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.9.tgz", - "integrity": "sha512-4RXjae7g6Qs7StZyiYyXTZXBlfODhb1aBVAjd+ANuPmMhWthQilWo7rFHwJwL7DQu1Fjej2sODAVwLbcIVsAYQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.9.tgz", - "integrity": "sha512-3Zf2GVGUOI7XwChH3qrnTOSqfV1V4CAc/7zLVm4lO6JT6wbJrTgEYCCiNSzziSju+J9Jhf9YGWk/26quWPC6yQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.9.tgz", - "integrity": "sha512-a+bTtxJmYmk9d+s2W4/R1SYKDDAldOKmWjWP0BnrWtDbvUBNOm++du0ysPju4mZVoEFgS1yLNW+VXnG/4FNwdQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.9.tgz", - "integrity": "sha512-Zn9HSylDp89y+TRREMDoGrc3Z4Hs5u56ozZLQCiZAUx2+HdbbXbWdjmw3FdTJ/i7t5Cew6/Q+6kfO3KCcFGlyw==", - "cpu": [ - "mips64el" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.9.tgz", - "integrity": "sha512-OEiOxNAMH9ENFYqRsWUj3CWyN3V8P3ZXyfNAtX5rlCEC/ERXrCEFCJji/1F6POzsXAzxvUJrTSTCy7G6BhA6Fw==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.9.tgz", - "integrity": "sha512-ukm4KsC3QRausEFjzTsOZ/qqazw0YvJsKmfoZZm9QW27OHjk2XKSQGGvx8gIEswft/Sadp03/VZvAaqv5AIwNA==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-s390x": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.9.tgz", - "integrity": "sha512-uDOQEH55wQ6ahcIKzQr3VyjGc6Po/xblLGLoUk3fVL1qjlZAibtQr6XRfy5wPJLu/M2o0vQKLq4lyJ2r1tWKcw==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.9.tgz", - "integrity": "sha512-yWgxaYTQz+TqX80wXRq6xAtb7GSBAp6gqLKfOdANg9qEmAI1Bxn04IrQr0Mzm4AhxvGKoHzjHjMgXbCCSSDxcw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.9.tgz", - "integrity": "sha512-JmS18acQl4iSAjrEha1MfEmUMN4FcnnrtTaJ7Qg0tDCOcgpPPQRLGsZqhes0vmx8VA6IqRyScqXvaL7+Q0Uf3A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.9.tgz", - "integrity": "sha512-UKynGSWpzkPmXW3D2UMOD9BZPIuRaSqphxSCwScfEE05Be3KAmvjsBhht1fLzKpiFVJb0BYMd4jEbWMyJ/z1hQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-32": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.9.tgz", - "integrity": "sha512-aqXvu4/W9XyTVqO/hw3rNxKE1TcZiEYHPsXM9LwYmKSX9/hjvfIJzXwQBlPcJ/QOxedfoMVH0YnhhQ9Ffb0RGA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.9.tgz", - "integrity": "sha512-zm7h91WUmlS4idMtjvCrEeNhlH7+TNOmqw5dJPJZrgFaxoFyqYG6CKDpdFCQXdyKpD5yvzaQBOMVTCBVKGZDEg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.9.tgz", - "integrity": "sha512-yQEVIv27oauAtvtuhJVfSNMztJJX47ismRS6Sv2QMVV9RM+6xjbMWuuwM2nxr5A2/gj/mu2z9YlQxiwoFRCfZA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" } }, "node_modules/estree-walker": { @@ -823,6 +941,14 @@ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, + "node_modules/focus-trap": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.4.3.tgz", + "integrity": "sha512-BgSSbK4GPnS2VbtZ50VtOv1Sti6DIkj3+LkVjiWMNjLeAp1SH1UlLx3ULu/DCu4vq5R4/uvTm+zrvsMsuYmGLg==", + "dependencies": { + "tabbable": "^6.1.2" + } + }, "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", @@ -836,50 +962,42 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/jsonc-parser": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" }, "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", "dependencies": { - "sourcemap-codec": "^1.4.8" + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" } }, + "node_modules/mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==" + }, + "node_modules/minisearch": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.1.0.tgz", + "integrity": "sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==" + }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -887,25 +1005,15 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/postcss": { - "version": "8.4.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "version": "8.4.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", + "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", "funding": [ { "type": "opencollective", @@ -914,10 +1022,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -926,60 +1038,47 @@ } }, "node_modules/preact": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.0.tgz", - "integrity": "sha512-Fk6+vB2kb6mSJfDgODq0YDhMfl0HNtK5+Uc9QqECO4nlyPAQwCI+BKyWO//idA7ikV7o+0Fm6LQmNuQi1wXI1w==", + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.15.1.tgz", + "integrity": "sha512-qs2ansoQEwzNiV5eAcRT1p1EC/dmEzaATVDJNiB3g2sRDWdA7b7MurXdJjB2+/WQktGWZwxvDrnuRFbWuIr64g==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" } }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/rollup": { - "version": "2.78.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz", - "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.1.tgz", + "integrity": "sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==", "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=10.0.0" + "node": ">=14.18.0", + "npm": ">=8.0.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, - "node_modules/shiki": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.11.1.tgz", - "integrity": "sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==", - "dependencies": { - "jsonc-parser": "^3.0.0", - "vscode-oniguruma": "^1.6.1", - "vscode-textmate": "^6.0.0" + "node_modules/search-insights": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.6.0.tgz", + "integrity": "sha512-vU2/fJ+h/Mkm/DJOe+EaM5cafJv/1rRTZpGJTuFPf/Q5LjzgMDsqPdSaZsAe+GAWHHsfsu+rQSAn6c8IGtBEVw==", + "peer": true, + "engines": { + "node": ">=8.16.0" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" + "node_modules/shiki": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz", + "integrity": "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==", + "dependencies": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" } }, "node_modules/source-map-js": { @@ -990,31 +1089,19 @@ "node": ">=0.10.0" } }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/tabbable": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.1.2.tgz", + "integrity": "sha512-qCN98uP7i9z0fIS4amQ5zbGBOq+OSigYeGvPy7NDk8Y9yncqDZ9pRPgfsc2PJIVM9RrJj7GIfuRgmjoUU9zTHQ==" }, "node_modules/vite": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-3.1.3.tgz", - "integrity": "sha512-/3XWiktaopByM5bd8dqvHxRt5EEgRikevnnrpND0gRfNkrMrPaGGexhtLCzv15RcCMtV2CLw+BPas8YFeSG0KA==", + "version": "4.3.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", + "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", "dependencies": { - "esbuild": "^0.15.6", - "postcss": "^8.4.16", - "resolve": "^1.22.1", - "rollup": "~2.78.0" + "esbuild": "^0.17.5", + "postcss": "^8.4.23", + "rollup": "^3.21.0" }, "bin": { "vite": "bin/vite.js" @@ -1026,12 +1113,17 @@ "fsevents": "~2.3.2" }, "peerDependencies": { + "@types/node": ">= 14", "less": "*", "sass": "*", "stylus": "*", + "sugarss": "*", "terser": "^5.4.0" }, "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, "less": { "optional": true }, @@ -1041,750 +1133,57 @@ "stylus": { "optional": true }, + "sugarss": { + "optional": true + }, "terser": { "optional": true } } }, "node_modules/vitepress": { - "version": "1.0.0-alpha.15", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-alpha.15.tgz", - "integrity": "sha512-+pHJQCpnv0wVgLRyonisrj7Y77PVhbns2nTLxV9GkH3T+RTY/W2JmRatzBg5WciMaPyO8Ms6F3YElO5PULVv3w==", + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-beta.2.tgz", + "integrity": "sha512-DBXYjtYbm3W1IPPJ2TiCaK/XK+o/2XmL2+jslOGKm+txcbmG0kbeB+vadC5tCUZA9NdA+9Ywj3M4548c7t/SDg==", "dependencies": { - "@docsearch/css": "^3.2.1", - "@docsearch/js": "^3.2.1", - "@vitejs/plugin-vue": "^3.1.0", - "@vue/devtools-api": "^6.2.1", - "@vueuse/core": "^9.1.1", - "body-scroll-lock": "^4.0.0-beta.0", - "nprogress": "^0.2.0", - "shiki": "^0.11.1", - "vite": "^3.1.0", - "vue": "^3.2.38" + "@docsearch/css": "^3.5.0", + "@docsearch/js": "^3.5.0", + "@vitejs/plugin-vue": "^4.2.3", + "@vue/devtools-api": "^6.5.0", + "@vueuse/core": "^10.1.2", + "@vueuse/integrations": "^10.1.2", + "body-scroll-lock": "4.0.0-beta.0", + "focus-trap": "^7.4.3", + "mark.js": "8.11.1", + "minisearch": "^6.1.0", + "shiki": "^0.14.2", + "vite": "^4.3.9", + "vue": "^3.3.4" }, "bin": { "vitepress": "bin/vitepress.js" } }, "node_modules/vscode-oniguruma": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", - "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==" }, "node_modules/vscode-textmate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-6.0.0.tgz", - "integrity": "sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==" }, "node_modules/vue": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.39.tgz", - "integrity": "sha512-tRkguhRTw9NmIPXhzk21YFBqXHT2t+6C6wPOgQ50fcFVWnPdetmRqbmySRHznrYjX2E47u0cGlKGcxKZJ38R/g==", - "dependencies": { - "@vue/compiler-dom": "3.2.39", - "@vue/compiler-sfc": "3.2.39", - "@vue/runtime-dom": "3.2.39", - "@vue/server-renderer": "3.2.39", - "@vue/shared": "3.2.39" - } - } - }, - "dependencies": { - "@algolia/autocomplete-core": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.1.tgz", - "integrity": "sha512-eiZw+fxMzNQn01S8dA/hcCpoWCOCwcIIEUtHHdzN5TGB3IpzLbuhqFeTfh2OUhhgkE8Uo17+wH+QJ/wYyQmmzg==", - "requires": { - "@algolia/autocomplete-shared": "1.7.1" - } - }, - "@algolia/autocomplete-preset-algolia": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.1.tgz", - "integrity": "sha512-pJwmIxeJCymU1M6cGujnaIYcY3QPOVYZOXhFkWVM7IxKzy272BwCvMFMyc5NpG/QmiObBxjo7myd060OeTNJXg==", - "requires": { - "@algolia/autocomplete-shared": "1.7.1" - } - }, - "@algolia/autocomplete-shared": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.1.tgz", - "integrity": "sha512-eTmGVqY3GeyBTT8IWiB2K5EuURAqhnumfktAEoHxfDY2o7vg2rSnO16ZtIG0fMgt3py28Vwgq42/bVEuaQV7pg==" - }, - "@algolia/cache-browser-local-storage": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.2.tgz", - "integrity": "sha512-FRweBkK/ywO+GKYfAWbrepewQsPTIEirhi1BdykX9mxvBPtGNKccYAxvGdDCumU1jL4r3cayio4psfzKMejBlA==", - "requires": { - "@algolia/cache-common": "4.14.2" - } - }, - "@algolia/cache-common": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.14.2.tgz", - "integrity": "sha512-SbvAlG9VqNanCErr44q6lEKD2qoK4XtFNx9Qn8FK26ePCI8I9yU7pYB+eM/cZdS9SzQCRJBbHUumVr4bsQ4uxg==" - }, - "@algolia/cache-in-memory": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.14.2.tgz", - "integrity": "sha512-HrOukWoop9XB/VFojPv1R5SVXowgI56T9pmezd/djh2JnVN/vXswhXV51RKy4nCpqxyHt/aGFSq2qkDvj6KiuQ==", - "requires": { - "@algolia/cache-common": "4.14.2" - } - }, - "@algolia/client-account": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.14.2.tgz", - "integrity": "sha512-WHtriQqGyibbb/Rx71YY43T0cXqyelEU0lB2QMBRXvD2X0iyeGl4qMxocgEIcbHyK7uqE7hKgjT8aBrHqhgc1w==", - "requires": { - "@algolia/client-common": "4.14.2", - "@algolia/client-search": "4.14.2", - "@algolia/transporter": "4.14.2" - } - }, - "@algolia/client-analytics": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.14.2.tgz", - "integrity": "sha512-yBvBv2mw+HX5a+aeR0dkvUbFZsiC4FKSnfqk9rrfX+QrlNOKEhCG0tJzjiOggRW4EcNqRmaTULIYvIzQVL2KYQ==", - "requires": { - "@algolia/client-common": "4.14.2", - "@algolia/client-search": "4.14.2", - "@algolia/requester-common": "4.14.2", - "@algolia/transporter": "4.14.2" - } - }, - "@algolia/client-common": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.14.2.tgz", - "integrity": "sha512-43o4fslNLcktgtDMVaT5XwlzsDPzlqvqesRi4MjQz2x4/Sxm7zYg5LRYFol1BIhG6EwxKvSUq8HcC/KxJu3J0Q==", - "requires": { - "@algolia/requester-common": "4.14.2", - "@algolia/transporter": "4.14.2" - } - }, - "@algolia/client-personalization": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.14.2.tgz", - "integrity": "sha512-ACCoLi0cL8CBZ1W/2juehSltrw2iqsQBnfiu/Rbl9W2yE6o2ZUb97+sqN/jBqYNQBS+o0ekTMKNkQjHHAcEXNw==", - "requires": { - "@algolia/client-common": "4.14.2", - "@algolia/requester-common": "4.14.2", - "@algolia/transporter": "4.14.2" - } - }, - "@algolia/client-search": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.14.2.tgz", - "integrity": "sha512-L5zScdOmcZ6NGiVbLKTvP02UbxZ0njd5Vq9nJAmPFtjffUSOGEp11BmD2oMJ5QvARgx2XbX4KzTTNS5ECYIMWw==", - "requires": { - "@algolia/client-common": "4.14.2", - "@algolia/requester-common": "4.14.2", - "@algolia/transporter": "4.14.2" - } - }, - "@algolia/logger-common": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.14.2.tgz", - "integrity": "sha512-/JGlYvdV++IcMHBnVFsqEisTiOeEr6cUJtpjz8zc0A9c31JrtLm318Njc72p14Pnkw3A/5lHHh+QxpJ6WFTmsA==" - }, - "@algolia/logger-console": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.14.2.tgz", - "integrity": "sha512-8S2PlpdshbkwlLCSAB5f8c91xyc84VM9Ar9EdfE9UmX+NrKNYnWR1maXXVDQQoto07G1Ol/tYFnFVhUZq0xV/g==", - "requires": { - "@algolia/logger-common": "4.14.2" - } - }, - "@algolia/requester-browser-xhr": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.14.2.tgz", - "integrity": "sha512-CEh//xYz/WfxHFh7pcMjQNWgpl4wFB85lUMRyVwaDPibNzQRVcV33YS+63fShFWc2+42YEipFGH2iPzlpszmDw==", - "requires": { - "@algolia/requester-common": "4.14.2" - } - }, - "@algolia/requester-common": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.14.2.tgz", - "integrity": "sha512-73YQsBOKa5fvVV3My7iZHu1sUqmjjfs9TteFWwPwDmnad7T0VTCopttcsM3OjLxZFtBnX61Xxl2T2gmG2O4ehg==" - }, - "@algolia/requester-node-http": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.14.2.tgz", - "integrity": "sha512-oDbb02kd1o5GTEld4pETlPZLY0e+gOSWjWMJHWTgDXbv9rm/o2cF7japO6Vj1ENnrqWvLBmW1OzV9g6FUFhFXg==", - "requires": { - "@algolia/requester-common": "4.14.2" - } - }, - "@algolia/transporter": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.14.2.tgz", - "integrity": "sha512-t89dfQb2T9MFQHidjHcfhh6iGMNwvuKUvojAj+JsrHAGbuSy7yE4BylhLX6R0Q1xYRoC4Vvv+O5qIw/LdnQfsQ==", - "requires": { - "@algolia/cache-common": "4.14.2", - "@algolia/logger-common": "4.14.2", - "@algolia/requester-common": "4.14.2" - } - }, - "@babel/parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", - "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==" - }, - "@docsearch/css": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.2.1.tgz", - "integrity": "sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g==" - }, - "@docsearch/js": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.2.1.tgz", - "integrity": "sha512-H1PekEtSeS0msetR2YGGey2w7jQ2wAKfGODJvQTygSwMgUZ+2DHpzUgeDyEBIXRIfaBcoQneqrzsljM62pm6Xg==", - "requires": { - "@docsearch/react": "3.2.1", - "preact": "^10.0.0" - } - }, - "@docsearch/react": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.2.1.tgz", - "integrity": "sha512-EzTQ/y82s14IQC5XVestiK/kFFMe2aagoYFuTAIfIb/e+4FU7kSMKonRtLwsCiLQHmjvNQq+HO+33giJ5YVtaQ==", - "requires": { - "@algolia/autocomplete-core": "1.7.1", - "@algolia/autocomplete-preset-algolia": "1.7.1", - "@docsearch/css": "3.2.1", - "algoliasearch": "^4.0.0" - } - }, - "@esbuild/android-arm": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.9.tgz", - "integrity": "sha512-VZPy/ETF3fBG5PiinIkA0W/tlsvlEgJccyN2DzWZEl0DlVKRbu91PvY2D6Lxgluj4w9QtYHjOWjAT44C+oQ+EQ==", - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.9.tgz", - "integrity": "sha512-O+NfmkfRrb3uSsTa4jE3WApidSe3N5++fyOVGP1SmMZi4A3BZELkhUUvj5hwmMuNdlpzAZ8iAPz2vmcR7DCFQA==", - "optional": true - }, - "@types/web-bluetooth": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.15.tgz", - "integrity": "sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==" - }, - "@vitejs/plugin-vue": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.1.0.tgz", - "integrity": "sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA==", - "requires": {} - }, - "@vue/compiler-core": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.39.tgz", - "integrity": "sha512-mf/36OWXqWn0wsC40nwRRGheR/qoID+lZXbIuLnr4/AngM0ov8Xvv8GHunC0rKRIkh60bTqydlqTeBo49rlbqw==", - "requires": { - "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.39", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "@vue/compiler-dom": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.39.tgz", - "integrity": "sha512-HMFI25Be1C8vLEEv1hgEO1dWwG9QQ8LTTPmCkblVJY/O3OvWx6r1+zsox5mKPMGvqYEZa6l8j+xgOfUspgo7hw==", - "requires": { - "@vue/compiler-core": "3.2.39", - "@vue/shared": "3.2.39" - } - }, - "@vue/compiler-sfc": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.39.tgz", - "integrity": "sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA==", - "requires": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.39", - "@vue/compiler-dom": "3.2.39", - "@vue/compiler-ssr": "3.2.39", - "@vue/reactivity-transform": "3.2.39", - "@vue/shared": "3.2.39", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - } - }, - "@vue/compiler-ssr": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.39.tgz", - "integrity": "sha512-EoGCJ6lincKOZGW+0Ky4WOKsSmqL7hp1ZYgen8M7u/mlvvEQUaO9tKKOy7K43M9U2aA3tPv0TuYYQFrEbK2eFQ==", - "requires": { - "@vue/compiler-dom": "3.2.39", - "@vue/shared": "3.2.39" - } - }, - "@vue/devtools-api": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.2.1.tgz", - "integrity": "sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==" - }, - "@vue/reactivity": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.39.tgz", - "integrity": "sha512-vlaYX2a3qMhIZfrw3Mtfd+BuU+TZmvDrPMa+6lpfzS9k/LnGxkSuf0fhkP0rMGfiOHPtyKoU9OJJJFGm92beVQ==", - "requires": { - "@vue/shared": "3.2.39" - } - }, - "@vue/reactivity-transform": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.39.tgz", - "integrity": "sha512-HGuWu864zStiWs9wBC6JYOP1E00UjMdDWIG5W+FpUx28hV3uz9ODOKVNm/vdOy/Pvzg8+OcANxAVC85WFBbl3A==", - "requires": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.39", - "@vue/shared": "3.2.39", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" - } - }, - "@vue/runtime-core": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.39.tgz", - "integrity": "sha512-xKH5XP57JW5JW+8ZG1khBbuLakINTgPuINKL01hStWLTTGFOrM49UfCFXBcFvWmSbci3gmJyLl2EAzCaZWsx8g==", - "requires": { - "@vue/reactivity": "3.2.39", - "@vue/shared": "3.2.39" - } - }, - "@vue/runtime-dom": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.39.tgz", - "integrity": "sha512-4G9AEJP+sLhsqf5wXcyKVWQKUhI+iWfy0hWQgea+CpaTD7BR0KdQzvoQdZhwCY6B3oleSyNLkLAQwm0ya/wNoA==", - "requires": { - "@vue/runtime-core": "3.2.39", - "@vue/shared": "3.2.39", - "csstype": "^2.6.8" - } - }, - "@vue/server-renderer": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.39.tgz", - "integrity": "sha512-1yn9u2YBQWIgytFMjz4f/t0j43awKytTGVptfd3FtBk76t1pd8mxbek0G/DrnjJhd2V7mSTb5qgnxMYt8Z5iSQ==", - "requires": { - "@vue/compiler-ssr": "3.2.39", - "@vue/shared": "3.2.39" - } - }, - "@vue/shared": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.39.tgz", - "integrity": "sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==" - }, - "@vueuse/core": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.2.0.tgz", - "integrity": "sha512-/MZ6qpz6uSyaXrtoeBWQzAKRG3N7CvfVWvQxiM3ei3Xe5ydOjjtVbo7lGl9p8dECV93j7W8s63A8H0kFLpLyxg==", - "requires": { - "@types/web-bluetooth": "^0.0.15", - "@vueuse/metadata": "9.2.0", - "@vueuse/shared": "9.2.0", - "vue-demi": "*" - }, - "dependencies": { - "vue-demi": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", - "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", - "requires": {} - } - } - }, - "@vueuse/metadata": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.2.0.tgz", - "integrity": "sha512-exN4KE6iquxDCdt72BgEhb3tlOpECtD61AUdXnUqBTIUCl70x1Ar/QXo3bYcvxmdMS2/peQyfeTzBjRTpvL5xw==" - }, - "@vueuse/shared": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.2.0.tgz", - "integrity": "sha512-NnRp/noSWuXW0dKhZK5D0YLrDi0nmZ18UeEgwXQq7Ul5TTP93lcNnKjrHtd68j2xFB/l59yPGFlCryL692bnrA==", - "requires": { - "vue-demi": "*" - }, - "dependencies": { - "vue-demi": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", - "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", - "requires": {} - } - } - }, - "algoliasearch": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.14.2.tgz", - "integrity": "sha512-ngbEQonGEmf8dyEh5f+uOIihv4176dgbuOZspiuhmTTBRBuzWu3KCGHre6uHj5YyuC7pNvQGzB6ZNJyZi0z+Sg==", - "requires": { - "@algolia/cache-browser-local-storage": "4.14.2", - "@algolia/cache-common": "4.14.2", - "@algolia/cache-in-memory": "4.14.2", - "@algolia/client-account": "4.14.2", - "@algolia/client-analytics": "4.14.2", - "@algolia/client-common": "4.14.2", - "@algolia/client-personalization": "4.14.2", - "@algolia/client-search": "4.14.2", - "@algolia/logger-common": "4.14.2", - "@algolia/logger-console": "4.14.2", - "@algolia/requester-browser-xhr": "4.14.2", - "@algolia/requester-common": "4.14.2", - "@algolia/requester-node-http": "4.14.2", - "@algolia/transporter": "4.14.2" - } - }, - "body-scroll-lock": { - "version": "4.0.0-beta.0", - "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz", - "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==" - }, - "csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" - }, - "dotenv": { - "version": "16.0.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.2.tgz", - "integrity": "sha512-JvpYKUmzQhYoIFgK2MOnF3bciIZoItIIoryihy0rIA+H4Jy0FmgyKYAHCTN98P5ybGSJcIFbh6QKeJdtZd1qhA==" - }, - "esbuild": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.9.tgz", - "integrity": "sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==", - "requires": { - "@esbuild/android-arm": "0.15.9", - "@esbuild/linux-loong64": "0.15.9", - "esbuild-android-64": "0.15.9", - "esbuild-android-arm64": "0.15.9", - "esbuild-darwin-64": "0.15.9", - "esbuild-darwin-arm64": "0.15.9", - "esbuild-freebsd-64": "0.15.9", - "esbuild-freebsd-arm64": "0.15.9", - "esbuild-linux-32": "0.15.9", - "esbuild-linux-64": "0.15.9", - "esbuild-linux-arm": "0.15.9", - "esbuild-linux-arm64": "0.15.9", - "esbuild-linux-mips64le": "0.15.9", - "esbuild-linux-ppc64le": "0.15.9", - "esbuild-linux-riscv64": "0.15.9", - "esbuild-linux-s390x": "0.15.9", - "esbuild-netbsd-64": "0.15.9", - "esbuild-openbsd-64": "0.15.9", - "esbuild-sunos-64": "0.15.9", - "esbuild-windows-32": "0.15.9", - "esbuild-windows-64": "0.15.9", - "esbuild-windows-arm64": "0.15.9" - } - }, - "esbuild-android-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.9.tgz", - "integrity": "sha512-HQCX7FJn9T4kxZQkhPjNZC7tBWZqJvhlLHPU2SFzrQB/7nDXjmTIFpFTjt7Bd1uFpeXmuwf5h5fZm+x/hLnhbw==", - "optional": true - }, - "esbuild-android-arm64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.9.tgz", - "integrity": "sha512-E6zbLfqbFVCNEKircSHnPiSTsm3fCRxeIMPfrkS33tFjIAoXtwegQfVZqMGR0FlsvVxp2NEDOUz+WW48COCjSg==", - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz", - "integrity": "sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==", - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.9.tgz", - "integrity": "sha512-VZIMlcRN29yg/sv7DsDwN+OeufCcoTNaTl3Vnav7dL/nvsApD7uvhVRbgyMzv0zU/PP0xRhhIpTyc7lxEzHGSw==", - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.9.tgz", - "integrity": "sha512-uM4z5bTvuAXqPxrI204txhlsPIolQPWRMLenvGuCPZTnnGlCMF2QLs0Plcm26gcskhxewYo9LkkmYSS5Czrb5A==", - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.9.tgz", - "integrity": "sha512-HHDjT3O5gWzicGdgJ5yokZVN9K9KG05SnERwl9nBYZaCjcCgj/sX8Ps1jvoFSfNCO04JSsHSOWo4qvxFuj8FoA==", - "optional": true - }, - "esbuild-linux-32": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.9.tgz", - "integrity": "sha512-AQIdE8FugGt1DkcekKi5ycI46QZpGJ/wqcMr7w6YUmOmp2ohQ8eO4sKUsOxNOvYL7hGEVwkndSyszR6HpVHLFg==", - "optional": true - }, - "esbuild-linux-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.9.tgz", - "integrity": "sha512-4RXjae7g6Qs7StZyiYyXTZXBlfODhb1aBVAjd+ANuPmMhWthQilWo7rFHwJwL7DQu1Fjej2sODAVwLbcIVsAYQ==", - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.9.tgz", - "integrity": "sha512-3Zf2GVGUOI7XwChH3qrnTOSqfV1V4CAc/7zLVm4lO6JT6wbJrTgEYCCiNSzziSju+J9Jhf9YGWk/26quWPC6yQ==", - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.9.tgz", - "integrity": "sha512-a+bTtxJmYmk9d+s2W4/R1SYKDDAldOKmWjWP0BnrWtDbvUBNOm++du0ysPju4mZVoEFgS1yLNW+VXnG/4FNwdQ==", - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.9.tgz", - "integrity": "sha512-Zn9HSylDp89y+TRREMDoGrc3Z4Hs5u56ozZLQCiZAUx2+HdbbXbWdjmw3FdTJ/i7t5Cew6/Q+6kfO3KCcFGlyw==", - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.9.tgz", - "integrity": "sha512-OEiOxNAMH9ENFYqRsWUj3CWyN3V8P3ZXyfNAtX5rlCEC/ERXrCEFCJji/1F6POzsXAzxvUJrTSTCy7G6BhA6Fw==", - "optional": true - }, - "esbuild-linux-riscv64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.9.tgz", - "integrity": "sha512-ukm4KsC3QRausEFjzTsOZ/qqazw0YvJsKmfoZZm9QW27OHjk2XKSQGGvx8gIEswft/Sadp03/VZvAaqv5AIwNA==", - "optional": true - }, - "esbuild-linux-s390x": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.9.tgz", - "integrity": "sha512-uDOQEH55wQ6ahcIKzQr3VyjGc6Po/xblLGLoUk3fVL1qjlZAibtQr6XRfy5wPJLu/M2o0vQKLq4lyJ2r1tWKcw==", - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.9.tgz", - "integrity": "sha512-yWgxaYTQz+TqX80wXRq6xAtb7GSBAp6gqLKfOdANg9qEmAI1Bxn04IrQr0Mzm4AhxvGKoHzjHjMgXbCCSSDxcw==", - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.9.tgz", - "integrity": "sha512-JmS18acQl4iSAjrEha1MfEmUMN4FcnnrtTaJ7Qg0tDCOcgpPPQRLGsZqhes0vmx8VA6IqRyScqXvaL7+Q0Uf3A==", - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.9.tgz", - "integrity": "sha512-UKynGSWpzkPmXW3D2UMOD9BZPIuRaSqphxSCwScfEE05Be3KAmvjsBhht1fLzKpiFVJb0BYMd4jEbWMyJ/z1hQ==", - "optional": true - }, - "esbuild-windows-32": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.9.tgz", - "integrity": "sha512-aqXvu4/W9XyTVqO/hw3rNxKE1TcZiEYHPsXM9LwYmKSX9/hjvfIJzXwQBlPcJ/QOxedfoMVH0YnhhQ9Ffb0RGA==", - "optional": true - }, - "esbuild-windows-64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.9.tgz", - "integrity": "sha512-zm7h91WUmlS4idMtjvCrEeNhlH7+TNOmqw5dJPJZrgFaxoFyqYG6CKDpdFCQXdyKpD5yvzaQBOMVTCBVKGZDEg==", - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.15.9", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.9.tgz", - "integrity": "sha512-yQEVIv27oauAtvtuhJVfSNMztJJX47ismRS6Sv2QMVV9RM+6xjbMWuuwM2nxr5A2/gj/mu2z9YlQxiwoFRCfZA==", - "optional": true - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "requires": { - "has": "^1.0.3" - } - }, - "jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" - }, - "magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, - "nanoid": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" - }, - "nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "postcss": { - "version": "8.4.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "preact": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.0.tgz", - "integrity": "sha512-Fk6+vB2kb6mSJfDgODq0YDhMfl0HNtK5+Uc9QqECO4nlyPAQwCI+BKyWO//idA7ikV7o+0Fm6LQmNuQi1wXI1w==" - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "rollup": { - "version": "2.78.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz", - "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", - "requires": { - "fsevents": "~2.3.2" - } - }, - "shiki": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.11.1.tgz", - "integrity": "sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==", - "requires": { - "jsonc-parser": "^3.0.0", - "vscode-oniguruma": "^1.6.1", - "vscode-textmate": "^6.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "vite": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-3.1.3.tgz", - "integrity": "sha512-/3XWiktaopByM5bd8dqvHxRt5EEgRikevnnrpND0gRfNkrMrPaGGexhtLCzv15RcCMtV2CLw+BPas8YFeSG0KA==", - "requires": { - "esbuild": "^0.15.6", - "fsevents": "~2.3.2", - "postcss": "^8.4.16", - "resolve": "^1.22.1", - "rollup": "~2.78.0" - } - }, - "vitepress": { - "version": "1.0.0-alpha.15", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-alpha.15.tgz", - "integrity": "sha512-+pHJQCpnv0wVgLRyonisrj7Y77PVhbns2nTLxV9GkH3T+RTY/W2JmRatzBg5WciMaPyO8Ms6F3YElO5PULVv3w==", - "requires": { - "@docsearch/css": "^3.2.1", - "@docsearch/js": "^3.2.1", - "@vitejs/plugin-vue": "^3.1.0", - "@vue/devtools-api": "^6.2.1", - "@vueuse/core": "^9.1.1", - "body-scroll-lock": "^4.0.0-beta.0", - "nprogress": "^0.2.0", - "shiki": "^0.11.1", - "vite": "^3.1.0", - "vue": "^3.2.38" - } - }, - "vscode-oniguruma": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", - "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==" - }, - "vscode-textmate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-6.0.0.tgz", - "integrity": "sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==" - }, - "vue": { - "version": "3.2.39", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.39.tgz", - "integrity": "sha512-tRkguhRTw9NmIPXhzk21YFBqXHT2t+6C6wPOgQ50fcFVWnPdetmRqbmySRHznrYjX2E47u0cGlKGcxKZJ38R/g==", - "requires": { - "@vue/compiler-dom": "3.2.39", - "@vue/compiler-sfc": "3.2.39", - "@vue/runtime-dom": "3.2.39", - "@vue/server-renderer": "3.2.39", - "@vue/shared": "3.2.39" + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", + "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "dependencies": { + "@vue/compiler-dom": "3.3.4", + "@vue/compiler-sfc": "3.3.4", + "@vue/runtime-dom": "3.3.4", + "@vue/server-renderer": "3.3.4", + "@vue/shared": "3.3.4" } } } diff --git a/package.json b/package.json index bb669d2..748c414 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "animethemes-api-docs", - "version": "2.0.0", + "version": "3.0.0", "description": "AnimeThemes.moe API Documentation", "main": "index.js", "authors": { @@ -11,12 +11,11 @@ "scripts": { "docs:dev": "vitepress dev docs", "docs:build": "vitepress build docs", - "docs:serve": "vitepress serve docs" + "docs:preview": "vitepress preview docs" }, "license": "MIT", "dependencies": { - "dotenv": "^16.0.2", - "vitepress": "^1.0.0-alpha.15", - "vue": "^3.2.39" + "dotenv": "^16.1.4", + "vitepress": "^1.0.0-beta.2" } }