parse-server 2.8.4 → 8.6.2
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/LICENSE +167 -25
- package/NOTICE +10 -0
- package/README.md +929 -278
- package/lib/AccountLockout.js +47 -30
- package/lib/Adapters/AdapterLoader.js +21 -6
- package/lib/Adapters/Analytics/AnalyticsAdapter.js +15 -12
- package/lib/Adapters/Auth/AuthAdapter.js +116 -13
- package/lib/Adapters/Auth/BaseCodeAuthAdapter.js +99 -0
- package/lib/Adapters/Auth/OAuth1Client.js +27 -46
- package/lib/Adapters/Auth/apple.js +123 -0
- package/lib/Adapters/Auth/facebook.js +162 -35
- package/lib/Adapters/Auth/gcenter.js +217 -0
- package/lib/Adapters/Auth/github.js +118 -48
- package/lib/Adapters/Auth/google.js +160 -51
- package/lib/Adapters/Auth/gpgames.js +125 -0
- package/lib/Adapters/Auth/httpsRequest.js +6 -7
- package/lib/Adapters/Auth/index.js +170 -62
- package/lib/Adapters/Auth/instagram.js +114 -40
- package/lib/Adapters/Auth/janraincapture.js +52 -23
- package/lib/Adapters/Auth/janrainengage.js +19 -36
- package/lib/Adapters/Auth/keycloak.js +148 -0
- package/lib/Adapters/Auth/ldap.js +167 -0
- package/lib/Adapters/Auth/line.js +125 -0
- package/lib/Adapters/Auth/linkedin.js +111 -55
- package/lib/Adapters/Auth/meetup.js +24 -34
- package/lib/Adapters/Auth/mfa.js +324 -0
- package/lib/Adapters/Auth/microsoft.js +111 -0
- package/lib/Adapters/Auth/oauth2.js +97 -162
- package/lib/Adapters/Auth/phantauth.js +53 -0
- package/lib/Adapters/Auth/qq.js +108 -49
- package/lib/Adapters/Auth/spotify.js +107 -55
- package/lib/Adapters/Auth/twitter.js +188 -48
- package/lib/Adapters/Auth/utils.js +28 -0
- package/lib/Adapters/Auth/vkontakte.js +26 -39
- package/lib/Adapters/Auth/wechat.js +106 -44
- package/lib/Adapters/Auth/weibo.js +132 -58
- package/lib/Adapters/Cache/CacheAdapter.js +13 -8
- package/lib/Adapters/Cache/InMemoryCache.js +3 -13
- package/lib/Adapters/Cache/InMemoryCacheAdapter.js +5 -13
- package/lib/Adapters/Cache/LRUCache.js +13 -27
- package/lib/Adapters/Cache/NullCacheAdapter.js +3 -8
- package/lib/Adapters/Cache/RedisCacheAdapter.js +85 -76
- package/lib/Adapters/Cache/SchemaCache.js +25 -0
- package/lib/Adapters/Email/MailAdapter.js +10 -8
- package/lib/Adapters/Files/FilesAdapter.js +83 -25
- package/lib/Adapters/Files/GridFSBucketAdapter.js +231 -0
- package/lib/Adapters/Files/GridStoreAdapter.js +4 -91
- package/lib/Adapters/Logger/LoggerAdapter.js +18 -14
- package/lib/Adapters/Logger/WinstonLogger.js +69 -88
- package/lib/Adapters/Logger/WinstonLoggerAdapter.js +7 -16
- package/lib/Adapters/MessageQueue/EventEmitterMQ.js +8 -26
- package/lib/Adapters/PubSub/EventEmitterPubSub.js +12 -25
- package/lib/Adapters/PubSub/PubSubAdapter.js +34 -0
- package/lib/Adapters/PubSub/RedisPubSub.js +42 -19
- package/lib/Adapters/Push/PushAdapter.js +14 -7
- package/lib/Adapters/Storage/Mongo/MongoCollection.js +137 -45
- package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +158 -63
- package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +320 -168
- package/lib/Adapters/Storage/Mongo/MongoTransform.js +279 -306
- package/lib/Adapters/Storage/Postgres/PostgresClient.js +14 -10
- package/lib/Adapters/Storage/Postgres/PostgresConfigParser.js +47 -21
- package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +854 -468
- package/lib/Adapters/Storage/Postgres/sql/index.js +4 -6
- package/lib/Adapters/Storage/StorageAdapter.js +1 -1
- package/lib/Adapters/WebSocketServer/WSAdapter.js +35 -0
- package/lib/Adapters/WebSocketServer/WSSAdapter.js +66 -0
- package/lib/Auth.js +488 -125
- package/lib/ClientSDK.js +2 -6
- package/lib/Config.js +525 -94
- package/lib/Controllers/AdaptableController.js +5 -25
- package/lib/Controllers/AnalyticsController.js +22 -23
- package/lib/Controllers/CacheController.js +10 -31
- package/lib/Controllers/DatabaseController.js +767 -313
- package/lib/Controllers/FilesController.js +49 -54
- package/lib/Controllers/HooksController.js +80 -84
- package/lib/Controllers/LiveQueryController.js +35 -22
- package/lib/Controllers/LoggerController.js +22 -58
- package/lib/Controllers/ParseGraphQLController.js +293 -0
- package/lib/Controllers/PushController.js +58 -49
- package/lib/Controllers/SchemaController.js +916 -422
- package/lib/Controllers/UserController.js +265 -180
- package/lib/Controllers/index.js +90 -125
- package/lib/Controllers/types.js +1 -1
- package/lib/Deprecator/Deprecations.js +30 -0
- package/lib/Deprecator/Deprecator.js +127 -0
- package/lib/Error.js +48 -0
- package/lib/GraphQL/ParseGraphQLSchema.js +375 -0
- package/lib/GraphQL/ParseGraphQLServer.js +214 -0
- package/lib/GraphQL/helpers/objectsMutations.js +30 -0
- package/lib/GraphQL/helpers/objectsQueries.js +246 -0
- package/lib/GraphQL/loaders/configMutations.js +87 -0
- package/lib/GraphQL/loaders/configQueries.js +79 -0
- package/lib/GraphQL/loaders/defaultGraphQLMutations.js +21 -0
- package/lib/GraphQL/loaders/defaultGraphQLQueries.js +23 -0
- package/lib/GraphQL/loaders/defaultGraphQLTypes.js +1098 -0
- package/lib/GraphQL/loaders/defaultRelaySchema.js +53 -0
- package/lib/GraphQL/loaders/filesMutations.js +107 -0
- package/lib/GraphQL/loaders/functionsMutations.js +78 -0
- package/lib/GraphQL/loaders/parseClassMutations.js +268 -0
- package/lib/GraphQL/loaders/parseClassQueries.js +127 -0
- package/lib/GraphQL/loaders/parseClassTypes.js +493 -0
- package/lib/GraphQL/loaders/schemaDirectives.js +62 -0
- package/lib/GraphQL/loaders/schemaMutations.js +162 -0
- package/lib/GraphQL/loaders/schemaQueries.js +81 -0
- package/lib/GraphQL/loaders/schemaTypes.js +341 -0
- package/lib/GraphQL/loaders/usersMutations.js +433 -0
- package/lib/GraphQL/loaders/usersQueries.js +90 -0
- package/lib/GraphQL/parseGraphQLUtils.js +63 -0
- package/lib/GraphQL/transformers/className.js +14 -0
- package/lib/GraphQL/transformers/constraintType.js +53 -0
- package/lib/GraphQL/transformers/inputType.js +51 -0
- package/lib/GraphQL/transformers/mutation.js +274 -0
- package/lib/GraphQL/transformers/outputType.js +51 -0
- package/lib/GraphQL/transformers/query.js +237 -0
- package/lib/GraphQL/transformers/schemaFields.js +99 -0
- package/lib/KeyPromiseQueue.js +48 -0
- package/lib/LiveQuery/Client.js +25 -33
- package/lib/LiveQuery/Id.js +2 -5
- package/lib/LiveQuery/ParseCloudCodePublisher.js +26 -23
- package/lib/LiveQuery/ParseLiveQueryServer.js +560 -285
- package/lib/LiveQuery/ParsePubSub.js +7 -16
- package/lib/LiveQuery/ParseWebSocketServer.js +42 -39
- package/lib/LiveQuery/QueryTools.js +76 -15
- package/lib/LiveQuery/RequestSchema.js +111 -97
- package/lib/LiveQuery/SessionTokenCache.js +23 -36
- package/lib/LiveQuery/Subscription.js +8 -17
- package/lib/LiveQuery/equalObjects.js +2 -3
- package/lib/Options/Definitions.js +1355 -382
- package/lib/Options/docs.js +301 -62
- package/lib/Options/index.js +11 -1
- package/lib/Options/parsers.js +14 -10
- package/lib/Page.js +44 -0
- package/lib/ParseMessageQueue.js +6 -13
- package/lib/ParseServer.js +474 -235
- package/lib/ParseServerRESTController.js +102 -40
- package/lib/PromiseRouter.js +39 -50
- package/lib/Push/PushQueue.js +24 -30
- package/lib/Push/PushWorker.js +32 -56
- package/lib/Push/utils.js +22 -35
- package/lib/RestQuery.js +361 -139
- package/lib/RestWrite.js +713 -344
- package/lib/Routers/AggregateRouter.js +97 -71
- package/lib/Routers/AnalyticsRouter.js +8 -14
- package/lib/Routers/AudiencesRouter.js +16 -35
- package/lib/Routers/ClassesRouter.js +86 -72
- package/lib/Routers/CloudCodeRouter.js +28 -37
- package/lib/Routers/FeaturesRouter.js +22 -25
- package/lib/Routers/FilesRouter.js +266 -171
- package/lib/Routers/FunctionsRouter.js +87 -103
- package/lib/Routers/GlobalConfigRouter.js +94 -33
- package/lib/Routers/GraphQLRouter.js +41 -0
- package/lib/Routers/HooksRouter.js +43 -47
- package/lib/Routers/IAPValidationRouter.js +57 -70
- package/lib/Routers/InstallationsRouter.js +17 -25
- package/lib/Routers/LogsRouter.js +10 -25
- package/lib/Routers/PagesRouter.js +647 -0
- package/lib/Routers/PublicAPIRouter.js +104 -112
- package/lib/Routers/PurgeRouter.js +19 -29
- package/lib/Routers/PushRouter.js +14 -28
- package/lib/Routers/RolesRouter.js +7 -14
- package/lib/Routers/SchemasRouter.js +63 -42
- package/lib/Routers/SecurityRouter.js +34 -0
- package/lib/Routers/SessionsRouter.js +25 -38
- package/lib/Routers/UsersRouter.js +463 -190
- package/lib/SchemaMigrations/DefinedSchemas.js +379 -0
- package/lib/SchemaMigrations/Migrations.js +30 -0
- package/lib/Security/Check.js +109 -0
- package/lib/Security/CheckGroup.js +44 -0
- package/lib/Security/CheckGroups/CheckGroupDatabase.js +44 -0
- package/lib/Security/CheckGroups/CheckGroupServerConfig.js +96 -0
- package/lib/Security/CheckGroups/CheckGroups.js +21 -0
- package/lib/Security/CheckRunner.js +213 -0
- package/lib/SharedRest.js +29 -0
- package/lib/StatusHandler.js +96 -93
- package/lib/TestUtils.js +70 -14
- package/lib/Utils.js +468 -0
- package/lib/batch.js +74 -40
- package/lib/cache.js +8 -8
- package/lib/cli/definitions/parse-live-query-server.js +4 -3
- package/lib/cli/definitions/parse-server.js +4 -3
- package/lib/cli/parse-live-query-server.js +9 -17
- package/lib/cli/parse-server.js +49 -47
- package/lib/cli/utils/commander.js +20 -29
- package/lib/cli/utils/runner.js +31 -32
- package/lib/cloud-code/Parse.Cloud.js +711 -36
- package/lib/cloud-code/Parse.Server.js +21 -0
- package/lib/cryptoUtils.js +6 -11
- package/lib/defaults.js +21 -15
- package/lib/deprecated.js +1 -1
- package/lib/index.js +78 -67
- package/lib/logger.js +12 -20
- package/lib/middlewares.js +484 -160
- package/lib/password.js +10 -6
- package/lib/request.js +175 -0
- package/lib/requiredParameter.js +4 -3
- package/lib/rest.js +157 -82
- package/lib/triggers.js +627 -185
- package/lib/vendor/README.md +3 -3
- package/lib/vendor/mongodbUrl.js +224 -137
- package/package.json +135 -57
- package/postinstall.js +38 -50
- package/public_html/invalid_verification_link.html +3 -3
- package/types/@types/@parse/fs-files-adapter/index.d.ts +5 -0
- package/types/@types/deepcopy/index.d.ts +5 -0
- package/types/LiveQuery/ParseLiveQueryServer.d.ts +40 -0
- package/types/Options/index.d.ts +301 -0
- package/types/ParseServer.d.ts +65 -0
- package/types/eslint.config.mjs +30 -0
- package/types/index.d.ts +21 -0
- package/types/logger.d.ts +2 -0
- package/types/tests.ts +44 -0
- package/types/tsconfig.json +24 -0
- package/CHANGELOG.md +0 -1246
- package/PATENTS +0 -37
- package/bin/dev +0 -37
- package/lib/.DS_Store +0 -0
- package/lib/Adapters/Auth/common.js +0 -2
- package/lib/Adapters/Auth/facebookaccountkit.js +0 -69
- package/lib/Controllers/SchemaCache.js +0 -97
- package/lib/LiveQuery/.DS_Store +0 -0
- package/lib/cli/utils/parsers.js +0 -77
- package/lib/cloud-code/.DS_Store +0 -0
- package/lib/cloud-code/HTTPResponse.js +0 -57
- package/lib/cloud-code/Untitled-1 +0 -123
- package/lib/cloud-code/httpRequest.js +0 -102
- package/lib/cloud-code/team.html +0 -123
- package/lib/graphql/ParseClass.js +0 -234
- package/lib/graphql/Schema.js +0 -197
- package/lib/graphql/index.js +0 -1
- package/lib/graphql/types/ACL.js +0 -35
- package/lib/graphql/types/Date.js +0 -25
- package/lib/graphql/types/File.js +0 -24
- package/lib/graphql/types/GeoPoint.js +0 -35
- package/lib/graphql/types/JSONObject.js +0 -30
- package/lib/graphql/types/NumberInput.js +0 -43
- package/lib/graphql/types/NumberQuery.js +0 -42
- package/lib/graphql/types/Pointer.js +0 -35
- package/lib/graphql/types/QueryConstraint.js +0 -61
- package/lib/graphql/types/StringQuery.js +0 -39
- package/lib/graphql/types/index.js +0 -110
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.transformQueryInputToParse = exports.transformQueryConstraintInputToParse = void 0;
|
|
7
|
+
var _graphqlRelay = require("graphql-relay");
|
|
8
|
+
const parseQueryMap = {
|
|
9
|
+
OR: '$or',
|
|
10
|
+
AND: '$and',
|
|
11
|
+
NOR: '$nor'
|
|
12
|
+
};
|
|
13
|
+
const parseConstraintMap = {
|
|
14
|
+
equalTo: '$eq',
|
|
15
|
+
notEqualTo: '$ne',
|
|
16
|
+
lessThan: '$lt',
|
|
17
|
+
lessThanOrEqualTo: '$lte',
|
|
18
|
+
greaterThan: '$gt',
|
|
19
|
+
greaterThanOrEqualTo: '$gte',
|
|
20
|
+
in: '$in',
|
|
21
|
+
notIn: '$nin',
|
|
22
|
+
exists: '$exists',
|
|
23
|
+
inQueryKey: '$select',
|
|
24
|
+
notInQueryKey: '$dontSelect',
|
|
25
|
+
inQuery: '$inQuery',
|
|
26
|
+
notInQuery: '$notInQuery',
|
|
27
|
+
containedBy: '$containedBy',
|
|
28
|
+
contains: '$all',
|
|
29
|
+
matchesRegex: '$regex',
|
|
30
|
+
options: '$options',
|
|
31
|
+
text: '$text',
|
|
32
|
+
search: '$search',
|
|
33
|
+
term: '$term',
|
|
34
|
+
language: '$language',
|
|
35
|
+
caseSensitive: '$caseSensitive',
|
|
36
|
+
diacriticSensitive: '$diacriticSensitive',
|
|
37
|
+
nearSphere: '$nearSphere',
|
|
38
|
+
maxDistance: '$maxDistance',
|
|
39
|
+
maxDistanceInRadians: '$maxDistanceInRadians',
|
|
40
|
+
maxDistanceInMiles: '$maxDistanceInMiles',
|
|
41
|
+
maxDistanceInKilometers: '$maxDistanceInKilometers',
|
|
42
|
+
within: '$within',
|
|
43
|
+
box: '$box',
|
|
44
|
+
geoWithin: '$geoWithin',
|
|
45
|
+
polygon: '$polygon',
|
|
46
|
+
centerSphere: '$centerSphere',
|
|
47
|
+
geoIntersects: '$geoIntersects',
|
|
48
|
+
point: '$point'
|
|
49
|
+
};
|
|
50
|
+
const transformQueryConstraintInputToParse = (constraints, parentFieldName, className, parentConstraints, parseClasses) => {
|
|
51
|
+
const fields = parseClasses[className].fields;
|
|
52
|
+
if (parentFieldName === 'id' && className) {
|
|
53
|
+
Object.keys(constraints).forEach(constraintName => {
|
|
54
|
+
const constraintValue = constraints[constraintName];
|
|
55
|
+
if (typeof constraintValue === 'string') {
|
|
56
|
+
const globalIdObject = (0, _graphqlRelay.fromGlobalId)(constraintValue);
|
|
57
|
+
if (globalIdObject.type === className) {
|
|
58
|
+
constraints[constraintName] = globalIdObject.id;
|
|
59
|
+
}
|
|
60
|
+
} else if (Array.isArray(constraintValue)) {
|
|
61
|
+
constraints[constraintName] = constraintValue.map(value => {
|
|
62
|
+
const globalIdObject = (0, _graphqlRelay.fromGlobalId)(value);
|
|
63
|
+
if (globalIdObject.type === className) {
|
|
64
|
+
return globalIdObject.id;
|
|
65
|
+
}
|
|
66
|
+
return value;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
parentConstraints.objectId = constraints;
|
|
71
|
+
delete parentConstraints.id;
|
|
72
|
+
}
|
|
73
|
+
Object.keys(constraints).forEach(fieldName => {
|
|
74
|
+
let fieldValue = constraints[fieldName];
|
|
75
|
+
if (parseConstraintMap[fieldName]) {
|
|
76
|
+
constraints[parseConstraintMap[fieldName]] = constraints[fieldName];
|
|
77
|
+
delete constraints[fieldName];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* If we have a key-value pair, we need to change the way the constraint is structured.
|
|
81
|
+
*
|
|
82
|
+
* Example:
|
|
83
|
+
* From:
|
|
84
|
+
* {
|
|
85
|
+
* "someField": {
|
|
86
|
+
* "lessThan": {
|
|
87
|
+
* "key":"foo.bar",
|
|
88
|
+
* "value": 100
|
|
89
|
+
* },
|
|
90
|
+
* "greaterThan": {
|
|
91
|
+
* "key":"foo.bar",
|
|
92
|
+
* "value": 10
|
|
93
|
+
* }
|
|
94
|
+
* }
|
|
95
|
+
* }
|
|
96
|
+
*
|
|
97
|
+
* To:
|
|
98
|
+
* {
|
|
99
|
+
* "someField.foo.bar": {
|
|
100
|
+
* "$lt": 100,
|
|
101
|
+
* "$gt": 10
|
|
102
|
+
* }
|
|
103
|
+
* }
|
|
104
|
+
*/
|
|
105
|
+
if (fieldValue.key && fieldValue.value !== undefined && parentConstraints && parentFieldName) {
|
|
106
|
+
delete parentConstraints[parentFieldName];
|
|
107
|
+
parentConstraints[`${parentFieldName}.${fieldValue.key}`] = {
|
|
108
|
+
...parentConstraints[`${parentFieldName}.${fieldValue.key}`],
|
|
109
|
+
[parseConstraintMap[fieldName]]: fieldValue.value
|
|
110
|
+
};
|
|
111
|
+
} else if (fields[parentFieldName] && (fields[parentFieldName].type === 'Pointer' || fields[parentFieldName].type === 'Relation')) {
|
|
112
|
+
const {
|
|
113
|
+
targetClass
|
|
114
|
+
} = fields[parentFieldName];
|
|
115
|
+
if (fieldName === 'exists') {
|
|
116
|
+
if (fields[parentFieldName].type === 'Relation') {
|
|
117
|
+
const whereTarget = fieldValue ? 'where' : 'notWhere';
|
|
118
|
+
if (constraints[whereTarget]) {
|
|
119
|
+
if (constraints[whereTarget].objectId) {
|
|
120
|
+
constraints[whereTarget].objectId = {
|
|
121
|
+
...constraints[whereTarget].objectId,
|
|
122
|
+
$exists: fieldValue
|
|
123
|
+
};
|
|
124
|
+
} else {
|
|
125
|
+
constraints[whereTarget].objectId = {
|
|
126
|
+
$exists: fieldValue
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
} else {
|
|
130
|
+
const parseWhereTarget = fieldValue ? '$inQuery' : '$notInQuery';
|
|
131
|
+
parentConstraints[parentFieldName][parseWhereTarget] = {
|
|
132
|
+
where: {
|
|
133
|
+
objectId: {
|
|
134
|
+
$exists: true
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
className: targetClass
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
delete constraints.$exists;
|
|
141
|
+
} else {
|
|
142
|
+
parentConstraints[parentFieldName].$exists = fieldValue;
|
|
143
|
+
}
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
switch (fieldName) {
|
|
147
|
+
case 'have':
|
|
148
|
+
parentConstraints[parentFieldName].$inQuery = {
|
|
149
|
+
where: fieldValue,
|
|
150
|
+
className: targetClass
|
|
151
|
+
};
|
|
152
|
+
transformQueryInputToParse(parentConstraints[parentFieldName].$inQuery.where, targetClass, parseClasses);
|
|
153
|
+
break;
|
|
154
|
+
case 'haveNot':
|
|
155
|
+
parentConstraints[parentFieldName].$notInQuery = {
|
|
156
|
+
where: fieldValue,
|
|
157
|
+
className: targetClass
|
|
158
|
+
};
|
|
159
|
+
transformQueryInputToParse(parentConstraints[parentFieldName].$notInQuery.where, targetClass, parseClasses);
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
delete constraints[fieldName];
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
switch (fieldName) {
|
|
166
|
+
case 'point':
|
|
167
|
+
if (typeof fieldValue === 'object' && !fieldValue.__type) {
|
|
168
|
+
fieldValue.__type = 'GeoPoint';
|
|
169
|
+
}
|
|
170
|
+
break;
|
|
171
|
+
case 'nearSphere':
|
|
172
|
+
if (typeof fieldValue === 'object' && !fieldValue.__type) {
|
|
173
|
+
fieldValue.__type = 'GeoPoint';
|
|
174
|
+
}
|
|
175
|
+
break;
|
|
176
|
+
case 'box':
|
|
177
|
+
if (typeof fieldValue === 'object' && fieldValue.bottomLeft && fieldValue.upperRight) {
|
|
178
|
+
fieldValue = [{
|
|
179
|
+
__type: 'GeoPoint',
|
|
180
|
+
...fieldValue.bottomLeft
|
|
181
|
+
}, {
|
|
182
|
+
__type: 'GeoPoint',
|
|
183
|
+
...fieldValue.upperRight
|
|
184
|
+
}];
|
|
185
|
+
constraints[parseConstraintMap[fieldName]] = fieldValue;
|
|
186
|
+
}
|
|
187
|
+
break;
|
|
188
|
+
case 'polygon':
|
|
189
|
+
if (fieldValue instanceof Array) {
|
|
190
|
+
fieldValue.forEach(geoPoint => {
|
|
191
|
+
if (typeof geoPoint === 'object' && !geoPoint.__type) {
|
|
192
|
+
geoPoint.__type = 'GeoPoint';
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
break;
|
|
197
|
+
case 'centerSphere':
|
|
198
|
+
if (typeof fieldValue === 'object' && fieldValue.center && fieldValue.distance) {
|
|
199
|
+
fieldValue = [{
|
|
200
|
+
__type: 'GeoPoint',
|
|
201
|
+
...fieldValue.center
|
|
202
|
+
}, fieldValue.distance];
|
|
203
|
+
constraints[parseConstraintMap[fieldName]] = fieldValue;
|
|
204
|
+
}
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
if (typeof fieldValue === 'object') {
|
|
208
|
+
if (fieldName === 'where') {
|
|
209
|
+
transformQueryInputToParse(fieldValue, className, parseClasses);
|
|
210
|
+
} else {
|
|
211
|
+
transformQueryConstraintInputToParse(fieldValue, fieldName, className, constraints, parseClasses);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
};
|
|
216
|
+
exports.transformQueryConstraintInputToParse = transformQueryConstraintInputToParse;
|
|
217
|
+
const transformQueryInputToParse = (constraints, className, parseClasses) => {
|
|
218
|
+
if (!constraints || typeof constraints !== 'object') {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
Object.keys(constraints).forEach(fieldName => {
|
|
222
|
+
const fieldValue = constraints[fieldName];
|
|
223
|
+
if (parseQueryMap[fieldName]) {
|
|
224
|
+
delete constraints[fieldName];
|
|
225
|
+
fieldName = parseQueryMap[fieldName];
|
|
226
|
+
constraints[fieldName] = fieldValue;
|
|
227
|
+
fieldValue.forEach(fieldValueItem => {
|
|
228
|
+
transformQueryInputToParse(fieldValueItem, className, parseClasses);
|
|
229
|
+
});
|
|
230
|
+
return;
|
|
231
|
+
} else {
|
|
232
|
+
transformQueryConstraintInputToParse(fieldValue, fieldName, className, constraints, parseClasses);
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
};
|
|
236
|
+
exports.transformQueryInputToParse = transformQueryInputToParse;
|
|
237
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ3JhcGhxbFJlbGF5IiwicmVxdWlyZSIsInBhcnNlUXVlcnlNYXAiLCJPUiIsIkFORCIsIk5PUiIsInBhcnNlQ29uc3RyYWludE1hcCIsImVxdWFsVG8iLCJub3RFcXVhbFRvIiwibGVzc1RoYW4iLCJsZXNzVGhhbk9yRXF1YWxUbyIsImdyZWF0ZXJUaGFuIiwiZ3JlYXRlclRoYW5PckVxdWFsVG8iLCJpbiIsIm5vdEluIiwiZXhpc3RzIiwiaW5RdWVyeUtleSIsIm5vdEluUXVlcnlLZXkiLCJpblF1ZXJ5Iiwibm90SW5RdWVyeSIsImNvbnRhaW5lZEJ5IiwiY29udGFpbnMiLCJtYXRjaGVzUmVnZXgiLCJvcHRpb25zIiwidGV4dCIsInNlYXJjaCIsInRlcm0iLCJsYW5ndWFnZSIsImNhc2VTZW5zaXRpdmUiLCJkaWFjcml0aWNTZW5zaXRpdmUiLCJuZWFyU3BoZXJlIiwibWF4RGlzdGFuY2UiLCJtYXhEaXN0YW5jZUluUmFkaWFucyIsIm1heERpc3RhbmNlSW5NaWxlcyIsIm1heERpc3RhbmNlSW5LaWxvbWV0ZXJzIiwid2l0aGluIiwiYm94IiwiZ2VvV2l0aGluIiwicG9seWdvbiIsImNlbnRlclNwaGVyZSIsImdlb0ludGVyc2VjdHMiLCJwb2ludCIsInRyYW5zZm9ybVF1ZXJ5Q29uc3RyYWludElucHV0VG9QYXJzZSIsImNvbnN0cmFpbnRzIiwicGFyZW50RmllbGROYW1lIiwiY2xhc3NOYW1lIiwicGFyZW50Q29uc3RyYWludHMiLCJwYXJzZUNsYXNzZXMiLCJmaWVsZHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImNvbnN0cmFpbnROYW1lIiwiY29uc3RyYWludFZhbHVlIiwiZ2xvYmFsSWRPYmplY3QiLCJmcm9tR2xvYmFsSWQiLCJ0eXBlIiwiaWQiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJ2YWx1ZSIsIm9iamVjdElkIiwiZmllbGROYW1lIiwiZmllbGRWYWx1ZSIsImtleSIsInVuZGVmaW5lZCIsInRhcmdldENsYXNzIiwid2hlcmVUYXJnZXQiLCIkZXhpc3RzIiwicGFyc2VXaGVyZVRhcmdldCIsIndoZXJlIiwiJGluUXVlcnkiLCJ0cmFuc2Zvcm1RdWVyeUlucHV0VG9QYXJzZSIsIiRub3RJblF1ZXJ5IiwiX190eXBlIiwiYm90dG9tTGVmdCIsInVwcGVyUmlnaHQiLCJnZW9Qb2ludCIsImNlbnRlciIsImRpc3RhbmNlIiwiZXhwb3J0cyIsImZpZWxkVmFsdWVJdGVtIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0dyYXBoUUwvdHJhbnNmb3JtZXJzL3F1ZXJ5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21HbG9iYWxJZCB9IGZyb20gJ2dyYXBocWwtcmVsYXknO1xuXG5jb25zdCBwYXJzZVF1ZXJ5TWFwID0ge1xuICBPUjogJyRvcicsXG4gIEFORDogJyRhbmQnLFxuICBOT1I6ICckbm9yJyxcbn07XG5cbmNvbnN0IHBhcnNlQ29uc3RyYWludE1hcCA9IHtcbiAgZXF1YWxUbzogJyRlcScsXG4gIG5vdEVxdWFsVG86ICckbmUnLFxuICBsZXNzVGhhbjogJyRsdCcsXG4gIGxlc3NUaGFuT3JFcXVhbFRvOiAnJGx0ZScsXG4gIGdyZWF0ZXJUaGFuOiAnJGd0JyxcbiAgZ3JlYXRlclRoYW5PckVxdWFsVG86ICckZ3RlJyxcbiAgaW46ICckaW4nLFxuICBub3RJbjogJyRuaW4nLFxuICBleGlzdHM6ICckZXhpc3RzJyxcbiAgaW5RdWVyeUtleTogJyRzZWxlY3QnLFxuICBub3RJblF1ZXJ5S2V5OiAnJGRvbnRTZWxlY3QnLFxuICBpblF1ZXJ5OiAnJGluUXVlcnknLFxuICBub3RJblF1ZXJ5OiAnJG5vdEluUXVlcnknLFxuICBjb250YWluZWRCeTogJyRjb250YWluZWRCeScsXG4gIGNvbnRhaW5zOiAnJGFsbCcsXG4gIG1hdGNoZXNSZWdleDogJyRyZWdleCcsXG4gIG9wdGlvbnM6ICckb3B0aW9ucycsXG4gIHRleHQ6ICckdGV4dCcsXG4gIHNlYXJjaDogJyRzZWFyY2gnLFxuICB0ZXJtOiAnJHRlcm0nLFxuICBsYW5ndWFnZTogJyRsYW5ndWFnZScsXG4gIGNhc2VTZW5zaXRpdmU6ICckY2FzZVNlbnNpdGl2ZScsXG4gIGRpYWNyaXRpY1NlbnNpdGl2ZTogJyRkaWFjcml0aWNTZW5zaXRpdmUnLFxuICBuZWFyU3BoZXJlOiAnJG5lYXJTcGhlcmUnLFxuICBtYXhEaXN0YW5jZTogJyRtYXhEaXN0YW5jZScsXG4gIG1heERpc3RhbmNlSW5SYWRpYW5zOiAnJG1heERpc3RhbmNlSW5SYWRpYW5zJyxcbiAgbWF4RGlzdGFuY2VJbk1pbGVzOiAnJG1heERpc3RhbmNlSW5NaWxlcycsXG4gIG1heERpc3RhbmNlSW5LaWxvbWV0ZXJzOiAnJG1heERpc3RhbmNlSW5LaWxvbWV0ZXJzJyxcbiAgd2l0aGluOiAnJHdpdGhpbicsXG4gIGJveDogJyRib3gnLFxuICBnZW9XaXRoaW46ICckZ2VvV2l0aGluJyxcbiAgcG9seWdvbjogJyRwb2x5Z29uJyxcbiAgY2VudGVyU3BoZXJlOiAnJGNlbnRlclNwaGVyZScsXG4gIGdlb0ludGVyc2VjdHM6ICckZ2VvSW50ZXJzZWN0cycsXG4gIHBvaW50OiAnJHBvaW50Jyxcbn07XG5cbmNvbnN0IHRyYW5zZm9ybVF1ZXJ5Q29uc3RyYWludElucHV0VG9QYXJzZSA9IChcbiAgY29uc3RyYWludHMsXG4gIHBhcmVudEZpZWxkTmFtZSxcbiAgY2xhc3NOYW1lLFxuICBwYXJlbnRDb25zdHJhaW50cyxcbiAgcGFyc2VDbGFzc2VzXG4pID0+IHtcbiAgY29uc3QgZmllbGRzID0gcGFyc2VDbGFzc2VzW2NsYXNzTmFtZV0uZmllbGRzO1xuICBpZiAocGFyZW50RmllbGROYW1lID09PSAnaWQnICYmIGNsYXNzTmFtZSkge1xuICAgIE9iamVjdC5rZXlzKGNvbnN0cmFpbnRzKS5mb3JFYWNoKGNvbnN0cmFpbnROYW1lID0+IHtcbiAgICAgIGNvbnN0IGNvbnN0cmFpbnRWYWx1ZSA9IGNvbnN0cmFpbnRzW2NvbnN0cmFpbnROYW1lXTtcbiAgICAgIGlmICh0eXBlb2YgY29uc3RyYWludFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBnbG9iYWxJZE9iamVjdCA9IGZyb21HbG9iYWxJZChjb25zdHJhaW50VmFsdWUpO1xuXG4gICAgICAgIGlmIChnbG9iYWxJZE9iamVjdC50eXBlID09PSBjbGFzc05hbWUpIHtcbiAgICAgICAgICBjb25zdHJhaW50c1tjb25zdHJhaW50TmFtZV0gPSBnbG9iYWxJZE9iamVjdC5pZDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGNvbnN0cmFpbnRWYWx1ZSkpIHtcbiAgICAgICAgY29uc3RyYWludHNbY29uc3RyYWludE5hbWVdID0gY29uc3RyYWludFZhbHVlLm1hcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgY29uc3QgZ2xvYmFsSWRPYmplY3QgPSBmcm9tR2xvYmFsSWQodmFsdWUpO1xuXG4gICAgICAgICAgaWYgKGdsb2JhbElkT2JqZWN0LnR5cGUgPT09IGNsYXNzTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGdsb2JhbElkT2JqZWN0LmlkO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcGFyZW50Q29uc3RyYWludHMub2JqZWN0SWQgPSBjb25zdHJhaW50cztcbiAgICBkZWxldGUgcGFyZW50Q29uc3RyYWludHMuaWQ7XG4gIH1cbiAgT2JqZWN0LmtleXMoY29uc3RyYWludHMpLmZvckVhY2goZmllbGROYW1lID0+IHtcbiAgICBsZXQgZmllbGRWYWx1ZSA9IGNvbnN0cmFpbnRzW2ZpZWxkTmFtZV07XG4gICAgaWYgKHBhcnNlQ29uc3RyYWludE1hcFtmaWVsZE5hbWVdKSB7XG4gICAgICBjb25zdHJhaW50c1twYXJzZUNvbnN0cmFpbnRNYXBbZmllbGROYW1lXV0gPSBjb25zdHJhaW50c1tmaWVsZE5hbWVdO1xuICAgICAgZGVsZXRlIGNvbnN0cmFpbnRzW2ZpZWxkTmFtZV07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIHdlIGhhdmUgYSBrZXktdmFsdWUgcGFpciwgd2UgbmVlZCB0byBjaGFuZ2UgdGhlIHdheSB0aGUgY29uc3RyYWludCBpcyBzdHJ1Y3R1cmVkLlxuICAgICAqXG4gICAgICogRXhhbXBsZTpcbiAgICAgKiAgIEZyb206XG4gICAgICogICB7XG4gICAgICogICAgIFwic29tZUZpZWxkXCI6IHtcbiAgICAgKiAgICAgICBcImxlc3NUaGFuXCI6IHtcbiAgICAgKiAgICAgICAgIFwia2V5XCI6XCJmb28uYmFyXCIsXG4gICAgICogICAgICAgICBcInZhbHVlXCI6IDEwMFxuICAgICAqICAgICAgIH0sXG4gICAgICogICAgICAgXCJncmVhdGVyVGhhblwiOiB7XG4gICAgICogICAgICAgICBcImtleVwiOlwiZm9vLmJhclwiLFxuICAgICAqICAgICAgICAgXCJ2YWx1ZVwiOiAxMFxuICAgICAqICAgICAgIH1cbiAgICAgKiAgICAgfVxuICAgICAqICAgfVxuICAgICAqXG4gICAgICogICBUbzpcbiAgICAgKiAgIHtcbiAgICAgKiAgICAgXCJzb21lRmllbGQuZm9vLmJhclwiOiB7XG4gICAgICogICAgICAgXCIkbHRcIjogMTAwLFxuICAgICAqICAgICAgIFwiJGd0XCI6IDEwXG4gICAgICogICAgICB9XG4gICAgICogICB9XG4gICAgICovXG4gICAgaWYgKGZpZWxkVmFsdWUua2V5ICYmIGZpZWxkVmFsdWUudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwYXJlbnRDb25zdHJhaW50cyAmJiBwYXJlbnRGaWVsZE5hbWUpIHtcbiAgICAgIGRlbGV0ZSBwYXJlbnRDb25zdHJhaW50c1twYXJlbnRGaWVsZE5hbWVdO1xuICAgICAgcGFyZW50Q29uc3RyYWludHNbYCR7cGFyZW50RmllbGROYW1lfS4ke2ZpZWxkVmFsdWUua2V5fWBdID0ge1xuICAgICAgICAuLi5wYXJlbnRDb25zdHJhaW50c1tgJHtwYXJlbnRGaWVsZE5hbWV9LiR7ZmllbGRWYWx1ZS5rZXl9YF0sXG4gICAgICAgIFtwYXJzZUNvbnN0cmFpbnRNYXBbZmllbGROYW1lXV06IGZpZWxkVmFsdWUudmFsdWUsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBmaWVsZHNbcGFyZW50RmllbGROYW1lXSAmJlxuICAgICAgKGZpZWxkc1twYXJlbnRGaWVsZE5hbWVdLnR5cGUgPT09ICdQb2ludGVyJyB8fCBmaWVsZHNbcGFyZW50RmllbGROYW1lXS50eXBlID09PSAnUmVsYXRpb24nKVxuICAgICkge1xuICAgICAgY29uc3QgeyB0YXJnZXRDbGFzcyB9ID0gZmllbGRzW3BhcmVudEZpZWxkTmFtZV07XG4gICAgICBpZiAoZmllbGROYW1lID09PSAnZXhpc3RzJykge1xuICAgICAgICBpZiAoZmllbGRzW3BhcmVudEZpZWxkTmFtZV0udHlwZSA9PT0gJ1JlbGF0aW9uJykge1xuICAgICAgICAgIGNvbnN0IHdoZXJlVGFyZ2V0ID0gZmllbGRWYWx1ZSA/ICd3aGVyZScgOiAnbm90V2hlcmUnO1xuICAgICAgICAgIGlmIChjb25zdHJhaW50c1t3aGVyZVRhcmdldF0pIHtcbiAgICAgICAgICAgIGlmIChjb25zdHJhaW50c1t3aGVyZVRhcmdldF0ub2JqZWN0SWQpIHtcbiAgICAgICAgICAgICAgY29uc3RyYWludHNbd2hlcmVUYXJnZXRdLm9iamVjdElkID0ge1xuICAgICAgICAgICAgICAgIC4uLmNvbnN0cmFpbnRzW3doZXJlVGFyZ2V0XS5vYmplY3RJZCxcbiAgICAgICAgICAgICAgICAkZXhpc3RzOiBmaWVsZFZhbHVlLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3RyYWludHNbd2hlcmVUYXJnZXRdLm9iamVjdElkID0ge1xuICAgICAgICAgICAgICAgICRleGlzdHM6IGZpZWxkVmFsdWUsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlV2hlcmVUYXJnZXQgPSBmaWVsZFZhbHVlID8gJyRpblF1ZXJ5JyA6ICckbm90SW5RdWVyeSc7XG4gICAgICAgICAgICBwYXJlbnRDb25zdHJhaW50c1twYXJlbnRGaWVsZE5hbWVdW3BhcnNlV2hlcmVUYXJnZXRdID0ge1xuICAgICAgICAgICAgICB3aGVyZTogeyBvYmplY3RJZDogeyAkZXhpc3RzOiB0cnVlIH0gfSxcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0YXJnZXRDbGFzcyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlbGV0ZSBjb25zdHJhaW50cy4kZXhpc3RzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhcmVudENvbnN0cmFpbnRzW3BhcmVudEZpZWxkTmFtZV0uJGV4aXN0cyA9IGZpZWxkVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgc3dpdGNoIChmaWVsZE5hbWUpIHtcbiAgICAgICAgY2FzZSAnaGF2ZSc6XG4gICAgICAgICAgcGFyZW50Q29uc3RyYWludHNbcGFyZW50RmllbGROYW1lXS4kaW5RdWVyeSA9IHtcbiAgICAgICAgICAgIHdoZXJlOiBmaWVsZFZhbHVlLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiB0YXJnZXRDbGFzcyxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRyYW5zZm9ybVF1ZXJ5SW5wdXRUb1BhcnNlKFxuICAgICAgICAgICAgcGFyZW50Q29uc3RyYWludHNbcGFyZW50RmllbGROYW1lXS4kaW5RdWVyeS53aGVyZSxcbiAgICAgICAgICAgIHRhcmdldENsYXNzLFxuICAgICAgICAgICAgcGFyc2VDbGFzc2VzXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaGF2ZU5vdCc6XG4gICAgICAgICAgcGFyZW50Q29uc3RyYWludHNbcGFyZW50RmllbGROYW1lXS4kbm90SW5RdWVyeSA9IHtcbiAgICAgICAgICAgIHdoZXJlOiBmaWVsZFZhbHVlLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiB0YXJnZXRDbGFzcyxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRyYW5zZm9ybVF1ZXJ5SW5wdXRUb1BhcnNlKFxuICAgICAgICAgICAgcGFyZW50Q29uc3RyYWludHNbcGFyZW50RmllbGROYW1lXS4kbm90SW5RdWVyeS53aGVyZSxcbiAgICAgICAgICAgIHRhcmdldENsYXNzLFxuICAgICAgICAgICAgcGFyc2VDbGFzc2VzXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlbGV0ZSBjb25zdHJhaW50c1tmaWVsZE5hbWVdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzd2l0Y2ggKGZpZWxkTmFtZSkge1xuICAgICAgY2FzZSAncG9pbnQnOlxuICAgICAgICBpZiAodHlwZW9mIGZpZWxkVmFsdWUgPT09ICdvYmplY3QnICYmICFmaWVsZFZhbHVlLl9fdHlwZSkge1xuICAgICAgICAgIGZpZWxkVmFsdWUuX190eXBlID0gJ0dlb1BvaW50JztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ25lYXJTcGhlcmUnOlxuICAgICAgICBpZiAodHlwZW9mIGZpZWxkVmFsdWUgPT09ICdvYmplY3QnICYmICFmaWVsZFZhbHVlLl9fdHlwZSkge1xuICAgICAgICAgIGZpZWxkVmFsdWUuX190eXBlID0gJ0dlb1BvaW50JztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JveCc6XG4gICAgICAgIGlmICh0eXBlb2YgZmllbGRWYWx1ZSA9PT0gJ29iamVjdCcgJiYgZmllbGRWYWx1ZS5ib3R0b21MZWZ0ICYmIGZpZWxkVmFsdWUudXBwZXJSaWdodCkge1xuICAgICAgICAgIGZpZWxkVmFsdWUgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIF9fdHlwZTogJ0dlb1BvaW50JyxcbiAgICAgICAgICAgICAgLi4uZmllbGRWYWx1ZS5ib3R0b21MZWZ0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgX190eXBlOiAnR2VvUG9pbnQnLFxuICAgICAgICAgICAgICAuLi5maWVsZFZhbHVlLnVwcGVyUmlnaHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF07XG4gICAgICAgICAgY29uc3RyYWludHNbcGFyc2VDb25zdHJhaW50TWFwW2ZpZWxkTmFtZV1dID0gZmllbGRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3BvbHlnb24nOlxuICAgICAgICBpZiAoZmllbGRWYWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgZmllbGRWYWx1ZS5mb3JFYWNoKGdlb1BvaW50ID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZ2VvUG9pbnQgPT09ICdvYmplY3QnICYmICFnZW9Qb2ludC5fX3R5cGUpIHtcbiAgICAgICAgICAgICAgZ2VvUG9pbnQuX190eXBlID0gJ0dlb1BvaW50JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NlbnRlclNwaGVyZSc6XG4gICAgICAgIGlmICh0eXBlb2YgZmllbGRWYWx1ZSA9PT0gJ29iamVjdCcgJiYgZmllbGRWYWx1ZS5jZW50ZXIgJiYgZmllbGRWYWx1ZS5kaXN0YW5jZSkge1xuICAgICAgICAgIGZpZWxkVmFsdWUgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIF9fdHlwZTogJ0dlb1BvaW50JyxcbiAgICAgICAgICAgICAgLi4uZmllbGRWYWx1ZS5jZW50ZXIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmllbGRWYWx1ZS5kaXN0YW5jZSxcbiAgICAgICAgICBdO1xuICAgICAgICAgIGNvbnN0cmFpbnRzW3BhcnNlQ29uc3RyYWludE1hcFtmaWVsZE5hbWVdXSA9IGZpZWxkVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZmllbGRWYWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChmaWVsZE5hbWUgPT09ICd3aGVyZScpIHtcbiAgICAgICAgdHJhbnNmb3JtUXVlcnlJbnB1dFRvUGFyc2UoZmllbGRWYWx1ZSwgY2xhc3NOYW1lLCBwYXJzZUNsYXNzZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJhbnNmb3JtUXVlcnlDb25zdHJhaW50SW5wdXRUb1BhcnNlKFxuICAgICAgICAgIGZpZWxkVmFsdWUsXG4gICAgICAgICAgZmllbGROYW1lLFxuICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICBjb25zdHJhaW50cyxcbiAgICAgICAgICBwYXJzZUNsYXNzZXNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufTtcblxuY29uc3QgdHJhbnNmb3JtUXVlcnlJbnB1dFRvUGFyc2UgPSAoY29uc3RyYWludHMsIGNsYXNzTmFtZSwgcGFyc2VDbGFzc2VzKSA9PiB7XG4gIGlmICghY29uc3RyYWludHMgfHwgdHlwZW9mIGNvbnN0cmFpbnRzICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIE9iamVjdC5rZXlzKGNvbnN0cmFpbnRzKS5mb3JFYWNoKGZpZWxkTmFtZSA9PiB7XG4gICAgY29uc3QgZmllbGRWYWx1ZSA9IGNvbnN0cmFpbnRzW2ZpZWxkTmFtZV07XG5cbiAgICBpZiAocGFyc2VRdWVyeU1hcFtmaWVsZE5hbWVdKSB7XG4gICAgICBkZWxldGUgY29uc3RyYWludHNbZmllbGROYW1lXTtcbiAgICAgIGZpZWxkTmFtZSA9IHBhcnNlUXVlcnlNYXBbZmllbGROYW1lXTtcbiAgICAgIGNvbnN0cmFpbnRzW2ZpZWxkTmFtZV0gPSBmaWVsZFZhbHVlO1xuICAgICAgZmllbGRWYWx1ZS5mb3JFYWNoKGZpZWxkVmFsdWVJdGVtID0+IHtcbiAgICAgICAgdHJhbnNmb3JtUXVlcnlJbnB1dFRvUGFyc2UoZmllbGRWYWx1ZUl0ZW0sIGNsYXNzTmFtZSwgcGFyc2VDbGFzc2VzKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0cmFuc2Zvcm1RdWVyeUNvbnN0cmFpbnRJbnB1dFRvUGFyc2UoXG4gICAgICAgIGZpZWxkVmFsdWUsXG4gICAgICAgIGZpZWxkTmFtZSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICBjb25zdHJhaW50cyxcbiAgICAgICAgcGFyc2VDbGFzc2VzXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG59O1xuXG5leHBvcnQgeyB0cmFuc2Zvcm1RdWVyeUNvbnN0cmFpbnRJbnB1dFRvUGFyc2UsIHRyYW5zZm9ybVF1ZXJ5SW5wdXRUb1BhcnNlIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLGFBQUEsR0FBQUMsT0FBQTtBQUVBLE1BQU1DLGFBQWEsR0FBRztFQUNwQkMsRUFBRSxFQUFFLEtBQUs7RUFDVEMsR0FBRyxFQUFFLE1BQU07RUFDWEMsR0FBRyxFQUFFO0FBQ1AsQ0FBQztBQUVELE1BQU1DLGtCQUFrQixHQUFHO0VBQ3pCQyxPQUFPLEVBQUUsS0FBSztFQUNkQyxVQUFVLEVBQUUsS0FBSztFQUNqQkMsUUFBUSxFQUFFLEtBQUs7RUFDZkMsaUJBQWlCLEVBQUUsTUFBTTtFQUN6QkMsV0FBVyxFQUFFLEtBQUs7RUFDbEJDLG9CQUFvQixFQUFFLE1BQU07RUFDNUJDLEVBQUUsRUFBRSxLQUFLO0VBQ1RDLEtBQUssRUFBRSxNQUFNO0VBQ2JDLE1BQU0sRUFBRSxTQUFTO0VBQ2pCQyxVQUFVLEVBQUUsU0FBUztFQUNyQkMsYUFBYSxFQUFFLGFBQWE7RUFDNUJDLE9BQU8sRUFBRSxVQUFVO0VBQ25CQyxVQUFVLEVBQUUsYUFBYTtFQUN6QkMsV0FBVyxFQUFFLGNBQWM7RUFDM0JDLFFBQVEsRUFBRSxNQUFNO0VBQ2hCQyxZQUFZLEVBQUUsUUFBUTtFQUN0QkMsT0FBTyxFQUFFLFVBQVU7RUFDbkJDLElBQUksRUFBRSxPQUFPO0VBQ2JDLE1BQU0sRUFBRSxTQUFTO0VBQ2pCQyxJ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
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.transformToParse = exports.transformToGraphQL = void 0;
|
|
7
|
+
var _node = _interopRequireDefault(require("parse/node"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
const transformToParse = (graphQLSchemaFields, existingFields) => {
|
|
10
|
+
if (!graphQLSchemaFields) {
|
|
11
|
+
return {};
|
|
12
|
+
}
|
|
13
|
+
let parseSchemaFields = {};
|
|
14
|
+
const reducerGenerator = type => (parseSchemaFields, field) => {
|
|
15
|
+
if (type === 'Remove') {
|
|
16
|
+
if (existingFields[field.name]) {
|
|
17
|
+
return {
|
|
18
|
+
...parseSchemaFields,
|
|
19
|
+
[field.name]: {
|
|
20
|
+
__op: 'Delete'
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
} else {
|
|
24
|
+
return parseSchemaFields;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (graphQLSchemaFields.remove && graphQLSchemaFields.remove.find(removeField => removeField.name === field.name)) {
|
|
28
|
+
return parseSchemaFields;
|
|
29
|
+
}
|
|
30
|
+
if (parseSchemaFields[field.name] || existingFields && existingFields[field.name]) {
|
|
31
|
+
throw new _node.default.Error(_node.default.Error.INVALID_KEY_NAME, `Duplicated field name: ${field.name}`);
|
|
32
|
+
}
|
|
33
|
+
if (type === 'Relation' || type === 'Pointer') {
|
|
34
|
+
return {
|
|
35
|
+
...parseSchemaFields,
|
|
36
|
+
[field.name]: {
|
|
37
|
+
type,
|
|
38
|
+
targetClass: field.targetClassName
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
...parseSchemaFields,
|
|
44
|
+
[field.name]: {
|
|
45
|
+
type
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
if (graphQLSchemaFields.addStrings) {
|
|
50
|
+
parseSchemaFields = graphQLSchemaFields.addStrings.reduce(reducerGenerator('String'), parseSchemaFields);
|
|
51
|
+
}
|
|
52
|
+
if (graphQLSchemaFields.addNumbers) {
|
|
53
|
+
parseSchemaFields = graphQLSchemaFields.addNumbers.reduce(reducerGenerator('Number'), parseSchemaFields);
|
|
54
|
+
}
|
|
55
|
+
if (graphQLSchemaFields.addBooleans) {
|
|
56
|
+
parseSchemaFields = graphQLSchemaFields.addBooleans.reduce(reducerGenerator('Boolean'), parseSchemaFields);
|
|
57
|
+
}
|
|
58
|
+
if (graphQLSchemaFields.addArrays) {
|
|
59
|
+
parseSchemaFields = graphQLSchemaFields.addArrays.reduce(reducerGenerator('Array'), parseSchemaFields);
|
|
60
|
+
}
|
|
61
|
+
if (graphQLSchemaFields.addObjects) {
|
|
62
|
+
parseSchemaFields = graphQLSchemaFields.addObjects.reduce(reducerGenerator('Object'), parseSchemaFields);
|
|
63
|
+
}
|
|
64
|
+
if (graphQLSchemaFields.addDates) {
|
|
65
|
+
parseSchemaFields = graphQLSchemaFields.addDates.reduce(reducerGenerator('Date'), parseSchemaFields);
|
|
66
|
+
}
|
|
67
|
+
if (graphQLSchemaFields.addFiles) {
|
|
68
|
+
parseSchemaFields = graphQLSchemaFields.addFiles.reduce(reducerGenerator('File'), parseSchemaFields);
|
|
69
|
+
}
|
|
70
|
+
if (graphQLSchemaFields.addGeoPoint) {
|
|
71
|
+
parseSchemaFields = [graphQLSchemaFields.addGeoPoint].reduce(reducerGenerator('GeoPoint'), parseSchemaFields);
|
|
72
|
+
}
|
|
73
|
+
if (graphQLSchemaFields.addPolygons) {
|
|
74
|
+
parseSchemaFields = graphQLSchemaFields.addPolygons.reduce(reducerGenerator('Polygon'), parseSchemaFields);
|
|
75
|
+
}
|
|
76
|
+
if (graphQLSchemaFields.addBytes) {
|
|
77
|
+
parseSchemaFields = graphQLSchemaFields.addBytes.reduce(reducerGenerator('Bytes'), parseSchemaFields);
|
|
78
|
+
}
|
|
79
|
+
if (graphQLSchemaFields.addPointers) {
|
|
80
|
+
parseSchemaFields = graphQLSchemaFields.addPointers.reduce(reducerGenerator('Pointer'), parseSchemaFields);
|
|
81
|
+
}
|
|
82
|
+
if (graphQLSchemaFields.addRelations) {
|
|
83
|
+
parseSchemaFields = graphQLSchemaFields.addRelations.reduce(reducerGenerator('Relation'), parseSchemaFields);
|
|
84
|
+
}
|
|
85
|
+
if (existingFields && graphQLSchemaFields.remove) {
|
|
86
|
+
parseSchemaFields = graphQLSchemaFields.remove.reduce(reducerGenerator('Remove'), parseSchemaFields);
|
|
87
|
+
}
|
|
88
|
+
return parseSchemaFields;
|
|
89
|
+
};
|
|
90
|
+
exports.transformToParse = transformToParse;
|
|
91
|
+
const transformToGraphQL = parseSchemaFields => {
|
|
92
|
+
return Object.keys(parseSchemaFields).map(name => ({
|
|
93
|
+
name,
|
|
94
|
+
type: parseSchemaFields[name].type,
|
|
95
|
+
targetClassName: parseSchemaFields[name].targetClass
|
|
96
|
+
}));
|
|
97
|
+
};
|
|
98
|
+
exports.transformToGraphQL = transformToGraphQL;
|
|
99
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidHJhbnNmb3JtVG9QYXJzZSIsImdyYXBoUUxTY2hlbWFGaWVsZHMiLCJleGlzdGluZ0ZpZWxkcyIsInBhcnNlU2NoZW1hRmllbGRzIiwicmVkdWNlckdlbmVyYXRvciIsInR5cGUiLCJmaWVsZCIsIm5hbWUiLCJfX29wIiwicmVtb3ZlIiwiZmluZCIsInJlbW92ZUZpZWxkIiwiUGFyc2UiLCJFcnJvciIsIklOVkFMSURfS0VZX05BTUUiLCJ0YXJnZXRDbGFzcyIsInRhcmdldENsYXNzTmFtZSIsImFkZFN0cmluZ3MiLCJyZWR1Y2UiLCJhZGROdW1iZXJzIiwiYWRkQm9vbGVhbnMiLCJhZGRBcnJheXMiLCJhZGRPYmplY3RzIiwiYWRkRGF0ZXMiLCJhZGRGaWxlcyIsImFkZEdlb1BvaW50IiwiYWRkUG9seWdvbnMiLCJhZGRCeXRlcyIsImFkZFBvaW50ZXJzIiwiYWRkUmVsYXRpb25zIiwiZXhwb3J0cyIsInRyYW5zZm9ybVRvR3JhcGhRTCIsIk9iamVjdCIsImtleXMiLCJtYXAiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvR3JhcGhRTC90cmFuc2Zvcm1lcnMvc2NoZW1hRmllbGRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQYXJzZSBmcm9tICdwYXJzZS9ub2RlJztcblxuY29uc3QgdHJhbnNmb3JtVG9QYXJzZSA9IChncmFwaFFMU2NoZW1hRmllbGRzLCBleGlzdGluZ0ZpZWxkcykgPT4ge1xuICBpZiAoIWdyYXBoUUxTY2hlbWFGaWVsZHMpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBsZXQgcGFyc2VTY2hlbWFGaWVsZHMgPSB7fTtcblxuICBjb25zdCByZWR1Y2VyR2VuZXJhdG9yID0gdHlwZSA9PiAocGFyc2VTY2hlbWFGaWVsZHMsIGZpZWxkKSA9PiB7XG4gICAgaWYgKHR5cGUgPT09ICdSZW1vdmUnKSB7XG4gICAgICBpZiAoZXhpc3RpbmdGaWVsZHNbZmllbGQubmFtZV0pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wYXJzZVNjaGVtYUZpZWxkcyxcbiAgICAgICAgICBbZmllbGQubmFtZV06IHtcbiAgICAgICAgICAgIF9fb3A6ICdEZWxldGUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGFyc2VTY2hlbWFGaWVsZHM7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGdyYXBoUUxTY2hlbWFGaWVsZHMucmVtb3ZlICYmXG4gICAgICBncmFwaFFMU2NoZW1hRmllbGRzLnJlbW92ZS5maW5kKHJlbW92ZUZpZWxkID0+IHJlbW92ZUZpZWxkLm5hbWUgPT09IGZpZWxkLm5hbWUpXG4gICAgKSB7XG4gICAgICByZXR1cm4gcGFyc2VTY2hlbWFGaWVsZHM7XG4gICAgfVxuICAgIGlmIChwYXJzZVNjaGVtYUZpZWxkc1tmaWVsZC5uYW1lXSB8fCAoZXhpc3RpbmdGaWVsZHMgJiYgZXhpc3RpbmdGaWVsZHNbZmllbGQubmFtZV0pKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9LRVlfTkFNRSwgYER1cGxpY2F0ZWQgZmllbGQgbmFtZTogJHtmaWVsZC5uYW1lfWApO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gJ1JlbGF0aW9uJyB8fCB0eXBlID09PSAnUG9pbnRlcicpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnBhcnNlU2NoZW1hRmllbGRzLFxuICAgICAgICBbZmllbGQubmFtZV06IHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHRhcmdldENsYXNzOiBmaWVsZC50YXJnZXRDbGFzc05hbWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyc2VTY2hlbWFGaWVsZHMsXG4gICAgICBbZmllbGQubmFtZV06IHtcbiAgICAgICAgdHlwZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfTtcblxuICBpZiAoZ3JhcGhRTFNjaGVtYUZpZWxkcy5hZGRTdHJpbmdzKSB7XG4gICAgcGFyc2VTY2hlbWFGaWVsZHMgPSBncmFwaFFMU2NoZW1hRmllbGRzLmFkZFN0cmluZ3MucmVkdWNlKFxuICAgICAgcmVkdWNlckdlbmVyYXRvcignU3RyaW5nJyksXG4gICAgICBwYXJzZVNjaGVtYUZpZWxkc1xuICAgICk7XG4gIH1cbiAgaWYgKGdyYXBoUUxTY2hlbWFGaWVsZHMuYWRkTnVtYmVycykge1xuICAgIHBhcnNlU2NoZW1hRmllbGRzID0gZ3JhcGhRTFNjaGVtYUZpZWxkcy5hZGROdW1iZXJzLnJlZHVjZShcbiAgICAgIHJlZHVjZXJHZW5lcmF0b3IoJ051bWJlcicpLFxuICAgICAgcGFyc2VTY2hlbWFGaWVsZHNcbiAgICApO1xuICB9XG4gIGlmIChncmFwaFFMU2NoZW1hRmllbGRzLmFkZEJvb2xlYW5zKSB7XG4gICAgcGFyc2VTY2hlbWFGaWVsZHMgPSBncmFwaFFMU2NoZW1hRmllbGRzLmFkZEJvb2xlYW5zLnJlZHVjZShcbiAgICAgIHJlZHVjZXJHZW5lcmF0b3IoJ0Jvb2xlYW4nKSxcbiAgICAgIHBhcnNlU2NoZW1hRmllbGRzXG4gICAgKTtcbiAgfVxuICBpZiAoZ3JhcGhRTFNjaGVtYUZpZWxkcy5hZGRBcnJheXMpIHtcbiAgICBwYXJzZVNjaGVtYUZpZWxkcyA9IGdyYXBoUUxTY2hlbWFGaWVsZHMuYWRkQXJyYXlzLnJlZHVjZShcbiAgICAgIHJlZHVjZXJHZW5lcmF0b3IoJ0FycmF5JyksXG4gICAgICBwYXJzZVNjaGVtYUZpZWxkc1xuICAgICk7XG4gIH1cbiAgaWYgKGdyYXBoUUxTY2hlbWFGaWVsZHMuYWRkT2JqZWN0cykge1xuICAgIHBhcnNlU2NoZW1hRmllbGRzID0gZ3JhcGhRTFNjaGVtYUZpZWxkcy5hZGRPYmplY3RzLnJlZHVjZShcbiAgICAgIHJlZHVjZXJHZW5lcmF0b3IoJ09iamVjdCcpLFxuICAgICAgcGFyc2VTY2hlbWFGaWVsZHNcbiAgICApO1xuICB9XG4gIGlmIChncmFwaFFMU2NoZW1hRmllbGRzLmFkZERhdGVzKSB7XG4gICAgcGFyc2VTY2hlbWFGaWVsZHMgPSBncmFwaFFMU2NoZW1hRmllbGRzLmFkZERhdGVzLnJlZHVjZShcbiAgICAgIHJlZHVjZXJHZW5lcmF0b3IoJ0RhdGUnKSxcbiAgICAgIHBhcnNlU2NoZW1hRmllbGRzXG4gICAgKTtcbiAgfVxuICBpZiAoZ3JhcGhRTFNjaGVtYUZpZWxkcy5hZGRGaWxlcykge1xuICAgIHBhcnNlU2NoZW1hRmllbGRzID0gZ3JhcGhRTFNjaGVtYUZpZWxkcy5hZGRGaWxlcy5yZWR1Y2UoXG4gICAgICByZWR1Y2VyR2VuZXJhdG9yKCdGaWxlJyksXG4gICAgICBwYXJzZVNjaGVtYUZpZWxkc1xuICAgICk7XG4gIH1cbiAgaWYgKGdyYXBoUUxTY2hlbWFGaWVsZHMuYWRkR2VvUG9pbnQpIHtcbiAgICBwYXJzZVNjaGVtYUZpZWxkcyA9IFtncmFwaFFMU2NoZW1hRmllbGRzLmFkZEdlb1BvaW50XS5yZWR1Y2UoXG4gICAgICByZWR1Y2VyR2VuZXJhdG9yKCdHZW9Qb2ludCcpLFxuICAgICAgcGFyc2VTY2hlbWFGaWVsZHNcbiAgICApO1xuICB9XG4gIGlmIChncmFwaFFMU2NoZW1hRmllbGRzLmFkZFBvbHlnb25zKSB7XG4gICAgcGFyc2VTY2hlbWFGaWVsZHMgPSBncmFwaFFMU2NoZW1hRmllbGRzLmFkZFBvbHlnb25zLnJlZHVjZShcbiAgICAgIHJlZHVjZXJHZW5lcmF0b3IoJ1BvbHlnb24nKSxcbiAgICAgIHBhcnNlU2NoZW1hRmllbGRzXG4gICAgKTtcbiAgfVxuICBpZiAoZ3JhcGhRTFNjaGVtYUZpZWxkcy5hZGRCeXRlcykge1xuICAgIHBhcnNlU2NoZW1hRmllbGRzID0gZ3JhcGhRTFNjaGVtYUZpZWxkcy5hZGRCeXRlcy5yZWR1Y2UoXG4gICAgICByZWR1Y2VyR2VuZXJhdG9yKCdCeXRlcycpLFxuICAgICAgcGFyc2VTY2hlbWFGaWVsZHNcbiAgICApO1xuICB9XG4gIGlmIChncmFwaFFMU2NoZW1hRmllbGRzLmFkZFBvaW50ZXJzKSB7XG4gICAgcGFyc2VTY2hlbWFGaWVsZHMgPSBncmFwaFFMU2NoZW1hRmllbGRzLmFkZFBvaW50ZXJzLnJlZHVjZShcbiAgICAgIHJlZHVjZXJHZW5lcmF0b3IoJ1BvaW50ZXInKSxcbiAgICAgIHBhcnNlU2NoZW1hRmllbGRzXG4gICAgKTtcbiAgfVxuICBpZiAoZ3JhcGhRTFNjaGVtYUZpZWxkcy5hZGRSZWxhdGlvbnMpIHtcbiAgICBwYXJzZVNjaGVtYUZpZWxkcyA9IGdyYXBoUUxTY2hlbWFGaWVsZHMuYWRkUmVsYXRpb25zLnJlZHVjZShcbiAgICAgIHJlZHVjZXJHZW5lcmF0b3IoJ1JlbGF0aW9uJyksXG4gICAgICBwYXJzZVNjaGVtYUZpZWxkc1xuICAgICk7XG4gIH1cbiAgaWYgKGV4aXN0aW5nRmllbGRzICYmIGdyYXBoUUxTY2hlbWFGaWVsZHMucmVtb3ZlKSB7XG4gICAgcGFyc2VTY2hlbWFGaWVsZHMgPSBncmFwaFFMU2NoZW1hRmllbGRzLnJlbW92ZS5yZWR1Y2UoXG4gICAgICByZWR1Y2VyR2VuZXJhdG9yKCdSZW1vdmUnKSxcbiAgICAgIHBhcnNlU2NoZW1hRmllbGRzXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBwYXJzZVNjaGVtYUZpZWxkcztcbn07XG5cbmNvbnN0IHRyYW5zZm9ybVRvR3JhcGhRTCA9IHBhcnNlU2NoZW1hRmllbGRzID0+IHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHBhcnNlU2NoZW1hRmllbGRzKS5tYXAobmFtZSA9PiAoe1xuICAgIG5hbWUsXG4gICAgdHlwZTogcGFyc2VTY2hlbWFGaWVsZHNbbmFtZV0udHlwZSxcbiAgICB0YXJnZXRDbGFzc05hbWU6IHBhcnNlU2NoZW1hRmllbGRzW25hbWVdLnRhcmdldENsYXNzLFxuICB9KSk7XG59O1xuXG5leHBvcnQgeyB0cmFuc2Zvcm1Ub1BhcnNlLCB0cmFuc2Zvcm1Ub0dyYXBoUUwgfTtcbiJd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
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.KeyPromiseQueue = void 0;
|
|
7
|
+
// KeyPromiseQueue is a simple promise queue
|
|
8
|
+
// used to queue operations per key basis.
|
|
9
|
+
// Once the tail promise in the key-queue fulfills,
|
|
10
|
+
// the chain on that key will be cleared.
|
|
11
|
+
class KeyPromiseQueue {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.queue = {};
|
|
14
|
+
}
|
|
15
|
+
enqueue(key, operation) {
|
|
16
|
+
const tuple = this.beforeOp(key);
|
|
17
|
+
const toAwait = tuple[1];
|
|
18
|
+
const nextOperation = toAwait.then(operation);
|
|
19
|
+
const wrappedOperation = nextOperation.then(result => {
|
|
20
|
+
this.afterOp(key);
|
|
21
|
+
return result;
|
|
22
|
+
});
|
|
23
|
+
tuple[1] = wrappedOperation;
|
|
24
|
+
return wrappedOperation;
|
|
25
|
+
}
|
|
26
|
+
beforeOp(key) {
|
|
27
|
+
let tuple = this.queue[key];
|
|
28
|
+
if (!tuple) {
|
|
29
|
+
tuple = [0, Promise.resolve()];
|
|
30
|
+
this.queue[key] = tuple;
|
|
31
|
+
}
|
|
32
|
+
tuple[0]++;
|
|
33
|
+
return tuple;
|
|
34
|
+
}
|
|
35
|
+
afterOp(key) {
|
|
36
|
+
const tuple = this.queue[key];
|
|
37
|
+
if (!tuple) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
tuple[0]--;
|
|
41
|
+
if (tuple[0] <= 0) {
|
|
42
|
+
delete this.queue[key];
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.KeyPromiseQueue = KeyPromiseQueue;
|
|
48
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJLZXlQcm9taXNlUXVldWUiLCJjb25zdHJ1Y3RvciIsInF1ZXVlIiwiZW5xdWV1ZSIsImtleSIsIm9wZXJhdGlvbiIsInR1cGxlIiwiYmVmb3JlT3AiLCJ0b0F3YWl0IiwibmV4dE9wZXJhdGlvbiIsInRoZW4iLCJ3cmFwcGVkT3BlcmF0aW9uIiwicmVzdWx0IiwiYWZ0ZXJPcCIsIlByb21pc2UiLCJyZXNvbHZlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9LZXlQcm9taXNlUXVldWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gS2V5UHJvbWlzZVF1ZXVlIGlzIGEgc2ltcGxlIHByb21pc2UgcXVldWVcbi8vIHVzZWQgdG8gcXVldWUgb3BlcmF0aW9ucyBwZXIga2V5IGJhc2lzLlxuLy8gT25jZSB0aGUgdGFpbCBwcm9taXNlIGluIHRoZSBrZXktcXVldWUgZnVsZmlsbHMsXG4vLyB0aGUgY2hhaW4gb24gdGhhdCBrZXkgd2lsbCBiZSBjbGVhcmVkLlxuZXhwb3J0IGNsYXNzIEtleVByb21pc2VRdWV1ZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMucXVldWUgPSB7fTtcbiAgfVxuXG4gIGVucXVldWUoa2V5LCBvcGVyYXRpb24pIHtcbiAgICBjb25zdCB0dXBsZSA9IHRoaXMuYmVmb3JlT3Aoa2V5KTtcbiAgICBjb25zdCB0b0F3YWl0ID0gdHVwbGVbMV07XG4gICAgY29uc3QgbmV4dE9wZXJhdGlvbiA9IHRvQXdhaXQudGhlbihvcGVyYXRpb24pO1xuICAgIGNvbnN0IHdyYXBwZWRPcGVyYXRpb24gPSBuZXh0T3BlcmF0aW9uLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgIHRoaXMuYWZ0ZXJPcChrZXkpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgICB0dXBsZVsxXSA9IHdyYXBwZWRPcGVyYXRpb247XG4gICAgcmV0dXJuIHdyYXBwZWRPcGVyYXRpb247XG4gIH1cblxuICBiZWZvcmVPcChrZXkpIHtcbiAgICBsZXQgdHVwbGUgPSB0aGlzLnF1ZXVlW2tleV07XG4gICAgaWYgKCF0dXBsZSkge1xuICAgICAgdHVwbGUgPSBbMCwgUHJvbWlzZS5yZXNvbHZlKCldO1xuICAgICAgdGhpcy5xdWV1ZVtrZXldID0gdHVwbGU7XG4gICAgfVxuICAgIHR1cGxlWzBdKys7XG4gICAgcmV0dXJuIHR1cGxlO1xuICB9XG5cbiAgYWZ0ZXJPcChrZXkpIHtcbiAgICBjb25zdCB0dXBsZSA9IHRoaXMucXVldWVba2V5XTtcbiAgICBpZiAoIXR1cGxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHR1cGxlWzBdLS07XG4gICAgaWYgKHR1cGxlWzBdIDw9IDApIHtcbiAgICAgIGRlbGV0ZSB0aGlzLnF1ZXVlW2tleV07XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUEsZUFBZSxDQUFDO0VBQzNCQyxXQUFXQSxDQUFBLEVBQUc7SUFDWixJQUFJLENBQUNDLEtBQUssR0FBRyxDQUFDLENBQUM7RUFDakI7RUFFQUMsT0FBT0EsQ0FBQ0MsR0FBRyxFQUFFQyxTQUFTLEVBQUU7SUFDdEIsTUFBTUMsS0FBSyxHQUFHLElBQUksQ0FBQ0MsUUFBUSxDQUFDSCxHQUFHLENBQUM7SUFDaEMsTUFBTUksT0FBTyxHQUFHRixLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLE1BQU1HLGFBQWEsR0FBR0QsT0FBTyxDQUFDRSxJQUFJLENBQUNMLFNBQVMsQ0FBQztJQUM3QyxNQUFNTSxnQkFBZ0IsR0FBR0YsYUFBYSxDQUFDQyxJQUFJLENBQUNFLE1BQU0sSUFBSTtNQUNwRCxJQUFJLENBQUNDLE9BQU8sQ0FBQ1QsR0FBRyxDQUFDO01BQ2pCLE9BQU9RLE1BQU07SUFDZixDQUFDLENBQUM7SUFDRk4sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHSyxnQkFBZ0I7SUFDM0IsT0FBT0EsZ0JBQWdCO0VBQ3pCO0VBRUFKLFFBQVFBLENBQUNILEdBQUcsRUFBRTtJQUNaLElBQUlFLEtBQUssR0FBRyxJQUFJLENBQUNKLEtBQUssQ0FBQ0UsR0FBRyxDQUFDO0lBQzNCLElBQUksQ0FBQ0UsS0FBSyxFQUFFO01BQ1ZBLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRVEsT0FBTyxDQUFDQyxPQUFPLENBQUMsQ0FBQyxDQUFDO01BQzlCLElBQUksQ0FBQ2IsS0FBSyxDQUFDRSxHQUFHLENBQUMsR0FBR0UsS0FBSztJQUN6QjtJQUNBQSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDVixPQUFPQSxLQUFLO0VBQ2Q7RUFFQU8sT0FBT0EsQ0FBQ1QsR0FBRyxFQUFFO0lBQ1gsTUFBTUUsS0FBSyxHQUFHLElBQUksQ0FBQ0osS0FBSyxDQUFDRSxHQUFHLENBQUM7SUFDN0IsSUFBSSxDQUFDRSxLQUFLLEVBQUU7TUFDVjtJQUNGO0lBQ0FBLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUNWLElBQUlBLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7TUFDakIsT0FBTyxJQUFJLENBQUNKLEtBQUssQ0FBQ0UsR0FBRyxDQUFDO01BQ3RCO0lBQ0Y7RUFDRjtBQUNGO0FBQUNZLE9BQUEsQ0FBQWhCLGVBQUEsR0FBQUEsZUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/LiveQuery/Client.js
CHANGED
|
@@ -1,24 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.Client =
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _logger2 = _interopRequireDefault(_logger);
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
6
|
+
exports.Client = void 0;
|
|
7
|
+
var _logger = _interopRequireDefault(require("../logger"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
9
|
const dafaultFields = ['className', 'objectId', 'updatedAt', 'createdAt', 'ACL'];
|
|
15
|
-
|
|
16
10
|
class Client {
|
|
17
|
-
|
|
18
|
-
constructor(id, parseWebSocket, hasMasterKey) {
|
|
11
|
+
constructor(id, parseWebSocket, hasMasterKey = false, sessionToken, installationId) {
|
|
19
12
|
this.id = id;
|
|
20
13
|
this.parseWebSocket = parseWebSocket;
|
|
21
14
|
this.hasMasterKey = hasMasterKey;
|
|
15
|
+
this.sessionToken = sessionToken;
|
|
16
|
+
this.installationId = installationId;
|
|
22
17
|
this.roles = [];
|
|
23
18
|
this.subscriptionInfos = new Map();
|
|
24
19
|
this.pushConnect = this._pushEvent('connected');
|
|
@@ -30,53 +25,51 @@ class Client {
|
|
|
30
25
|
this.pushDelete = this._pushEvent('delete');
|
|
31
26
|
this.pushLeave = this._pushEvent('leave');
|
|
32
27
|
}
|
|
33
|
-
|
|
34
28
|
static pushResponse(parseWebSocket, message) {
|
|
35
|
-
|
|
29
|
+
_logger.default.verbose('Push Response : %j', message);
|
|
36
30
|
parseWebSocket.send(message);
|
|
37
31
|
}
|
|
38
|
-
|
|
39
|
-
static pushError(parseWebSocket, code, error, reconnect = true) {
|
|
32
|
+
static pushError(parseWebSocket, code, error, reconnect = true, requestId = null) {
|
|
40
33
|
Client.pushResponse(parseWebSocket, JSON.stringify({
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
34
|
+
op: 'error',
|
|
35
|
+
error,
|
|
36
|
+
code,
|
|
37
|
+
reconnect,
|
|
38
|
+
requestId
|
|
45
39
|
}));
|
|
46
40
|
}
|
|
47
|
-
|
|
48
41
|
addSubscriptionInfo(requestId, subscriptionInfo) {
|
|
49
42
|
this.subscriptionInfos.set(requestId, subscriptionInfo);
|
|
50
43
|
}
|
|
51
|
-
|
|
52
44
|
getSubscriptionInfo(requestId) {
|
|
53
45
|
return this.subscriptionInfos.get(requestId);
|
|
54
46
|
}
|
|
55
|
-
|
|
56
47
|
deleteSubscriptionInfo(requestId) {
|
|
57
48
|
return this.subscriptionInfos.delete(requestId);
|
|
58
49
|
}
|
|
59
|
-
|
|
60
50
|
_pushEvent(type) {
|
|
61
|
-
return function (subscriptionId, parseObjectJSON) {
|
|
51
|
+
return function (subscriptionId, parseObjectJSON, parseOriginalObjectJSON) {
|
|
62
52
|
const response = {
|
|
63
|
-
|
|
64
|
-
|
|
53
|
+
op: type,
|
|
54
|
+
clientId: this.id,
|
|
55
|
+
installationId: this.installationId
|
|
65
56
|
};
|
|
66
57
|
if (typeof subscriptionId !== 'undefined') {
|
|
67
58
|
response['requestId'] = subscriptionId;
|
|
68
59
|
}
|
|
69
60
|
if (typeof parseObjectJSON !== 'undefined') {
|
|
70
|
-
let
|
|
61
|
+
let keys;
|
|
71
62
|
if (this.subscriptionInfos.has(subscriptionId)) {
|
|
72
|
-
|
|
63
|
+
keys = this.subscriptionInfos.get(subscriptionId).keys;
|
|
64
|
+
}
|
|
65
|
+
response['object'] = this._toJSONWithFields(parseObjectJSON, keys);
|
|
66
|
+
if (parseOriginalObjectJSON) {
|
|
67
|
+
response['original'] = this._toJSONWithFields(parseOriginalObjectJSON, keys);
|
|
73
68
|
}
|
|
74
|
-
response['object'] = this._toJSONWithFields(parseObjectJSON, fields);
|
|
75
69
|
}
|
|
76
70
|
Client.pushResponse(this.parseWebSocket, JSON.stringify(response));
|
|
77
71
|
};
|
|
78
72
|
}
|
|
79
|
-
|
|
80
73
|
_toJSONWithFields(parseObjectJSON, fields) {
|
|
81
74
|
if (!fields) {
|
|
82
75
|
return parseObjectJSON;
|
|
@@ -93,6 +86,5 @@ class Client {
|
|
|
93
86
|
return limitedParseObject;
|
|
94
87
|
}
|
|
95
88
|
}
|
|
96
|
-
|
|
97
89
|
exports.Client = Client;
|
|
98
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MaXZlUXVlcnkvQ2xpZW50LmpzIl0sIm5hbWVzIjpbImRhZmF1bHRGaWVsZHMiLCJDbGllbnQiLCJjb25zdHJ1Y3RvciIsImlkIiwicGFyc2VXZWJTb2NrZXQiLCJoYXNNYXN0ZXJLZXkiLCJyb2xlcyIsInN1YnNjcmlwdGlvbkluZm9zIiwiTWFwIiwicHVzaENvbm5lY3QiLCJfcHVzaEV2ZW50IiwicHVzaFN1YnNjcmliZSIsInB1c2hVbnN1YnNjcmliZSIsInB1c2hDcmVhdGUiLCJwdXNoRW50ZXIiLCJwdXNoVXBkYXRlIiwicHVzaERlbGV0ZSIsInB1c2hMZWF2ZSIsInB1c2hSZXNwb25zZSIsIm1lc3NhZ2UiLCJsb2dnZXIiLCJ2ZXJib3NlIiwic2VuZCIsInB1c2hFcnJvciIsImNvZGUiLCJlcnJvciIsInJlY29ubmVjdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJhZGRTdWJzY3JpcHRpb25JbmZvIiwicmVxdWVzdElkIiwic3Vic2NyaXB0aW9uSW5mbyIsInNldCIsImdldFN1YnNjcmlwdGlvbkluZm8iLCJnZXQiLCJkZWxldGVTdWJzY3JpcHRpb25JbmZvIiwiZGVsZXRlIiwidHlwZSIsInN1YnNjcmlwdGlvbklkIiwicGFyc2VPYmplY3RKU09OIiwicmVzcG9uc2UiLCJmaWVsZHMiLCJoYXMiLCJfdG9KU09OV2l0aEZpZWxkcyIsImxpbWl0ZWRQYXJzZU9iamVjdCIsImZpZWxkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7OztBQUtBLE1BQU1BLGdCQUFnQixDQUFDLFdBQUQsRUFBYyxVQUFkLEVBQTBCLFdBQTFCLEVBQXVDLFdBQXZDLEVBQW9ELEtBQXBELENBQXRCOztBQUVBLE1BQU1DLE1BQU4sQ0FBYTs7QUFnQlhDLGNBQVlDLEVBQVosRUFBd0JDLGNBQXhCLEVBQTZDQyxZQUE3QyxFQUFvRTtBQUNsRSxTQUFLRixFQUFMLEdBQVVBLEVBQVY7QUFDQSxTQUFLQyxjQUFMLEdBQXNCQSxjQUF0QjtBQUNBLFNBQUtDLFlB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QUEzQjtBQUNBLFNBQUssTUFBTUMsS0FBWCxJQUFvQjdDLGFBQXBCLEVBQW1DO0FBQ2pDNEMseUJBQW1CQyxLQUFuQixJQUE0Qk4sZ0JBQWdCTSxLQUFoQixDQUE1QjtBQUNEO0FBQ0QsU0FBSyxNQUFNQSxLQUFYLElBQW9CSixNQUFwQixFQUE0QjtBQUMxQixVQUFJSSxTQUFTTixlQUFiLEVBQThCO0FBQzVCSywyQkFBbUJDLEtBQW5CLElBQTRCTixnQkFBZ0JNLEtBQWhCLENBQTVCO0FBQ0Q7QUFDRjtBQUNELFdBQU9ELGtCQUFQO0FBQ0Q7QUE1RlU7O1FBZ0dYM0MsTSxHQUFBQSxNIiwiZmlsZSI6IkNsaWVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2dnZXIgZnJvbSAnLi4vbG9nZ2VyJztcblxuaW1wb3J0IHR5cGUgeyBGbGF0dGVuZWRPYmplY3REYXRhIH0gZnJvbSAnLi9TdWJzY3JpcHRpb24nO1xuZXhwb3J0IHR5cGUgTWVzc2FnZSA9IHsgW2F0dHI6IHN0cmluZ106IGFueSB9O1xuXG5jb25zdCBkYWZhdWx0RmllbGRzID0gWydjbGFzc05hbWUnLCAnb2JqZWN0SWQnLCAndXBkYXRlZEF0JywgJ2NyZWF0ZWRBdCcsICdBQ0wnXTtcblxuY2xhc3MgQ2xpZW50IHtcbiAgaWQ6IG51bWJlcjtcbiAgcGFyc2VXZWJTb2NrZXQ6IGFueTtcbiAgaGFzTWFzdGVyS2V5OiBib29sZWFuO1xuICB1c2VySWQ6IHN0cmluZztcbiAgcm9sZXM6IEFycmF5PHN0cmluZz47XG4gIHN1YnNjcmlwdGlvbkluZm9zOiBPYmplY3Q7XG4gIHB1c2hDb25uZWN0OiBGdW5jdGlvbjtcbiAgcHVzaFN1YnNjcmliZTogRnVuY3Rpb247XG4gIHB1c2hVbnN1YnNjcmliZTogRnVuY3Rpb247XG4gIHB1c2hDcmVhdGU6IEZ1bmN0aW9uO1xuICBwdXNoRW50ZXI6IEZ1bmN0aW9uO1xuICBwdXNoVXBkYXRlOiBGdW5jdGlvbjtcbiAgcHVzaERlbGV0ZTogRnVuY3Rpb247XG4gIHB1c2hMZWF2ZTogRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3IoaWQ6IG51bWJlciwgcGFyc2VXZWJTb2NrZXQ6IGFueSwgaGFzTWFzdGVyS2V5OiBib29sZWFuKSB7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMucGFyc2VXZWJTb2NrZXQgPSBwYXJzZVdlYlNvY2tldDtcbiAgICB0aGlzLmhhc01hc3RlcktleSA9IGhhc01hc3RlcktleTtcbiAgICB0aGlzLnJvbGVzID0gW107XG4gICAgdGhpcy5zdWJzY3JpcHRpb25JbmZvcyA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLnB1c2hDb25uZWN0ID0gdGhpcy5fcHVzaEV2ZW50KCdjb25uZWN0ZWQnKTtcbiAgICB0aGlzLnB1c2hTdWJzY3JpYmUgPSB0aGlzLl9wdXNoRXZlbnQoJ3N1YnNjcmliZWQnKTtcbiAgICB0aGlzLnB1c2hVbnN1YnNjcmliZSA9IHRoaXMuX3B1c2hFdmVudCgndW5zdWJzY3JpYmVkJyk7XG4gICAgdGhpcy5wdXNoQ3JlYXRlID0gdGhpcy5fcHVzaEV2ZW50KCdjcmVhdGUnKTtcbiAgICB0aGlzLnB1c2hFbnRlciA9IHRoaXMuX3B1c2hFdmVudCgnZW50ZXInKTtcbiAgICB0aGlzLnB1c2hVcGRhdGUgPSB0aGlzLl9wdXNoRXZlbnQoJ3VwZGF0ZScpO1xuICAgIHRoaXMucHVzaERlbGV0ZSA9IHRoaXMuX3B1c2hFdmVudCgnZGVsZXRlJyk7XG4gICAgdGhpcy5wdXNoTGVhdmUgPSB0aGlzLl9wdXNoRXZlbnQoJ2xlYXZlJyk7XG4gIH1cblxuICBzdGF0aWMgcHVzaFJlc3BvbnNlKHBhcnNlV2ViU29ja2V0OiBhbnksIG1lc3NhZ2U6IE1lc3NhZ2UpOiB2b2lkIHtcbiAgICBsb2dnZXIudmVyYm9zZSgnUHVzaCBSZXNwb25zZSA6ICVqJywgbWVzc2FnZSk7XG4gICAgcGFyc2VXZWJTb2NrZXQuc2VuZChtZXNzYWdlKTtcbiAgfVxuXG4gIHN0YXRpYyBwdXNoRXJyb3IocGFyc2VXZWJTb2NrZXQ6IGFueSwgY29kZTogbnVtYmVyLCBlcnJvcjogc3RyaW5nLCByZWNvbm5lY3Q6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgQ2xpZW50LnB1c2hSZXNwb25zZShwYXJzZVdlYlNvY2tldCwgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgJ29wJzogJ2Vycm9yJyxcbiAgICAgICdlcnJvcic6IGVycm9yLFxuICAgICAgJ2NvZGUnOiBjb2RlLFxuICAgICAgJ3JlY29ubmVjdCc6IHJlY29ubmVjdFxuICAgIH0pKTtcbiAgfVxuXG4gIGFkZFN1YnNjcmlwdGlvbkluZm8ocmVxdWVzdElkOiBudW1iZXIsIHN1YnNjcmlwdGlvbkluZm86IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uSW5mb3Muc2V0KHJlcXVlc3RJZCwgc3Vic2NyaXB0aW9uSW5mbyk7XG4gIH1cblxuICBnZXRTdWJzY3JpcHRpb25JbmZvKHJlcXVlc3RJZDogbnVtYmVyKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb25JbmZvcy5nZXQocmVxdWVzdElkKTtcbiAgfVxuXG4gIGRlbGV0ZVN1YnNjcmlwdGlvbkluZm8ocmVxdWVzdElkOiBudW1iZXIpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb25JbmZvcy5kZWxldGUocmVxdWVzdElkKTtcbiAgfVxuXG4gIF9wdXNoRXZlbnQodHlwZTogc3RyaW5nKTogRnVuY3Rpb24ge1xuICAgIHJldHVybiBmdW5jdGlvbihzdWJzY3JpcHRpb25JZDogbnVtYmVyLCBwYXJzZU9iamVjdEpTT046IGFueSk6IHZvaWQge1xuICAgICAgY29uc3QgcmVzcG9uc2U6IE1lc3NhZ2UgPSB7XG4gICAgICAgICdvcCcgOiB0eXBlLFxuICAgICAgICAnY2xpZW50SWQnIDogdGhpcy5pZFxuICAgICAgfTtcbiAgICAgIGlmICh0eXBlb2Ygc3Vic2NyaXB0aW9uSWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJlc3BvbnNlWydyZXF1ZXN0SWQnXSA9IHN1YnNjcmlwdGlvbklkO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBwYXJzZU9iamVjdEpTT04gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGxldCBmaWVsZHM7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbkluZm9zLmhhcyhzdWJzY3JpcHRpb25JZCkpIHtcbiAgICAgICAgICBmaWVsZHMgPSB0aGlzLnN1YnNjcmlwdGlvbkluZm9zLmdldChzdWJzY3JpcHRpb25JZCkuZmllbGRzO1xuICAgICAgICB9XG4gICAgICAgIHJlc3BvbnNlWydvYmplY3QnXSA9IHRoaXMuX3RvSlNPTldpdGhGaWVsZHMocGFyc2VPYmplY3RKU09OLCBmaWVsZHMpO1xuICAgICAgfVxuICAgICAgQ2xpZW50LnB1c2hSZXNwb25zZSh0aGlzLnBhcnNlV2ViU29ja2V0LCBKU09OLnN0cmluZ2lmeShyZXNwb25zZSkpO1xuICAgIH1cbiAgfVxuXG4gIF90b0pTT05XaXRoRmllbGRzKHBhcnNlT2JqZWN0SlNPTjogYW55LCBmaWVsZHM6IGFueSk6IEZsYXR0ZW5lZE9iamVjdERhdGEge1xuICAgIGlmICghZmllbGRzKSB7XG4gICAgICByZXR1cm4gcGFyc2VPYmplY3RKU09OO1xuICAgIH1cbiAgICBjb25zdCBsaW1pdGVkUGFyc2VPYmplY3QgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGRhZmF1bHRGaWVsZHMpIHtcbiAgICAgIGxpbWl0ZWRQYXJzZU9iamVjdFtmaWVsZF0gPSBwYXJzZU9iamVjdEpTT05bZmllbGRdO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgaWYgKGZpZWxkIGluIHBhcnNlT2JqZWN0SlNPTikge1xuICAgICAgICBsaW1pdGVkUGFyc2VPYmplY3RbZmllbGRdID0gcGFyc2VPYmplY3RKU09OW2ZpZWxkXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbWl0ZWRQYXJzZU9iamVjdDtcbiAgfVxufVxuXG5leHBvcnQge1xuICBDbGllbnRcbn1cbiJdfQ==
|
|
90
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJkYWZhdWx0RmllbGRzIiwiQ2xpZW50IiwiY29uc3RydWN0b3IiLCJpZCIsInBhcnNlV2ViU29ja2V0IiwiaGFzTWFzdGVyS2V5Iiwic2Vzc2lvblRva2VuIiwiaW5zdGFsbGF0aW9uSWQiLCJyb2xlcyIsInN1YnNjcmlwdGlvbkluZm9zIiwiTWFwIiwicHVzaENvbm5lY3QiLCJfcHVzaEV2ZW50IiwicHVzaFN1YnNjcmliZSIsInB1c2hVbnN1YnNjcmliZSIsInB1c2hDcmVhdGUiLCJwdXNoRW50ZXIiLCJwdXNoVXBkYXRlIiwicHVzaERlbGV0ZSIsInB1c2hMZWF2ZSIsInB1c2hSZXNwb25zZSIsIm1lc3NhZ2UiLCJsb2dnZXIiLCJ2ZXJib3NlIiwic2VuZCIsInB1c2hFcnJvciIsImNvZGUiLCJlcnJvciIsInJlY29ubmVjdCIsInJlcXVlc3RJZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJvcCIsImFkZFN1YnNjcmlwdGlvbkluZm8iLCJzdWJzY3JpcHRpb25JbmZvIiwic2V0IiwiZ2V0U3Vic2NyaXB0aW9uSW5mbyIsImdldCIsImRlbGV0ZVN1YnNjcmlwdGlvbkluZm8iLCJkZWxldGUiLCJ0eXBlIiwic3Vic2NyaXB0aW9uSWQiLCJwYXJzZU9iamVjdEpTT04iLCJwYXJzZU9yaWdpbmFsT2JqZWN0SlNPTiIsInJlc3BvbnNlIiwiY2xpZW50SWQiLCJrZXlzIiwiaGFzIiwiX3RvSlNPTldpdGhGaWVsZHMiLCJmaWVsZHMiLCJsaW1pdGVkUGFyc2VPYmplY3QiLCJmaWVsZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvTGl2ZVF1ZXJ5L0NsaWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2xvZ2dlcic7XG5cbmltcG9ydCB0eXBlIHsgRmxhdHRlbmVkT2JqZWN0RGF0YSB9IGZyb20gJy4vU3Vic2NyaXB0aW9uJztcbmV4cG9ydCB0eXBlIE1lc3NhZ2UgPSB7IFthdHRyOiBzdHJpbmddOiBhbnkgfTtcblxuY29uc3QgZGFmYXVsdEZpZWxkcyA9IFsnY2xhc3NOYW1lJywgJ29iamVjdElkJywgJ3VwZGF0ZWRBdCcsICdjcmVhdGVkQXQnLCAnQUNMJ107XG5cbmNsYXNzIENsaWVudCB7XG4gIGlkOiBudW1iZXI7XG4gIHBhcnNlV2ViU29ja2V0OiBhbnk7XG4gIGhhc01hc3RlcktleTogYm9vbGVhbjtcbiAgc2Vzc2lvblRva2VuOiBzdHJpbmc7XG4gIGluc3RhbGxhdGlvbklkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICByb2xlczogQXJyYXk8c3RyaW5nPjtcbiAgc3Vic2NyaXB0aW9uSW5mb3M6IE9iamVjdDtcbiAgcHVzaENvbm5lY3Q6IEZ1bmN0aW9uO1xuICBwdXNoU3Vic2NyaWJlOiBGdW5jdGlvbjtcbiAgcHVzaFVuc3Vic2NyaWJlOiBGdW5jdGlvbjtcbiAgcHVzaENyZWF0ZTogRnVuY3Rpb247XG4gIHB1c2hFbnRlcjogRnVuY3Rpb247XG4gIHB1c2hVcGRhdGU6IEZ1bmN0aW9uO1xuICBwdXNoRGVsZXRlOiBGdW5jdGlvbjtcbiAgcHVzaExlYXZlOiBGdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpZDogbnVtYmVyLFxuICAgIHBhcnNlV2ViU29ja2V0OiBhbnksXG4gICAgaGFzTWFzdGVyS2V5OiBib29sZWFuID0gZmFsc2UsXG4gICAgc2Vzc2lvblRva2VuOiBzdHJpbmcsXG4gICAgaW5zdGFsbGF0aW9uSWQ6IHN0cmluZ1xuICApIHtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5wYXJzZVdlYlNvY2tldCA9IHBhcnNlV2ViU29ja2V0O1xuICAgIHRoaXMuaGFzTWFzdGVyS2V5ID0gaGFzTWFzdGVyS2V5O1xuICAgIHRoaXMuc2Vzc2lvblRva2VuID0gc2Vzc2lvblRva2VuO1xuICAgIHRoaXMuaW5zdGFsbGF0aW9uSWQgPSBpbnN0YWxsYXRpb25JZDtcbiAgICB0aGlzLnJvbGVzID0gW107XG4gICAgdGhpcy5zdWJzY3JpcHRpb25JbmZvcyA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLnB1c2hDb25uZWN0ID0gdGhpcy5fcHVzaEV2ZW50KCdjb25uZWN0ZWQnKTtcbiAgICB0aGlzLnB1c2hTdWJzY3JpYmUgPSB0aGlzLl9wdXNoRXZlbnQoJ3N1YnNjcmliZWQnKTtcbiAgICB0aGlzLnB1c2hVbnN1YnNjcmliZSA9IHRoaXMuX3B1c2hFdmVudCgndW5zdWJzY3JpYmVkJyk7XG4gICAgdGhpcy5wdXNoQ3JlYXRlID0gdGhpcy5fcHVzaEV2ZW50KCdjcmVhdGUnKTtcbiAgICB0aGlzLnB1c2hFbnRlciA9IHRoaXMuX3B1c2hFdmVudCgnZW50ZXInKTtcbiAgICB0aGlzLnB1c2hVcGRhdGUgPSB0aGlzLl9wdXNoRXZlbnQoJ3VwZGF0ZScpO1xuICAgIHRoaXMucHVzaERlbGV0ZSA9IHRoaXMuX3B1c2hFdmVudCgnZGVsZXRlJyk7XG4gICAgdGhpcy5wdXNoTGVhdmUgPSB0aGlzLl9wdXNoRXZlbnQoJ2xlYXZlJyk7XG4gIH1cblxuICBzdGF0aWMgcHVzaFJlc3BvbnNlKHBhcnNlV2ViU29ja2V0OiBhbnksIG1lc3NhZ2U6IE1lc3NhZ2UpOiB2b2lkIHtcbiAgICBsb2dnZXIudmVyYm9zZSgnUHVzaCBSZXNwb25zZSA6ICVqJywgbWVzc2FnZSk7XG4gICAgcGFyc2VXZWJTb2NrZXQuc2VuZChtZXNzYWdlKTtcbiAgfVxuXG4gIHN0YXRpYyBwdXNoRXJyb3IoXG4gICAgcGFyc2VXZWJTb2NrZXQ6IGFueSxcbiAgICBjb2RlOiBudW1iZXIsXG4gICAgZXJyb3I6IHN0cmluZyxcbiAgICByZWNvbm5lY3Q6IGJvb2xlYW4gPSB0cnVlLFxuICAgIHJlcXVlc3RJZDogbnVtYmVyIHwgdm9pZCA9IG51bGxcbiAgKTogdm9pZCB7XG4gICAgQ2xpZW50LnB1c2hSZXNwb25zZShcbiAgICAgIHBhcnNlV2ViU29ja2V0LFxuICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBvcDogJ2Vycm9yJyxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGNvZGUsXG4gICAgICAgIHJlY29ubmVjdCxcbiAgICAgICAgcmVxdWVzdElkLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgYWRkU3Vic2NyaXB0aW9uSW5mbyhyZXF1ZXN0SWQ6IG51bWJlciwgc3Vic2NyaXB0aW9uSW5mbzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25JbmZvcy5zZXQocmVxdWVzdElkLCBzdWJzY3JpcHRpb25JbmZvKTtcbiAgfVxuXG4gIGdldFN1YnNjcmlwdGlvbkluZm8ocmVxdWVzdElkOiBudW1iZXIpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnN1YnNjcmlwdGlvbkluZm9zLmdldChyZXF1ZXN0SWQpO1xuICB9XG5cbiAgZGVsZXRlU3Vic2NyaXB0aW9uSW5mbyhyZXF1ZXN0SWQ6IG51bWJlcik6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLnN1YnNjcmlwdGlvbkluZm9zLmRlbGV0ZShyZXF1ZXN0SWQpO1xuICB9XG5cbiAgX3B1c2hFdmVudCh0eXBlOiBzdHJpbmcpOiBGdW5jdGlvbiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChcbiAgICAgIHN1YnNjcmlwdGlvbklkOiBudW1iZXIsXG4gICAgICBwYXJzZU9iamVjdEpTT046IGFueSxcbiAgICAgIHBhcnNlT3JpZ2luYWxPYmplY3RKU09OOiBhbnlcbiAgICApOiB2b2lkIHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlOiBNZXNzYWdlID0ge1xuICAgICAgICBvcDogdHlwZSxcbiAgICAgICAgY2xpZW50SWQ6IHRoaXMuaWQsXG4gICAgICAgIGluc3RhbGxhdGlvbklkOiB0aGlzLmluc3RhbGxhdGlvbklkLFxuICAgICAgfTtcbiAgICAgIGlmICh0eXBlb2Ygc3Vic2NyaXB0aW9uSWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJlc3BvbnNlWydyZXF1ZXN0SWQnXSA9IHN1YnNjcmlwdGlvbklkO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBwYXJzZU9iamVjdEpTT04gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGxldCBrZXlzO1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25JbmZvcy5oYXMoc3Vic2NyaXB0aW9uSWQpKSB7XG4gICAgICAgICAga2V5cyA9IHRoaXMuc3Vic2NyaXB0aW9uSW5mb3MuZ2V0KHN1YnNjcmlwdGlvbklkKS5rZXlzO1xuICAgICAgICB9XG4gICAgICAgIHJlc3BvbnNlWydvYmplY3QnXSA9IHRoaXMuX3RvSlNPTldpdGhGaWVsZHMocGFyc2VPYmplY3RKU09OLCBrZXlzKTtcbiAgICAgICAgaWYgKHBhcnNlT3JpZ2luYWxPYmplY3RKU09OKSB7XG4gICAgICAgICAgcmVzcG9uc2VbJ29yaWdpbmFsJ10gPSB0aGlzLl90b0pTT05XaXRoRmllbGRzKHBhcnNlT3JpZ2luYWxPYmplY3RKU09OLCBrZXlzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQ2xpZW50LnB1c2hSZXNwb25zZSh0aGlzLnBhcnNlV2ViU29ja2V0LCBKU09OLnN0cmluZ2lmeShyZXNwb25zZSkpO1xuICAgIH07XG4gIH1cblxuICBfdG9KU09OV2l0aEZpZWxkcyhwYXJzZU9iamVjdEpTT046IGFueSwgZmllbGRzOiBhbnkpOiBGbGF0dGVuZWRPYmplY3REYXRhIHtcbiAgICBpZiAoIWZpZWxkcykge1xuICAgICAgcmV0dXJuIHBhcnNlT2JqZWN0SlNPTjtcbiAgICB9XG4gICAgY29uc3QgbGltaXRlZFBhcnNlT2JqZWN0ID0ge307XG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBkYWZhdWx0RmllbGRzKSB7XG4gICAgICBsaW1pdGVkUGFyc2VPYmplY3RbZmllbGRdID0gcGFyc2VPYmplY3RKU09OW2ZpZWxkXTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgIGlmIChmaWVsZCBpbiBwYXJzZU9iamVjdEpTT04pIHtcbiAgICAgICAgbGltaXRlZFBhcnNlT2JqZWN0W2ZpZWxkXSA9IHBhcnNlT2JqZWN0SlNPTltmaWVsZF07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsaW1pdGVkUGFyc2VPYmplY3Q7XG4gIH1cbn1cblxuZXhwb3J0IHsgQ2xpZW50IH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUErQixTQUFBRCx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUsvQixNQUFNRyxhQUFhLEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDO0FBRWhGLE1BQU1DLE1BQU0sQ0FBQztFQWtCWEMsV0FBV0EsQ0FDVEMsRUFBVSxFQUNWQyxjQUFtQixFQUNuQkMsWUFBcUIsR0FBRyxLQUFLLEVBQzdCQyxZQUFvQixFQUNwQkMsY0FBc0IsRUFDdEI7SUFDQSxJQUFJLENBQUNKLEVBQUUsR0FBR0EsRUFBRTtJQUNaLElBQUksQ0FBQ0MsY0FBYyxHQUFHQSxjQUFjO0lBQ3BDLElBQUksQ0FBQ0MsWUFBWSxHQUFHQSxZQUFZO0lBQ2hDLElBQUksQ0FBQ0MsWUFBWSxHQUFHQSxZQUFZO0lBQ2hDLElBQUksQ0FBQ0MsY0FBYyxHQUFHQSxjQUFjO0lBQ3BDLElBQUksQ0FBQ0MsS0FBSyxHQUFHLEVBQUU7SUFDZixJQUFJLENBQUNDLGlCQUFpQixHQUFHLElBQUlDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLElBQUksQ0FBQ0MsV0FBVyxHQUFHLElBQUksQ0FBQ0MsVUFBVSxDQUFDLFdBQVcsQ0FBQztJQUMvQyxJQUFJLENBQUNDLGFBQWEsR0FBRyxJQUFJLENBQUNELFVBQVUsQ0FBQyxZQUFZLENBQUM7SUFDbEQsSUFBSSxDQUFDRSxlQUFlLEdBQUcsSUFBSSxDQUFDRixVQUFVLENBQUMsY0FBYyxDQUFDO0lBQ3RELElBQUks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
|
package/lib/LiveQuery/Id.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
class Id {
|
|
4
|
-
|
|
5
4
|
constructor(className, objectId) {
|
|
6
5
|
this.className = className;
|
|
7
6
|
this.objectId = objectId;
|
|
@@ -9,7 +8,6 @@ class Id {
|
|
|
9
8
|
toString() {
|
|
10
9
|
return this.className + ':' + this.objectId;
|
|
11
10
|
}
|
|
12
|
-
|
|
13
11
|
static fromString(str) {
|
|
14
12
|
var split = str.split(':');
|
|
15
13
|
if (split.length !== 2) {
|
|
@@ -18,6 +16,5 @@ class Id {
|
|
|
18
16
|
return new Id(split[0], split[1]);
|
|
19
17
|
}
|
|
20
18
|
}
|
|
21
|
-
|
|
22
19
|
module.exports = Id;
|
|
23
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJZCIsImNvbnN0cnVjdG9yIiwiY2xhc3NOYW1lIiwib2JqZWN0SWQiLCJ0b1N0cmluZyIsImZyb21TdHJpbmciLCJzdHIiLCJzcGxpdCIsImxlbmd0aCIsIlR5cGVFcnJvciIsIm1vZHVsZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvTGl2ZVF1ZXJ5L0lkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIElkIHtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIG9iamVjdElkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoY2xhc3NOYW1lOiBzdHJpbmcsIG9iamVjdElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTtcbiAgICB0aGlzLm9iamVjdElkID0gb2JqZWN0SWQ7XG4gIH1cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jbGFzc05hbWUgKyAnOicgKyB0aGlzLm9iamVjdElkO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdHJpbmcoc3RyOiBzdHJpbmcpIHtcbiAgICB2YXIgc3BsaXQgPSBzdHIuc3BsaXQoJzonKTtcbiAgICBpZiAoc3BsaXQubGVuZ3RoICE9PSAyKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY3JlYXRlIElkIG9iamVjdCBmcm9tIHRoaXMgc3RyaW5nJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSWQoc3BsaXRbMF0sIHNwbGl0WzFdKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IElkO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLEVBQUUsQ0FBQztFQUlQQyxXQUFXQSxDQUFDQyxTQUFpQixFQUFFQyxRQUFnQixFQUFFO0lBQy9DLElBQUksQ0FBQ0QsU0FBUyxHQUFHQSxTQUFTO0lBQzFCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQSxRQUFRO0VBQzFCO0VBQ0FDLFFBQVFBLENBQUEsRUFBVztJQUNqQixPQUFPLElBQUksQ0FBQ0YsU0FBUyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUNDLFFBQVE7RUFDN0M7RUFFQSxPQUFPRSxVQUFVQSxDQUFDQyxHQUFXLEVBQUU7SUFDN0IsSUFBSUMsS0FBSyxHQUFHRCxHQUFHLENBQUNDLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDMUIsSUFBSUEsS0FBSyxDQUFDQyxNQUFNLEtBQUssQ0FBQyxFQUFFO01BQ3RCLE1BQU0sSUFBSUMsU0FBUyxDQUFDLDBDQUEwQyxDQUFDO0lBQ2pFO0lBQ0EsT0FBTyxJQUFJVCxFQUFFLENBQUNPLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRUEsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQ25DO0FBQ0Y7QUFFQUcsTUFBTSxDQUFDQyxPQUFPLEdBQUdYLEVBQUUiLCJpZ25vcmVMaXN0IjpbXX0=
|