diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 0000000..e5b6d8d --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000..cee6df8 --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": false, + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": [] +} diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..46722ae --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + root: true, + // This tells ESLint to load the config from the package `eslint-config-custom` + extends: ["custom"], +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c91b0d --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +node_modules +.pnp +.pnp.js + +# testing +coverage + +# next.js +.next/ +out/ +build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local + +# turbo +.turbo + +dist diff --git a/README.md b/README.md new file mode 100644 index 0000000..09c3b95 --- /dev/null +++ b/README.md @@ -0,0 +1,63 @@ +# tmdb-js + +This is the monorepo for the tmdb-js-web and tmdb-js-node packages. Both packages are used to interact with the [TMDB API](https://developers.themoviedb.org/3/getting-started/introduction). The tmdb-js-web package is used for web applications, and the tmdb-js-node package is used for Node.js applications. Both packages are fully-typed TypeScript wrappers for the TMDB API. Currently all endpoints are supported: + +- :white_check_mark: V3 + - :white_check_mark: Account + - :white_check_mark: Authentication + - :white_check_mark: Certifications + - :white_check_mark: Changes + - :white_check_mark: Collections + - :white_check_mark: Companies + - :white_check_mark: Configuration + - :white_check_mark: Credits + - :white_check_mark: Discover + - :white_check_mark: Find + - :white_check_mark: Genres + - :white_check_mark: Guest sessions + - :white_check_mark: Keywords + - :white_check_mark: Lists + - :white_check_mark: Movies + - :white_check_mark: Networks + - :white_check_mark: Trending + - :white_check_mark: People + - :white_check_mark: Reviews + - :white_check_mark: Search + - :white_check_mark: TV + - :white_check_mark: TV Seasons + - :white_check_mark: TV Episodes + - :white_check_mark: TV Episode Groups + - :white_check_mark: Watch Providers +- :white_check_mark: V4 + - :white_check_mark: Account + - :white_check_mark: Auth + - :white_check_mark: List + +## Getting started +For documentation on how to use the tmdb-js-web and tmdb-js-node packages, please see the README files in the packages folder. + +tmdb-js-web: [README.md](packages/web/README.md) +tmdb-js-node: [README.md](packages/node/README.md) + +### Useful information +The tmdb-js-web package uses the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) to make requests to the TMDB API. This means that the package is only supported in browsers that support the Fetch API. You can check browser support [here](https://caniuse.com/?search=fetch). + +The tmdb-js-node package uses the https module to make requests to the TMDB API. This means that the package is only supported in Node.js versions that support the https module. You can check Node.js support [here](https://nodejs.org/api/https.html). + +The V4 endpoints require an access token. You can get an access token by following the instructions [here](https://developers.themoviedb.org/4/getting-started/authentication). + +### Build + +To build all apps and packages, run the following command: + +``` +pnpm run build +``` + +### Develop + +To develop all apps and packages, run the following command: + +``` +pnpm run dev +``` diff --git a/apps/node-demo/package.json b/apps/node-demo/package.json new file mode 100644 index 0000000..021990b --- /dev/null +++ b/apps/node-demo/package.json @@ -0,0 +1,27 @@ +{ + "name": "node-demo", + "version": "1.0.0", + "description": "", + "private": true, + "main": "dist/index.js", + "type": "module", + "scripts": { + "dev": "npm run build -- --watch --onSuccess \"node dist/index.js\"", + "build": "tsup --format esm --dts --sourcemap --clean src/index.ts", + "lint": "eslint *.ts" + }, + "dependencies": { + "tmdb-js-node": "workspace:*" + }, + "devDependencies": { + "@types/node": "^18.15.9", + "eslint": "^7.32.0", + "eslint-config-custom": "workspace:*", + "tsconfig": "workspace:*", + "tsup": "^6.7.0", + "typescript": "^4.5.2" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/apps/node-demo/src/index.ts b/apps/node-demo/src/index.ts new file mode 100644 index 0000000..984039a --- /dev/null +++ b/apps/node-demo/src/index.ts @@ -0,0 +1,5 @@ +import { TMDBNodeApi } from "tmdb-js-node"; + +const tmdbApi = new TMDBNodeApi("YOUR_API_KEY"); + +tmdbApi.v4.list.getList(); \ No newline at end of file diff --git a/apps/node-demo/tsconfig.json b/apps/node-demo/tsconfig.json new file mode 100644 index 0000000..38a6026 --- /dev/null +++ b/apps/node-demo/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "outDir": "dist", + "rootDir": "src", + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["."], + "exclude": ["dist", "node_modules"] +} diff --git a/apps/node-demo/tsconfig.tsbuildinfo b/apps/node-demo/tsconfig.tsbuildinfo new file mode 100644 index 0000000..8daed7d --- /dev/null +++ b/apps/node-demo/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"program":{"fileNames":["../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.esnext.intl.d.ts","./src/index.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/dom-events.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/globals.global.d.ts","../../node_modules/.pnpm/@types+node@18.15.9/node_modules/@types/node/index.d.ts"],"fileInfos":["2dc8c927c9c162a773c6bb3cdc4f3286c23f10eedc67414028f9cb5951610f60",{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"d14e7869be8cacf201c63c32411ff213700afbdf65eeada7a9df529957c1868a","signature":"f761c91419d0a89422a0004ef1a92929dd4d2d5e5c16758654d8b0467d1998c6"},"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"54ba7456adb777a685250cd144115ea51379784012ba1311255b715c6bdcff2a","affectsGlobalScope":true},"11e2d554398d2bd460e7d06b2fa5827a297c8acfbe00b4f894a224ac0862857f",{"version":"e193e634a99c9c1d71f1c6e4e1567a4a73584328d21ea02dd5cddbaad6693f61","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","e596c9bb2f29a2699fdd4ae89139612652245192f67f45617c5a4b20832aaae9","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","1cdcfc1f624d6c08aa12c73935f6e13f095919cd99edf95752951796eb225729","216717f17c095cde1dc19375e1ab3af0a4a485355860c077a4f9d6ea59fab5b5","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"80473bd0dd90ca1e166514c2dfead9d5803f9c51418864ca35abbeec6e6847e1","1c84b46267610a34028edfd0d035509341751262bac1062857f3c8df7aff7153","e6c86d83bd526c8bdb5d0bf935b8e72ce983763d600743f74d812fdf4abf4df6","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true},"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"0715e4cd28ad471b2a93f3e552ff51a3ae423417a01a10aa1d3bc7c6b95059d6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","7d55d78cd47cf5280643b53434b16c2d9d11d144126932759fbdd51da525eec4","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","f69ff39996a61a0dd10f4bce73272b52e8024a4d58b13ab32bf4712909d0a2b7",{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","c4577fb855ca259bdbf3ea663ca73988ce5f84251a92b4aef80a1f4122b6f98e","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"ff07a9a03c65732ccc59b3c65bc584173da093bd563a6565411c01f5703bd3cb","affectsGlobalScope":true},"6de4a219df57d2b27274d59b67708f13c2cbf7ed211abe57d8f9ab8b25cde776","0fe8985a28f82c450a04a6edf1279d7181c0893f37da7d2a27f8efd4fd5edb03","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"d8d555f3d607ecaa18d55de6995ea8f206342ecc93305919eac945c7c78c78c6"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"module":99,"outDir":"./dist","rootDir":"./src"},"fileIdsList":[[93],[47,93],[50,93],[51,56,84,93],[52,63,64,71,81,92,93],[52,53,63,71,93],[54,93],[55,56,64,72,93],[56,81,89,93],[57,59,63,71,93],[58,93],[59,60,93],[63,93],[61,63,93],[63,64,65,81,92,93],[63,64,65,78,81,84,93],[93,97],[59,66,71,81,92,93],[63,64,66,67,71,81,89,92,93],[66,68,81,89,92,93],[47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99],[63,69,93],[70,92,93],[59,63,71,81,93],[72,93],[73,93],[50,74,93],[75,91,93,97],[76,93],[77,93],[63,78,79,93],[78,80,93,95],[51,63,81,82,83,84,93],[51,81,83,93],[81,82,93],[84,93],[85,93],[63,87,88,93],[87,88,93],[56,71,81,89,93],[90,93],[71,91,93],[51,66,77,92,93],[56,93],[81,93,94],[93,95],[93,96],[51,56,63,65,74,81,92,93,95,97],[81,93,98]],"referencedMap":[[46,1],[47,2],[48,2],[50,3],[51,4],[52,5],[53,6],[54,7],[55,8],[56,9],[57,10],[58,11],[59,12],[60,12],[62,13],[61,14],[63,13],[64,15],[65,16],[49,17],[99,1],[66,18],[67,19],[68,20],[100,21],[69,22],[70,23],[71,24],[72,25],[73,26],[74,27],[75,28],[76,29],[77,30],[78,31],[79,31],[80,32],[81,33],[83,34],[82,35],[84,36],[85,37],[86,1],[87,38],[88,39],[89,40],[90,41],[91,42],[92,43],[93,44],[94,45],[95,46],[96,47],[97,48],[98,49],[1,1],[9,1],[13,1],[12,1],[3,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[4,1],[5,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[6,1],[29,1],[30,1],[31,1],[32,1],[7,1],[36,1],[33,1],[34,1],[35,1],[37,1],[8,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[2,1],[45,1],[11,1],[10,1]],"exportedModulesMap":[[47,2],[48,2],[50,3],[51,4],[52,5],[53,6],[54,7],[55,8],[56,9],[57,10],[58,11],[59,12],[60,12],[62,13],[61,14],[63,13],[64,15],[65,16],[49,17],[99,1],[66,18],[67,19],[68,20],[100,21],[69,22],[70,23],[71,24],[72,25],[73,26],[74,27],[75,28],[76,29],[77,30],[78,31],[79,31],[80,32],[81,33],[83,34],[82,35],[84,36],[85,37],[86,1],[87,38],[88,39],[89,40],[90,41],[91,42],[92,43],[93,44],[94,45],[95,46],[96,47],[97,48],[98,49],[1,1],[9,1],[13,1],[12,1],[3,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[4,1],[5,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[6,1],[29,1],[30,1],[31,1],[32,1],[7,1],[36,1],[33,1],[34,1],[35,1],[37,1],[8,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[2,1],[45,1],[11,1],[10,1]],"semanticDiagnosticsPerFile":[[46,[{"file":"./src/index.ts","start":28,"length":14,"messageText":"Cannot find module 'tmdb-js-node' or its corresponding type declarations.","category":1,"code":2307}]],47,48,50,51,52,53,54,55,56,57,58,59,60,62,61,63,64,65,49,99,66,67,68,100,69,70,71,72,73,74,75,76,77,78,79,80,81,83,82,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,1,9,13,12,3,14,15,16,17,18,19,20,21,4,5,25,22,23,24,26,27,28,6,29,30,31,32,7,36,33,34,35,37,8,38,43,44,39,40,41,42,2,45,11,10],"latestChangedDtsFile":"./dist/index.d.ts"},"version":"4.9.5"} \ No newline at end of file diff --git a/apps/web-demo/.gitignore b/apps/web-demo/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/apps/web-demo/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/apps/web-demo/index.html b/apps/web-demo/index.html new file mode 100644 index 0000000..e0d1c84 --- /dev/null +++ b/apps/web-demo/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
+ + + diff --git a/apps/web-demo/package.json b/apps/web-demo/package.json new file mode 100644 index 0000000..6412d0c --- /dev/null +++ b/apps/web-demo/package.json @@ -0,0 +1,23 @@ +{ + "name": "web-demo", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tmdb-js-web": "workspace:*" + }, + "devDependencies": { + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@vitejs/plugin-react": "^3.1.0", + "typescript": "^4.9.3", + "vite": "^4.2.0" + } +} diff --git a/apps/web-demo/public/vite.svg b/apps/web-demo/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/apps/web-demo/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/web-demo/src/App.css b/apps/web-demo/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/apps/web-demo/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/apps/web-demo/src/App.tsx b/apps/web-demo/src/App.tsx new file mode 100644 index 0000000..db4f2f5 --- /dev/null +++ b/apps/web-demo/src/App.tsx @@ -0,0 +1,31 @@ +import { useEffect, useState } from "react"; +import "./App.css"; + +import { SearchMultiSearchResponse, TMDBWebAPI } from "tmdb-js-web"; + +function App() { + const [data, setData] = useState(null); + + useEffect(() => { + const tmdbApi = new TMDBWebAPI("YOUR_API_KEY"); + tmdbApi.v3.search + .searchMulti({ + query: "star wars", + }) + .then((data) => { + setData(data); + }) + .catch((err) => { + console.log(err.message); + }); + }, []); + + return ( +
+

{data?.results[0]?.title}

+

{data?.results[0]?.overview}

+
+ ); +} + +export default App; diff --git a/apps/web-demo/src/assets/react.svg b/apps/web-demo/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/apps/web-demo/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/web-demo/src/index.css b/apps/web-demo/src/index.css new file mode 100644 index 0000000..2c3fac6 --- /dev/null +++ b/apps/web-demo/src/index.css @@ -0,0 +1,69 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/apps/web-demo/src/main.tsx b/apps/web-demo/src/main.tsx new file mode 100644 index 0000000..791f139 --- /dev/null +++ b/apps/web-demo/src/main.tsx @@ -0,0 +1,10 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + , +) diff --git a/apps/web-demo/src/vite-env.d.ts b/apps/web-demo/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/apps/web-demo/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/apps/web-demo/tsconfig.json b/apps/web-demo/tsconfig.json new file mode 100644 index 0000000..3d0a51a --- /dev/null +++ b/apps/web-demo/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/apps/web-demo/tsconfig.node.json b/apps/web-demo/tsconfig.node.json new file mode 100644 index 0000000..9d31e2a --- /dev/null +++ b/apps/web-demo/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/apps/web-demo/vite.config.ts b/apps/web-demo/vite.config.ts new file mode 100644 index 0000000..9cc50ea --- /dev/null +++ b/apps/web-demo/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}); diff --git a/package.json b/package.json new file mode 100644 index 0000000..7a761ea --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "tmdb-js", + "version": "0.0.0", + "private": true, + "workspaces": [ + "apps/*", + "packages/*" + ], + "scripts": { + "build": "turbo run build", + "dev": "turbo run dev", + "lint": "turbo run lint", + "format": "prettier --write \"**/*.{ts,tsx,md}\"", + "publish-packages": "turbo run build && changeset version && changeset publish" + }, + "devDependencies": { + "eslint-config-custom": "workspace:*", + "prettier": "latest", + "turbo": "latest", + "@changesets/cli": "latest" + }, + "engines": { + "node": ">=14.0.0" + }, + "dependencies": {}, + "packageManager": "pnpm@7.28.0" +} diff --git a/packages/core/package.json b/packages/core/package.json new file mode 100644 index 0000000..1881e26 --- /dev/null +++ b/packages/core/package.json @@ -0,0 +1,23 @@ +{ + "name": "tmdb-js-core", + "version": "1.0.0", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "private": true, + "license": "MIT", + "type": "module", + "scripts": { + "dev": "npm run build -- --watch", + "build": "tsup", + "lint": "eslint *.ts" + }, + "devDependencies": { + "@swc/core": "^1.3.42", + "eslint": "^7.32.0", + "eslint-config-custom": "workspace:*", + "tsconfig": "workspace:*", + "tsup": "^6.7.0", + "typescript": "^4.5.2" + } +} diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts new file mode 100644 index 0000000..9931176 --- /dev/null +++ b/packages/core/src/index.ts @@ -0,0 +1,1105 @@ +import { + AccountGetDetailsParams, + AccountGetDetailsResponse, + AccountGetCreatedListsParams, + AccountGetCreatedListsResponse, + AccountGetFavoriteMoviesParams, + AccountGetFavoriteMoviesResponse, + AccountGetFavoriteTVShowsParams, + AccountGetFavoriteTVShowsResponse, + AccountMarkAsFavoriteParams, + AccountMarkAsFavoriteBody, + AccountMarkAsFavoriteResponse, + AccountGetRatedMoviesParams, + AccountGetRatedMoviesResponse, + AccountGetRatedTVShowsParams, + AccountGetRatedTVShowsResponse, + AccountGetRatedTVEpisodesParams, + AccountGetRatedTVEpisodesResponse, + AccountGetMovieWatchlistParams, + AccountGetMovieWatchlistResponse, + AccountGetTVShowWatchlistParams, + AccountGetTVShowWatchlistResponse, + AccountAddToWatchlistParams, + AccountAddToWatchlistBody, + AccountAddToWatchlistResponse, + AuthenticationCreateGuestSessionResponse, + AuthenticationCreateRequestTokenResponse, + AuthenticationCreateSessionBody, + AuthenticationCreateSessionResponse, + AuthenticationCreateSessionWithLoginBody, + AuthenticationCreateSessionWithLoginResponse, + AuthenticationCreateSessionFromV4AccessTokenBody, + AuthenticationCreateSessionFromV4AccessTokenResponse, + AuthenticationDeleteSessionBody, + AuthenticationDeleteSessionResponse, + CertificationsGetMovieCertificationResponse, + CertificationsGetTVCertificationResponse, + ChangesGetMovieChangeListParams, + ChangesGetMovieChangeListResponse, + ChangesGetTVChangeListParams, + ChangesGetTVChangeListResponse, + ChangesGetPersonChangeListParams, + ChangesGetPersonChangeListResponse, + CollectionsGetDetailsParams, + CollectionsGetDetailsResponse, + CollectionsGetImagesParams, + CollectionsGetImagesResponse, + CollectionsGetTranslationsParams, + CollectionsGetTranslationsResponse, + CompaniesGetDetailsResponse, + CompaniesGetAlternativeNamesResponse, + CompaniesGetImagesResponse, + ConfigurationGetApiConfigurationResponse, + ConfigurationGetCountriesResponse, + ConfigurationGetJobsResponse, + ConfigurationGetLanguagesResponse, + ConfigurationGetPrimaryTranslationsResponse, + ConfigurationGetTimezonesResponse, + CreditsGetDetailsResponse, + DiscoverMovieDiscoverParams, + DiscoverMovieDiscoverResponse, + DiscoverTVDiscoverParams, + DiscoverTVDiscoverResponse, + FindFindByIdParams, + FindFindByIdResponse, + GenresGetMovieListParams, + GenresGetMovieListResponse, + GenresGetTVListParams, + GenresGetTVListResponse, + GuestSessionsGetRatedMoviesParams, + GuestSessionsGetRatedMoviesResponse, + GuestSessionsGetRatedTVShowsParams, + GuestSessionsGetRatedTVShowsResponse, + GuestSessionsGetRatedTVEpisodesParams, + GuestSessionsGetRatedTVEpisodesResponse, + KeywordsGetDetailsResponse, + KeywordsGetMoviesParams, + KeywordsGetMoviesResponse, + ListsGetDetailsParams, + ListsGetDetailsResponse, + ListsCheckItemStatusParams, + ListsCheckItemStatusResponse, + ListsCreateListBody, + ListsCreateListParams, + ListsCreateListResponse, + ListsAddMovieBody, + ListsAddMovieParams, + ListsAddMovieResponse, + ListsRemoveMovieBody, + ListsRemoveMovieParams, + ListsRemoveMovieResponse, + ListsClearListParams, + ListsClearListResponse, + ListsDeleteListParams, + ListsDeleteListResponse, + MoviesGetDetailsParams, + MoviesGetDetailsResponse, + MoviesGetAccountStatesParams, + MoviesGetAccountStatesResponse, + MoviesGetAlternativeTitlesParams, + MoviesGetAlternativeTitlesResponse, + MoviesGetChangesParams, + MoviesGetChangesResponse, + MoviesGetCreditsParams, + MoviesGetCreditsResponse, + MoviesGetExternalIdsResponse, + MoviesGetImagesParams, + MoviesGetImagesResponse, + MoviesGetKeywordsResponse, + MoviesGetListsParams, + MoviesGetListsResponse, + MoviesGetRecommendationsParams, + MoviesGetRecommendationsResponse, + MoviesGetReleaseDatesResponse, + MoviesGetReviewsParams, + MoviesGetReviewsResponse, + MoviesGetSimilarMoviesParams, + MoviesGetSimilarMoviesResponse, + MoviesGetTranslationsResponse, + MoviesGetVideosParams, + MoviesGetVideosResponse, + MoviesGetWatchProvidersResponse, + MoviesRateMovieBody, + MoviesRateMovieParams, + MoviesRateMovieResponse, + MoviesDeleteRatingParams, + MoviesDeleteRatingResponse, + MoviesGetLatestResponse, + MoviesGetNowPlayingParams, + MoviesGetNowPlayingResponse, + MoviesGetPopularParams, + MoviesGetPopularResponse, + MoviesGetTopRatedParams, + MoviesGetTopRatedResponse, + MoviesGetUpcomingParams, + MoviesGetUpcomingResponse, + NetworksGetDetailsResponse, + NetworksGetAlternativeNamesResponse, + NetworksGetImagesResponse, + TrendingGetTrendingResponse, + PeopleGetDetailsParams, + PeopleGetDetailsResponse, + PeopleGetChangesParams, + PeopleGetChangesResponse, + PeopleGetMovieCreditsParams, + PeopleGetMovieCreditsResponse, + PeopleGetTvCreditsParams, + PeopleGetTvCreditsResponse, + PeopleGetCombinedCreditsParams, + PeopleGetCombinedCreditsResponse, + PeopleGetExternalIdsResponse, + PeopleGetImagesResponse, + PeopleGetTaggedImagesParams, + PeopleGetTaggedImagesResponse, + PeopleGetTranslationsParams, + PeopleGetTranslationsResponse, + PeopleGetLatestParams, + PeopleGetLatestResponse, + PeopleGetPopularParams, + PeopleGetPopularResponse, + ReviewsGetDetailsResponse, + SearchCompaniesParams, + SearchCompaniesResponse, + SearchCollectionsParams, + SearchCollectionsResponse, + SearchKeywordsParams, + SearchKeywordsResponse, + SearchMoviesParams, + SearchMoviesResponse, + SearchMultiSearchParams, + SearchMultiSearchResponse, + SearchPeopleParams, + SearchPeopleResponse, + SearchTVShowsParams, + SearchTVShowsResponse, + TVGetDetailsParams, + TVGetDetailsResponse, + TVGetAccountStatesParams, + TVGetAccountStatesResponse, + TVGetAggregateCreditsParams, + TVGetAggregateCreditsResponse, + TVGetAlternativeTitlesParams, + TVGetAlternativeTitlesResponse, + TVGetChangesParams, + TVGetChangesResponse, + TVGetContentRatingsParams, + TVGetContentRatingsResponse, + TVGetCreditsParams, + TVGetCreditsResponse, + TVGetEpisodeGroupsParams, + TVGetEpisodeGroupsResponse, + TVGetExternalIdsParams, + TVGetExternalIdsResponse, + TVGetImagesParams, + TVGetImagesResponse, + TVGetKeywordsResponse, + TVGetRecommendationsParams, + TVGetRecommendationsResponse, + TVGetReviewsParams, + TVGetReviewsResponse, + TVGetScreenedTheatricallyParams, + TVGetScreenedTheatricallyResponse, + TVGetSimilarTVShowsParams, + TVGetSimilarTVShowsResponse, + TVGetTranslationsResponse, + TVGetVideosParams, + TVGetVideosResponse, + TVGetWatchProvidersResponse, + TVRateTVShowsBody, + TVRateTVShowsParams, + TVRateTVShowsResponse, + TVDeleteRatingParams, + TVEpisodesDeleteRatingResponse, + TVGetLatestParams, + TVGetLatestResponse, + TVGetTVAiringTodayParams, + TVGetTVAiringTodayResponse, + TVGetTVOnTheAirParams, + TVGetTVOnTheAirResponse, + TVGetPopularParams, + TVGetPopularResponse, + TVGetTopRatedParams, + TVGetTopRatedResponse, + TVSeasonsGetDetailsParams, + TVSeasonsGetDetailsResponse, + TVSeasonsGetAccountStatesParams, + TVSeasonsGetAccountStatesResponse, + TVSeasonsGetAggregateCreditsParams, + TVSeasonsGetAggregateCreditsResponse, + TVSeasonsGetChangesParams, + TVSeasonsGetChangesResponse, + TVSeasonsGetCreditsParams, + TVSeasonsGetCreditsResponse, + TVSeasonsGetExternalIDsParams, + TVSeasonsGetExternalIDsResponse, + TVSeasonsGetImagesParams, + TVSeasonsGetImagesResponse, + TVSeasonsGetTranslationsResponse, + TVSeasonsGetVideosParams, + TVSeasonsGetVideosResponse, + TVEpisodesGetDetailsParams, + TVEpisodesGetDetailsResponse, + TVEpisodesGetAccountStatesParams, + TVEpisodesGetAccountStatesResponse, + TVEpisodesGetChangesParams, + TVEpisodesGetChangesResponse, + TVEpisodesGetCreditsParams, + TVEpisodesGetCreditsResponse, + TVEpisodesGetExternalIDsResponse, + TVEpisodesGetImagesResponse, + TVEpisodesGetTranslationsResponse, + TVEpisodesRateTVEpisodeBody, + TVEpisodesRateTVEpisodeParams, + TVEpisodesRateTVEpisodeResponse, + TVEpisodesDeleteRatingParams, + TVEpisodesGetVideosParams, + TVEpisodesGetVideosResponse, + TVEpisodeGroupsGetDetailsParams, + TVEpisodeGroupsGetDetailsResponse, + WatchProvidersGetAvailableRegionsParams, + WatchProvidersGetAvailableRegionsResponse, + WatchProvidersGetMovieProvidersParams, + WatchProvidersGetMovieProvidersResponse, + WatchProvidersGetTVProvidersParams, + WatchProvidersGetTVProvidersResponse, +} from "./types/v3"; +import { + V4AccountGetListsParams, + V4AccountGetListsResponse, + V4AccountGetFavoriteMoviesParams, + V4AccountGetFavoriteMoviesResponse, + V4AccountGetFavoriteTVShowsParams, + V4AccountGetFavoriteTVShowsResponse, + V4AccountGetMovieRecommendationsParams, + V4AccountGetMovieRecommendationsResponse, + V4AccountGetTVShowRecommendationsParams, + V4AccountGetTVShowRecommendationsResponse, + V4AccountGetMovieWatchlistParams, + V4AccountGetMovieWatchlistResponse, + V4AccountGetTVShowWatchlistParams, + V4AccountGetTVShowWatchlistResponse, + V4AccountGetRatedMoviesParams, + V4AccountGetRatedMoviesResponse, + V4AccountGetRatedTVShowsParams, + V4AccountGetRatedTVShowsResponse, + V4AuthCreateRequestTokenBody, + V4AuthCreateRequestTokenResponse, + V4AuthCreateAccessTokenBody, + V4AuthCreateAccessTokenResponse, + V4AuthDeleteAccessTokenBody, + V4AuthDeleteAccessTokenResponse, + V4ListGetListParams, + V4ListGetListResponse, + V4ListCreateListBody, + V4ListCreateListResponse, + V4ListUpdateListBody, + V4ListUpdateListResponse, + V4ListClearListResponse, + V4ListDeleteListResponse, + V4ListAddItemsBody, + V4ListAddItemsResponse, + V4ListUpdateItemsBody, + V4ListUpdateItemsResponse, + V4ListRemoveItemsBody, + V4ListRemoveItemsResponse, + V4ListCheckItemStatusParams, + V4ListCheckItemStatusResponse, +} from "./types/v4"; +import { createV3AccountMethods } from "./v3/account"; +import { createV3AuthenticationMethods } from "./v3/authentication"; +import { createV3CertificationsMethods } from "./v3/certifications"; +import { createV3ChangesMethods } from "./v3/changes"; +import { createV3CollectionsMethods } from "./v3/collections"; +import { createV3CompaniesMethods } from "./v3/companies"; +import { createV3ConfigurationMethods } from "./v3/configuration"; +import { createV3CreditsMethods } from "./v3/credits"; +import { createV3DiscoverMethods } from "./v3/discover"; +import { createV3FindMethods } from "./v3/find"; +import { createV3GenresMethods } from "./v3/genres"; +import { createV3GuestSessionsMethods } from "./v3/guest-sessions"; +import { createV3KeywordsMethods } from "./v3/keywords"; +import { createV3ListsMethods } from "./v3/lists"; +import { createV3MoviesMethods } from "./v3/movies"; +import { createV3NetworksMethods } from "./v3/networks"; +import { createV3PeopleMethods } from "./v3/people"; +import { createV3ReviewsMethods } from "./v3/reviews"; +import { createV3SearchMethods } from "./v3/search"; +import { createV3TrendingMethods } from "./v3/trending"; +import { createV3TvMethods } from "./v3/tv"; +import { createV3TVEpisodeGroupsMethods } from "./v3/tv-episode-groups"; +import { createV3TVEpisodesMethods } from "./v3/tv-episodes"; +import { createV3TVSeasonsMethods } from "./v3/tv-seasons"; +import { createV3WatchProvidersMethods } from "./v3/watch-providers"; +import { createV4AccountMethods } from "./v4/account"; +import { createV4AuthMethods } from "./v4/auth"; +import { createV4ListMethods } from "./v4/list"; + +interface IAccount { + getDetails: ( + params: AccountGetDetailsParams + ) => Promise; + getCreatedLists: ( + params: AccountGetCreatedListsParams, + accountId?: number + ) => Promise; + getFavoriteMovies: ( + params: AccountGetFavoriteMoviesParams, + accountId?: number + ) => Promise; + getFavoriteTVShows: ( + params: AccountGetFavoriteTVShowsParams, + accountId?: number + ) => Promise; + markAsFavorite: ( + params: AccountMarkAsFavoriteParams, + body: AccountMarkAsFavoriteBody, + accountId?: number + ) => Promise; + getRatedMovies: ( + params: AccountGetRatedMoviesParams, + accountId?: number + ) => Promise; + getRatedTVShows: ( + params: AccountGetRatedTVShowsParams, + accountId?: number + ) => Promise; + getRatedTVEpisodes: ( + params: AccountGetRatedTVEpisodesParams, + accountId?: number + ) => Promise; + getMovieWatchlist: ( + params: AccountGetMovieWatchlistParams, + accountId?: number + ) => Promise; + getTVShowWatchlist: ( + params: AccountGetTVShowWatchlistParams, + accountId?: number + ) => Promise; + addToWatchlist: ( + params: AccountAddToWatchlistParams, + body: AccountAddToWatchlistBody, + accountId?: number + ) => Promise; +} + +interface IAuthentication { + createGuestSession: () => Promise; + createRequestToken: () => Promise; + createSession: ( + body: AuthenticationCreateSessionBody + ) => Promise; + createSessionWithLogin: ( + body: AuthenticationCreateSessionWithLoginBody + ) => Promise; + createSessionFromV4AccessToken: ( + body: AuthenticationCreateSessionFromV4AccessTokenBody + ) => Promise; + deleteSession: ( + body: AuthenticationDeleteSessionBody + ) => Promise; +} + +interface ICertifications { + getMovieCertifications: () => Promise; + getTVShowCertifications: () => Promise; +} + +interface IChanges { + getMovieChangeList: ( + params?: ChangesGetMovieChangeListParams + ) => Promise; + getTVChangeList: ( + params?: ChangesGetTVChangeListParams + ) => Promise; + getPersonChangeList: ( + params?: ChangesGetPersonChangeListParams + ) => Promise; +} + +interface ICollections { + getDetails: ( + collectionId: number, + params?: CollectionsGetDetailsParams + ) => Promise; + getImages: ( + collectionId: number, + params?: CollectionsGetImagesParams + ) => Promise; + getTranslations: ( + collectionId: number, + params?: CollectionsGetTranslationsParams + ) => Promise; +} + +interface ICompanies { + getDetails: (companyId: number) => Promise; + getAlternativeNames: ( + companyId: number + ) => Promise; + getImages: (companyId: number) => Promise; +} + +interface IConfiguration { + getAPIConfiguration: () => Promise; + getCountries: () => Promise; + getJobs: () => Promise; + getLanguages: () => Promise; + getPrimaryTranslations: () => Promise; + getTimezones: () => Promise; +} + +interface ICredits { + getDetails: (creditId: string) => Promise; +} + +interface IDiscover { + movieDiscover: ( + params?: DiscoverMovieDiscoverParams + ) => Promise; + tvDiscover: ( + params?: DiscoverTVDiscoverParams + ) => Promise; +} + +interface IFind { + findById: ( + externalId: string, + params: FindFindByIdParams + ) => Promise; +} + +interface IGenres { + getMovieList: ( + params?: GenresGetMovieListParams + ) => Promise; + getTVList: ( + params?: GenresGetTVListParams + ) => Promise; +} + +interface IGuestSessions { + getRatedMovies: ( + guestSessionId: string, + params?: GuestSessionsGetRatedMoviesParams + ) => Promise; + getRatedTVShows: ( + guestSessionId: string, + params?: GuestSessionsGetRatedTVShowsParams + ) => Promise; + getRatedTVEpisodes: ( + guestSessionId: string, + params?: GuestSessionsGetRatedTVEpisodesParams + ) => Promise; +} + +interface IKeywords { + getDetails: (keywordId: number) => Promise; + getMovies: ( + keywordId: number, + params?: KeywordsGetMoviesParams + ) => Promise; +} + +interface ILists { + getDetails: ( + listId: string, + params?: ListsGetDetailsParams + ) => Promise; + checkItemStatus: ( + listId: string, + params: ListsCheckItemStatusParams + ) => Promise; + createList: ( + body: ListsCreateListBody, + params: ListsCreateListParams + ) => Promise; + addMovie: ( + listId: string, + body: ListsAddMovieBody, + params: ListsAddMovieParams + ) => Promise; + removeMovie: ( + listId: string, + body: ListsRemoveMovieBody, + params: ListsRemoveMovieParams + ) => Promise; + clearList: ( + listId: string, + params: ListsClearListParams + ) => Promise; + deleteList: ( + listId: string, + params: ListsDeleteListParams + ) => Promise; +} + +interface IMovies { + getDetails: ( + movieId: number, + params?: MoviesGetDetailsParams + ) => Promise; + getAccountStates: ( + movieId: number, + params: MoviesGetAccountStatesParams + ) => Promise; + getAlternativeTitles: ( + movieId: number, + params?: MoviesGetAlternativeTitlesParams + ) => Promise; + getChanges: ( + movieId: number, + params?: MoviesGetChangesParams + ) => Promise; + getCredits: ( + movieId: number, + params?: MoviesGetCreditsParams + ) => Promise; + getExternalIds: (movieId: number) => Promise; + getImages: ( + movieId: number, + params?: MoviesGetImagesParams + ) => Promise; + getKeywords: (movieId: number) => Promise; + getLists: ( + movieId: number, + params?: MoviesGetListsParams + ) => Promise; + getRecommendations: ( + movieId: number, + params?: MoviesGetRecommendationsParams + ) => Promise; + getReleaseDates: (movieId: number) => Promise; + getReviews: ( + movieId: number, + params?: MoviesGetReviewsParams + ) => Promise; + getSimilarMovies: ( + movieId: number, + params?: MoviesGetSimilarMoviesParams + ) => Promise; + getTranslations: (movieId: number) => Promise; + getVideos: ( + movieId: number, + params?: MoviesGetVideosParams + ) => Promise; + getWatchProviders: ( + movieId: number + ) => Promise; + rateMovie: ( + movieId: number, + body: MoviesRateMovieBody, + params?: MoviesRateMovieParams + ) => Promise; + deleteRating: ( + movieId: number, + params?: MoviesDeleteRatingParams + ) => Promise; + getLatest: () => Promise; + getNowPlaying: ( + params?: MoviesGetNowPlayingParams + ) => Promise; + getPopular: ( + params?: MoviesGetPopularParams + ) => Promise; + getTopRated: ( + params?: MoviesGetTopRatedParams + ) => Promise; + getUpcoming: ( + params?: MoviesGetUpcomingParams + ) => Promise; +} + +interface INetworks { + getDetails: (networkId: number) => Promise; + getAlternativeNames: ( + networkId: number + ) => Promise; + getImages: (networkId: number) => Promise; +} + +interface ITrending { + getTrending: ( + mediaType: string, + timeWindow: string + ) => Promise; +} + +interface IPeople { + getDetails: ( + personId: number, + params?: PeopleGetDetailsParams + ) => Promise; + getChanges: ( + personId: number, + params?: PeopleGetChangesParams + ) => Promise; + getMovieCredits: ( + personId: number, + params?: PeopleGetMovieCreditsParams + ) => Promise; + getTVCredits: ( + personId: number, + params?: PeopleGetTvCreditsParams + ) => Promise; + getCombinedCredits: ( + personId: number, + params?: PeopleGetCombinedCreditsParams + ) => Promise; + getExternalIds: (personId: number) => Promise; + getImages: (personId: number) => Promise; + getTaggedImages: ( + personId: number, + params?: PeopleGetTaggedImagesParams + ) => Promise; + getTranslations: ( + personId: number, + params?: PeopleGetTranslationsParams + ) => Promise; + getLatest: ( + params?: PeopleGetLatestParams + ) => Promise; + getPopular: ( + params?: PeopleGetPopularParams + ) => Promise; +} + +interface IReviews { + getDetails: (reviewId: string) => Promise; +} + +interface ISearch { + searchCompanies: ( + params: SearchCompaniesParams + ) => Promise; + searchCollections: ( + params: SearchCollectionsParams + ) => Promise; + searchKeywords: ( + params: SearchKeywordsParams + ) => Promise; + searchMovies: (params: SearchMoviesParams) => Promise; + searchMulti: ( + params: SearchMultiSearchParams + ) => Promise; + searchPeople: (params: SearchPeopleParams) => Promise; + searchTV: (params: SearchTVShowsParams) => Promise; +} + +interface ITV { + getDetails: ( + tvId: number, + params?: TVGetDetailsParams + ) => Promise; + getAccountStates: ( + tvId: number, + params?: TVGetAccountStatesParams + ) => Promise; + getAggregateCredits: ( + tvId: number, + params?: TVGetAggregateCreditsParams + ) => Promise; + getAlternativeTitles: ( + tvId: number, + params?: TVGetAlternativeTitlesParams + ) => Promise; + getChanges: ( + tvId: number, + params?: TVGetChangesParams + ) => Promise; + getContentRatings: ( + tvId: number, + params?: TVGetContentRatingsParams + ) => Promise; + getCredits: ( + tvId: number, + params?: TVGetCreditsParams + ) => Promise; + getEpisodeGroups: ( + tvId: number, + params?: TVGetEpisodeGroupsParams + ) => Promise; + getExternalIds: ( + tvId: number, + params?: TVGetExternalIdsParams + ) => Promise; + getImages: ( + tvId: number, + params?: TVGetImagesParams + ) => Promise; + getKeywords: (tvId: number) => Promise; + getRecommendations: ( + tvId: number, + params?: TVGetRecommendationsParams + ) => Promise; + getReviews: ( + tvId: number, + params?: TVGetReviewsParams + ) => Promise; + getScreenedTheatrically: ( + tvId: number, + params?: TVGetScreenedTheatricallyParams + ) => Promise; + getSimilarTVShows: ( + tvId: number, + params?: TVGetSimilarTVShowsParams + ) => Promise; + getTranslations: (tvId: number) => Promise; + getVideos: ( + tvId: number, + params?: TVGetVideosParams + ) => Promise; + getWatchProviders: (tvId: number) => Promise; + rateTVShow: ( + tvId: number, + body: TVRateTVShowsBody, + params?: TVRateTVShowsParams + ) => Promise; + deleteRating: ( + tvId: number, + params?: TVDeleteRatingParams + ) => Promise; + getLatest: (params?: TVGetLatestParams) => Promise; + getTVAiringToday: ( + params?: TVGetTVAiringTodayParams + ) => Promise; + getTVOnTheAir: ( + params?: TVGetTVOnTheAirParams + ) => Promise; + getPopular: (params?: TVGetPopularParams) => Promise; + getTopRated: (params?: TVGetTopRatedParams) => Promise; +} + +interface ITVSeasons { + getDetails: ( + tvId: number, + seasonNumber: number, + params?: TVSeasonsGetDetailsParams + ) => Promise; + getAccountStates: ( + tvId: number, + seasonNumber: number, + params?: TVSeasonsGetAccountStatesParams + ) => Promise; + getAggregateCredits: ( + tvId: number, + seasonNumber: number, + params?: TVSeasonsGetAggregateCreditsParams + ) => Promise; + getChanges: ( + tvId: number, + seasonNumber: number, + params?: TVSeasonsGetChangesParams + ) => Promise; + getCredits: ( + tvId: number, + seasonNumber: number, + params?: TVSeasonsGetCreditsParams + ) => Promise; + getExternalIds: ( + tvId: number, + seasonNumber: number, + params?: TVSeasonsGetExternalIDsParams + ) => Promise; + getImages: ( + tvId: number, + seasonNumber: number, + params?: TVSeasonsGetImagesParams + ) => Promise; + getTranslations: ( + tvId: number, + seasonNumber: number + ) => Promise; + getVideos: ( + tvId: number, + seasonNumber: number, + params?: TVSeasonsGetVideosParams + ) => Promise; +} + +interface ITVEpisodes { + getDetails: ( + tvId: number, + seasonNumber: number, + episodeNumber: number, + params?: TVEpisodesGetDetailsParams + ) => Promise; + getAccountStates: ( + tvId: number, + seasonNumber: number, + episodeNumber: number, + params?: TVEpisodesGetAccountStatesParams + ) => Promise; + getChanges: ( + tvId: number, + seasonNumber: number, + episodeNumber: number, + params?: TVEpisodesGetChangesParams + ) => Promise; + getCredits: ( + tvId: number, + seasonNumber: number, + episodeNumber: number, + params?: TVEpisodesGetCreditsParams + ) => Promise; + getExternalIds: ( + tvId: number, + seasonNumber: number, + episodeNumber: number + ) => Promise; + getImages: ( + tvId: number, + seasonNumber: number, + episodeNumber: number + ) => Promise; + getTranslations: ( + tvId: number, + seasonNumber: number, + episodeNumber: number + ) => Promise; + rateTVEpisode: ( + tvId: number, + seasonNumber: number, + episodeNumber: number, + body: TVEpisodesRateTVEpisodeBody, + params?: TVEpisodesRateTVEpisodeParams + ) => Promise; + deleteRating: ( + tvId: number, + seasonNumber: number, + episodeNumber: number, + params?: TVEpisodesDeleteRatingParams + ) => Promise; + getVideos: ( + tvId: number, + seasonNumber: number, + episodeNumber: number, + params?: TVEpisodesGetVideosParams + ) => Promise; +} + +interface ITVEpisodeGroups { + getDetails: ( + id?: string, + params?: TVEpisodeGroupsGetDetailsParams + ) => Promise; +} + +interface IWatchProviders { + getAvailableRegions: ( + params?: WatchProvidersGetAvailableRegionsParams + ) => Promise; + getMovieProviders: ( + params?: WatchProvidersGetMovieProvidersParams + ) => Promise; + getTVProviders: ( + params?: WatchProvidersGetTVProvidersParams + ) => Promise; +} + +export interface V4IAccount { + getLists: ( + accountId: string, + params?: V4AccountGetListsParams + ) => Promise; + getFavoriteMovies: ( + accountId: string, + params?: V4AccountGetFavoriteMoviesParams + ) => Promise; + getFavoriteTVShows: ( + accountId: string, + params?: V4AccountGetFavoriteTVShowsParams + ) => Promise; + getMovieRecommendations: ( + accountId: string, + params?: V4AccountGetMovieRecommendationsParams + ) => Promise; + getTVShowRecommendations: ( + accountId: string, + params?: V4AccountGetTVShowRecommendationsParams + ) => Promise; + getMovieWatchlist: ( + accountId: string, + params?: V4AccountGetMovieWatchlistParams + ) => Promise; + getTVShowWatchlist: ( + accountId: string, + params?: V4AccountGetTVShowWatchlistParams + ) => Promise; + getRatedMovies: ( + accountId: string, + params?: V4AccountGetRatedMoviesParams + ) => Promise; + getRatedTVShows: ( + accountId: string, + params?: V4AccountGetRatedTVShowsParams + ) => Promise; +} + +export interface V4IAuth { + createRequestToken: ( + body?: V4AuthCreateRequestTokenBody + ) => Promise; + createAccessToken: ( + body: V4AuthCreateAccessTokenBody + ) => Promise; + deleteAccessToken: ( + body: V4AuthDeleteAccessTokenBody + ) => Promise; +} + +export interface V4IList { + getList: ( + params?: V4ListGetListParams, + listId?: string + ) => Promise; + createList: (body: V4ListCreateListBody) => Promise; + updateList: ( + body: V4ListUpdateListBody, + listId?: string + ) => Promise; + clearList: (listId?: string) => Promise; + deleteList: (listId?: string) => Promise; + addItems: ( + body: V4ListAddItemsBody, + listId?: string + ) => Promise; + updateItems: ( + body: V4ListUpdateItemsBody, + listId?: string + ) => Promise; + removeItems: ( + body: V4ListRemoveItemsBody, + listId?: string + ) => Promise; + checkItemStatus: ( + params: V4ListCheckItemStatusParams, + listId?: string + ) => Promise; +} + +export interface ITMDBAPI { + v3: { + account: IAccount; + authentication: IAuthentication; + certifications: ICertifications; + changes: IChanges; + collections: ICollections; + companies: ICompanies; + configuration: IConfiguration; + credits: ICredits; + discover: IDiscover; + find: IFind; + genres: IGenres; + guestSessions: IGuestSessions; + keywords: IKeywords; + lists: ILists; + movies: IMovies; + networks: INetworks; + trending: ITrending; + people: IPeople; + reviews: IReviews; + search: ISearch; + tv: ITV; + tvSeasons: ITVSeasons; + tvEpisodes: ITVEpisodes; + tvEpisodeGroups: ITVEpisodeGroups; + watchProviders: IWatchProviders; + }; + v4: { + account: V4IAccount; + auth: V4IAuth; + list: V4IList; + }; +} + +export interface Http { + get(url: string, accessToken?: string): Promise; + post( + url: string, + body?: TBody, + accessToken?: string + ): Promise; + put( + url: string, + body: TBody, + accessToken?: string + ): Promise; + delete( + url: string, + body?: TBody, + accessToken?: string + ): Promise; +} + +const createV3Methods = (client: Http, apiKey: string, v3Url: string) => { + return { + account: createV3AccountMethods(client, apiKey, v3Url), + authentication: createV3AuthenticationMethods(client, apiKey, v3Url), + certifications: createV3CertificationsMethods(client, apiKey, v3Url), + changes: createV3ChangesMethods(client, apiKey, v3Url), + collections: createV3CollectionsMethods(client, apiKey, v3Url), + companies: createV3CompaniesMethods(client, apiKey, v3Url), + configuration: createV3ConfigurationMethods(client, apiKey, v3Url), + credits: createV3CreditsMethods(client, apiKey, v3Url), + discover: createV3DiscoverMethods(client, apiKey, v3Url), + find: createV3FindMethods(client, apiKey, v3Url), + genres: createV3GenresMethods(client, apiKey, v3Url), + guestSessions: createV3GuestSessionsMethods(client, apiKey, v3Url), + keywords: createV3KeywordsMethods(client, apiKey, v3Url), + lists: createV3ListsMethods(client, apiKey, v3Url), + movies: createV3MoviesMethods(client, apiKey, v3Url), + networks: createV3NetworksMethods(client, apiKey, v3Url), + trending: createV3TrendingMethods(client, apiKey, v3Url), + people: createV3PeopleMethods(client, apiKey, v3Url), + reviews: createV3ReviewsMethods(client, apiKey, v3Url), + search: createV3SearchMethods(client, apiKey, v3Url), + tv: createV3TvMethods(client, apiKey, v3Url), + tvSeasons: createV3TVSeasonsMethods(client, apiKey, v3Url), + tvEpisodes: createV3TVEpisodesMethods(client, apiKey, v3Url), + tvEpisodeGroups: createV3TVEpisodeGroupsMethods(client, apiKey, v3Url), + watchProviders: createV3WatchProvidersMethods(client, apiKey, v3Url), + }; +}; + +const createV4Methods = (client: Http, v4Url: string, accessToken?: string) => { + return { + account: createV4AccountMethods(client, v4Url, accessToken), + auth: createV4AuthMethods(client, v4Url, accessToken), + list: createV4ListMethods(client, v4Url, accessToken), + }; +}; + +export default class TMDBAPI implements ITMDBAPI{ + private v3Url = "https://api.themoviedb.org/3/"; + private v4Url = "https://api.themoviedb.org/4/"; + + v3: ITMDBAPI["v3"]; + v4: ITMDBAPI["v4"]; + + private client: Http; + private apiKey: string; + private accessToken?: string; + + setApiKey(apiKey: string) { + this.apiKey = apiKey; + this.v3 = createV3Methods(this.client, this.apiKey, this.v3Url); + } + + setAccessToken(accessToken: string) { + this.accessToken = accessToken; + this.v4 = createV4Methods(this.client, this.v4Url, this.accessToken); + } + + constructor(client: Http, apiKey: string, accessToken?: string) { + this.apiKey = apiKey; + this.accessToken = accessToken; + + this.client = client; + + this.v3 = createV3Methods(this.client, this.apiKey, this.v3Url); + this.v4 = createV4Methods(this.client, this.v4Url, this.accessToken) + } +} + +export * from "./types"; diff --git a/packages/core/src/types/error.ts b/packages/core/src/types/error.ts new file mode 100644 index 0000000..19f21a7 --- /dev/null +++ b/packages/core/src/types/error.ts @@ -0,0 +1,4 @@ +export interface TMDBApiError { + status_code: number; + status_message: string; +} diff --git a/packages/core/src/types/index.ts b/packages/core/src/types/index.ts new file mode 100644 index 0000000..b6c6722 --- /dev/null +++ b/packages/core/src/types/index.ts @@ -0,0 +1,3 @@ +export * from "./v3"; +export * from "./v4"; +export * from "./error"; diff --git a/packages/core/src/types/v3/account/add-to-watchlist.ts b/packages/core/src/types/v3/account/add-to-watchlist.ts new file mode 100644 index 0000000..3e3dce3 --- /dev/null +++ b/packages/core/src/types/v3/account/add-to-watchlist.ts @@ -0,0 +1,14 @@ +export interface AccountAddToWatchlistResponse { + status_code: number; + status_message: string; +} + +export interface AccountAddToWatchlistParams { + session_id: string; +} + +export interface AccountAddToWatchlistBody { + media_type: "movie" | "tv"; + media_id: number; + watchlist: boolean; +} diff --git a/packages/core/src/types/v3/account/get-created-lists.ts b/packages/core/src/types/v3/account/get-created-lists.ts new file mode 100644 index 0000000..8195640 --- /dev/null +++ b/packages/core/src/types/v3/account/get-created-lists.ts @@ -0,0 +1,23 @@ +export interface AccountGetCreatedListsResponse { + page: number; + results: Result[]; + total_pages: number; + total_results: number; +} + +export interface Result { + description: string; + favorite_count: number; + id: number; + item_count: number; + iso_639_1: string; + list_type: string; + name: string; + poster_path: null; +} + +export interface AccountGetCreatedListsParams { + session_id: string; + page?: number; + language?: string; +} diff --git a/packages/core/src/types/v3/account/get-details.ts b/packages/core/src/types/v3/account/get-details.ts new file mode 100644 index 0000000..c98aba5 --- /dev/null +++ b/packages/core/src/types/v3/account/get-details.ts @@ -0,0 +1,21 @@ +export interface AccountGetDetailsResponse { + avatar: AccountGetDetailsAvatar; + id: number; + iso_639_1: string; + iso_3166_1: string; + name: string; + include_adult: boolean; + username: string; +} + +export interface AccountGetDetailsAvatar { + gravatar: AccountGetDetailsGravatar; +} + +export interface AccountGetDetailsGravatar { + hash: string; +} + +export interface AccountGetDetailsParams { + session_id: string; +} diff --git a/packages/core/src/types/v3/account/get-favorite-movies.ts b/packages/core/src/types/v3/account/get-favorite-movies.ts new file mode 100644 index 0000000..5f30cba --- /dev/null +++ b/packages/core/src/types/v3/account/get-favorite-movies.ts @@ -0,0 +1,30 @@ +export interface AccountGetFavoriteMoviesResponse { + page: number; + results: AccountGetFavoriteMoviesResult[]; + total_pages: number; + total_results: number; +} + +export interface AccountGetFavoriteMoviesResult { + adult: boolean; + backdrop_path: null; + genre_ids: number[]; + id: number; + original_language: string; + original_title: string; + overview: string; + release_date: Date; + poster_path: null; + popularity: number; + title: string; + video: boolean; + vote_average: number; + vote_count: number; +} + +export interface AccountGetFavoriteMoviesParams { + session_id: string; + language?: string; + sort_by?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/account/get-favorite-tvshows.ts b/packages/core/src/types/v3/account/get-favorite-tvshows.ts new file mode 100644 index 0000000..491751a --- /dev/null +++ b/packages/core/src/types/v3/account/get-favorite-tvshows.ts @@ -0,0 +1,29 @@ +export interface AccountGetFavoriteTVShowsResponse { + page: number; + results: AccountGetFavoriteTVShowsResult[]; + total_pages: number; + total_results: number; +} + +export interface AccountGetFavoriteTVShowsResult { + backdrop_path: null; + first_air_date: Date; + genre_ids: number[]; + id: number; + original_language: string; + original_name: string; + overview: string; + origin_country: string[]; + poster_path: null; + popularity: number; + name: string; + vote_average: number; + vote_count: number; +} + +export interface AccountGetFavoriteTVShowsParams { + session_id: string; + language?: string; + sort_by?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/account/get-movie-watchlist.ts b/packages/core/src/types/v3/account/get-movie-watchlist.ts new file mode 100644 index 0000000..0a20c34 --- /dev/null +++ b/packages/core/src/types/v3/account/get-movie-watchlist.ts @@ -0,0 +1,30 @@ +export interface AccountGetMovieWatchlistResponse { + page: number; + results: AccountGetMovieWatchlistResult[]; + total_pages: number; + total_results: number; +} + +export interface AccountGetMovieWatchlistResult { + adult: boolean; + backdrop_path: null; + genre_ids: number[]; + id: number; + original_language: string; + original_title: string; + overview: string; + release_date: Date; + poster_path: null; + popularity: number; + title: string; + video: boolean; + vote_average: number; + vote_count: number; +} + +export interface AccountGetMovieWatchlistParams { + language?: string; + session_id: string; + sort_by?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/account/get-rated-movies.ts b/packages/core/src/types/v3/account/get-rated-movies.ts new file mode 100644 index 0000000..7fc4577 --- /dev/null +++ b/packages/core/src/types/v3/account/get-rated-movies.ts @@ -0,0 +1,31 @@ +export interface AccountGetRatedMoviesResponse { + page: number; + results: AccountGetRatedMoviesResult[]; + total_pages: number; + total_results: number; +} + +export interface AccountGetRatedMoviesResult { + adult: boolean; + backdrop_path: null; + genre_ids: number[]; + id: number; + original_language: string; + original_title: string; + overview: string; + release_date: Date; + poster_path: null; + popularity: number; + title: string; + video: boolean; + vote_average: number; + vote_count: number; + rating: number; +} + +export interface AccountGetRatedMoviesParams { + language?: string; + session_id: string; + sort_by?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/account/get-rated-tvepisodes.ts b/packages/core/src/types/v3/account/get-rated-tvepisodes.ts new file mode 100644 index 0000000..3886db1 --- /dev/null +++ b/packages/core/src/types/v3/account/get-rated-tvepisodes.ts @@ -0,0 +1,28 @@ +export interface AccountGetRatedTVEpisodesResponse { + page: number; + results: AccountGetRatedTVEpisodesResult[]; + total_pages: number; + total_results: number; +} + +export interface AccountGetRatedTVEpisodesResult { + air_date: Date; + episode_number: number; + id: number; + name: string; + overview: string; + production_code: null | string; + season_number: number; + show_id: number; + still_path: string; + vote_average: number; + vote_count: number; + rating: number; +} + +export interface AccountGetRatedTVEpisodesParams { + language?: string; + session_id: string; + sort_by?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/account/get-rated-tvshows.ts b/packages/core/src/types/v3/account/get-rated-tvshows.ts new file mode 100644 index 0000000..ce880fe --- /dev/null +++ b/packages/core/src/types/v3/account/get-rated-tvshows.ts @@ -0,0 +1,30 @@ +export interface AccountGetRatedTVShowsResponse { + page: number; + results: AccountGetRatedTVShowsResult[]; + total_pages: number; + total_results: number; +} + +export interface AccountGetRatedTVShowsResult { + backdrop_path: null; + first_air_date: Date; + genre_ids: number[]; + id: number; + original_language: string; + original_name: string; + overview: string; + origin_country: string[]; + poster_path: null; + popularity: number; + name: string; + vote_average: number; + vote_count: number; + rating: number; +} + +export interface AccountGetRatedTVShowsParams { + language?: string; + session_id: string; + sort_by?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/account/get-tvshow-watchlist.ts b/packages/core/src/types/v3/account/get-tvshow-watchlist.ts new file mode 100644 index 0000000..bb8d5b3 --- /dev/null +++ b/packages/core/src/types/v3/account/get-tvshow-watchlist.ts @@ -0,0 +1,29 @@ +export interface AccountGetTVShowWatchlistResponse { + page: number; + results: AccountGetTVShowWatchlistResult[]; + total_pages: number; + total_results: number; +} + +export interface AccountGetTVShowWatchlistResult { + backdrop_path: null; + first_air_date: Date; + genre_ids: number[]; + id: number; + original_language: string; + original_name: string; + overview: string; + origin_country: string[]; + poster_path: null; + popularity: number; + name: string; + vote_average: number; + vote_count: number; +} + +export interface AccountGetTVShowWatchlistParams { + language?: string; + session_id: string; + sort_by?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/account/index.ts b/packages/core/src/types/v3/account/index.ts new file mode 100644 index 0000000..c897485 --- /dev/null +++ b/packages/core/src/types/v3/account/index.ts @@ -0,0 +1,11 @@ +export * from "./add-to-watchlist"; +export * from "./get-created-lists"; +export * from "./get-details"; +export * from "./get-favorite-movies"; +export * from "./get-favorite-tvshows"; +export * from "./get-movie-watchlist"; +export * from "./get-rated-movies"; +export * from "./get-rated-tvepisodes"; +export * from "./get-rated-tvshows"; +export * from "./get-tvshow-watchlist"; +export * from "./mark-as-favorite"; diff --git a/packages/core/src/types/v3/account/mark-as-favorite.ts b/packages/core/src/types/v3/account/mark-as-favorite.ts new file mode 100644 index 0000000..d791a67 --- /dev/null +++ b/packages/core/src/types/v3/account/mark-as-favorite.ts @@ -0,0 +1,14 @@ +export interface AccountMarkAsFavoriteResponse { + status_code: number; + status_message: string; +} + +export interface AccountMarkAsFavoriteParams { + session_id: string; +} + +export interface AccountMarkAsFavoriteBody { + media_type: "movie" | "tv"; + media_id: number; + favorite: boolean; +} diff --git a/packages/core/src/types/v3/authentication/index.ts b/packages/core/src/types/v3/authentication/index.ts new file mode 100644 index 0000000..3d0a058 --- /dev/null +++ b/packages/core/src/types/v3/authentication/index.ts @@ -0,0 +1,48 @@ +export interface AuthenticationCreateGuestSessionResponse { + success: boolean; + guest_session_id: string; + expires_at: string; +} + +export interface AuthenticationCreateRequestTokenResponse { + success: boolean; + expires_at: string; + request_token: string; +} + +export interface AuthenticationCreateSessionBody { + request_token: string; +} + +export interface AuthenticationCreateSessionResponse { + success: boolean; + session_id: string; +} + +export interface AuthenticationCreateSessionWithLoginBody { + username: string; + password: string; + request_token: string; +} + +export interface AuthenticationCreateSessionWithLoginResponse { + success: boolean; + session_id: string; +} + +export interface AuthenticationCreateSessionFromV4AccessTokenBody { + access_token: string; +} + +export interface AuthenticationCreateSessionFromV4AccessTokenResponse { + success: boolean; + session_id: string; +} + +export interface AuthenticationDeleteSessionBody { + session_id: string; +} + +export interface AuthenticationDeleteSessionResponse { + success: boolean; +} diff --git a/packages/core/src/types/v3/certifications/index.ts b/packages/core/src/types/v3/certifications/index.ts new file mode 100644 index 0000000..e5d9522 --- /dev/null +++ b/packages/core/src/types/v3/certifications/index.ts @@ -0,0 +1,17 @@ +export interface CertificationsGetMovieCertificationResponse { + certifications: Certifications; +} + +export interface CertificationsGetTVCertificationResponse { + certifications: Certifications; +} + +export interface Certifications { + [key: string]: Certification[]; +} + +export interface Certification { + certification: string; + meaning: string; + order: number; +} diff --git a/packages/core/src/types/v3/changes/get-movie-change-list.ts b/packages/core/src/types/v3/changes/get-movie-change-list.ts new file mode 100644 index 0000000..2d075d3 --- /dev/null +++ b/packages/core/src/types/v3/changes/get-movie-change-list.ts @@ -0,0 +1,17 @@ +export interface ChangesGetMovieChangeListResponse { + results: ChangesGetMovieChangeListResult[]; + page: number; + total_pages: number; + total_results: number; +} + +export interface ChangesGetMovieChangeListResult { + id: number; + adult: boolean; +} + +export interface ChangesGetMovieChangeListParams { + start_date?: string; + end_date?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/changes/get-person-change-list.ts b/packages/core/src/types/v3/changes/get-person-change-list.ts new file mode 100644 index 0000000..109e85d --- /dev/null +++ b/packages/core/src/types/v3/changes/get-person-change-list.ts @@ -0,0 +1,17 @@ +export interface ChangesGetPersonChangeListResponse { + results: ChangesGetPersonChangeListResult[]; + page: number; + total_pages: number; + total_results: number; +} + +export interface ChangesGetPersonChangeListResult { + id: number; + adult: boolean; +} + +export interface ChangesGetPersonChangeListParams { + start_date?: string; + end_date?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/changes/get-tv-change-list.ts b/packages/core/src/types/v3/changes/get-tv-change-list.ts new file mode 100644 index 0000000..45db124 --- /dev/null +++ b/packages/core/src/types/v3/changes/get-tv-change-list.ts @@ -0,0 +1,17 @@ +export interface ChangesGetTVChangeListResponse { + results: ChangesGetTVChangeListResult[]; + page: number; + total_pages: number; + total_results: number; +} + +export interface ChangesGetTVChangeListResult { + id: number; + adult: boolean; +} + +export interface ChangesGetTVChangeListParams { + start_date?: string; + end_date?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/changes/index.ts b/packages/core/src/types/v3/changes/index.ts new file mode 100644 index 0000000..198c449 --- /dev/null +++ b/packages/core/src/types/v3/changes/index.ts @@ -0,0 +1,3 @@ +export * from "./get-movie-change-list"; +export * from "./get-person-change-list"; +export * from "./get-tv-change-list"; diff --git a/packages/core/src/types/v3/collections/get-details.ts b/packages/core/src/types/v3/collections/get-details.ts new file mode 100644 index 0000000..e6042b2 --- /dev/null +++ b/packages/core/src/types/v3/collections/get-details.ts @@ -0,0 +1,29 @@ +export interface CollectionsGetDetailsResponse { + id: number; + name: string; + overview: string; + poster_path: null; + backdrop_path: string; + parts: CollectionsGetDetailsPart[]; +} + +export interface CollectionsGetDetailsPart { + adult: boolean; + backdrop_path: null; + genre_ids: number[]; + id: number; + original_language: string; + original_title: string; + overview: string; + release_date: Date; + poster_path: string; + popularity: number; + title: string; + video: boolean; + vote_average: number; + vote_count: number; +} + +export interface CollectionsGetDetailsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/collections/get-images.ts b/packages/core/src/types/v3/collections/get-images.ts new file mode 100644 index 0000000..13d6a38 --- /dev/null +++ b/packages/core/src/types/v3/collections/get-images.ts @@ -0,0 +1,19 @@ +export interface CollectionsGetImagesResponse { + id: number; + backdrops: CollectionsGetImagesBackdrop[]; + posters: CollectionsGetImagesBackdrop[]; +} + +export interface CollectionsGetImagesBackdrop { + aspect_ratio: number; + file_path: string; + height: number; + iso_639_1: null | string; + vote_average: number; + vote_count: number; + width: number; +} + +export interface CollectionsGetImagesParams { + language?: string; +} diff --git a/packages/core/src/types/v3/collections/get-translations.ts b/packages/core/src/types/v3/collections/get-translations.ts new file mode 100644 index 0000000..3d64708 --- /dev/null +++ b/packages/core/src/types/v3/collections/get-translations.ts @@ -0,0 +1,22 @@ +export interface CollectionsGetTranslationsResponse { + id: number; + translations: CollectionsGetTranslationsTranslation[]; +} + +export interface CollectionsGetTranslationsTranslation { + iso_3166_1: string; + iso_639_1: string; + name: string; + english_name: string; + data: CollectionsGetTranslationsData; +} + +export interface CollectionsGetTranslationsData { + title: string; + overview: string; + homepage: string; +} + +export interface CollectionsGetTranslationsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/collections/index.ts b/packages/core/src/types/v3/collections/index.ts new file mode 100644 index 0000000..1165b54 --- /dev/null +++ b/packages/core/src/types/v3/collections/index.ts @@ -0,0 +1,3 @@ +export * from "./get-details"; +export * from "./get-images"; +export * from "./get-translations"; diff --git a/packages/core/src/types/v3/companies/get-alternative-names.ts b/packages/core/src/types/v3/companies/get-alternative-names.ts new file mode 100644 index 0000000..47bcfd0 --- /dev/null +++ b/packages/core/src/types/v3/companies/get-alternative-names.ts @@ -0,0 +1,9 @@ +export interface CompaniesGetAlternativeNamesResponse { + id: number; + results: CompaniesGetAlternativeNamesResult[]; +} + +export interface CompaniesGetAlternativeNamesResult { + name: string; + type: string; +} diff --git a/packages/core/src/types/v3/companies/get-details.ts b/packages/core/src/types/v3/companies/get-details.ts new file mode 100644 index 0000000..372280d --- /dev/null +++ b/packages/core/src/types/v3/companies/get-details.ts @@ -0,0 +1,10 @@ +export interface CompaniesGetDetailsResponse { + description: string; + headquarters: string; + homepage: string; + id: number; + logo_path: string; + name: string; + origin_country: string; + parent_company: null; +} diff --git a/packages/core/src/types/v3/companies/get-images.ts b/packages/core/src/types/v3/companies/get-images.ts new file mode 100644 index 0000000..81f61ca --- /dev/null +++ b/packages/core/src/types/v3/companies/get-images.ts @@ -0,0 +1,15 @@ +export interface CompaniesGetImagesResponse { + id: number; + logos: CompaniesGetImagesLogo[]; +} + +export interface CompaniesGetImagesLogo { + aspect_ratio: number; + file_path: string; + height: number; + id: string; + file_type: string; + vote_average: number; + vote_count: number; + width: number; +} diff --git a/packages/core/src/types/v3/companies/index.ts b/packages/core/src/types/v3/companies/index.ts new file mode 100644 index 0000000..cc89a84 --- /dev/null +++ b/packages/core/src/types/v3/companies/index.ts @@ -0,0 +1,3 @@ +export * from "./get-alternative-names"; +export * from "./get-details"; +export * from "./get-images"; diff --git a/packages/core/src/types/v3/configuration/get-api-configuration.ts b/packages/core/src/types/v3/configuration/get-api-configuration.ts new file mode 100644 index 0000000..1622014 --- /dev/null +++ b/packages/core/src/types/v3/configuration/get-api-configuration.ts @@ -0,0 +1,14 @@ +export interface ConfigurationGetApiConfigurationResponse { + images: ConfigurationGetApiConfigurationImages; + change_keys: string[]; +} + +export interface ConfigurationGetApiConfigurationImages { + base_url: string; + secure_base_url: string; + backdrop_sizes: string[]; + logo_sizes: string[]; + poster_sizes: string[]; + profile_sizes: string[]; + still_sizes: string[]; +} diff --git a/packages/core/src/types/v3/configuration/get-countries.ts b/packages/core/src/types/v3/configuration/get-countries.ts new file mode 100644 index 0000000..f13a67a --- /dev/null +++ b/packages/core/src/types/v3/configuration/get-countries.ts @@ -0,0 +1,7 @@ +export type ConfigurationGetCountriesResponse = + ConfigurationGetCountriesResult[]; + +export interface ConfigurationGetCountriesResult { + iso_3166_1: string; + english_name: string; +} diff --git a/packages/core/src/types/v3/configuration/get-jobs.ts b/packages/core/src/types/v3/configuration/get-jobs.ts new file mode 100644 index 0000000..88de47e --- /dev/null +++ b/packages/core/src/types/v3/configuration/get-jobs.ts @@ -0,0 +1,6 @@ +export type ConfigurationGetJobsResponse = ConfigurationGetJobsResult[]; + +export interface ConfigurationGetJobsResult { + department: string; + jobs: string[]; +} diff --git a/packages/core/src/types/v3/configuration/get-languages.ts b/packages/core/src/types/v3/configuration/get-languages.ts new file mode 100644 index 0000000..e6e48b6 --- /dev/null +++ b/packages/core/src/types/v3/configuration/get-languages.ts @@ -0,0 +1,8 @@ +export type ConfigurationGetLanguagesResponse = + ConfigurationGetLanguagesResult[]; + +export interface ConfigurationGetLanguagesResult { + iso_639_1: string; + english_name: string; + name: string; +} diff --git a/packages/core/src/types/v3/configuration/get-primary-translations.ts b/packages/core/src/types/v3/configuration/get-primary-translations.ts new file mode 100644 index 0000000..d12b6ef --- /dev/null +++ b/packages/core/src/types/v3/configuration/get-primary-translations.ts @@ -0,0 +1 @@ +export type ConfigurationGetPrimaryTranslationsResponse = string[]; diff --git a/packages/core/src/types/v3/configuration/get-timezones.ts b/packages/core/src/types/v3/configuration/get-timezones.ts new file mode 100644 index 0000000..56c0d20 --- /dev/null +++ b/packages/core/src/types/v3/configuration/get-timezones.ts @@ -0,0 +1,7 @@ +export type ConfigurationGetTimezonesResponse = + ConfigurationGetTimezonesResult[]; + +export interface ConfigurationGetTimezonesResult { + iso_3166_1: string; + zones: string[]; +} diff --git a/packages/core/src/types/v3/configuration/index.ts b/packages/core/src/types/v3/configuration/index.ts new file mode 100644 index 0000000..c6f756b --- /dev/null +++ b/packages/core/src/types/v3/configuration/index.ts @@ -0,0 +1,6 @@ +export * from "./get-api-configuration"; +export * from "./get-countries"; +export * from "./get-jobs"; +export * from "./get-languages"; +export * from "./get-primary-translations"; +export * from "./get-timezones"; diff --git a/packages/core/src/types/v3/credits/get-details.ts b/packages/core/src/types/v3/credits/get-details.ts new file mode 100644 index 0000000..7a6ed72 --- /dev/null +++ b/packages/core/src/types/v3/credits/get-details.ts @@ -0,0 +1,29 @@ +export interface CreditsGetDetailsResponse { + credit_type: string; + department: string; + job: string; + media: CreditsGetDetailsMedia; + media_type: string; + id: string; + person: CreditsGetDetailsPerson; +} + +export interface CreditsGetDetailsMedia { + id: number; + name: string; + original_name: string; + character: string; + episodes: any[]; + seasons: CreditsGetDetailsSeason[]; +} + +export interface CreditsGetDetailsSeason { + air_date: Date; + poster_path: string; + season_number: number; +} + +export interface CreditsGetDetailsPerson { + name: string; + id: number; +} diff --git a/packages/core/src/types/v3/credits/index.ts b/packages/core/src/types/v3/credits/index.ts new file mode 100644 index 0000000..1f2c4dd --- /dev/null +++ b/packages/core/src/types/v3/credits/index.ts @@ -0,0 +1 @@ +export * from "./get-details"; diff --git a/packages/core/src/types/v3/discover/index.ts b/packages/core/src/types/v3/discover/index.ts new file mode 100644 index 0000000..92ffd70 --- /dev/null +++ b/packages/core/src/types/v3/discover/index.ts @@ -0,0 +1,2 @@ +export * from "./movie-discover"; +export * from "./tv-discover"; diff --git a/packages/core/src/types/v3/discover/movie-discover.ts b/packages/core/src/types/v3/discover/movie-discover.ts new file mode 100644 index 0000000..c69944c --- /dev/null +++ b/packages/core/src/types/v3/discover/movie-discover.ts @@ -0,0 +1,62 @@ +export interface DiscoverMovieDiscoverResponse { + page: number; + results: DiscoverMovieDiscoverResult[]; + total_results: number; + total_pages: number; +} + +export interface DiscoverMovieDiscoverResult { + poster_path: null; + adult: boolean; + overview: string; + release_date: string; + genre_ids: number[]; + id: number; + original_title: string; + original_language: string; + title: string; + backdrop_path: null; + popularity: number; + vote_count: number; + video: boolean; + vote_average: number; +} + +export interface DiscoverMovieDiscoverParams { + language?: string; + region?: string; + sort_by?: string; + certification_country?: string; + certification?: string; + ["certification.lte"]?: string; + ["certification.gte"]?: string; + include_adult?: boolean; + include_video?: boolean; + page?: number; + primary_release_year?: number; + ["primary_release_date.gte"]?: string; + ["primary_release_date.lte"]?: string; + ["release_date.gte"]?: string; + ["release_date.lte"]?: string; + with_release_type?: number; + year?: number; + ["vote_count.gte"]?: number; + ["vote_count.lte"]?: number; + ["vote_average.gte"]?: number; + ["vote_average.lte"]?: number; + with_cast?: string; + with_crew?: string; + with_people?: string; + with_companies?: string; + with_genres?: string; + without_genres?: string; + with_keywords?: string; + with_runtime?: string; + ["with_runtime.gte"]?: number; + ["with_runtime.lte"]?: number; + with_original_language?: string; + with_watch_providers?: string; + watch_region?: string; + with_watch_monetization_types?: string; + without_companies?: string; +} diff --git a/packages/core/src/types/v3/discover/tv-discover.ts b/packages/core/src/types/v3/discover/tv-discover.ts new file mode 100644 index 0000000..43bab60 --- /dev/null +++ b/packages/core/src/types/v3/discover/tv-discover.ts @@ -0,0 +1,54 @@ +export interface DiscoverTVDiscoverResponse { + page: number; + results: DiscoverTVDiscoverResult[]; + total_results: number; + total_pages: number; +} + +export interface DiscoverTVDiscoverResult { + poster_path: string; + popularity: number; + id: number; + backdrop_path: null; + vote_average: number; + overview: string; + first_air_date: string; + origin_country: string[]; + genre_ids: number[]; + original_language: string; + vote_count: number; + name: string; + original_name: string; +} + +export interface DiscoverTVDiscoverParams { + language?: string; + sort_by?: string; + ["air_date.gte"]?: string; + ["air_date.lte"]?: string; + ["first_air_date.gte"]?: string; + ["first_air_date.lte"]?: string; + first_air_date_year?: number; + page?: number; + timezone?: string; + ["vote_average.gte"]?: number; + ["vote_count.gte"]?: number; + with_genres?: string; + with_networks?: string; + without_genres?: string; + with_runtime?: string; + ["with_runtime.gte"]?: number; + ["with_runtime.lte"]?: number; + include_null_first_air_dates?: boolean; + with_original_language?: string; + without_keywords?: string; + screened_theatrically?: boolean; + with_companies?: string; + with_keywords?: string; + with_watch_providers?: string; + watch_region?: string; + with_watch_monetization_types?: string; + with_status?: string; + with_type?: string; + without_companies?: string; +} diff --git a/packages/core/src/types/v3/find/find-by-id.ts b/packages/core/src/types/v3/find/find-by-id.ts new file mode 100644 index 0000000..9cdf0c8 --- /dev/null +++ b/packages/core/src/types/v3/find/find-by-id.ts @@ -0,0 +1,94 @@ +export interface FindFindByIdResponse { + movie_results: FindFindByIdMovieResult[]; + person_results: FindFindByIdPersonResult[]; + tv_results: FindFindByIdTvResult[]; + tv_episode_results: FindFindByIdTvEpisodeResult[]; + tv_season_results: FindFindByIdTvSeasonResult[]; +} + +export interface FindFindByIdMovieResult { + poster_path: string; + adult: boolean; + overview: string; + release_date: string; + genre_ids: number[]; + id: number; + original_title: string; + original_language: string; + title: string; + backdrop_path: string; + popularity: number; + vote_count: number; + video: boolean; + vote_average: number; +} + +export interface FindFindByIdPersonResult { + profile_path: string; + adult: boolean; + id: number; + known_for: + | FindFindByIdPersonResultKnownForMovie[] + | FindFindByIdPersonResultKnownForTV[]; + name: string; + popularity: number; +} + +export interface FindFindByIdPersonResultKnownForMovie { + poster_path: string; + adult: boolean; + overview: string; + release_date: string; + genre_ids: number[]; + id: number; + original_title: string; + original_language: string; + title: string; + backdrop_path: string; + popularity: number; + vote_count: number; + video: boolean; + vote_average: number; +} + +export interface FindFindByIdPersonResultKnownForTV { + poster_path: string; + popularity: number; + id: number; + overview: string; + backdrop_path: string; + vote_average: number; + media_type: string; + first_air_date: string; + origin_country: string[]; + genre_ids: number[]; + original_language: string; + vote_count: number; + name: string; + original_name: string; +} + +export interface FindFindByIdTvResult { + poster_path: string; + popularity: number; + id: number; + backdrop_path: string; + vote_average: number; + overview: string; + first_air_date: string; + origin_country: string[]; + genre_ids: number[]; + original_language: string; + vote_count: number; + name: string; + original_name: string; +} + +export type FindFindByIdTvEpisodeResult = unknown; + +export type FindFindByIdTvSeasonResult = unknown; + +export interface FindFindByIdParams { + language?: string; + external_source: string; +} diff --git a/packages/core/src/types/v3/find/index.ts b/packages/core/src/types/v3/find/index.ts new file mode 100644 index 0000000..41138b8 --- /dev/null +++ b/packages/core/src/types/v3/find/index.ts @@ -0,0 +1 @@ +export * from "./find-by-id"; diff --git a/packages/core/src/types/v3/genres/get-movie-list.ts b/packages/core/src/types/v3/genres/get-movie-list.ts new file mode 100644 index 0000000..7dbcef1 --- /dev/null +++ b/packages/core/src/types/v3/genres/get-movie-list.ts @@ -0,0 +1,12 @@ +export interface GenresGetMovieListResponse { + genres: GenresGetMovieListGenre[]; +} + +export interface GenresGetMovieListGenre { + id: number; + name: string; +} + +export interface GenresGetMovieListParams { + language?: string; +} diff --git a/packages/core/src/types/v3/genres/get-tv-list.ts b/packages/core/src/types/v3/genres/get-tv-list.ts new file mode 100644 index 0000000..c0bbcc3 --- /dev/null +++ b/packages/core/src/types/v3/genres/get-tv-list.ts @@ -0,0 +1,12 @@ +export interface GenresGetTVListResponse { + genres: GenresGetTVListGenre[]; +} + +export interface GenresGetTVListGenre { + id: number; + name: string; +} + +export interface GenresGetTVListParams { + language?: string; +} diff --git a/packages/core/src/types/v3/genres/index.ts b/packages/core/src/types/v3/genres/index.ts new file mode 100644 index 0000000..f078e1e --- /dev/null +++ b/packages/core/src/types/v3/genres/index.ts @@ -0,0 +1,2 @@ +export * from "./get-movie-list"; +export * from "./get-tv-list"; diff --git a/packages/core/src/types/v3/guest-sessions/get-rated-movies.ts b/packages/core/src/types/v3/guest-sessions/get-rated-movies.ts new file mode 100644 index 0000000..e14726f --- /dev/null +++ b/packages/core/src/types/v3/guest-sessions/get-rated-movies.ts @@ -0,0 +1,30 @@ +export interface GuestSessionsGetRatedMoviesResponse { + page: number; + results: GuestSessionsGetRatedMoviesResult[]; + total_pages: number; + total_results: number; +} + +export interface GuestSessionsGetRatedMoviesResult { + adult: boolean; + backdrop_path: string; + genre_ids: number[]; + id: number; + original_language: string; + original_title: string; + overview: string; + release_date: string; + poster_path: null; + popularity: number; + title: string; + video: boolean; + vote_average: number; + vote_count: number; + rating: number; +} + +export interface GuestSessionsGetRatedMoviesParams { + language?: string; + sort_by?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/guest-sessions/get-rated-tvepisodes.ts b/packages/core/src/types/v3/guest-sessions/get-rated-tvepisodes.ts new file mode 100644 index 0000000..8295e8d --- /dev/null +++ b/packages/core/src/types/v3/guest-sessions/get-rated-tvepisodes.ts @@ -0,0 +1,27 @@ +export interface GuestSessionsGetRatedTVEpisodesResponse { + page: number; + results: GuestSessionsGetRatedTVEpisodesResult[]; + total_pages: number; + total_results: number; +} + +export interface GuestSessionsGetRatedTVEpisodesResult { + air_date: string; + episode_number: number; + id: number; + name: string; + overview: string; + production_code: null | string; + season_number: number; + show_id: number; + still_path: null | string; + vote_average: number; + vote_count: number; + rating: number; +} + +export interface GuestSessionsGetRatedTVEpisodesParams { + language?: string; + sort_by?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/guest-sessions/get-rated-tvshows.ts b/packages/core/src/types/v3/guest-sessions/get-rated-tvshows.ts new file mode 100644 index 0000000..96d7450 --- /dev/null +++ b/packages/core/src/types/v3/guest-sessions/get-rated-tvshows.ts @@ -0,0 +1,29 @@ +export interface GuestSessionsGetRatedTVShowsResponse { + page: number; + results: GuestSessionsGetRatedTVShowsResult[]; + total_pages: number; + total_results: number; +} + +export interface GuestSessionsGetRatedTVShowsResult { + backdrop_path: string; + first_air_date: string; + genre_ids: number[]; + id: number; + original_language: null; + original_name: string; + overview: string; + origin_country: string[]; + poster_path: string; + popularity: number; + name: string; + vote_average: number; + vote_count: number; + rating: number; +} + +export interface GuestSessionsGetRatedTVShowsParams { + language?: string; + sort_by?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/guest-sessions/index.ts b/packages/core/src/types/v3/guest-sessions/index.ts new file mode 100644 index 0000000..083d2f3 --- /dev/null +++ b/packages/core/src/types/v3/guest-sessions/index.ts @@ -0,0 +1,3 @@ +export * from "./get-rated-movies"; +export * from "./get-rated-tvepisodes"; +export * from "./get-rated-tvshows"; diff --git a/packages/core/src/types/v3/index.ts b/packages/core/src/types/v3/index.ts new file mode 100644 index 0000000..1951b0d --- /dev/null +++ b/packages/core/src/types/v3/index.ts @@ -0,0 +1,25 @@ +export * from "./account"; +export * from "./authentication"; +export * from "./certifications"; +export * from "./changes"; +export * from "./collections"; +export * from "./companies"; +export * from "./configuration"; +export * from "./credits"; +export * from "./discover"; +export * from "./find"; +export * from "./genres"; +export * from "./guest-sessions"; +export * from "./keywords"; +export * from "./lists"; +export * from "./movies"; +export * from "./networks"; +export * from "./people"; +export * from "./reviews"; +export * from "./search"; +export * from "./trending"; +export * from "./tv"; +export * from "./tv-episode-groups"; +export * from "./tv-episodes"; +export * from "./tv-seasons"; +export * from "./watch-providers"; diff --git a/packages/core/src/types/v3/keywords/get-details.ts b/packages/core/src/types/v3/keywords/get-details.ts new file mode 100644 index 0000000..ff5d9c6 --- /dev/null +++ b/packages/core/src/types/v3/keywords/get-details.ts @@ -0,0 +1,4 @@ +export interface KeywordsGetDetailsResponse { + id: number; + name: string; +} diff --git a/packages/core/src/types/v3/keywords/get-movies.ts b/packages/core/src/types/v3/keywords/get-movies.ts new file mode 100644 index 0000000..a28a6eb --- /dev/null +++ b/packages/core/src/types/v3/keywords/get-movies.ts @@ -0,0 +1,30 @@ +export interface KeywordsGetMoviesResponse { + id: number; + page: number; + results: KeywordsGetMoviesResult[]; + total_pages: number; + total_results: number; +} + +export interface KeywordsGetMoviesResult { + adult: boolean; + backdrop_path: null; + genre_ids: number[]; + id: number; + original_language: string; + original_title: string; + overview: string; + release_date: string; + poster_path: string; + popularity: number; + title: string; + video: boolean; + vote_average: number; + vote_count: number; +} + +export interface KeywordsGetMoviesParams { + language?: string; + page?: number; + include_adult?: boolean; +} diff --git a/packages/core/src/types/v3/keywords/index.ts b/packages/core/src/types/v3/keywords/index.ts new file mode 100644 index 0000000..594b418 --- /dev/null +++ b/packages/core/src/types/v3/keywords/index.ts @@ -0,0 +1,2 @@ +export * from "./get-details"; +export * from "./get-movies"; diff --git a/packages/core/src/types/v3/lists/add-movie.ts b/packages/core/src/types/v3/lists/add-movie.ts new file mode 100644 index 0000000..0667b1b --- /dev/null +++ b/packages/core/src/types/v3/lists/add-movie.ts @@ -0,0 +1,12 @@ +export interface ListsAddMovieResponse { + status_code: number; + status_message: string; +} + +export interface ListsAddMovieParams { + session_id: string; +} + +export interface ListsAddMovieBody { + media_id: number; +} diff --git a/packages/core/src/types/v3/lists/check-item-status.ts b/packages/core/src/types/v3/lists/check-item-status.ts new file mode 100644 index 0000000..79a6282 --- /dev/null +++ b/packages/core/src/types/v3/lists/check-item-status.ts @@ -0,0 +1,8 @@ +export interface ListsCheckItemStatusResponse { + id: string; + item_present: boolean; +} + +export interface ListsCheckItemStatusParams { + movie_id: number; +} diff --git a/packages/core/src/types/v3/lists/clear-list.ts b/packages/core/src/types/v3/lists/clear-list.ts new file mode 100644 index 0000000..6fe7065 --- /dev/null +++ b/packages/core/src/types/v3/lists/clear-list.ts @@ -0,0 +1,9 @@ +export interface ListsClearListResponse { + status_code: number; + status_message: string; +} + +export interface ListsClearListParams { + session_id: string; + confirm: boolean; +} diff --git a/packages/core/src/types/v3/lists/create-list.ts b/packages/core/src/types/v3/lists/create-list.ts new file mode 100644 index 0000000..3df599e --- /dev/null +++ b/packages/core/src/types/v3/lists/create-list.ts @@ -0,0 +1,16 @@ +export interface ListsCreateListResponse { + status_message: string; + success: boolean; + status_code: number; + list_id: number; +} + +export interface ListsCreateListParams { + session_id: string; +} + +export interface ListsCreateListBody { + name?: string; + description?: string; + language?: string; +} diff --git a/packages/core/src/types/v3/lists/delete-list.ts b/packages/core/src/types/v3/lists/delete-list.ts new file mode 100644 index 0000000..b2cac19 --- /dev/null +++ b/packages/core/src/types/v3/lists/delete-list.ts @@ -0,0 +1,8 @@ +export interface ListsDeleteListResponse { + status_code: number; + status_message: string; +} + +export interface ListsDeleteListParams { + session_id: string; +} diff --git a/packages/core/src/types/v3/lists/get-details.ts b/packages/core/src/types/v3/lists/get-details.ts new file mode 100644 index 0000000..deff9d6 --- /dev/null +++ b/packages/core/src/types/v3/lists/get-details.ts @@ -0,0 +1,33 @@ +export interface ListsGetDetailsResponse { + created_by: string; + description: string; + favorite_count: number; + id: string; + items: ListsGetDetailsItem[]; + item_count: number; + iso_639_1: string; + name: string; + poster_path: string; +} + +export interface ListsGetDetailsItem { + poster_path: string; + adult: boolean; + overview: string; + release_date: string; + original_title: string; + genre_ids: number[]; + id: number; + media_type: string; + original_language: string; + title: string; + backdrop_path: null; + popularity: number; + vote_count: number; + video: boolean; + vote_average: number; +} + +export interface ListsGetDetailsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/lists/index.ts b/packages/core/src/types/v3/lists/index.ts new file mode 100644 index 0000000..d51a438 --- /dev/null +++ b/packages/core/src/types/v3/lists/index.ts @@ -0,0 +1,7 @@ +export * from "./add-movie"; +export * from "./check-item-status"; +export * from "./clear-list"; +export * from "./create-list"; +export * from "./delete-list"; +export * from "./get-details"; +export * from "./remove-movie"; diff --git a/packages/core/src/types/v3/lists/remove-movie.ts b/packages/core/src/types/v3/lists/remove-movie.ts new file mode 100644 index 0000000..af0bb7e --- /dev/null +++ b/packages/core/src/types/v3/lists/remove-movie.ts @@ -0,0 +1,12 @@ +export interface ListsRemoveMovieResponse { + status_code: number; + status_message: string; +} + +export interface ListsRemoveMovieParams { + session_id: string; +} + +export interface ListsRemoveMovieBody { + media_id: number; +} diff --git a/packages/core/src/types/v3/movies/delete-rating.ts b/packages/core/src/types/v3/movies/delete-rating.ts new file mode 100644 index 0000000..a67f8a9 --- /dev/null +++ b/packages/core/src/types/v3/movies/delete-rating.ts @@ -0,0 +1,9 @@ +export interface MoviesDeleteRatingResponse { + status_code: number; + status_message: string; +} + +export interface MoviesDeleteRatingParams { + guest_session_id?: string; + session_id?: string; +} diff --git a/packages/core/src/types/v3/movies/get-account-states.ts b/packages/core/src/types/v3/movies/get-account-states.ts new file mode 100644 index 0000000..7231dea --- /dev/null +++ b/packages/core/src/types/v3/movies/get-account-states.ts @@ -0,0 +1,13 @@ +export interface MoviesGetAccountStatesResponse { + id: number; + favorite: boolean; + rated: { + value: number; + }; + watchlist: boolean; +} + +export interface MoviesGetAccountStatesParams { + session_id: string; + guest_session_id?: string; +} diff --git a/packages/core/src/types/v3/movies/get-alternative-titles.ts b/packages/core/src/types/v3/movies/get-alternative-titles.ts new file mode 100644 index 0000000..37674b5 --- /dev/null +++ b/packages/core/src/types/v3/movies/get-alternative-titles.ts @@ -0,0 +1,14 @@ +export interface MoviesGetAlternativeTitlesResponse { + id: number; + titles: MoviesGetAlternativeTitlesTitle[]; +} + +export interface MoviesGetAlternativeTitlesTitle { + iso_3166_1: string; + title: string; + type: string; +} + +export interface MoviesGetAlternativeTitlesParams { + country?: string; +} diff --git a/packages/core/src/types/v3/movies/get-changes.ts b/packages/core/src/types/v3/movies/get-changes.ts new file mode 100644 index 0000000..c687e18 --- /dev/null +++ b/packages/core/src/types/v3/movies/get-changes.ts @@ -0,0 +1,23 @@ +export interface MoviesGetChangesResponse { + changes: MoviesGetChangesChange[]; +} + +export interface MoviesGetChangesChange { + key: string; + items: MoviesGetChangesItem[]; +} + +export interface MoviesGetChangesItem { + id: string; + action: string; + time: string; + iso_639_1: string; + value: string; + original_value: string; +} + +export interface MoviesGetChangesParams { + start_date?: string; + end_date?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/movies/get-credits.ts b/packages/core/src/types/v3/movies/get-credits.ts new file mode 100644 index 0000000..205dc77 --- /dev/null +++ b/packages/core/src/types/v3/movies/get-credits.ts @@ -0,0 +1,23 @@ +export interface MoviesGetCreditsResponse { + id: number; + cast: MoviesGetCreditsCast[]; +} + +export interface MoviesGetCreditsCast { + adult: boolean; + gender: number; + id: number; + known_for_department: string; + name: string; + original_name: string; + popularity: number; + profile_path: string; + cast_id: number; + character: string; + credit_id: string; + order: number; +} + +export interface MoviesGetCreditsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/movies/get-details.ts b/packages/core/src/types/v3/movies/get-details.ts new file mode 100644 index 0000000..2de5ab0 --- /dev/null +++ b/packages/core/src/types/v3/movies/get-details.ts @@ -0,0 +1,54 @@ +export interface MoviesGetDetailsResponse { + adult: boolean; + backdrop_path: string; + belongs_to_collection: null; + budget: number; + genres: MoviesGetDetailsGenre[]; + homepage: string; + id: number; + imdb_id: string; + original_language: string; + original_title: string; + overview: string; + popularity: number; + poster_path: null; + production_companies: MoviesGetDetailsProductionCompany[]; + production_countries: MoviesGetDetailsProductionCountry[]; + release_date: string; + revenue: number; + runtime: number; + spoken_languages: MoviesGetDetailsSpokenLanguage[]; + status: string; + tagline: string; + title: string; + video: boolean; + vote_average: number; + vote_count: number; +} + +export interface MoviesGetDetailsGenre { + id: number; + name: string; +} + +export interface MoviesGetDetailsProductionCompany { + id: number; + logo_path: null | string; + name: string; + origin_country: string; +} + +export interface MoviesGetDetailsProductionCountry { + iso_3166_1: string; + name: string; +} + +export interface MoviesGetDetailsSpokenLanguage { + iso_639_1: string; + name: string; +} + +export interface MoviesGetDetailsParams { + language?: string; + append_to_response?: string; +} diff --git a/packages/core/src/types/v3/movies/get-external-ids.ts b/packages/core/src/types/v3/movies/get-external-ids.ts new file mode 100644 index 0000000..ce09010 --- /dev/null +++ b/packages/core/src/types/v3/movies/get-external-ids.ts @@ -0,0 +1,7 @@ +export interface MoviesGetExternalIdsResponse { + id: number; + imdb_id: string; + facebook_id: string; + instagram_id: string; + twitter_id: string; +} diff --git a/packages/core/src/types/v3/movies/get-images.ts b/packages/core/src/types/v3/movies/get-images.ts new file mode 100644 index 0000000..963fae8 --- /dev/null +++ b/packages/core/src/types/v3/movies/get-images.ts @@ -0,0 +1,20 @@ +export interface MoviesGetImagesResponse { + id: number; + backdrops: MoviesGetImagesBackdrop[]; + posters: MoviesGetImagesBackdrop[]; +} + +export interface MoviesGetImagesBackdrop { + aspect_ratio: number; + file_path: string; + height: number; + iso_639_1: null | string; + vote_average: number; + vote_count: number; + width: number; +} + +export interface MoviesGetImagesParams { + language?: string; + include_image_language?: string; +} diff --git a/packages/core/src/types/v3/movies/get-keywords.ts b/packages/core/src/types/v3/movies/get-keywords.ts new file mode 100644 index 0000000..2773ff1 --- /dev/null +++ b/packages/core/src/types/v3/movies/get-keywords.ts @@ -0,0 +1,9 @@ +export interface MoviesGetKeywordsResponse { + id: number; + keywords: MoviesGetKeywordsKeyword[]; +} + +export interface MoviesGetKeywordsKeyword { + id: number; + name: string; +} diff --git a/packages/core/src/types/v3/movies/get-latest.ts b/packages/core/src/types/v3/movies/get-latest.ts new file mode 100644 index 0000000..8222fb0 --- /dev/null +++ b/packages/core/src/types/v3/movies/get-latest.ts @@ -0,0 +1,36 @@ +export interface MoviesGetLatestResponse { + adult: boolean; + backdrop_path: null; + belongs_to_collection: null; + budget: number; + genres: MoviesGetLatestGenre[]; + homepage: string; + id: number; + imdb_id: string; + original_language: string; + original_title: string; + overview: string; + popularity: number; + poster_path: string; + production_companies: unknown[]; + production_countries: unknown[]; + release_date: string; + revenue: number; + runtime: number; + spoken_languages: unknown[]; + status: string; + tagline: string; + title: string; + video: boolean; + vote_average: number; + vote_count: number; +} + +export interface MoviesGetLatestGenre { + id: number; + name: string; +} + +export interface MoviesGetLatestParams { + language?: string; +} diff --git a/packages/core/src/types/v3/movies/get-lists.ts b/packages/core/src/types/v3/movies/get-lists.ts new file mode 100644 index 0000000..263771c --- /dev/null +++ b/packages/core/src/types/v3/movies/get-lists.ts @@ -0,0 +1,23 @@ +export interface MoviesGetListsResponse { + id: number; + page: number; + results: MoviesGetListsResult[]; + total_pages: number; + total_results: number; +} + +export interface MoviesGetListsResult { + description: string; + favorite_count: number; + id: number; + item_count: number; + iso_639_1: string; + list_type: string; + name: string; + poster_path: null | string; +} + +export interface MoviesGetListsParams { + language?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/movies/get-now-playing.ts b/packages/core/src/types/v3/movies/get-now-playing.ts new file mode 100644 index 0000000..04111ab --- /dev/null +++ b/packages/core/src/types/v3/movies/get-now-playing.ts @@ -0,0 +1,35 @@ +export interface MoviesGetNowPlayingResponse { + page: number; + results: MoviesGetNowPlayingResult[]; + dates: MoviesGetNowPlayingDates; + total_pages: number; + total_results: number; +} + +export interface MoviesGetNowPlayingDates { + maximum: string; + minimum: string; +} + +export interface MoviesGetNowPlayingResult { + poster_path: string; + adult: boolean; + overview: string; + release_date: string; + genre_ids: number[]; + id: number; + original_title: string; + original_language: string; + title: string; + backdrop_path: string; + popularity: number; + vote_count: number; + video: boolean; + vote_average: number; +} + +export interface MoviesGetNowPlayingParams { + language?: string; + page?: number; + region?: string; +} diff --git a/packages/core/src/types/v3/movies/get-popular.ts b/packages/core/src/types/v3/movies/get-popular.ts new file mode 100644 index 0000000..2782c2d --- /dev/null +++ b/packages/core/src/types/v3/movies/get-popular.ts @@ -0,0 +1,29 @@ +export interface MoviesGetPopularResponse { + page: number; + results: MoviesGetPopularResult[]; + total_results: number; + total_pages: number; +} + +export interface MoviesGetPopularResult { + poster_path: string; + adult: boolean; + overview: string; + release_date: string; + genre_ids: number[]; + id: number; + original_title: string; + original_language: string; + title: string; + backdrop_path: string; + popularity: number; + vote_count: number; + video: boolean; + vote_average: number; +} + +export interface MoviesGetPopularParams { + language?: string; + page?: number; + region?: string; +} diff --git a/packages/core/src/types/v3/movies/get-recommendations.ts b/packages/core/src/types/v3/movies/get-recommendations.ts new file mode 100644 index 0000000..c3d4ebe --- /dev/null +++ b/packages/core/src/types/v3/movies/get-recommendations.ts @@ -0,0 +1,28 @@ +export interface MoviesGetRecommendationsResponse { + page: number; + results: MoviesGetRecommendationsResult[]; + total_pages: number; + total_results: number; +} + +export interface MoviesGetRecommendationsResult { + adult: boolean; + backdrop_path: null; + genre_ids: number[]; + id: number; + original_language: string; + original_title: string; + overview: string; + release_date: string; + poster_path: null; + popularity: number; + title: string; + video: boolean; + vote_average: number; + vote_count: number; +} + +export interface MoviesGetRecommendationsParams { + language?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/movies/get-release-dates.ts b/packages/core/src/types/v3/movies/get-release-dates.ts new file mode 100644 index 0000000..9fcef35 --- /dev/null +++ b/packages/core/src/types/v3/movies/get-release-dates.ts @@ -0,0 +1,17 @@ +export interface MoviesGetReleaseDatesResponse { + id: number; + results: MoviesGetReleaseDatesResult[]; +} + +export interface MoviesGetReleaseDatesResult { + iso_3166_1: string; + release_dates: MoviesGetReleaseDatesReleaseDate[]; +} + +export interface MoviesGetReleaseDatesReleaseDate { + certification: string; + iso_639_1: string; + release_date: string; + type: number; + note?: string; +} diff --git a/packages/core/src/types/v3/movies/get-reviews.ts b/packages/core/src/types/v3/movies/get-reviews.ts new file mode 100644 index 0000000..644b461 --- /dev/null +++ b/packages/core/src/types/v3/movies/get-reviews.ts @@ -0,0 +1,29 @@ +export interface MoviesGetReviewsResponse { + id: number; + page: number; + results: MoviesGetReviewsResult[]; + total_pages: number; + total_results: number; +} + +export interface MoviesGetReviewsResult { + author: string; + author_details: MoviesGetReviewsAuthorDetails; + content: string; + created_at: string; + id: string; + updated_at: string; + url: string; +} + +export interface MoviesGetReviewsAuthorDetails { + name: string; + username: string; + avatar_path: null | string; + rating: number | null; +} + +export interface MoviesGetReviewsParams { + language?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/movies/get-similar-movies.ts b/packages/core/src/types/v3/movies/get-similar-movies.ts new file mode 100644 index 0000000..3fa556e --- /dev/null +++ b/packages/core/src/types/v3/movies/get-similar-movies.ts @@ -0,0 +1,28 @@ +export interface MoviesGetSimilarMoviesResponse { + page: number; + results: MoviesGetSimilarMoviesResult[]; + total_pages: number; + total_results: number; +} + +export interface MoviesGetSimilarMoviesResult { + adult: boolean; + backdrop_path: null; + genre_ids: number[]; + id: number; + original_language: string; + original_title: string; + overview: string; + release_date: string; + poster_path: null; + popularity: number; + title: string; + video: boolean; + vote_average: number; + vote_count: number; +} + +export interface MoviesGetSimilarMoviesParams { + language?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/movies/get-top-rated.ts b/packages/core/src/types/v3/movies/get-top-rated.ts new file mode 100644 index 0000000..0d3fd2a --- /dev/null +++ b/packages/core/src/types/v3/movies/get-top-rated.ts @@ -0,0 +1,29 @@ +export interface MoviesGetTopRatedResponse { + page: number; + results: MoviesGetTopRatedResult[]; + total_results: number; + total_pages: number; +} + +export interface MoviesGetTopRatedResult { + poster_path: string; + adult: boolean; + overview: string; + release_date: string; + genre_ids: number[]; + id: number; + original_title: string; + original_language: string; + title: string; + backdrop_path: string; + popularity: number; + vote_count: number; + video: boolean; + vote_average: number; +} + +export interface MoviesGetTopRatedParams { + language?: string; + page?: number; + region?: string; +} diff --git a/packages/core/src/types/v3/movies/get-translations.ts b/packages/core/src/types/v3/movies/get-translations.ts new file mode 100644 index 0000000..e2d3226 --- /dev/null +++ b/packages/core/src/types/v3/movies/get-translations.ts @@ -0,0 +1,18 @@ +export interface MoviesGetTranslationsResponse { + id: number; + translations: MoviesGetTranslationsTranslation[]; +} + +export interface MoviesGetTranslationsTranslation { + iso_3166_1: string; + iso_639_1: string; + name: string; + english_name: string; + data: MoviesGetTranslationsData; +} + +export interface MoviesGetTranslationsData { + title: string; + overview: string; + homepage: string; +} diff --git a/packages/core/src/types/v3/movies/get-upcoming.ts b/packages/core/src/types/v3/movies/get-upcoming.ts new file mode 100644 index 0000000..34f8972 --- /dev/null +++ b/packages/core/src/types/v3/movies/get-upcoming.ts @@ -0,0 +1,29 @@ +export interface MoviesGetUpcomingResponse { + page: number; + results: MoviesGetUpcomingResult[]; + total_results: number; + total_pages: number; +} + +export interface MoviesGetUpcomingResult { + poster_path: string; + adult: boolean; + overview: string; + release_date: string; + genre_ids: number[]; + id: number; + original_title: string; + original_language: string; + title: string; + backdrop_path: string; + popularity: number; + vote_count: number; + video: boolean; + vote_average: number; +} + +export interface MoviesGetUpcomingParams { + language?: string; + page?: number; + region?: string; +} diff --git a/packages/core/src/types/v3/movies/get-videos.ts b/packages/core/src/types/v3/movies/get-videos.ts new file mode 100644 index 0000000..d1c565f --- /dev/null +++ b/packages/core/src/types/v3/movies/get-videos.ts @@ -0,0 +1,21 @@ +export interface MoviesGetVideosResponse { + id: number; + results: MoviesGetVideosResult[]; +} + +export interface MoviesGetVideosResult { + iso_639_1: string; + iso_3166_1: string; + name: string; + key: string; + site: string; + size: number; + type: string; + official: boolean; + published_at: string; + id: string; +} + +export interface MoviesGetVideosParams { + language?: string; +} diff --git a/packages/core/src/types/v3/movies/get-watch-providers.ts b/packages/core/src/types/v3/movies/get-watch-providers.ts new file mode 100644 index 0000000..eeeda2b --- /dev/null +++ b/packages/core/src/types/v3/movies/get-watch-providers.ts @@ -0,0 +1,27 @@ +export interface MoviesGetWatchProvidersResponse { + id: number; + results: MoviesGetWatchProvidersResults; +} + +export interface MoviesGetWatchProvidersResults { + [key: string]: MoviesGetWatchProvidersAr | MoviesGetWatchProvidersRo; +} + +export interface MoviesGetWatchProvidersAr { + link: string; + flatrate?: MoviesGetWatchProvidersBuy[]; + rent?: MoviesGetWatchProvidersBuy[]; + buy: MoviesGetWatchProvidersBuy[]; +} + +export interface MoviesGetWatchProvidersBuy { + display_priority: number; + logo_path: string; + provider_id: number; + provider_name: string; +} + +export interface MoviesGetWatchProvidersRo { + link: string; + flatrate: MoviesGetWatchProvidersBuy[]; +} diff --git a/packages/core/src/types/v3/movies/index.ts b/packages/core/src/types/v3/movies/index.ts new file mode 100644 index 0000000..5793e92 --- /dev/null +++ b/packages/core/src/types/v3/movies/index.ts @@ -0,0 +1,24 @@ +export * from "./delete-rating"; +export * from "./get-account-states"; +export * from "./get-alternative-titles"; +export * from "./get-changes"; +export * from "./get-credits"; +export * from "./get-details"; +export * from "./get-external-ids"; +export * from "./get-images"; +export * from "./get-keywords"; +export * from "./get-latest"; +export * from "./get-lists"; +export * from "./get-now-playing"; +export * from "./get-popular"; +export * from "./get-recommendations"; +export * from "./get-release-dates"; +export * from "./get-release-dates"; +export * from "./get-reviews"; +export * from "./get-similar-movies"; +export * from "./get-top-rated"; +export * from "./get-translations"; +export * from "./get-upcoming"; +export * from "./get-videos"; +export * from "./get-watch-providers"; +export * from "./rate-movie"; diff --git a/packages/core/src/types/v3/movies/rate-movie.ts b/packages/core/src/types/v3/movies/rate-movie.ts new file mode 100644 index 0000000..24968f9 --- /dev/null +++ b/packages/core/src/types/v3/movies/rate-movie.ts @@ -0,0 +1,13 @@ +export interface MoviesRateMovieResponse { + status_code: number; + status_message: string; +} + +export interface MoviesRateMovieParams { + guest_session_id?: string; + session_id?: string; +} + +export interface MoviesRateMovieBody { + value: number; +} diff --git a/packages/core/src/types/v3/networks/get-alternative-names.ts b/packages/core/src/types/v3/networks/get-alternative-names.ts new file mode 100644 index 0000000..c105c00 --- /dev/null +++ b/packages/core/src/types/v3/networks/get-alternative-names.ts @@ -0,0 +1,9 @@ +export interface NetworksGetAlternativeNamesResponse { + id: number; + results: NetworksGetAlternativeNamesResult[]; +} + +export interface NetworksGetAlternativeNamesResult { + name: string; + type: string; +} diff --git a/packages/core/src/types/v3/networks/get-details.ts b/packages/core/src/types/v3/networks/get-details.ts new file mode 100644 index 0000000..4582ee3 --- /dev/null +++ b/packages/core/src/types/v3/networks/get-details.ts @@ -0,0 +1,8 @@ +export interface NetworksGetDetailsResponse { + headquarters: string; + homepage: string; + id: number; + logo_path: string; + name: string; + origin_country: string; +} diff --git a/packages/core/src/types/v3/networks/get-images.ts b/packages/core/src/types/v3/networks/get-images.ts new file mode 100644 index 0000000..1df8a66 --- /dev/null +++ b/packages/core/src/types/v3/networks/get-images.ts @@ -0,0 +1,15 @@ +export interface NetworksGetImagesResponse { + id: number; + logos: NetworksGetImagesLogo[]; +} + +export interface NetworksGetImagesLogo { + aspect_ratio: number; + file_path: string; + height: number; + id: string; + file_type: string; + vote_average: number; + vote_count: number; + width: number; +} diff --git a/packages/core/src/types/v3/networks/index.ts b/packages/core/src/types/v3/networks/index.ts new file mode 100644 index 0000000..cc89a84 --- /dev/null +++ b/packages/core/src/types/v3/networks/index.ts @@ -0,0 +1,3 @@ +export * from "./get-alternative-names"; +export * from "./get-details"; +export * from "./get-images"; diff --git a/packages/core/src/types/v3/people/get-changes.ts b/packages/core/src/types/v3/people/get-changes.ts new file mode 100644 index 0000000..ff92a61 --- /dev/null +++ b/packages/core/src/types/v3/people/get-changes.ts @@ -0,0 +1,29 @@ +export interface PeopleGetChangesResponse { + changes: PeopleGetChangesChange[]; +} + +export interface PeopleGetChangesChange { + key: string; + items: PeopleGetChangesItem[]; +} + +export interface PeopleGetChangesItem { + id: string; + action: string; + time: string; + original_value: PeopleGetChangesOriginalValue; +} + +export interface PeopleGetChangesOriginalValue { + profile: PeopleGetChangesProfile; +} + +export interface PeopleGetChangesProfile { + file_path: string; +} + +export interface PeopleGetChangesParams { + end_date?: string; + page?: number; + start_date?: string; +} diff --git a/packages/core/src/types/v3/people/get-combined-credits.ts b/packages/core/src/types/v3/people/get-combined-credits.ts new file mode 100644 index 0000000..5babde7 --- /dev/null +++ b/packages/core/src/types/v3/people/get-combined-credits.ts @@ -0,0 +1,27 @@ +export interface PeopleGetCombinedCreditsResponse { + cast: PeopleGetCombinedCreditsCast[]; +} + +export interface PeopleGetCombinedCreditsCast { + id: number; + original_language: string; + episode_count: number; + overview: string; + origin_country: string[]; + original_name: string; + genre_ids: number[]; + name: string; + media_type: string; + poster_path: string; + first_air_date: string; + vote_average: number; + vote_count: number; + character: string; + backdrop_path: string; + popularity: number; + credit_id: string; +} + +export interface PeopleGetCombinedCreditsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/people/get-details.ts b/packages/core/src/types/v3/people/get-details.ts new file mode 100644 index 0000000..6d85cd9 --- /dev/null +++ b/packages/core/src/types/v3/people/get-details.ts @@ -0,0 +1,21 @@ +export interface PeopleGetDetailsResponse { + birthday: string; + known_for_department: string; + deathday: null; + id: number; + name: string; + also_known_as: string[]; + gender: number; + biography: string; + popularity: number; + place_of_birth: string; + profile_path: string; + adult: boolean; + imdb_id: string; + homepage: null; +} + +export interface PeopleGetDetailsParams { + language?: string; + append_to_response?: string; +} diff --git a/packages/core/src/types/v3/people/get-external-ids.ts b/packages/core/src/types/v3/people/get-external-ids.ts new file mode 100644 index 0000000..25a6854 --- /dev/null +++ b/packages/core/src/types/v3/people/get-external-ids.ts @@ -0,0 +1,14 @@ +export interface PeopleGetExternalIdsResponse { + imdb_id: string; + facebook_id: null | string; + freebase_mid: null | string; + freebase_id: null | string; + tvrage_id: null | number; + twitter_id: null | string; + id: number; + instagram_id: null | string; +} + +export interface PeopleGetExternalIdsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/people/get-images.ts b/packages/core/src/types/v3/people/get-images.ts new file mode 100644 index 0000000..a103289 --- /dev/null +++ b/packages/core/src/types/v3/people/get-images.ts @@ -0,0 +1,14 @@ +export interface PeopleGetImagesResponse { + id: number; + profiles: PeopleGetImagesProfile[]; +} + +export interface PeopleGetImagesProfile { + aspect_ratio: number; + file_path: string; + height: number; + iso_639_1: null; + vote_average: number; + vote_count: number; + width: number; +} diff --git a/packages/core/src/types/v3/people/get-latest.ts b/packages/core/src/types/v3/people/get-latest.ts new file mode 100644 index 0000000..ff53301 --- /dev/null +++ b/packages/core/src/types/v3/people/get-latest.ts @@ -0,0 +1,18 @@ +export interface PeopleGetLatestResponse { + adult: boolean; + also_known_as: object[]; + biography: null | string; + birthday: null | string; + deathday: null | string; + gender: number; + homepage: null | string; + id: number; + imdb_id: null | string; + place_of_birth: null | string; + popularity: number; + profile_path: null | string; +} + +export interface PeopleGetLatestParams { + language?: string; +} diff --git a/packages/core/src/types/v3/people/get-movie-credits.ts b/packages/core/src/types/v3/people/get-movie-credits.ts new file mode 100644 index 0000000..df146f8 --- /dev/null +++ b/packages/core/src/types/v3/people/get-movie-credits.ts @@ -0,0 +1,26 @@ +export interface PeopleGetMovieCreditsResponse { + cast: PeopleGetMovieCreditsCast[]; +} + +export interface PeopleGetMovieCreditsCast { + character: string; + credit_id: string; + release_date: string; + vote_count: number; + video: boolean; + adult: boolean; + vote_average: number; + title: string; + genre_ids: number[]; + original_language: string; + original_title: string; + popularity: number; + id: number; + backdrop_path: string; + overview: string; + poster_path: string; +} + +export interface PeopleGetMovieCreditsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/people/get-popular.ts b/packages/core/src/types/v3/people/get-popular.ts new file mode 100644 index 0000000..afa2372 --- /dev/null +++ b/packages/core/src/types/v3/people/get-popular.ts @@ -0,0 +1,42 @@ +export interface PeopleGetPopularResponse { + page: number; + results: PeopleGetPopularResult[]; + total_results: number; + total_pages: number; +} + +export interface PeopleGetPopularResult { + profile_path: string; + adult: boolean; + id: number; + known_for: PeopleGetPopularKnownFor[]; + name: string; + popularity: number; +} + +export interface PeopleGetPopularKnownFor { + poster_path: string; + adult?: boolean; + overview: string; + release_date?: string; + original_title?: string; + genre_ids: number[]; + id: number; + media_type: string; + original_language: string; + title?: string; + backdrop_path: string; + popularity: number; + vote_count: number; + video?: boolean; + vote_average: number; + first_air_date?: string; + origin_country?: string[]; + name?: string; + original_name?: string; +} + +export interface PeopleGetPopularParams { + language?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/people/get-tagged-images.ts b/packages/core/src/types/v3/people/get-tagged-images.ts new file mode 100644 index 0000000..842e7f3 --- /dev/null +++ b/packages/core/src/types/v3/people/get-tagged-images.ts @@ -0,0 +1,44 @@ +export interface PeopleGetTaggedImagesResponse { + id: number; + page: number; + results: PeopleGetTaggedImagesResult[]; + total_pages: number; + total_results: number; +} + +export interface PeopleGetTaggedImagesResult { + aspect_ratio: number; + file_path: string; + height: number; + id: string; + iso_639_1: null | string; + vote_average: number; + vote_count: number; + width: number; + image_type: string; + media: PeopleGetTaggedImagesMedia; + media_type: string; +} + +export interface PeopleGetTaggedImagesMedia { + adult: boolean; + backdrop_path: string; + genre_ids: number[]; + _id: string; + id: number; + original_language: string; + original_title: string; + overview: string; + release_date: string; + poster_path: string; + popularity: number; + title: string; + video: boolean; + vote_average: number; + vote_count: number; +} + +export interface PeopleGetTaggedImagesParams { + language?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/people/get-translations.ts b/packages/core/src/types/v3/people/get-translations.ts new file mode 100644 index 0000000..6f42d33 --- /dev/null +++ b/packages/core/src/types/v3/people/get-translations.ts @@ -0,0 +1,20 @@ +export interface PeopleGetTranslationsResponse { + translations: PeopleGetTranslationsTranslation[]; + id: number; +} + +export interface PeopleGetTranslationsTranslation { + iso_639_1: string; + iso_3166_1: string; + name: string; + data: PeopleGetTranslationsData; + english_name: string; +} + +export interface PeopleGetTranslationsData { + biography: string; +} + +export interface PeopleGetTranslationsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/people/get-tv-credits.ts b/packages/core/src/types/v3/people/get-tv-credits.ts new file mode 100644 index 0000000..4bde880 --- /dev/null +++ b/packages/core/src/types/v3/people/get-tv-credits.ts @@ -0,0 +1,26 @@ +export interface PeopleGetTvCreditsResponse { + cast: PeopleGetTvCreditsCast[]; +} + +export interface PeopleGetTvCreditsCast { + credit_id: string; + original_name: string; + id: number; + genre_ids: number[]; + character: string; + name: string; + poster_path: string; + vote_count: number; + vote_average: number; + popularity: number; + episode_count: number; + original_language: string; + first_air_date: string; + backdrop_path: string; + overview: string; + origin_country: string[]; +} + +export interface PeopleGetTvCreditsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/people/index.ts b/packages/core/src/types/v3/people/index.ts new file mode 100644 index 0000000..4c95888 --- /dev/null +++ b/packages/core/src/types/v3/people/index.ts @@ -0,0 +1,11 @@ +export * from "./get-changes"; +export * from "./get-combined-credits"; +export * from "./get-details"; +export * from "./get-external-ids"; +export * from "./get-images"; +export * from "./get-latest"; +export * from "./get-movie-credits"; +export * from "./get-popular"; +export * from "./get-tagged-images"; +export * from "./get-translations"; +export * from "./get-tv-credits"; diff --git a/packages/core/src/types/v3/reviews/get-details.ts b/packages/core/src/types/v3/reviews/get-details.ts new file mode 100644 index 0000000..6ddde70 --- /dev/null +++ b/packages/core/src/types/v3/reviews/get-details.ts @@ -0,0 +1,20 @@ +export interface ReviewsGetDetailsResponse { + id: string; + author: string; + author_details: ReviewsGetDetailsAuthorDetails; + content: string; + created_at: string; + iso_639_1: string; + media_id: number; + media_title: string; + media_type: string; + updated_at: string; + url: string; +} + +export interface ReviewsGetDetailsAuthorDetails { + name: string; + username: string; + avatar_path: string; + rating: number; +} diff --git a/packages/core/src/types/v3/reviews/index.ts b/packages/core/src/types/v3/reviews/index.ts new file mode 100644 index 0000000..1f2c4dd --- /dev/null +++ b/packages/core/src/types/v3/reviews/index.ts @@ -0,0 +1 @@ +export * from "./get-details"; diff --git a/packages/core/src/types/v3/search/index.ts b/packages/core/src/types/v3/search/index.ts new file mode 100644 index 0000000..4ba1eab --- /dev/null +++ b/packages/core/src/types/v3/search/index.ts @@ -0,0 +1,7 @@ +export * from "./multi-search"; +export * from "./search-collections"; +export * from "./search-companies"; +export * from "./search-keywords"; +export * from "./search-movies"; +export * from "./search-people"; +export * from "./search-tvshows"; diff --git a/packages/core/src/types/v3/search/multi-search.ts b/packages/core/src/types/v3/search/multi-search.ts new file mode 100644 index 0000000..507b918 --- /dev/null +++ b/packages/core/src/types/v3/search/multi-search.ts @@ -0,0 +1,38 @@ +export interface SearchMultiSearchResponse { + page: number; + results: SearchMultiSearchResult[]; + total_results: number; + total_pages: number; +} + +export interface SearchMultiSearchResult { + poster_path?: null | string; + popularity: number; + id: number; + overview?: string; + backdrop_path?: null | string; + vote_average?: number; + media_type: string; + first_air_date?: string; + origin_country?: string[]; + genre_ids?: number[]; + original_language?: string; + vote_count?: number; + name?: string; + original_name?: string; + adult?: boolean; + release_date?: string; + original_title?: string; + title?: string; + video?: boolean; + profile_path?: null | string; + known_for?: SearchMultiSearchResult[]; +} + +export interface SearchMultiSearchParams { + query: string; + language?: string; + page?: number; + include_adult?: boolean; + region?: string; +} diff --git a/packages/core/src/types/v3/search/search-collections.ts b/packages/core/src/types/v3/search/search-collections.ts new file mode 100644 index 0000000..3021307 --- /dev/null +++ b/packages/core/src/types/v3/search/search-collections.ts @@ -0,0 +1,19 @@ +export interface SearchCollectionsResponse { + page: number; + results: SearchCollectionsResult[]; + total_pages: number; + total_results: number; +} + +export interface SearchCollectionsResult { + id: number; + name: string; + poster_path: null | string; + backdrop_path: null | string; +} + +export interface SearchCollectionsParams { + query: string; + page?: number; + language?: string; +} diff --git a/packages/core/src/types/v3/search/search-companies.ts b/packages/core/src/types/v3/search/search-companies.ts new file mode 100644 index 0000000..ce14336 --- /dev/null +++ b/packages/core/src/types/v3/search/search-companies.ts @@ -0,0 +1,17 @@ +export interface SearchCompaniesResponse { + page: number; + results: SearchCompaniesResult[]; + total_pages: number; + total_results: number; +} + +export interface SearchCompaniesResult { + id: number; + logo_path: null | string; + name: string; +} + +export interface SearchCompaniesParams { + query: string; + page?: number; +} diff --git a/packages/core/src/types/v3/search/search-keywords.ts b/packages/core/src/types/v3/search/search-keywords.ts new file mode 100644 index 0000000..f7b2638 --- /dev/null +++ b/packages/core/src/types/v3/search/search-keywords.ts @@ -0,0 +1,16 @@ +export interface SearchKeywordsResponse { + page: number; + results: SearchKeywordsResult[]; + total_pages: number; + total_results: number; +} + +export interface SearchKeywordsResult { + id: number; + name: string; +} + +export interface SearchKeywordsParams { + query: string; + page?: number; +} diff --git a/packages/core/src/types/v3/search/search-movies.ts b/packages/core/src/types/v3/search/search-movies.ts new file mode 100644 index 0000000..a1bf882 --- /dev/null +++ b/packages/core/src/types/v3/search/search-movies.ts @@ -0,0 +1,33 @@ +export interface SearchMoviesResponse { + page: number; + results: SearchMoviesResult[]; + total_results: number; + total_pages: number; +} + +export interface SearchMoviesResult { + poster_path: null | string; + adult: boolean; + overview: string; + release_date: string; + genre_ids: number[]; + id: number; + original_title: string; + original_language: string; + title: string; + backdrop_path: null | string; + popularity: number; + vote_count: number; + video: boolean; + vote_average: number; +} + +export interface SearchMoviesParams { + query: string; + language?: string; + page?: number; + include_adult?: boolean; + region?: string; + year?: number; + primary_release_year?: number; +} diff --git a/packages/core/src/types/v3/search/search-people.ts b/packages/core/src/types/v3/search/search-people.ts new file mode 100644 index 0000000..114f7c6 --- /dev/null +++ b/packages/core/src/types/v3/search/search-people.ts @@ -0,0 +1,45 @@ +export interface SearchPeopleResponse { + page: number; + results: SearchPeopleResult[]; + total_results: number; + total_pages: number; +} + +export interface SearchPeopleResult { + profile_path: null | string; + adult: boolean; + id: number; + known_for: SearchPeopleKnownFor[]; + name: string; + popularity: number; +} + +export interface SearchPeopleKnownFor { + poster_path: string; + adult?: boolean; + overview: string; + release_date?: string; + original_title?: string; + genre_ids: number[]; + id: number; + media_type: string; + original_language: string; + title?: string; + backdrop_path: null | string; + popularity: number; + vote_count: number; + video?: boolean; + vote_average: number; + first_air_date?: string; + origin_country?: string[]; + name?: string; + original_name?: string; +} + +export interface SearchPeopleParams { + query: string; + language?: string; + page?: number; + include_adult?: boolean; + region?: string; +} diff --git a/packages/core/src/types/v3/search/search-tvshows.ts b/packages/core/src/types/v3/search/search-tvshows.ts new file mode 100644 index 0000000..6520ec6 --- /dev/null +++ b/packages/core/src/types/v3/search/search-tvshows.ts @@ -0,0 +1,30 @@ +export interface SearchTVShowsResponse { + page: number; + results: SearchTVShowsResult[]; + total_results: number; + total_pages: number; +} + +export interface SearchTVShowsResult { + poster_path: string; + popularity: number; + id: number; + backdrop_path: string; + vote_average: number; + overview: string; + first_air_date: string; + origin_country: string[]; + genre_ids: number[]; + original_language: string; + vote_count: number; + name: string; + original_name: string; +} + +export interface SearchTVShowsParams { + query: string; + language?: string; + page?: number; + include_adult?: boolean; + first_air_date_year?: number; +} diff --git a/packages/core/src/types/v3/trending/get-trending.ts b/packages/core/src/types/v3/trending/get-trending.ts new file mode 100644 index 0000000..d0bebd2 --- /dev/null +++ b/packages/core/src/types/v3/trending/get-trending.ts @@ -0,0 +1,27 @@ +export interface TrendingGetTrendingResponse { + page: number; + results: TrendingGetTrendingResult[]; + total_pages: number; + total_results: number; +} + +export interface TrendingGetTrendingResult { + adult?: boolean; + backdrop_path: string; + genre_ids: number[]; + id: number; + original_language: string; + original_title?: string; + overview: string; + poster_path: string; + release_date?: string; + title?: string; + video?: boolean; + vote_average: number; + vote_count: number; + popularity: number; + first_air_date?: string; + name?: string; + origin_country?: string[]; + original_name?: string; +} diff --git a/packages/core/src/types/v3/trending/index.ts b/packages/core/src/types/v3/trending/index.ts new file mode 100644 index 0000000..daac0c4 --- /dev/null +++ b/packages/core/src/types/v3/trending/index.ts @@ -0,0 +1 @@ +export * from "./get-trending"; diff --git a/packages/core/src/types/v3/tv-episode-groups/get-details.ts b/packages/core/src/types/v3/tv-episode-groups/get-details.ts new file mode 100644 index 0000000..e464729 --- /dev/null +++ b/packages/core/src/types/v3/tv-episode-groups/get-details.ts @@ -0,0 +1,44 @@ +export interface TVEpisodeGroupsGetDetailsResponse { + description: string; + episode_count: number; + group_count: number; + groups: TVEpisodeGroupsGetDetailsGroup[]; + id: string; + name: string; + network: TVEpisodeGroupsGetDetailsNetwork; + type: number; +} + +export interface TVEpisodeGroupsGetDetailsGroup { + id: string; + name: string; + order: number; + episodes: TVEpisodeGroupsGetDetailsEpisode[]; + locked: boolean; +} + +export interface TVEpisodeGroupsGetDetailsEpisode { + air_date: string; + episode_number: number; + id: number; + name: string; + overview: string; + production_code: null; + season_number: number; + show_id: number; + still_path: null | string; + vote_average: number; + vote_count: number; + order: number; +} + +export interface TVEpisodeGroupsGetDetailsNetwork { + id: number; + logo_path: string; + name: string; + origin_country: string; +} + +export interface TVEpisodeGroupsGetDetailsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv-episode-groups/index.ts b/packages/core/src/types/v3/tv-episode-groups/index.ts new file mode 100644 index 0000000..1f2c4dd --- /dev/null +++ b/packages/core/src/types/v3/tv-episode-groups/index.ts @@ -0,0 +1 @@ +export * from "./get-details"; diff --git a/packages/core/src/types/v3/tv-episodes/delete-rating.ts b/packages/core/src/types/v3/tv-episodes/delete-rating.ts new file mode 100644 index 0000000..d6223c8 --- /dev/null +++ b/packages/core/src/types/v3/tv-episodes/delete-rating.ts @@ -0,0 +1,9 @@ +export interface TVEpisodesDeleteRatingResponse { + status_code: number; + status_message: string; +} + +export interface TVEpisodesDeleteRatingParams { + guest_session_id?: string; + session_id?: string; +} diff --git a/packages/core/src/types/v3/tv-episodes/get-account-states.ts b/packages/core/src/types/v3/tv-episodes/get-account-states.ts new file mode 100644 index 0000000..99bc029 --- /dev/null +++ b/packages/core/src/types/v3/tv-episodes/get-account-states.ts @@ -0,0 +1,14 @@ +export interface TVEpisodesGetAccountStatesResponse { + id: number; + rated: boolean | TVEpisodesGetAccountStatesRatedClass; +} + +export interface TVEpisodesGetAccountStatesRatedClass { + value: number; +} + +export interface TVEpisodesGetAccountStatesParams { + language?: string; + guest_session_id?: string; + session_id?: string; +} diff --git a/packages/core/src/types/v3/tv-episodes/get-changes.ts b/packages/core/src/types/v3/tv-episodes/get-changes.ts new file mode 100644 index 0000000..4b0594b --- /dev/null +++ b/packages/core/src/types/v3/tv-episodes/get-changes.ts @@ -0,0 +1,23 @@ +export interface TVEpisodesGetChangesResponse { + changes: TVEpisodesGetChangesChange[]; +} + +export interface TVEpisodesGetChangesChange { + key: string; + items: TVEpisodesGetChangesItem[]; +} + +export interface TVEpisodesGetChangesItem { + id: string; + action: string; + time: string; + value: string; + iso_639_1?: string; + original_value?: string; +} + +export interface TVEpisodesGetChangesParams { + start_date?: string; + end_date?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/tv-episodes/get-credits.ts b/packages/core/src/types/v3/tv-episodes/get-credits.ts new file mode 100644 index 0000000..1faedf6 --- /dev/null +++ b/packages/core/src/types/v3/tv-episodes/get-credits.ts @@ -0,0 +1,27 @@ +export interface TVEpisodesGetCreditsResponse { + cast: TVEpisodesGetCreditsCast[]; + crew: TVEpisodesGetCreditsCast[]; + guest_stars: TVEpisodesGetCreditsCast[]; + id: number; +} + +export interface TVEpisodesGetCreditsCast { + adult: boolean; + gender: number; + id: number; + known_for_department: string; + name: string; + original_name: string; + popularity: number; + profile_path: null | string; + character?: string; + credit_id: string; + order?: number; + department?: string; + job?: string; + character_name?: string; +} + +export interface TVEpisodesGetCreditsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv-episodes/get-details.ts b/packages/core/src/types/v3/tv-episodes/get-details.ts new file mode 100644 index 0000000..64beabe --- /dev/null +++ b/packages/core/src/types/v3/tv-episodes/get-details.ts @@ -0,0 +1,37 @@ +export interface TVEpisodesGetDetailsResponse { + air_date: string; + crew: TVEpisodesGetDetailsCrew[]; + episode_number: number; + guest_stars: TVEpisodesGetDetailsGuestStar[]; + name: string; + overview: string; + id: number; + production_code: string; + season_number: number; + still_path: string; + vote_average: number; + vote_count: number; +} + +export interface TVEpisodesGetDetailsCrew { + id: number; + credit_id: string; + name: string; + department: string; + job: string; + profile_path: null | string; +} + +export interface TVEpisodesGetDetailsGuestStar { + id: number; + name: string; + credit_id: string; + character: string; + order: number; + profile_path: string; +} + +export interface TVEpisodesGetDetailsParams { + language?: string; + append_to_response?: string; +} diff --git a/packages/core/src/types/v3/tv-episodes/get-external-ids.ts b/packages/core/src/types/v3/tv-episodes/get-external-ids.ts new file mode 100644 index 0000000..6e10a94 --- /dev/null +++ b/packages/core/src/types/v3/tv-episodes/get-external-ids.ts @@ -0,0 +1,8 @@ +export interface TVEpisodesGetExternalIDsResponse { + id: number; + imdb_id?: null | string; + freebase_mid?: null | string; + freebase_id?: null | string; + tvdb_id?: null | number; + tvrage_id?: null | number; +} diff --git a/packages/core/src/types/v3/tv-episodes/get-images.ts b/packages/core/src/types/v3/tv-episodes/get-images.ts new file mode 100644 index 0000000..26529ff --- /dev/null +++ b/packages/core/src/types/v3/tv-episodes/get-images.ts @@ -0,0 +1,14 @@ +export interface TVEpisodesGetImagesResponse { + id: number; + stills: TVEpisodesGetImagesStill[]; +} + +export interface TVEpisodesGetImagesStill { + aspect_ratio: number; + file_path: string; + height: number; + iso_639_1: null | string; + vote_average: number; + vote_count: number; + width: number; +} diff --git a/packages/core/src/types/v3/tv-episodes/get-translations.ts b/packages/core/src/types/v3/tv-episodes/get-translations.ts new file mode 100644 index 0000000..8d06b52 --- /dev/null +++ b/packages/core/src/types/v3/tv-episodes/get-translations.ts @@ -0,0 +1,17 @@ +export interface TVEpisodesGetTranslationsResponse { + id: number; + translations: TVEpisodesGetTranslationsTranslation[]; +} + +export interface TVEpisodesGetTranslationsTranslation { + iso_3166_1: string; + iso_639_1: string; + name: string; + english_name: string; + data: TVEpisodesGetTranslationsData; +} + +export interface TVEpisodesGetTranslationsData { + name: string; + overview: string; +} diff --git a/packages/core/src/types/v3/tv-episodes/get-videos.ts b/packages/core/src/types/v3/tv-episodes/get-videos.ts new file mode 100644 index 0000000..f8d0cb3 --- /dev/null +++ b/packages/core/src/types/v3/tv-episodes/get-videos.ts @@ -0,0 +1,21 @@ +export interface TVEpisodesGetVideosResponse { + id: number; + results: TVEpisodesGetVideosResult[]; +} + +export interface TVEpisodesGetVideosResult { + iso_639_1: string; + iso_3166_1: string; + name: string; + key: string; + published_at: string; + site: string; + size: number; + type: string; + official: boolean; + id: string; +} + +export interface TVEpisodesGetVideosParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv-episodes/index.ts b/packages/core/src/types/v3/tv-episodes/index.ts new file mode 100644 index 0000000..8d2bd9f --- /dev/null +++ b/packages/core/src/types/v3/tv-episodes/index.ts @@ -0,0 +1,10 @@ +export * from "./delete-rating"; +export * from "./get-account-states"; +export * from "./get-changes"; +export * from "./get-credits"; +export * from "./get-details"; +export * from "./get-external-ids"; +export * from "./get-images"; +export * from "./get-translations"; +export * from "./get-videos"; +export * from "./rate-tv-episode"; diff --git a/packages/core/src/types/v3/tv-episodes/rate-tv-episode.ts b/packages/core/src/types/v3/tv-episodes/rate-tv-episode.ts new file mode 100644 index 0000000..14a5774 --- /dev/null +++ b/packages/core/src/types/v3/tv-episodes/rate-tv-episode.ts @@ -0,0 +1,13 @@ +export interface TVEpisodesRateTVEpisodeResponse { + status_code: number; + status_message: string; +} + +export interface TVEpisodesRateTVEpisodeParams { + guest_session_id?: string; + session_id?: string; +} + +export interface TVEpisodesRateTVEpisodeBody { + value: number; +} diff --git a/packages/core/src/types/v3/tv-seasons/get-account-states.ts b/packages/core/src/types/v3/tv-seasons/get-account-states.ts new file mode 100644 index 0000000..1651243 --- /dev/null +++ b/packages/core/src/types/v3/tv-seasons/get-account-states.ts @@ -0,0 +1,20 @@ +export interface TVSeasonsGetAccountStatesResponse { + id: number; + results: TVSeasonsGetAccountStatesResult[]; +} + +export interface TVSeasonsGetAccountStatesResult { + id: number; + episode_number: number; + rated: boolean | TVSeasonsGetAccountStatesRatedClass; +} + +export interface TVSeasonsGetAccountStatesRatedClass { + value: number; +} + +export interface TVSeasonsGetAccountStatesParams { + language?: string; + guest_session_id?: string; + session_id?: string; +} diff --git a/packages/core/src/types/v3/tv-seasons/get-aggregate-credits.ts b/packages/core/src/types/v3/tv-seasons/get-aggregate-credits.ts new file mode 100644 index 0000000..8e64d88 --- /dev/null +++ b/packages/core/src/types/v3/tv-seasons/get-aggregate-credits.ts @@ -0,0 +1,37 @@ +export interface TVSeasonsGetAggregateCreditsResponse { + cast: TVSeasonsGetAggregateCreditsCast[]; + crew: TVSeasonsGetAggregateCreditsCast[]; + id: number; +} + +export interface TVSeasonsGetAggregateCreditsCast { + adult: boolean; + gender: number; + id: number; + known_for_department: string; + name: string; + original_name: string; + popularity: number; + profile_path: null | string; + roles?: TVSeasonsGetAggregateCreditsRole[]; + total_episode_count: number; + order?: number; + jobs?: TVSeasonsGetAggregateCreditsJob[]; + department?: string; +} + +export interface TVSeasonsGetAggregateCreditsJob { + credit_id: string; + job: string; + episode_count: number; +} + +export interface TVSeasonsGetAggregateCreditsRole { + credit_id: string; + character: string; + episode_count: number; +} + +export interface TVSeasonsGetAggregateCreditsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv-seasons/get-changes.ts b/packages/core/src/types/v3/tv-seasons/get-changes.ts new file mode 100644 index 0000000..2dbd009 --- /dev/null +++ b/packages/core/src/types/v3/tv-seasons/get-changes.ts @@ -0,0 +1,28 @@ +export interface TVSeasonsGetChangesResponse { + changes: TVSeasonsGetChangesChange[]; +} + +export interface TVSeasonsGetChangesChange { + key: string; + items: TVSeasonsGetChangesItem[]; +} + +export interface TVSeasonsGetChangesItem { + id: string; + action: string; + time: string; + value?: TVSeasonsGetChangesValueClass | string; + original_value?: string; + iso_639_1?: string; +} + +export interface TVSeasonsGetChangesValueClass { + episode_id: number; + episode_number: number; +} + +export interface TVSeasonsGetChangesParams { + start_date?: string; + end_date?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/tv-seasons/get-credits.ts b/packages/core/src/types/v3/tv-seasons/get-credits.ts new file mode 100644 index 0000000..b508792 --- /dev/null +++ b/packages/core/src/types/v3/tv-seasons/get-credits.ts @@ -0,0 +1,25 @@ +export interface TVSeasonsGetCreditsResponse { + cast: TVSeasonsGetCreditsCast[]; + crew: TVSeasonsGetCreditsCast[]; + id: number; +} + +export interface TVSeasonsGetCreditsCast { + adult: boolean; + gender: number; + id: number; + known_for_department: string; + name: string; + original_name: string; + popularity: number; + profile_path: null | string; + character?: string; + credit_id: string; + order?: number; + department?: string; + job?: string; +} + +export interface TVSeasonsGetCreditsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv-seasons/get-details.ts b/packages/core/src/types/v3/tv-seasons/get-details.ts new file mode 100644 index 0000000..006476d --- /dev/null +++ b/packages/core/src/types/v3/tv-seasons/get-details.ts @@ -0,0 +1,46 @@ +export interface TVSeasonsGetDetailsResponse { + _id: string; + air_date: string; + episodes: TVSeasonsGetDetailsEpisode[]; + name: string; + overview: string; + id: number; + poster_path: string; + season_number: number; +} + +export interface TVSeasonsGetDetailsEpisode { + air_date: string; + episode_number: number; + crew: TVSeasonsGetDetailsCrew[]; + guest_stars: TVSeasonsGetDetailsCrew[]; + id: number; + name: string; + overview: string; + production_code: string; + season_number: number; + still_path: string; + vote_average: number; + vote_count: number; +} + +export interface TVSeasonsGetDetailsCrew { + department?: string; + job?: string; + credit_id: string; + adult: boolean; + gender: number; + id: number; + known_for_department: string; + name: string; + original_name: string; + popularity: number; + profile_path: null | string; + order?: number; + character?: string; +} + +export interface TVSeasonsGetDetailsParams { + language?: string; + append_to_response?: string; +} diff --git a/packages/core/src/types/v3/tv-seasons/get-external-ids.ts b/packages/core/src/types/v3/tv-seasons/get-external-ids.ts new file mode 100644 index 0000000..ea3da03 --- /dev/null +++ b/packages/core/src/types/v3/tv-seasons/get-external-ids.ts @@ -0,0 +1,11 @@ +export interface TVSeasonsGetExternalIDsResponse { + id: number; + freebase_mid?: null | string; + freebase_id?: null | string; + tvdb_id?: null | number; + tvrage_id?: null | number; +} + +export interface TVSeasonsGetExternalIDsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv-seasons/get-images.ts b/packages/core/src/types/v3/tv-seasons/get-images.ts new file mode 100644 index 0000000..0105094 --- /dev/null +++ b/packages/core/src/types/v3/tv-seasons/get-images.ts @@ -0,0 +1,18 @@ +export interface TVSeasonsGetImagesResponse { + id: number; + posters: TVSeasonsGetImagesPoster[]; +} + +export interface TVSeasonsGetImagesPoster { + aspect_ratio: number; + file_path: string; + height: number; + iso_639_1: string; + vote_average: number; + vote_count: number; + width: number; +} + +export interface TVSeasonsGetImagesParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv-seasons/get-translations.ts b/packages/core/src/types/v3/tv-seasons/get-translations.ts new file mode 100644 index 0000000..7ba1af2 --- /dev/null +++ b/packages/core/src/types/v3/tv-seasons/get-translations.ts @@ -0,0 +1,21 @@ +export interface TVSeasonsGetTranslationsResponse { + id: number; + translations: TVSeasonsGetTranslationsTranslation[]; +} + +export interface TVSeasonsGetTranslationsTranslation { + iso_3166_1: string; + iso_639_1: string; + name: string; + english_name: string; + data: TVSeasonsGetTranslationsData; +} + +export interface TVSeasonsGetTranslationsData { + name: string; + overview: string; +} + +export interface TVSeasonsGetTranslationsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv-seasons/get-videos.ts b/packages/core/src/types/v3/tv-seasons/get-videos.ts new file mode 100644 index 0000000..7eb7da3 --- /dev/null +++ b/packages/core/src/types/v3/tv-seasons/get-videos.ts @@ -0,0 +1,21 @@ +export interface TVSeasonsGetVideosResponse { + id: number; + results: TVSeasonsGetVideosResult[]; +} + +export interface TVSeasonsGetVideosResult { + iso_639_1: string; + iso_3166_1: string; + name: string; + key: string; + site: string; + size: number; + type: string; + official: boolean; + published_at: string; + id: string; +} + +export interface TVSeasonsGetVideosParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv-seasons/index.ts b/packages/core/src/types/v3/tv-seasons/index.ts new file mode 100644 index 0000000..9a81e09 --- /dev/null +++ b/packages/core/src/types/v3/tv-seasons/index.ts @@ -0,0 +1,9 @@ +export * from "./get-account-states"; +export * from "./get-aggregate-credits"; +export * from "./get-changes"; +export * from "./get-credits"; +export * from "./get-details"; +export * from "./get-external-ids"; +export * from "./get-images"; +export * from "./get-translations"; +export * from "./get-videos"; diff --git a/packages/core/src/types/v3/tv/delete-rating.ts b/packages/core/src/types/v3/tv/delete-rating.ts new file mode 100644 index 0000000..d92eb69 --- /dev/null +++ b/packages/core/src/types/v3/tv/delete-rating.ts @@ -0,0 +1,9 @@ +export interface TVDeleteRatingResponse { + status_code: number; + status_message: string; +} + +export interface TVDeleteRatingParams { + guest_session_id?: string; + session_id?: string; +} diff --git a/packages/core/src/types/v3/tv/get-account-states.ts b/packages/core/src/types/v3/tv/get-account-states.ts new file mode 100644 index 0000000..f24768c --- /dev/null +++ b/packages/core/src/types/v3/tv/get-account-states.ts @@ -0,0 +1,14 @@ +export interface TVGetAccountStatesResponse { + id: number; + favorite: boolean; + rated: { + value: number; + }; + watchlist: boolean; +} + +export interface TVGetAccountStatesParams { + language?: string; + guest_session_id?: string; + session_id?: string; +} diff --git a/packages/core/src/types/v3/tv/get-aggregate-credits.ts b/packages/core/src/types/v3/tv/get-aggregate-credits.ts new file mode 100644 index 0000000..6ff36c4 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-aggregate-credits.ts @@ -0,0 +1,27 @@ +export interface TVGetAggregateCreditsResponse { + cast: TVGetAggregateCreditsCast[]; +} + +export interface TVGetAggregateCreditsCast { + adult: boolean; + gender: number; + id: number; + known_for_department: string; + name: string; + original_name: string; + popularity: number; + profile_path: string; + roles: TVGetAggregateCreditsRole[]; + total_episode_count: number; + order: number; +} + +export interface TVGetAggregateCreditsRole { + credit_id: string; + character: string; + episode_count: number; +} + +export interface TVGetAggregateCreditsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv/get-alternative-titles.ts b/packages/core/src/types/v3/tv/get-alternative-titles.ts new file mode 100644 index 0000000..c5b4555 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-alternative-titles.ts @@ -0,0 +1,13 @@ +export interface TVGetAlternativeTitlesResponse { + id: number; + results: TVGetAlternativeTitlesResult[]; +} + +export interface TVGetAlternativeTitlesResult { + iso_3166_1: string; + title: string; +} + +export interface TVGetAlternativeTitlesParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv/get-changes.ts b/packages/core/src/types/v3/tv/get-changes.ts new file mode 100644 index 0000000..56c7254 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-changes.ts @@ -0,0 +1,54 @@ +export interface TVGetChangesResponse { + changes: TVGetChangesChange[]; +} + +export interface TVGetChangesChange { + key: string; + items: TVGetChangesItem[]; +} + +export interface TVGetChangesItem { + id: string; + action: string; + time: string; + value?: TVGetChangesValueClass | string; + iso_639_1?: string; + original_value?: TVGetChangesOriginalValueClass | string; +} + +export interface TVGetChangesOriginalValueClass { + id?: number; + name?: string; + credit_id?: string; + person_id?: number; + season_id?: number; + poster?: TVGetChangesPoster; + department?: string; + job?: string; +} + +export interface TVGetChangesPoster { + file_path: string; + iso_639_1?: null | string; +} + +export interface TVGetChangesValueClass { + season_id?: number; + season_number?: number; + id?: number; + name?: string; + add_to_every_season?: boolean; + character?: string; + credit_id?: string; + order?: number; + person_id?: number; + poster?: TVGetChangesPoster; + department?: string; + job?: string; +} + +export interface TVGetChangesParams { + start_date?: string; + end_date?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/tv/get-content-ratings.ts b/packages/core/src/types/v3/tv/get-content-ratings.ts new file mode 100644 index 0000000..9464eba --- /dev/null +++ b/packages/core/src/types/v3/tv/get-content-ratings.ts @@ -0,0 +1,13 @@ +export interface TVGetContentRatingsResponse { + results: TVGetContentRatingsResult[]; + id: number; +} + +export interface TVGetContentRatingsResult { + iso_3166_1: string; + rating: string; +} + +export interface TVGetContentRatingsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv/get-credits.ts b/packages/core/src/types/v3/tv/get-credits.ts new file mode 100644 index 0000000..2591142 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-credits.ts @@ -0,0 +1,21 @@ +export interface TVGetCreditsResponse { + cast: TVGetCreditsCast[]; +} + +export interface TVGetCreditsCast { + adult: boolean; + gender: number; + id: number; + known_for_department: string; + name: string; + original_name: string; + popularity: number; + profile_path: string; + character: string; + credit_id: string; + order: number; +} + +export interface TVGetCreditsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv/get-details.ts b/packages/core/src/types/v3/tv/get-details.ts new file mode 100644 index 0000000..e95295e --- /dev/null +++ b/packages/core/src/types/v3/tv/get-details.ts @@ -0,0 +1,92 @@ +export interface TVGetDetailsResponse { + backdrop_path: string; + created_by: TVGetDetailsCreatedBy[]; + episode_run_time: number[]; + first_air_date: string; + genres: TVGetDetailsGenre[]; + homepage: string; + id: number; + in_production: boolean; + languages: string[]; + last_air_date: string; + last_episode_to_air: TVGetDetailsLastEpisodeToAir; + name: string; + next_episode_to_air: null; + networks: TVGetDetailsNetwork[]; + number_of_episodes: number; + number_of_seasons: number; + origin_country: string[]; + original_language: string; + original_name: string; + overview: string; + popularity: number; + poster_path: string; + production_companies: TVGetDetailsNetwork[]; + production_countries: TVGetDetailsProductionCountry[]; + seasons: TVGetDetailsSeason[]; + spoken_languages: TVGetDetailsSpokenLanguage[]; + status: string; + tagline: string; + type: string; + vote_average: number; + vote_count: number; +} + +export interface TVGetDetailsCreatedBy { + id: number; + credit_id: string; + name: string; + gender: number; + profile_path: string; +} + +export interface TVGetDetailsGenre { + id: number; + name: string; +} + +export interface TVGetDetailsLastEpisodeToAir { + air_date: string; + episode_number: number; + id: number; + name: string; + overview: string; + production_code: string; + season_number: number; + still_path: string; + vote_average: number; + vote_count: number; +} + +export interface TVGetDetailsNetwork { + name: string; + id: number; + logo_path: null | string; + origin_country: string; +} + +export interface TVGetDetailsProductionCountry { + iso_3166_1: string; + name: string; +} + +export interface TVGetDetailsSeason { + air_date: string; + episode_count: number; + id: number; + name: string; + overview: string; + poster_path: string; + season_number: number; +} + +export interface TVGetDetailsSpokenLanguage { + english_name: string; + iso_639_1: string; + name: string; +} + +export interface TVGetDetailsParams { + language?: string; + append_to_response?: string; +} diff --git a/packages/core/src/types/v3/tv/get-episode-groups.ts b/packages/core/src/types/v3/tv/get-episode-groups.ts new file mode 100644 index 0000000..f7503f3 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-episode-groups.ts @@ -0,0 +1,25 @@ +export interface TVGetEpisodeGroupsResponse { + results: TVGetEpisodeGroupsResult[]; + id: number; +} + +export interface TVGetEpisodeGroupsResult { + description: string; + episode_count: number; + group_count: number; + id: string; + name: string; + network: TVGetEpisodeGroupsNetwork | null; + type: number; +} + +export interface TVGetEpisodeGroupsNetwork { + id: number; + logo_path: null | string; + name: string; + origin_country: string; +} + +export interface TVGetEpisodeGroupsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv/get-external-ids.ts b/packages/core/src/types/v3/tv/get-external-ids.ts new file mode 100644 index 0000000..5548166 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-external-ids.ts @@ -0,0 +1,14 @@ +export interface TVGetExternalIdsResponse { + imdb_id: null | string; + facebook_id: null | string; + freebase_mid: null | string; + freebase_id: null | string; + tvrage_id: null | number; + twitter_id: null | string; + id: number; + instagram_id: null | string; +} + +export interface TVGetExternalIdsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv/get-images.ts b/packages/core/src/types/v3/tv/get-images.ts new file mode 100644 index 0000000..098b09b --- /dev/null +++ b/packages/core/src/types/v3/tv/get-images.ts @@ -0,0 +1,19 @@ +export interface TVGetImagesResponse { + backdrops: TVGetImagesBackdrop[]; + id: number; + posters: TVGetImagesBackdrop[]; +} + +export interface TVGetImagesBackdrop { + aspect_ratio: number; + file_path: string; + height: number; + iso_639_1: null | string; + vote_average: number; + vote_count: number; + width: number; +} + +export interface TVGetImagesParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv/get-keywords.ts b/packages/core/src/types/v3/tv/get-keywords.ts new file mode 100644 index 0000000..f6125c6 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-keywords.ts @@ -0,0 +1,9 @@ +export interface TVGetKeywordsResponse { + id: number; + results: TVGetKeywordsResult[]; +} + +export interface TVGetKeywordsResult { + id: number; + name: string; +} diff --git a/packages/core/src/types/v3/tv/get-latest.ts b/packages/core/src/types/v3/tv/get-latest.ts new file mode 100644 index 0000000..5a6dfaf --- /dev/null +++ b/packages/core/src/types/v3/tv/get-latest.ts @@ -0,0 +1,45 @@ +export interface TVGetLatestResponse { + backdrop_path: null; + created_by: unknown[]; + episode_run_time: number[]; + first_air_date: string; + genres: TVGetLatestGenre[]; + homepage: string; + id: number; + in_production: boolean; + languages: string[]; + last_air_date: string; + name: string; + networks: TVGetLatestGenre[]; + number_of_episodes: number; + number_of_seasons: number; + origin_country: string[]; + original_language: string; + original_name: string; + overview: null; + popularity: number; + poster_path: null; + production_companies: unknown[]; + seasons: TVGetLatestSeason[]; + status: string; + type: string; + vote_average: number; + vote_count: number; +} + +export interface TVGetLatestGenre { + id: number; + name: string; +} + +export interface TVGetLatestSeason { + air_date: string; + episode_count: number; + id: number; + poster_path: null; + season_number: number; +} + +export interface TVGetLatestParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv/get-popular.ts b/packages/core/src/types/v3/tv/get-popular.ts new file mode 100644 index 0000000..208f9e0 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-popular.ts @@ -0,0 +1,27 @@ +export interface TVGetPopularResponse { + page: number; + results: TVGetPopularResult[]; + total_results: number; + total_pages: number; +} + +export interface TVGetPopularResult { + poster_path: string; + popularity: number; + id: number; + backdrop_path: string; + vote_average: number; + overview: string; + first_air_date: string; + origin_country: string[]; + genre_ids: number[]; + original_language: string; + vote_count: number; + name: string; + original_name: string; +} + +export interface TVGetPopularParams { + language?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/tv/get-recommendations.ts b/packages/core/src/types/v3/tv/get-recommendations.ts new file mode 100644 index 0000000..2487a86 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-recommendations.ts @@ -0,0 +1,27 @@ +export interface TVGetRecommendationsResponse { + page: number; + results: TVGetRecommendationsResult[]; + total_pages: number; + total_results: number; +} + +export interface TVGetRecommendationsResult { + backdrop_path: string; + first_air_date: string; + genre_ids: number[]; + id: number; + original_language: string; + original_name: string; + overview: string; + origin_country: string[]; + poster_path: string; + popularity: number; + name: string; + vote_average: number; + vote_count: number; +} + +export interface TVGetRecommendationsParams { + language?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/tv/get-reviews.ts b/packages/core/src/types/v3/tv/get-reviews.ts new file mode 100644 index 0000000..56820e7 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-reviews.ts @@ -0,0 +1,29 @@ +export interface TVGetReviewsResponse { + id: number; + page: number; + results: TVGetReviewsResult[]; + total_pages: number; + total_results: number; +} + +export interface TVGetReviewsResult { + author: string; + author_details: TVGetReviewsAuthorDetails; + content: string; + created_at: string; + id: string; + updated_at: string; + url: string; +} + +export interface TVGetReviewsAuthorDetails { + name: string; + username: string; + avatar_path: null | string; + rating: number; +} + +export interface TVGetReviewsParams { + language?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/tv/get-screened-theatrically.ts b/packages/core/src/types/v3/tv/get-screened-theatrically.ts new file mode 100644 index 0000000..3b741c9 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-screened-theatrically.ts @@ -0,0 +1,14 @@ +export interface TVGetScreenedTheatricallyResponse { + id: number; + results: TVGetScreenedTheatricallyResult[]; +} + +export interface TVGetScreenedTheatricallyResult { + id: number; + episode_number: number; + season_number: number; +} + +export interface TVGetScreenedTheatricallyParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv/get-similar-tvshows.ts b/packages/core/src/types/v3/tv/get-similar-tvshows.ts new file mode 100644 index 0000000..76d86b5 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-similar-tvshows.ts @@ -0,0 +1,27 @@ +export interface TVGetSimilarTVShowsResponse { + page: number; + results: TVGetSimilarTVShowsResult[]; + total_pages: number; + total_results: number; +} + +export interface TVGetSimilarTVShowsResult { + backdrop_path: string; + first_air_date: string; + genre_ids: number[]; + id: number; + original_language: string; + original_name: string; + overview: string; + origin_country: string[]; + poster_path: string; + popularity: number; + name: string; + vote_average: number; + vote_count: number; +} + +export interface TVGetSimilarTVShowsParams { + language?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/tv/get-top-rated.ts b/packages/core/src/types/v3/tv/get-top-rated.ts new file mode 100644 index 0000000..5262d2a --- /dev/null +++ b/packages/core/src/types/v3/tv/get-top-rated.ts @@ -0,0 +1,27 @@ +export interface TVGetTopRatedResponse { + page: number; + results: TVGetTopRatedResult[]; + total_results: number; + total_pages: number; +} + +export interface TVGetTopRatedResult { + poster_path: string; + popularity: number; + id: number; + backdrop_path: string; + vote_average: number; + overview: string; + first_air_date: string; + origin_country: string[]; + genre_ids: number[]; + original_language: string; + vote_count: number; + name: string; + original_name: string; +} + +export interface TVGetTopRatedParams { + language?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/tv/get-translations.ts b/packages/core/src/types/v3/tv/get-translations.ts new file mode 100644 index 0000000..d129f22 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-translations.ts @@ -0,0 +1,18 @@ +export interface TVGetTranslationsResponse { + id: number; + translations: TVGetTranslationsTranslation[]; +} + +export interface TVGetTranslationsTranslation { + iso_3166_1: string; + iso_639_1: string; + name: string; + english_name: string; + data: TVGetTranslationsData; +} + +export interface TVGetTranslationsData { + name: string; + overview: string; + homepage: string; +} diff --git a/packages/core/src/types/v3/tv/get-tv-airing-today.ts b/packages/core/src/types/v3/tv/get-tv-airing-today.ts new file mode 100644 index 0000000..85ea550 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-tv-airing-today.ts @@ -0,0 +1,27 @@ +export interface TVGetTVAiringTodayResponse { + page: number; + results: TVGetTVAiringTodayResult[]; + total_results: number; + total_pages: number; +} + +export interface TVGetTVAiringTodayResult { + poster_path: null | string; + popularity: number; + id: number; + backdrop_path: null | string; + vote_average: number; + overview: string; + first_air_date: string; + origin_country: string[]; + genre_ids: number[]; + original_language: string; + vote_count: number; + name: string; + original_name: string; +} + +export interface TVGetTVAiringTodayParams { + language?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/tv/get-tv-on-the-air.ts b/packages/core/src/types/v3/tv/get-tv-on-the-air.ts new file mode 100644 index 0000000..bc11e85 --- /dev/null +++ b/packages/core/src/types/v3/tv/get-tv-on-the-air.ts @@ -0,0 +1,27 @@ +export interface TVGetTVOnTheAirResponse { + page: number; + results: TVGetTVOnTheAirResult[]; + total_results: number; + total_pages: number; +} + +export interface TVGetTVOnTheAirResult { + poster_path: string; + popularity: number; + id: number; + backdrop_path: null | string; + vote_average: number; + overview: string; + first_air_date: string; + origin_country: string[]; + genre_ids: number[]; + original_language: string; + vote_count: number; + name: string; + original_name: string; +} + +export interface TVGetTVOnTheAirParams { + language?: string; + page?: number; +} diff --git a/packages/core/src/types/v3/tv/get-videos.ts b/packages/core/src/types/v3/tv/get-videos.ts new file mode 100644 index 0000000..6e4e72d --- /dev/null +++ b/packages/core/src/types/v3/tv/get-videos.ts @@ -0,0 +1,21 @@ +export interface TVGetVideosResponse { + id: number; + results: TVGetVideosResult[]; +} + +export interface TVGetVideosResult { + iso_639_1: string; + iso_3166_1: string; + name: string; + key: string; + site: string; + size: number; + type: string; + official: boolean; + published_at: string; + id: string; +} + +export interface TVGetVideosParams { + language?: string; +} diff --git a/packages/core/src/types/v3/tv/get-watch-providers.ts b/packages/core/src/types/v3/tv/get-watch-providers.ts new file mode 100644 index 0000000..6ad948d --- /dev/null +++ b/packages/core/src/types/v3/tv/get-watch-providers.ts @@ -0,0 +1,37 @@ +export interface TVGetWatchProvidersResponse { + id: number; + results: TVGetWatchProvidersResults; +} + +export interface TVGetWatchProvidersResults { + [key: string]: + | TVGetWatchProvidersAr + | TVGetWatchProvidersAt + | TVGetWatchProvidersRu; +} + +export interface TVGetWatchProvidersAr { + link: string; + flatrate: TVGetWatchProvidersFlatrate[]; +} + +export interface TVGetWatchProvidersFlatrate { + display_priority: number; + logo_path: string; + provider_id: number; + provider_name: string; +} + +export interface TVGetWatchProvidersAt { + link: string; + buy?: TVGetWatchProvidersFlatrate[]; + flatrate: TVGetWatchProvidersFlatrate[]; + ads?: TVGetWatchProvidersFlatrate[]; + rent?: TVGetWatchProvidersFlatrate[]; +} + +export interface TVGetWatchProvidersRu { + link: string; + flatrate: TVGetWatchProvidersFlatrate[]; + free: TVGetWatchProvidersFlatrate[]; +} diff --git a/packages/core/src/types/v3/tv/index.ts b/packages/core/src/types/v3/tv/index.ts new file mode 100644 index 0000000..ebe4825 --- /dev/null +++ b/packages/core/src/types/v3/tv/index.ts @@ -0,0 +1,25 @@ +export * from "./delete-rating"; +export * from "./get-account-states"; +export * from "./get-aggregate-credits"; +export * from "./get-alternative-titles"; +export * from "./get-changes"; +export * from "./get-content-ratings"; +export * from "./get-credits"; +export * from "./get-details"; +export * from "./get-episode-groups"; +export * from "./get-external-ids"; +export * from "./get-images"; +export * from "./get-keywords"; +export * from "./get-latest"; +export * from "./get-popular"; +export * from "./get-recommendations"; +export * from "./get-reviews"; +export * from "./get-screened-theatrically"; +export * from "./get-similar-tvshows"; +export * from "./get-top-rated"; +export * from "./get-translations"; +export * from "./get-tv-airing-today"; +export * from "./get-tv-on-the-air"; +export * from "./get-videos"; +export * from "./get-watch-providers"; +export * from "./rate-tvshows"; diff --git a/packages/core/src/types/v3/tv/rate-tvshows.ts b/packages/core/src/types/v3/tv/rate-tvshows.ts new file mode 100644 index 0000000..038bae6 --- /dev/null +++ b/packages/core/src/types/v3/tv/rate-tvshows.ts @@ -0,0 +1,13 @@ +export interface TVRateTVShowsResponse { + status_code: number; + status_message: string; +} + +export interface TVRateTVShowsParams { + guest_session_id?: string; + session_id?: string; +} + +export interface TVRateTVShowsBody { + value: number; +} diff --git a/packages/core/src/types/v3/watch-providers/get-available-regions.ts b/packages/core/src/types/v3/watch-providers/get-available-regions.ts new file mode 100644 index 0000000..584ae3e --- /dev/null +++ b/packages/core/src/types/v3/watch-providers/get-available-regions.ts @@ -0,0 +1,13 @@ +export interface WatchProvidersGetAvailableRegionsResponse { + results: WatchProvidersGetAvailableRegionsResult[]; +} + +export interface WatchProvidersGetAvailableRegionsResult { + iso_3166_1: string; + english_name: string; + native_name: string; +} + +export interface WatchProvidersGetAvailableRegionsParams { + language?: string; +} diff --git a/packages/core/src/types/v3/watch-providers/get-movie-providers.ts b/packages/core/src/types/v3/watch-providers/get-movie-providers.ts new file mode 100644 index 0000000..de0a81c --- /dev/null +++ b/packages/core/src/types/v3/watch-providers/get-movie-providers.ts @@ -0,0 +1,15 @@ +export interface WatchProvidersGetMovieProvidersResponse { + results: WatchProvidersGetMovieProvidersResult[]; +} + +export interface WatchProvidersGetMovieProvidersResult { + display_priority: number; + logo_path: string; + provider_name: string; + provider_id: number; +} + +export interface WatchProvidersGetMovieProvidersParams { + language?: string; + watch_region?: string; +} diff --git a/packages/core/src/types/v3/watch-providers/get-tv-providers.ts b/packages/core/src/types/v3/watch-providers/get-tv-providers.ts new file mode 100644 index 0000000..9f92621 --- /dev/null +++ b/packages/core/src/types/v3/watch-providers/get-tv-providers.ts @@ -0,0 +1,15 @@ +export interface WatchProvidersGetTVProvidersResponse { + results: WatchProvidersGetTVProvidersResult[]; +} + +export interface WatchProvidersGetTVProvidersResult { + display_priority: number; + logo_path: string; + provider_name: string; + provider_id: number; +} + +export interface WatchProvidersGetTVProvidersParams { + language?: string; + watch_region?: string; +} diff --git a/packages/core/src/types/v3/watch-providers/index.ts b/packages/core/src/types/v3/watch-providers/index.ts new file mode 100644 index 0000000..f71b4f6 --- /dev/null +++ b/packages/core/src/types/v3/watch-providers/index.ts @@ -0,0 +1,3 @@ +export * from "./get-available-regions"; +export * from "./get-movie-providers"; +export * from "./get-tv-providers"; diff --git a/packages/core/src/types/v4/account/get-favorite-movies.ts b/packages/core/src/types/v4/account/get-favorite-movies.ts new file mode 100644 index 0000000..d877c10 --- /dev/null +++ b/packages/core/src/types/v4/account/get-favorite-movies.ts @@ -0,0 +1,28 @@ +export interface V4AccountGetFavoriteMoviesResponse { + page: number; + results: V4AccountGetFavoriteMoviesResult[]; + total_results: number; + total_pages: number; +} + +export interface V4AccountGetFavoriteMoviesResult { + poster_path: null | string; + adult: boolean; + overview: string; + release_date: string; + genre_ids: number[]; + id: number; + original_title: string; + original_language: string; + title: string; + backdrop_path: null; + popularity: number; + vote_count: number; + video: boolean; + vote_average: number; +} + +export interface V4AccountGetFavoriteMoviesParams { + page?: number; + sort_by?: string; +} diff --git a/packages/core/src/types/v4/account/get-favorite-tvshows.ts b/packages/core/src/types/v4/account/get-favorite-tvshows.ts new file mode 100644 index 0000000..caa9e26 --- /dev/null +++ b/packages/core/src/types/v4/account/get-favorite-tvshows.ts @@ -0,0 +1,27 @@ +export interface V4AccountGetFavoriteTVShowsResponse { + page: number; + results: V4AccountGetFavoriteTVShowsResult[]; + total_results: number; + total_pages: number; +} + +export interface V4AccountGetFavoriteTVShowsResult { + poster_path: null; + popularity: number; + id: number; + backdrop_path: null; + vote_average: number; + overview: string; + first_air_date: string; + origin_country: string[]; + genre_ids: number[]; + original_language: string; + vote_count: number; + name: string; + original_name: string; +} + +export interface V4AccountGetFavoriteTVShowsParams { + page?: number; + sort_by?: string; +} diff --git a/packages/core/src/types/v4/account/get-lists.ts b/packages/core/src/types/v4/account/get-lists.ts new file mode 100644 index 0000000..0ba0bde --- /dev/null +++ b/packages/core/src/types/v4/account/get-lists.ts @@ -0,0 +1,30 @@ +export interface V4AccountGetListsResponse { + page: number; + total_results: number; + total_pages: number; + results: V4AccountGetListsResult[]; +} + +export interface V4AccountGetListsResult { + iso_639_1: string; + id: number; + featured: number; + description: string; + revenue: string; + public: number; + name: string; + updated_at: string; + created_at: string; + sort_by: number; + backdrop_path?: string; + runtime: number; + average_rating: number; + iso_3166_1: string; + adult: number; + number_of_items: number; + poster_path?: string; +} + +export interface V4AccountGetListsParams { + page?: number; +} diff --git a/packages/core/src/types/v4/account/get-movie-recommendations.ts b/packages/core/src/types/v4/account/get-movie-recommendations.ts new file mode 100644 index 0000000..f1239ae --- /dev/null +++ b/packages/core/src/types/v4/account/get-movie-recommendations.ts @@ -0,0 +1,28 @@ +export interface V4AccountGetMovieRecommendationsResponse { + page: number; + results: V4AccountGetMovieRecommendationsResult[]; + total_results: number; + total_pages: number; +} + +export interface V4AccountGetMovieRecommendationsResult { + poster_path: null | string; + adult: boolean; + overview: string; + release_date: string; + genre_ids: number[]; + id: number; + original_title: string; + original_language: string; + title: string; + backdrop_path: null; + popularity: number; + vote_count: number; + video: boolean; + vote_average: number; +} + +export interface V4AccountGetMovieRecommendationsParams { + page?: number; + sort_by?: string; +} diff --git a/packages/core/src/types/v4/account/get-movie-watchlist.ts b/packages/core/src/types/v4/account/get-movie-watchlist.ts new file mode 100644 index 0000000..0da8de0 --- /dev/null +++ b/packages/core/src/types/v4/account/get-movie-watchlist.ts @@ -0,0 +1,28 @@ +export interface V4AccountGetMovieWatchlistResponse { + page: number; + results: V4AccountGetMovieWatchlistResult[]; + total_results: number; + total_pages: number; +} + +export interface V4AccountGetMovieWatchlistResult { + poster_path: null | string; + adult: boolean; + overview: string; + release_date: string; + genre_ids: number[]; + id: number; + original_title: string; + original_language: string; + title: string; + backdrop_path: null; + popularity: number; + vote_count: number; + video: boolean; + vote_average: number; +} + +export interface V4AccountGetMovieWatchlistParams { + page?: number; + sort_by?: string; +} diff --git a/packages/core/src/types/v4/account/get-rated-movies.ts b/packages/core/src/types/v4/account/get-rated-movies.ts new file mode 100644 index 0000000..a3c84ab --- /dev/null +++ b/packages/core/src/types/v4/account/get-rated-movies.ts @@ -0,0 +1,34 @@ +export interface V4AccountGetRatedMoviesResponse { + page: number; + total_results: number; + total_pages: number; + results: V4AccountGetRatedMoviesResult[]; +} + +export interface V4AccountGetRatedMoviesResult { + account_rating: V4AccountGetRatedMoviesAccountRating; + popularity: number; + vote_count: number; + video: boolean; + poster_path: string; + id: number; + adult: boolean; + backdrop_path: string; + original_language: string; + original_title: string; + genre_ids: number[]; + title: string; + vote_average: number; + overview: string; + release_date: string; +} + +export interface V4AccountGetRatedMoviesAccountRating { + value: number; + created_at: string; +} + +export interface V4AccountGetRatedMoviesParams { + page?: number; + sort_by?: string; +} diff --git a/packages/core/src/types/v4/account/get-rated-tvshows.ts b/packages/core/src/types/v4/account/get-rated-tvshows.ts new file mode 100644 index 0000000..3b6ac4a --- /dev/null +++ b/packages/core/src/types/v4/account/get-rated-tvshows.ts @@ -0,0 +1,33 @@ +export interface V4AccountGetRatedTVShowsResponse { + page: number; + total_results: number; + total_pages: number; + results: V4AccountGetRatedTVShowsResult[]; +} + +export interface V4AccountGetRatedTVShowsResult { + original_name: string; + genre_ids: number[]; + account_rating: V4AccountGetRatedTVShowsAccountRating; + name: string; + popularity: number; + origin_country: string[]; + vote_count: number; + first_air_date: string; + backdrop_path: string; + original_language: string; + id: number; + vote_average: number; + overview: string; + poster_path: string; +} + +export interface V4AccountGetRatedTVShowsAccountRating { + value: number; + created_at: string; +} + +export interface V4AccountGetRatedTVShowsParams { + page?: number; + sort_by?: string; +} diff --git a/packages/core/src/types/v4/account/get-tvshow-recommendations.ts b/packages/core/src/types/v4/account/get-tvshow-recommendations.ts new file mode 100644 index 0000000..ae81371 --- /dev/null +++ b/packages/core/src/types/v4/account/get-tvshow-recommendations.ts @@ -0,0 +1,27 @@ +export interface V4AccountGetTVShowRecommendationsResponse { + page: number; + results: V4AccountGetTVShowRecommendationsResult[]; + total_results: number; + total_pages: number; +} + +export interface V4AccountGetTVShowRecommendationsResult { + poster_path: null; + popularity: number; + id: number; + backdrop_path: null; + vote_average: number; + overview: string; + first_air_date: string; + origin_country: string[]; + genre_ids: number[]; + original_language: string; + vote_count: number; + name: string; + original_name: string; +} + +export interface V4AccountGetTVShowRecommendationsParams { + page?: number; + sort_by?: string; +} diff --git a/packages/core/src/types/v4/account/get-tvshow-watchlist.ts b/packages/core/src/types/v4/account/get-tvshow-watchlist.ts new file mode 100644 index 0000000..2c6d576 --- /dev/null +++ b/packages/core/src/types/v4/account/get-tvshow-watchlist.ts @@ -0,0 +1,27 @@ +export interface V4AccountGetTVShowWatchlistResponse { + page: number; + results: V4AccountGetTVShowWatchlistResult[]; + total_results: number; + total_pages: number; +} + +export interface V4AccountGetTVShowWatchlistResult { + poster_path: null; + popularity: number; + id: number; + backdrop_path: null; + vote_average: number; + overview: string; + first_air_date: string; + origin_country: string[]; + genre_ids: number[]; + original_language: string; + vote_count: number; + name: string; + original_name: string; +} + +export interface V4AccountGetTVShowWatchlistParams { + page?: number; + sort_by?: string; +} diff --git a/packages/core/src/types/v4/account/index.ts b/packages/core/src/types/v4/account/index.ts new file mode 100644 index 0000000..410d9f5 --- /dev/null +++ b/packages/core/src/types/v4/account/index.ts @@ -0,0 +1,9 @@ +export * from "./get-favorite-movies"; +export * from "./get-favorite-tvshows"; +export * from "./get-lists"; +export * from "./get-movie-recommendations"; +export * from "./get-movie-watchlist"; +export * from "./get-rated-movies"; +export * from "./get-rated-tvshows"; +export * from "./get-tvshow-recommendations"; +export * from "./get-tvshow-watchlist"; diff --git a/packages/core/src/types/v4/auth/create-access-token.ts b/packages/core/src/types/v4/auth/create-access-token.ts new file mode 100644 index 0000000..06b3622 --- /dev/null +++ b/packages/core/src/types/v4/auth/create-access-token.ts @@ -0,0 +1,11 @@ +export interface V4AuthCreateAccessTokenResponse { + status_message: string; + access_token: string; + success: boolean; + status_code: number; + account_id: string; +} + +export interface V4AuthCreateAccessTokenBody { + request_token: string; +} diff --git a/packages/core/src/types/v4/auth/create-request-token.ts b/packages/core/src/types/v4/auth/create-request-token.ts new file mode 100644 index 0000000..0ee000f --- /dev/null +++ b/packages/core/src/types/v4/auth/create-request-token.ts @@ -0,0 +1,10 @@ +export interface V4AuthCreateRequestTokenResponse { + status_message: string; + request_token: string; + success: boolean; + status_code: number; +} + +export interface V4AuthCreateRequestTokenBody { + redirect_to?: string; +} diff --git a/packages/core/src/types/v4/auth/delete-access-token.ts b/packages/core/src/types/v4/auth/delete-access-token.ts new file mode 100644 index 0000000..be574ef --- /dev/null +++ b/packages/core/src/types/v4/auth/delete-access-token.ts @@ -0,0 +1,9 @@ +export interface V4AuthDeleteAccessTokenResponse { + status_message: string; + success: boolean; + status_code: number; +} + +export interface V4AuthDeleteAccessTokenBody { + access_token: string; +} diff --git a/packages/core/src/types/v4/auth/index.ts b/packages/core/src/types/v4/auth/index.ts new file mode 100644 index 0000000..f22f87b --- /dev/null +++ b/packages/core/src/types/v4/auth/index.ts @@ -0,0 +1,3 @@ +export * from "./create-access-token"; +export * from "./create-request-token"; +export * from "./delete-access-token"; diff --git a/packages/core/src/types/v4/index.ts b/packages/core/src/types/v4/index.ts new file mode 100644 index 0000000..6c3fcb8 --- /dev/null +++ b/packages/core/src/types/v4/index.ts @@ -0,0 +1,3 @@ +export * from "./account"; +export * from "./auth"; +export * from "./list"; diff --git a/packages/core/src/types/v4/list/add-items.ts b/packages/core/src/types/v4/list/add-items.ts new file mode 100644 index 0000000..2a74216 --- /dev/null +++ b/packages/core/src/types/v4/list/add-items.ts @@ -0,0 +1,21 @@ +export interface V4ListAddItemsResponse { + status_message: string; + results: V4ListAddItemsResult[]; + success: boolean; + status_code: number; +} + +export interface V4ListAddItemsResult { + media_type: string; + media_id: number; + success: boolean; +} + +export interface V4ListAddItemsBody { + items: V4ListAddItemsItem[]; +} + +export interface V4ListAddItemsItem { + media_type: string; + media_id: number; +} diff --git a/packages/core/src/types/v4/list/check-item-status.ts b/packages/core/src/types/v4/list/check-item-status.ts new file mode 100644 index 0000000..df0ec05 --- /dev/null +++ b/packages/core/src/types/v4/list/check-item-status.ts @@ -0,0 +1,13 @@ +export interface V4ListCheckItemStatusResponse { + media_type: string; + success: boolean; + status_message: string; + id: number; + media_id: number; + status_code: number; +} + +export interface V4ListCheckItemStatusParams { + media_id: number; + media_type: string; +} diff --git a/packages/core/src/types/v4/list/clear-list.ts b/packages/core/src/types/v4/list/clear-list.ts new file mode 100644 index 0000000..41259c6 --- /dev/null +++ b/packages/core/src/types/v4/list/clear-list.ts @@ -0,0 +1,7 @@ +export interface V4ListClearListResponse { + items_deleted: number; + status_message: string; + id: number; + status_code: number; + success: boolean; +} diff --git a/packages/core/src/types/v4/list/create-list.ts b/packages/core/src/types/v4/list/create-list.ts new file mode 100644 index 0000000..93842ac --- /dev/null +++ b/packages/core/src/types/v4/list/create-list.ts @@ -0,0 +1,14 @@ +export interface V4ListCreateListResponse { + status_message: string; + id: number; + success: boolean; + status_code: number; +} + +export interface V4ListCreateListBody { + name: string; + iso_639_1: string; + description?: string; + public?: boolean; + iso_3166_1?: string; +} diff --git a/packages/core/src/types/v4/list/delete-list.ts b/packages/core/src/types/v4/list/delete-list.ts new file mode 100644 index 0000000..5119a28 --- /dev/null +++ b/packages/core/src/types/v4/list/delete-list.ts @@ -0,0 +1,5 @@ +export interface V4ListDeleteListResponse { + status_message: string; + success: boolean; + status_code: number; +} diff --git a/packages/core/src/types/v4/list/get-list.ts b/packages/core/src/types/v4/list/get-list.ts new file mode 100644 index 0000000..4a6561e --- /dev/null +++ b/packages/core/src/types/v4/list/get-list.ts @@ -0,0 +1,54 @@ +export interface V4ListGetListResponse { + poster_path: string; + id: number; + backdrop_path: string; + total_results: number; + public: boolean; + revenue: string; + page: number; + results: V4ListGetListResult[]; + object_ids: V4ListGetListComments; + iso_639_1: string; + total_pages: number; + description: string; + created_by: V4ListGetListCreatedBy; + iso_3166_1: string; + average_rating: number; + runtime: number; + name: string; + comments: V4ListGetListComments; +} + +export interface V4ListGetListComments { + [key: string]: null | string; +} + +export interface V4ListGetListCreatedBy { + gravatar_hash: string; + name: string; + username: string; +} + +export interface V4ListGetListResult { + poster_path: string; + adult: boolean; + overview: string; + release_date: string; + original_title: string; + genre_ids: number[]; + id: number; + media_type: string; + original_language: string; + title: string; + backdrop_path: string; + popularity: number; + vote_count: number; + video: boolean; + vote_average: number; +} + +export interface V4ListGetListParams { + page?: number; + language?: string; + sort_by?: string; +} diff --git a/packages/core/src/types/v4/list/index.ts b/packages/core/src/types/v4/list/index.ts new file mode 100644 index 0000000..02cb572 --- /dev/null +++ b/packages/core/src/types/v4/list/index.ts @@ -0,0 +1,9 @@ +export * from "./add-items"; +export * from "./check-item-status"; +export * from "./clear-list"; +export * from "./create-list"; +export * from "./delete-list"; +export * from "./get-list"; +export * from "./remove-items"; +export * from "./update-items"; +export * from "./update-list"; diff --git a/packages/core/src/types/v4/list/remove-items.ts b/packages/core/src/types/v4/list/remove-items.ts new file mode 100644 index 0000000..81b1335 --- /dev/null +++ b/packages/core/src/types/v4/list/remove-items.ts @@ -0,0 +1,21 @@ +export interface V4ListRemoveItemsResponse { + status_message: string; + results: V4ListRemoveItemsResult[]; + success: boolean; + status_code: number; +} + +export interface V4ListRemoveItemsResult { + media_type: string; + media_id: number; + success: boolean; +} + +export interface V4ListRemoveItemsBody { + items: V4ListRemoveItemsItem[]; +} + +export interface V4ListRemoveItemsItem { + media_type: string; + media_id: number; +} diff --git a/packages/core/src/types/v4/list/update-items.ts b/packages/core/src/types/v4/list/update-items.ts new file mode 100644 index 0000000..ed47213 --- /dev/null +++ b/packages/core/src/types/v4/list/update-items.ts @@ -0,0 +1,22 @@ +export interface V4ListUpdateItemsResponse { + status_message: string; + results: V4ListUpdateItemsResult[]; + success: boolean; + status_code: number; +} + +export interface V4ListUpdateItemsResult { + media_type: string; + media_id: number; + success: boolean; +} + +export interface V4ListUpdateItemsBody { + items: V4ListUpdateItemsItem[]; +} + +export interface V4ListUpdateItemsItem { + media_type: string; + media_id: number; + comment: string; +} diff --git a/packages/core/src/types/v4/list/update-list.ts b/packages/core/src/types/v4/list/update-list.ts new file mode 100644 index 0000000..42be5ba --- /dev/null +++ b/packages/core/src/types/v4/list/update-list.ts @@ -0,0 +1,12 @@ +export interface V4ListUpdateListResponse { + status_message: string; + success: boolean; + status_code: number; +} + +export interface V4ListUpdateListBody { + description?: string; + name?: string; + public?: boolean; + sort_by?: string; +} diff --git a/packages/core/src/utils/api.ts b/packages/core/src/utils/api.ts new file mode 100644 index 0000000..4c8f03a --- /dev/null +++ b/packages/core/src/utils/api.ts @@ -0,0 +1,27 @@ +export const buildV3Url = ( + apiKey: string, + url: string, + params?: TParams +) => { + const searchParams = new URLSearchParams(); + if (params) { + for (const [key, value] of Object.entries(params)) { + searchParams.append(key, value as string); + } + } + const urlEndpoint = `${url}?api_key=${apiKey}${ + params ? `&${searchParams.toString()}` : "" + }`; + return urlEndpoint; +}; + +export const buildV4Url = (url: string, params?: TParams) => { + const searchParams = new URLSearchParams(); + if (params) { + for (const [key, value] of Object.entries(params)) { + searchParams.append(key, value as string); + } + } + const urlEndpoint = `${url}${params ? `?${searchParams.toString()}` : ""}`; + return urlEndpoint; +}; diff --git a/packages/core/src/utils/v4proxy.ts b/packages/core/src/utils/v4proxy.ts new file mode 100644 index 0000000..2819b48 --- /dev/null +++ b/packages/core/src/utils/v4proxy.ts @@ -0,0 +1,17 @@ +export const createV4Proxy = (methods: any, accessToken?: string) => { + return new Proxy(methods, { + get(target, prop, receiver) { + const origMethod = Reflect.get(target, prop, receiver); + if (typeof origMethod === "function") { + return (...args: any[]) => { + if (accessToken === undefined) { + throw new Error("Access token is required for the v4 API"); + } + return origMethod.apply(this, args); + }; + } else { + return origMethod; + } + }, + }); +}; diff --git a/packages/core/src/v3/account.ts b/packages/core/src/v3/account.ts new file mode 100644 index 0000000..acf2c5b --- /dev/null +++ b/packages/core/src/v3/account.ts @@ -0,0 +1,180 @@ +import { Http, ITMDBAPI } from ".."; +import { AccountAddToWatchlistResponse } from "../types/v3/account/add-to-watchlist"; +import { AccountGetCreatedListsResponse } from "../types/v3/account/get-created-lists"; +import { AccountGetDetailsResponse } from "../types/v3/account/get-details"; +import { AccountGetFavoriteMoviesResponse } from "../types/v3/account/get-favorite-movies"; +import { AccountGetFavoriteTVShowsResponse } from "../types/v3/account/get-favorite-tvshows"; +import { AccountGetMovieWatchlistResponse } from "../types/v3/account/get-movie-watchlist"; +import { AccountGetRatedMoviesResponse } from "../types/v3/account/get-rated-movies"; +import { AccountGetRatedTVEpisodesResponse } from "../types/v3/account/get-rated-tvepisodes"; +import { AccountGetRatedTVShowsResponse } from "../types/v3/account/get-rated-tvshows"; +import { AccountGetTVShowWatchlistResponse } from "../types/v3/account/get-tvshow-watchlist"; +import { AccountMarkAsFavoriteResponse } from "../types/v3/account/mark-as-favorite"; +import { buildV3Url } from "../utils/api"; + +const getAccountUrlWithId = (url: string, account_id?: number): string => { + let formattedUrl = url; + + if (account_id) { + formattedUrl = formattedUrl.replace("{account_id}", account_id.toString()); + } else { + formattedUrl = formattedUrl.replace("/{account_id}", ""); + } + + return formattedUrl; +}; + +export const createV3AccountMethods = ( + client: Http, + apiKey: string, + apiUrl: string +): ITMDBAPI["v3"]["account"] => { + return { + getDetails: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}account`, params) + ); + return res; + }, + getCreatedLists: async (params, accountId) => { + const res = await client.get( + buildV3Url( + apiKey, + getAccountUrlWithId(`${apiUrl}account/{account_id}/lists`, accountId), + params + ) + ); + + return res; + }, + getFavoriteMovies: async (params, accountId) => { + const res = await client.get( + buildV3Url( + apiKey, + getAccountUrlWithId( + `${apiUrl}account/{account_id}/favorite/movies`, + accountId + ), + params + ) + ); + + return res; + }, + getFavoriteTVShows: async (params, accountId) => { + const res = await client.get( + buildV3Url( + apiKey, + getAccountUrlWithId( + `${apiUrl}account/{account_id}/favorite/tv`, + accountId + ), + params + ) + ); + + return res; + }, + markAsFavorite: async (params, body, accountId) => { + const res = await client.post( + buildV3Url( + apiKey, + getAccountUrlWithId( + `${apiUrl}account/{account_id}/favorite`, + accountId + ), + params + ), + body + ); + + return res; + }, + getRatedMovies: async (params, accountId) => { + const res = await client.get( + buildV3Url( + apiKey, + getAccountUrlWithId( + `${apiUrl}account/{account_id}/rated/movies`, + accountId + ), + params + ) + ); + + return res; + }, + getRatedTVShows: async (params, accountId) => { + const res = await client.get( + buildV3Url( + apiKey, + getAccountUrlWithId( + `${apiUrl}account/{account_id}/rated/tv`, + accountId + ), + params + ) + ); + + return res; + }, + getRatedTVEpisodes: async (params, accountId) => { + const res = await client.get( + buildV3Url( + apiKey, + getAccountUrlWithId( + `${apiUrl}account/{account_id}/rated/tv/episodes`, + accountId + ), + params + ) + ); + + return res; + }, + getMovieWatchlist: async (params, accountId) => { + const res = await client.get( + buildV3Url( + apiKey, + getAccountUrlWithId( + `${apiUrl}account/{account_id}/watchlist/movies`, + accountId + ), + params + ) + ); + + return res; + }, + + getTVShowWatchlist: async (params, accountId) => { + const res = await client.get( + buildV3Url( + apiKey, + getAccountUrlWithId( + `${apiUrl}account/{account_id}/watchlist/tv`, + accountId + ), + params + ) + ); + + return res; + }, + addToWatchlist: async (params, body, accountId) => { + const res = await client.post( + buildV3Url( + apiKey, + getAccountUrlWithId( + `${apiUrl}account/{account_id}/watchlist`, + accountId + ), + params + ), + body + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/authentication.ts b/packages/core/src/v3/authentication.ts new file mode 100644 index 0000000..14a2909 --- /dev/null +++ b/packages/core/src/v3/authentication.ts @@ -0,0 +1,67 @@ +import { Http, ITMDBAPI } from ".."; +import { + AuthenticationCreateGuestSessionResponse, + AuthenticationCreateRequestTokenResponse, + AuthenticationCreateSessionResponse, + AuthenticationCreateSessionWithLoginResponse, + AuthenticationCreateSessionFromV4AccessTokenResponse, + AuthenticationDeleteSessionResponse, +} from "../types/v3/authentication"; +import { buildV3Url } from "../utils/api"; + +export const createV3AuthenticationMethods = ( + client: Http, + apiKey: string, + apiUrl: string +): ITMDBAPI["v3"]["authentication"] => { + return { + createGuestSession: async () => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}authentication/guest_session/new`) + ); + + return res; + }, + createRequestToken: async () => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}authentication/token/new`) + ); + return res; + }, + createSession: async (body) => { + const res = await client.post< + AuthenticationCreateSessionResponse, + typeof body + >(buildV3Url(apiKey, `${apiUrl}authentication/session/new`), body); + + return res; + }, + createSessionWithLogin: async (body) => { + const res = await client.post< + AuthenticationCreateSessionWithLoginResponse, + typeof body + >( + buildV3Url(apiKey, `${apiUrl}authentication/token/validate_with_login`), + body + ); + + return res; + }, + createSessionFromV4AccessToken: async (body) => { + const res = await client.post< + AuthenticationCreateSessionFromV4AccessTokenResponse, + typeof body + >(buildV3Url(apiKey, `${apiUrl}authentication/session/convert/4`), body); + + return res; + }, + deleteSession: async (body) => { + const res = await client.delete< + AuthenticationDeleteSessionResponse, + typeof body + >(buildV3Url(apiKey, `${apiUrl}authentication/session`), body); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/certifications.ts b/packages/core/src/v3/certifications.ts new file mode 100644 index 0000000..bc002a3 --- /dev/null +++ b/packages/core/src/v3/certifications.ts @@ -0,0 +1,29 @@ +import { Http, ITMDBAPI } from ".."; +import { + CertificationsGetMovieCertificationResponse, + CertificationsGetTVCertificationResponse, +} from "../types/v3/certifications"; +import { buildV3Url } from "../utils/api"; + +export const createV3CertificationsMethods = ( + client: Http, + apiKey: string, + apiUrl: string +): ITMDBAPI["v3"]["certifications"] => { + return { + getMovieCertifications: async () => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}certification/movie/list`) + ); + + return res; + }, + getTVShowCertifications: async () => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}certification/tv/list`) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/changes.ts b/packages/core/src/v3/changes.ts new file mode 100644 index 0000000..c8bcda1 --- /dev/null +++ b/packages/core/src/v3/changes.ts @@ -0,0 +1,35 @@ +import { Http, ITMDBAPI } from ".."; +import { ChangesGetMovieChangeListResponse } from "../types/v3/changes/get-movie-change-list"; +import { ChangesGetPersonChangeListResponse } from "../types/v3/changes/get-person-change-list"; +import { ChangesGetTVChangeListResponse } from "../types/v3/changes/get-tv-change-list"; +import { buildV3Url } from "../utils/api"; + +export const createV3ChangesMethods = ( + client: Http, + apiKey: string, + apiUrl: string +): ITMDBAPI["v3"]["changes"] => { + return { + getMovieChangeList: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}movie/changes`, params) + ); + + return res; + }, + getTVChangeList: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}tv/changes`, params) + ); + + return res; + }, + getPersonChangeList: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}person/changes`, params) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/collections.ts b/packages/core/src/v3/collections.ts new file mode 100644 index 0000000..ec13540 --- /dev/null +++ b/packages/core/src/v3/collections.ts @@ -0,0 +1,39 @@ +import { Http, ITMDBAPI } from ".."; +import { CollectionsGetDetailsResponse } from "../types/v3/collections/get-details"; +import { CollectionsGetImagesResponse } from "../types/v3/collections/get-images"; +import { CollectionsGetTranslationsResponse } from "../types/v3/collections/get-translations"; +import { buildV3Url } from "../utils/api"; + +export const createV3CollectionsMethods = ( + client: Http, + apiKey: string, + apiUrl: string +): ITMDBAPI["v3"]["collections"] => { + return { + getDetails: async (collectionId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}collection/${collectionId}`, params) + ); + + return res; + }, + getImages: async (collectionId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}collection/${collectionId}/images`, params) + ); + + return res; + }, + getTranslations: async (collectionId, params) => { + const res = await client.get( + buildV3Url( + apiKey, + `${apiUrl}collection/${collectionId}/translations`, + params + ) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/companies.ts b/packages/core/src/v3/companies.ts new file mode 100644 index 0000000..061c1e1 --- /dev/null +++ b/packages/core/src/v3/companies.ts @@ -0,0 +1,35 @@ +import { Http, ITMDBAPI } from ".."; +import { CompaniesGetAlternativeNamesResponse } from "../types/v3/companies/get-alternative-names"; +import { CompaniesGetDetailsResponse } from "../types/v3/companies/get-details"; +import { CompaniesGetImagesResponse } from "../types/v3/companies/get-images"; +import { buildV3Url } from "../utils/api"; + +export const createV3CompaniesMethods = ( + client: Http, + apiKey: string, + apiUrl: string +): ITMDBAPI["v3"]["companies"] => { + return { + getDetails: async (companyId) => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}company/${companyId}`) + ); + + return res; + }, + getAlternativeNames: async (companyId) => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}company/${companyId}/alternative_names`) + ); + + return res; + }, + getImages: async (companyId) => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}company/${companyId}/images`) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/configuration.ts b/packages/core/src/v3/configuration.ts new file mode 100644 index 0000000..ca1f093 --- /dev/null +++ b/packages/core/src/v3/configuration.ts @@ -0,0 +1,59 @@ +import { Http, ITMDBAPI } from ".."; +import { ConfigurationGetApiConfigurationResponse } from "../types/v3/configuration/get-api-configuration"; +import { ConfigurationGetCountriesResponse } from "../types/v3/configuration/get-countries"; +import { ConfigurationGetJobsResponse } from "../types/v3/configuration/get-jobs"; +import { ConfigurationGetLanguagesResponse } from "../types/v3/configuration/get-languages"; +import { ConfigurationGetPrimaryTranslationsResponse } from "../types/v3/configuration/get-primary-translations"; +import { ConfigurationGetTimezonesResponse } from "../types/v3/configuration/get-timezones"; +import { buildV3Url } from "../utils/api"; + +export const createV3ConfigurationMethods = ( + client: Http, + apiKey: string, + apiUrl: string +): ITMDBAPI["v3"]["configuration"] => { + return { + getAPIConfiguration: async () => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}configuration`) + ); + + return res; + }, + getCountries: async () => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}configuration/countries`) + ); + + return res; + }, + getJobs: async () => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}configuration/jobs`) + ); + + return res; + }, + getLanguages: async () => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}configuration/languages`) + ); + + return res; + }, + getPrimaryTranslations: async () => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}configuration/primary_translations`) + ); + + return res; + }, + getTimezones: async () => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}configuration/timezones`) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/credits.ts b/packages/core/src/v3/credits.ts new file mode 100644 index 0000000..904aa46 --- /dev/null +++ b/packages/core/src/v3/credits.ts @@ -0,0 +1,19 @@ +import { Http, ITMDBAPI } from ".."; +import { CreditsGetDetailsResponse } from "../types/v3/credits/get-details"; +import { buildV3Url } from "../utils/api"; + +export const createV3CreditsMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["credits"] => { + return { + getDetails: async (creditId: string) => { + const res = await client.get( + buildV3Url(apiKey, `${url}credit/${creditId}`) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/discover.ts b/packages/core/src/v3/discover.ts new file mode 100644 index 0000000..fdc7d43 --- /dev/null +++ b/packages/core/src/v3/discover.ts @@ -0,0 +1,27 @@ +import { Http, ITMDBAPI } from ".."; +import { DiscoverMovieDiscoverResponse } from "../types/v3/discover/movie-discover"; +import { DiscoverTVDiscoverResponse } from "../types/v3/discover/tv-discover"; +import { buildV3Url } from "../utils/api"; + +export const createV3DiscoverMethods = ( + client: Http, + apiKey: string, + apiUrl: string +): ITMDBAPI["v3"]["discover"] => { + return { + movieDiscover: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}discover/movie`, params) + ); + + return res; + }, + tvDiscover: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${apiUrl}discover/tv`, params) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/find.ts b/packages/core/src/v3/find.ts new file mode 100644 index 0000000..4cefc1c --- /dev/null +++ b/packages/core/src/v3/find.ts @@ -0,0 +1,19 @@ +import { Http, ITMDBAPI } from ".."; +import { FindFindByIdResponse } from "../types/v3/find/find-by-id"; +import { buildV3Url } from "../utils/api"; + +export const createV3FindMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["find"] => { + return { + findById: async (externalId: string, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}find/${externalId}`, params) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/genres.ts b/packages/core/src/v3/genres.ts new file mode 100644 index 0000000..0cd8111 --- /dev/null +++ b/packages/core/src/v3/genres.ts @@ -0,0 +1,27 @@ +import { Http, ITMDBAPI } from ".."; +import { GenresGetMovieListResponse } from "../types/v3/genres/get-movie-list"; +import { GenresGetTVListResponse } from "../types/v3/genres/get-tv-list"; +import { buildV3Url } from "../utils/api"; + +export const createV3GenresMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["genres"] => { + return { + getMovieList: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}genre/movie/list`, params) + ); + + return res; + }, + getTVList: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}genre/tv/list`, params) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/guest-sessions.ts b/packages/core/src/v3/guest-sessions.ts new file mode 100644 index 0000000..a1a814f --- /dev/null +++ b/packages/core/src/v3/guest-sessions.ts @@ -0,0 +1,47 @@ +import { Http, ITMDBAPI } from ".."; +import { GuestSessionsGetRatedMoviesResponse } from "../types/v3/guest-sessions/get-rated-movies"; +import { GuestSessionsGetRatedTVEpisodesResponse } from "../types/v3/guest-sessions/get-rated-tvepisodes"; +import { GuestSessionsGetRatedTVShowsResponse } from "../types/v3/guest-sessions/get-rated-tvshows"; +import { buildV3Url } from "../utils/api"; + +export const createV3GuestSessionsMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["guestSessions"] => { + return { + getRatedMovies: async (guestSessionId: string, params) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}guest_session/${guestSessionId}/rated/movies`, + params + ) + ); + + return res; + }, + getRatedTVShows: async (guestSessionId: string, params) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}guest_session/${guestSessionId}/rated/tv`, + params + ) + ); + + return res; + }, + getRatedTVEpisodes: async (guestSessionId: string, params) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}guest_session/${guestSessionId}/rated/tv/episodes`, + params + ) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/keywords.ts b/packages/core/src/v3/keywords.ts new file mode 100644 index 0000000..2df02bd --- /dev/null +++ b/packages/core/src/v3/keywords.ts @@ -0,0 +1,27 @@ +import { Http, ITMDBAPI } from ".."; +import { KeywordsGetDetailsResponse } from "../types/v3/keywords/get-details"; +import { KeywordsGetMoviesResponse } from "../types/v3/keywords/get-movies"; +import { buildV3Url } from "../utils/api"; + +export const createV3KeywordsMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["keywords"] => { + return { + getDetails: async (keywordId) => { + const res = await client.get( + buildV3Url(apiKey, `${url}keyword/${keywordId}`) + ); + + return res; + }, + getMovies: async (keywordId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}keyword/${keywordId}/movies`, params) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/lists.ts b/packages/core/src/v3/lists.ts new file mode 100644 index 0000000..f1a6257 --- /dev/null +++ b/packages/core/src/v3/lists.ts @@ -0,0 +1,70 @@ +import { Http, ITMDBAPI } from ".."; +import { ListsAddMovieResponse } from "../types/v3/lists/add-movie"; +import { ListsCheckItemStatusResponse } from "../types/v3/lists/check-item-status"; +import { ListsClearListResponse } from "../types/v3/lists/clear-list"; +import { ListsCreateListResponse } from "../types/v3/lists/create-list"; +import { ListsDeleteListResponse } from "../types/v3/lists/delete-list"; +import { ListsGetDetailsResponse } from "../types/v3/lists/get-details"; +import { ListsRemoveMovieResponse } from "../types/v3/lists/remove-movie"; +import { buildV3Url } from "../utils/api"; + +export const createV3ListsMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["lists"] => { + return { + getDetails: async (listId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}list/${listId}`, params) + ); + + return res; + }, + checkItemStatus: async (listId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}list/${listId}/item_status`, params) + ); + + return res; + }, + createList: async (body, params) => { + const res = await client.post( + buildV3Url(apiKey, `${url}list`, params), + body + ); + + return res; + }, + addMovie: async (listId, body, params) => { + const res = await client.post( + buildV3Url(apiKey, `${url}list/${listId}/add_item`, params), + body + ); + + return res; + }, + removeMovie: async (listId, body, params) => { + const res = await client.post( + buildV3Url(apiKey, `${url}list/${listId}/remove_item`, params), + body + ); + + return res; + }, + clearList: async (listId, params) => { + const res = await client.post( + buildV3Url(apiKey, `${url}list/${listId}/clear`, params) + ); + + return res; + }, + deleteList: async (listId, params) => { + const res = await client.delete( + buildV3Url(apiKey, `${url}list/${listId}`, params) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/movies.ts b/packages/core/src/v3/movies.ts new file mode 100644 index 0000000..e285805 --- /dev/null +++ b/packages/core/src/v3/movies.ts @@ -0,0 +1,196 @@ +import { Http, ITMDBAPI } from ".."; +import { MoviesDeleteRatingResponse } from "../types/v3/movies/delete-rating"; +import { MoviesGetAccountStatesResponse } from "../types/v3/movies/get-account-states"; +import { MoviesGetAlternativeTitlesResponse } from "../types/v3/movies/get-alternative-titles"; +import { MoviesGetChangesResponse } from "../types/v3/movies/get-changes"; +import { MoviesGetCreditsResponse } from "../types/v3/movies/get-credits"; +import { MoviesGetDetailsResponse } from "../types/v3/movies/get-details"; +import { MoviesGetExternalIdsResponse } from "../types/v3/movies/get-external-ids"; +import { MoviesGetImagesResponse } from "../types/v3/movies/get-images"; +import { MoviesGetKeywordsResponse } from "../types/v3/movies/get-keywords"; +import { MoviesGetLatestResponse } from "../types/v3/movies/get-latest"; +import { MoviesGetListsResponse } from "../types/v3/movies/get-lists"; +import { MoviesGetNowPlayingResponse } from "../types/v3/movies/get-now-playing"; +import { MoviesGetPopularResponse } from "../types/v3/movies/get-popular"; +import { MoviesGetRecommendationsResponse } from "../types/v3/movies/get-recommendations"; +import { MoviesGetReleaseDatesResponse } from "../types/v3/movies/get-release-dates"; +import { MoviesGetReviewsResponse } from "../types/v3/movies/get-reviews"; +import { MoviesGetSimilarMoviesResponse } from "../types/v3/movies/get-similar-movies"; +import { MoviesGetTopRatedResponse } from "../types/v3/movies/get-top-rated"; +import { MoviesGetTranslationsResponse } from "../types/v3/movies/get-translations"; +import { MoviesGetUpcomingResponse } from "../types/v3/movies/get-upcoming"; +import { MoviesGetVideosResponse } from "../types/v3/movies/get-videos"; +import { MoviesGetWatchProvidersResponse } from "../types/v3/movies/get-watch-providers"; +import { MoviesRateMovieResponse } from "../types/v3/movies/rate-movie"; +import { buildV3Url } from "../utils/api"; + +export const createV3MoviesMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["movies"] => { + return { + getDetails: async (movieId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}`, params) + ); + + return res; + }, + getAccountStates: async (movieId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/account_states`, params) + ); + + return res; + }, + getAlternativeTitles: async (movieId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/alternative_titles`, params) + ); + + return res; + }, + getChanges: async (movieId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/changes`, params) + ); + + return res; + }, + getCredits: async (movieId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/credits`, params) + ); + + return res; + }, + getExternalIds: async (movieId) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/external_ids`) + ); + + return res; + }, + getImages: async (movieId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/images`, params) + ); + + return res; + }, + getKeywords: async (movieId) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/keywords`) + ); + + return res; + }, + getLists: async (movieId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/lists`, params) + ); + + return res; + }, + getRecommendations: async (movieId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/recommendations`, params) + ); + + return res; + }, + getReleaseDates: async (movieId) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/release_dates`) + ); + + return res; + }, + getReviews: async (movieId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/reviews`, params) + ); + + return res; + }, + getSimilarMovies: async (movieId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/similar`, params) + ); + + return res; + }, + getTranslations: async (movieId) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/translations`) + ); + + return res; + }, + getVideos: async (movieId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/videos`, params) + ); + + return res; + }, + getWatchProviders: async (movieId) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/${movieId}/watch/providers`) + ); + + return res; + }, + rateMovie: async (movieId, body, params) => { + const res = await client.post( + buildV3Url(apiKey, `${url}movie/${movieId}/rating`, params), + body + ); + + return res; + }, + deleteRating: async (movieId, params) => { + const res = await client.delete( + buildV3Url(apiKey, `${url}movie/${movieId}/rating`, params) + ); + + return res; + }, + getLatest: async () => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/latest`) + ); + + return res; + }, + getNowPlaying: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/now_playing`, params) + ); + + return res; + }, + getPopular: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/popular`, params) + ); + + return res; + }, + getTopRated: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/top_rated`, params) + ); + + return res; + }, + getUpcoming: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}movie/upcoming`, params) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/networks.ts b/packages/core/src/v3/networks.ts new file mode 100644 index 0000000..7e116eb --- /dev/null +++ b/packages/core/src/v3/networks.ts @@ -0,0 +1,35 @@ +import { Http, ITMDBAPI } from ".."; +import { NetworksGetAlternativeNamesResponse } from "../types/v3/networks/get-alternative-names"; +import { NetworksGetDetailsResponse } from "../types/v3/networks/get-details"; +import { NetworksGetImagesResponse } from "../types/v3/networks/get-images"; +import { buildV3Url } from "../utils/api"; + +export const createV3NetworksMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["networks"] => { + return { + getDetails: async (networkId: number) => { + const res = await client.get( + buildV3Url(apiKey, `${url}network/${networkId}`) + ); + + return res; + }, + getAlternativeNames: async (networkId: number) => { + const res = await client.get( + buildV3Url(apiKey, `${url}network/${networkId}/alternative_names`) + ); + + return res; + }, + getImages: async (networkId: number) => { + const res = await client.get( + buildV3Url(apiKey, `${url}network/${networkId}/images`) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/people.ts b/packages/core/src/v3/people.ts new file mode 100644 index 0000000..a92cc7f --- /dev/null +++ b/packages/core/src/v3/people.ts @@ -0,0 +1,99 @@ +import { Http, ITMDBAPI } from ".."; +import { PeopleGetChangesResponse } from "../types/v3/people/get-changes"; +import { PeopleGetCombinedCreditsResponse } from "../types/v3/people/get-combined-credits"; +import { PeopleGetDetailsResponse } from "../types/v3/people/get-details"; +import { PeopleGetExternalIdsResponse } from "../types/v3/people/get-external-ids"; +import { PeopleGetImagesResponse } from "../types/v3/people/get-images"; +import { PeopleGetLatestResponse } from "../types/v3/people/get-latest"; +import { PeopleGetMovieCreditsResponse } from "../types/v3/people/get-movie-credits"; +import { PeopleGetPopularResponse } from "../types/v3/people/get-popular"; +import { PeopleGetTaggedImagesResponse } from "../types/v3/people/get-tagged-images"; +import { PeopleGetTranslationsResponse } from "../types/v3/people/get-translations"; +import { PeopleGetTvCreditsResponse } from "../types/v3/people/get-tv-credits"; +import { buildV3Url } from "../utils/api"; + +export const createV3PeopleMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["people"] => { + return { + getDetails: async (personId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}person/${personId}`, params) + ); + + return res; + }, + getChanges: async (personId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}person/${personId}/changes`, params) + ); + + return res; + }, + getMovieCredits: async (personId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}person/${personId}/movie_credits`, params) + ); + + return res; + }, + getTVCredits: async (personId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}person/${personId}/tv_credits`, params) + ); + + return res; + }, + getCombinedCredits: async (personId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}person/${personId}/combined_credits`, params) + ); + + return res; + }, + getExternalIds: async (personId) => { + const res = await client.get( + buildV3Url(apiKey, `${url}person/${personId}/external_ids`) + ); + + return res; + }, + getImages: async (personId) => { + const res = await client.get( + buildV3Url(apiKey, `${url}person/${personId}/images`) + ); + + return res; + }, + getTaggedImages: async (personId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}person/${personId}/tagged_images`, params) + ); + + return res; + }, + getTranslations: async (personId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}person/${personId}/translations`, params) + ); + + return res; + }, + getLatest: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}person/latest`, params) + ); + + return res; + }, + getPopular: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}person/popular`, params) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/reviews.ts b/packages/core/src/v3/reviews.ts new file mode 100644 index 0000000..db7d58c --- /dev/null +++ b/packages/core/src/v3/reviews.ts @@ -0,0 +1,19 @@ +import { Http, ITMDBAPI } from ".."; +import { ReviewsGetDetailsResponse } from "../types/v3/reviews/get-details"; +import { buildV3Url } from "../utils/api"; + +export const createV3ReviewsMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["reviews"] => { + return { + getDetails: async (reviewId: string) => { + const res = await client.get( + buildV3Url(apiKey, `${url}review/${reviewId}`) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/search.ts b/packages/core/src/v3/search.ts new file mode 100644 index 0000000..2fa0dbf --- /dev/null +++ b/packages/core/src/v3/search.ts @@ -0,0 +1,67 @@ +import { Http, ITMDBAPI } from ".."; +import { SearchMultiSearchResponse } from "../types/v3/search/multi-search"; +import { SearchCollectionsResponse } from "../types/v3/search/search-collections"; +import { SearchCompaniesResponse } from "../types/v3/search/search-companies"; +import { SearchKeywordsResponse } from "../types/v3/search/search-keywords"; +import { SearchMoviesResponse } from "../types/v3/search/search-movies"; +import { SearchPeopleResponse } from "../types/v3/search/search-people"; +import { SearchTVShowsResponse } from "../types/v3/search/search-tvshows"; +import { buildV3Url } from "../utils/api"; + +export const createV3SearchMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["search"] => { + return { + searchCompanies: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}search/company`, params) + ); + + return res; + }, + searchCollections: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}search/collection`, params) + ); + + return res; + }, + searchKeywords: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}search/keyword`, params) + ); + + return res; + }, + searchMovies: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}search/movie`, params) + ); + + return res; + }, + searchMulti: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}search/multi`, params) + ); + + return res; + }, + searchPeople: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}search/person`, params) + ); + + return res; + }, + searchTV: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}search/tv`, params) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/trending.ts b/packages/core/src/v3/trending.ts new file mode 100644 index 0000000..9f9d11c --- /dev/null +++ b/packages/core/src/v3/trending.ts @@ -0,0 +1,19 @@ +import { Http, ITMDBAPI } from ".."; +import { TrendingGetTrendingResponse } from "../types/v3/trending/get-trending"; +import { buildV3Url } from "../utils/api"; + +export const createV3TrendingMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["trending"] => { + return { + getTrending: async (trendingId: string) => { + const res = await client.get( + buildV3Url(apiKey, `${url}trending/${trendingId}`) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/tv-episode-groups.ts b/packages/core/src/v3/tv-episode-groups.ts new file mode 100644 index 0000000..80653c9 --- /dev/null +++ b/packages/core/src/v3/tv-episode-groups.ts @@ -0,0 +1,19 @@ +import { Http, ITMDBAPI } from ".."; +import { TVEpisodeGroupsGetDetailsResponse } from "../types/v3/tv-episode-groups/get-details"; +import { buildV3Url } from "../utils/api"; + +export const createV3TVEpisodeGroupsMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["tvEpisodeGroups"] => { + return { + getDetails: async (params, id) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv-episode-group/${id}`, params) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/tv-episodes.ts b/packages/core/src/v3/tv-episodes.ts new file mode 100644 index 0000000..8755513 --- /dev/null +++ b/packages/core/src/v3/tv-episodes.ts @@ -0,0 +1,123 @@ +import { Http, ITMDBAPI } from ".."; +import { TVEpisodesDeleteRatingResponse } from "../types/v3/tv-episodes/delete-rating"; +import { TVEpisodesGetAccountStatesResponse } from "../types/v3/tv-episodes/get-account-states"; +import { TVEpisodesGetChangesResponse } from "../types/v3/tv-episodes/get-changes"; +import { TVEpisodesGetCreditsResponse } from "../types/v3/tv-episodes/get-credits"; +import { TVEpisodesGetDetailsResponse } from "../types/v3/tv-episodes/get-details"; +import { TVEpisodesGetImagesResponse } from "../types/v3/tv-episodes/get-images"; +import { TVEpisodesGetTranslationsResponse } from "../types/v3/tv-episodes/get-translations"; +import { TVEpisodesGetVideosResponse } from "../types/v3/tv-episodes/get-videos"; +import { TVEpisodesRateTVEpisodeResponse } from "../types/v3/tv-episodes/rate-tv-episode"; +import { buildV3Url } from "../utils/api"; + +export const createV3TVEpisodesMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["tvEpisodes"] => { + return { + getDetails: async (tvId, seasonNumber, episodeNumber, params) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/episode/${episodeNumber}`, + params + ) + ); + + return res; + }, + getAccountStates: async (tvId, seasonNumber, episodeNumber, params) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/episode/${episodeNumber}/account_states`, + params + ) + ); + + return res; + }, + getChanges: async (episodeId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/episode/${episodeId}/changes`, params) + ); + + return res; + }, + getCredits: async (tvId, seasonNumber, episodeNumber, params) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/episode/${episodeNumber}/credits`, + params + ) + ); + + return res; + }, + getExternalIds: async (tvId, seasonNumber, episodeNumber) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/episode/${episodeNumber}/external_ids` + ) + ); + + return res; + }, + getImages: async (tvId, seasonNumber, episodeNumber) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/episode/${episodeNumber}/images` + ) + ); + + return res; + }, + getTranslations: async (tvId, seasonNumber, episodeNumber) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/episode/${episodeNumber}/translations` + ) + ); + + return res; + }, + rateTVEpisode: async (tvId, seasonNumber, episodeNumber, params) => { + const res = await client.post( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/episode/${episodeNumber}/rating`, + params + ) + ); + + return res; + }, + deleteRating: async (tvId, seasonNumber, episodeNumber, params) => { + const res = await client.delete( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/episode/${episodeNumber}/rating`, + params + ) + ); + + return res; + }, + getVideos: async (tvId, seasonNumber, episodeNumber, params) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/episode/${episodeNumber}/videos`, + params + ) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/tv-seasons.ts b/packages/core/src/v3/tv-seasons.ts new file mode 100644 index 0000000..5205227 --- /dev/null +++ b/packages/core/src/v3/tv-seasons.ts @@ -0,0 +1,110 @@ +import { Http, ITMDBAPI } from ".."; +import { TVSeasonsGetAccountStatesResponse } from "../types/v3/tv-seasons/get-account-states"; +import { TVSeasonsGetAggregateCreditsResponse } from "../types/v3/tv-seasons/get-aggregate-credits"; +import { TVSeasonsGetChangesResponse } from "../types/v3/tv-seasons/get-changes"; +import { TVSeasonsGetCreditsResponse } from "../types/v3/tv-seasons/get-credits"; +import { TVSeasonsGetDetailsResponse } from "../types/v3/tv-seasons/get-details"; +import { TVSeasonsGetExternalIDsResponse } from "../types/v3/tv-seasons/get-external-ids"; +import { TVSeasonsGetImagesResponse } from "../types/v3/tv-seasons/get-images"; +import { TVSeasonsGetTranslationsResponse } from "../types/v3/tv-seasons/get-translations"; +import { TVSeasonsGetVideosResponse } from "../types/v3/tv-seasons/get-videos"; +import { buildV3Url } from "../utils/api"; + +export const createV3TVSeasonsMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["tvSeasons"] => { + return { + getDetails: async (tvId, seasonNumber, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/season/${seasonNumber}`, params) + ); + + return res; + }, + getAccountStates: async (tvId, seasonNumber, params) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/account_states`, + params + ) + ); + + return res; + }, + getAggregateCredits: async (tvId, seasonNumber, params) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/aggregate_credits`, + params + ) + ); + + return res; + }, + getChanges: async (seasonId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/season/${seasonId}/changes`, params) + ); + + return res; + }, + getCredits: async (tvId, seasonNumber, params) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/credits`, + params + ) + ); + + return res; + }, + getExternalIds: async (tvId, seasonNumber, params) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/external_ids`, + params + ) + ); + + return res; + }, + getImages: async (tvId, seasonNumber, params) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/images`, + params + ) + ); + + return res; + }, + getTranslations: async (tvId, seasonNumber) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/translations` + ) + ); + + return res; + }, + getVideos: async (tvId, seasonNumber, params) => { + const res = await client.get( + buildV3Url( + apiKey, + `${url}tv/${tvId}/season/${seasonNumber}/videos`, + params + ) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/tv.ts b/packages/core/src/v3/tv.ts new file mode 100644 index 0000000..ba0ad34 --- /dev/null +++ b/packages/core/src/v3/tv.ts @@ -0,0 +1,212 @@ +import { Http, ITMDBAPI } from ".."; +import { TVDeleteRatingResponse } from "../types/v3/tv/delete-rating"; +import { TVGetAccountStatesResponse } from "../types/v3/tv/get-account-states"; +import { TVGetAggregateCreditsResponse } from "../types/v3/tv/get-aggregate-credits"; +import { TVGetAlternativeTitlesResponse } from "../types/v3/tv/get-alternative-titles"; +import { TVGetChangesResponse } from "../types/v3/tv/get-changes"; +import { TVGetContentRatingsResponse } from "../types/v3/tv/get-content-ratings"; +import { TVGetCreditsResponse } from "../types/v3/tv/get-credits"; +import { TVGetDetailsResponse } from "../types/v3/tv/get-details"; +import { TVGetEpisodeGroupsResponse } from "../types/v3/tv/get-episode-groups"; +import { TVGetExternalIdsResponse } from "../types/v3/tv/get-external-ids"; +import { TVGetImagesResponse } from "../types/v3/tv/get-images"; +import { TVGetKeywordsResponse } from "../types/v3/tv/get-keywords"; +import { TVGetLatestResponse } from "../types/v3/tv/get-latest"; +import { TVGetPopularResponse } from "../types/v3/tv/get-popular"; +import { TVGetRecommendationsResponse } from "../types/v3/tv/get-recommendations"; +import { TVGetReviewsResponse } from "../types/v3/tv/get-reviews"; +import { TVGetScreenedTheatricallyResponse } from "../types/v3/tv/get-screened-theatrically"; +import { TVGetSimilarTVShowsResponse } from "../types/v3/tv/get-similar-tvshows"; +import { TVGetTopRatedResponse } from "../types/v3/tv/get-top-rated"; +import { TVGetTranslationsResponse } from "../types/v3/tv/get-translations"; +import { TVGetTVAiringTodayResponse } from "../types/v3/tv/get-tv-airing-today"; +import { TVGetTVOnTheAirResponse } from "../types/v3/tv/get-tv-on-the-air"; +import { TVGetVideosResponse } from "../types/v3/tv/get-videos"; +import { TVGetWatchProvidersResponse } from "../types/v3/tv/get-watch-providers"; +import { TVRateTVShowsResponse } from "../types/v3/tv/rate-tvshows"; +import { buildV3Url } from "../utils/api"; + +export const createV3TvMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["tv"] => { + return { + getDetails: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}`, params) + ); + + return res; + }, + getAccountStates: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/account_states`, params) + ); + + return res; + }, + getAggregateCredits: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/aggregate_credits`, params) + ); + + return res; + }, + getAlternativeTitles: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/alternative_titles`, params) + ); + + return res; + }, + getChanges: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/changes`, params) + ); + + return res; + }, + getContentRatings: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/content_ratings`, params) + ); + + return res; + }, + getCredits: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/credits`, params) + ); + + return res; + }, + getEpisodeGroups: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/episode_groups`, params) + ); + + return res; + }, + getExternalIds: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/external_ids`, params) + ); + + return res; + }, + getImages: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/images`, params) + ); + + return res; + }, + getKeywords: async (tvId) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/keywords`) + ); + + return res; + }, + getRecommendations: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/recommendations`, params) + ); + + return res; + }, + getReviews: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/reviews`, params) + ); + + return res; + }, + getScreenedTheatrically: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/screened_theatrically`, params) + ); + + return res; + }, + getSimilarTVShows: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/similar`, params) + ); + + return res; + }, + getTranslations: async (tvId) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/translations`) + ); + + return res; + }, + getVideos: async (tvId, params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/videos`, params) + ); + + return res; + }, + getWatchProviders: async (tvId) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/${tvId}/watch/providers`) + ); + + return res; + }, + rateTVShow: async (tvId, body, params) => { + const res = await client.post( + buildV3Url(apiKey, `${url}tv/${tvId}/rating`, params), + body + ); + + return res; + }, + deleteRating: async (tvId, params) => { + const res = await client.delete( + buildV3Url(apiKey, `${url}tv/${tvId}/rating`, params) + ); + + return res; + }, + getLatest: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/latest`, params) + ); + + return res; + }, + getTVAiringToday: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/airing_today`, params) + ); + + return res; + }, + getTVOnTheAir: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/on_the_air`, params) + ); + + return res; + }, + getPopular: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/popular`, params) + ); + + return res; + }, + getTopRated: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}tv/top_rated`, params) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v3/watch-providers.ts b/packages/core/src/v3/watch-providers.ts new file mode 100644 index 0000000..f515e2d --- /dev/null +++ b/packages/core/src/v3/watch-providers.ts @@ -0,0 +1,35 @@ +import { Http, ITMDBAPI } from ".."; +import { WatchProvidersGetAvailableRegionsResponse } from "../types/v3/watch-providers/get-available-regions"; +import { WatchProvidersGetMovieProvidersResponse } from "../types/v3/watch-providers/get-movie-providers"; +import { WatchProvidersGetTVProvidersResponse } from "../types/v3/watch-providers/get-tv-providers"; +import { buildV3Url } from "../utils/api"; + +export const createV3WatchProvidersMethods = ( + client: Http, + apiKey: string, + url: string +): ITMDBAPI["v3"]["watchProviders"] => { + return { + getAvailableRegions: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}watch/providers/regions`, params) + ); + + return res; + }, + getMovieProviders: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}watch/providers/movie`, params) + ); + + return res; + }, + getTVProviders: async (params) => { + const res = await client.get( + buildV3Url(apiKey, `${url}watch/providers/tv`, params) + ); + + return res; + }, + }; +}; diff --git a/packages/core/src/v4/account.ts b/packages/core/src/v4/account.ts new file mode 100644 index 0000000..0d8592f --- /dev/null +++ b/packages/core/src/v4/account.ts @@ -0,0 +1,98 @@ +import { Http, V4IAccount } from ".."; +import { V4AccountGetFavoriteMoviesResponse } from "../types/v4/account/get-favorite-movies"; +import { V4AccountGetFavoriteTVShowsResponse } from "../types/v4/account/get-favorite-tvshows"; +import { V4AccountGetListsResponse } from "../types/v4/account/get-lists"; +import { V4AccountGetMovieRecommendationsResponse } from "../types/v4/account/get-movie-recommendations"; +import { V4AccountGetMovieWatchlistResponse } from "../types/v4/account/get-movie-watchlist"; +import { V4AccountGetRatedMoviesResponse } from "../types/v4/account/get-rated-movies"; +import { V4AccountGetRatedTVShowsResponse } from "../types/v4/account/get-rated-tvshows"; +import { V4AccountGetTVShowRecommendationsResponse } from "../types/v4/account/get-tvshow-recommendations"; +import { V4AccountGetTVShowWatchlistResponse } from "../types/v4/account/get-tvshow-watchlist"; +import { buildV4Url } from "../utils/api"; +import { createV4Proxy } from "../utils/v4proxy"; + +export const createV4AccountMethods = ( + client: Http, + apiUrl: string, + accessToken?: string +): V4IAccount => { + const accountMethods: V4IAccount = { + getLists: async (accountId, params) => { + const res = await client.get( + buildV4Url(`${apiUrl}account/${accountId}/lists`, params), + accessToken + ); + + return res; + }, + getFavoriteMovies: async (accountId, params) => { + const res = await client.get( + buildV4Url(`${apiUrl}account/${accountId}/movie/favorites`, params), + accessToken + ); + + return res; + }, + getFavoriteTVShows: async (accountId, params) => { + const res = await client.get( + buildV4Url(`${apiUrl}account/${accountId}/tv/favorites`, params), + accessToken + ); + + return res; + }, + getMovieRecommendations: async (accountId, params) => { + const res = await client.get( + buildV4Url( + `${apiUrl}account/${accountId}/movie/recommendations`, + params + ), + accessToken + ); + + return res; + }, + getTVShowRecommendations: async (accountId, params) => { + const res = await client.get( + buildV4Url(`${apiUrl}account/${accountId}/tv/recommendations`, params) + ); + + return res; + }, + getMovieWatchlist: async (accountId, params) => { + const res = await client.get( + buildV4Url(`${apiUrl}account/${accountId}/movie/watchlist`, params), + accessToken + ); + + return res; + }, + getTVShowWatchlist: async (accountId, params) => { + const res = await client.get( + buildV4Url(`${apiUrl}account/${accountId}/tv/watchlist`, params), + accessToken + ); + + return res; + }, + getRatedMovies: async (accountId, params) => { + const res = await client.get( + buildV4Url(`${apiUrl}account/${accountId}/movie/rated`, params), + accessToken + ); + + return res; + }, + getRatedTVShows: async (accountId, params) => { + const res = await client.get( + buildV4Url(`${apiUrl}account/${accountId}/tv/rated`, params), + accessToken + ); + + return res; + }, + }; + + const accountMethodsProxy = createV4Proxy(accountMethods, accessToken); + return accountMethodsProxy; +}; diff --git a/packages/core/src/v4/auth.ts b/packages/core/src/v4/auth.ts new file mode 100644 index 0000000..950efd1 --- /dev/null +++ b/packages/core/src/v4/auth.ts @@ -0,0 +1,41 @@ +import { Http, V4IAuth } from ".."; +import { V4AuthCreateAccessTokenResponse } from "../types/v4/auth/create-access-token"; +import { V4AuthCreateRequestTokenResponse } from "../types/v4/auth/create-request-token"; +import { V4AuthDeleteAccessTokenResponse } from "../types/v4/auth/delete-access-token"; +import { createV4Proxy } from "../utils/v4proxy"; + +export const createV4AuthMethods = ( + client: Http, + apiUrl: string, + accessToken?: string +): V4IAuth => { + const authMethods: V4IAuth = { + createRequestToken: async (body) => { + const res = await client.post< + V4AuthCreateRequestTokenResponse, + typeof body + >(`${apiUrl}auth/request_token`, body, accessToken); + + return res; + }, + createAccessToken: async (body) => { + const res = await client.post< + V4AuthCreateAccessTokenResponse, + typeof body + >(`${apiUrl}auth/access_token`, body, accessToken); + + return res; + }, + deleteAccessToken: async (body) => { + const res = await client.delete< + V4AuthDeleteAccessTokenResponse, + typeof body + >(`${apiUrl}auth/access_token`, body, accessToken); + + return res; + }, + }; + + const authMethodsProxy = createV4Proxy(authMethods, accessToken); + return authMethodsProxy; +}; diff --git a/packages/core/src/v4/list.ts b/packages/core/src/v4/list.ts new file mode 100644 index 0000000..4d87eb3 --- /dev/null +++ b/packages/core/src/v4/list.ts @@ -0,0 +1,118 @@ +import { Http, V4IList } from ".."; +import { V4ListAddItemsResponse } from "../types/v4/list/add-items"; +import { V4ListCheckItemStatusResponse } from "../types/v4/list/check-item-status"; +import { V4ListClearListResponse } from "../types/v4/list/clear-list"; +import { V4ListCreateListResponse } from "../types/v4/list/create-list"; +import { V4ListDeleteListResponse } from "../types/v4/list/delete-list"; +import { V4ListGetListResponse } from "../types/v4/list/get-list"; +import { V4ListRemoveItemsResponse } from "../types/v4/list/remove-items"; +import { V4ListUpdateItemsResponse } from "../types/v4/list/update-items"; +import { V4ListUpdateListResponse } from "../types/v4/list/update-list"; +import { buildV4Url } from "../utils/api"; +import { createV4Proxy } from "../utils/v4proxy"; + +const getListUrl = (url: string, listId?: string): string => { + let formattedUrl = url; + + if (listId) { + formattedUrl = formattedUrl.replace("{list_id}", listId.toString()); + } else { + formattedUrl = formattedUrl.replace("/{list_id}", ""); + } + + return formattedUrl; +}; + +export const createV4ListMethods = ( + client: Http, + apiUrl: string, + accessToken?: string +): V4IList => { + const listMethods: V4IList = { + getList: async (params, listId) => { + const res = await client.get( + buildV4Url(getListUrl(`${apiUrl}list/{list_id}`, listId), params), + accessToken + ); + + return res; + }, + createList: async (body) => { + const res = await client.post( + buildV4Url(`${apiUrl}list`), + body, + accessToken + ); + + return res; + }, + updateList: async (body, listId) => { + const res = await client.put( + buildV4Url(getListUrl(`${apiUrl}list/{list_id}`, listId)), + body, + accessToken + ); + + return res; + }, + clearList: async (listId) => { + const res = await client.post( + buildV4Url(getListUrl(`${apiUrl}list/{list_id}/clear`, listId)), + undefined, + accessToken + ); + + return res; + }, + deleteList: async (listId) => { + const res = await client.delete( + buildV4Url(getListUrl(`${apiUrl}list/{list_id}`, listId)), + undefined, + accessToken + ); + + return res; + }, + addItems: async (body, listId) => { + const res = await client.post( + buildV4Url(getListUrl(`${apiUrl}list/{list_id}/items`, listId)), + body, + accessToken + ); + + return res; + }, + updateItems: async (body, listId) => { + const res = await client.put( + buildV4Url(getListUrl(`${apiUrl}list/{list_id}/items`, listId)), + body, + accessToken + ); + + return res; + }, + removeItems: async (body, listId) => { + const res = await client.delete( + buildV4Url(getListUrl(`${apiUrl}list/{list_id}/items`, listId)), + body, + accessToken + ); + + return res; + }, + checkItemStatus: async (params, listId) => { + const res = await client.get( + buildV4Url( + getListUrl(`${apiUrl}list/{list_id}/item_status`, listId), + params + ), + accessToken + ); + + return res; + }, + }; + + const listMethodsProxy = createV4Proxy(listMethods, accessToken); + return listMethodsProxy; +}; diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json new file mode 100644 index 0000000..0cae1cb --- /dev/null +++ b/packages/core/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "tsconfig/base.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src"], + "exclude": ["dist", "node_modules"] +} diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts new file mode 100644 index 0000000..bbeb9e2 --- /dev/null +++ b/packages/core/tsup.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["./src/index.ts"], + format: ["esm","cjs","iife"], + dts: true, + clean: true, + sourcemap: true, + minify: true, +}); diff --git a/packages/eslint-config-custom/index.js b/packages/eslint-config-custom/index.js new file mode 100644 index 0000000..031c3a9 --- /dev/null +++ b/packages/eslint-config-custom/index.js @@ -0,0 +1,14 @@ +module.exports = { + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "turbo", + "prettier", + ], + parser: "@typescript-eslint/parser", + plugins: ["@typescript-eslint"], + env: { + browser: true, + node: true, + }, +}; diff --git a/packages/eslint-config-custom/package.json b/packages/eslint-config-custom/package.json new file mode 100644 index 0000000..4f66939 --- /dev/null +++ b/packages/eslint-config-custom/package.json @@ -0,0 +1,19 @@ +{ + "name": "eslint-config-custom", + "version": "0.0.0", + "main": "index.js", + "license": "MIT", + "dependencies": { + "eslint": "^7.23.0", + "eslint-config-prettier": "^8.3.0", + "eslint-config-turbo": "latest" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^5.55.0", + "@typescript-eslint/parser": "^5.55.0", + "typescript": "^4.7.4" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/packages/node/README.md b/packages/node/README.md new file mode 100644 index 0000000..e040246 --- /dev/null +++ b/packages/node/README.md @@ -0,0 +1,90 @@ +# tmdb-js-node + +tmdb-js-node is a fully-typed TypeScript wrapper for the TMDB API. It is designed for use in Node.js applications and supports both v3 and v4 of the TMDB API. + +For a browser version, use the tmdb-js-web package. + +## Installation + +``` +npm install tmdb-js-node +``` + +## Getting started + +The library supports the v3 and v4 version of the TMDB API. To use the library, you first need to obtain an API key from the TMDB website. You can then create an instance of the TMDBAPI class and pass your API key to it: + +``` +import { TMDBNodeApi } from "tmdb-js-node"; +const api = new TMDNodeBAPI("your_api_key"); +``` + +If you would like to also use the v4 API: + +``` +import { TMDBNodeApi } from "tmdb-js-node"; +const api = new TMDNodeBAPI("your_api_key", ""); +``` + +You can then call any of the methods available on the api instance, which correspond to the various API endpoints. For example, multisearch: + +``` +import { TMDBNodeAPI } from "tmdb-js-node"; + +const api = new TMDBNodeAPI("your_api_key"); + +api.v3.search + .searchMulti({ + query: "Star wars", + }) + .then((data) => { + console.log(data); + }); +``` + +Or using async/await: + +``` +const response = await api.v3.search.searchMulti({ + query: "Star wars" +}) +console.log(response); +``` + +## API endpoints + +The package supports all endpoints: + +### V3 + +- Account +- Authentication +- Certifications +- Changes +- Collections +- Companies +- Configuration +- Credits +- Discover +- Find +- Genres +- Guest sessions +- Keywords +- Lists +- Movies +- Networks +- Trending +- People +- Reviews +- Search +- TV +- TV Seasons +- TV Episodes +- TV Episode Groups +- Watch Providers + +### V4 + +- Account +- Auth +- List diff --git a/packages/node/package.json b/packages/node/package.json new file mode 100644 index 0000000..0dc17ab --- /dev/null +++ b/packages/node/package.json @@ -0,0 +1,44 @@ +{ + "name": "tmdb-js-node", + "version": "1.0.1", + "description": "tmdb-js-node is a fully-typed TypeScript wrapper for the TMDB API. It is designed for use in Node.js applications and supports both v3 and v4 of the TMDB API", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "scripts": { + "dev": "npm run build -- --watch", + "build": "tsup", + "lint": "eslint *.ts" + }, + "repositories": { + "type": "git", + "url": "git+https://github.com/JorrinKievit/tmdb-js.git" + }, + "keywords": [ + "tmdb", + "tmdb-js", + "tmdb api", + "tmdb wrapper", + "tmdb typescript", + "tmdb javascript", + "tmdb node" + ], + "author": "JorrinKievit", + "license": "ISC", + "bugs": { + "url": "https://github.com/JorrinKievit/tmdb-js/issues" + }, + "homepage": "https://github.com/JorrinKievit/tmdb-js#readme", + "devDependencies": { + "@swc/core": "^1.3.42", + "@types/node": "^18.15.9", + "eslint": "^7.32.0", + "eslint-config-custom": "workspace:*", + "tsconfig": "workspace:*", + "tsup": "^6.7.0", + "typescript": "^4.5.2" + }, + "files": [ + "dist" + ] +} diff --git a/packages/node/src/index.ts b/packages/node/src/index.ts new file mode 100644 index 0000000..0f05c91 --- /dev/null +++ b/packages/node/src/index.ts @@ -0,0 +1,164 @@ +import TMDBAPI, { Http, TMDBApiError, ITMDBAPI } from "../../core"; +import https from "https"; + +export * from "../../core"; + +const client: Http = { + get: async (url, accessToken) => { + return new Promise((resolve, reject) => { + https + .get( + url, + { + headers: { + "Content-Type": "application/json", + ...(accessToken && { Authorization: `Bearer ${accessToken}` }), + }, + }, + (res) => { + let data = ""; + res.on("data", (chunk) => { + data += chunk; + }); + res.on("end", () => { + if (!res.complete) { + reject( + new Error( + "The connection was terminated while the message was still being sent" + ) + ); + } else if (res.statusCode && res.statusCode >= 400) { + const error = JSON.parse(data) as TMDBApiError; + reject(new Error(error.status_message)); + } else { + resolve(JSON.parse(data)); + } + }); + } + ) + .on("error", (err) => { + reject(err); + }); + }); + }, + post: async (url, body, accessToken) => { + return new Promise((resolve, reject) => { + const data = JSON.stringify(body); + const options = { + headers: { + "Content-Type": "application/json", + ...(accessToken && { Authorization: `Bearer ${accessToken}` }), + }, + method: "POST", + }; + const req = https + .request(url, options, (res) => { + let data = ""; + res.on("data", (chunk) => { + data += chunk; + }); + res.on("end", () => { + if (!res.complete) { + reject( + new Error( + "The connection was terminated while the message was still being sent" + ) + ); + } else if (res.statusCode && res.statusCode >= 400) { + const error = JSON.parse(data) as TMDBApiError; + reject(new Error(error.status_message)); + } else { + resolve(JSON.parse(data)); + } + }); + }) + .on("error", (err) => { + reject(err); + }); + req.write(data); + req.end(); + }); + }, + put: async (url, body, accessToken) => { + return new Promise((resolve, reject) => { + const data = JSON.stringify(body); + const options = { + headers: { + "Content-Type": "application/json", + ...(accessToken && { Authorization: `Bearer ${accessToken}` }), + }, + method: "PUT", + }; + const req = https + .request(url, options, (res) => { + let data = ""; + res.on("data", (chunk) => { + data += chunk; + }); + res.on("end", () => { + if (!res.complete) { + reject( + new Error( + "The connection was terminated while the message was still being sent" + ) + ); + } else if (res.statusCode && res.statusCode >= 400) { + const error = JSON.parse(data) as TMDBApiError; + reject(new Error(error.status_message)); + } else { + resolve(JSON.parse(data)); + } + }); + }) + .on("error", (err) => { + reject(err); + }); + req.write(data); + req.end(); + }); + }, + delete: async (url, body, accessToken) => { + return new Promise((resolve, reject) => { + const data = JSON.stringify(body); + const options = { + headers: { + "Content-Type": "application/json", + ...(accessToken && { Authorization: `Bearer ${accessToken}` }), + }, + method: "DELETE", + }; + const req = https + .request(url, options, (res) => { + let data = ""; + res.on("data", (chunk) => { + data += chunk; + }); + res.on("end", () => { + if (!res.complete) { + reject( + new Error( + "The connection was terminated while the message was still being sent" + ) + ); + } else if (res.statusCode && res.statusCode >= 400) { + const error = JSON.parse(data) as TMDBApiError; + reject(new Error(error.status_message)); + } else { + resolve(JSON.parse(data)); + } + }); + }) + .on("error", (err) => { + reject(err); + }); + req.write(data); + req.end(); + }); + }, +}; + +export class TMDBNodeApi extends TMDBAPI implements ITMDBAPI { + constructor(apiKey: string, accessToken?: string) { + super(client, apiKey, accessToken); + } +} diff --git a/packages/node/tsconfig.json b/packages/node/tsconfig.json new file mode 100644 index 0000000..0cae1cb --- /dev/null +++ b/packages/node/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "tsconfig/base.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src"], + "exclude": ["dist", "node_modules"] +} diff --git a/packages/node/tsup.config.ts b/packages/node/tsup.config.ts new file mode 100644 index 0000000..bbeb9e2 --- /dev/null +++ b/packages/node/tsup.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["./src/index.ts"], + format: ["esm","cjs","iife"], + dts: true, + clean: true, + sourcemap: true, + minify: true, +}); diff --git a/packages/tsconfig/README.md b/packages/tsconfig/README.md new file mode 100644 index 0000000..0da79cf --- /dev/null +++ b/packages/tsconfig/README.md @@ -0,0 +1,3 @@ +# `tsconfig` + +These are base shared `tsconfig.json`s from which all other `tsconfig.json`'s inherit from. diff --git a/packages/tsconfig/base.json b/packages/tsconfig/base.json new file mode 100644 index 0000000..51266aa --- /dev/null +++ b/packages/tsconfig/base.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Default", + "compilerOptions": { + "composite": false, + "declaration": true, + "declarationMap": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "inlineSources": false, + "isolatedModules": true, + "moduleResolution": "node", + "noUnusedLocals": false, + "noUnusedParameters": false, + "preserveWatchOutput": true, + "skipLibCheck": true, + "strict": true, + "allowSyntheticDefaultImports": true, + "module": "esnext", + "target": "ES6", + "lib": ["es6", "dom", "es2016", "es2017"] + }, + "exclude": ["node_modules"] +} diff --git a/packages/tsconfig/package.json b/packages/tsconfig/package.json new file mode 100644 index 0000000..0001061 --- /dev/null +++ b/packages/tsconfig/package.json @@ -0,0 +1,8 @@ +{ + "name": "tsconfig", + "version": "0.0.0", + "private": true, + "files": [ + "base.json" + ] +} diff --git a/packages/web/README.md b/packages/web/README.md new file mode 100644 index 0000000..55c4b9c --- /dev/null +++ b/packages/web/README.md @@ -0,0 +1,90 @@ +# tmdb-js-web + +tmdb-js-web is a fully-typed TypeScript wrapper for the TMDB API. It is designed for use in browser-based JavaScript applications and supports both v3 and v4 of the TMDB API. [Browser support](https://caniuse.com/?search=fetch) + +For Node.js, use the tmdb-js-node package. + +## Installation + +``` +npm install tmdb-js-web +``` + +## Getting started + +The library supports the v3 and v4 version of the TMDB API. To use the library, you first need to obtain an API key from the TMDB website. You can then create an instance of the TMDBAPI class and pass your API key to it: + +``` +import { TMDBWebApi } from "tmdb-js-web"; +const api = new TMDBWebAPI("your_api_key"); +``` + +If you would like to also use the v4 API: + +``` +import { TMDBWebApi } from "tmdb-js-web"; +const api = new TMDBWebAPI("your_api_key", ""); +``` + +You can then call any of the methods available on the api instance, which correspond to the various API endpoints. For example, multisearch: + +``` +import { TMDBWebAPI } from "tmdb-js-web"; + +const api = new TMDBWebAPI("your_api_key"); + +api.v3.search + .searchMulti({ + query: "Star wars", + }) + .then((data) => { + console.log(data); + }); +``` + +Or using async/await: + +``` +const response = await api.v3.search.searchMulti({ + query: "Star wars" +}) +console.log(response); +``` + +## API endpoints + +The package supports all endpoints: + +### V3 + +- Account +- Authentication +- Certifications +- Changes +- Collections +- Companies +- Configuration +- Credits +- Discover +- Find +- Genres +- Guest sessions +- Keywords +- Lists +- Movies +- Networks +- Trending +- People +- Reviews +- Search +- TV +- TV Seasons +- TV Episodes +- TV Episode Groups +- Watch Providers + +### V4 + +- Account +- Auth +- List diff --git a/packages/web/package.json b/packages/web/package.json new file mode 100644 index 0000000..2ca5d9c --- /dev/null +++ b/packages/web/package.json @@ -0,0 +1,43 @@ +{ + "name": "tmdb-js-web", + "version": "1.0.1", + "description": "tmdb-js-web is a fully-typed TypeScript wrapper for the TMDB API. It is designed for use in browser-based JavaScript applications and supports both v3 and v4 of the TMDB API.", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "scripts": { + "dev": "npm run build -- --watch", + "build": "tsup", + "lint": "eslint *.ts" + }, + "repositories": { + "type": "git", + "url": "git+https://github.com/JorrinKievit/tmdb-js.git" + }, + "keywords": [ + "tmdb", + "tmdb-js", + "tmdb api", + "tmdb wrapper", + "tmdb typescript", + "tmdb javascript", + "tmdb browser" + ], + "author": "JorrinKievit", + "license": "ISC", + "bugs": { + "url": "https://github.com/JorrinKievit/tmdb-js/issues" + }, + "homepage": "https://github.com/JorrinKievit/tmdb-js#readme", + "devDependencies": { + "@swc/core": "^1.3.42", + "eslint": "^7.32.0", + "eslint-config-custom": "workspace:*", + "tsconfig": "workspace:*", + "tsup": "^6.7.0", + "typescript": "^4.5.2" + }, + "files": [ + "dist" + ] +} diff --git a/packages/web/src/index.ts b/packages/web/src/index.ts new file mode 100644 index 0000000..e71bd91 --- /dev/null +++ b/packages/web/src/index.ts @@ -0,0 +1,79 @@ +import TMDBAPI, { Http, ITMDBAPI, TMDBApiError } from "../../core"; + +export * from "../../core"; + +const client: Http = { + get: async (url, accessToken) => { + const res = await fetch(url, { + method: "GET", + headers: { + "Content-Type": "application/json", + ...(accessToken && { Authorization: `Bearer ${accessToken}` }), + }, + }); + + if (!res.ok) { + const data = (await res.json()) as TMDBApiError; + throw new Error(data.status_message); + } + const data = await res.json(); + return data; + }, + post: async (url, body, accessToken) => { + const res = await fetch(url, { + method: "POST", + headers: { + "Content-Type": "application/json", + ...(accessToken && { Authorization: `Bearer ${accessToken}` }), + }, + body: JSON.stringify(body), + }); + + if (!res.ok) { + const data = (await res.json()) as TMDBApiError; + throw new Error(data.status_message); + } + const data = await res.json(); + return data; + }, + put: async (url, body, accessToken) => { + const res = await fetch(url, { + method: "PUT", + headers: { + "Content-Type": "application/json", + ...(accessToken && { Authorization: `Bearer ${accessToken}` }), + }, + body: JSON.stringify(body), + }); + + if (!res.ok) { + const data = (await res.json()) as TMDBApiError; + throw new Error(data.status_message); + } + const data = await res.json(); + return data; + }, + delete: async (url, body, accessToken) => { + const res = await fetch(url, { + method: "DELETE", + headers: { + "Content-Type": "application/json", + ...(accessToken && { Authorization: `Bearer ${accessToken}` }), + }, + body: JSON.stringify(body), + }); + + if (!res.ok) { + const data = (await res.json()) as TMDBApiError; + throw new Error(data.status_message); + } + const data = await res.json(); + return data; + }, +}; + +export class TMDBWebAPI extends TMDBAPI implements ITMDBAPI { + constructor(apiKey: string, accessToken?: string) { + super(client, apiKey, accessToken); + } +} diff --git a/packages/web/tsconfig.json b/packages/web/tsconfig.json new file mode 100644 index 0000000..cfe59f9 --- /dev/null +++ b/packages/web/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "tsconfig/base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "exclude": ["dist", "node_modules", "tsup.config.ts"] +} diff --git a/packages/web/tsup.config.ts b/packages/web/tsup.config.ts new file mode 100644 index 0000000..bbeb9e2 --- /dev/null +++ b/packages/web/tsup.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["./src/index.ts"], + format: ["esm","cjs","iife"], + dts: true, + clean: true, + sourcemap: true, + minify: true, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..b59637e --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3745 @@ +lockfileVersion: '6.0' + +importers: + + .: + devDependencies: + '@changesets/cli': + specifier: latest + version: 2.26.1 + eslint-config-custom: + specifier: workspace:* + version: link:packages/eslint-config-custom + prettier: + specifier: latest + version: 2.8.7 + turbo: + specifier: latest + version: 1.8.5 + + apps/node-demo: + dependencies: + tmdb-js-node: + specifier: workspace:* + version: link:../../packages/node + devDependencies: + '@types/node': + specifier: ^18.15.9 + version: 18.15.9 + eslint: + specifier: ^7.32.0 + version: 7.32.0 + eslint-config-custom: + specifier: workspace:* + version: link:../../packages/eslint-config-custom + tsconfig: + specifier: workspace:* + version: link:../../packages/tsconfig + tsup: + specifier: ^6.7.0 + version: 6.7.0(@swc/core@1.3.42)(typescript@4.9.5) + typescript: + specifier: ^4.5.2 + version: 4.9.5 + + apps/web-demo: + dependencies: + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + tmdb-js-web: + specifier: workspace:* + version: link:../../packages/web + devDependencies: + '@types/react': + specifier: ^18.0.28 + version: 18.0.28 + '@types/react-dom': + specifier: ^18.0.11 + version: 18.0.11 + '@vitejs/plugin-react': + specifier: ^3.1.0 + version: 3.1.0(vite@4.2.0) + typescript: + specifier: ^4.9.3 + version: 4.9.5 + vite: + specifier: ^4.2.0 + version: 4.2.0 + + packages/core: + devDependencies: + '@swc/core': + specifier: ^1.3.42 + version: 1.3.42 + eslint: + specifier: ^7.32.0 + version: 7.32.0 + eslint-config-custom: + specifier: workspace:* + version: link:../eslint-config-custom + tsconfig: + specifier: workspace:* + version: link:../tsconfig + tsup: + specifier: ^6.7.0 + version: 6.7.0(@swc/core@1.3.42)(typescript@4.9.5) + typescript: + specifier: ^4.5.2 + version: 4.9.5 + + packages/eslint-config-custom: + dependencies: + eslint: + specifier: ^7.23.0 + version: 7.32.0 + eslint-config-prettier: + specifier: ^8.3.0 + version: 8.7.0(eslint@7.32.0) + eslint-config-turbo: + specifier: latest + version: 0.0.10(eslint@7.32.0) + devDependencies: + '@typescript-eslint/eslint-plugin': + specifier: ^5.55.0 + version: 5.55.0(@typescript-eslint/parser@5.55.0)(eslint@7.32.0)(typescript@4.9.5) + '@typescript-eslint/parser': + specifier: ^5.55.0 + version: 5.55.0(eslint@7.32.0)(typescript@4.9.5) + typescript: + specifier: ^4.7.4 + version: 4.9.5 + + packages/node: + dependencies: + tmdb-js-core: + specifier: workspace:* + version: link:../core + devDependencies: + '@swc/core': + specifier: ^1.3.42 + version: 1.3.42 + '@types/node': + specifier: ^18.15.9 + version: 18.15.9 + eslint: + specifier: ^7.32.0 + version: 7.32.0 + eslint-config-custom: + specifier: workspace:* + version: link:../eslint-config-custom + tsconfig: + specifier: workspace:* + version: link:../tsconfig + tsup: + specifier: ^6.7.0 + version: 6.7.0(@swc/core@1.3.42)(typescript@4.9.5) + typescript: + specifier: ^4.5.2 + version: 4.9.5 + + packages/tsconfig: {} + + packages/web: + dependencies: + tmdb-js-core: + specifier: workspace:* + version: link:../core + devDependencies: + '@swc/core': + specifier: ^1.3.42 + version: 1.3.42 + eslint: + specifier: ^7.32.0 + version: 7.32.0 + eslint-config-custom: + specifier: workspace:* + version: link:../eslint-config-custom + tsconfig: + specifier: workspace:* + version: link:../tsconfig + tsup: + specifier: ^6.7.0 + version: 6.7.0(@swc/core@1.3.42)(typescript@4.9.5) + typescript: + specifier: ^4.5.2 + version: 4.9.5 + +packages: + + /@ampproject/remapping@2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@babel/code-frame@7.12.11: + resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} + dependencies: + '@babel/highlight': 7.18.6 + + /@babel/code-frame@7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/compat-data@7.21.0: + resolution: {integrity: sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.21.3: + resolution: {integrity: sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.21.3 + '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.21.3) + '@babel/helper-module-transforms': 7.21.2 + '@babel/helpers': 7.21.0 + '@babel/parser': 7.21.3 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.3 + '@babel/types': 7.21.3 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.21.3: + resolution: {integrity: sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + jsesc: 2.5.2 + dev: true + + /@babel/helper-compilation-targets@7.20.7(@babel/core@7.21.3): + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.21.0 + '@babel/core': 7.21.3 + '@babel/helper-validator-option': 7.21.0 + browserslist: 4.21.5 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: true + + /@babel/helper-environment-visitor@7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-hoist-variables@7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-module-imports@7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-module-transforms@7.21.2: + resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.20.2 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.3 + '@babel/types': 7.21.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-plugin-utils@7.20.2: + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-simple-access@7.20.2: + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-split-export-declaration@7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-string-parser@7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers@7.21.0: + resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.3 + '@babel/types': 7.21.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser@7.21.3: + resolution: {integrity: sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/plugin-transform-react-jsx-self@7.21.0(@babel/core@7.21.3): + resolution: {integrity: sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-react-jsx-source@7.19.6(@babel/core@7.21.3): + resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/runtime@7.21.0: + resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: true + + /@babel/template@7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.21.3 + '@babel/types': 7.21.3 + dev: true + + /@babel/traverse@7.21.3: + resolution: {integrity: sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.21.3 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.21.3 + '@babel/types': 7.21.3 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.21.3: + resolution: {integrity: sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + dev: true + + /@changesets/apply-release-plan@6.1.3: + resolution: {integrity: sha512-ECDNeoc3nfeAe1jqJb5aFQX7CqzQhD2klXRez2JDb/aVpGUbX673HgKrnrgJRuQR/9f2TtLoYIzrGB9qwD77mg==} + dependencies: + '@babel/runtime': 7.21.0 + '@changesets/config': 2.3.0 + '@changesets/get-version-range-type': 0.3.2 + '@changesets/git': 2.0.0 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.7 + resolve-from: 5.0.0 + semver: 5.7.1 + dev: true + + /@changesets/assemble-release-plan@5.2.3: + resolution: {integrity: sha512-g7EVZCmnWz3zMBAdrcKhid4hkHT+Ft1n0mLussFMcB1dE2zCuwcvGoy9ec3yOgPGF4hoMtgHaMIk3T3TBdvU9g==} + dependencies: + '@babel/runtime': 7.21.0 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.5 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + semver: 5.7.1 + dev: true + + /@changesets/changelog-git@0.1.14: + resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} + dependencies: + '@changesets/types': 5.2.1 + dev: true + + /@changesets/cli@2.26.1: + resolution: {integrity: sha512-XnTa+b51vt057fyAudvDKGB0Sh72xutQZNAdXkCqPBKO2zvs2yYZx5hFZj1u9cbtpwM6Sxtcr02/FQJfZOzemQ==} + hasBin: true + dependencies: + '@babel/runtime': 7.21.0 + '@changesets/apply-release-plan': 6.1.3 + '@changesets/assemble-release-plan': 5.2.3 + '@changesets/changelog-git': 0.1.14 + '@changesets/config': 2.3.0 + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.5 + '@changesets/get-release-plan': 3.0.16 + '@changesets/git': 2.0.0 + '@changesets/logger': 0.0.5 + '@changesets/pre': 1.0.14 + '@changesets/read': 0.5.9 + '@changesets/types': 5.2.1 + '@changesets/write': 0.2.3 + '@manypkg/get-packages': 1.1.3 + '@types/is-ci': 3.0.0 + '@types/semver': 6.2.3 + ansi-colors: 4.1.3 + chalk: 2.4.2 + enquirer: 2.3.6 + external-editor: 3.1.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + is-ci: 3.0.1 + meow: 6.1.1 + outdent: 0.5.0 + p-limit: 2.3.0 + preferred-pm: 3.0.3 + resolve-from: 5.0.0 + semver: 5.7.1 + spawndamnit: 2.0.0 + term-size: 2.2.1 + tty-table: 4.2.1 + dev: true + + /@changesets/config@2.3.0: + resolution: {integrity: sha512-EgP/px6mhCx8QeaMAvWtRrgyxW08k/Bx2tpGT+M84jEdX37v3VKfh4Cz1BkwrYKuMV2HZKeHOh8sHvja/HcXfQ==} + dependencies: + '@changesets/errors': 0.1.4 + '@changesets/get-dependents-graph': 1.3.5 + '@changesets/logger': 0.0.5 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.5 + dev: true + + /@changesets/errors@0.1.4: + resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} + dependencies: + extendable-error: 0.1.7 + dev: true + + /@changesets/get-dependents-graph@1.3.5: + resolution: {integrity: sha512-w1eEvnWlbVDIY8mWXqWuYE9oKhvIaBhzqzo4ITSJY9hgoqQ3RoBqwlcAzg11qHxv/b8ReDWnMrpjpKrW6m1ZTA==} + dependencies: + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + chalk: 2.4.2 + fs-extra: 7.0.1 + semver: 5.7.1 + dev: true + + /@changesets/get-release-plan@3.0.16: + resolution: {integrity: sha512-OpP9QILpBp1bY2YNIKFzwigKh7Qe9KizRsZomzLe6pK8IUo8onkAAVUD8+JRKSr8R7d4+JRuQrfSSNlEwKyPYg==} + dependencies: + '@babel/runtime': 7.21.0 + '@changesets/assemble-release-plan': 5.2.3 + '@changesets/config': 2.3.0 + '@changesets/pre': 1.0.14 + '@changesets/read': 0.5.9 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + dev: true + + /@changesets/get-version-range-type@0.3.2: + resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} + dev: true + + /@changesets/git@2.0.0: + resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} + dependencies: + '@babel/runtime': 7.21.0 + '@changesets/errors': 0.1.4 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.5 + spawndamnit: 2.0.0 + dev: true + + /@changesets/logger@0.0.5: + resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} + dependencies: + chalk: 2.4.2 + dev: true + + /@changesets/parse@0.3.16: + resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} + dependencies: + '@changesets/types': 5.2.1 + js-yaml: 3.14.1 + dev: true + + /@changesets/pre@1.0.14: + resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} + dependencies: + '@babel/runtime': 7.21.0 + '@changesets/errors': 0.1.4 + '@changesets/types': 5.2.1 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + dev: true + + /@changesets/read@0.5.9: + resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} + dependencies: + '@babel/runtime': 7.21.0 + '@changesets/git': 2.0.0 + '@changesets/logger': 0.0.5 + '@changesets/parse': 0.3.16 + '@changesets/types': 5.2.1 + chalk: 2.4.2 + fs-extra: 7.0.1 + p-filter: 2.1.0 + dev: true + + /@changesets/types@4.1.0: + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + dev: true + + /@changesets/types@5.2.1: + resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} + dev: true + + /@changesets/write@0.2.3: + resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} + dependencies: + '@babel/runtime': 7.21.0 + '@changesets/types': 5.2.1 + fs-extra: 7.0.1 + human-id: 1.0.2 + prettier: 2.8.7 + dev: true + + /@esbuild/android-arm64@0.17.12: + resolution: {integrity: sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.17.12: + resolution: {integrity: sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.17.12: + resolution: {integrity: sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.17.12: + resolution: {integrity: sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.17.12: + resolution: {integrity: sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.17.12: + resolution: {integrity: sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.17.12: + resolution: {integrity: sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.17.12: + resolution: {integrity: sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.17.12: + resolution: {integrity: sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.17.12: + resolution: {integrity: sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.17.12: + resolution: {integrity: sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.17.12: + resolution: {integrity: sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.17.12: + resolution: {integrity: sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.17.12: + resolution: {integrity: sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.17.12: + resolution: {integrity: sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.17.12: + resolution: {integrity: sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.17.12: + resolution: {integrity: sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.17.12: + resolution: {integrity: sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.17.12: + resolution: {integrity: sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.17.12: + resolution: {integrity: sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.17.12: + resolution: {integrity: sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.17.12: + resolution: {integrity: sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.3.0(eslint@7.32.0): + resolution: {integrity: sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 7.32.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /@eslint-community/regexpp@4.4.0: + resolution: {integrity: sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@0.4.3: + resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 7.3.1 + globals: 13.20.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + js-yaml: 3.14.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + /@humanwhocodes/config-array@0.5.0: + resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + + /@jridgewell/gen-mapping@0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@jridgewell/gen-mapping@0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.17 + dev: true + + /@jridgewell/resolve-uri@3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec@1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true + + /@jridgewell/trace-mapping@0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@manypkg/find-root@1.1.0: + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + dependencies: + '@babel/runtime': 7.21.0 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + dev: true + + /@manypkg/get-packages@1.1.3: + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + dependencies: + '@babel/runtime': 7.21.0 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@swc/core-darwin-arm64@1.3.42: + resolution: {integrity: sha512-hM6RrZFyoCM9mX3cj/zM5oXwhAqjUdOCLXJx7KTQps7NIkv/Qjvobgvyf2gAb89j3ARNo9NdIoLjTjJ6oALtiA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64@1.3.42: + resolution: {integrity: sha512-bjsWtHMb6wJK1+RGlBs2USvgZ0txlMk11y0qBLKo32gLKTqzUwRw0Fmfzuf6Ue2a/w//7eqMlPFEre4LvJajGw==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf@1.3.42: + resolution: {integrity: sha512-Oe0ggMz3MyqXNfeVmY+bBTL0hFSNY3bx8dhcqsh4vXk/ZVGse94QoC4dd92LuPHmKT0x6nsUzB86x2jU9QHW5g==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu@1.3.42: + resolution: {integrity: sha512-ZJsa8NIW1RLmmHGTJCbM7OPSbBZ9rOMrLqDtUOGrT0uoJXZnnQqolflamB5wviW0X6h3Z3/PSTNGNDCJ3u3Lqg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl@1.3.42: + resolution: {integrity: sha512-YpZwlFAfOp5vkm/uVUJX1O7N3yJDO1fDQRWqsOPPNyIJkI2ydlRQtgN6ZylC159Qv+TimfXnGTlNr7o3iBAqjg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu@1.3.42: + resolution: {integrity: sha512-0ccpKnsZbyHBzaQFdP8U9i29nvOfKitm6oJfdJzlqsY/jCqwvD8kv2CAKSK8WhJz//ExI2LqNrDI0yazx5j7+A==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl@1.3.42: + resolution: {integrity: sha512-7eckRRuTZ6+3K21uyfXXgc2ZCg0mSWRRNwNT3wap2bYkKPeqTgb8pm8xYSZNEiMuDonHEat6XCCV36lFY6kOdQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc@1.3.42: + resolution: {integrity: sha512-t27dJkdw0GWANdN4TV0lY/V5vTYSx5SRjyzzZolep358ueCGuN1XFf1R0JcCbd1ojosnkQg2L7A7991UjXingg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc@1.3.42: + resolution: {integrity: sha512-xfpc/Zt/aMILX4IX0e3loZaFyrae37u3MJCv1gJxgqrpeLi7efIQr3AmERkTK3mxTO6R5urSliWw2W3FyZ7D3Q==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc@1.3.42: + resolution: {integrity: sha512-ra2K4Tu++EJLPhzZ6L8hWUsk94TdK/2UKhL9dzCBhtzKUixsGCEqhtqH1zISXNvW8qaVLFIMUP37ULe80/IJaA==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core@1.3.42: + resolution: {integrity: sha512-nVFUd5+7tGniM2cT3LXaqnu3735Cu4az8A9gAKK+8sdpASI52SWuqfDBmjFCK9xG90MiVDVp2PTZr0BWqCIzpw==} + engines: {node: '>=10'} + requiresBuild: true + optionalDependencies: + '@swc/core-darwin-arm64': 1.3.42 + '@swc/core-darwin-x64': 1.3.42 + '@swc/core-linux-arm-gnueabihf': 1.3.42 + '@swc/core-linux-arm64-gnu': 1.3.42 + '@swc/core-linux-arm64-musl': 1.3.42 + '@swc/core-linux-x64-gnu': 1.3.42 + '@swc/core-linux-x64-musl': 1.3.42 + '@swc/core-win32-arm64-msvc': 1.3.42 + '@swc/core-win32-ia32-msvc': 1.3.42 + '@swc/core-win32-x64-msvc': 1.3.42 + dev: true + + /@types/is-ci@3.0.0: + resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} + dependencies: + ci-info: 3.8.0 + dev: true + + /@types/json-schema@7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + dev: true + + /@types/minimist@1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: true + + /@types/node@12.20.55: + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + dev: true + + /@types/node@18.15.9: + resolution: {integrity: sha512-dUxhiNzBLr6IqlZXz6e/rN2YQXlFgOei/Dxy+e3cyXTJ4txSUbGT2/fmnD6zd/75jDMeW5bDee+YXxlFKHoV0A==} + dev: true + + /@types/normalize-package-data@2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: true + + /@types/prop-types@15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + dev: true + + /@types/react-dom@18.0.11: + resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==} + dependencies: + '@types/react': 18.0.28 + dev: true + + /@types/react@18.0.28: + resolution: {integrity: sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 + csstype: 3.1.1 + dev: true + + /@types/scheduler@0.16.2: + resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + dev: true + + /@types/semver@6.2.3: + resolution: {integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==} + dev: true + + /@types/semver@7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + + /@typescript-eslint/eslint-plugin@5.55.0(@typescript-eslint/parser@5.55.0)(eslint@7.32.0)(typescript@4.9.5): + resolution: {integrity: sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.4.0 + '@typescript-eslint/parser': 5.55.0(eslint@7.32.0)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 5.55.0 + '@typescript-eslint/type-utils': 5.55.0(eslint@7.32.0)(typescript@4.9.5) + '@typescript-eslint/utils': 5.55.0(eslint@7.32.0)(typescript@4.9.5) + debug: 4.3.4 + eslint: 7.32.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + semver: 7.3.8 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@5.55.0(eslint@7.32.0)(typescript@4.9.5): + resolution: {integrity: sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.55.0 + '@typescript-eslint/types': 5.55.0 + '@typescript-eslint/typescript-estree': 5.55.0(typescript@4.9.5) + debug: 4.3.4 + eslint: 7.32.0 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@5.55.0: + resolution: {integrity: sha512-OK+cIO1ZGhJYNCL//a3ROpsd83psf4dUJ4j7pdNVzd5DmIk+ffkuUIX2vcZQbEW/IR41DYsfJTB19tpCboxQuw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.55.0 + '@typescript-eslint/visitor-keys': 5.55.0 + dev: true + + /@typescript-eslint/type-utils@5.55.0(eslint@7.32.0)(typescript@4.9.5): + resolution: {integrity: sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.55.0(typescript@4.9.5) + '@typescript-eslint/utils': 5.55.0(eslint@7.32.0)(typescript@4.9.5) + debug: 4.3.4 + eslint: 7.32.0 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@5.55.0: + resolution: {integrity: sha512-M4iRh4AG1ChrOL6Y+mETEKGeDnT7Sparn6fhZ5LtVJF1909D5O4uqK+C5NPbLmpfZ0XIIxCdwzKiijpZUOvOug==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.55.0(typescript@4.9.5): + resolution: {integrity: sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.55.0 + '@typescript-eslint/visitor-keys': 5.55.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.55.0(eslint@7.32.0)(typescript@4.9.5): + resolution: {integrity: sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.3.0(eslint@7.32.0) + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.55.0 + '@typescript-eslint/types': 5.55.0 + '@typescript-eslint/typescript-estree': 5.55.0(typescript@4.9.5) + eslint: 7.32.0 + eslint-scope: 5.1.1 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@5.55.0: + resolution: {integrity: sha512-q2dlHHwWgirKh1D3acnuApXG+VNXpEY5/AwRxDVuEQpxWaB0jCDe0jFMVMALJ3ebSfuOVE8/rMS+9ZOYGg1GWw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.55.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /@vitejs/plugin-react@3.1.0(vite@4.2.0): + resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.1.0-beta.0 + dependencies: + '@babel/core': 7.21.3 + '@babel/plugin-transform-react-jsx-self': 7.21.0(@babel/core@7.21.3) + '@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.21.3) + magic-string: 0.27.0 + react-refresh: 0.14.0 + vite: 4.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /acorn-jsx@5.3.2(acorn@7.4.1): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 7.4.1 + + /acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array.prototype.flat@1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + es-shim-unscopables: 1.0.0 + dev: true + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + dependencies: + is-windows: 1.0.2 + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /breakword@1.0.5: + resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} + dependencies: + wcwidth: 1.0.1 + dev: true + + /browserslist@4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001468 + electron-to-chromium: 1.4.333 + node-releases: 2.0.10 + update-browserslist-db: 1.0.10(browserslist@4.21.5) + dev: true + + /bundle-require@4.0.1(esbuild@0.17.12): + resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + dependencies: + esbuild: 0.17.12 + load-tsconfig: 0.2.5 + dev: true + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.0 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /caniuse-lite@1.0.30001468: + resolution: {integrity: sha512-zgAo8D5kbOyUcRAgSmgyuvBkjrGk5CGYG5TYgFdpQv+ywcyEpo1LOWoG8YmoflGnh+V+UsNuKYedsoYs0hzV5A==} + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /ci-info@3.8.0: + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + engines: {node: '>=8'} + dev: true + + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true + + /cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /csstype@3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + dev: true + + /csv-generate@3.4.3: + resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} + dev: true + + /csv-parse@4.16.3: + resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} + dev: true + + /csv-stringify@5.6.5: + resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} + dev: true + + /csv@5.5.3: + resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} + engines: {node: '>= 0.1.90'} + dependencies: + csv-generate: 3.4.3 + csv-parse: 4.16.3 + csv-stringify: 5.6.5 + stream-transform: 2.1.3 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: true + + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + + /electron-to-chromium@1.4.333: + resolution: {integrity: sha512-YyE8+GKyGtPEP1/kpvqsdhD6rA/TP1DUFDN4uiU/YI52NzDxmwHkEb3qjId8hLBa5siJvG0sfC3O66501jMruQ==} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + /enquirer@2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.3 + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract@1.21.2: + resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.0 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.7 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 + dev: true + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /esbuild@0.17.12: + resolution: {integrity: sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.12 + '@esbuild/android-arm64': 0.17.12 + '@esbuild/android-x64': 0.17.12 + '@esbuild/darwin-arm64': 0.17.12 + '@esbuild/darwin-x64': 0.17.12 + '@esbuild/freebsd-arm64': 0.17.12 + '@esbuild/freebsd-x64': 0.17.12 + '@esbuild/linux-arm': 0.17.12 + '@esbuild/linux-arm64': 0.17.12 + '@esbuild/linux-ia32': 0.17.12 + '@esbuild/linux-loong64': 0.17.12 + '@esbuild/linux-mips64el': 0.17.12 + '@esbuild/linux-ppc64': 0.17.12 + '@esbuild/linux-riscv64': 0.17.12 + '@esbuild/linux-s390x': 0.17.12 + '@esbuild/linux-x64': 0.17.12 + '@esbuild/netbsd-x64': 0.17.12 + '@esbuild/openbsd-x64': 0.17.12 + '@esbuild/sunos-x64': 0.17.12 + '@esbuild/win32-arm64': 0.17.12 + '@esbuild/win32-ia32': 0.17.12 + '@esbuild/win32-x64': 0.17.12 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + /eslint-config-prettier@8.7.0(eslint@7.32.0): + resolution: {integrity: sha512-HHVXLSlVUhMSmyW4ZzEuvjpwqamgmlfkutD53cYXLikh4pt/modINRcCIApJ84czDxM4GZInwUrromsDdTImTA==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 7.32.0 + dev: false + + /eslint-config-turbo@0.0.10(eslint@7.32.0): + resolution: {integrity: sha512-o4ULFZYM1OihSd63eDGEuy9rt6tW4ma6xnW9grnr44BoJwKaGQko2aka9kfqQs0vtmwD1++Os3ThPHETmzkFzA==} + peerDependencies: + eslint: '>6.6.0' + dependencies: + eslint: 7.32.0 + eslint-plugin-turbo: 0.0.10(eslint@7.32.0) + dev: false + + /eslint-plugin-turbo@0.0.10(eslint@7.32.0): + resolution: {integrity: sha512-T7QRwF4rjBQCJD9AHLHn9ShtHCHNkfIZW5Oio92WtQYhoU5jZCU3ynU+ONFXLuvoUx4dJ19WergIyHL+DwL2+g==} + peerDependencies: + eslint: '>6.6.0' + dependencies: + eslint: 7.32.0 + dev: false + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + /eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: 1.3.0 + + /eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + + /eslint-visitor-keys@3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@7.32.0: + resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} + engines: {node: ^10.12.0 || >=12.0.0} + hasBin: true + dependencies: + '@babel/code-frame': 7.12.11 + '@eslint/eslintrc': 0.4.3 + '@humanwhocodes/config-array': 0.5.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + enquirer: 2.3.6 + escape-string-regexp: 4.0.0 + eslint-scope: 5.1.1 + eslint-utils: 2.1.0 + eslint-visitor-keys: 2.1.0 + espree: 7.3.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 5.1.2 + globals: 13.20.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 3.14.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + progress: 2.0.3 + regexpp: 3.2.0 + semver: 7.3.8 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + table: 6.8.1 + text-table: 0.2.0 + v8-compile-cache: 2.3.0 + transitivePeerDependencies: + - supports-color + + /espree@7.3.1: + resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + acorn: 7.4.1 + acorn-jsx: 5.3.2(acorn@7.4.1) + eslint-visitor-keys: 1.3.0 + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + dev: true + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + dependencies: + micromatch: 4.0.5 + pkg-dir: 4.2.0 + dev: true + + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + /fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + + /function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + functions-have-names: 1.2.3 + dev: true + + /functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-intrinsic@1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals@13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.0 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /human-id@1.0.2: + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /ignore@4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-typed-array: 1.1.10 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.8.0 + dev: true + + /is-core-module@2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + dependencies: + has: 1.0.3 + dev: true + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + dependencies: + better-path-resolve: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + dev: true + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true + + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + dev: true + + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + + /lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + + /magic-string@0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /meow@6.1.1: + resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} + engines: {node: '>=8'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 2.5.0 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.13.1 + yargs-parser: 18.1.3 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /mixme@0.5.9: + resolution: {integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw==} + engines: {node: '>= 8.0.0'} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + + /nanoid@3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + /node-releases@2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + dev: true + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.1 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /optionator@0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true + + /outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + dev: true + + /p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + dependencies: + p-map: 2.1.0 + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + dev: true + + /pirates@4.0.5: + resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} + engines: {node: '>= 6'} + dev: true + + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.2 + dev: true + + /postcss@8.4.21: + resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /preferred-pm@3.0.3: + resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.0.0 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + /prettier@2.8.7: + resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + /pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + dev: true + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: true + + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: true + + /regexp.prototype.flags@1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 + dev: true + + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve@1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + + /rollup@3.19.1: + resolution: {integrity: sha512-lAbrdN7neYCg/8WaoWn/ckzCtz+jr70GFfYdlf50OF7387HTg+wiuiqJRFYawwSPpqfqDNYqK7smY/ks2iAudg==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-regex: 1.1.4 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /semver@5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: true + + /semver@6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: true + + /semver@7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + object-inspect: 1.12.3 + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + /smartwrap@2.0.2: + resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + array.prototype.flat: 1.3.1 + breakword: 1.0.5 + grapheme-splitter: 1.0.4 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + yargs: 15.4.1 + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true + + /spawndamnit@2.0.0: + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + dependencies: + cross-spawn: 5.1.0 + signal-exit: 3.0.7 + dev: true + + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.13 + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.13 + dev: true + + /spdx-license-ids@3.0.13: + resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + /stream-transform@2.1.3: + resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} + dependencies: + mixme: 0.5.9 + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + /string.prototype.trim@1.2.7: + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + /sucrase@3.30.0: + resolution: {integrity: sha512-7d37d3vLF0IeH2dzvHpzDNDxUqpbDHJXTJOAnQ8jvMW04o2Czps6mxtaSnKWpE+hUS/eczqfWPUgQTrazKZPnQ==} + engines: {node: '>=8'} + hasBin: true + dependencies: + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.5 + ts-interface-checker: 0.1.13 + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /table@6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.12.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + /term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.3.0 + dev: true + + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tsup@6.7.0(@swc/core@1.3.42)(typescript@4.9.5): + resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} + engines: {node: '>=14.18'} + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.1.0' + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + '@swc/core': 1.3.42 + bundle-require: 4.0.1(esbuild@0.17.12) + cac: 6.7.14 + chokidar: 3.5.3 + debug: 4.3.4 + esbuild: 0.17.12 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 3.1.4 + resolve-from: 5.0.0 + rollup: 3.19.1 + source-map: 0.8.0-beta.0 + sucrase: 3.30.0 + tree-kill: 1.2.2 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + + /tsutils@3.21.0(typescript@4.9.5): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.9.5 + dev: true + + /tty-table@4.2.1: + resolution: {integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==} + engines: {node: '>=8.0.0'} + hasBin: true + dependencies: + chalk: 4.1.2 + csv: 5.5.3 + kleur: 4.1.5 + smartwrap: 2.0.2 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + yargs: 17.7.1 + dev: true + + /turbo-darwin-64@1.8.5: + resolution: {integrity: sha512-CAYh56bzeHfnh7jTm03r29bh8p5a/EjQo1Id5yLUH7hS7msTau/+YpxJWPodLbN0UQsUYivUqHQkglJ+eMJ7xA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /turbo-darwin-arm64@1.8.5: + resolution: {integrity: sha512-R3jCPOv+lu3dcvMhj8b/Defv6dyUwX6W+tbX7d6YUCA46Plf/bGCQ8+MSbxmr/4E1GyGOVFsn1wRfiYk0us/Dg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-64@1.8.5: + resolution: {integrity: sha512-YRc/KNRZeUVvth11UO4SDQZR2IqGgl9MSsbzqoHuFz4B4Q5QXH7onHogv9aXWE/BZBBbcrSBTlwBSG0Gg+J8hg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-arm64@1.8.5: + resolution: {integrity: sha512-8exVZb7XBl/V3gHSweuUyG2D9IzfWqwLvlXoeLWlVYSj61Ajgdv+WU7lvUmx+H2s+sSKqmIFmewA5Lw6YY37sg==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-windows-64@1.8.5: + resolution: {integrity: sha512-fA8PU5ZNoFnQkapG06WiEqfsVQ5wbIPkIqTwUsd/M2Lp+KgxE79SQbuEI+2vQ9SmwM5qoMi515IPjgvXAJXgCw==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /turbo-windows-arm64@1.8.5: + resolution: {integrity: sha512-SW/NvIdhckLsAWjU/iqBbCB0S8kXupKscUK3kEW1DZIr3MYcP/yIuaE/IdPuqcoF3VP0I3TLD4VTYCCKAo3tKA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /turbo@1.8.5: + resolution: {integrity: sha512-UBnH2wIFb5g6OQCk8f34Ud15ZXV4xEMmugeDJTU5Ur2LpVRsNEny0isSCYdb3Iu3howoNyyXmtpaxWsAwNYkkg==} + hasBin: true + requiresBuild: true + optionalDependencies: + turbo-darwin-64: 1.8.5 + turbo-darwin-arm64: 1.8.5 + turbo-linux-64: 1.8.5 + turbo-linux-arm64: 1.8.5 + turbo-windows-64: 1.8.5 + turbo-windows-arm64: 1.8.5 + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + + /type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 + dev: true + + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: true + + /update-browserslist-db@1.0.10(browserslist@4.21.5): + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.5 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + + /v8-compile-cache@2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: true + + /vite@4.2.0: + resolution: {integrity: sha512-AbDTyzzwuKoRtMIRLGNxhLRuv1FpRgdIw+1y6AQG73Q5+vtecmvzKo/yk8X/vrHDpETRTx01ABijqUHIzBXi0g==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.17.12 + postcss: 8.4.21 + resolve: 1.22.1 + rollup: 3.19.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: true + + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-module@2.0.0: + resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} + dev: true + + /which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + dev: true + + /which-typed-array@1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + dev: true + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + + /word-wrap@1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: true + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.0 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: true + + /yargs@17.7.1: + resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..3ff5faa --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - "apps/*" + - "packages/*" diff --git a/turbo.json b/turbo.json new file mode 100644 index 0000000..a5aa4a7 --- /dev/null +++ b/turbo.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://turbo.build/schema.json", + "pipeline": { + "build": { + "dependsOn": ["^build"], + "outputs": ["dist/**"] + }, + "lint": { + "outputs": [] + }, + "dev": { + "dependsOn": ["^build"], + "cache": false, + "persistent": true, + "outputs": ["dist/**"] + } + } +}