parse-server 6.0.0-alpha.2 → 6.0.0-alpha.21
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 +45 -17
- package/lib/AccountLockout.js +11 -26
- package/lib/Adapters/AdapterLoader.js +8 -14
- package/lib/Adapters/Analytics/AnalyticsAdapter.js +2 -8
- package/lib/Adapters/Auth/AuthAdapter.js +7 -16
- package/lib/Adapters/Auth/OAuth1Client.js +32 -57
- package/lib/Adapters/Auth/apple.js +6 -22
- package/lib/Adapters/Auth/facebook.js +7 -37
- package/lib/Adapters/Auth/gcenter.js +8 -37
- package/lib/Adapters/Auth/github.js +7 -10
- package/lib/Adapters/Auth/google.js +11 -34
- package/lib/Adapters/Auth/gpgames.js +5 -8
- package/lib/Adapters/Auth/httpsRequest.js +1 -7
- package/lib/Adapters/Auth/index.js +20 -65
- package/lib/Adapters/Auth/instagram.js +5 -9
- package/lib/Adapters/Auth/janraincapture.js +8 -12
- package/lib/Adapters/Auth/janrainengage.js +7 -11
- package/lib/Adapters/Auth/keycloak.js +5 -19
- package/lib/Adapters/Auth/ldap.js +1 -15
- package/lib/Adapters/Auth/line.js +7 -10
- package/lib/Adapters/Auth/linkedin.js +7 -12
- package/lib/Adapters/Auth/meetup.js +7 -10
- package/lib/Adapters/Auth/microsoft.js +7 -10
- package/lib/Adapters/Auth/oauth2.js +6 -18
- package/lib/Adapters/Auth/phantauth.js +8 -10
- package/lib/Adapters/Auth/qq.js +7 -13
- package/lib/Adapters/Auth/spotify.js +7 -14
- package/lib/Adapters/Auth/twitter.js +5 -15
- package/lib/Adapters/Auth/vkontakte.js +9 -15
- package/lib/Adapters/Auth/wechat.js +7 -10
- package/lib/Adapters/Auth/weibo.js +7 -11
- package/lib/Adapters/Cache/CacheAdapter.js +4 -12
- package/lib/Adapters/Cache/InMemoryCache.js +5 -19
- package/lib/Adapters/Cache/InMemoryCacheAdapter.js +1 -11
- package/lib/Adapters/Cache/LRUCache.js +1 -11
- package/lib/Adapters/Cache/NullCacheAdapter.js +1 -8
- package/lib/Adapters/Cache/RedisCacheAdapter.js +46 -87
- package/lib/Adapters/Cache/SchemaCache.js +1 -6
- package/lib/Adapters/Email/MailAdapter.js +2 -7
- package/lib/Adapters/Files/FilesAdapter.js +7 -21
- package/lib/Adapters/Files/GridFSBucketAdapter.js +6 -44
- package/lib/Adapters/Files/GridStoreAdapter.js +1 -1
- package/lib/Adapters/Logger/LoggerAdapter.js +2 -11
- package/lib/Adapters/Logger/WinstonLogger.js +3 -30
- package/lib/Adapters/Logger/WinstonLoggerAdapter.js +5 -16
- package/lib/Adapters/MessageQueue/EventEmitterMQ.js +3 -20
- package/lib/Adapters/PubSub/EventEmitterPubSub.js +1 -16
- package/lib/Adapters/PubSub/PubSubAdapter.js +2 -9
- package/lib/Adapters/PubSub/RedisPubSub.js +13 -10
- package/lib/Adapters/Push/PushAdapter.js +2 -8
- package/lib/Adapters/Storage/Mongo/MongoCollection.js +12 -37
- package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +26 -79
- package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +78 -209
- package/lib/Adapters/Storage/Mongo/MongoTransform.js +82 -371
- package/lib/Adapters/Storage/Postgres/PostgresClient.js +1 -13
- package/lib/Adapters/Storage/Postgres/PostgresConfigParser.js +1 -20
- package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +119 -446
- package/lib/Adapters/Storage/Postgres/sql/index.js +4 -7
- package/lib/Adapters/Storage/StorageAdapter.js +1 -1
- package/lib/Adapters/WebSocketServer/WSAdapter.js +3 -12
- package/lib/Adapters/WebSocketServer/WSSAdapter.js +7 -12
- package/lib/Auth.js +54 -121
- package/lib/ClientSDK.js +3 -11
- package/lib/Config.js +69 -113
- package/lib/Controllers/AdaptableController.js +6 -18
- package/lib/Controllers/AnalyticsController.js +1 -9
- package/lib/Controllers/CacheController.js +3 -23
- package/lib/Controllers/DatabaseController.js +147 -345
- package/lib/Controllers/FilesController.js +5 -34
- package/lib/Controllers/HooksController.js +1 -51
- package/lib/Controllers/LiveQueryController.js +4 -23
- package/lib/Controllers/LoggerController.js +15 -54
- package/lib/Controllers/ParseGraphQLController.js +49 -104
- package/lib/Controllers/PushController.js +20 -59
- package/lib/Controllers/SchemaController.js +154 -344
- package/lib/Controllers/UserController.js +11 -72
- package/lib/Controllers/index.js +19 -68
- package/lib/Controllers/types.js +1 -1
- package/lib/Deprecator/Deprecations.js +1 -8
- package/lib/Deprecator/Deprecator.js +9 -18
- package/lib/GraphQL/ParseGraphQLSchema.js +16 -100
- package/lib/GraphQL/ParseGraphQLServer.js +2 -29
- package/lib/GraphQL/helpers/objectsMutations.js +2 -12
- package/lib/GraphQL/helpers/objectsQueries.js +18 -76
- package/lib/GraphQL/loaders/defaultGraphQLMutations.js +1 -9
- package/lib/GraphQL/loaders/defaultGraphQLQueries.js +1 -8
- package/lib/GraphQL/loaders/defaultGraphQLTypes.js +9 -115
- package/lib/GraphQL/loaders/defaultRelaySchema.js +6 -18
- package/lib/GraphQL/loaders/filesMutations.js +2 -19
- package/lib/GraphQL/loaders/functionsMutations.js +6 -17
- package/lib/GraphQL/loaders/parseClassMutations.js +6 -44
- package/lib/GraphQL/loaders/parseClassQueries.js +1 -26
- package/lib/GraphQL/loaders/parseClassTypes.js +10 -64
- package/lib/GraphQL/loaders/schemaDirectives.js +1 -17
- package/lib/GraphQL/loaders/schemaMutations.js +1 -20
- package/lib/GraphQL/loaders/schemaQueries.js +1 -14
- package/lib/GraphQL/loaders/schemaTypes.js +2 -6
- package/lib/GraphQL/loaders/usersMutations.js +6 -28
- package/lib/GraphQL/loaders/usersQueries.js +4 -26
- package/lib/GraphQL/parseGraphQLUtils.js +6 -19
- package/lib/GraphQL/transformers/className.js +1 -4
- package/lib/GraphQL/transformers/constraintType.js +1 -20
- package/lib/GraphQL/transformers/inputType.js +1 -20
- package/lib/GraphQL/transformers/mutation.js +6 -51
- package/lib/GraphQL/transformers/outputType.js +1 -20
- package/lib/GraphQL/transformers/query.js +6 -42
- package/lib/GraphQL/transformers/schemaFields.js +7 -34
- package/lib/KeyPromiseQueue.js +1 -12
- package/lib/LiveQuery/Client.js +1 -25
- package/lib/LiveQuery/Id.js +1 -7
- package/lib/LiveQuery/ParseCloudCodePublisher.js +13 -19
- package/lib/LiveQuery/ParseLiveQueryServer.js +92 -306
- package/lib/LiveQuery/ParsePubSub.js +1 -12
- package/lib/LiveQuery/ParseWebSocketServer.js +4 -26
- package/lib/LiveQuery/QueryTools.js +14 -116
- package/lib/LiveQuery/RequestSchema.js +1 -1
- package/lib/LiveQuery/SessionTokenCache.js +1 -17
- package/lib/LiveQuery/Subscription.js +4 -18
- package/lib/LiveQuery/equalObjects.js +2 -14
- package/lib/Options/Definitions.js +79 -10
- package/lib/Options/docs.js +23 -3
- package/lib/Options/index.js +4 -12
- package/lib/Options/parsers.js +1 -18
- package/lib/Page.js +1 -9
- package/lib/ParseMessageQueue.js +1 -10
- package/lib/ParseServer.js +144 -182
- package/lib/ParseServerRESTController.js +6 -33
- package/lib/PromiseRouter.js +16 -50
- package/lib/Push/PushQueue.js +3 -15
- package/lib/Push/PushWorker.js +7 -32
- package/lib/Push/utils.js +9 -38
- package/lib/RestQuery.js +105 -242
- package/lib/RestWrite.js +212 -377
- package/lib/Routers/AggregateRouter.js +14 -51
- package/lib/Routers/AnalyticsRouter.js +2 -8
- package/lib/Routers/AudiencesRouter.js +1 -15
- package/lib/Routers/ClassesRouter.js +3 -53
- package/lib/Routers/CloudCodeRouter.js +1 -19
- package/lib/Routers/FeaturesRouter.js +1 -10
- package/lib/Routers/FilesRouter.js +29 -76
- package/lib/Routers/FunctionsRouter.js +5 -28
- package/lib/Routers/GlobalConfigRouter.js +4 -18
- package/lib/Routers/GraphQLRouter.js +1 -14
- package/lib/Routers/HooksRouter.js +1 -29
- package/lib/Routers/IAPValidationRouter.js +6 -29
- package/lib/Routers/InstallationsRouter.js +2 -12
- package/lib/Routers/LogsRouter.js +4 -16
- package/lib/Routers/PagesRouter.js +69 -129
- package/lib/Routers/PublicAPIRouter.js +3 -62
- package/lib/Routers/PurgeRouter.js +1 -15
- package/lib/Routers/PushRouter.js +2 -18
- package/lib/Routers/RolesRouter.js +1 -7
- package/lib/Routers/SchemasRouter.js +4 -34
- package/lib/Routers/SecurityRouter.js +1 -12
- package/lib/Routers/SessionsRouter.js +3 -19
- package/lib/Routers/UsersRouter.js +58 -155
- package/lib/SchemaMigrations/DefinedSchemas.js +56 -115
- package/lib/SchemaMigrations/Migrations.js +2 -8
- package/lib/Security/Check.js +8 -16
- package/lib/Security/CheckGroup.js +4 -11
- package/lib/Security/CheckGroups/CheckGroupDatabase.js +8 -18
- package/lib/Security/CheckGroups/CheckGroupServerConfig.js +5 -15
- package/lib/Security/CheckGroups/CheckGroups.js +1 -4
- package/lib/Security/CheckRunner.js +22 -41
- package/lib/StatusHandler.js +12 -69
- package/lib/TestUtils.js +1 -6
- package/lib/Utils.js +27 -66
- package/lib/batch.js +17 -28
- package/lib/cache.js +1 -3
- package/lib/cli/definitions/parse-live-query-server.js +1 -3
- package/lib/cli/definitions/parse-server.js +1 -3
- package/lib/cli/parse-live-query-server.js +1 -6
- package/lib/cli/parse-server.js +11 -21
- package/lib/cli/utils/commander.js +13 -51
- package/lib/cli/utils/runner.js +1 -14
- package/lib/cloud-code/Parse.Cloud.js +71 -92
- package/lib/cryptoUtils.js +11 -19
- package/lib/defaults.js +2 -14
- package/lib/deprecated.js +1 -2
- package/lib/index.js +16 -34
- package/lib/logger.js +6 -13
- package/lib/middlewares.js +147 -151
- package/lib/password.js +6 -10
- package/lib/request.js +173 -2
- package/lib/requiredParameter.js +1 -3
- package/lib/rest.js +19 -41
- package/lib/triggers.js +54 -252
- package/lib/vendor/mongodbUrl.js +125 -305
- package/package.json +22 -19
- package/lib/cloud-code/HTTPResponse.js +0 -73
- package/lib/cloud-code/httpRequest.js +0 -192
|
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.SessionTokenCache = void 0;
|
|
7
|
-
|
|
8
7
|
var _node = _interopRequireDefault(require("parse/node"));
|
|
9
|
-
|
|
10
8
|
var _lruCache = _interopRequireDefault(require("lru-cache"));
|
|
11
|
-
|
|
12
9
|
var _logger = _interopRequireDefault(require("../logger"));
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
function userForSessionToken(sessionToken) {
|
|
17
12
|
var q = new _node.default.Query('_Session');
|
|
18
13
|
q.equalTo('sessionToken', sessionToken);
|
|
@@ -22,11 +17,9 @@ function userForSessionToken(sessionToken) {
|
|
|
22
17
|
if (!session) {
|
|
23
18
|
return Promise.reject('No session found for session token');
|
|
24
19
|
}
|
|
25
|
-
|
|
26
20
|
return session.get('user');
|
|
27
21
|
});
|
|
28
22
|
}
|
|
29
|
-
|
|
30
23
|
class SessionTokenCache {
|
|
31
24
|
constructor(timeout = 30 * 24 * 60 * 60 * 1000, maxSize = 10000) {
|
|
32
25
|
this.cache = new _lruCache.default({
|
|
@@ -34,34 +27,25 @@ class SessionTokenCache {
|
|
|
34
27
|
ttl: timeout
|
|
35
28
|
});
|
|
36
29
|
}
|
|
37
|
-
|
|
38
30
|
getUserId(sessionToken) {
|
|
39
31
|
if (!sessionToken) {
|
|
40
32
|
return Promise.reject('Empty sessionToken');
|
|
41
33
|
}
|
|
42
|
-
|
|
43
34
|
const userId = this.cache.get(sessionToken);
|
|
44
|
-
|
|
45
35
|
if (userId) {
|
|
46
36
|
_logger.default.verbose('Fetch userId %s of sessionToken %s from Cache', userId, sessionToken);
|
|
47
|
-
|
|
48
37
|
return Promise.resolve(userId);
|
|
49
38
|
}
|
|
50
|
-
|
|
51
39
|
return userForSessionToken(sessionToken).then(user => {
|
|
52
40
|
_logger.default.verbose('Fetch userId %s of sessionToken %s from Parse', user.id, sessionToken);
|
|
53
|
-
|
|
54
41
|
const userId = user.id;
|
|
55
42
|
this.cache.set(sessionToken, userId);
|
|
56
43
|
return Promise.resolve(userId);
|
|
57
44
|
}, error => {
|
|
58
45
|
_logger.default.error('Can not fetch userId for sessionToken %j, error %j', sessionToken, error);
|
|
59
|
-
|
|
60
46
|
return Promise.reject(error);
|
|
61
47
|
});
|
|
62
48
|
}
|
|
63
|
-
|
|
64
49
|
}
|
|
65
|
-
|
|
66
50
|
exports.SessionTokenCache = SessionTokenCache;
|
|
67
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VyRm9yU2Vzc2lvblRva2VuIiwic2Vzc2lvblRva2VuIiwicSIsIlBhcnNlIiwiUXVlcnkiLCJlcXVhbFRvIiwiZmlyc3QiLCJ1c2VNYXN0ZXJLZXkiLCJ0aGVuIiwic2Vzc2lvbiIsIlByb21pc2UiLCJyZWplY3QiLCJnZXQiLCJTZXNzaW9uVG9rZW5DYWNoZSIsImNvbnN0cnVjdG9yIiwidGltZW91dCIsIm1heFNpemUiLCJjYWNoZSIsIkxSVSIsIm1heCIsInR0bCIsImdldFVzZXJJZCIsInVzZXJJZCIsImxvZ2dlciIsInZlcmJvc2UiLCJyZXNvbHZlIiwidXNlciIsImlkIiwic2V0IiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvTGl2ZVF1ZXJ5L1Nlc3Npb25Ub2tlbkNhY2hlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQYXJzZSBmcm9tICdwYXJzZS9ub2RlJztcbmltcG9ydCBMUlUgZnJvbSAnbHJ1LWNhY2hlJztcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi4vbG9nZ2VyJztcblxuZnVuY3Rpb24gdXNlckZvclNlc3Npb25Ub2tlbihzZXNzaW9uVG9rZW4pIHtcbiAgdmFyIHEgPSBuZXcgUGFyc2UuUXVlcnkoJ19TZXNzaW9uJyk7XG4gIHEuZXF1YWxUbygnc2Vzc2lvblRva2VuJywgc2Vzc2lvblRva2VuKTtcbiAgcmV0dXJuIHEuZmlyc3QoeyB1c2VNYXN0ZXJLZXk6IHRydWUgfSkudGhlbihmdW5jdGlvbiAoc2Vzc2lvbikge1xuICAgIGlmICghc2Vzc2lvbikge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCdObyBzZXNzaW9uIGZvdW5kIGZvciBzZXNzaW9uIHRva2VuJyk7XG4gICAgfVxuICAgIHJldHVybiBzZXNzaW9uLmdldCgndXNlcicpO1xuICB9KTtcbn1cblxuY2xhc3MgU2Vzc2lvblRva2VuQ2FjaGUge1xuICBjYWNoZTogT2JqZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHRpbWVvdXQ6IG51bWJlciA9IDMwICogMjQgKiA2MCAqIDYwICogMTAwMCwgbWF4U2l6ZTogbnVtYmVyID0gMTAwMDApIHtcbiAgICB0aGlzLmNhY2hlID0gbmV3IExSVSh7XG4gICAgICBtYXg6IG1heFNpemUsXG4gICAgICB0dGw6IHRpbWVvdXQsXG4gICAgfSk7XG4gIH1cblxuICBnZXRVc2VySWQoc2Vzc2lvblRva2VuOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghc2Vzc2lvblRva2VuKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ0VtcHR5IHNlc3Npb25Ub2tlbicpO1xuICAgIH1cbiAgICBjb25zdCB1c2VySWQgPSB0aGlzLmNhY2hlLmdldChzZXNzaW9uVG9rZW4pO1xuICAgIGlmICh1c2VySWQpIHtcbiAgICAgIGxvZ2dlci52ZXJib3NlKCdGZXRjaCB1c2VySWQgJXMgb2Ygc2Vzc2lvblRva2VuICVzIGZyb20gQ2FjaGUnLCB1c2VySWQsIHNlc3Npb25Ub2tlbik7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVzZXJJZCk7XG4gICAgfVxuICAgIHJldHVybiB1c2VyRm9yU2Vzc2lvblRva2VuKHNlc3Npb25Ub2tlbikudGhlbihcbiAgICAgIHVzZXIgPT4ge1xuICAgICAgICBsb2dnZXIudmVyYm9zZSgnRmV0Y2ggdXNlcklkICVzIG9mIHNlc3Npb25Ub2tlbiAlcyBmcm9tIFBhcnNlJywgdXNlci5pZCwgc2Vzc2lvblRva2VuKTtcbiAgICAgICAgY29uc3QgdXNlcklkID0gdXNlci5pZDtcbiAgICAgICAgdGhpcy5jYWNoZS5zZXQoc2Vzc2lvblRva2VuLCB1c2VySWQpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVzZXJJZCk7XG4gICAgICB9LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0NhbiBub3QgZmV0Y2ggdXNlcklkIGZvciBzZXNzaW9uVG9rZW4gJWosIGVycm9yICVqJywgc2Vzc2lvblRva2VuLCBlcnJvcik7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgeyBTZXNzaW9uVG9rZW5DYWNoZSB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFBK0I7QUFFL0IsU0FBU0EsbUJBQW1CLENBQUNDLFlBQVksRUFBRTtFQUN6QyxJQUFJQyxDQUFDLEdBQUcsSUFBSUMsYUFBSyxDQUFDQyxLQUFLLENBQUMsVUFBVSxDQUFDO0VBQ25DRixDQUFDLENBQUNHLE9BQU8sQ0FBQyxjQUFjLEVBQUVKLFlBQVksQ0FBQztFQUN2QyxPQUFPQyxDQUFDLENBQUNJLEtBQUssQ0FBQztJQUFFQyxZQUFZLEVBQUU7RUFBSyxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLFVBQVVDLE9BQU8sRUFBRTtJQUM3RCxJQUFJLENBQUNBLE9BQU8sRUFBRTtNQUNaLE9BQU9DLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDLG9DQUFvQyxDQUFDO0lBQzdEO0lBQ0EsT0FBT0YsT0FBTyxDQUFDRyxHQUFHLENBQUMsTUFBTSxDQUFDO0VBQzVCLENBQUMsQ0FBQztBQUNKO0FBRUEsTUFBTUMsaUJBQWlCLENBQUM7RUFHdEJDLFdBQVcsQ0FBQ0MsT0FBZSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUVDLE9BQWUsR0FBRyxLQUFLLEVBQUU7SUFDL0UsSUFBSSxDQUFDQyxLQUFLLEdBQUcsSUFBSUMsaUJBQUcsQ0FBQztNQUNuQkMsR0FBRyxFQUFFSCxPQUFPO01BQ1pJLEdBQUcsRUFBRUw7SUFDUCxDQUFDLENBQUM7RUFDSjtFQUVBTSxTQUFTLENBQUNwQixZQUFvQixFQUFPO0lBQ25DLElBQUksQ0FBQ0EsWUFBWSxFQUFFO01BQ2pCLE9BQU9TLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDLG9CQUFvQixDQUFDO0lBQzdDO0lBQ0EsTUFBTVcsTUFBTSxHQUFHLElBQUksQ0FBQ0wsS0FBSyxDQUFDTCxHQUFHLENBQUNYLFlBQVksQ0FBQztJQUMzQyxJQUFJcUIsTUFBTSxFQUFFO01BQ1ZDLGVBQU0sQ0FBQ0MsT0FBTyxDQUFDLCtDQUErQyxFQUFFRixNQUFNLEVBQUVyQixZQUFZLENBQUM7TUFDckYsT0FBT1MsT0FBTyxDQUFDZSxPQUFPLENBQUNILE1BQU0sQ0FBQztJQUNoQztJQUNBLE9BQU90QixtQkFBbUIsQ0FBQ0MsWUFBWSxDQUFDLENBQUNPLElBQUksQ0FDM0NrQixJQUFJLElBQUk7TUFDTkgsZUFBTSxDQUFDQyxPQUFPLENBQUMsK0NBQStDLEVBQUVFLElBQUksQ0FBQ0MsRUFBRSxFQUFFMUIsWUFBWSxDQUFDO01BQ3RGLE1BQU1xQixNQUFNLEdBQUdJLElBQUksQ0FBQ0MsRUFBRTtNQUN0QixJQUFJLENBQUNWLEtBQUssQ0FBQ1csR0FBRyxDQUFDM0IsWUFBWSxFQUFFcUIsTUFBTSxDQUFDO01BQ3BDLE9BQU9aLE9BQU8sQ0FBQ2UsT0FBTyxDQUFDSCxNQUFNLENBQUM7SUFDaEMsQ0FBQyxFQUNETyxLQUFLLElBQUk7TUFDUE4sZUFBTSxDQUFDTSxLQUFLLENBQUMsb0RBQW9ELEVBQUU1QixZQUFZLEVBQUU0QixLQUFLLENBQUM7TUFDdkYsT0FBT25CLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDa0IsS0FBSyxDQUFDO0lBQzlCLENBQUMsQ0FDRjtFQUNIO0FBQ0Y7QUFBQyJ9
|
|
@@ -4,58 +4,44 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Subscription = void 0;
|
|
7
|
-
|
|
8
7
|
var _logger = _interopRequireDefault(require("../logger"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
class Subscription {
|
|
13
10
|
// It is query condition eg query.where
|
|
11
|
+
|
|
14
12
|
constructor(className, query, queryHash) {
|
|
15
13
|
this.className = className;
|
|
16
14
|
this.query = query;
|
|
17
15
|
this.hash = queryHash;
|
|
18
16
|
this.clientRequestIds = new Map();
|
|
19
17
|
}
|
|
20
|
-
|
|
21
18
|
addClientSubscription(clientId, requestId) {
|
|
22
19
|
if (!this.clientRequestIds.has(clientId)) {
|
|
23
20
|
this.clientRequestIds.set(clientId, []);
|
|
24
21
|
}
|
|
25
|
-
|
|
26
22
|
const requestIds = this.clientRequestIds.get(clientId);
|
|
27
23
|
requestIds.push(requestId);
|
|
28
24
|
}
|
|
29
|
-
|
|
30
25
|
deleteClientSubscription(clientId, requestId) {
|
|
31
26
|
const requestIds = this.clientRequestIds.get(clientId);
|
|
32
|
-
|
|
33
27
|
if (typeof requestIds === 'undefined') {
|
|
34
28
|
_logger.default.error('Can not find client %d to delete', clientId);
|
|
35
|
-
|
|
36
29
|
return;
|
|
37
30
|
}
|
|
38
|
-
|
|
39
31
|
const index = requestIds.indexOf(requestId);
|
|
40
|
-
|
|
41
32
|
if (index < 0) {
|
|
42
33
|
_logger.default.error('Can not find client %d subscription %d to delete', clientId, requestId);
|
|
43
|
-
|
|
44
34
|
return;
|
|
45
35
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
36
|
+
requestIds.splice(index, 1);
|
|
37
|
+
// Delete client reference if it has no subscription
|
|
49
38
|
if (requestIds.length == 0) {
|
|
50
39
|
this.clientRequestIds.delete(clientId);
|
|
51
40
|
}
|
|
52
41
|
}
|
|
53
|
-
|
|
54
42
|
hasSubscribingClient() {
|
|
55
43
|
return this.clientRequestIds.size > 0;
|
|
56
44
|
}
|
|
57
|
-
|
|
58
45
|
}
|
|
59
|
-
|
|
60
46
|
exports.Subscription = Subscription;
|
|
61
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdWJzY3JpcHRpb24iLCJjb25zdHJ1Y3RvciIsImNsYXNzTmFtZSIsInF1ZXJ5IiwicXVlcnlIYXNoIiwiaGFzaCIsImNsaWVudFJlcXVlc3RJZHMiLCJNYXAiLCJhZGRDbGllbnRTdWJzY3JpcHRpb24iLCJjbGllbnRJZCIsInJlcXVlc3RJZCIsImhhcyIsInNldCIsInJlcXVlc3RJZHMiLCJnZXQiLCJwdXNoIiwiZGVsZXRlQ2xpZW50U3Vic2NyaXB0aW9uIiwibG9nZ2VyIiwiZXJyb3IiLCJpbmRleCIsImluZGV4T2YiLCJzcGxpY2UiLCJsZW5ndGgiLCJkZWxldGUiLCJoYXNTdWJzY3JpYmluZ0NsaWVudCIsInNpemUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvTGl2ZVF1ZXJ5L1N1YnNjcmlwdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2xvZ2dlcic7XG5cbmV4cG9ydCB0eXBlIEZsYXR0ZW5lZE9iamVjdERhdGEgPSB7IFthdHRyOiBzdHJpbmddOiBhbnkgfTtcbmV4cG9ydCB0eXBlIFF1ZXJ5RGF0YSA9IHsgW2F0dHI6IHN0cmluZ106IGFueSB9O1xuXG5jbGFzcyBTdWJzY3JpcHRpb24ge1xuICAvLyBJdCBpcyBxdWVyeSBjb25kaXRpb24gZWcgcXVlcnkud2hlcmVcbiAgcXVlcnk6IFF1ZXJ5RGF0YTtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIGhhc2g6IHN0cmluZztcbiAgY2xpZW50UmVxdWVzdElkczogT2JqZWN0O1xuXG4gIGNvbnN0cnVjdG9yKGNsYXNzTmFtZTogc3RyaW5nLCBxdWVyeTogUXVlcnlEYXRhLCBxdWVyeUhhc2g6IHN0cmluZykge1xuICAgIHRoaXMuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICB0aGlzLmhhc2ggPSBxdWVyeUhhc2g7XG4gICAgdGhpcy5jbGllbnRSZXF1ZXN0SWRzID0gbmV3IE1hcCgpO1xuICB9XG5cbiAgYWRkQ2xpZW50U3Vic2NyaXB0aW9uKGNsaWVudElkOiBudW1iZXIsIHJlcXVlc3RJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNsaWVudFJlcXVlc3RJZHMuaGFzKGNsaWVudElkKSkge1xuICAgICAgdGhpcy5jbGllbnRSZXF1ZXN0SWRzLnNldChjbGllbnRJZCwgW10pO1xuICAgIH1cbiAgICBjb25zdCByZXF1ZXN0SWRzID0gdGhpcy5jbGllbnRSZXF1ZXN0SWRzLmdldChjbGllbnRJZCk7XG4gICAgcmVxdWVzdElkcy5wdXNoKHJlcXVlc3RJZCk7XG4gIH1cblxuICBkZWxldGVDbGllbnRTdWJzY3JpcHRpb24oY2xpZW50SWQ6IG51bWJlciwgcmVxdWVzdElkOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCByZXF1ZXN0SWRzID0gdGhpcy5jbGllbnRSZXF1ZXN0SWRzLmdldChjbGllbnRJZCk7XG4gICAgaWYgKHR5cGVvZiByZXF1ZXN0SWRzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgbG9nZ2VyLmVycm9yKCdDYW4gbm90IGZpbmQgY2xpZW50ICVkIHRvIGRlbGV0ZScsIGNsaWVudElkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleCA9IHJlcXVlc3RJZHMuaW5kZXhPZihyZXF1ZXN0SWQpO1xuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIGxvZ2dlci5lcnJvcignQ2FuIG5vdCBmaW5kIGNsaWVudCAlZCBzdWJzY3JpcHRpb24gJWQgdG8gZGVsZXRlJywgY2xpZW50SWQsIHJlcXVlc3RJZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJlcXVlc3RJZHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAvLyBEZWxldGUgY2xpZW50IHJlZmVyZW5jZSBpZiBpdCBoYXMgbm8gc3Vic2NyaXB0aW9uXG4gICAgaWYgKHJlcXVlc3RJZHMubGVuZ3RoID09IDApIHtcbiAgICAgIHRoaXMuY2xpZW50UmVxdWVzdElkcy5kZWxldGUoY2xpZW50SWQpO1xuICAgIH1cbiAgfVxuXG4gIGhhc1N1YnNjcmliaW5nQ2xpZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudFJlcXVlc3RJZHMuc2l6ZSA+IDA7XG4gIH1cbn1cblxuZXhwb3J0IHsgU3Vic2NyaXB0aW9uIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQStCO0FBSy9CLE1BQU1BLFlBQVksQ0FBQztFQUNqQjs7RUFNQUMsV0FBVyxDQUFDQyxTQUFpQixFQUFFQyxLQUFnQixFQUFFQyxTQUFpQixFQUFFO0lBQ2xFLElBQUksQ0FBQ0YsU0FBUyxHQUFHQSxTQUFTO0lBQzFCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQSxLQUFLO0lBQ2xCLElBQUksQ0FBQ0UsSUFBSSxHQUFHRCxTQUFTO0lBQ3JCLElBQUksQ0FBQ0UsZ0JBQWdCLEdBQUcsSUFBSUMsR0FBRyxFQUFFO0VBQ25DO0VBRUFDLHFCQUFxQixDQUFDQyxRQUFnQixFQUFFQyxTQUFpQixFQUFRO0lBQy9ELElBQUksQ0FBQyxJQUFJLENBQUNKLGdCQUFnQixDQUFDSyxHQUFHLENBQUNGLFFBQVEsQ0FBQyxFQUFFO01BQ3hDLElBQUksQ0FBQ0gsZ0JBQWdCLENBQUNNLEdBQUcsQ0FBQ0gsUUFBUSxFQUFFLEVBQUUsQ0FBQztJQUN6QztJQUNBLE1BQU1JLFVBQVUsR0FBRyxJQUFJLENBQUNQLGdCQUFnQixDQUFDUSxHQUFHLENBQUNMLFFBQVEsQ0FBQztJQUN0REksVUFBVSxDQUFDRSxJQUFJLENBQUNMLFNBQVMsQ0FBQztFQUM1QjtFQUVBTSx3QkFBd0IsQ0FBQ1AsUUFBZ0IsRUFBRUMsU0FBaUIsRUFBUTtJQUNsRSxNQUFNRyxVQUFVLEdBQUcsSUFBSSxDQUFDUCxnQkFBZ0IsQ0FBQ1EsR0FBRyxDQUFDTCxRQUFRLENBQUM7SUFDdEQsSUFBSSxPQUFPSSxVQUFVLEtBQUssV0FBVyxFQUFFO01BQ3JDSSxlQUFNLENBQUNDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRVQsUUFBUSxDQUFDO01BQzFEO0lBQ0Y7SUFFQSxNQUFNVSxLQUFLLEdBQUdOLFVBQVUsQ0FBQ08sT0FBTyxDQUFDVixTQUFTLENBQUM7SUFDM0MsSUFBSVMsS0FBSyxHQUFHLENBQUMsRUFBRTtNQUNiRixlQUFNLENBQUNDLEtBQUssQ0FBQyxrREFBa0QsRUFBRVQsUUFBUSxFQUFFQyxTQUFTLENBQUM7TUFDckY7SUFDRjtJQUNBRyxVQUFVLENBQUNRLE1BQU0sQ0FBQ0YsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMzQjtJQUNBLElBQUlOLFVBQVUsQ0FBQ1MsTUFBTSxJQUFJLENBQUMsRUFBRTtNQUMxQixJQUFJLENBQUNoQixnQkFBZ0IsQ0FBQ2lCLE1BQU0sQ0FBQ2QsUUFBUSxDQUFDO0lBQ3hDO0VBQ0Y7RUFFQWUsb0JBQW9CLEdBQVk7SUFDOUIsT0FBTyxJQUFJLENBQUNsQixnQkFBZ0IsQ0FBQ21CLElBQUksR0FBRyxDQUFDO0VBQ3ZDO0FBQ0Y7QUFBQyJ9
|
|
@@ -1,62 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var toString = Object.prototype.toString;
|
|
4
|
+
|
|
4
5
|
/**
|
|
5
6
|
* Determines whether two objects represent the same primitive, special Parse
|
|
6
7
|
* type, or full Parse Object.
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
9
|
function equalObjects(a, b) {
|
|
10
10
|
if (typeof a !== typeof b) {
|
|
11
11
|
return false;
|
|
12
12
|
}
|
|
13
|
-
|
|
14
13
|
if (typeof a !== 'object') {
|
|
15
14
|
return a === b;
|
|
16
15
|
}
|
|
17
|
-
|
|
18
16
|
if (a === b) {
|
|
19
17
|
return true;
|
|
20
18
|
}
|
|
21
|
-
|
|
22
19
|
if (toString.call(a) === '[object Date]') {
|
|
23
20
|
if (toString.call(b) === '[object Date]') {
|
|
24
21
|
return +a === +b;
|
|
25
22
|
}
|
|
26
|
-
|
|
27
23
|
return false;
|
|
28
24
|
}
|
|
29
|
-
|
|
30
25
|
if (Array.isArray(a)) {
|
|
31
26
|
if (Array.isArray(b)) {
|
|
32
27
|
if (a.length !== b.length) {
|
|
33
28
|
return false;
|
|
34
29
|
}
|
|
35
|
-
|
|
36
30
|
for (var i = 0; i < a.length; i++) {
|
|
37
31
|
if (!equalObjects(a[i], b[i])) {
|
|
38
32
|
return false;
|
|
39
33
|
}
|
|
40
34
|
}
|
|
41
|
-
|
|
42
35
|
return true;
|
|
43
36
|
}
|
|
44
|
-
|
|
45
37
|
return false;
|
|
46
38
|
}
|
|
47
|
-
|
|
48
39
|
if (Object.keys(a).length !== Object.keys(b).length) {
|
|
49
40
|
return false;
|
|
50
41
|
}
|
|
51
|
-
|
|
52
42
|
for (var key in a) {
|
|
53
43
|
if (!equalObjects(a[key], b[key])) {
|
|
54
44
|
return false;
|
|
55
45
|
}
|
|
56
46
|
}
|
|
57
|
-
|
|
58
47
|
return true;
|
|
59
48
|
}
|
|
60
|
-
|
|
61
49
|
module.exports = equalObjects;
|
|
62
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0b1N0cmluZyIsIk9iamVjdCIsInByb3RvdHlwZSIsImVxdWFsT2JqZWN0cyIsImEiLCJiIiwiY2FsbCIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImkiLCJrZXlzIiwia2V5IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MaXZlUXVlcnkvZXF1YWxPYmplY3RzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHR3byBvYmplY3RzIHJlcHJlc2VudCB0aGUgc2FtZSBwcmltaXRpdmUsIHNwZWNpYWwgUGFyc2VcbiAqIHR5cGUsIG9yIGZ1bGwgUGFyc2UgT2JqZWN0LlxuICovXG5mdW5jdGlvbiBlcXVhbE9iamVjdHMoYSwgYikge1xuICBpZiAodHlwZW9mIGEgIT09IHR5cGVvZiBiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICh0eXBlb2YgYSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gYSA9PT0gYjtcbiAgfVxuICBpZiAoYSA9PT0gYikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmICh0b1N0cmluZy5jYWxsKGEpID09PSAnW29iamVjdCBEYXRlXScpIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChiKSA9PT0gJ1tvYmplY3QgRGF0ZV0nKSB7XG4gICAgICByZXR1cm4gK2EgPT09ICtiO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShiKSkge1xuICAgICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFlcXVhbE9iamVjdHMoYVtpXSwgYltpXSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKE9iamVjdC5rZXlzKGEpLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMoYikubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGZvciAodmFyIGtleSBpbiBhKSB7XG4gICAgaWYgKCFlcXVhbE9iamVjdHMoYVtrZXldLCBiW2tleV0pKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVxdWFsT2JqZWN0cztcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFJQSxRQUFRLEdBQUdDLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDRixRQUFROztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNHLFlBQVksQ0FBQ0MsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDMUIsSUFBSSxPQUFPRCxDQUFDLEtBQUssT0FBT0MsQ0FBQyxFQUFFO0lBQ3pCLE9BQU8sS0FBSztFQUNkO0VBQ0EsSUFBSSxPQUFPRCxDQUFDLEtBQUssUUFBUSxFQUFFO0lBQ3pCLE9BQU9BLENBQUMsS0FBS0MsQ0FBQztFQUNoQjtFQUNBLElBQUlELENBQUMsS0FBS0MsQ0FBQyxFQUFFO0lBQ1gsT0FBTyxJQUFJO0VBQ2I7RUFDQSxJQUFJTCxRQUFRLENBQUNNLElBQUksQ0FBQ0YsQ0FBQyxDQUFDLEtBQUssZUFBZSxFQUFFO0lBQ3hDLElBQUlKLFFBQVEsQ0FBQ00sSUFBSSxDQUFDRCxDQUFDLENBQUMsS0FBSyxlQUFlLEVBQUU7TUFDeEMsT0FBTyxDQUFDRCxDQUFDLEtBQUssQ0FBQ0MsQ0FBQztJQUNsQjtJQUNBLE9BQU8sS0FBSztFQUNkO0VBQ0EsSUFBSUUsS0FBSyxDQUFDQyxPQUFPLENBQUNKLENBQUMsQ0FBQyxFQUFFO0lBQ3BCLElBQUlHLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSCxDQUFDLENBQUMsRUFBRTtNQUNwQixJQUFJRCxDQUFDLENBQUNLLE1BQU0sS0FBS0osQ0FBQyxDQUFDSSxNQUFNLEVBQUU7UUFDekIsT0FBTyxLQUFLO01BQ2Q7TUFDQSxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR04sQ0FBQyxDQUFDSyxNQUFNLEVBQUVDLENBQUMsRUFBRSxFQUFFO1FBQ2pDLElBQUksQ0FBQ1AsWUFBWSxDQUFDQyxDQUFDLENBQUNNLENBQUMsQ0FBQyxFQUFFTCxDQUFDLENBQUNLLENBQUMsQ0FBQyxDQUFDLEVBQUU7VUFDN0IsT0FBTyxLQUFLO1FBQ2Q7TUFDRjtNQUNBLE9BQU8sSUFBSTtJQUNiO0lBQ0EsT0FBTyxLQUFLO0VBQ2Q7RUFDQSxJQUFJVCxNQUFNLENBQUNVLElBQUksQ0FBQ1AsQ0FBQyxDQUFDLENBQUNLLE1BQU0sS0FBS1IsTUFBTSxDQUFDVSxJQUFJLENBQUNOLENBQUMsQ0FBQyxDQUFDSSxNQUFNLEVBQUU7SUFDbkQsT0FBTyxLQUFLO0VBQ2Q7RUFDQSxLQUFLLElBQUlHLEdBQUcsSUFBSVIsQ0FBQyxFQUFFO0lBQ2pCLElBQUksQ0FBQ0QsWUFBWSxDQUFDQyxDQUFDLENBQUNRLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLENBQUNPLEdBQUcsQ0FBQyxDQUFDLEVBQUU7TUFDakMsT0FBTyxLQUFLO0lBQ2Q7RUFDRjtFQUNBLE9BQU8sSUFBSTtBQUNiO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHWCxZQUFZIn0=
|