-
Notifications
You must be signed in to change notification settings - Fork 15
/
package.json
233 lines (233 loc) · 14.6 KB
/
package.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
{
"name": "podverse-api",
"version": "4.16.26",
"description": "Data API, database migration scripts, and backend services for all Podverse models.",
"private": true,
"contributors": [
"Mitch Downey"
],
"main": "dist/bundle.js",
"scripts": {
"lint:prettier": "npm run prettier:check",
"prettier:base": "prettier",
"prettier:list": "npm run prettier:base -- --list-different \"src/**/*.{ts,js}\" \"__tests__/**/*.{ts,js}\"",
"prettier:check": "npm run prettier:base -- --check \"src/**/*.{ts,js}\" \"__tests__/**/*.{ts,js}\"",
"prettier:write": "npm run prettier:base -- --write",
"prettier:fix": "npm run prettier:write -- \"src/**/*.{ts,js}\" \"__tests__/**/*.{ts,js}\"",
"build": "webpack --progress --colors",
"dev": "NODE_ENV=development nodemon --watch 'src/**/*' -e ts,tsx,json --exec ts-node -r dotenv/config -r tsconfig-paths/register src/server.ts",
"dev:scripts:addAllOrphanFeedUrlsToPriorityQueue": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/queue/addAllOrphanFeedUrlsToPriorityQueue.ts",
"dev:scripts:addAllPublicFeedUrlsToQueue": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/queue/addAllPublicFeedUrlsToQueue.ts",
"dev:scripts:addAllUntitledPodcastFeedUrlsToQueue": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/queue/addAllUntitledPodcastFeedUrlsToQueue.ts",
"dev:scripts:addAndParseFeedUrls": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/feedUrls/addAndParseFeedUrls.ts",
"dev:scripts:addAuthorityFeedUrlByPodcastIdToQueue": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/queue/addAuthorityFeedUrlByPodcastIdToQueue.ts",
"dev:scripts:addFeedsByPodcastIndexIdToQueue": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/podcastIndex/addFeedsByPodcastIndexIdToQueue.ts",
"dev:scripts:addFeedsToQueueByPriority": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/queue/addFeedsToQueueByPriority.ts",
"dev:scripts:addFeedUrls": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/feedUrls/addFeedUrls.ts",
"dev:scripts:addFeedUrlsByFeedIdToQueue": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/queue/addFeedUrlsByFeedIdToQueue.ts",
"dev:scripts:addNewFeedsFromPodcastIndex": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/podcastIndex/addNewFeedsFromPodcastIndex.ts",
"dev:scripts:addOrUpdatePodcastFromPodcastIndex": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/podcastIndex/addOrUpdatePodcastFromPodcastIndex.ts",
"dev:scripts:addNonPodcastIndexFeedUrlsToPriorityQueue": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/queue/addNonPodcastIndexFeedUrlsToPriorityQueue.ts",
"dev:scripts:addRecentlyUpdatedFeedUrlsToPriorityQueue": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/podcastIndex/addRecentlyUpdatedFeedUrlsToPriorityQueue.ts",
"dev:scripts:backupDatabase": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/backupDatabase/backupDatabase.ts",
"dev:scripts:devtools:generateDeadRowsCSV": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/devtools/db/generateDeadRowsCSV.ts",
"dev:scripts:dropAndRecreateEpisodesMostRecentMaterializedView": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/episodes/dropAndRecreateEpisodesMostRecentMaterializedView.ts",
"dev:scripts:hideDeadPodcasts": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/podcastIndex/hideDeadPodcasts.ts",
"dev:scripts:parseFeedUrlsByPodcastIds": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/parser/parseFeedUrlsByPodcastIds.ts",
"dev:scripts:parseFeedUrlsByPodcastIndexIds": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/parser/parseFeedUrlsByPodcastIndexIds.ts",
"dev:scripts:parseFeedUrlsFromQueue": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/parser/parseFeedUrlsFromQueue.ts",
"dev:scripts:parseOrphanFeedUrls": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/parser/parseOrphanFeedUrls.ts",
"dev:scripts:parsePublicFeedUrls": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/parser/parsePublicFeedUrls.ts",
"dev:scripts:podcastindex:updateValueTagEnabledPodcastIdsFromPI": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/podcastIndex/updateValueTagEnabledPodcastIdsFromPI.ts",
"dev:scripts:podping:runLiveItemListener": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/podping/runLiveItemListener.ts",
"dev:scripts:queryUniquePageviews": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/stats/queryUniquePageviews.ts",
"dev:scripts:receiveErrorMessageFromQueue": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/queue/receiveErrorMessageFromQueue.ts",
"dev:scripts:refreshEpisodesMostRecentMaterializedView": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/episodes/refreshEpisodesMostRecentMaterializedView.ts",
"dev:scripts:refreshMediaRefsVideosMaterializedView": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/mediaRefs_videos/refreshMediaRefsVideosMaterializedView.ts",
"dev:scripts:removeDeadChapters": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/mediaRefs/removeDeadChapters.ts",
"dev:scripts:removeDeadEpisodes": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/episodes/removeDeadEpisodes.ts",
"dev:scripts:removePodcastsByIds": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/podcasts/removePodcastsByIds.ts",
"dev:scripts:syncWithFeedUrlsCSVDump": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/scripts/podcastIndex/syncWithFeedUrlsCSVDump.ts",
"dev:seeds:categories": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/seeds/categories.ts",
"dev:seeds:podcasts": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/seeds/podcasts.ts",
"dev:seeds:qa:populateDatabase": "ts-node -r dotenv/config -r tsconfig-paths/register ./src/seeds/qa/populateDatabase.ts",
"lint:ts": "eslint src/**/*.ts",
"scripts:addAllOrphanFeedUrlsToPriorityQueue": "ts-node -r tsconfig-paths/register ./src/scripts/queue/addAllOrphanFeedUrlsToPriorityQueue.ts",
"scripts:addAllPublicFeedUrlsToQueue": "ts-node -r tsconfig-paths/register ./src/scripts/queue/addAllPublicFeedUrlsToQueue.ts",
"scripts:addAllUntitledPodcastFeedUrlsToQueue": "ts-node -r tsconfig-paths/register ./src/scripts/queue/addAllUntitledPodcastFeedUrlsToQueue.ts",
"scripts:addAndParseFeedUrls": "ts-node -r tsconfig-paths/register ./src/scripts/feedUrls/addAndParseFeedUrls.ts",
"scripts:addFeedsByPodcastIndexIdToQueue": "ts-node -r tsconfig-paths/register ./src/scripts/podcastIndex/addFeedsByPodcastIndexIdToQueue.ts",
"scripts:addAuthorityFeedUrlByPodcastIdToQueue": "ts-node -r tsconfig-paths/register ./src/scripts/queue/addAuthorityFeedUrlByPodcastIdToQueue.ts",
"scripts:addFeedsToQueueByPriority": "ts-node -r tsconfig-paths/register ./src/scripts/queue/addFeedsToQueueByPriority.ts",
"scripts:addFeedUrls": "ts-node -r tsconfig-paths/register ./src/scripts/feedUrls/addFeedUrls.ts",
"scripts:addFeedUrlsByFeedIdToQueue": "ts-node -r tsconfig-paths/register ./src/scripts/queue/addFeedUrlsByFeedIdToQueue.ts",
"scripts:addNewFeedsFromPodcastIndex": "ts-node -r tsconfig-paths/register ./src/scripts/podcastIndex/addNewFeedsFromPodcastIndex.ts",
"scripts:addOrUpdatePodcastFromPodcastIndex": "ts-node -r tsconfig-paths/register ./src/scripts/podcastIndex/addOrUpdatePodcastFromPodcastIndex.ts",
"scripts:addNonPodcastIndexFeedUrlsToPriorityQueue": "ts-node -r tsconfig-paths/register ./src/scripts/queue/addNonPodcastIndexFeedUrlsToPriorityQueue.ts",
"scripts:addRecentlyUpdatedFeedUrlsToPriorityQueue": "ts-node -r tsconfig-paths/register ./src/scripts/podcastIndex/addRecentlyUpdatedFeedUrlsToPriorityQueue.ts",
"scripts:backupDatabase": "ts-node -r tsconfig-paths/register ./src/scripts/backupDatabase/backupDatabase.ts",
"scripts:devtools:generateDeadRowsCSV": "ts-node -r tsconfig-paths/register ./src/scripts/devtools/db/generateDeadRowsCSV.ts",
"scripts:dropAndRecreateEpisodesMostRecentMaterializedView": "ts-node -r tsconfig-paths/register ./src/scripts/episodes/dropAndRecreateEpisodesMostRecentMaterializedView.ts",
"scripts:hideDeadPodcasts": "ts-node -r tsconfig-paths/register ./src/scripts/podcastIndex/hideDeadPodcasts.ts",
"scripts:parseFeedUrlsByPodcastIds": "ts-node -r tsconfig-paths/register ./src/scripts/parser/parseFeedUrlsByPodcastIds.ts",
"scripts:parseFeedUrlsByPodcastIndexIds": "ts-node -r tsconfig-paths/register ./src/scripts/parser/parseFeedUrlsByPodcastIndexIds.ts",
"scripts:parseFeedUrlsFromQueue": "ts-node -r tsconfig-paths/register ./src/scripts/parser/parseFeedUrlsFromQueue.ts",
"scripts:parseOrphanFeedUrls": "ts-node -r tsconfig-paths/register ./src/scripts/parser/parseOrphanFeedUrls.ts",
"scripts:parsePublicFeedUrls": "ts-node -r tsconfig-paths/register ./src/scripts/parser/parsePublicFeedUrls.ts",
"scripts:podcastindex:updateValueTagEnabledPodcastIdsFromPI": "ts-node -r tsconfig-paths/register ./src/scripts/podcastIndex/updateValueTagEnabledPodcastIdsFromPI.ts",
"scripts:podping:runLiveItemListener": "ts-node -r tsconfig-paths/register ./src/scripts/podping/runLiveItemListener.ts",
"scripts:queryUniquePageviews": "ts-node -r tsconfig-paths/register ./src/scripts/stats/queryUniquePageviews.ts",
"scripts:receiveErrorMessageFromQueue": "ts-node -r tsconfig-paths/register ./src/scripts/queue/receiveErrorMessageFromQueue.ts",
"scripts:refreshEpisodesMostRecentMaterializedView": "ts-node -r tsconfig-paths/register ./src/scripts/episodes/refreshEpisodesMostRecentMaterializedView.ts",
"scripts:refreshMediaRefsVideosMaterializedView": "ts-node -r tsconfig-paths/register ./src/scripts/mediaRefs_videos/refreshMediaRefsVideosMaterializedView.ts",
"scripts:removeDeadEpisodes": "ts-node -r tsconfig-paths/register ./src/scripts/episodes/removeDeadEpisodes.ts",
"scripts:removePodcastsByIds": "ts-node -r tsconfig-paths/register ./src/scripts/podcasts/removePodcastsByIds.ts",
"scripts:syncWithFeedUrlsCSVDump": "ts-node -r tsconfig-paths/register ./src/scripts/podcastIndex/syncWithFeedUrlsCSVDump.ts",
"seeds:categories": "ts-node -r tsconfig-paths/register ./src/seeds/categories.ts",
"seeds:podcasts": "ts-node -r tsconfig-paths/register ./src/seeds/podcasts.ts",
"start": "ts-node -r tsconfig-paths/register src/server.ts",
"start:local": "ts-node -r tsconfig-paths/register src/server.local.ts",
"test:integration": "./scripts/runIntegrationTests.sh",
"test:integration:single": "./scripts/runIntegrationTestSingle.sh",
"test:w:integration": "./scripts/runWIntegrationTests.sh",
"test:w:integration:single": "./scripts/runWIntegrationTestSingle.sh",
"test:w:restoreDatabase": "./scripts/restoreDatabaseWin.sh",
"test:unit": "jest",
"watch-server": "nodemon --watch 'src/**/*' -e ts,tsx,json --exec ts-node -r tsconfig-paths/register src/server.local.ts",
"postinstall": "patch-package"
},
"lint-staged": {
"src/**/*.{ts,js}": [
"npm run prettier:fix",
"eslint .",
"git add"
]
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"license": "AGPLv3",
"homepage": "https://github.com/podverse/podverse-api#readme",
"keywords": [
"podcast",
"episode",
"RSS",
"Atom",
"feed",
"parser",
"feedparser",
"database",
"db",
"sequelize",
"podverse"
],
"devDependencies": {
"@faker-js/faker": "^7.6.0",
"@types/bcrypt": "3.0.0",
"@types/dotenv": "8.2.0",
"@types/google.analytics": "0.0.40",
"@types/koa": "2.11.0",
"@types/koa-bodyparser": "5.0.1",
"@types/koa-helmet": "3.1.2",
"@types/koa-jwt": "3.3.0",
"@types/koa-passport": "4.0.2",
"@types/koa-router": "7.0.42",
"@types/koa__cors": "2.2.3",
"@types/node": "12.12.14",
"@types/passport": "1.0.2",
"@types/passport-jwt": "3.0.3",
"@types/passport-local": "1.0.33",
"@types/shelljs": "0.8.6",
"@types/validator": "12.0.1",
"@types/web-push": "^3.3.2",
"koa2-swagger-ui": "2.15.4",
"nodemon": "2.0.1",
"prettier": "^2.5.1",
"ts-node": "8.5.4",
"typescript": "3.9.7",
"webpack-cli": "3.3.10"
},
"dependencies": {
"@koa/cors": "5.0.0",
"@types/crypto-js": "^3.1.47",
"@types/jest": "26.0.3",
"@types/lodash": "4.14.200",
"@typescript-eslint/eslint-plugin": "2.x",
"@typescript-eslint/parser": "2.x",
"archiver": "^5.3.1",
"awesome-typescript-loader": "5.2.1",
"aws-sdk": "2.814.0",
"axios": "1.6.0",
"bcryptjs": "2.4.3",
"chai": "4.2.0",
"chai-http": "4.3.0",
"class-validator": "0.14.0",
"clean-webpack-plugin": "3.0.0",
"cookie": "0.4.0",
"crypto-js": "~4.2.0",
"csvtojson": "^2.0.10",
"date-fns": "2.8.1",
"docker-cli-js": "2.9.0",
"eslint": "6.x",
"eslint-config-react-app": "5.1.0",
"eslint-plugin-import": "2.x",
"eslint-plugin-jsx-a11y": "6.x",
"eslint-plugin-react": "7.x",
"eslint-plugin-react-hooks": "1.x",
"follow-redirects": "^1.15.6",
"google-auth-library": "^9.14.1",
"googleapis": "45.0.0",
"http-errors": "1.7.3",
"husky": "3.1.0",
"isomorphic-fetch": "^3.0.0",
"jest": "26.1.0",
"joi": "14.3.1",
"json-2-csv": "^5.5.1",
"koa": "2.11.0",
"koa-bodyparser": "4.2.1",
"koa-helmet": "5.2.0",
"koa-json": "^2.0.2",
"koa-jwt": "3.6.0",
"koa-mount": "4.0.0",
"koa-passport": "4.1.3",
"koa-router": "7.4.0",
"koa-session": "5.12.3",
"koa-static": "5.0.0",
"koa2-ratelimit": "0.9.1",
"lint-staged": "9.5.0",
"lodash": "4.17.21",
"manticoresearch": "^2.0.3",
"moment": "^2.29.4",
"node-fetch": "2.6.7",
"nodemailer": "6.9.9",
"passport-jwt": "4.0.0",
"passport-local": "1.0.0",
"password-validator": "5.0.3",
"patch-package": "6.5.0",
"paypal-rest-sdk": "2.0.0-rc.2",
"pg": "8.7.3",
"podcast-partytime": "4.6.2",
"podverse-shared": "4.15.2",
"reflect-metadata": "0.1.13",
"request": "^2.88.2",
"request-promise-native": "1.0.8",
"sharp": "0.32.6",
"shortid": "2.2.15",
"sqlstring": "2.3.3",
"threadcap": "0.1.8",
"ts-jest": "26.1.1",
"ts-loader": "6.2.1",
"tsconfig-paths": "3.9.0",
"tsconfig-paths-webpack-plugin": "3.2.0",
"typeorm": "0.2.45",
"uuid": "^9.0.1",
"valid-url": "1.0.9",
"validator": "13.7.0",
"web-push": "^3.6.3",
"webpack": "4.41.2",
"winston": "3.2.1",
"ws": "^8.5.0"
}
}