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.
- package/dist/config/index.d.ts +9 -2
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +9 -2
- package/dist/factories/firebaseAccessTokenService.d.ts +3 -0
- package/dist/factories/firebaseAccessTokenService.d.ts.map +1 -0
- package/dist/factories/firebaseAccessTokenService.js +9 -0
- package/dist/factories/loggerService.d.ts +3 -0
- package/dist/factories/loggerService.d.ts.map +1 -0
- package/dist/factories/loggerService.js +9 -0
- package/dist/factories/notificationsService.d.ts +3 -0
- package/dist/factories/notificationsService.d.ts.map +1 -0
- package/dist/factories/notificationsService.js +13 -0
- package/dist/factories/podcastIndex.d.ts.map +1 -1
- package/dist/factories/podcastIndex.js +9 -5
- package/dist/factories/timerManager.d.ts +3 -0
- package/dist/factories/timerManager.d.ts.map +1 -0
- package/dist/factories/timerManager.js +7 -0
- package/dist/lib/_request.d.ts +9 -0
- package/dist/lib/_request.d.ts.map +1 -0
- package/dist/lib/_request.js +19 -0
- package/dist/lib/chapters/chapters.d.ts.map +1 -1
- package/dist/lib/chapters/chapters.js +26 -13
- package/dist/lib/compat/chapters/chapters.d.ts.map +1 -1
- package/dist/lib/compat/chapters/chapters.js +4 -1
- package/dist/lib/compat/partytime/channel.d.ts +2 -2
- package/dist/lib/compat/partytime/channel.d.ts.map +1 -1
- package/dist/lib/compat/partytime/channel.js +11 -7
- package/dist/lib/compat/partytime/item.js +1 -1
- package/dist/lib/rss/channel/channel.d.ts.map +1 -1
- package/dist/lib/rss/channel/channel.js +4 -5
- package/dist/lib/rss/channel/channelAbout.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelAbout.js +3 -3
- package/dist/lib/rss/channel/channelCategory.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelCategory.js +3 -3
- package/dist/lib/rss/channel/channelChat.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelChat.js +3 -3
- package/dist/lib/rss/channel/channelDescription.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelDescription.js +3 -3
- package/dist/lib/rss/channel/channelFunding.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelFunding.js +3 -3
- package/dist/lib/rss/channel/channelImage.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelImage.js +3 -3
- package/dist/lib/rss/channel/channelLicense.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelLicense.js +3 -3
- package/dist/lib/rss/channel/channelLocation.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelLocation.js +3 -3
- package/dist/lib/rss/channel/channelPerson.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelPerson.js +3 -3
- package/dist/lib/rss/channel/channelPodroll.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelPodroll.js +3 -3
- package/dist/lib/rss/channel/channelPublisher.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelPublisher.js +3 -3
- package/dist/lib/rss/channel/channelRemoteItem.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelRemoteItem.js +3 -3
- package/dist/lib/rss/channel/channelSeason.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelSeason.js +3 -3
- package/dist/lib/rss/channel/channelSocialInteract.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelSocialInteract.js +3 -3
- package/dist/lib/rss/channel/channelTrailer.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelTrailer.js +3 -3
- package/dist/lib/rss/channel/channelTxt.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelTxt.js +3 -3
- package/dist/lib/rss/channel/channelValue.d.ts.map +1 -1
- package/dist/lib/rss/channel/channelValue.js +3 -3
- package/dist/lib/rss/feed/feed.d.ts +5 -1
- package/dist/lib/rss/feed/feed.d.ts.map +1 -1
- package/dist/lib/rss/feed/feed.js +15 -11
- package/dist/lib/rss/hash/parsedFeed.d.ts.map +1 -1
- package/dist/lib/rss/hash/parsedFeed.js +2 -2
- package/dist/lib/rss/hash/parsedItemChapter.d.ts +3 -0
- package/dist/lib/rss/hash/parsedItemChapter.d.ts.map +1 -0
- package/dist/lib/rss/hash/parsedItemChapter.js +29 -0
- package/dist/lib/rss/item/item.d.ts.map +1 -1
- package/dist/lib/rss/item/item.js +45 -44
- package/dist/lib/rss/item/itemValue.d.ts.map +1 -1
- package/dist/lib/rss/item/itemValue.js +2 -1
- package/dist/lib/rss/liveItem/liveItem.d.ts.map +1 -1
- package/dist/lib/rss/liveItem/liveItem.js +14 -9
- package/dist/lib/rss/parser.d.ts +5 -1
- package/dist/lib/rss/parser.d.ts.map +1 -1
- package/dist/lib/rss/parser.js +26 -25
- package/dist/lib/rss/remoteItemParser.d.ts.map +1 -1
- package/dist/lib/rss/remoteItemParser.js +2 -1
- 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
|
|
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 (
|
|
47
|
+
if (timerManager_1.timerManager.shouldLogTimer) {
|
|
43
48
|
Object.entries(timerAccumulator).forEach(([key, value]) => {
|
|
44
|
-
|
|
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
|
|
54
|
-
const
|
|
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,
|
|
66
|
+
yield processLiveItemBatch(liveItemObjDtosBatch, channel, channelSeasonIndex, existingLiveItemMap, updatedLiveItemItemIds, newItemGuids, transactionalEntityManager, timerAccumulator, liveItemService);
|
|
62
67
|
}));
|
|
63
68
|
}
|
|
64
69
|
logTimerAccumulator(timerAccumulator);
|
|
65
|
-
const itemIdsToDelete =
|
|
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 };
|
package/dist/lib/rss/parser.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
export declare const getAndParseRSSFeed: (url: string) => Promise<import("podcast-partytime").FeedObject>;
|
|
2
|
-
|
|
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":"
|
|
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"}
|
package/dist/lib/rss/parser.js
CHANGED
|
@@ -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
|
|
32
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
47
|
+
timerManager_1.timerManager.start(timerFullRunLabel);
|
|
50
48
|
try {
|
|
51
|
-
|
|
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
|
-
|
|
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
|
|
77
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
101
|
+
loggerService_1.loggerService.logError('parseRSSFeedAndSaveToDatabase', error);
|
|
100
102
|
}
|
|
101
103
|
}
|
|
102
104
|
finally {
|
|
103
|
-
|
|
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 (
|
|
109
|
-
|
|
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;
|
|
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
|
-
|
|
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.
|
|
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.
|
|
21
|
-
"podverse-external-services": "^5.1.
|
|
22
|
-
"podverse-helpers": "^5.1.
|
|
23
|
-
"podverse-orm": "^5.1.
|
|
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.
|
|
27
|
-
"@eslint/eslintrc": "^3.1
|
|
28
|
-
"@eslint/js": "^9.
|
|
29
|
-
"@types/node": "^
|
|
30
|
-
"eslint": "^9.
|
|
31
|
-
"nodemon": "^3.1.
|
|
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.
|
|
34
|
-
"typescript-eslint": "^8.0
|
|
33
|
+
"typescript": "^5.9.2",
|
|
34
|
+
"typescript-eslint": "^8.44.0"
|
|
35
35
|
}
|
|
36
36
|
}
|