podverse-parser 5.1.0-alpha.8 → 5.1.3-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/config/index.d.ts +9 -2
  2. package/dist/config/index.d.ts.map +1 -1
  3. package/dist/config/index.js +9 -2
  4. package/dist/factories/firebaseAccessTokenService.d.ts +3 -0
  5. package/dist/factories/firebaseAccessTokenService.d.ts.map +1 -0
  6. package/dist/factories/firebaseAccessTokenService.js +9 -0
  7. package/dist/factories/loggerService.d.ts +3 -0
  8. package/dist/factories/loggerService.d.ts.map +1 -0
  9. package/dist/factories/loggerService.js +9 -0
  10. package/dist/factories/notificationsService.d.ts +3 -0
  11. package/dist/factories/notificationsService.d.ts.map +1 -0
  12. package/dist/factories/notificationsService.js +13 -0
  13. package/dist/factories/podcastIndex.d.ts.map +1 -1
  14. package/dist/factories/podcastIndex.js +9 -5
  15. package/dist/factories/timerManager.d.ts +3 -0
  16. package/dist/factories/timerManager.d.ts.map +1 -0
  17. package/dist/factories/timerManager.js +7 -0
  18. package/dist/lib/_request.d.ts +9 -0
  19. package/dist/lib/_request.d.ts.map +1 -0
  20. package/dist/lib/_request.js +19 -0
  21. package/dist/lib/chapters/chapters.d.ts.map +1 -1
  22. package/dist/lib/chapters/chapters.js +26 -13
  23. package/dist/lib/compat/chapters/chapters.d.ts.map +1 -1
  24. package/dist/lib/compat/chapters/chapters.js +4 -1
  25. package/dist/lib/compat/partytime/channel.d.ts +2 -2
  26. package/dist/lib/compat/partytime/channel.d.ts.map +1 -1
  27. package/dist/lib/compat/partytime/channel.js +11 -7
  28. package/dist/lib/compat/partytime/item.js +1 -1
  29. package/dist/lib/rss/channel/channel.d.ts.map +1 -1
  30. package/dist/lib/rss/channel/channel.js +4 -5
  31. package/dist/lib/rss/channel/channelAbout.d.ts.map +1 -1
  32. package/dist/lib/rss/channel/channelAbout.js +3 -3
  33. package/dist/lib/rss/channel/channelCategory.d.ts.map +1 -1
  34. package/dist/lib/rss/channel/channelCategory.js +3 -3
  35. package/dist/lib/rss/channel/channelChat.d.ts.map +1 -1
  36. package/dist/lib/rss/channel/channelChat.js +3 -3
  37. package/dist/lib/rss/channel/channelDescription.d.ts.map +1 -1
  38. package/dist/lib/rss/channel/channelDescription.js +3 -3
  39. package/dist/lib/rss/channel/channelFunding.d.ts.map +1 -1
  40. package/dist/lib/rss/channel/channelFunding.js +3 -3
  41. package/dist/lib/rss/channel/channelImage.d.ts.map +1 -1
  42. package/dist/lib/rss/channel/channelImage.js +3 -3
  43. package/dist/lib/rss/channel/channelLicense.d.ts.map +1 -1
  44. package/dist/lib/rss/channel/channelLicense.js +3 -3
  45. package/dist/lib/rss/channel/channelLocation.d.ts.map +1 -1
  46. package/dist/lib/rss/channel/channelLocation.js +3 -3
  47. package/dist/lib/rss/channel/channelPerson.d.ts.map +1 -1
  48. package/dist/lib/rss/channel/channelPerson.js +3 -3
  49. package/dist/lib/rss/channel/channelPodroll.d.ts.map +1 -1
  50. package/dist/lib/rss/channel/channelPodroll.js +3 -3
  51. package/dist/lib/rss/channel/channelPublisher.d.ts.map +1 -1
  52. package/dist/lib/rss/channel/channelPublisher.js +3 -3
  53. package/dist/lib/rss/channel/channelRemoteItem.d.ts.map +1 -1
  54. package/dist/lib/rss/channel/channelRemoteItem.js +3 -3
  55. package/dist/lib/rss/channel/channelSeason.d.ts.map +1 -1
  56. package/dist/lib/rss/channel/channelSeason.js +3 -3
  57. package/dist/lib/rss/channel/channelSocialInteract.d.ts.map +1 -1
  58. package/dist/lib/rss/channel/channelSocialInteract.js +3 -3
  59. package/dist/lib/rss/channel/channelTrailer.d.ts.map +1 -1
  60. package/dist/lib/rss/channel/channelTrailer.js +3 -3
  61. package/dist/lib/rss/channel/channelTxt.d.ts.map +1 -1
  62. package/dist/lib/rss/channel/channelTxt.js +3 -3
  63. package/dist/lib/rss/channel/channelValue.d.ts.map +1 -1
  64. package/dist/lib/rss/channel/channelValue.js +3 -3
  65. package/dist/lib/rss/feed/feed.d.ts +5 -1
  66. package/dist/lib/rss/feed/feed.d.ts.map +1 -1
  67. package/dist/lib/rss/feed/feed.js +15 -11
  68. package/dist/lib/rss/hash/parsedFeed.d.ts.map +1 -1
  69. package/dist/lib/rss/hash/parsedFeed.js +2 -2
  70. package/dist/lib/rss/hash/parsedItemChapter.d.ts +3 -0
  71. package/dist/lib/rss/hash/parsedItemChapter.d.ts.map +1 -0
  72. package/dist/lib/rss/hash/parsedItemChapter.js +29 -0
  73. package/dist/lib/rss/item/item.d.ts.map +1 -1
  74. package/dist/lib/rss/item/item.js +45 -44
  75. package/dist/lib/rss/item/itemValue.d.ts.map +1 -1
  76. package/dist/lib/rss/item/itemValue.js +2 -1
  77. package/dist/lib/rss/liveItem/liveItem.d.ts.map +1 -1
  78. package/dist/lib/rss/liveItem/liveItem.js +14 -9
  79. package/dist/lib/rss/parser.d.ts +5 -1
  80. package/dist/lib/rss/parser.d.ts.map +1 -1
  81. package/dist/lib/rss/parser.js +26 -25
  82. package/dist/lib/rss/remoteItemParser.d.ts.map +1 -1
  83. package/dist/lib/rss/remoteItemParser.js +2 -1
  84. package/package.json +13 -13
