Add list
All checks were successful
repod / nextcloud (push) Successful in 1m9s
repod / nodejs (push) Successful in 1m35s

This commit is contained in:
Michel Roux 2023-08-24 17:43:10 +02:00
parent 3f9bc372ce
commit d2f59538c1
7 changed files with 329 additions and 278 deletions

View File

@ -13,6 +13,7 @@ declare(strict_types=1);
return [
'routes' => [
['name' => 'page#index', 'url' => '/', 'verb' => 'GET'],
['name' => 'episodes#index', 'url' => '/episodes', 'verb' => 'GET'],
['name' => 'podcast#index', 'url' => '/podcast', 'verb' => 'GET'],
['name' => 'search#index', 'url' => '/search', 'verb' => 'GET'],
['name' => 'toplist#index', 'url' => '/toplist', 'verb' => 'GET'],

View File

@ -5,13 +5,27 @@ declare(strict_types=1);
namespace OCA\RePod\Controller;
use OCA\RePod\AppInfo\Application;
use OCA\RePod\Core\EpisodeAction\EpisodeActionReader;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\JSONResponse;
use OCP\Http\Client\IClientService;
use OCP\IRequest;
class EpisodesController extends Controller
{
public function __construct(IRequest $request)
{
public function __construct(
IRequest $request,
private IClientService $clientService,
private EpisodeActionReader $episodeActionReader
) {
parent::__construct(Application::APP_ID, $request);
}
public function index(string $url): JSONResponse
{
$client = $this->clientService->newClient();
$feed = $client->get($url);
return new JSONResponse($this->episodeActionReader->parseRssXml((string) $feed->getBody()), $feed->getStatusCode());
}
}

View File

@ -42,6 +42,6 @@ class PodcastController extends Controller
$podcasts = PodcastData::parseRssXml((string) $feed->getBody());
return new JSONResponse(['data' => $podcasts]);
return new JSONResponse(['data' => $podcasts], $statusCode);
}
}

View File

@ -4,10 +4,11 @@ declare(strict_types=1);
namespace OCA\RePod\Core\EpisodeAction;
use OCA\GPodderSync\Core\EpisodeAction\EpisodeActionReader as GPodderSyncEpisodeActionReader;
use OCA\GPodderSync\Db\EpisodeAction\EpisodeActionRepository;
use OCA\RePod\Service\UserService;
class EpisodeActionReader
class EpisodeActionReader extends GPodderSyncEpisodeActionReader
{
public function __construct(
private EpisodeActionRepository $episodeActionRepository,
@ -20,7 +21,7 @@ class EpisodeActionReader
*
* @throws \Exception if the XML data could not be parsed
*/
public function parseRssXml(string $xmlString, string $episodeUrl, ?int $fetchedAtUnix = null): array
public function parseRssXml(string $xmlString, ?int $fetchedAtUnix = null): array
{
$episodes = [];
$xml = new \SimpleXMLElement($xmlString);
@ -29,27 +30,14 @@ class EpisodeActionReader
$episodeLink = null;
$episodeImage = null;
$episodeDescription = null;
$episodeUrlPath = parse_url($episodeUrl, PHP_URL_PATH);
// Find episode by url and add data for it
/** @var \SimpleXMLElement $item */
foreach ($channel->item as $item) {
$url = (string) $item->enclosure['url'];
// First try to match the url directly
if (false === strpos($episodeUrl, $url)) {
// Then try to match the path only
// The podcast http://feeds.feedburner.com/abcradio/10percenthappier has a "rss_browser" query parameter
// for every item that changed all the time, so we can't match the full url
$path = parse_url($url, PHP_URL_PATH);
if ($episodeUrlPath !== $path) {
continue;
}
}
$episodeUrl = (string) $item->enclosure['url'];
// Get episode action
$episodeAction = $this->episodeActionRepository->findByEpisodeUrl($url, $this->userService->getUserUID());
$episodeAction = $this->episodeActionRepository->findByEpisodeUrl($episodeUrl, $this->userService->getUserUID());
// Get episode name
$episodeName = $this->stringOrNull($item->title);

510
package-lock.json generated
View File

@ -103,24 +103,24 @@
}
},
"node_modules/@babel/core": {
"version": "7.22.10",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.10.tgz",
"integrity": "sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.11.tgz",
"integrity": "sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==",
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.22.10",
"@babel/generator": "^7.22.10",
"@babel/helper-compilation-targets": "^7.22.10",
"@babel/helper-module-transforms": "^7.22.9",
"@babel/helpers": "^7.22.10",
"@babel/parser": "^7.22.10",
"@babel/helpers": "^7.22.11",
"@babel/parser": "^7.22.11",
"@babel/template": "^7.22.5",
"@babel/traverse": "^7.22.10",
"@babel/types": "^7.22.10",
"@babel/traverse": "^7.22.11",
"@babel/types": "^7.22.11",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
"json5": "^2.2.2",
"json5": "^2.2.3",
"semver": "^6.3.1"
},
"engines": {
@ -132,9 +132,9 @@
}
},
"node_modules/@babel/eslint-parser": {
"version": "7.22.10",
"resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.10.tgz",
"integrity": "sha512-0J8DNPRXQRLeR9rPaUMM3fA+RbixjnVLe/MRMYCkp3hzgsSuxCHQ8NN8xQG1wIHKJ4a1DTROTvFJdW+B5/eOsg==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.11.tgz",
"integrity": "sha512-YjOYZ3j7TjV8OhLW6NCtyg8G04uStATEUe5eiLuCZaXz2VSDQ3dsAtm2D+TuQyAqNMUK2WacGo0/uma9Pein1w==",
"dev": true,
"peer": true,
"dependencies": {
@ -202,9 +202,9 @@
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
"version": "7.22.10",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz",
"integrity": "sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.11.tgz",
"integrity": "sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-environment-visitor": "^7.22.5",
@ -447,13 +447,13 @@
}
},
"node_modules/@babel/helpers": {
"version": "7.22.10",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.10.tgz",
"integrity": "sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.11.tgz",
"integrity": "sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg==",
"dependencies": {
"@babel/template": "^7.22.5",
"@babel/traverse": "^7.22.10",
"@babel/types": "^7.22.10"
"@babel/traverse": "^7.22.11",
"@babel/types": "^7.22.11"
},
"engines": {
"node": ">=6.9.0"
@ -473,9 +473,9 @@
}
},
"node_modules/@babel/parser": {
"version": "7.22.10",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz",
"integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.11.tgz",
"integrity": "sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g==",
"bin": {
"parser": "bin/babel-parser.js"
},
@ -812,9 +812,9 @@
}
},
"node_modules/@babel/plugin-transform-async-generator-functions": {
"version": "7.22.10",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz",
"integrity": "sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.11.tgz",
"integrity": "sha512-0pAlmeRJn6wU84zzZsEOx1JV1Jf8fqO9ok7wofIJwUnplYo247dcd24P+cMJht7ts9xkzdtB0EPHmOb7F+KzXw==",
"dependencies": {
"@babel/helper-environment-visitor": "^7.22.5",
"@babel/helper-plugin-utils": "^7.22.5",
@ -888,11 +888,11 @@
}
},
"node_modules/@babel/plugin-transform-class-static-block": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz",
"integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz",
"integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==",
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.22.5",
"@babel/helper-create-class-features-plugin": "^7.22.11",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
},
@ -984,9 +984,9 @@
}
},
"node_modules/@babel/plugin-transform-dynamic-import": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz",
"integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz",
"integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3"
@ -1014,9 +1014,9 @@
}
},
"node_modules/@babel/plugin-transform-export-namespace-from": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz",
"integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz",
"integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
@ -1059,9 +1059,9 @@
}
},
"node_modules/@babel/plugin-transform-json-strings": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz",
"integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz",
"integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-json-strings": "^7.8.3"
@ -1088,9 +1088,9 @@
}
},
"node_modules/@babel/plugin-transform-logical-assignment-operators": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz",
"integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz",
"integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
@ -1132,11 +1132,11 @@
}
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz",
"integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.11.tgz",
"integrity": "sha512-o2+bg7GDS60cJMgz9jWqRUsWkMzLCxp+jFDeDUT5sjRlAxcJWZ2ylNdI7QQ2+CH5hWu7OnN+Cv3htt7AkSf96g==",
"dependencies": {
"@babel/helper-module-transforms": "^7.22.5",
"@babel/helper-module-transforms": "^7.22.9",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-simple-access": "^7.22.5"
},
@ -1148,12 +1148,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz",
"integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz",
"integrity": "sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==",
"dependencies": {
"@babel/helper-hoist-variables": "^7.22.5",
"@babel/helper-module-transforms": "^7.22.5",
"@babel/helper-module-transforms": "^7.22.9",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-validator-identifier": "^7.22.5"
},
@ -1209,9 +1209,9 @@
}
},
"node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz",
"integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz",
"integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
@ -1224,9 +1224,9 @@
}
},
"node_modules/@babel/plugin-transform-numeric-separator": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz",
"integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz",
"integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-numeric-separator": "^7.10.4"
@ -1239,12 +1239,12 @@
}
},
"node_modules/@babel/plugin-transform-object-rest-spread": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz",
"integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.11.tgz",
"integrity": "sha512-nX8cPFa6+UmbepISvlf5jhQyaC7ASs/7UxHmMkuJ/k5xSHvDPPaibMo+v3TXwU/Pjqhep/nFNpd3zn4YR59pnw==",
"dependencies": {
"@babel/compat-data": "^7.22.5",
"@babel/helper-compilation-targets": "^7.22.5",
"@babel/compat-data": "^7.22.9",
"@babel/helper-compilation-targets": "^7.22.10",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
"@babel/plugin-transform-parameters": "^7.22.5"
@ -1272,9 +1272,9 @@
}
},
"node_modules/@babel/plugin-transform-optional-catch-binding": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz",
"integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz",
"integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
@ -1287,9 +1287,9 @@
}
},
"node_modules/@babel/plugin-transform-optional-chaining": {
"version": "7.22.10",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz",
"integrity": "sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.11.tgz",
"integrity": "sha512-7X2vGqH2ZKu7Imx0C+o5OysRwtF/wzdCAqmcD1N1v2Ww8CtOSC+p+VoV76skm47DLvBZ8kBFic+egqxM9S/p4g==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
@ -1332,12 +1332,12 @@
}
},
"node_modules/@babel/plugin-transform-private-property-in-object": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz",
"integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz",
"integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-create-class-features-plugin": "^7.22.5",
"@babel/helper-create-class-features-plugin": "^7.22.11",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
},
@ -1463,12 +1463,12 @@
}
},
"node_modules/@babel/plugin-transform-typescript": {
"version": "7.22.10",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.10.tgz",
"integrity": "sha512-7++c8I/ymsDo4QQBAgbraXLzIM6jmfao11KgIBEYZRReWzNWH9NtNgJcyrZiXsOPh523FQm6LfpLyy/U5fn46A==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.11.tgz",
"integrity": "sha512-0E4/L+7gfvHub7wsbTv03oRtD69X31LByy44fGmFzbZScpupFByMcgCJ0VbBTkzyjSJKuRoGN8tcijOWKTmqOA==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.22.5",
"@babel/helper-create-class-features-plugin": "^7.22.10",
"@babel/helper-create-class-features-plugin": "^7.22.11",
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/plugin-syntax-typescript": "^7.22.5"
},
@ -1645,15 +1645,15 @@
}
},
"node_modules/@babel/preset-typescript": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz",
"integrity": "sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.11.tgz",
"integrity": "sha512-tWY5wyCZYBGY7IlalfKI1rLiGlIfnwsRHZqlky0HVv8qviwQ1Uo/05M6+s+TcTCVa6Bmoo2uJW5TMFX6Wa4qVg==",
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5",
"@babel/helper-validator-option": "^7.22.5",
"@babel/plugin-syntax-jsx": "^7.22.5",
"@babel/plugin-transform-modules-commonjs": "^7.22.5",
"@babel/plugin-transform-typescript": "^7.22.5"
"@babel/plugin-transform-modules-commonjs": "^7.22.11",
"@babel/plugin-transform-typescript": "^7.22.11"
},
"engines": {
"node": ">=6.9.0"
@ -1668,9 +1668,9 @@
"integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
},
"node_modules/@babel/runtime": {
"version": "7.22.10",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz",
"integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.11.tgz",
"integrity": "sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@ -1697,9 +1697,9 @@
}
},
"node_modules/@babel/traverse": {
"version": "7.22.10",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.10.tgz",
"integrity": "sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.11.tgz",
"integrity": "sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ==",
"dependencies": {
"@babel/code-frame": "^7.22.10",
"@babel/generator": "^7.22.10",
@ -1707,8 +1707,8 @@
"@babel/helper-function-name": "^7.22.5",
"@babel/helper-hoist-variables": "^7.22.5",
"@babel/helper-split-export-declaration": "^7.22.6",
"@babel/parser": "^7.22.10",
"@babel/types": "^7.22.10",
"@babel/parser": "^7.22.11",
"@babel/types": "^7.22.11",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@ -1717,9 +1717,9 @@
}
},
"node_modules/@babel/types": {
"version": "7.22.10",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz",
"integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==",
"version": "7.22.11",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.11.tgz",
"integrity": "sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==",
"dependencies": {
"@babel/helper-string-parser": "^7.22.5",
"@babel/helper-validator-identifier": "^7.22.5",
@ -2053,9 +2053,9 @@
}
},
"node_modules/@jest/console": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.3.tgz",
"integrity": "sha512-ukZbHAdDH4ktZIOKvWs1juAXhiVAdvCyM8zv4S/7Ii3vJSDvMW5k+wOVGMQmHLHUFw3Ko63ZQNy7NI6PSlsD5w==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.4.tgz",
"integrity": "sha512-wNK6gC0Ha9QeEPSkeJedQuTQqxZYnDPuDcDhVuVatRvMkL4D0VTvFVZj+Yuh6caG2aOfzkUZ36KtCmLNtR02hw==",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/node": "*",
@ -2141,14 +2141,14 @@
}
},
"node_modules/@jest/core": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.3.tgz",
"integrity": "sha512-skV1XrfNxfagmjRUrk2FyN5/2YwIzdWVVBa/orUfbLvQUANXxERq2pTvY0I+FinWHjDKB2HRmpveUiph4X0TJw==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.4.tgz",
"integrity": "sha512-U/vq5ccNTSVgYH7mHnodHmCffGWHJnz/E1BEWlLuK5pM4FZmGfBn/nrJGLjUsSmyx3otCeqc1T31F4y08AMDLg==",
"dependencies": {
"@jest/console": "^29.6.3",
"@jest/reporters": "^29.6.3",
"@jest/test-result": "^29.6.3",
"@jest/transform": "^29.6.3",
"@jest/console": "^29.6.4",
"@jest/reporters": "^29.6.4",
"@jest/test-result": "^29.6.4",
"@jest/transform": "^29.6.4",
"@jest/types": "^29.6.3",
"@types/node": "*",
"ansi-escapes": "^4.2.1",
@ -2157,18 +2157,18 @@
"exit": "^0.1.2",
"graceful-fs": "^4.2.9",
"jest-changed-files": "^29.6.3",
"jest-config": "^29.6.3",
"jest-haste-map": "^29.6.3",
"jest-config": "^29.6.4",
"jest-haste-map": "^29.6.4",
"jest-message-util": "^29.6.3",
"jest-regex-util": "^29.6.3",
"jest-resolve": "^29.6.3",
"jest-resolve-dependencies": "^29.6.3",
"jest-runner": "^29.6.3",
"jest-runtime": "^29.6.3",
"jest-snapshot": "^29.6.3",
"jest-resolve": "^29.6.4",
"jest-resolve-dependencies": "^29.6.4",
"jest-runner": "^29.6.4",
"jest-runtime": "^29.6.4",
"jest-snapshot": "^29.6.4",
"jest-util": "^29.6.3",
"jest-validate": "^29.6.3",
"jest-watcher": "^29.6.3",
"jest-watcher": "^29.6.4",
"micromatch": "^4.0.4",
"pretty-format": "^29.6.3",
"slash": "^3.0.0",
@ -2259,11 +2259,11 @@
}
},
"node_modules/@jest/environment": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.3.tgz",
"integrity": "sha512-u/u3cCztYCfgBiGHsamqP5x+XvucftOGPbf5RJQxfpeC1y4AL8pCjKvPDA3oCmdhZYPgk5AE0VOD/flweR69WA==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.4.tgz",
"integrity": "sha512-sQ0SULEjA1XUTHmkBRl7A1dyITM9yb1yb3ZNKPX3KlTd6IG7mWUe3e2yfExtC2Zz1Q+mMckOLHmL/qLiuQJrBQ==",
"dependencies": {
"@jest/fake-timers": "^29.6.3",
"@jest/fake-timers": "^29.6.4",
"@jest/types": "^29.6.3",
"@types/node": "*",
"jest-mock": "^29.6.3"
@ -2273,21 +2273,21 @@
}
},
"node_modules/@jest/expect": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.3.tgz",
"integrity": "sha512-Ic08XbI2jlg6rECy+CGwk/8NDa6VE7UmIG6++9OTPAMnQmNGY28hu69Nf629CWv6T7YMODLbONxDFKdmQeI9FA==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.4.tgz",
"integrity": "sha512-Warhsa7d23+3X5bLbrbYvaehcgX5TLYhI03JKoedTiI8uJU4IhqYBWF7OSSgUyz4IgLpUYPkK0AehA5/fRclAA==",
"dependencies": {
"expect": "^29.6.3",
"jest-snapshot": "^29.6.3"
"expect": "^29.6.4",
"jest-snapshot": "^29.6.4"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/@jest/expect-utils": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.3.tgz",
"integrity": "sha512-nvOEW4YoqRKD9HBJ9OJ6przvIvP9qilp5nAn1462P5ZlL/MM9SgPEZFyjTGPfs7QkocdUsJa6KjHhyRn4ueItA==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.4.tgz",
"integrity": "sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg==",
"dependencies": {
"jest-get-type": "^29.6.3"
},
@ -2296,9 +2296,9 @@
}
},
"node_modules/@jest/fake-timers": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.3.tgz",
"integrity": "sha512-pa1wmqvbj6eX0nMvOM2VDAWvJOI5A/Mk3l8O7n7EsAh71sMZblaKO9iT4GjIj0LwwK3CP/Jp1ypEV0x3m89RvA==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.4.tgz",
"integrity": "sha512-6UkCwzoBK60edXIIWb0/KWkuj7R7Qq91vVInOe3De6DSpaEiqjKcJw4F7XUet24Wupahj9J6PlR09JqJ5ySDHw==",
"dependencies": {
"@jest/types": "^29.6.3",
"@sinonjs/fake-timers": "^10.0.2",
@ -2312,12 +2312,12 @@
}
},
"node_modules/@jest/globals": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.3.tgz",
"integrity": "sha512-RB+uI+CZMHntzlnOPlll5x/jgRff3LEPl/td/jzMXiIgR0iIhKq9qm1HLU+EC52NuoVy/1swit/sDGjVn4bc6A==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.4.tgz",
"integrity": "sha512-wVIn5bdtjlChhXAzVXavcY/3PEjf4VqM174BM3eGL5kMxLiZD5CLnbmkEyA1Dwh9q8XjP6E8RwjBsY/iCWrWsA==",
"dependencies": {
"@jest/environment": "^29.6.3",
"@jest/expect": "^29.6.3",
"@jest/environment": "^29.6.4",
"@jest/expect": "^29.6.4",
"@jest/types": "^29.6.3",
"jest-mock": "^29.6.3"
},
@ -2326,14 +2326,14 @@
}
},
"node_modules/@jest/reporters": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.3.tgz",
"integrity": "sha512-kGz59zMi0GkVjD2CJeYWG9k6cvj7eBqt9aDAqo2rcCLRTYlvQ62Gu/n+tOmJMBHGjzeijjuCENjzTyYBgrtLUw==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.4.tgz",
"integrity": "sha512-sxUjWxm7QdchdrD3NfWKrL8FBsortZeibSJv4XLjESOOjSUOkjQcb0ZHJwfhEGIvBvTluTzfG2yZWZhkrXJu8g==",
"dependencies": {
"@bcoe/v8-coverage": "^0.2.3",
"@jest/console": "^29.6.3",
"@jest/test-result": "^29.6.3",
"@jest/transform": "^29.6.3",
"@jest/console": "^29.6.4",
"@jest/test-result": "^29.6.4",
"@jest/transform": "^29.6.4",
"@jest/types": "^29.6.3",
"@jridgewell/trace-mapping": "^0.3.18",
"@types/node": "*",
@ -2349,7 +2349,7 @@
"istanbul-reports": "^3.1.3",
"jest-message-util": "^29.6.3",
"jest-util": "^29.6.3",
"jest-worker": "^29.6.3",
"jest-worker": "^29.6.4",
"slash": "^3.0.0",
"string-length": "^4.0.1",
"strip-ansi": "^6.0.0",
@ -2529,11 +2529,11 @@
}
},
"node_modules/@jest/test-result": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.3.tgz",
"integrity": "sha512-k7ZZaNvOSMBHPZYiy0kuiaFoyansR5QnTwDux1EjK3kD5iWpRVyJIJ0RAIV39SThafchuW59vra7F8mdy5Hfgw==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.4.tgz",
"integrity": "sha512-uQ1C0AUEN90/dsyEirgMLlouROgSY+Wc/JanVVk0OiUKa5UFh7sJpMEM3aoUBAz2BRNvUJ8j3d294WFuRxSyOQ==",
"dependencies": {
"@jest/console": "^29.6.3",
"@jest/console": "^29.6.4",
"@jest/types": "^29.6.3",
"@types/istanbul-lib-coverage": "^2.0.0",
"collect-v8-coverage": "^1.0.0"
@ -2543,13 +2543,13 @@
}
},
"node_modules/@jest/test-sequencer": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.3.tgz",
"integrity": "sha512-/SmijaAU2TY9ComFGIYa6Z+fmKqQMnqs2Nmwb0P/Z/tROdZ7M0iruES1EaaU9PBf8o9uED5xzaJ3YPFEIcDgAg==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.4.tgz",
"integrity": "sha512-E84M6LbpcRq3fT4ckfKs9ryVanwkaIB0Ws9bw3/yP4seRLg/VaCZ/LgW0MCq5wwk4/iP/qnilD41aj2fsw2RMg==",
"dependencies": {
"@jest/test-result": "^29.6.3",
"@jest/test-result": "^29.6.4",
"graceful-fs": "^4.2.9",
"jest-haste-map": "^29.6.3",
"jest-haste-map": "^29.6.4",
"slash": "^3.0.0"
},
"engines": {
@ -2565,9 +2565,9 @@
}
},
"node_modules/@jest/transform": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.3.tgz",
"integrity": "sha512-dPIc3DsvMZ/S8ut4L2ViCj265mKO0owB0wfzBv2oGzL9pQ+iRvJewHqLBmsGb7XFb5UotWIEtvY5A/lnylaIoQ==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.4.tgz",
"integrity": "sha512-8thgRSiXUqtr/pPGY/OsyHuMjGyhVnWrFAwoxmIemlBuiMyU1WFs0tXoNxzcr4A4uErs/ABre76SGmrr5ab/AA==",
"dependencies": {
"@babel/core": "^7.11.6",
"@jest/types": "^29.6.3",
@ -2577,7 +2577,7 @@
"convert-source-map": "^2.0.0",
"fast-json-stable-stringify": "^2.1.0",
"graceful-fs": "^4.2.9",
"jest-haste-map": "^29.6.3",
"jest-haste-map": "^29.6.4",
"jest-regex-util": "^29.6.3",
"jest-util": "^29.6.3",
"micromatch": "^4.0.4",
@ -3547,9 +3547,9 @@
"integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
},
"node_modules/@types/node": {
"version": "20.5.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.3.tgz",
"integrity": "sha512-ITI7rbWczR8a/S6qjAW7DMqxqFMjjTo61qZVWJ1ubPvbIQsL5D/TvwjYEalM8Kthpe3hTzOGrF2TGbAu2uyqeA=="
"version": "20.5.4",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.4.tgz",
"integrity": "sha512-Y9vbIAoM31djQZrPYjpTLo0XlaSwOIsrlfE3LpulZeRblttsLQRFRlBAppW0LOxyT3ALj2M5vU1ucQQayQH3jA=="
},
"node_modules/@types/normalize-package-data": {
"version": "2.4.1",
@ -4917,11 +4917,11 @@
}
},
"node_modules/babel-jest": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.3.tgz",
"integrity": "sha512-1Ne93zZZEy5XmTa4Q+W5+zxBrDpExX8E3iy+xJJ+24ewlfo/T3qHfQJCzi/MMVFmBQDNxtRR/Gfd2dwb/0yrQw==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.4.tgz",
"integrity": "sha512-meLj23UlSLddj6PC+YTOFRgDAtjnZom8w/ACsrx0gtPtv5cJZk0A5Unk5bV4wixD7XaPCN1fQvpww8czkZURmw==",
"dependencies": {
"@jest/transform": "^29.6.3",
"@jest/transform": "^29.6.4",
"@types/babel__core": "^7.1.14",
"babel-plugin-istanbul": "^6.1.1",
"babel-preset-jest": "^29.6.3",
@ -6751,9 +6751,9 @@
"peer": true
},
"node_modules/electron-to-chromium": {
"version": "1.4.499",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.499.tgz",
"integrity": "sha512-0NmjlYBLKVHva4GABWAaHuPJolnDuL0AhV3h1hES6rcLCWEIbRL6/8TghfsVwkx6TEroQVdliX7+aLysUpKvjw=="
"version": "1.4.500",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.500.tgz",
"integrity": "sha512-P38NO8eOuWOKY1sQk5yE0crNtrjgjJj6r3NrbIKtG18KzCHmHE2Bt+aQA7/y0w3uYsHWxDa6icOohzjLJ4vJ4A=="
},
"node_modules/elliptic": {
"version": "6.5.4",
@ -7911,13 +7911,13 @@
}
},
"node_modules/expect": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/expect/-/expect-29.6.3.tgz",
"integrity": "sha512-x1vY4LlEMWUYVZQrFi4ZANXFwqYbJ/JNQspLVvzhW2BNY28aNcXMQH6imBbt+RBf5sVRTodYHXtSP/TLEU0Dxw==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/expect/-/expect-29.6.4.tgz",
"integrity": "sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA==",
"dependencies": {
"@jest/expect-utils": "^29.6.3",
"@jest/expect-utils": "^29.6.4",
"jest-get-type": "^29.6.3",
"jest-matcher-utils": "^29.6.3",
"jest-matcher-utils": "^29.6.4",
"jest-message-util": "^29.6.3",
"jest-util": "^29.6.3"
},
@ -9830,14 +9830,14 @@
}
},
"node_modules/jest": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest/-/jest-29.6.3.tgz",
"integrity": "sha512-alueLuoPCDNHFcFGmgETR4KpQ+0ff3qVaiJwxQM4B5sC0CvXcgg4PEi7xrDkxuItDmdz/FVc7SSit4KEu8GRvw==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest/-/jest-29.6.4.tgz",
"integrity": "sha512-tEFhVQFF/bzoYV1YuGyzLPZ6vlPrdfvDmmAxudA1dLEuiztqg2Rkx20vkKY32xiDROcD2KXlgZ7Cu8RPeEHRKw==",
"dependencies": {
"@jest/core": "^29.6.3",
"@jest/core": "^29.6.4",
"@jest/types": "^29.6.3",
"import-local": "^3.0.2",
"jest-cli": "^29.6.3"
"jest-cli": "^29.6.4"
},
"bin": {
"jest": "bin/jest.js"
@ -9868,13 +9868,13 @@
}
},
"node_modules/jest-circus": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.3.tgz",
"integrity": "sha512-p0R5YqZEMnOpHqHLWRSjm2z/0p6RNsrNE/GRRT3eli8QGOAozj6Ys/3Tv+Ej+IfltJoSPwcQ6/hOCRkNlxLLCw==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.4.tgz",
"integrity": "sha512-YXNrRyntVUgDfZbjXWBMPslX1mQ8MrSG0oM/Y06j9EYubODIyHWP8hMUbjbZ19M3M+zamqEur7O80HODwACoJw==",
"dependencies": {
"@jest/environment": "^29.6.3",
"@jest/expect": "^29.6.3",
"@jest/test-result": "^29.6.3",
"@jest/environment": "^29.6.4",
"@jest/expect": "^29.6.4",
"@jest/test-result": "^29.6.4",
"@jest/types": "^29.6.3",
"@types/node": "*",
"chalk": "^4.0.0",
@ -9882,10 +9882,10 @@
"dedent": "^1.0.0",
"is-generator-fn": "^2.0.0",
"jest-each": "^29.6.3",
"jest-matcher-utils": "^29.6.3",
"jest-matcher-utils": "^29.6.4",
"jest-message-util": "^29.6.3",
"jest-runtime": "^29.6.3",
"jest-snapshot": "^29.6.3",
"jest-runtime": "^29.6.4",
"jest-snapshot": "^29.6.4",
"jest-util": "^29.6.3",
"p-limit": "^3.1.0",
"pretty-format": "^29.6.3",
@ -9970,18 +9970,18 @@
}
},
"node_modules/jest-cli": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.3.tgz",
"integrity": "sha512-KuPdXUPXQIf0t6DvmG8MV4QyhcjR1a6ruKl3YL7aGn/AQ8JkROwFkWzEpDIpt11Qy188dHbRm8WjwMsV/4nmnQ==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.4.tgz",
"integrity": "sha512-+uMCQ7oizMmh8ZwRfZzKIEszFY9ksjjEQnTEMTaL7fYiL3Kw4XhqT9bYh+A4DQKUb67hZn2KbtEnDuHvcgK4pQ==",
"dependencies": {
"@jest/core": "^29.6.3",
"@jest/test-result": "^29.6.3",
"@jest/core": "^29.6.4",
"@jest/test-result": "^29.6.4",
"@jest/types": "^29.6.3",
"chalk": "^4.0.0",
"exit": "^0.1.2",
"graceful-fs": "^4.2.9",
"import-local": "^3.0.2",
"jest-config": "^29.6.3",
"jest-config": "^29.6.4",
"jest-util": "^29.6.3",
"jest-validate": "^29.6.3",
"prompts": "^2.0.1",
@ -10067,25 +10067,25 @@
}
},
"node_modules/jest-config": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.3.tgz",
"integrity": "sha512-nb9bOq2aEqogbyL4F9mLkAeQGAgNt7Uz6U59YtQDIxFPiL7Ejgq0YIrp78oyEHD6H4CIV/k7mFrK7eFDzUJ69w==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.4.tgz",
"integrity": "sha512-JWohr3i9m2cVpBumQFv2akMEnFEPVOh+9L2xIBJhJ0zOaci2ZXuKJj0tgMKQCBZAKA09H049IR4HVS/43Qb19A==",
"dependencies": {
"@babel/core": "^7.11.6",
"@jest/test-sequencer": "^29.6.3",
"@jest/test-sequencer": "^29.6.4",
"@jest/types": "^29.6.3",
"babel-jest": "^29.6.3",
"babel-jest": "^29.6.4",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
"deepmerge": "^4.2.2",
"glob": "^7.1.3",
"graceful-fs": "^4.2.9",
"jest-circus": "^29.6.3",
"jest-environment-node": "^29.6.3",
"jest-circus": "^29.6.4",
"jest-environment-node": "^29.6.4",
"jest-get-type": "^29.6.3",
"jest-regex-util": "^29.6.3",
"jest-resolve": "^29.6.3",
"jest-runner": "^29.6.3",
"jest-resolve": "^29.6.4",
"jest-runner": "^29.6.4",
"jest-util": "^29.6.3",
"jest-validate": "^29.6.3",
"micromatch": "^4.0.4",
@ -10183,9 +10183,9 @@
}
},
"node_modules/jest-diff": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.3.tgz",
"integrity": "sha512-3sw+AdWnwH9sSNohMRKA7JiYUJSRr/WS6+sEFfBuhxU5V5GlEVKfvUn8JuMHE0wqKowemR1C2aHy8VtXbaV8dQ==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.4.tgz",
"integrity": "sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==",
"dependencies": {
"chalk": "^4.0.0",
"diff-sequences": "^29.6.3",
@ -10351,12 +10351,12 @@
}
},
"node_modules/jest-environment-node": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.3.tgz",
"integrity": "sha512-PKl7upfPJXMYbWpD+60o4HP86KvFO2c9dZ+Zr6wUzsG5xcPx/65o3ArNgHW5M0RFvLYdW4/aieR4JSooD0a2ew==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.4.tgz",
"integrity": "sha512-i7SbpH2dEIFGNmxGCpSc2w9cA4qVD+wfvg2ZnfQ7XVrKL0NA5uDVBIiGH8SR4F0dKEv/0qI5r+aDomDf04DpEQ==",
"dependencies": {
"@jest/environment": "^29.6.3",
"@jest/fake-timers": "^29.6.3",
"@jest/environment": "^29.6.4",
"@jest/fake-timers": "^29.6.4",
"@jest/types": "^29.6.3",
"@types/node": "*",
"jest-mock": "^29.6.3",
@ -10375,9 +10375,9 @@
}
},
"node_modules/jest-haste-map": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.3.tgz",
"integrity": "sha512-GecR5YavfjkhOytEFHAeI6aWWG3f/cOKNB1YJvj/B76xAmeVjy4zJUYobGF030cRmKaO1FBw3V8CZZ6KVh9ZSw==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.4.tgz",
"integrity": "sha512-12Ad+VNTDHxKf7k+M65sviyynRoZYuL1/GTuhEVb8RYsNSNln71nANRb/faSyWvx0j+gHcivChXHIoMJrGYjog==",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/graceful-fs": "^4.1.3",
@ -10387,7 +10387,7 @@
"graceful-fs": "^4.2.9",
"jest-regex-util": "^29.6.3",
"jest-util": "^29.6.3",
"jest-worker": "^29.6.3",
"jest-worker": "^29.6.4",
"micromatch": "^4.0.4",
"walker": "^1.0.8"
},
@ -10411,12 +10411,12 @@
}
},
"node_modules/jest-matcher-utils": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.3.tgz",
"integrity": "sha512-6ZrMYINZdwduSt5Xu18/n49O1IgXdjsfG7NEZaQws9k69eTKWKcVbJBw/MZsjOZe2sSyJFmuzh8042XWwl54Zg==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.4.tgz",
"integrity": "sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==",
"dependencies": {
"chalk": "^4.0.0",
"jest-diff": "^29.6.3",
"jest-diff": "^29.6.4",
"jest-get-type": "^29.6.3",
"pretty-format": "^29.6.3"
},
@ -10617,13 +10617,13 @@
}
},
"node_modules/jest-resolve": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.3.tgz",
"integrity": "sha512-WMXwxhvzDeA/J+9jz1i8ZKGmbw/n+s988EiUvRI4egM+eTn31Hb5v10Re3slG3/qxntkBt2/6GkQVDGu6Bwyhw==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.4.tgz",
"integrity": "sha512-fPRq+0vcxsuGlG0O3gyoqGTAxasagOxEuyoxHeyxaZbc9QNek0AmJWSkhjlMG+mTsj+8knc/mWb3fXlRNVih7Q==",
"dependencies": {
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
"jest-haste-map": "^29.6.3",
"jest-haste-map": "^29.6.4",
"jest-pnp-resolver": "^1.2.2",
"jest-util": "^29.6.3",
"jest-validate": "^29.6.3",
@ -10636,12 +10636,12 @@
}
},
"node_modules/jest-resolve-dependencies": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.3.tgz",
"integrity": "sha512-iah5nhSPTwtUV7yzpTc9xGg8gP3Ch2VNsuFMsKoCkNCrQSbFtx5KRPemmPJ32AUhTSDqJXB6djPN6zAaUGV53g==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.4.tgz",
"integrity": "sha512-7+6eAmr1ZBF3vOAJVsfLj1QdqeXG+WYhidfLHBRZqGN24MFRIiKG20ItpLw2qRAsW/D2ZUUmCNf6irUr/v6KHA==",
"dependencies": {
"jest-regex-util": "^29.6.3",
"jest-snapshot": "^29.6.3"
"jest-snapshot": "^29.6.4"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@ -10720,29 +10720,29 @@
}
},
"node_modules/jest-runner": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.3.tgz",
"integrity": "sha512-E4zsMhQnjhirFPhDTJgoLMWUrVCDij/KGzWlbslDHGuO8Hl2pVUfOiygMzVZtZq+BzmlqwEr7LYmW+WFLlmX8w==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.4.tgz",
"integrity": "sha512-SDaLrMmtVlQYDuG0iSPYLycG8P9jLI+fRm8AF/xPKhYDB2g6xDWjXBrR5M8gEWsK6KVFlebpZ4QsrxdyIX1Jaw==",
"dependencies": {
"@jest/console": "^29.6.3",
"@jest/environment": "^29.6.3",
"@jest/test-result": "^29.6.3",
"@jest/transform": "^29.6.3",
"@jest/console": "^29.6.4",
"@jest/environment": "^29.6.4",
"@jest/test-result": "^29.6.4",
"@jest/transform": "^29.6.4",
"@jest/types": "^29.6.3",
"@types/node": "*",
"chalk": "^4.0.0",
"emittery": "^0.13.1",
"graceful-fs": "^4.2.9",
"jest-docblock": "^29.6.3",
"jest-environment-node": "^29.6.3",
"jest-haste-map": "^29.6.3",
"jest-environment-node": "^29.6.4",
"jest-haste-map": "^29.6.4",
"jest-leak-detector": "^29.6.3",
"jest-message-util": "^29.6.3",
"jest-resolve": "^29.6.3",
"jest-runtime": "^29.6.3",
"jest-resolve": "^29.6.4",
"jest-runtime": "^29.6.4",
"jest-util": "^29.6.3",
"jest-watcher": "^29.6.3",
"jest-worker": "^29.6.3",
"jest-watcher": "^29.6.4",
"jest-worker": "^29.6.4",
"p-limit": "^3.1.0",
"source-map-support": "0.5.13"
},
@ -10815,16 +10815,16 @@
}
},
"node_modules/jest-runtime": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.3.tgz",
"integrity": "sha512-VM0Z3a9xaqizGpEKwCOIhImkrINYzxgwk8oQAvrmAiXX8LNrJrRjyva30RkuRY0ETAotHLlUcd2moviCA1hgsQ==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.4.tgz",
"integrity": "sha512-s/QxMBLvmwLdchKEjcLfwzP7h+jsHvNEtxGP5P+Fl1FMaJX2jMiIqe4rJw4tFprzCwuSvVUo9bn0uj4gNRXsbA==",
"dependencies": {
"@jest/environment": "^29.6.3",
"@jest/fake-timers": "^29.6.3",
"@jest/globals": "^29.6.3",
"@jest/environment": "^29.6.4",
"@jest/fake-timers": "^29.6.4",
"@jest/globals": "^29.6.4",
"@jest/source-map": "^29.6.3",
"@jest/test-result": "^29.6.3",
"@jest/transform": "^29.6.3",
"@jest/test-result": "^29.6.4",
"@jest/transform": "^29.6.4",
"@jest/types": "^29.6.3",
"@types/node": "*",
"chalk": "^4.0.0",
@ -10832,12 +10832,12 @@
"collect-v8-coverage": "^1.0.0",
"glob": "^7.1.3",
"graceful-fs": "^4.2.9",
"jest-haste-map": "^29.6.3",
"jest-haste-map": "^29.6.4",
"jest-message-util": "^29.6.3",
"jest-mock": "^29.6.3",
"jest-regex-util": "^29.6.3",
"jest-resolve": "^29.6.3",
"jest-snapshot": "^29.6.3",
"jest-resolve": "^29.6.4",
"jest-snapshot": "^29.6.4",
"jest-util": "^29.6.3",
"slash": "^3.0.0",
"strip-bom": "^4.0.0"
@ -10919,25 +10919,25 @@
}
},
"node_modules/jest-snapshot": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.3.tgz",
"integrity": "sha512-66Iu7H1ojiveQMGFnKecHIZPPPBjZwfQEnF6wxqpxGf57sV3YSUtAb5/sTKM5TPa3OndyxZp1wxHFbmgVhc53w==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.4.tgz",
"integrity": "sha512-VC1N8ED7+4uboUKGIDsbvNAZb6LakgIPgAF4RSpF13dN6YaMokfRqO+BaqK4zIh6X3JffgwbzuGqDEjHm/MrvA==",
"dependencies": {
"@babel/core": "^7.11.6",
"@babel/generator": "^7.7.2",
"@babel/plugin-syntax-jsx": "^7.7.2",
"@babel/plugin-syntax-typescript": "^7.7.2",
"@babel/types": "^7.3.3",
"@jest/expect-utils": "^29.6.3",
"@jest/transform": "^29.6.3",
"@jest/expect-utils": "^29.6.4",
"@jest/transform": "^29.6.4",
"@jest/types": "^29.6.3",
"babel-preset-current-node-syntax": "^1.0.0",
"chalk": "^4.0.0",
"expect": "^29.6.3",
"expect": "^29.6.4",
"graceful-fs": "^4.2.9",
"jest-diff": "^29.6.3",
"jest-diff": "^29.6.4",
"jest-get-type": "^29.6.3",
"jest-matcher-utils": "^29.6.3",
"jest-matcher-utils": "^29.6.4",
"jest-message-util": "^29.6.3",
"jest-util": "^29.6.3",
"natural-compare": "^1.4.0",
@ -11214,11 +11214,11 @@
}
},
"node_modules/jest-watcher": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.3.tgz",
"integrity": "sha512-NgpFjZ2U2MKusjidbi4Oiu7tfs+nrgdIxIEVROvH1cFmOei9Uj25lwkMsakqLnH/s0nEcvxO1ck77FiRlcnpZg==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.4.tgz",
"integrity": "sha512-oqUWvx6+On04ShsT00Ir9T4/FvBeEh2M9PTubgITPxDa739p4hoQweWPRGyYeaojgT0xTpZKF0Y/rSY1UgMxvQ==",
"dependencies": {
"@jest/test-result": "^29.6.3",
"@jest/test-result": "^29.6.4",
"@jest/types": "^29.6.3",
"@types/node": "*",
"ansi-escapes": "^4.2.1",
@ -11316,9 +11316,9 @@
}
},
"node_modules/jest-worker": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.3.tgz",
"integrity": "sha512-wacANXecZ/GbQakpf2CClrqrlwsYYDSXFd4fIGdL+dXpM2GWoJ+6bhQ7vR3TKi3+gkSfBkjy1/khH/WrYS4Q6g==",
"version": "29.6.4",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.4.tgz",
"integrity": "sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==",
"dependencies": {
"@types/node": "*",
"jest-util": "^29.6.3",

View File

@ -1,11 +1,56 @@
<template>
<div>
{{ 'oui' }}
</div>
<fragment>
<NcLoadingIcon v-if="loading" />
<ul v-if="!loading">
<NcListItem v-for="episode in episodes"
:key="episode.episodeUrl"
:name="episode.episodeName" />
</ul>
</fragment>
</template>
<script>
import { NcListItem, NcLoadingIcon } from '@nextcloud/vue'
import axios from '@nextcloud/axios'
import { generateUrl } from '@nextcloud/router'
import { showError } from '@nextcloud/dialogs'
export default {
name: 'List',
components: {
NcListItem,
NcLoadingIcon,
},
data() {
return {
episodes: [],
loading: true,
}
},
computed: {
url() {
return atob(this.$route.params.url)
},
},
async mounted() {
try {
this.loading = true
const episodes = await axios.get(generateUrl('/apps/repod/episodes?url={url}', { url: this.url }))
this.episodes = episodes.data
} catch (e) {
console.error(e)
showError(t('Could not fetch episodes'))
} finally {
this.loading = false
}
},
}
</script>
<style scoped>
ul {
background-color: rgba(0, 0, 0, .9);
height: 100%;
overflow: auto;
}
</style>

View File

@ -12,6 +12,7 @@
:image-url="feed.imageUrl"
:link="feed.link"
:title="feed.title" />
<List v-if="feed" />
</fragment>
</template>
@ -19,6 +20,7 @@
import { NcEmptyContent, NcLoadingIcon } from '@nextcloud/vue'
import Alert from 'vue-material-design-icons/Alert.vue'
import Banner from '../components/Feed/Banner.vue'
import List from '../components/Feed/List.vue'
import axios from '@nextcloud/axios'
import { generateUrl } from '@nextcloud/router'
@ -29,6 +31,7 @@ export default {
Banner,
NcEmptyContent,
NcLoadingIcon,
List,
},
data() {
return {