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,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.enforceMasterKeyAccess = enforceMasterKeyAccess;
|
|
7
|
+
exports.getParseClassMutationConfig = exports.extractKeysAndInclude = void 0;
|
|
8
|
+
exports.toGraphQLError = toGraphQLError;
|
|
9
|
+
var _node = _interopRequireDefault(require("parse/node"));
|
|
10
|
+
var _graphql = require("graphql");
|
|
11
|
+
var _Error = require("../Error");
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function enforceMasterKeyAccess(auth, config) {
|
|
14
|
+
if (!auth.isMaster) {
|
|
15
|
+
throw (0, _Error.createSanitizedError)(_node.default.Error.OPERATION_FORBIDDEN, 'unauthorized: master key is required', config);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function toGraphQLError(error) {
|
|
19
|
+
let code, message;
|
|
20
|
+
if (error instanceof _node.default.Error) {
|
|
21
|
+
code = error.code;
|
|
22
|
+
message = error.message;
|
|
23
|
+
} else {
|
|
24
|
+
code = _node.default.Error.INTERNAL_SERVER_ERROR;
|
|
25
|
+
message = 'Internal server error';
|
|
26
|
+
}
|
|
27
|
+
return new _graphql.GraphQLError(message, {
|
|
28
|
+
extensions: {
|
|
29
|
+
code
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const extractKeysAndInclude = selectedFields => {
|
|
34
|
+
selectedFields = selectedFields.filter(field => !field.includes('__typename'));
|
|
35
|
+
// Handles "id" field for both current and included objects
|
|
36
|
+
selectedFields = selectedFields.map(field => {
|
|
37
|
+
if (field === 'id') {
|
|
38
|
+
return 'objectId';
|
|
39
|
+
}
|
|
40
|
+
return field.endsWith('.id') ? `${field.substring(0, field.lastIndexOf('.id'))}.objectId` : field;
|
|
41
|
+
});
|
|
42
|
+
let keys = undefined;
|
|
43
|
+
let include = undefined;
|
|
44
|
+
if (selectedFields.length > 0) {
|
|
45
|
+
keys = [...new Set(selectedFields)].join(',');
|
|
46
|
+
// We can use this shortcut since optimization is handled
|
|
47
|
+
// later on RestQuery, avoid overhead here.
|
|
48
|
+
include = keys;
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
// If authData is detected keys will not work properly
|
|
52
|
+
// since authData has a special storage behavior
|
|
53
|
+
// so we need to skip keys currently
|
|
54
|
+
keys: keys && keys.indexOf('authData') === -1 ? keys : undefined,
|
|
55
|
+
include
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
exports.extractKeysAndInclude = extractKeysAndInclude;
|
|
59
|
+
const getParseClassMutationConfig = function (parseClassConfig) {
|
|
60
|
+
return parseClassConfig && parseClassConfig.mutation || {};
|
|
61
|
+
};
|
|
62
|
+
exports.getParseClassMutationConfig = getParseClassMutationConfig;
|
|
63
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2dyYXBocWwiLCJfRXJyb3IiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJlbmZvcmNlTWFzdGVyS2V5QWNjZXNzIiwiYXV0aCIsImNvbmZpZyIsImlzTWFzdGVyIiwiY3JlYXRlU2FuaXRpemVkRXJyb3IiLCJQYXJzZSIsIkVycm9yIiwiT1BFUkFUSU9OX0ZPUkJJRERFTiIsInRvR3JhcGhRTEVycm9yIiwiZXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsIkdyYXBoUUxFcnJvciIsImV4dGVuc2lvbnMiLCJleHRyYWN0S2V5c0FuZEluY2x1ZGUiLCJzZWxlY3RlZEZpZWxkcyIsImZpbHRlciIsImZpZWxkIiwiaW5jbHVkZXMiLCJtYXAiLCJlbmRzV2l0aCIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwia2V5cyIsInVuZGVmaW5lZCIsImluY2x1ZGUiLCJsZW5ndGgiLCJTZXQiLCJqb2luIiwiaW5kZXhPZiIsImV4cG9ydHMiLCJnZXRQYXJzZUNsYXNzTXV0YXRpb25Db25maWciLCJwYXJzZUNsYXNzQ29uZmlnIiwibXV0YXRpb24iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvR3JhcGhRTC9wYXJzZUdyYXBoUUxVdGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUGFyc2UgZnJvbSAncGFyc2Uvbm9kZSc7XG5pbXBvcnQgeyBHcmFwaFFMRXJyb3IgfSBmcm9tICdncmFwaHFsJztcbmltcG9ydCB7IGNyZWF0ZVNhbml0aXplZEVycm9yIH0gZnJvbSAnLi4vRXJyb3InO1xuXG5leHBvcnQgZnVuY3Rpb24gZW5mb3JjZU1hc3RlcktleUFjY2VzcyhhdXRoLCBjb25maWcpIHtcbiAgaWYgKCFhdXRoLmlzTWFzdGVyKSB7XG4gICAgdGhyb3cgY3JlYXRlU2FuaXRpemVkRXJyb3IoXG4gICAgICBQYXJzZS5FcnJvci5PUEVSQVRJT05fRk9SQklEREVOLFxuICAgICAgJ3VuYXV0aG9yaXplZDogbWFzdGVyIGtleSBpcyByZXF1aXJlZCcsXG4gICAgICBjb25maWdcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0dyYXBoUUxFcnJvcihlcnJvcikge1xuICBsZXQgY29kZSwgbWVzc2FnZTtcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgUGFyc2UuRXJyb3IpIHtcbiAgICBjb2RlID0gZXJyb3IuY29kZTtcbiAgICBtZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgfSBlbHNlIHtcbiAgICBjb2RlID0gUGFyc2UuRXJyb3IuSU5URVJOQUxfU0VSVkVSX0VSUk9SO1xuICAgIG1lc3NhZ2UgPSAnSW50ZXJuYWwgc2VydmVyIGVycm9yJztcbiAgfVxuICByZXR1cm4gbmV3IEdyYXBoUUxFcnJvcihtZXNzYWdlLCB7IGV4dGVuc2lvbnM6IHsgY29kZSB9IH0pO1xufVxuXG5leHBvcnQgY29uc3QgZXh0cmFjdEtleXNBbmRJbmNsdWRlID0gc2VsZWN0ZWRGaWVsZHMgPT4ge1xuICBzZWxlY3RlZEZpZWxkcyA9IHNlbGVjdGVkRmllbGRzLmZpbHRlcihmaWVsZCA9PiAhZmllbGQuaW5jbHVkZXMoJ19fdHlwZW5hbWUnKSk7XG4gIC8vIEhhbmRsZXMgXCJpZFwiIGZpZWxkIGZvciBib3RoIGN1cnJlbnQgYW5kIGluY2x1ZGVkIG9iamVjdHNcbiAgc2VsZWN0ZWRGaWVsZHMgPSBzZWxlY3RlZEZpZWxkcy5tYXAoZmllbGQgPT4ge1xuICAgIGlmIChmaWVsZCA9PT0gJ2lkJykgeyByZXR1cm4gJ29iamVjdElkJzsgfVxuICAgIHJldHVybiBmaWVsZC5lbmRzV2l0aCgnLmlkJylcbiAgICAgID8gYCR7ZmllbGQuc3Vic3RyaW5nKDAsIGZpZWxkLmxhc3RJbmRleE9mKCcuaWQnKSl9Lm9iamVjdElkYFxuICAgICAgOiBmaWVsZDtcbiAgfSk7XG4gIGxldCBrZXlzID0gdW5kZWZpbmVkO1xuICBsZXQgaW5jbHVkZSA9IHVuZGVmaW5lZDtcblxuICBpZiAoc2VsZWN0ZWRGaWVsZHMubGVuZ3RoID4gMCkge1xuICAgIGtleXMgPSBbLi4ubmV3IFNldChzZWxlY3RlZEZpZWxkcyldLmpvaW4oJywnKTtcbiAgICAvLyBXZSBjYW4gdXNlIHRoaXMgc2hvcnRjdXQgc2luY2Ugb3B0aW1pemF0aW9uIGlzIGhhbmRsZWRcbiAgICAvLyBsYXRlciBvbiBSZXN0UXVlcnksIGF2b2lkIG92ZXJoZWFkIGhlcmUuXG4gICAgaW5jbHVkZSA9IGtleXM7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC8vIElmIGF1dGhEYXRhIGlzIGRldGVjdGVkIGtleXMgd2lsbCBub3Qgd29yayBwcm9wZXJseVxuICAgIC8vIHNpbmNlIGF1dGhEYXRhIGhhcyBhIHNwZWNpYWwgc3RvcmFnZSBiZWhhdmlvclxuICAgIC8vIHNvIHdlIG5lZWQgdG8gc2tpcCBrZXlzIGN1cnJlbnRseVxuICAgIGtleXM6IGtleXMgJiYga2V5cy5pbmRleE9mKCdhdXRoRGF0YScpID09PSAtMSA/IGtleXMgOiB1bmRlZmluZWQsXG4gICAgaW5jbHVkZSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRQYXJzZUNsYXNzTXV0YXRpb25Db25maWcgPSBmdW5jdGlvbiAocGFyc2VDbGFzc0NvbmZpZykge1xuICByZXR1cm4gKHBhcnNlQ2xhc3NDb25maWcgJiYgcGFyc2VDbGFzc0NvbmZpZy5tdXRhdGlvbikgfHwge307XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUFnRCxTQUFBRCx1QkFBQUksQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUV6QyxTQUFTRyxzQkFBc0JBLENBQUNDLElBQUksRUFBRUMsTUFBTSxFQUFFO0VBQ25ELElBQUksQ0FBQ0QsSUFBSSxDQUFDRSxRQUFRLEVBQUU7SUFDbEIsTUFBTSxJQUFBQywyQkFBb0IsRUFDeEJDLGFBQUssQ0FBQ0MsS0FBSyxDQUFDQyxtQkFBbUIsRUFDL0Isc0NBQXNDLEVBQ3RDTCxNQUNGLENBQUM7RUFDSDtBQUNGO0FBRU8sU0FBU00sY0FBY0EsQ0FBQ0MsS0FBSyxFQUFFO0VBQ3BDLElBQUlDLElBQUksRUFBRUMsT0FBTztFQUNqQixJQUFJRixLQUFLLFlBQVlKLGFBQUssQ0FBQ0MsS0FBSyxFQUFFO0lBQ2hDSSxJQUFJLEdBQUdELEtBQUssQ0FBQ0MsSUFBSTtJQUNqQkMsT0FBTyxHQUFHRixLQUFLLENBQUNFLE9BQU87RUFDekIsQ0FBQyxNQUFNO0lBQ0xELElBQUksR0FBR0wsYUFBSyxDQUFDQyxLQUFLLENBQUNNLHFCQUFxQjtJQUN4Q0QsT0FBTyxHQUFHLHVCQUF1QjtFQUNuQztFQUNBLE9BQU8sSUFBSUUscUJBQVksQ0FBQ0YsT0FBTyxFQUFFO0lBQUVHLFVBQVUsRUFBRTtNQUFFSjtJQUFLO0VBQUUsQ0FBQyxDQUFDO0FBQzVEO0FBRU8sTUFBTUsscUJBQXFCLEdBQUdDLGNBQWMsSUFBSTtFQUNyREEsY0FBYyxHQUFHQSxjQUFjLENBQUNDLE1BQU0sQ0FBQ0MsS0FBSyxJQUFJLENBQUNBLEtBQUssQ0FBQ0MsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO0VBQzlFO0VBQ0FILGNBQWMsR0FBR0EsY0FBYyxDQUFDSSxHQUFHLENBQUNGLEtBQUssSUFBSTtJQUMzQyxJQUFJQSxLQUFLLEtBQUssSUFBSSxFQUFFO01BQUUsT0FBTyxVQUFVO0lBQUU7SUFDekMsT0FBT0EsS0FBSyxDQUFDRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQ3hCLEdBQUdILEtBQUssQ0FBQ0ksU0FBUyxDQUFDLENBQUMsRUFBRUosS0FBSyxDQUFDSyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxHQUMxREwsS0FBSztFQUNYLENBQUMsQ0FBQztFQUNGLElBQUlNLElBQUksR0FBR0MsU0FBUztFQUNwQixJQUFJQyxPQUFPLEdBQUdELFNBQVM7RUFFdkIsSUFBSVQsY0FBYyxDQUFDVyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0lBQzdCSCxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUlJLEdBQUcsQ0FBQ1osY0FBYyxDQUFDLENBQUMsQ0FBQ2EsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUM3QztJQUNBO0lBQ0FILE9BQU8sR0FBR0YsSUFBSTtFQUNoQjtFQUVBLE9BQU87SUFDTDtJQUNBO0lBQ0E7SUFDQUEsSUFBSSxFQUFFQSxJQUFJLElBQUlBLElBQUksQ0FBQ00sT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHTixJQUFJLEdBQUdDLFNBQVM7SUFDaEVDO0VBQ0YsQ0FBQztBQUNILENBQUM7QUFBQ0ssT0FBQSxDQUFBaEIscUJBQUEsR0FBQUEscUJBQUE7QUFFSyxNQUFNaUIsMkJBQTJCLEdBQUcsU0FBQUEsQ0FBVUMsZ0JBQWdCLEVBQUU7RUFDckUsT0FBUUEsZ0JBQWdCLElBQUlBLGdCQUFnQixDQUFDQyxRQUFRLElBQUssQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFBQ0gsT0FBQSxDQUFBQywyQkFBQSxHQUFBQSwyQkFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.transformClassNameToGraphQL = void 0;
|
|
7
|
+
const transformClassNameToGraphQL = className => {
|
|
8
|
+
if (className[0] === '_') {
|
|
9
|
+
className = className.slice(1);
|
|
10
|
+
}
|
|
11
|
+
return className[0].toUpperCase() + className.slice(1);
|
|
12
|
+
};
|
|
13
|
+
exports.transformClassNameToGraphQL = transformClassNameToGraphQL;
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0cmFuc2Zvcm1DbGFzc05hbWVUb0dyYXBoUUwiLCJjbGFzc05hbWUiLCJzbGljZSIsInRvVXBwZXJDYXNlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9HcmFwaFFML3RyYW5zZm9ybWVycy9jbGFzc05hbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdHJhbnNmb3JtQ2xhc3NOYW1lVG9HcmFwaFFMID0gY2xhc3NOYW1lID0+IHtcbiAgaWYgKGNsYXNzTmFtZVswXSA9PT0gJ18nKSB7XG4gICAgY2xhc3NOYW1lID0gY2xhc3NOYW1lLnNsaWNlKDEpO1xuICB9XG4gIHJldHVybiBjbGFzc05hbWVbMF0udG9VcHBlckNhc2UoKSArIGNsYXNzTmFtZS5zbGljZSgxKTtcbn07XG5cbmV4cG9ydCB7IHRyYW5zZm9ybUNsYXNzTmFtZVRvR3JhcGhRTCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxNQUFNQSwyQkFBMkIsR0FBR0MsU0FBUyxJQUFJO0VBQy9DLElBQUlBLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7SUFDeEJBLFNBQVMsR0FBR0EsU0FBUyxDQUFDQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0VBQ2hDO0VBQ0EsT0FBT0QsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDRSxXQUFXLENBQUMsQ0FBQyxHQUFHRixTQUFTLENBQUNDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUFDRSxPQUFBLENBQUFKLDJCQUFBLEdBQUFBLDJCQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.transformConstraintTypeToGraphQL = void 0;
|
|
7
|
+
var defaultGraphQLTypes = _interopRequireWildcard(require("../loaders/defaultGraphQLTypes"));
|
|
8
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
9
|
+
const transformConstraintTypeToGraphQL = (parseType, targetClass, parseClassTypes, fieldName) => {
|
|
10
|
+
if (fieldName === 'id' || fieldName === 'objectId') {
|
|
11
|
+
return defaultGraphQLTypes.ID_WHERE_INPUT;
|
|
12
|
+
}
|
|
13
|
+
switch (parseType) {
|
|
14
|
+
case 'String':
|
|
15
|
+
return defaultGraphQLTypes.STRING_WHERE_INPUT;
|
|
16
|
+
case 'Number':
|
|
17
|
+
return defaultGraphQLTypes.NUMBER_WHERE_INPUT;
|
|
18
|
+
case 'Boolean':
|
|
19
|
+
return defaultGraphQLTypes.BOOLEAN_WHERE_INPUT;
|
|
20
|
+
case 'Array':
|
|
21
|
+
return defaultGraphQLTypes.ARRAY_WHERE_INPUT;
|
|
22
|
+
case 'Object':
|
|
23
|
+
return defaultGraphQLTypes.OBJECT_WHERE_INPUT;
|
|
24
|
+
case 'Date':
|
|
25
|
+
return defaultGraphQLTypes.DATE_WHERE_INPUT;
|
|
26
|
+
case 'Pointer':
|
|
27
|
+
if (parseClassTypes[targetClass] && parseClassTypes[targetClass].classGraphQLRelationConstraintsType) {
|
|
28
|
+
return parseClassTypes[targetClass].classGraphQLRelationConstraintsType;
|
|
29
|
+
} else {
|
|
30
|
+
return defaultGraphQLTypes.OBJECT;
|
|
31
|
+
}
|
|
32
|
+
case 'File':
|
|
33
|
+
return defaultGraphQLTypes.FILE_WHERE_INPUT;
|
|
34
|
+
case 'GeoPoint':
|
|
35
|
+
return defaultGraphQLTypes.GEO_POINT_WHERE_INPUT;
|
|
36
|
+
case 'Polygon':
|
|
37
|
+
return defaultGraphQLTypes.POLYGON_WHERE_INPUT;
|
|
38
|
+
case 'Bytes':
|
|
39
|
+
return defaultGraphQLTypes.BYTES_WHERE_INPUT;
|
|
40
|
+
case 'ACL':
|
|
41
|
+
return defaultGraphQLTypes.OBJECT_WHERE_INPUT;
|
|
42
|
+
case 'Relation':
|
|
43
|
+
if (parseClassTypes[targetClass] && parseClassTypes[targetClass].classGraphQLRelationConstraintsType) {
|
|
44
|
+
return parseClassTypes[targetClass].classGraphQLRelationConstraintsType;
|
|
45
|
+
} else {
|
|
46
|
+
return defaultGraphQLTypes.OBJECT;
|
|
47
|
+
}
|
|
48
|
+
default:
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.transformConstraintTypeToGraphQL = transformConstraintTypeToGraphQL;
|
|
53
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWZhdWx0R3JhcGhRTFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidHJhbnNmb3JtQ29uc3RyYWludFR5cGVUb0dyYXBoUUwiLCJwYXJzZVR5cGUiLCJ0YXJnZXRDbGFzcyIsInBhcnNlQ2xhc3NUeXBlcyIsImZpZWxkTmFtZSIsIklEX1dIRVJFX0lOUFVUIiwiU1RSSU5HX1dIRVJFX0lOUFVUIiwiTlVNQkVSX1dIRVJFX0lOUFVUIiwiQk9PTEVBTl9XSEVSRV9JTlBVVCIsIkFSUkFZX1dIRVJFX0lOUFVUIiwiT0JKRUNUX1dIRVJFX0lOUFVUIiwiREFURV9XSEVSRV9JTlBVVCIsImNsYXNzR3JhcGhRTFJlbGF0aW9uQ29uc3RyYWludHNUeXBlIiwiT0JKRUNUIiwiRklMRV9XSEVSRV9JTlBVVCIsIkdFT19QT0lOVF9XSEVSRV9JTlBVVCIsIlBPTFlHT05fV0hFUkVfSU5QVVQiLCJCWVRFU19XSEVSRV9JTlBVVCIsInVuZGVmaW5lZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvR3JhcGhRTC90cmFuc2Zvcm1lcnMvY29uc3RyYWludFR5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZGVmYXVsdEdyYXBoUUxUeXBlcyBmcm9tICcuLi9sb2FkZXJzL2RlZmF1bHRHcmFwaFFMVHlwZXMnO1xuXG5jb25zdCB0cmFuc2Zvcm1Db25zdHJhaW50VHlwZVRvR3JhcGhRTCA9IChwYXJzZVR5cGUsIHRhcmdldENsYXNzLCBwYXJzZUNsYXNzVHlwZXMsIGZpZWxkTmFtZSkgPT4ge1xuICBpZiAoZmllbGROYW1lID09PSAnaWQnIHx8IGZpZWxkTmFtZSA9PT0gJ29iamVjdElkJykge1xuICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLklEX1dIRVJFX0lOUFVUO1xuICB9XG5cbiAgc3dpdGNoIChwYXJzZVR5cGUpIHtcbiAgICBjYXNlICdTdHJpbmcnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuU1RSSU5HX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ051bWJlcic6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5OVU1CRVJfV0hFUkVfSU5QVVQ7XG4gICAgY2FzZSAnQm9vbGVhbic6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5CT09MRUFOX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ0FycmF5JzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLkFSUkFZX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ09iamVjdCc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5PQkpFQ1RfV0hFUkVfSU5QVVQ7XG4gICAgY2FzZSAnRGF0ZSc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5EQVRFX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ1BvaW50ZXInOlxuICAgICAgaWYgKFxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdICYmXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10uY2xhc3NHcmFwaFFMUmVsYXRpb25Db25zdHJhaW50c1R5cGVcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcGFyc2VDbGFzc1R5cGVzW3RhcmdldENsYXNzXS5jbGFzc0dyYXBoUUxSZWxhdGlvbkNvbnN0cmFpbnRzVHlwZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLk9CSkVDVDtcbiAgICAgIH1cbiAgICBjYXNlICdGaWxlJzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLkZJTEVfV0hFUkVfSU5QVVQ7XG4gICAgY2FzZSAnR2VvUG9pbnQnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuR0VPX1BPSU5UX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ1BvbHlnb24nOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuUE9MWUdPTl9XSEVSRV9JTlBVVDtcbiAgICBjYXNlICdCeXRlcyc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5CWVRFU19XSEVSRV9JTlBVVDtcbiAgICBjYXNlICdBQ0wnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuT0JKRUNUX1dIRVJFX0lOUFVUO1xuICAgIGNhc2UgJ1JlbGF0aW9uJzpcbiAgICAgIGlmIChcbiAgICAgICAgcGFyc2VDbGFzc1R5cGVzW3RhcmdldENsYXNzXSAmJlxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdLmNsYXNzR3JhcGhRTFJlbGF0aW9uQ29uc3RyYWludHNUeXBlXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10uY2xhc3NHcmFwaFFMUmVsYXRpb25Db25zdHJhaW50c1R5cGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5PQkpFQ1Q7XG4gICAgICB9XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG5cbmV4cG9ydCB7IHRyYW5zZm9ybUNvbnN0cmFpbnRUeXBlVG9HcmFwaFFMIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLG1CQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFBc0UsU0FBQUQsd0JBQUFFLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFB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
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.transformInputTypeToGraphQL = void 0;
|
|
7
|
+
var _graphql = require("graphql");
|
|
8
|
+
var defaultGraphQLTypes = _interopRequireWildcard(require("../loaders/defaultGraphQLTypes"));
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
10
|
+
const transformInputTypeToGraphQL = (parseType, targetClass, parseClassTypes) => {
|
|
11
|
+
switch (parseType) {
|
|
12
|
+
case 'String':
|
|
13
|
+
return _graphql.GraphQLString;
|
|
14
|
+
case 'Number':
|
|
15
|
+
return _graphql.GraphQLFloat;
|
|
16
|
+
case 'Boolean':
|
|
17
|
+
return _graphql.GraphQLBoolean;
|
|
18
|
+
case 'Array':
|
|
19
|
+
return new _graphql.GraphQLList(defaultGraphQLTypes.ANY);
|
|
20
|
+
case 'Object':
|
|
21
|
+
return defaultGraphQLTypes.OBJECT;
|
|
22
|
+
case 'Date':
|
|
23
|
+
return defaultGraphQLTypes.DATE;
|
|
24
|
+
case 'Pointer':
|
|
25
|
+
if (parseClassTypes && parseClassTypes[targetClass] && parseClassTypes[targetClass].classGraphQLPointerType) {
|
|
26
|
+
return parseClassTypes[targetClass].classGraphQLPointerType;
|
|
27
|
+
} else {
|
|
28
|
+
return defaultGraphQLTypes.OBJECT;
|
|
29
|
+
}
|
|
30
|
+
case 'Relation':
|
|
31
|
+
if (parseClassTypes && parseClassTypes[targetClass] && parseClassTypes[targetClass].classGraphQLRelationType) {
|
|
32
|
+
return parseClassTypes[targetClass].classGraphQLRelationType;
|
|
33
|
+
} else {
|
|
34
|
+
return defaultGraphQLTypes.OBJECT;
|
|
35
|
+
}
|
|
36
|
+
case 'File':
|
|
37
|
+
return defaultGraphQLTypes.FILE_INPUT;
|
|
38
|
+
case 'GeoPoint':
|
|
39
|
+
return defaultGraphQLTypes.GEO_POINT_INPUT;
|
|
40
|
+
case 'Polygon':
|
|
41
|
+
return defaultGraphQLTypes.POLYGON_INPUT;
|
|
42
|
+
case 'Bytes':
|
|
43
|
+
return defaultGraphQLTypes.BYTES;
|
|
44
|
+
case 'ACL':
|
|
45
|
+
return defaultGraphQLTypes.ACL_INPUT;
|
|
46
|
+
default:
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
exports.transformInputTypeToGraphQL = transformInputTypeToGraphQL;
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ3JhcGhxbCIsInJlcXVpcmUiLCJkZWZhdWx0R3JhcGhRTFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ0cmFuc2Zvcm1JbnB1dFR5cGVUb0dyYXBoUUwiLCJwYXJzZVR5cGUiLCJ0YXJnZXRDbGFzcyIsInBhcnNlQ2xhc3NUeXBlcyIsIkdyYXBoUUxTdHJpbmciLCJHcmFwaFFMRmxvYXQiLCJHcmFwaFFMQm9vbGVhbiIsIkdyYXBoUUxMaXN0IiwiQU5ZIiwiT0JKRUNUIiwiREFURSIsImNsYXNzR3JhcGhRTFBvaW50ZXJUeXBlIiwiY2xhc3NHcmFwaFFMUmVsYXRpb25UeXBlIiwiRklMRV9JTlBVVCIsIkdFT19QT0lOVF9JTlBVVCIsIlBPTFlHT05fSU5QVVQiLCJCWVRFUyIsIkFDTF9JTlBVVCIsInVuZGVmaW5lZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvR3JhcGhRTC90cmFuc2Zvcm1lcnMvaW5wdXRUeXBlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyYXBoUUxTdHJpbmcsIEdyYXBoUUxGbG9hdCwgR3JhcGhRTEJvb2xlYW4sIEdyYXBoUUxMaXN0IH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgKiBhcyBkZWZhdWx0R3JhcGhRTFR5cGVzIGZyb20gJy4uL2xvYWRlcnMvZGVmYXVsdEdyYXBoUUxUeXBlcyc7XG5cbmNvbnN0IHRyYW5zZm9ybUlucHV0VHlwZVRvR3JhcGhRTCA9IChwYXJzZVR5cGUsIHRhcmdldENsYXNzLCBwYXJzZUNsYXNzVHlwZXMpID0+IHtcbiAgc3dpdGNoIChwYXJzZVR5cGUpIHtcbiAgICBjYXNlICdTdHJpbmcnOlxuICAgICAgcmV0dXJuIEdyYXBoUUxTdHJpbmc7XG4gICAgY2FzZSAnTnVtYmVyJzpcbiAgICAgIHJldHVybiBHcmFwaFFMRmxvYXQ7XG4gICAgY2FzZSAnQm9vbGVhbic6XG4gICAgICByZXR1cm4gR3JhcGhRTEJvb2xlYW47XG4gICAgY2FzZSAnQXJyYXknOlxuICAgICAgcmV0dXJuIG5ldyBHcmFwaFFMTGlzdChkZWZhdWx0R3JhcGhRTFR5cGVzLkFOWSk7XG4gICAgY2FzZSAnT2JqZWN0JzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLk9CSkVDVDtcbiAgICBjYXNlICdEYXRlJzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLkRBVEU7XG4gICAgY2FzZSAnUG9pbnRlcic6XG4gICAgICBpZiAoXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlcyAmJlxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdICYmXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10uY2xhc3NHcmFwaFFMUG9pbnRlclR5cGVcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcGFyc2VDbGFzc1R5cGVzW3RhcmdldENsYXNzXS5jbGFzc0dyYXBoUUxQb2ludGVyVHlwZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLk9CSkVDVDtcbiAgICAgIH1cbiAgICBjYXNlICdSZWxhdGlvbic6XG4gICAgICBpZiAoXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlcyAmJlxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdICYmXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10uY2xhc3NHcmFwaFFMUmVsYXRpb25UeXBlXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10uY2xhc3NHcmFwaFFMUmVsYXRpb25UeXBlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuT0JKRUNUO1xuICAgICAgfVxuICAgIGNhc2UgJ0ZpbGUnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuRklMRV9JTlBVVDtcbiAgICBjYXNlICdHZW9Qb2ludCc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5HRU9fUE9JTlRfSU5QVVQ7XG4gICAgY2FzZSAnUG9seWdvbic6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5QT0xZR09OX0lOUFVUO1xuICAgIGNhc2UgJ0J5dGVzJzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLkJZVEVTO1xuICAgIGNhc2UgJ0FDTCc6XG4gICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5BQ0xfSU5QVVQ7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG5cbmV4cG9ydCB7IHRyYW5zZm9ybUlucHV0VHlwZVRvR3JhcGhRTCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxtQkFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQXNFLFNBQUFFLHdCQUFBQyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSCx1QkFBQSxZQUFBQSxDQUFBQyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxH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
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.transformTypes = void 0;
|
|
7
|
+
var _node = _interopRequireDefault(require("parse/node"));
|
|
8
|
+
var _graphqlRelay = require("graphql-relay");
|
|
9
|
+
var _filesMutations = require("../loaders/filesMutations");
|
|
10
|
+
var objectsMutations = _interopRequireWildcard(require("../helpers/objectsMutations"));
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
const transformTypes = async (inputType, fields, {
|
|
14
|
+
className,
|
|
15
|
+
parseGraphQLSchema,
|
|
16
|
+
req,
|
|
17
|
+
originalFields
|
|
18
|
+
}) => {
|
|
19
|
+
const {
|
|
20
|
+
classGraphQLCreateType,
|
|
21
|
+
classGraphQLUpdateType,
|
|
22
|
+
config: {
|
|
23
|
+
isCreateEnabled,
|
|
24
|
+
isUpdateEnabled
|
|
25
|
+
}
|
|
26
|
+
} = parseGraphQLSchema.parseClassTypes[className];
|
|
27
|
+
const parseClass = parseGraphQLSchema.parseClasses[className];
|
|
28
|
+
if (fields) {
|
|
29
|
+
const classGraphQLCreateTypeFields = isCreateEnabled && classGraphQLCreateType ? classGraphQLCreateType.getFields() : null;
|
|
30
|
+
const classGraphQLUpdateTypeFields = isUpdateEnabled && classGraphQLUpdateType ? classGraphQLUpdateType.getFields() : null;
|
|
31
|
+
const promises = Object.keys(fields).map(async field => {
|
|
32
|
+
let inputTypeField;
|
|
33
|
+
if (inputType === 'create' && classGraphQLCreateTypeFields) {
|
|
34
|
+
inputTypeField = classGraphQLCreateTypeFields[field];
|
|
35
|
+
} else if (classGraphQLUpdateTypeFields) {
|
|
36
|
+
inputTypeField = classGraphQLUpdateTypeFields[field];
|
|
37
|
+
}
|
|
38
|
+
if (inputTypeField) {
|
|
39
|
+
const parseFieldType = parseClass.fields[field].type;
|
|
40
|
+
switch (parseFieldType) {
|
|
41
|
+
case 'GeoPoint':
|
|
42
|
+
if (fields[field] === null) {
|
|
43
|
+
fields[field] = {
|
|
44
|
+
__op: 'Delete'
|
|
45
|
+
};
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
fields[field] = transformers.geoPoint(fields[field]);
|
|
49
|
+
break;
|
|
50
|
+
case 'Polygon':
|
|
51
|
+
if (fields[field] === null) {
|
|
52
|
+
fields[field] = {
|
|
53
|
+
__op: 'Delete'
|
|
54
|
+
};
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
fields[field] = transformers.polygon(fields[field]);
|
|
58
|
+
break;
|
|
59
|
+
case 'File':
|
|
60
|
+
// We need to use the originalFields to handle the file upload
|
|
61
|
+
// since fields are a deepcopy and do not keep the file object
|
|
62
|
+
fields[field] = await transformers.file(originalFields[field], req);
|
|
63
|
+
break;
|
|
64
|
+
case 'Relation':
|
|
65
|
+
fields[field] = await transformers.relation(parseClass.fields[field].targetClass, field, fields[field], originalFields[field], parseGraphQLSchema, req);
|
|
66
|
+
break;
|
|
67
|
+
case 'Pointer':
|
|
68
|
+
if (fields[field] === null) {
|
|
69
|
+
fields[field] = {
|
|
70
|
+
__op: 'Delete'
|
|
71
|
+
};
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
fields[field] = await transformers.pointer(parseClass.fields[field].targetClass, field, fields[field], originalFields[field], parseGraphQLSchema, req);
|
|
75
|
+
break;
|
|
76
|
+
default:
|
|
77
|
+
if (fields[field] === null) {
|
|
78
|
+
fields[field] = {
|
|
79
|
+
__op: 'Delete'
|
|
80
|
+
};
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
await Promise.all(promises);
|
|
88
|
+
if (fields.ACL) {
|
|
89
|
+
fields.ACL = transformers.ACL(fields.ACL);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return fields;
|
|
93
|
+
};
|
|
94
|
+
exports.transformTypes = transformTypes;
|
|
95
|
+
const transformers = {
|
|
96
|
+
file: async (input, {
|
|
97
|
+
config
|
|
98
|
+
}) => {
|
|
99
|
+
if (input === null) {
|
|
100
|
+
return {
|
|
101
|
+
__op: 'Delete'
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
const {
|
|
105
|
+
file,
|
|
106
|
+
upload
|
|
107
|
+
} = input;
|
|
108
|
+
if (upload) {
|
|
109
|
+
const {
|
|
110
|
+
fileInfo
|
|
111
|
+
} = await (0, _filesMutations.handleUpload)(upload, config);
|
|
112
|
+
return {
|
|
113
|
+
...fileInfo,
|
|
114
|
+
__type: 'File'
|
|
115
|
+
};
|
|
116
|
+
} else if (file && file.name) {
|
|
117
|
+
return {
|
|
118
|
+
name: file.name,
|
|
119
|
+
__type: 'File',
|
|
120
|
+
url: file.url
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
throw new _node.default.Error(_node.default.Error.FILE_SAVE_ERROR, 'Invalid file upload.');
|
|
124
|
+
},
|
|
125
|
+
polygon: value => ({
|
|
126
|
+
__type: 'Polygon',
|
|
127
|
+
coordinates: value.map(geoPoint => [geoPoint.latitude, geoPoint.longitude])
|
|
128
|
+
}),
|
|
129
|
+
geoPoint: value => ({
|
|
130
|
+
...value,
|
|
131
|
+
__type: 'GeoPoint'
|
|
132
|
+
}),
|
|
133
|
+
ACL: value => {
|
|
134
|
+
const parseACL = {};
|
|
135
|
+
if (value.public) {
|
|
136
|
+
parseACL['*'] = {
|
|
137
|
+
read: value.public.read,
|
|
138
|
+
write: value.public.write
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
if (value.users) {
|
|
142
|
+
value.users.forEach(rule => {
|
|
143
|
+
const globalIdObject = (0, _graphqlRelay.fromGlobalId)(rule.userId);
|
|
144
|
+
if (globalIdObject.type === '_User') {
|
|
145
|
+
rule.userId = globalIdObject.id;
|
|
146
|
+
}
|
|
147
|
+
parseACL[rule.userId] = {
|
|
148
|
+
read: rule.read,
|
|
149
|
+
write: rule.write
|
|
150
|
+
};
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
if (value.roles) {
|
|
154
|
+
value.roles.forEach(rule => {
|
|
155
|
+
parseACL[`role:${rule.roleName}`] = {
|
|
156
|
+
read: rule.read,
|
|
157
|
+
write: rule.write
|
|
158
|
+
};
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
return parseACL;
|
|
162
|
+
},
|
|
163
|
+
relation: async (targetClass, field, value, originalValue, parseGraphQLSchema, {
|
|
164
|
+
config,
|
|
165
|
+
auth,
|
|
166
|
+
info
|
|
167
|
+
}) => {
|
|
168
|
+
if (Object.keys(value).length === 0) {
|
|
169
|
+
throw new _node.default.Error(_node.default.Error.INVALID_POINTER, `You need to provide at least one operation on the relation mutation of field ${field}`);
|
|
170
|
+
}
|
|
171
|
+
const op = {
|
|
172
|
+
__op: 'Batch',
|
|
173
|
+
ops: []
|
|
174
|
+
};
|
|
175
|
+
let nestedObjectsToAdd = [];
|
|
176
|
+
if (value.createAndAdd) {
|
|
177
|
+
nestedObjectsToAdd = (await Promise.all(value.createAndAdd.map(async (input, i) => {
|
|
178
|
+
const parseFields = await transformTypes('create', input, {
|
|
179
|
+
className: targetClass,
|
|
180
|
+
originalFields: originalValue.createAndAdd[i],
|
|
181
|
+
parseGraphQLSchema,
|
|
182
|
+
req: {
|
|
183
|
+
config,
|
|
184
|
+
auth,
|
|
185
|
+
info
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
return objectsMutations.createObject(targetClass, parseFields, config, auth, info);
|
|
189
|
+
}))).map(object => ({
|
|
190
|
+
__type: 'Pointer',
|
|
191
|
+
className: targetClass,
|
|
192
|
+
objectId: object.objectId
|
|
193
|
+
}));
|
|
194
|
+
}
|
|
195
|
+
if (value.add || nestedObjectsToAdd.length > 0) {
|
|
196
|
+
if (!value.add) {
|
|
197
|
+
value.add = [];
|
|
198
|
+
}
|
|
199
|
+
value.add = value.add.map(input => {
|
|
200
|
+
const globalIdObject = (0, _graphqlRelay.fromGlobalId)(input);
|
|
201
|
+
if (globalIdObject.type === targetClass) {
|
|
202
|
+
input = globalIdObject.id;
|
|
203
|
+
}
|
|
204
|
+
return {
|
|
205
|
+
__type: 'Pointer',
|
|
206
|
+
className: targetClass,
|
|
207
|
+
objectId: input
|
|
208
|
+
};
|
|
209
|
+
});
|
|
210
|
+
op.ops.push({
|
|
211
|
+
__op: 'AddRelation',
|
|
212
|
+
objects: [...value.add, ...nestedObjectsToAdd]
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
if (value.remove) {
|
|
216
|
+
op.ops.push({
|
|
217
|
+
__op: 'RemoveRelation',
|
|
218
|
+
objects: value.remove.map(input => {
|
|
219
|
+
const globalIdObject = (0, _graphqlRelay.fromGlobalId)(input);
|
|
220
|
+
if (globalIdObject.type === targetClass) {
|
|
221
|
+
input = globalIdObject.id;
|
|
222
|
+
}
|
|
223
|
+
return {
|
|
224
|
+
__type: 'Pointer',
|
|
225
|
+
className: targetClass,
|
|
226
|
+
objectId: input
|
|
227
|
+
};
|
|
228
|
+
})
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
return op;
|
|
232
|
+
},
|
|
233
|
+
pointer: async (targetClass, field, value, originalValue, parseGraphQLSchema, {
|
|
234
|
+
config,
|
|
235
|
+
auth,
|
|
236
|
+
info
|
|
237
|
+
}) => {
|
|
238
|
+
if (Object.keys(value).length > 1 || Object.keys(value).length === 0) {
|
|
239
|
+
throw new _node.default.Error(_node.default.Error.INVALID_POINTER, `You need to provide link OR createLink on the pointer mutation of field ${field}`);
|
|
240
|
+
}
|
|
241
|
+
let nestedObjectToAdd;
|
|
242
|
+
if (value.createAndLink) {
|
|
243
|
+
const parseFields = await transformTypes('create', value.createAndLink, {
|
|
244
|
+
className: targetClass,
|
|
245
|
+
parseGraphQLSchema,
|
|
246
|
+
originalFields: originalValue.createAndLink,
|
|
247
|
+
req: {
|
|
248
|
+
config,
|
|
249
|
+
auth,
|
|
250
|
+
info
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
nestedObjectToAdd = await objectsMutations.createObject(targetClass, parseFields, config, auth, info);
|
|
254
|
+
return {
|
|
255
|
+
__type: 'Pointer',
|
|
256
|
+
className: targetClass,
|
|
257
|
+
objectId: nestedObjectToAdd.objectId
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
if (value.link) {
|
|
261
|
+
let objectId = value.link;
|
|
262
|
+
const globalIdObject = (0, _graphqlRelay.fromGlobalId)(objectId);
|
|
263
|
+
if (globalIdObject.type === targetClass) {
|
|
264
|
+
objectId = globalIdObject.id;
|
|
265
|
+
}
|
|
266
|
+
return {
|
|
267
|
+
__type: 'Pointer',
|
|
268
|
+
className: targetClass,
|
|
269
|
+
objectId
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2dyYXBocWxSZWxheSIsIl9maWxlc011dGF0aW9ucyIsIm9iamVjdHNNdXRhdGlvbnMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInRyYW5zZm9ybVR5cGVzIiwiaW5wdXRUeXBlIiwiZmllbGRzIiwiY2xhc3NOYW1lIiwicGFyc2VHcmFwaFFMU2NoZW1hIiwicmVxIiwib3JpZ2luYWxGaWVsZHMiLCJjbGFzc0dyYXBoUUxDcmVhdGVUeXBlIiwiY2xhc3NHcmFwaFFMVXBkYXRlVHlwZSIsImNvbmZpZyIsImlzQ3JlYXRlRW5hYmxlZCIsImlzVXBkYXRlRW5hYmxlZCIsInBhcnNlQ2xhc3NUeXBlcyIsInBhcnNlQ2xhc3MiLCJwYXJzZUNsYXNzZXMiLCJjbGFzc0dyYXBoUUxDcmVhdGVUeXBlRmllbGRzIiwiZ2V0RmllbGRzIiwiY2xhc3NHcmFwaFFMVXBkYXRlVHlwZUZpZWxkcyIsInByb21pc2VzIiwia2V5cyIsIm1hcCIsImZpZWxkIiwiaW5wdXRUeXBlRmllbGQiLCJwYXJzZUZpZWxkVHlwZSIsInR5cGUiLCJfX29wIiwidHJhbnNmb3JtZXJzIiwiZ2VvUG9pbnQiLCJwb2x5Z29uIiwiZmlsZSIsInJlbGF0aW9uIiwidGFyZ2V0Q2xhc3MiLCJwb2ludGVyIiwiUHJvbWlzZSIsImFsbCIsIkFDTCIsImV4cG9ydHMiLCJpbnB1dCIsInVwbG9hZCIsImZpbGVJbmZvIiwiaGFuZGxlVXBsb2FkIiwiX190eXBlIiwibmFtZSIsInVybCIsIlBhcnNlIiwiRXJyb3IiLCJGSUxFX1NBVkVfRVJST1IiLCJ2YWx1ZSIsImNvb3JkaW5hdGVzIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJwYXJzZUFDTCIsInB1YmxpYyIsInJlYWQiLCJ3cml0ZSIsInVzZXJzIiwiZm9yRWFjaCIsInJ1bGUiLCJnbG9iYWxJZE9iamVjdCIsImZyb21HbG9iYWxJZCIsInVzZXJJZCIsImlkIiwicm9sZXMiLCJyb2xlTmFtZSIsIm9yaWdpbmFsVmFsdWUiLCJhdXRoIiwiaW5mbyIsImxlbmd0aCIsIklOVkFMSURfUE9JTlRFUiIsIm9wIiwib3BzIiwibmVzdGVkT2JqZWN0c1RvQWRkIiwiY3JlYXRlQW5kQWRkIiwicGFyc2VGaWVsZHMiLCJjcmVhdGVPYmplY3QiLCJvYmplY3QiLCJvYmplY3RJZCIsImFkZCIsInB1c2giLCJvYmplY3RzIiwicmVtb3ZlIiwibmVzdGVkT2JqZWN0VG9BZGQiLCJjcmVhdGVBbmRMaW5rIiwibGluayJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9HcmFwaFFML3RyYW5zZm9ybWVycy9tdXRhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUGFyc2UgZnJvbSAncGFyc2Uvbm9kZSc7XG5pbXBvcnQgeyBmcm9tR2xvYmFsSWQgfSBmcm9tICdncmFwaHFsLXJlbGF5JztcbmltcG9ydCB7IGhhbmRsZVVwbG9hZCB9IGZyb20gJy4uL2xvYWRlcnMvZmlsZXNNdXRhdGlvbnMnO1xuaW1wb3J0ICogYXMgb2JqZWN0c011dGF0aW9ucyBmcm9tICcuLi9oZWxwZXJzL29iamVjdHNNdXRhdGlvbnMnO1xuXG5jb25zdCB0cmFuc2Zvcm1UeXBlcyA9IGFzeW5jIChcbiAgaW5wdXRUeXBlOiAnY3JlYXRlJyB8ICd1cGRhdGUnLFxuICBmaWVsZHMsXG4gIHsgY2xhc3NOYW1lLCBwYXJzZUdyYXBoUUxTY2hlbWEsIHJlcSwgb3JpZ2luYWxGaWVsZHMgfVxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjbGFzc0dyYXBoUUxDcmVhdGVUeXBlLFxuICAgIGNsYXNzR3JhcGhRTFVwZGF0ZVR5cGUsXG4gICAgY29uZmlnOiB7IGlzQ3JlYXRlRW5hYmxlZCwgaXNVcGRhdGVFbmFibGVkIH0sXG4gIH0gPSBwYXJzZUdyYXBoUUxTY2hlbWEucGFyc2VDbGFzc1R5cGVzW2NsYXNzTmFtZV07XG4gIGNvbnN0IHBhcnNlQ2xhc3MgPSBwYXJzZUdyYXBoUUxTY2hlbWEucGFyc2VDbGFzc2VzW2NsYXNzTmFtZV07XG4gIGlmIChmaWVsZHMpIHtcbiAgICBjb25zdCBjbGFzc0dyYXBoUUxDcmVhdGVUeXBlRmllbGRzID1cbiAgICAgIGlzQ3JlYXRlRW5hYmxlZCAmJiBjbGFzc0dyYXBoUUxDcmVhdGVUeXBlID8gY2xhc3NHcmFwaFFMQ3JlYXRlVHlwZS5nZXRGaWVsZHMoKSA6IG51bGw7XG4gICAgY29uc3QgY2xhc3NHcmFwaFFMVXBkYXRlVHlwZUZpZWxkcyA9XG4gICAgICBpc1VwZGF0ZUVuYWJsZWQgJiYgY2xhc3NHcmFwaFFMVXBkYXRlVHlwZSA/IGNsYXNzR3JhcGhRTFVwZGF0ZVR5cGUuZ2V0RmllbGRzKCkgOiBudWxsO1xuICAgIGNvbnN0IHByb21pc2VzID0gT2JqZWN0LmtleXMoZmllbGRzKS5tYXAoYXN5bmMgZmllbGQgPT4ge1xuICAgICAgbGV0IGlucHV0VHlwZUZpZWxkO1xuICAgICAgaWYgKGlucHV0VHlwZSA9PT0gJ2NyZWF0ZScgJiYgY2xhc3NHcmFwaFFMQ3JlYXRlVHlwZUZpZWxkcykge1xuICAgICAgICBpbnB1dFR5cGVGaWVsZCA9IGNsYXNzR3JhcGhRTENyZWF0ZVR5cGVGaWVsZHNbZmllbGRdO1xuICAgICAgfSBlbHNlIGlmIChjbGFzc0dyYXBoUUxVcGRhdGVUeXBlRmllbGRzKSB7XG4gICAgICAgIGlucHV0VHlwZUZpZWxkID0gY2xhc3NHcmFwaFFMVXBkYXRlVHlwZUZpZWxkc1tmaWVsZF07XG4gICAgICB9XG4gICAgICBpZiAoaW5wdXRUeXBlRmllbGQpIHtcbiAgICAgICAgY29uc3QgcGFyc2VGaWVsZFR5cGUgPSBwYXJzZUNsYXNzLmZpZWxkc1tmaWVsZF0udHlwZTtcbiAgICAgICAgc3dpdGNoIChwYXJzZUZpZWxkVHlwZSkge1xuICAgICAgICAgIGNhc2UgJ0dlb1BvaW50JzpcbiAgICAgICAgICAgIGlmIChmaWVsZHNbZmllbGRdID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGZpZWxkc1tmaWVsZF0gPSB7IF9fb3A6ICdEZWxldGUnIH07XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGRzW2ZpZWxkXSA9IHRyYW5zZm9ybWVycy5nZW9Qb2ludChmaWVsZHNbZmllbGRdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ1BvbHlnb24nOlxuICAgICAgICAgICAgaWYgKGZpZWxkc1tmaWVsZF0gPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgZmllbGRzW2ZpZWxkXSA9IHsgX19vcDogJ0RlbGV0ZScgfTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWVsZHNbZmllbGRdID0gdHJhbnNmb3JtZXJzLnBvbHlnb24oZmllbGRzW2ZpZWxkXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdGaWxlJzpcbiAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gdXNlIHRoZSBvcmlnaW5hbEZpZWxkcyB0byBoYW5kbGUgdGhlIGZpbGUgdXBsb2FkXG4gICAgICAgICAgICAvLyBzaW5jZSBmaWVsZHMgYXJlIGEgZGVlcGNvcHkgYW5kIGRvIG5vdCBrZWVwIHRoZSBmaWxlIG9iamVjdFxuICAgICAgICAgICAgZmllbGRzW2ZpZWxkXSA9IGF3YWl0IHRyYW5zZm9ybWVycy5maWxlKG9yaWdpbmFsRmllbGRzW2ZpZWxkXSwgcmVxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ1JlbGF0aW9uJzpcbiAgICAgICAgICAgIGZpZWxkc1tmaWVsZF0gPSBhd2FpdCB0cmFuc2Zvcm1lcnMucmVsYXRpb24oXG4gICAgICAgICAgICAgIHBhcnNlQ2xhc3MuZmllbGRzW2ZpZWxkXS50YXJnZXRDbGFzcyxcbiAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgIGZpZWxkc1tmaWVsZF0sXG4gICAgICAgICAgICAgIG9yaWdpbmFsRmllbGRzW2ZpZWxkXSxcbiAgICAgICAgICAgICAgcGFyc2VHcmFwaFFMU2NoZW1hLFxuICAgICAgICAgICAgICByZXFcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdQb2ludGVyJzpcbiAgICAgICAgICAgIGlmIChmaWVsZHNbZmllbGRdID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGZpZWxkc1tmaWVsZF0gPSB7IF9fb3A6ICdEZWxldGUnIH07XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGRzW2ZpZWxkXSA9IGF3YWl0IHRyYW5zZm9ybWVycy5wb2ludGVyKFxuICAgICAgICAgICAgICBwYXJzZUNsYXNzLmZpZWxkc1tmaWVsZF0udGFyZ2V0Q2xhc3MsXG4gICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICBmaWVsZHNbZmllbGRdLFxuICAgICAgICAgICAgICBvcmlnaW5hbEZpZWxkc1tmaWVsZF0sXG4gICAgICAgICAgICAgIHBhcnNlR3JhcGhRTFNjaGVtYSxcbiAgICAgICAgICAgICAgcmVxXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmIChmaWVsZHNbZmllbGRdID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGZpZWxkc1tmaWVsZF0gPSB7IF9fb3A6ICdEZWxldGUnIH07XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgIGlmIChmaWVsZHMuQUNMKSB7IGZpZWxkcy5BQ0wgPSB0cmFuc2Zvcm1lcnMuQUNMKGZpZWxkcy5BQ0wpOyB9XG4gIH1cbiAgcmV0dXJuIGZpZWxkcztcbn07XG5cbmNvbnN0IHRyYW5zZm9ybWVycyA9IHtcbiAgZmlsZTogYXN5bmMgKGlucHV0LCB7IGNvbmZpZyB9KSA9PiB7XG4gICAgaWYgKGlucHV0ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4geyBfX29wOiAnRGVsZXRlJyB9O1xuICAgIH1cbiAgICBjb25zdCB7IGZpbGUsIHVwbG9hZCB9ID0gaW5wdXQ7XG4gICAgaWYgKHVwbG9hZCkge1xuICAgICAgY29uc3QgeyBmaWxlSW5mbyB9ID0gYXdhaXQgaGFuZGxlVXBsb2FkKHVwbG9hZCwgY29uZmlnKTtcbiAgICAgIHJldHVybiB7IC4uLmZpbGVJbmZvLCBfX3R5cGU6ICdGaWxlJyB9O1xuICAgIH0gZWxzZSBpZiAoZmlsZSAmJiBmaWxlLm5hbWUpIHtcbiAgICAgIHJldHVybiB7IG5hbWU6IGZpbGUubmFtZSwgX190eXBlOiAnRmlsZScsIHVybDogZmlsZS51cmwgfTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLkZJTEVfU0FWRV9FUlJPUiwgJ0ludmFsaWQgZmlsZSB1cGxvYWQuJyk7XG4gIH0sXG4gIHBvbHlnb246IHZhbHVlID0+ICh7XG4gICAgX190eXBlOiAnUG9seWdvbicsXG4gICAgY29vcmRpbmF0ZXM6IHZhbHVlLm1hcChnZW9Qb2ludCA9PiBbZ2VvUG9pbnQubGF0aXR1ZGUsIGdlb1BvaW50LmxvbmdpdHVkZV0pLFxuICB9KSxcbiAgZ2VvUG9pbnQ6IHZhbHVlID0+ICh7XG4gICAgLi4udmFsdWUsXG4gICAgX190eXBlOiAnR2VvUG9pbnQnLFxuICB9KSxcbiAgQUNMOiB2YWx1ZSA9PiB7XG4gICAgY29uc3QgcGFyc2VBQ0wgPSB7fTtcbiAgICBpZiAodmFsdWUucHVibGljKSB7XG4gICAgICBwYXJzZUFDTFsnKiddID0ge1xuICAgICAgICByZWFkOiB2YWx1ZS5wdWJsaWMucmVhZCxcbiAgICAgICAgd3JpdGU6IHZhbHVlLnB1YmxpYy53cml0ZSxcbiAgICAgIH07XG4gICAgfVxuICAgIGlmICh2YWx1ZS51c2Vycykge1xuICAgICAgdmFsdWUudXNlcnMuZm9yRWFjaChydWxlID0+IHtcbiAgICAgICAgY29uc3QgZ2xvYmFsSWRPYmplY3QgPSBmcm9tR2xvYmFsSWQocnVsZS51c2VySWQpO1xuICAgICAgICBpZiAoZ2xvYmFsSWRPYmplY3QudHlwZSA9PT0gJ19Vc2VyJykge1xuICAgICAgICAgIHJ1bGUudXNlcklkID0gZ2xvYmFsSWRPYmplY3QuaWQ7XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VBQ0xbcnVsZS51c2VySWRdID0ge1xuICAgICAgICAgIHJlYWQ6IHJ1bGUucmVhZCxcbiAgICAgICAgICB3cml0ZTogcnVsZS53cml0ZSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodmFsdWUucm9sZXMpIHtcbiAgICAgIHZhbHVlLnJvbGVzLmZvckVhY2gocnVsZSA9PiB7XG4gICAgICAgIHBhcnNlQUNMW2Byb2xlOiR7cnVsZS5yb2xlTmFtZX1gXSA9IHtcbiAgICAgICAgICByZWFkOiBydWxlLnJlYWQsXG4gICAgICAgICAgd3JpdGU6IHJ1bGUud3JpdGUsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcnNlQUNMO1xuICB9LFxuICByZWxhdGlvbjogYXN5bmMgKFxuICAgIHRhcmdldENsYXNzLFxuICAgIGZpZWxkLFxuICAgIHZhbHVlLFxuICAgIG9yaWdpbmFsVmFsdWUsXG4gICAgcGFyc2VHcmFwaFFMU2NoZW1hLFxuICAgIHsgY29uZmlnLCBhdXRoLCBpbmZvIH1cbiAgKSA9PiB7XG4gICAgaWYgKE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDApXG4gICAgeyB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICBQYXJzZS5FcnJvci5JTlZBTElEX1BPSU5URVIsXG4gICAgICBgWW91IG5lZWQgdG8gcHJvdmlkZSBhdCBsZWFzdCBvbmUgb3BlcmF0aW9uIG9uIHRoZSByZWxhdGlvbiBtdXRhdGlvbiBvZiBmaWVsZCAke2ZpZWxkfWBcbiAgICApOyB9XG5cbiAgICBjb25zdCBvcCA9IHtcbiAgICAgIF9fb3A6ICdCYXRjaCcsXG4gICAgICBvcHM6IFtdLFxuICAgIH07XG4gICAgbGV0IG5lc3RlZE9iamVjdHNUb0FkZCA9IFtdO1xuXG4gICAgaWYgKHZhbHVlLmNyZWF0ZUFuZEFkZCkge1xuICAgICAgbmVzdGVkT2JqZWN0c1RvQWRkID0gKFxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICB2YWx1ZS5jcmVhdGVBbmRBZGQubWFwKGFzeW5jIChpbnB1dCwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VGaWVsZHMgPSBhd2FpdCB0cmFuc2Zvcm1UeXBlcygnY3JlYXRlJywgaW5wdXQsIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0YXJnZXRDbGFzcyxcbiAgICAgICAgICAgICAgb3JpZ2luYWxGaWVsZHM6IG9yaWdpbmFsVmFsdWUuY3JlYXRlQW5kQWRkW2ldLFxuICAgICAgICAgICAgICBwYXJzZUdyYXBoUUxTY2hlbWEsXG4gICAgICAgICAgICAgIHJlcTogeyBjb25maWcsIGF1dGgsIGluZm8gfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIG9iamVjdHNNdXRhdGlvbnMuY3JlYXRlT2JqZWN0KHRhcmdldENsYXNzLCBwYXJzZUZpZWxkcywgY29uZmlnLCBhdXRoLCBpbmZvKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApLm1hcChvYmplY3QgPT4gKHtcbiAgICAgICAgX190eXBlOiAnUG9pbnRlcicsXG4gICAgICAgIGNsYXNzTmFtZTogdGFyZ2V0Q2xhc3MsXG4gICAgICAgIG9iamVjdElkOiBvYmplY3Qub2JqZWN0SWQsXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlLmFkZCB8fCBuZXN0ZWRPYmplY3RzVG9BZGQubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKCF2YWx1ZS5hZGQpIHsgdmFsdWUuYWRkID0gW107IH1cbiAgICAgIHZhbHVlLmFkZCA9IHZhbHVlLmFkZC5tYXAoaW5wdXQgPT4ge1xuICAgICAgICBjb25zdCBnbG9iYWxJZE9iamVjdCA9IGZyb21HbG9iYWxJZChpbnB1dCk7XG4gICAgICAgIGlmIChnbG9iYWxJZE9iamVjdC50eXBlID09PSB0YXJnZXRDbGFzcykge1xuICAgICAgICAgIGlucHV0ID0gZ2xvYmFsSWRPYmplY3QuaWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBfX3R5cGU6ICdQb2ludGVyJyxcbiAgICAgICAgICBjbGFzc05hbWU6IHRhcmdldENsYXNzLFxuICAgICAgICAgIG9iamVjdElkOiBpbnB1dCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgb3Aub3BzLnB1c2goe1xuICAgICAgICBfX29wOiAnQWRkUmVsYXRpb24nLFxuICAgICAgICBvYmplY3RzOiBbLi4udmFsdWUuYWRkLCAuLi5uZXN0ZWRPYmplY3RzVG9BZGRdLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlLnJlbW92ZSkge1xuICAgICAgb3Aub3BzLnB1c2goe1xuICAgICAgICBfX29wOiAnUmVtb3ZlUmVsYXRpb24nLFxuICAgICAgICBvYmplY3RzOiB2YWx1ZS5yZW1vdmUubWFwKGlucHV0ID0+IHtcbiAgICAgICAgICBjb25zdCBnbG9iYWxJZE9iamVjdCA9IGZyb21HbG9iYWxJZChpbnB1dCk7XG4gICAgICAgICAgaWYgKGdsb2JhbElkT2JqZWN0LnR5cGUgPT09IHRhcmdldENsYXNzKSB7XG4gICAgICAgICAgICBpbnB1dCA9IGdsb2JhbElkT2JqZWN0LmlkO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgX190eXBlOiAnUG9pbnRlcicsXG4gICAgICAgICAgICBjbGFzc05hbWU6IHRhcmdldENsYXNzLFxuICAgICAgICAgICAgb2JqZWN0SWQ6IGlucHV0LFxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBvcDtcbiAgfSxcbiAgcG9pbnRlcjogYXN5bmMgKFxuICAgIHRhcmdldENsYXNzLFxuICAgIGZpZWxkLFxuICAgIHZhbHVlLFxuICAgIG9yaWdpbmFsVmFsdWUsXG4gICAgcGFyc2VHcmFwaFFMU2NoZW1hLFxuICAgIHsgY29uZmlnLCBhdXRoLCBpbmZvIH1cbiAgKSA9PiB7XG4gICAgaWYgKE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPiAxIHx8IE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDApXG4gICAgeyB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICBQYXJzZS5FcnJvci5JTlZBTElEX1BPSU5URVIsXG4gICAgICBgWW91IG5lZWQgdG8gcHJvdmlkZSBsaW5rIE9SIGNyZWF0ZUxpbmsgb24gdGhlIHBvaW50ZXIgbXV0YXRpb24gb2YgZmllbGQgJHtmaWVsZH1gXG4gICAgKTsgfVxuXG4gICAgbGV0IG5lc3RlZE9iamVjdFRvQWRkO1xuICAgIGlmICh2YWx1ZS5jcmVhdGVBbmRMaW5rKSB7XG4gICAgICBjb25zdCBwYXJzZUZpZWxkcyA9IGF3YWl0IHRyYW5zZm9ybVR5cGVzKCdjcmVhdGUnLCB2YWx1ZS5jcmVhdGVBbmRMaW5rLCB7XG4gICAgICAgIGNsYXNzTmFtZTogdGFyZ2V0Q2xhc3MsXG4gICAgICAgIHBhcnNlR3JhcGhRTFNjaGVtYSxcbiAgICAgICAgb3JpZ2luYWxGaWVsZHM6IG9yaWdpbmFsVmFsdWUuY3JlYXRlQW5kTGluayxcbiAgICAgICAgcmVxOiB7IGNvbmZpZywgYXV0aCwgaW5mbyB9LFxuICAgICAgfSk7XG4gICAgICBuZXN0ZWRPYmplY3RUb0FkZCA9IGF3YWl0IG9iamVjdHNNdXRhdGlvbnMuY3JlYXRlT2JqZWN0KFxuICAgICAgICB0YXJnZXRDbGFzcyxcbiAgICAgICAgcGFyc2VGaWVsZHMsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgYXV0aCxcbiAgICAgICAgaW5mb1xuICAgICAgKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIF9fdHlwZTogJ1BvaW50ZXInLFxuICAgICAgICBjbGFzc05hbWU6IHRhcmdldENsYXNzLFxuICAgICAgICBvYmplY3RJZDogbmVzdGVkT2JqZWN0VG9BZGQub2JqZWN0SWQsXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAodmFsdWUubGluaykge1xuICAgICAgbGV0IG9iamVjdElkID0gdmFsdWUubGluaztcbiAgICAgIGNvbnN0IGdsb2JhbElkT2JqZWN0ID0gZnJvbUdsb2JhbElkKG9iamVjdElkKTtcbiAgICAgIGlmIChnbG9iYWxJZE9iamVjdC50eXBlID09PSB0YXJnZXRDbGFzcykge1xuICAgICAgICBvYmplY3RJZCA9IGdsb2JhbElkT2JqZWN0LmlkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgX190eXBlOiAnUG9pbnRlcicsXG4gICAgICAgIGNsYXNzTmFtZTogdGFyZ2V0Q2xhc3MsXG4gICAgICAgIG9iamVjdElkLFxuICAgICAgfTtcbiAgICB9XG4gIH0sXG59O1xuXG5leHBvcnQgeyB0cmFuc2Zvcm1UeXBlcyB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxhQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxlQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxnQkFBQSxHQUFBQyx1QkFBQSxDQUFBSixPQUFBO0FBQWdFLFNBQUFJLHdCQUFBQyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSCx1QkFBQSxZQUFBQSxDQUFBQyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxD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
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.transformOutputTypeToGraphQL = void 0;
|
|
7
|
+
var defaultGraphQLTypes = _interopRequireWildcard(require("../loaders/defaultGraphQLTypes"));
|
|
8
|
+
var _graphql = require("graphql");
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
10
|
+
const transformOutputTypeToGraphQL = (parseType, targetClass, parseClassTypes) => {
|
|
11
|
+
switch (parseType) {
|
|
12
|
+
case 'String':
|
|
13
|
+
return _graphql.GraphQLString;
|
|
14
|
+
case 'Number':
|
|
15
|
+
return _graphql.GraphQLFloat;
|
|
16
|
+
case 'Boolean':
|
|
17
|
+
return _graphql.GraphQLBoolean;
|
|
18
|
+
case 'Array':
|
|
19
|
+
return new _graphql.GraphQLList(defaultGraphQLTypes.ARRAY_RESULT);
|
|
20
|
+
case 'Object':
|
|
21
|
+
return defaultGraphQLTypes.OBJECT;
|
|
22
|
+
case 'Date':
|
|
23
|
+
return defaultGraphQLTypes.DATE;
|
|
24
|
+
case 'Pointer':
|
|
25
|
+
if (parseClassTypes && parseClassTypes[targetClass] && parseClassTypes[targetClass].classGraphQLOutputType) {
|
|
26
|
+
return parseClassTypes[targetClass].classGraphQLOutputType;
|
|
27
|
+
} else {
|
|
28
|
+
return defaultGraphQLTypes.OBJECT;
|
|
29
|
+
}
|
|
30
|
+
case 'Relation':
|
|
31
|
+
if (parseClassTypes && parseClassTypes[targetClass] && parseClassTypes[targetClass].classGraphQLFindResultType) {
|
|
32
|
+
return new _graphql.GraphQLNonNull(parseClassTypes[targetClass].classGraphQLFindResultType);
|
|
33
|
+
} else {
|
|
34
|
+
return new _graphql.GraphQLNonNull(defaultGraphQLTypes.OBJECT);
|
|
35
|
+
}
|
|
36
|
+
case 'File':
|
|
37
|
+
return defaultGraphQLTypes.FILE_INFO;
|
|
38
|
+
case 'GeoPoint':
|
|
39
|
+
return defaultGraphQLTypes.GEO_POINT;
|
|
40
|
+
case 'Polygon':
|
|
41
|
+
return defaultGraphQLTypes.POLYGON;
|
|
42
|
+
case 'Bytes':
|
|
43
|
+
return defaultGraphQLTypes.BYTES;
|
|
44
|
+
case 'ACL':
|
|
45
|
+
return new _graphql.GraphQLNonNull(defaultGraphQLTypes.ACL);
|
|
46
|
+
default:
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
exports.transformOutputTypeToGraphQL = transformOutputTypeToGraphQL;
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWZhdWx0R3JhcGhRTFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2dyYXBocWwiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ0cmFuc2Zvcm1PdXRwdXRUeXBlVG9HcmFwaFFMIiwicGFyc2VUeXBlIiwidGFyZ2V0Q2xhc3MiLCJwYXJzZUNsYXNzVHlwZXMiLCJHcmFwaFFMU3RyaW5nIiwiR3JhcGhRTEZsb2F0IiwiR3JhcGhRTEJvb2xlYW4iLCJHcmFwaFFMTGlzdCIsIkFSUkFZX1JFU1VMVCIsIk9CSkVDVCIsIkRBVEUiLCJjbGFzc0dyYXBoUUxPdXRwdXRUeXBlIiwiY2xhc3NHcmFwaFFMRmluZFJlc3VsdFR5cGUiLCJHcmFwaFFMTm9uTnVsbCIsIkZJTEVfSU5GTyIsIkdFT19QT0lOVCIsIlBPTFlHT04iLCJCWVRFUyIsIkFDTCIsInVuZGVmaW5lZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvR3JhcGhRTC90cmFuc2Zvcm1lcnMvb3V0cHV0VHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBkZWZhdWx0R3JhcGhRTFR5cGVzIGZyb20gJy4uL2xvYWRlcnMvZGVmYXVsdEdyYXBoUUxUeXBlcyc7XG5pbXBvcnQgeyBHcmFwaFFMU3RyaW5nLCBHcmFwaFFMRmxvYXQsIEdyYXBoUUxCb29sZWFuLCBHcmFwaFFMTGlzdCwgR3JhcGhRTE5vbk51bGwgfSBmcm9tICdncmFwaHFsJztcblxuY29uc3QgdHJhbnNmb3JtT3V0cHV0VHlwZVRvR3JhcGhRTCA9IChwYXJzZVR5cGUsIHRhcmdldENsYXNzLCBwYXJzZUNsYXNzVHlwZXMpID0+IHtcbiAgc3dpdGNoIChwYXJzZVR5cGUpIHtcbiAgICBjYXNlICdTdHJpbmcnOlxuICAgICAgcmV0dXJuIEdyYXBoUUxTdHJpbmc7XG4gICAgY2FzZSAnTnVtYmVyJzpcbiAgICAgIHJldHVybiBHcmFwaFFMRmxvYXQ7XG4gICAgY2FzZSAnQm9vbGVhbic6XG4gICAgICByZXR1cm4gR3JhcGhRTEJvb2xlYW47XG4gICAgY2FzZSAnQXJyYXknOlxuICAgICAgcmV0dXJuIG5ldyBHcmFwaFFMTGlzdChkZWZhdWx0R3JhcGhRTFR5cGVzLkFSUkFZX1JFU1VMVCk7XG4gICAgY2FzZSAnT2JqZWN0JzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLk9CSkVDVDtcbiAgICBjYXNlICdEYXRlJzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLkRBVEU7XG4gICAgY2FzZSAnUG9pbnRlcic6XG4gICAgICBpZiAoXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlcyAmJlxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdICYmXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10uY2xhc3NHcmFwaFFMT3V0cHV0VHlwZVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdLmNsYXNzR3JhcGhRTE91dHB1dFR5cGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5PQkpFQ1Q7XG4gICAgICB9XG4gICAgY2FzZSAnUmVsYXRpb24nOlxuICAgICAgaWYgKFxuICAgICAgICBwYXJzZUNsYXNzVHlwZXMgJiZcbiAgICAgICAgcGFyc2VDbGFzc1R5cGVzW3RhcmdldENsYXNzXSAmJlxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdLmNsYXNzR3JhcGhRTEZpbmRSZXN1bHRUeXBlXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG5ldyBHcmFwaFFMTm9uTnVsbChwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdLmNsYXNzR3JhcGhRTEZpbmRSZXN1bHRUeXBlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgR3JhcGhRTE5vbk51bGwoZGVmYXVsdEdyYXBoUUxUeXBlcy5PQkpFQ1QpO1xuICAgICAgfVxuICAgIGNhc2UgJ0ZpbGUnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuRklMRV9JTkZPO1xuICAgIGNhc2UgJ0dlb1BvaW50JzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLkdFT19QT0lOVDtcbiAgICBjYXNlICdQb2x5Z29uJzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLlBPTFlHT047XG4gICAgY2FzZSAnQnl0ZXMnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuQllURVM7XG4gICAgY2FzZSAnQUNMJzpcbiAgICAgIHJldHVybiBuZXcgR3JhcGhRTE5vbk51bGwoZGVmYXVsdEdyYXBoUUxUeXBlcy5BQ0wpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuXG5leHBvcnQgeyB0cmFuc2Zvcm1PdXRwdXRUeXBlVG9HcmFwaFFMIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLG1CQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFBbUcsU0FBQUQsd0JBQUFHLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFMLHVCQUFBLFlBQUFBLENBQUFHLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxR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
|