@@ -12,11 +12,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.handleParsedLiveItems = void 0;
13
13
  const podverse_helpers_1 = require("podverse-helpers");
14
14
  const podverse_orm_1 = require("podverse-orm");
15
- const config_1 = require("@parser/config");
16
15
  const liveItem_1 = require("@parser/lib/compat/partytime/liveItem");
17
16
  const item_1 = require("@parser/lib/rss/item/item");
18
17
  const itemFlagStatus_1 = require("podverse-orm/dist/entities/item/itemFlagStatus");
19
- const processLiveItemBatch = (liveItemObjDtosBatch, channel, channelSeasonIndex, existingLiveItemMap, updatedLiveItemIds, newItemGuids, transactionalEntityManager, timerAccumulator, liveItemService) => __awaiter(void 0, void 0, void 0, function* () {
18
+ const timerManager_1 = require("@parser/factories/timerManager");
19
+ const loggerService_1 = require("@parser/factories/loggerService");
20
+ const processLiveItemBatch = (liveItemObjDtosBatch, channel, channelSeasonIndex, existingLiveItemMap, updatedLiveItemIds, newItemGuids,
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
+ transactionalEntityManager,
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
+ timerAccumulator, liveItemService) => __awaiter(void 0, void 0, void 0, function* () {
20
25
  for (const liveItemObjDto of liveItemObjDtosBatch) {
21
26
  const itemDto = liveItemObjDto.item;
22
27
  const item = yield (0, item_1.handleParsedItem)({
@@ -39,9 +44,9 @@ const processLiveItemBatch = (liveItemObjDtosBatch, channel, channelSeasonIndex,
39
44
  }
40
45
  });
41
46
  const logTimerAccumulator = (timerAccumulator) => {
42
- if (config_1.config.shouldLogTimer) {
47
+ if (timerManager_1.timerManager.shouldLogTimer) {
43
48
  Object.entries(timerAccumulator).forEach(([key, value]) => {
44
- podverse_helpers_1.logger.info(`${key} took ${value}ms`);
49
+ loggerService_1.loggerService.info(`${key} took ${value}ms`);
45
50
  });
46
51
  }
47
52
  };
@@ -50,21 +55,21 @@ const handleParsedLiveItems = (parsedLiveItems, channel, channelSeasonIndex) =>
50
55
  const liveItemService = new podverse_orm_1.LiveItemService();
51
56
  const existingLiveItems = yield liveItemService.getManyByChannel(channel, { relations: ['item', 'live_item_status'] });
52
57
  const existingLiveItemMap = new Map(existingLiveItems.map(live_item => [live_item.item.guid, live_item]));
53
- const existingLiveItemIds = existingLiveItems.map(live_item => live_item.id);
54
- const updatedLiveItemIds = [];
58
+ const existingLiveItemItemIds = existingLiveItems.map(live_item => live_item.item.id);
59
+ const updatedLiveItemItemIds = [];
55
60
  const newItemGuids = [];
56
61
  const liveItemObjDtos = (0, liveItem_1.compatLiveItemsDtos)(parsedLiveItems);
57
62
  const timerAccumulator = (0, item_1.createItemTimerAccumulator)();
58
63
  const liveItemObjDtosBatchs = (0, podverse_helpers_1.chunkArray)(liveItemObjDtos, 50);
59
64
  for (const liveItemObjDtosBatch of liveItemObjDtosBatchs) {
60
65
  yield podverse_orm_1.AppDataSourceReadWrite.manager.transaction((transactionalEntityManager) => __awaiter(void 0, void 0, void 0, function* () {
61
- yield processLiveItemBatch(liveItemObjDtosBatch, channel, channelSeasonIndex, existingLiveItemMap, updatedLiveItemIds, newItemGuids, transactionalEntityManager, timerAccumulator, liveItemService);
66
+ yield processLiveItemBatch(liveItemObjDtosBatch, channel, channelSeasonIndex, existingLiveItemMap, updatedLiveItemItemIds, newItemGuids, transactionalEntityManager, timerAccumulator, liveItemService);
62
67
  }));
63
68
  }
64
69
  logTimerAccumulator(timerAccumulator);
65
- const itemIdsToDelete = existingLiveItemIds.filter(id => !updatedLiveItemIds.includes(id));
70
+ const itemIdsToDelete = existingLiveItemItemIds.filter(id => !updatedLiveItemItemIds.includes(id));
66
71
  const itemsToDelete = existingLiveItems
67
- .filter(liveItem => itemIdsToDelete.includes(liveItem.id))
72
+ .filter(liveItem => itemIdsToDelete.includes(liveItem.item.id))
68
73
  .map(liveItem => liveItem.item);
69
74
  yield itemService.updateManyFlagStatus(itemsToDelete, itemFlagStatus_1.ItemFlagStatusStatusEnum.PendingArchive);
70
75
  return { newItemGuids };
@@ -1,3 +1,7 @@
1
1
  export declare const getAndParseRSSFeed: (url: string) => Promise<import("podcast-partytime").FeedObject>;
2
- export declare const parseRSSFeedAndSaveToDatabase: (url: string, podcast_index_id: number) => Promise<void>;
2
+ type ParseRSSFeedAndSaveToDatabase = {
3
+ forceParse?: boolean;
4
+ };
5
+ export declare const parseRSSFeedAndSaveToDatabase: (url: string, podcast_index_id: number, options?: ParseRSSFeedAndSaveToDatabase) => Promise<void>;
6
+ export {};
3
7
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/lib/rss/parser.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,kBAAkB,GAAU,KAAK,MAAM,oDASnD,CAAC;AAQF,eAAO,MAAM,6BAA6B,GAAU,KAAK,MAAM,EAAE,kBAAkB,MAAM,kBAoFxF,CAAC"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/lib/rss/parser.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,kBAAkB,GAAU,KAAK,MAAM,oDAUnD,CAAC;AAQF,KAAK,6BAA6B,GAAG;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAA;AAED,eAAO,MAAM,6BAA6B,GACxC,KAAK,MAAM,EACX,kBAAkB,MAAM,EACxB,UAAS,6BAAkC,kBAwF5C,CAAC"}
@@ -11,10 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.parseRSSFeedAndSaveToDatabase = exports.getAndParseRSSFeed = void 0;
13
13
  const podcast_partytime_1 = require("podcast-partytime");
14
- const podverse_external_services_1 = require("podverse-external-services");
15
- const podverse_helpers_1 = require("podverse-helpers");
16
14
  const podverse_orm_1 = require("podverse-orm");
17
- const config_1 = require("@parser/config");
18
15
  const notifications_1 = require("@parser/lib/notifications");
19
16
  const channel_1 = require("@parser/lib/rss/channel/channel");
20
17
  const channelSeason_1 = require("@parser/lib/rss/channel/channelSeason");
@@ -23,38 +20,42 @@ const item_1 = require("@parser/lib/rss/item/item");
23
20
  const liveItem_1 = require("@parser/lib/rss/liveItem/liveItem");
24
21
  const remoteItemParser_1 = require("@parser/lib/rss/remoteItemParser");
25
22
  const errors_1 = require("./errors");
23
+ const timerManager_1 = require("@parser/factories/timerManager");
24
+ const loggerService_1 = require("@parser/factories/loggerService");
25
+ const firebaseAccessTokenService_1 = require("@parser/factories/firebaseAccessTokenService");
26
+ const notificationsService_1 = require("@parser/factories/notificationsService");
27
+ const _request_1 = require("../_request");
26
28
  /*
27
29
  NOTE: All RSS feeds that have a podcast_index_id will be saved to the database.
28
30
  RSS feeds without podcast_index_id (Add By RSS feeds) will NOT be saved to the database.
29
31
  */
30
32
  const getAndParseRSSFeed = (url) => __awaiter(void 0, void 0, void 0, function* () {
31
- const xml = yield (0, podverse_helpers_1.request)(url);
32
- const parsedFeed = (0, podcast_partytime_1.parseFeed)(xml, { allowMissingGuid: true });
33
+ const response = yield (0, _request_1._request)(url);
34
+ const data = response.data;
35
+ const parsedFeed = (0, podcast_partytime_1.parseFeed)(data, { allowMissingGuid: true });
33
36
  if (!parsedFeed) {
34
37
  throw new Error(`getAndParseRSSFeed: parsedFeed not found for ${url}`);
35
38
  }
36
39
  return parsedFeed;
37
40
  });
38
41
  exports.getAndParseRSSFeed = getAndParseRSSFeed;
39
- // export const parseRSSAddByRSSFeed = async (url: string) => {
40
- // const parsedFeed = await getAndParseRSSFeed(url);
41
- // const compatData = convertParsedRSSFeedToCompat(parsedFeed);
42
- // return compatData;
43
- // };
44
- const parseRSSFeedAndSaveToDatabase = (url, podcast_index_id) => __awaiter(void 0, void 0, void 0, function* () {
42
+ const parseRSSFeedAndSaveToDatabase = (url_1, podcast_index_id_1, ...args_1) => __awaiter(void 0, [url_1, podcast_index_id_1, ...args_1], void 0, function* (url, podcast_index_id, options = {}) {
45
43
  const feedService = new podverse_orm_1.FeedService();
46
44
  let feed = null;
47
45
  let channel = null;
48
46
  const timerFullRunLabel = `parseRSSFeedAndSaveToDatabase ${url} ${podcast_index_id}`;
49
- podverse_helpers_1.timerManager.start(timerFullRunLabel);
47
+ timerManager_1.timerManager.start(timerFullRunLabel);
50
48
  try {
51
- podverse_helpers_1.logger.info(`parseRSSFeedAndSaveToDatabase ${url} ${podcast_index_id}`);
49
+ if (!url || !podcast_index_id) {
50
+ throw new Error(`parseRSSFeedAndSaveToDatabase: url or podcast_index_id is missing for ${url} ${podcast_index_id}`);
51
+ }
52
+ loggerService_1.loggerService.info(`parseRSSFeedAndSaveToDatabase url: ${url} podcast_index_id: ${podcast_index_id}`);
52
53
  feed = yield (0, feed_1.handleGetRSSFeed)(url, podcast_index_id);
53
54
  if (!(0, podverse_orm_1.checkIfFeedFlagStatusShouldParse)(feed.feed_flag_status.id)) {
54
55
  throw new Error(`parseRSSFeedAndSaveToDatabase: feed_flag_status.status is not Active or AlwaysAllow for ${feed.id} ${feed.channel.podcast_index_id} ${feed.url}`);
55
56
  }
56
57
  const parsedFeed = yield (0, feed_1.handleRequestRSSFeed)(feed);
57
- feed = yield (0, feed_1.handleParsedFeed)(parsedFeed, feed);
58
+ feed = yield (0, feed_1.handleParsedFeed)(parsedFeed, feed, options);
58
59
  yield feedService.update(feed.id, { is_parsing: new Date() });
59
60
  if ((0, podverse_orm_1.checkIfSpamFeed)(parsedFeed)) {
60
61
  yield feedService.updateFlagStatus(feed, podverse_orm_1.FeedFlagStatusStatusEnum.Spam);
@@ -66,15 +67,16 @@ const parseRSSFeedAndSaveToDatabase = (url, podcast_index_id) => __awaiter(void
66
67
  const channelSeasonService = new podverse_orm_1.ChannelSeasonService();
67
68
  const channelSeasonIndex = yield channelSeasonService.getChannelSeasonIndex(channel);
68
69
  yield (0, channel_1.handleParsedChannel)(parsedFeed, channel, channelSeasonIndex);
69
- podverse_helpers_1.logger.info(`item count: ${parsedFeed.items.length}`);
70
+ loggerService_1.loggerService.info(`item count: ${parsedFeed.items.length}`);
70
71
  const newItemIdentifiers = yield (0, item_1.handleParsedItems)(parsedFeed.items, channel, channelSeasonIndex);
71
72
  let newLiveItemIdentifiers = { newItemGuids: [] };
72
73
  if (parsedFeed.podcastLiveItems) {
73
74
  newLiveItemIdentifiers = yield (0, liveItem_1.handleParsedLiveItems)(parsedFeed.podcastLiveItems, channel, channelSeasonIndex);
74
75
  }
75
76
  if (newItemIdentifiers.newItemGuids.length > 0 || newLiveItemIdentifiers.newItemGuids.length > 0) {
76
- const googleAuthToken = yield (0, podverse_external_services_1.firebaseGenerateAccessToken)();
77
- const notificationsService = new podverse_external_services_1.NotificationsService({ googleAuthToken });
77
+ const firebaseAccessTokenService = (0, firebaseAccessTokenService_1.firebaseAccessTokenServiceFactory)();
78
+ const googleAuthToken = yield firebaseAccessTokenService.generateAccessToken();
79
+ const notificationsService = (0, notificationsService_1.NotificationsServiceFactory)(googleAuthToken);
78
80
  const accountFCMDeviceService = new podverse_orm_1.AccountFCMDeviceService();
79
81
  const itemService = new podverse_orm_1.ItemService();
80
82
  if (newItemIdentifiers.newItemGuids.length > 0) {
@@ -89,26 +91,25 @@ const parseRSSFeedAndSaveToDatabase = (url, podcast_index_id) => __awaiter(void
89
91
  }
90
92
  catch (error) {
91
93
  if (error instanceof errors_1.FeedIsParsingError) {
92
- podverse_helpers_1.logger.warn(`Feed ${feed === null || feed === void 0 ? void 0 : feed.id} is already parsing.`);
94
+ loggerService_1.loggerService.warn(`Feed ${feed === null || feed === void 0 ? void 0 : feed.id} is already parsing.`);
93
95
  }
94
96
  else if (error instanceof errors_1.FeedNoChangesSinceLastParsedError) {
95
- podverse_helpers_1.logger.warn(`Feed ${feed === null || feed === void 0 ? void 0 : feed.id} has no changes since last parsed.`);
97
+ loggerService_1.loggerService.warn(`Feed ${feed === null || feed === void 0 ? void 0 : feed.id} has no changes since last parsed.`);
96
98
  }
97
99
  else {
98
100
  // TODO: Handle other errors
99
- (0, podverse_helpers_1.logError)('parseRSSFeedAndSaveToDatabase', error);
101
+ loggerService_1.loggerService.logError('parseRSSFeedAndSaveToDatabase', error);
100
102
  }
101
103
  }
102
104
  finally {
103
- podverse_helpers_1.timerManager.endAll();
105
+ loggerService_1.loggerService.info(`Finished parsing channel: ${channel === null || channel === void 0 ? void 0 : channel.id} ${channel === null || channel === void 0 ? void 0 : channel.id_text} feed: ${feed === null || feed === void 0 ? void 0 : feed.id} url: ${url} podcast_index_id: ${podcast_index_id}`);
106
+ timerManager_1.timerManager.endAll();
104
107
  if (feed) {
105
108
  yield feedService.update(feed.id, { is_parsing: null });
106
109
  }
107
110
  }
108
- if (config_1.config.nodeEnv === 'production') {
109
- if (channel) {
110
- yield (0, remoteItemParser_1.handleAllRemoteItemsFeedParsing)(channel);
111
- }
111
+ if (channel) {
112
+ yield (0, remoteItemParser_1.handleAllRemoteItemsFeedParsing)(channel);
112
113
  }
113
114
  return;
114
115
  });
@@ -1 +1 @@
1
- {"version":3,"file":"remoteItemParser.d.ts","sourceRoot":"","sources":["../../../src/lib/rss/remoteItemParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EACsD,MAAM,cAAc,CAAC;AAoD3F,eAAO,MAAM,+BAA+B,GAAU,SAAS,OAAO,kBAOrE,CAAC"}
1
+ {"version":3,"file":"remoteItemParser.d.ts","sourceRoot":"","sources":["../../../src/lib/rss/remoteItemParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EACsD,MAAM,cAAc,CAAC;AAqD3F,eAAO,MAAM,+BAA+B,GAAU,SAAS,OAAO,kBAOrE,CAAC"}
@@ -14,6 +14,7 @@ const podverse_helpers_1 = require("podverse-helpers");
14
14
  const podverse_orm_1 = require("podverse-orm");
15
15
  const podcastIndex_1 = require("@parser/factories/podcastIndex");
16
16
  const parser_1 = require("@parser/lib/rss/parser");
17
+ const loggerService_1 = require("@parser/factories/loggerService");
17
18
  function handleRequestDelay(url) {
18
19
  return __awaiter(this, void 0, void 0, function* () {
19
20
  const delayConfig = [
@@ -49,7 +50,7 @@ const handleRemoteItemsFeedParsing = (feedGuidsToParse) => __awaiter(void 0, voi
49
50
  let feed = yield feedService.getByUrlAndPodcastIndexId({ url: piFeedData.url, podcast_index_id: piFeedData.id });
50
51
  if (!feed) {
51
52
  yield handleRequestDelay(piFeedData.url);
52
- podverse_helpers_1.logger.info(`handleRemoteItemsFeedParsing: ${piFeedData.url} ${piFeedData.id}`);
53
+ loggerService_1.loggerService.info(`handleRemoteItemsFeedParsing: ${piFeedData.url} ${piFeedData.id}`);
53
54
  yield (0, parser_1.parseRSSFeedAndSaveToDatabase)(piFeedData.url, piFeedData.id);
54
55
  }
55
56
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "podverse-parser",
3
- "version": "5.1.0-alpha.8",
3
+ "version": "5.1.3-alpha.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -17,20 +17,20 @@
17
17
  "license": "AGPLv3",
18
18
  "dependencies": {
19
19
  "module-alias": "^2.2.3",
20
- "podcast-partytime": "^4.8.1",
21
- "podverse-external-services": "^5.1.1-alpha.13",
22
- "podverse-helpers": "^5.1.2-alpha.6",
23
- "podverse-orm": "^5.1.0-alpha.10"
20
+ "podcast-partytime": "^4.9.1",
21
+ "podverse-external-services": "^5.1.3-alpha.0",
22
+ "podverse-helpers": "^5.1.3-alpha.0",
23
+ "podverse-orm": "^5.1.3-alpha.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@eslint/config-array": "^0.18.0",
27
- "@eslint/eslintrc": "^3.1.0",
28
- "@eslint/js": "^9.8.0",
29
- "@types/node": "^22.0.0",
30
- "eslint": "^9.9.0",
31
- "nodemon": "^3.1.4",
26
+ "@eslint/config-array": "^0.21.0",
27
+ "@eslint/eslintrc": "^3.3.1",
28
+ "@eslint/js": "^9.35.0",
29
+ "@types/node": "^24.4.0",
30
+ "eslint": "^9.35.0",
31
+ "nodemon": "^3.1.10",
32
32
  "ts-node": "^10.9.2",
33
- "typescript": "^5.5.4",
34
- "typescript-eslint": "^8.0.1"
33
+ "typescript": "^5.9.2",
34
+ "typescript-eslint": "^8.44.0"
35
35
  }
36
36
  }