parse-server 8.0.0-alpha.9 → 8.0.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/README.md +1 -3
- package/lib/Adapters/AdapterLoader.js +1 -2
- package/lib/Adapters/Cache/RedisCacheAdapter.js +2 -2
- package/lib/Adapters/PubSub/RedisPubSub.js +22 -3
- package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +4 -4
- package/lib/Config.js +19 -1
- package/lib/Controllers/AnalyticsController.js +3 -3
- package/lib/Controllers/UserController.js +43 -48
- package/lib/GraphQL/helpers/objectsQueries.js +2 -1
- package/lib/GraphQL/loaders/usersMutations.js +2 -6
- package/lib/Options/Definitions.js +6 -1
- package/lib/Options/docs.js +3 -2
- package/lib/Options/index.js +1 -1
- package/lib/ParseServer.js +10 -5
- package/lib/PromiseRouter.js +2 -2
- package/lib/Routers/AggregateRouter.js +2 -2
- package/lib/Routers/AudiencesRouter.js +2 -2
- package/lib/Routers/ClassesRouter.js +5 -5
- package/lib/Routers/CloudCodeRouter.js +3 -3
- package/lib/Routers/FilesRouter.js +2 -3
- package/lib/Routers/FunctionsRouter.js +2 -2
- package/lib/Routers/GlobalConfigRouter.js +3 -3
- package/lib/Routers/GraphQLRouter.js +2 -2
- package/lib/Routers/HooksRouter.js +5 -5
- package/lib/Routers/IAPValidationRouter.js +4 -4
- package/lib/Routers/InstallationsRouter.js +2 -2
- package/lib/Routers/PagesRouter.js +22 -36
- package/lib/Routers/PublicAPIRouter.js +26 -32
- package/lib/Routers/PushRouter.js +2 -2
- package/lib/Routers/SchemasRouter.js +6 -6
- package/lib/Routers/UsersRouter.js +20 -10
- package/lib/SchemaMigrations/DefinedSchemas.js +3 -3
- package/lib/batch.js +5 -5
- package/lib/middlewares.js +29 -6
- package/lib/vendor/mongodbUrl.js +2 -2
- package/package.json +15 -17
- package/public_html/invalid_verification_link.html +3 -3
package/README.md
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
[](https://github.com/parse-community/parse-server/actions/workflows/ci.yml?query=workflow%3Aci+branch%3Aalpha)
|
|
6
|
-
[](https://github.com/parse-community/parse-server/actions/workflows/ci.yml?query=workflow%3Aci+branch%3Abeta)
|
|
7
6
|
[](https://github.com/parse-community/parse-server/actions/workflows/ci.yml?query=workflow%3Aci+branch%3Arelease)
|
|
8
7
|
[](https://snyk.io/test/github/parse-community/parse-server)
|
|
9
8
|
[](https://app.codecov.io/github/parse-community/parse-server/tree/alpha)
|
|
@@ -14,7 +13,6 @@
|
|
|
14
13
|
[](https://www.postgresql.org)
|
|
15
14
|
|
|
16
15
|
[](https://www.npmjs.com/package/parse-server)
|
|
17
|
-
[](https://www.npmjs.com/package/parse-server)
|
|
18
16
|
[](https://www.npmjs.com/package/parse-server)
|
|
19
17
|
|
|
20
18
|
[][open-collective-link]
|
|
@@ -100,7 +98,7 @@ A big *thank you* 🙏 to our [sponsors](#sponsors) and [backers](#backers) who
|
|
|
100
98
|
|
|
101
99
|
Parse Server is available in different flavors on different branches:
|
|
102
100
|
|
|
103
|
-
- The main branches are [release][log_release]
|
|
101
|
+
- The main branches are [release][log_release] and [alpha][log_alpha]. See the [changelog overview](CHANGELOG.md) for details.
|
|
104
102
|
- The long-term-support (LTS) branches are named `release-<version>.x.x`, for example `release-5.x.x`. LTS branches do not have pre-release branches.
|
|
105
103
|
|
|
106
104
|
## Long Term Support
|
|
@@ -36,7 +36,6 @@ function loadAdapter(adapter, defaultAdapter, options) {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
} else if (typeof adapter === 'string') {
|
|
39
|
-
/* eslint-disable */
|
|
40
39
|
adapter = require(adapter);
|
|
41
40
|
// If it's define as a module, get the default
|
|
42
41
|
if (adapter.default) {
|
|
@@ -58,4 +57,4 @@ async function loadModule(modulePath) {
|
|
|
58
57
|
return module?.default || module;
|
|
59
58
|
}
|
|
60
59
|
var _default = exports.default = loadAdapter;
|
|
61
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2FkQWRhcHRlciIsImFkYXB0ZXIiLCJkZWZhdWx0QWRhcHRlciIsIm9wdGlvbnMiLCJ1bmRlZmluZWQiLCJlIiwibmFtZSIsIkFkYXB0ZXIiLCJyZXF1aXJlIiwiZGVmYXVsdCIsIm1vZHVsZSIsImNsYXNzIiwibG9hZE1vZHVsZSIsIm1vZHVsZVBhdGgiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvQWRhcHRlcnMvQWRhcHRlckxvYWRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgQWRhcHRlckxvYWRlclxuICovXG4vKipcbiAqIEBzdGF0aWNcbiAqIEF0dGVtcHQgdG8gbG9hZCBhbiBhZGFwdGVyIG9yIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0LlxuICogQHBhcmFtIHtBZGFwdGVyfSBhZGFwdGVyIGFuIGFkYXB0ZXJcbiAqIEBwYXJhbSB7QWRhcHRlcn0gZGVmYXVsdEFkYXB0ZXIgdGhlIGRlZmF1bHQgYWRhcHRlciB0byBsb2FkXG4gKiBAcGFyYW0ge2FueX0gb3B0aW9ucyBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGNvbnRzdHJ1Y3RvclxuICogQHJldHVybnMge09iamVjdH0gdGhlIGxvYWRlZCBhZGFwdGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQWRhcHRlcjxUPihhZGFwdGVyLCBkZWZhdWx0QWRhcHRlciwgb3B0aW9ucyk6IFQge1xuICBpZiAoIWFkYXB0ZXIpIHtcbiAgICBpZiAoIWRlZmF1bHRBZGFwdGVyKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9XG4gICAgLy8gTG9hZCBmcm9tIHRoZSBkZWZhdWx0IGFkYXB0ZXIgd2hlbiBubyBhZGFwdGVyIGlzIHNldFxuICAgIHJldHVybiBsb2FkQWRhcHRlcihkZWZhdWx0QWRhcHRlciwgdW5kZWZpbmVkLCBvcHRpb25zKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgYWRhcHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYWRhcHRlcihvcHRpb25zKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZS5uYW1lID09PSAnVHlwZUVycm9yJykge1xuICAgICAgICB2YXIgQWRhcHRlciA9IGFkYXB0ZXI7XG4gICAgICAgIHJldHVybiBuZXcgQWRhcHRlcihvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiBhZGFwdGVyID09PSAnc3RyaW5nJykge1xuICAgIGFkYXB0ZXIgPSByZXF1aXJlKGFkYXB0ZXIpO1xuICAgIC8vIElmIGl0J3MgZGVmaW5lIGFzIGEgbW9kdWxlLCBnZXQgdGhlIGRlZmF1bHRcbiAgICBpZiAoYWRhcHRlci5kZWZhdWx0KSB7XG4gICAgICBhZGFwdGVyID0gYWRhcHRlci5kZWZhdWx0O1xuICAgIH1cbiAgICByZXR1cm4gbG9hZEFkYXB0ZXIoYWRhcHRlciwgdW5kZWZpbmVkLCBvcHRpb25zKTtcbiAgfSBlbHNlIGlmIChhZGFwdGVyLm1vZHVsZSkge1xuICAgIHJldHVybiBsb2FkQWRhcHRlcihhZGFwdGVyLm1vZHVsZSwgdW5kZWZpbmVkLCBhZGFwdGVyLm9wdGlvbnMpO1xuICB9IGVsc2UgaWYgKGFkYXB0ZXIuY2xhc3MpIHtcbiAgICByZXR1cm4gbG9hZEFkYXB0ZXIoYWRhcHRlci5jbGFzcywgdW5kZWZpbmVkLCBhZGFwdGVyLm9wdGlvbnMpO1xuICB9IGVsc2UgaWYgKGFkYXB0ZXIuYWRhcHRlcikge1xuICAgIHJldHVybiBsb2FkQWRhcHRlcihhZGFwdGVyLmFkYXB0ZXIsIHVuZGVmaW5lZCwgYWRhcHRlci5vcHRpb25zKTtcbiAgfVxuICAvLyByZXR1cm4gdGhlIGFkYXB0ZXIgYXMgcHJvdmlkZWRcbiAgcmV0dXJuIGFkYXB0ZXI7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkTW9kdWxlKG1vZHVsZVBhdGgpIHtcbiAgY29uc3QgbW9kdWxlID0gYXdhaXQgaW1wb3J0KG1vZHVsZVBhdGgpO1xuICByZXR1cm4gbW9kdWxlPy5kZWZhdWx0IHx8IG1vZHVsZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbG9hZEFkYXB0ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNBLFdBQVdBLENBQUlDLE9BQU8sRUFBRUMsY0FBYyxFQUFFQyxPQUFPLEVBQUs7RUFDbEUsSUFBSSxDQUFDRixPQUFPLEVBQUU7SUFDWixJQUFJLENBQUNDLGNBQWMsRUFBRTtNQUNuQixPQUFPQyxPQUFPO0lBQ2hCO0lBQ0E7SUFDQSxPQUFPSCxXQUFXLENBQUNFLGNBQWMsRUFBRUUsU0FBUyxFQUFFRCxPQUFPLENBQUM7RUFDeEQsQ0FBQyxNQUFNLElBQUksT0FBT0YsT0FBTyxLQUFLLFVBQVUsRUFBRTtJQUN4QyxJQUFJO01BQ0YsT0FBT0EsT0FBTyxDQUFDRSxPQUFPLENBQUM7SUFDekIsQ0FBQyxDQUFDLE9BQU9FLENBQUMsRUFBRTtNQUNWLElBQUlBLENBQUMsQ0FBQ0MsSUFBSSxLQUFLLFdBQVcsRUFBRTtRQUMxQixJQUFJQyxPQUFPLEdBQUdOLE9BQU87UUFDckIsT0FBTyxJQUFJTSxPQUFPLENBQUNKLE9BQU8sQ0FBQztNQUM3QixDQUFDLE1BQU07UUFDTCxNQUFNRSxDQUFDO01BQ1Q7SUFDRjtFQUNGLENBQUMsTUFBTSxJQUFJLE9BQU9KLE9BQU8sS0FBSyxRQUFRLEVBQUU7SUFDdENBLE9BQU8sR0FBR08sT0FBTyxDQUFDUCxPQUFPLENBQUM7SUFDMUI7SUFDQSxJQUFJQSxPQUFPLENBQUNRLE9BQU8sRUFBRTtNQUNuQlIsT0FBTyxHQUFHQSxPQUFPLENBQUNRLE9BQU87SUFDM0I7SUFDQSxPQUFPVCxXQUFXLENBQUNDLE9BQU8sRUFBRUcsU0FBUyxFQUFFRCxPQUFPLENBQUM7RUFDakQsQ0FBQyxNQUFNLElBQUlGLE9BQU8sQ0FBQ1MsTUFBTSxFQUFFO0lBQ3pCLE9BQU9WLFdBQVcsQ0FBQ0MsT0FBTyxDQUFDUyxNQUFNLEVBQUVOLFNBQVMsRUFBRUgsT0FBTyxDQUFDRSxPQUFPLENBQUM7RUFDaEUsQ0FBQyxNQUFNLElBQUlGLE9BQU8sQ0FBQ1UsS0FBSyxFQUFFO0lBQ3hCLE9BQU9YLFdBQVcsQ0FBQ0MsT0FBTyxDQUFDVSxLQUFLLEVBQUVQLFNBQVMsRUFBRUgsT0FBTyxDQUFDRSxPQUFPLENBQUM7RUFDL0QsQ0FBQyxNQUFNLElBQUlGLE9BQU8sQ0FBQ0EsT0FBTyxFQUFFO0lBQzFCLE9BQU9ELFdBQVcsQ0FBQ0MsT0FBTyxDQUFDQSxPQUFPLEVBQUVHLFNBQVMsRUFBRUgsT0FBTyxDQUFDRSxPQUFPLENBQUM7RUFDakU7RUFDQTtFQUNBLE9BQU9GLE9BQU87QUFDaEI7QUFFTyxlQUFlVyxVQUFVQSxDQUFDQyxVQUFVLEVBQUU7RUFDM0MsTUFBTUgsTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDRyxVQUFVLENBQUM7RUFDdkMsT0FBT0gsTUFBTSxFQUFFRCxPQUFPLElBQUlDLE1BQU07QUFDbEM7QUFBQyxJQUFBSSxRQUFBLEdBQUFDLE9BQUEsQ0FBQU4sT0FBQSxHQUVjVCxXQUFXIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -33,7 +33,7 @@ class RedisCacheAdapter {
|
|
|
33
33
|
if (this.client.isOpen) {
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
-
return this.client.connect();
|
|
36
|
+
return await this.client.connect();
|
|
37
37
|
}
|
|
38
38
|
async handleShutdown() {
|
|
39
39
|
if (!this.client) {
|
|
@@ -106,4 +106,4 @@ class RedisCacheAdapter {
|
|
|
106
106
|
}
|
|
107
107
|
exports.RedisCacheAdapter = RedisCacheAdapter;
|
|
108
108
|
var _default = exports.default = RedisCacheAdapter;
|
|
109
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVkaXMiLCJyZXF1aXJlIiwiX2xvZ2dlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfS2V5UHJvbWlzZVF1ZXVlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiREVGQVVMVF9SRURJU19UVEwiLCJGTFVTSF9EQl9LRVkiLCJkZWJ1ZyIsImFyZ3MiLCJtZXNzYWdlIiwiYXJndW1lbnRzIiwiY29uY2F0Iiwic2xpY2UiLCJsZW5ndGgiLCJsb2dnZXIiLCJhcHBseSIsImlzVmFsaWRUVEwiLCJ0dGwiLCJSZWRpc0NhY2hlQWRhcHRlciIsImNvbnN0cnVjdG9yIiwicmVkaXNDdHgiLCJjbGllbnQiLCJjcmVhdGVDbGllbnQiLCJxdWV1ZSIsIktleVByb21pc2VRdWV1ZSIsIm9uIiwiZXJyIiwiZXJyb3IiLCJjb25uZWN0IiwiaXNPcGVuIiwiaGFuZGxlU2h1dGRvd24iLCJxdWl0IiwiZ2V0Iiwia2V5IiwiZW5xdWV1ZSIsInJlcyIsIkpTT04iLCJwYXJzZSIsInB1dCIsInZhbHVlIiwic3RyaW5naWZ5IiwiSW5maW5pdHkiLCJzZXQiLCJQWCIsImRlbCIsImNsZWFyIiwic2VuZENvbW1hbmQiLCJnZXRBbGxLZXlzIiwia2V5cyIsImV4cG9ydHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9DYWNoZS9SZWRpc0NhY2hlQWRhcHRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVDbGllbnQgfSBmcm9tICdyZWRpcyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uLy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBLZXlQcm9taXNlUXVldWUgfSBmcm9tICcuLi8uLi9LZXlQcm9taXNlUXVldWUnO1xuXG5jb25zdCBERUZBVUxUX1JFRElTX1RUTCA9IDMwICogMTAwMDsgLy8gMzAgc2Vjb25kcyBpbiBtaWxsaXNlY29uZHNcbmNvbnN0IEZMVVNIX0RCX0tFWSA9ICdfX2ZsdXNoX2RiX18nO1xuXG5mdW5jdGlvbiBkZWJ1ZyguLi5hcmdzOiBhbnkpIHtcbiAgY29uc3QgbWVzc2FnZSA9IFsnUmVkaXNDYWNoZUFkYXB0ZXI6ICcgKyBhcmd1bWVudHNbMF1dLmNvbmNhdChhcmdzLnNsaWNlKDEsIGFyZ3MubGVuZ3RoKSk7XG4gIGxvZ2dlci5kZWJ1Zy5hcHBseShsb2dnZXIsIG1lc3NhZ2UpO1xufVxuXG5jb25zdCBpc1ZhbGlkVFRMID0gdHRsID0+IHR5cGVvZiB0dGwgPT09ICdudW1iZXInICYmIHR0bCA+IDA7XG5cbmV4cG9ydCBjbGFzcyBSZWRpc0NhY2hlQWRhcHRlciB7XG4gIGNvbnN0cnVjdG9yKHJlZGlzQ3R4LCB0dGwgPSBERUZBVUxUX1JFRElTX1RUTCkge1xuICAgIHRoaXMudHRsID0gaXNWYWxpZFRUTCh0dGwpID8gdHRsIDogREVGQVVMVF9SRURJU19UVEw7XG4gICAgdGhpcy5jbGllbnQgPSBjcmVhdGVDbGllbnQocmVkaXNDdHgpO1xuICAgIHRoaXMucXVldWUgPSBuZXcgS2V5UHJvbWlzZVF1ZXVlKCk7XG4gICAgdGhpcy5jbGllbnQub24oJ2Vycm9yJywgZXJyID0+IHsgbG9nZ2VyLmVycm9yKCdSZWRpc0NhY2hlQWRhcHRlciBjbGllbnQgZXJyb3InLCB7IGVycm9yOiBlcnIgfSkgfSk7XG4gICAgdGhpcy5jbGllbnQub24oJ2Nvbm5lY3QnLCAoKSA9PiB7fSk7XG4gICAgdGhpcy5jbGllbnQub24oJ3JlY29ubmVjdGluZycsICgpID0+
|
|
109
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVkaXMiLCJyZXF1aXJlIiwiX2xvZ2dlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfS2V5UHJvbWlzZVF1ZXVlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiREVGQVVMVF9SRURJU19UVEwiLCJGTFVTSF9EQl9LRVkiLCJkZWJ1ZyIsImFyZ3MiLCJtZXNzYWdlIiwiYXJndW1lbnRzIiwiY29uY2F0Iiwic2xpY2UiLCJsZW5ndGgiLCJsb2dnZXIiLCJhcHBseSIsImlzVmFsaWRUVEwiLCJ0dGwiLCJSZWRpc0NhY2hlQWRhcHRlciIsImNvbnN0cnVjdG9yIiwicmVkaXNDdHgiLCJjbGllbnQiLCJjcmVhdGVDbGllbnQiLCJxdWV1ZSIsIktleVByb21pc2VRdWV1ZSIsIm9uIiwiZXJyIiwiZXJyb3IiLCJjb25uZWN0IiwiaXNPcGVuIiwiaGFuZGxlU2h1dGRvd24iLCJxdWl0IiwiZ2V0Iiwia2V5IiwiZW5xdWV1ZSIsInJlcyIsIkpTT04iLCJwYXJzZSIsInB1dCIsInZhbHVlIiwic3RyaW5naWZ5IiwiSW5maW5pdHkiLCJzZXQiLCJQWCIsImRlbCIsImNsZWFyIiwic2VuZENvbW1hbmQiLCJnZXRBbGxLZXlzIiwia2V5cyIsImV4cG9ydHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9DYWNoZS9SZWRpc0NhY2hlQWRhcHRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVDbGllbnQgfSBmcm9tICdyZWRpcyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uLy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBLZXlQcm9taXNlUXVldWUgfSBmcm9tICcuLi8uLi9LZXlQcm9taXNlUXVldWUnO1xuXG5jb25zdCBERUZBVUxUX1JFRElTX1RUTCA9IDMwICogMTAwMDsgLy8gMzAgc2Vjb25kcyBpbiBtaWxsaXNlY29uZHNcbmNvbnN0IEZMVVNIX0RCX0tFWSA9ICdfX2ZsdXNoX2RiX18nO1xuXG5mdW5jdGlvbiBkZWJ1ZyguLi5hcmdzOiBhbnkpIHtcbiAgY29uc3QgbWVzc2FnZSA9IFsnUmVkaXNDYWNoZUFkYXB0ZXI6ICcgKyBhcmd1bWVudHNbMF1dLmNvbmNhdChhcmdzLnNsaWNlKDEsIGFyZ3MubGVuZ3RoKSk7XG4gIGxvZ2dlci5kZWJ1Zy5hcHBseShsb2dnZXIsIG1lc3NhZ2UpO1xufVxuXG5jb25zdCBpc1ZhbGlkVFRMID0gdHRsID0+IHR5cGVvZiB0dGwgPT09ICdudW1iZXInICYmIHR0bCA+IDA7XG5cbmV4cG9ydCBjbGFzcyBSZWRpc0NhY2hlQWRhcHRlciB7XG4gIGNvbnN0cnVjdG9yKHJlZGlzQ3R4LCB0dGwgPSBERUZBVUxUX1JFRElTX1RUTCkge1xuICAgIHRoaXMudHRsID0gaXNWYWxpZFRUTCh0dGwpID8gdHRsIDogREVGQVVMVF9SRURJU19UVEw7XG4gICAgdGhpcy5jbGllbnQgPSBjcmVhdGVDbGllbnQocmVkaXNDdHgpO1xuICAgIHRoaXMucXVldWUgPSBuZXcgS2V5UHJvbWlzZVF1ZXVlKCk7XG4gICAgdGhpcy5jbGllbnQub24oJ2Vycm9yJywgZXJyID0+IHsgbG9nZ2VyLmVycm9yKCdSZWRpc0NhY2hlQWRhcHRlciBjbGllbnQgZXJyb3InLCB7IGVycm9yOiBlcnIgfSkgfSk7XG4gICAgdGhpcy5jbGllbnQub24oJ2Nvbm5lY3QnLCAoKSA9PiB7fSk7XG4gICAgdGhpcy5jbGllbnQub24oJ3JlY29ubmVjdGluZycsICgpID0+IHt9KTtcbiAgICB0aGlzLmNsaWVudC5vbigncmVhZHknLCAoKSA9PiB7fSk7XG4gIH1cblxuICBhc3luYyBjb25uZWN0KCkge1xuICAgIGlmICh0aGlzLmNsaWVudC5pc09wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2xpZW50LmNvbm5lY3QoKTtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVNodXRkb3duKCkge1xuICAgIGlmICghdGhpcy5jbGllbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnF1aXQoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5lcnJvcignUmVkaXNDYWNoZUFkYXB0ZXIgZXJyb3Igb24gc2h1dGRvd24nLCB7IGVycm9yOiBlcnIgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0KGtleSkge1xuICAgIGRlYnVnKCdnZXQnLCB7IGtleSB9KTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5xdWV1ZS5lbnF1ZXVlKGtleSk7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQoa2V5KTtcbiAgICAgIGlmICghcmVzKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVzKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5lcnJvcignUmVkaXNDYWNoZUFkYXB0ZXIgZXJyb3Igb24gZ2V0JywgeyBlcnJvcjogZXJyIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHB1dChrZXksIHZhbHVlLCB0dGwgPSB0aGlzLnR0bCkge1xuICAgIHZhbHVlID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgIGRlYnVnKCdwdXQnLCB7IGtleSwgdmFsdWUsIHR0bCB9KTtcbiAgICBhd2FpdCB0aGlzLnF1ZXVlLmVucXVldWUoa2V5KTtcbiAgICBpZiAodHRsID09PSAwKSB7XG4gICAgICAvLyB0dGwgb2YgemVybyBpcyBhIGxvZ2ljYWwgbm8tb3AsIGJ1dCByZWRpcyBjYW5ub3Qgc2V0IGV4cGlyZSB0aW1lIG9mIHplcm9cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodHRsID09PSBJbmZpbml0eSkge1xuICAgICAgcmV0dXJuIHRoaXMuY2xpZW50LnNldChrZXksIHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRUVEwodHRsKSkge1xuICAgICAgdHRsID0gdGhpcy50dGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNsaWVudC5zZXQoa2V5LCB2YWx1ZSwgeyBQWDogdHRsIH0pO1xuICB9XG5cbiAgYXN5bmMgZGVsKGtleSkge1xuICAgIGRlYnVnKCdkZWwnLCB7IGtleSB9KTtcbiAgICBhd2FpdCB0aGlzLnF1ZXVlLmVucXVldWUoa2V5KTtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZGVsKGtleSk7XG4gIH1cblxuICBhc3luYyBjbGVhcigpIHtcbiAgICBkZWJ1ZygnY2xlYXInKTtcbiAgICBhd2FpdCB0aGlzLnF1ZXVlLmVucXVldWUoRkxVU0hfREJfS0VZKTtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuc2VuZENvbW1hbmQoWydGTFVTSERCJ10pO1xuICB9XG5cbiAgLy8gVXNlZCBmb3IgdGVzdGluZ1xuICBnZXRBbGxLZXlzKCkge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5rZXlzKCcqJyk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVkaXNDYWNoZUFkYXB0ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFBd0QsU0FBQUUsdUJBQUFFLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFeEQsTUFBTUcsaUJBQWlCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ3JDLE1BQU1DLFlBQVksR0FBRyxjQUFjO0FBRW5DLFNBQVNDLEtBQUtBLENBQUMsR0FBR0MsSUFBUyxFQUFFO0VBQzNCLE1BQU1DLE9BQU8sR0FBRyxDQUFDLHFCQUFxQixHQUFHQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsTUFBTSxDQUFDSCxJQUFJLENBQUNJLEtBQUssQ0FBQyxDQUFDLEVBQUVKLElBQUks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
|
|
@@ -5,28 +5,47 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.RedisPubSub = void 0;
|
|
7
7
|
var _redis = require("redis");
|
|
8
|
+
var _logger = require("../../logger");
|
|
8
9
|
function createPublisher({
|
|
9
10
|
redisURL,
|
|
10
11
|
redisOptions = {}
|
|
11
12
|
}) {
|
|
12
13
|
redisOptions.no_ready_check = true;
|
|
13
|
-
|
|
14
|
+
const client = (0, _redis.createClient)({
|
|
14
15
|
url: redisURL,
|
|
15
16
|
...redisOptions
|
|
16
17
|
});
|
|
18
|
+
client.on('error', err => {
|
|
19
|
+
_logger.logger.error('RedisPubSub Publisher client error', {
|
|
20
|
+
error: err
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
client.on('connect', () => {});
|
|
24
|
+
client.on('reconnecting', () => {});
|
|
25
|
+
client.on('ready', () => {});
|
|
26
|
+
return client;
|
|
17
27
|
}
|
|
18
28
|
function createSubscriber({
|
|
19
29
|
redisURL,
|
|
20
30
|
redisOptions = {}
|
|
21
31
|
}) {
|
|
22
32
|
redisOptions.no_ready_check = true;
|
|
23
|
-
|
|
33
|
+
const client = (0, _redis.createClient)({
|
|
24
34
|
url: redisURL,
|
|
25
35
|
...redisOptions
|
|
26
36
|
});
|
|
37
|
+
client.on('error', err => {
|
|
38
|
+
_logger.logger.error('RedisPubSub Subscriber client error', {
|
|
39
|
+
error: err
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
client.on('connect', () => {});
|
|
43
|
+
client.on('reconnecting', () => {});
|
|
44
|
+
client.on('ready', () => {});
|
|
45
|
+
return client;
|
|
27
46
|
}
|
|
28
47
|
const RedisPubSub = exports.RedisPubSub = {
|
|
29
48
|
createPublisher,
|
|
30
49
|
createSubscriber
|
|
31
50
|
};
|
|
32
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVkaXMiLCJyZXF1aXJlIiwiX2xvZ2dlciIsImNyZWF0ZVB1Ymxpc2hlciIsInJlZGlzVVJMIiwicmVkaXNPcHRpb25zIiwibm9fcmVhZHlfY2hlY2siLCJjbGllbnQiLCJjcmVhdGVDbGllbnQiLCJ1cmwiLCJvbiIsImVyciIsImxvZ2dlciIsImVycm9yIiwiY3JlYXRlU3Vic2NyaWJlciIsIlJlZGlzUHViU3ViIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9QdWJTdWIvUmVkaXNQdWJTdWIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ2xpZW50IH0gZnJvbSAncmVkaXMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vbG9nZ2VyJztcblxuZnVuY3Rpb24gY3JlYXRlUHVibGlzaGVyKHsgcmVkaXNVUkwsIHJlZGlzT3B0aW9ucyA9IHt9IH0pOiBhbnkge1xuICByZWRpc09wdGlvbnMubm9fcmVhZHlfY2hlY2sgPSB0cnVlO1xuICBjb25zdCBjbGllbnQgPSBjcmVhdGVDbGllbnQoeyB1cmw6IHJlZGlzVVJMLCAuLi5yZWRpc09wdGlvbnMgfSk7XG4gIGNsaWVudC5vbignZXJyb3InLCBlcnIgPT4geyBsb2dnZXIuZXJyb3IoJ1JlZGlzUHViU3ViIFB1Ymxpc2hlciBjbGllbnQgZXJyb3InLCB7IGVycm9yOiBlcnIgfSkgfSk7XG4gIGNsaWVudC5vbignY29ubmVjdCcsICgpID0+IHt9KTtcbiAgY2xpZW50Lm9uKCdyZWNvbm5lY3RpbmcnLCAoKSA9PiB7fSk7XG4gIGNsaWVudC5vbigncmVhZHknLCAoKSA9PiB7fSk7XG4gIHJldHVybiBjbGllbnQ7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVN1YnNjcmliZXIoeyByZWRpc1VSTCwgcmVkaXNPcHRpb25zID0ge30gfSk6IGFueSB7XG4gIHJlZGlzT3B0aW9ucy5ub19yZWFkeV9jaGVjayA9IHRydWU7XG4gIGNvbnN0IGNsaWVudCA9IGNyZWF0ZUNsaWVudCh7IHVybDogcmVkaXNVUkwsIC4uLnJlZGlzT3B0aW9ucyB9KTtcbiAgY2xpZW50Lm9uKCdlcnJvcicsIGVyciA9PiB7IGxvZ2dlci5lcnJvcignUmVkaXNQdWJTdWIgU3Vic2NyaWJlciBjbGllbnQgZXJyb3InLCB7IGVycm9yOiBlcnIgfSkgfSk7XG4gIGNsaWVudC5vbignY29ubmVjdCcsICgpID0+IHt9KTtcbiAgY2xpZW50Lm9uKCdyZWNvbm5lY3RpbmcnLCAoKSA9PiB7fSk7XG4gIGNsaWVudC5vbigncmVhZHknLCAoKSA9PiB7fSk7XG4gIHJldHVybiBjbGllbnQ7XG59XG5cbmNvbnN0IFJlZGlzUHViU3ViID0ge1xuICBjcmVhdGVQdWJsaXNoZXIsXG4gIGNyZWF0ZVN1YnNjcmliZXIsXG59O1xuXG5leHBvcnQgeyBSZWRpc1B1YlN1YiB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFFQSxTQUFTRSxlQUFlQSxDQUFDO0VBQUVDLFFBQVE7RUFBRUMsWUFBWSxHQUFHLENBQUM7QUFBRSxDQUFDLEVBQU87RUFDN0RBLFlBQVksQ0FBQ0MsY0FBYyxHQUFHLElBQUk7RUFDbEMsTUFBTUMsTUFBTSxHQUFHLElBQUFDLG1CQUFZLEVBQUM7SUFBRUMsR0FBRyxFQUFFTCxRQUFRO0lBQUUsR0FBR0M7RUFBYSxDQUFDLENBQUM7RUFDL0RFLE1BQU0sQ0FBQ0csRUFBRSxDQUFDLE9BQU8sRUFBRUMsR0FBRyxJQUFJO0lBQUVDLGNBQU0sQ0FBQ0MsS0FBSyxDQUFDLG9DQUFvQyxFQUFFO01BQUVBLEtBQUssRUFBRUY7SUFBSSxDQUFDLENBQUM7RUFBQyxDQUFDLENBQUM7RUFDakdKLE1BQU0sQ0FBQ0csRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0VBQzlCSCxNQUFNLENBQUNHLEVBQUUsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztFQUNuQ0gsTUFBTSxDQUFDRyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7RUFDNUIsT0FBT0gsTUFBTTtBQUNmO0FBRUEsU0FBU08sZ0JBQWdCQSxDQUFDO0VBQUVWLFFBQVE7RUFBRUMsWUFBWSxHQUFHLENBQUM7QUFBRSxDQUFDLEVBQU87RUFDOURBLFlBQVksQ0FBQ0MsY0FBYyxHQUFHLElBQUk7RUFDbEMsTUFBTUMsTUFBTSxHQUFHLElBQUFDLG1CQUFZLEVBQUM7SUFBRUMsR0FBRyxFQUFFTCxRQUFRO0lBQUUsR0FBR0M7RUFBYSxDQUFDLENBQUM7RUFDL0RFLE1BQU0sQ0FBQ0csRUFBRSxDQUFDLE9BQU8sRUFBRUMsR0FBRyxJQUFJO0lBQUVDLGNBQU0sQ0FBQ0MsS0FBSyxDQUFDLHFDQUFxQyxFQUFFO01BQUVBLEtBQUssRUFBRUY7SUFBSSxDQUFDLENBQUM7RUFBQyxDQUFDLENBQUM7RUFDbEdKLE1BQU0sQ0FBQ0csRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0VBQzlCSCxNQUFNLENBQUNHLEVBQUUsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztFQUNuQ0gsTUFBTSxDQUFDRyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7RUFDNUIsT0FBT0gsTUFBTTtBQUNmO0FBRUEsTUFBTVEsV0FBVyxHQUFBQyxPQUFBLENBQUFELFdBQUEsR0FBRztFQUNsQlosZUFBZTtFQUNmVztBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|