@beiguancyc/parse-server 9.9.0-ruixiang.1

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.
Files changed (251) hide show
  1. package/LICENSE +176 -0
  2. package/NOTICE +10 -0
  3. package/README.md +1311 -0
  4. package/bin/parse-live-query-server +3 -0
  5. package/bin/parse-server +3 -0
  6. package/lib/AccountLockout.js +149 -0
  7. package/lib/Adapters/AdapterLoader.js +60 -0
  8. package/lib/Adapters/Analytics/AnalyticsAdapter.js +32 -0
  9. package/lib/Adapters/Auth/AuthAdapter.js +132 -0
  10. package/lib/Adapters/Auth/BaseCodeAuthAdapter.js +119 -0
  11. package/lib/Adapters/Auth/OAuth1Client.js +204 -0
  12. package/lib/Adapters/Auth/apple.js +125 -0
  13. package/lib/Adapters/Auth/facebook.js +187 -0
  14. package/lib/Adapters/Auth/gcenter.js +217 -0
  15. package/lib/Adapters/Auth/github.js +125 -0
  16. package/lib/Adapters/Auth/google.js +122 -0
  17. package/lib/Adapters/Auth/gpgames.js +125 -0
  18. package/lib/Adapters/Auth/httpsRequest.js +41 -0
  19. package/lib/Adapters/Auth/index.js +248 -0
  20. package/lib/Adapters/Auth/instagram.js +118 -0
  21. package/lib/Adapters/Auth/janraincapture.js +85 -0
  22. package/lib/Adapters/Auth/janrainengage.js +57 -0
  23. package/lib/Adapters/Auth/keycloak.js +168 -0
  24. package/lib/Adapters/Auth/ldap.js +193 -0
  25. package/lib/Adapters/Auth/line.js +125 -0
  26. package/lib/Adapters/Auth/linkedin.js +117 -0
  27. package/lib/Adapters/Auth/meetup.js +44 -0
  28. package/lib/Adapters/Auth/mfa.js +334 -0
  29. package/lib/Adapters/Auth/microsoft.js +111 -0
  30. package/lib/Adapters/Auth/oauth2.js +115 -0
  31. package/lib/Adapters/Auth/phantauth.js +53 -0
  32. package/lib/Adapters/Auth/qq.js +113 -0
  33. package/lib/Adapters/Auth/spotify.js +115 -0
  34. package/lib/Adapters/Auth/twitter.js +197 -0
  35. package/lib/Adapters/Auth/utils.js +28 -0
  36. package/lib/Adapters/Auth/vkontakte.js +55 -0
  37. package/lib/Adapters/Auth/wechat.js +110 -0
  38. package/lib/Adapters/Auth/weibo.js +141 -0
  39. package/lib/Adapters/Cache/CacheAdapter.js +40 -0
  40. package/lib/Adapters/Cache/InMemoryCache.js +61 -0
  41. package/lib/Adapters/Cache/InMemoryCacheAdapter.js +34 -0
  42. package/lib/Adapters/Cache/LRUCache.js +35 -0
  43. package/lib/Adapters/Cache/NullCacheAdapter.js +26 -0
  44. package/lib/Adapters/Cache/RedisCacheAdapter.js +109 -0
  45. package/lib/Adapters/Cache/SchemaCache.js +25 -0
  46. package/lib/Adapters/Email/MailAdapter.js +32 -0
  47. package/lib/Adapters/Files/FilesAdapter.js +129 -0
  48. package/lib/Adapters/Files/GridFSBucketAdapter.js +280 -0
  49. package/lib/Adapters/Files/GridStoreAdapter.js +5 -0
  50. package/lib/Adapters/Logger/LoggerAdapter.js +27 -0
  51. package/lib/Adapters/Logger/WinstonLogger.js +107 -0
  52. package/lib/Adapters/Logger/WinstonLoggerAdapter.js +63 -0
  53. package/lib/Adapters/MessageQueue/EventEmitterMQ.js +55 -0
  54. package/lib/Adapters/PubSub/EventEmitterPubSub.js +53 -0
  55. package/lib/Adapters/PubSub/PubSubAdapter.js +34 -0
  56. package/lib/Adapters/PubSub/RedisPubSub.js +49 -0
  57. package/lib/Adapters/Push/PushAdapter.js +40 -0
  58. package/lib/Adapters/Storage/Mongo/MongoCollection.js +212 -0
  59. package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +334 -0
  60. package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +1047 -0
  61. package/lib/Adapters/Storage/Mongo/MongoTransform.js +1397 -0
  62. package/lib/Adapters/Storage/Postgres/PostgresClient.js +38 -0
  63. package/lib/Adapters/Storage/Postgres/PostgresConfigParser.js +73 -0
  64. package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +2409 -0
  65. package/lib/Adapters/Storage/Postgres/sql/array/add-unique.sql +11 -0
  66. package/lib/Adapters/Storage/Postgres/sql/array/add.sql +11 -0
  67. package/lib/Adapters/Storage/Postgres/sql/array/contains-all-regex.sql +14 -0
  68. package/lib/Adapters/Storage/Postgres/sql/array/contains-all.sql +14 -0
  69. package/lib/Adapters/Storage/Postgres/sql/array/contains.sql +11 -0
  70. package/lib/Adapters/Storage/Postgres/sql/array/remove.sql +11 -0
  71. package/lib/Adapters/Storage/Postgres/sql/index.js +32 -0
  72. package/lib/Adapters/Storage/Postgres/sql/misc/json-object-set-keys.sql +19 -0
  73. package/lib/Adapters/Storage/StorageAdapter.js +2 -0
  74. package/lib/Adapters/WebSocketServer/WSAdapter.js +35 -0
  75. package/lib/Adapters/WebSocketServer/WSSAdapter.js +66 -0
  76. package/lib/Auth.js +687 -0
  77. package/lib/AuthDataLock.js +53 -0
  78. package/lib/ClientSDK.js +39 -0
  79. package/lib/Config.js +879 -0
  80. package/lib/Controllers/AdaptableController.js +72 -0
  81. package/lib/Controllers/AnalyticsController.js +43 -0
  82. package/lib/Controllers/CacheController.js +71 -0
  83. package/lib/Controllers/DatabaseController.js +1685 -0
  84. package/lib/Controllers/FilesController.js +122 -0
  85. package/lib/Controllers/HooksController.js +254 -0
  86. package/lib/Controllers/LiveQueryController.js +72 -0
  87. package/lib/Controllers/LoggerController.js +222 -0
  88. package/lib/Controllers/ParseGraphQLController.js +294 -0
  89. package/lib/Controllers/PushController.js +224 -0
  90. package/lib/Controllers/SchemaController.js +1563 -0
  91. package/lib/Controllers/UserController.js +364 -0
  92. package/lib/Controllers/index.js +251 -0
  93. package/lib/Controllers/types.js +2 -0
  94. package/lib/Deprecator/Deprecations.js +100 -0
  95. package/lib/Deprecator/Deprecator.js +140 -0
  96. package/lib/Error.js +50 -0
  97. package/lib/FileUrlValidator.js +69 -0
  98. package/lib/GraphQL/ParseGraphQLSchema.js +375 -0
  99. package/lib/GraphQL/ParseGraphQLServer.js +241 -0
  100. package/lib/GraphQL/helpers/objectsMutations.js +30 -0
  101. package/lib/GraphQL/helpers/objectsQueries.js +246 -0
  102. package/lib/GraphQL/helpers/queryComplexity.js +138 -0
  103. package/lib/GraphQL/loaders/configMutations.js +87 -0
  104. package/lib/GraphQL/loaders/configQueries.js +79 -0
  105. package/lib/GraphQL/loaders/defaultGraphQLMutations.js +21 -0
  106. package/lib/GraphQL/loaders/defaultGraphQLQueries.js +23 -0
  107. package/lib/GraphQL/loaders/defaultGraphQLTypes.js +1099 -0
  108. package/lib/GraphQL/loaders/defaultRelaySchema.js +53 -0
  109. package/lib/GraphQL/loaders/filesMutations.js +107 -0
  110. package/lib/GraphQL/loaders/functionsMutations.js +77 -0
  111. package/lib/GraphQL/loaders/parseClassMutations.js +267 -0
  112. package/lib/GraphQL/loaders/parseClassQueries.js +126 -0
  113. package/lib/GraphQL/loaders/parseClassTypes.js +493 -0
  114. package/lib/GraphQL/loaders/schemaDirectives.js +62 -0
  115. package/lib/GraphQL/loaders/schemaMutations.js +161 -0
  116. package/lib/GraphQL/loaders/schemaQueries.js +80 -0
  117. package/lib/GraphQL/loaders/schemaTypes.js +341 -0
  118. package/lib/GraphQL/loaders/usersMutations.js +433 -0
  119. package/lib/GraphQL/loaders/usersQueries.js +90 -0
  120. package/lib/GraphQL/parseGraphQLUtils.js +71 -0
  121. package/lib/GraphQL/transformers/className.js +14 -0
  122. package/lib/GraphQL/transformers/constraintType.js +53 -0
  123. package/lib/GraphQL/transformers/inputType.js +51 -0
  124. package/lib/GraphQL/transformers/mutation.js +280 -0
  125. package/lib/GraphQL/transformers/outputType.js +51 -0
  126. package/lib/GraphQL/transformers/query.js +237 -0
  127. package/lib/GraphQL/transformers/schemaFields.js +99 -0
  128. package/lib/InstallationDedup.js +178 -0
  129. package/lib/KeyPromiseQueue.js +48 -0
  130. package/lib/LiveQuery/Client.js +90 -0
  131. package/lib/LiveQuery/Id.js +20 -0
  132. package/lib/LiveQuery/ParseCloudCodePublisher.js +54 -0
  133. package/lib/LiveQuery/ParseLiveQueryServer.js +1071 -0
  134. package/lib/LiveQuery/ParsePubSub.js +37 -0
  135. package/lib/LiveQuery/ParseWebSocketServer.js +66 -0
  136. package/lib/LiveQuery/QueryTools.js +443 -0
  137. package/lib/LiveQuery/RequestSchema.js +161 -0
  138. package/lib/LiveQuery/SessionTokenCache.js +51 -0
  139. package/lib/LiveQuery/Subscription.js +47 -0
  140. package/lib/LiveQuery/equalObjects.js +50 -0
  141. package/lib/Options/Definitions.js +1599 -0
  142. package/lib/Options/docs.js +389 -0
  143. package/lib/Options/index.js +12 -0
  144. package/lib/Options/parsers.js +89 -0
  145. package/lib/Page.js +44 -0
  146. package/lib/ParseMessageQueue.js +24 -0
  147. package/lib/ParseServer.js +632 -0
  148. package/lib/ParseServerRESTController.js +173 -0
  149. package/lib/PromiseRouter.js +208 -0
  150. package/lib/Push/PushQueue.js +67 -0
  151. package/lib/Push/PushWorker.js +101 -0
  152. package/lib/Push/utils.js +129 -0
  153. package/lib/RestQuery.js +1208 -0
  154. package/lib/RestWrite.js +1671 -0
  155. package/lib/Routers/AggregateRouter.js +150 -0
  156. package/lib/Routers/AnalyticsRouter.js +26 -0
  157. package/lib/Routers/AudiencesRouter.js +54 -0
  158. package/lib/Routers/ClassesRouter.js +191 -0
  159. package/lib/Routers/CloudCodeRouter.js +87 -0
  160. package/lib/Routers/FeaturesRouter.js +72 -0
  161. package/lib/Routers/FilesRouter.js +772 -0
  162. package/lib/Routers/FunctionsRouter.js +341 -0
  163. package/lib/Routers/GlobalConfigRouter.js +123 -0
  164. package/lib/Routers/GraphQLRouter.js +41 -0
  165. package/lib/Routers/HooksRouter.js +121 -0
  166. package/lib/Routers/IAPValidationRouter.js +113 -0
  167. package/lib/Routers/InstallationsRouter.js +46 -0
  168. package/lib/Routers/LogsRouter.js +57 -0
  169. package/lib/Routers/PagesRouter.js +676 -0
  170. package/lib/Routers/PurgeRouter.js +45 -0
  171. package/lib/Routers/PushRouter.js +75 -0
  172. package/lib/Routers/RolesRouter.js +33 -0
  173. package/lib/Routers/SchemasRouter.js +118 -0
  174. package/lib/Routers/SecurityRouter.js +34 -0
  175. package/lib/Routers/SessionsRouter.js +126 -0
  176. package/lib/Routers/UsersRouter.js +733 -0
  177. package/lib/SchemaMigrations/DefinedSchemas.js +379 -0
  178. package/lib/SchemaMigrations/Migrations.js +30 -0
  179. package/lib/Security/Check.js +109 -0
  180. package/lib/Security/CheckGroup.js +44 -0
  181. package/lib/Security/CheckGroups/CheckGroupDatabase.js +44 -0
  182. package/lib/Security/CheckGroups/CheckGroupServerConfig.js +160 -0
  183. package/lib/Security/CheckGroups/CheckGroups.js +21 -0
  184. package/lib/Security/CheckRunner.js +213 -0
  185. package/lib/SharedRest.js +34 -0
  186. package/lib/StatusHandler.js +329 -0
  187. package/lib/TestUtils.js +87 -0
  188. package/lib/Utils.js +577 -0
  189. package/lib/batch.js +185 -0
  190. package/lib/cache.js +12 -0
  191. package/lib/cli/definitions/parse-live-query-server.js +9 -0
  192. package/lib/cli/definitions/parse-server.js +9 -0
  193. package/lib/cli/parse-live-query-server.js +14 -0
  194. package/lib/cli/parse-server.js +101 -0
  195. package/lib/cli/utils/commander.js +132 -0
  196. package/lib/cli/utils/runner.js +53 -0
  197. package/lib/cloud-code/Parse.Cloud.js +797 -0
  198. package/lib/cloud-code/Parse.Server.js +21 -0
  199. package/lib/cryptoUtils.js +54 -0
  200. package/lib/defaults.js +58 -0
  201. package/lib/deprecated.js +12 -0
  202. package/lib/index.js +89 -0
  203. package/lib/logger.js +40 -0
  204. package/lib/middlewares.js +810 -0
  205. package/lib/password.js +40 -0
  206. package/lib/request.js +175 -0
  207. package/lib/requiredParameter.js +11 -0
  208. package/lib/rest.js +264 -0
  209. package/lib/triggers.js +949 -0
  210. package/lib/vendor/README.md +8 -0
  211. package/lib/vendor/mongodbUrl.js +1012 -0
  212. package/package.json +172 -0
  213. package/postinstall.js +38 -0
  214. package/public/custom_json.html +17 -0
  215. package/public/custom_json.json +23 -0
  216. package/public/custom_page.html +15 -0
  217. package/public/de/email_verification_link_expired.html +24 -0
  218. package/public/de/email_verification_link_invalid.html +21 -0
  219. package/public/de/email_verification_send_fail.html +21 -0
  220. package/public/de/email_verification_send_success.html +19 -0
  221. package/public/de/email_verification_success.html +18 -0
  222. package/public/de/password_reset.html +65 -0
  223. package/public/de/password_reset_link_invalid.html +19 -0
  224. package/public/de/password_reset_success.html +18 -0
  225. package/public/de-AT/email_verification_link_expired.html +24 -0
  226. package/public/de-AT/email_verification_link_invalid.html +21 -0
  227. package/public/de-AT/email_verification_send_fail.html +21 -0
  228. package/public/de-AT/email_verification_send_success.html +19 -0
  229. package/public/de-AT/email_verification_success.html +18 -0
  230. package/public/de-AT/password_reset.html +65 -0
  231. package/public/de-AT/password_reset_link_invalid.html +19 -0
  232. package/public/de-AT/password_reset_success.html +18 -0
  233. package/public/email_verification_link_expired.html +24 -0
  234. package/public/email_verification_link_invalid.html +21 -0
  235. package/public/email_verification_send_fail.html +21 -0
  236. package/public/email_verification_send_success.html +19 -0
  237. package/public/email_verification_success.html +18 -0
  238. package/public/password_reset.html +65 -0
  239. package/public/password_reset_link_invalid.html +19 -0
  240. package/public/password_reset_success.html +18 -0
  241. package/types/@types/@parse/fs-files-adapter/index.d.ts +5 -0
  242. package/types/@types/deepcopy/index.d.ts +5 -0
  243. package/types/LiveQuery/ParseLiveQueryServer.d.ts +40 -0
  244. package/types/Options/index.d.ts +320 -0
  245. package/types/ParseServer.d.ts +65 -0
  246. package/types/eslint.config.mjs +30 -0
  247. package/types/index.d.ts +21 -0
  248. package/types/logger.d.ts +2 -0
  249. package/types/tests.ts +44 -0
  250. package/types/tsconfig.json +24 -0
  251. package/views/choose_password +215 -0
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.cloneArgs = cloneArgs;
7
+ exports.enforceMasterKeyAccess = enforceMasterKeyAccess;
8
+ exports.getParseClassMutationConfig = exports.extractKeysAndInclude = void 0;
9
+ exports.toGraphQLError = toGraphQLError;
10
+ var _node = _interopRequireDefault(require("parse/node"));
11
+ var _graphql = require("graphql");
12
+ var _Error = require("../Error");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ function enforceMasterKeyAccess(auth, config) {
15
+ if (!auth.isMaster) {
16
+ throw (0, _Error.createSanitizedError)(_node.default.Error.OPERATION_FORBIDDEN, 'unauthorized: master key is required', config);
17
+ }
18
+ }
19
+ function toGraphQLError(error) {
20
+ let code, message;
21
+ if (error instanceof _node.default.Error) {
22
+ code = error.code;
23
+ message = error.message;
24
+ } else {
25
+ code = _node.default.Error.INTERNAL_SERVER_ERROR;
26
+ message = 'Internal server error';
27
+ }
28
+ return new _graphql.GraphQLError(message, {
29
+ extensions: {
30
+ code
31
+ }
32
+ });
33
+ }
34
+ const extractKeysAndInclude = selectedFields => {
35
+ selectedFields = selectedFields.filter(field => !field.includes('__typename'));
36
+ // Handles "id" field for both current and included objects
37
+ selectedFields = selectedFields.map(field => {
38
+ if (field === 'id') {
39
+ return 'objectId';
40
+ }
41
+ return field.endsWith('.id') ? `${field.substring(0, field.lastIndexOf('.id'))}.objectId` : field;
42
+ });
43
+ let keys = undefined;
44
+ let include = undefined;
45
+ if (selectedFields.length > 0) {
46
+ keys = [...new Set(selectedFields)].join(',');
47
+ // We can use this shortcut since optimization is handled
48
+ // later on RestQuery, avoid overhead here.
49
+ include = keys;
50
+ }
51
+ return {
52
+ // If authData is detected keys will not work properly
53
+ // since authData has a special storage behavior
54
+ // so we need to skip keys currently
55
+ keys: keys && keys.indexOf('authData') === -1 ? keys : undefined,
56
+ include
57
+ };
58
+ };
59
+ exports.extractKeysAndInclude = extractKeysAndInclude;
60
+ const getParseClassMutationConfig = function (parseClassConfig) {
61
+ return parseClassConfig && parseClassConfig.mutation || {};
62
+ };
63
+ exports.getParseClassMutationConfig = getParseClassMutationConfig;
64
+ function cloneArgs(args) {
65
+ try {
66
+ return structuredClone(args);
67
+ } catch {
68
+ return JSON.parse(JSON.stringify(args));
69
+ }
70
+ }
71
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2dyYXBocWwiLCJfRXJyb3IiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJlbmZvcmNlTWFzdGVyS2V5QWNjZXNzIiwiYXV0aCIsImNvbmZpZyIsImlzTWFzdGVyIiwiY3JlYXRlU2FuaXRpemVkRXJyb3IiLCJQYXJzZSIsIkVycm9yIiwiT1BFUkFUSU9OX0ZPUkJJRERFTiIsInRvR3JhcGhRTEVycm9yIiwiZXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsIkdyYXBoUUxFcnJvciIsImV4dGVuc2lvbnMiLCJleHRyYWN0S2V5c0FuZEluY2x1ZGUiLCJzZWxlY3RlZEZpZWxkcyIsImZpbHRlciIsImZpZWxkIiwiaW5jbHVkZXMiLCJtYXAiLCJlbmRzV2l0aCIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwia2V5cyIsInVuZGVmaW5lZCIsImluY2x1ZGUiLCJsZW5ndGgiLCJTZXQiLCJqb2luIiwiaW5kZXhPZiIsImV4cG9ydHMiLCJnZXRQYXJzZUNsYXNzTXV0YXRpb25Db25maWciLCJwYXJzZUNsYXNzQ29uZmlnIiwibXV0YXRpb24iLCJjbG9uZUFyZ3MiLCJhcmdzIiwic3RydWN0dXJlZENsb25lIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL0dyYXBoUUwvcGFyc2VHcmFwaFFMVXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFBhcnNlIGZyb20gJ3BhcnNlL25vZGUnO1xuaW1wb3J0IHsgR3JhcGhRTEVycm9yIH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgeyBjcmVhdGVTYW5pdGl6ZWRFcnJvciB9IGZyb20gJy4uL0Vycm9yJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MoYXV0aCwgY29uZmlnKSB7XG4gIGlmICghYXV0aC5pc01hc3Rlcikge1xuICAgIHRocm93IGNyZWF0ZVNhbml0aXplZEVycm9yKFxuICAgICAgUGFyc2UuRXJyb3IuT1BFUkFUSU9OX0ZPUkJJRERFTixcbiAgICAgICd1bmF1dGhvcml6ZWQ6IG1hc3RlciBrZXkgaXMgcmVxdWlyZWQnLFxuICAgICAgY29uZmlnXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9HcmFwaFFMRXJyb3IoZXJyb3IpIHtcbiAgbGV0IGNvZGUsIG1lc3NhZ2U7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIFBhcnNlLkVycm9yKSB7XG4gICAgY29kZSA9IGVycm9yLmNvZGU7XG4gICAgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2U7XG4gIH0gZWxzZSB7XG4gICAgY29kZSA9IFBhcnNlLkVycm9yLklOVEVSTkFMX1NFUlZFUl9FUlJPUjtcbiAgICBtZXNzYWdlID0gJ0ludGVybmFsIHNlcnZlciBlcnJvcic7XG4gIH1cbiAgcmV0dXJuIG5ldyBHcmFwaFFMRXJyb3IobWVzc2FnZSwgeyBleHRlbnNpb25zOiB7IGNvZGUgfSB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RLZXlzQW5kSW5jbHVkZSA9IHNlbGVjdGVkRmllbGRzID0+IHtcbiAgc2VsZWN0ZWRGaWVsZHMgPSBzZWxlY3RlZEZpZWxkcy5maWx0ZXIoZmllbGQgPT4gIWZpZWxkLmluY2x1ZGVzKCdfX3R5cGVuYW1lJykpO1xuICAvLyBIYW5kbGVzIFwiaWRcIiBmaWVsZCBmb3IgYm90aCBjdXJyZW50IGFuZCBpbmNsdWRlZCBvYmplY3RzXG4gIHNlbGVjdGVkRmllbGRzID0gc2VsZWN0ZWRGaWVsZHMubWFwKGZpZWxkID0+IHtcbiAgICBpZiAoZmllbGQgPT09ICdpZCcpIHsgcmV0dXJuICdvYmplY3RJZCc7IH1cbiAgICByZXR1cm4gZmllbGQuZW5kc1dpdGgoJy5pZCcpXG4gICAgICA/IGAke2ZpZWxkLnN1YnN0cmluZygwLCBmaWVsZC5sYXN0SW5kZXhPZignLmlkJykpfS5vYmplY3RJZGBcbiAgICAgIDogZmllbGQ7XG4gIH0pO1xuICBsZXQga2V5cyA9IHVuZGVmaW5lZDtcbiAgbGV0IGluY2x1ZGUgPSB1bmRlZmluZWQ7XG5cbiAgaWYgKHNlbGVjdGVkRmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICBrZXlzID0gWy4uLm5ldyBTZXQoc2VsZWN0ZWRGaWVsZHMpXS5qb2luKCcsJyk7XG4gICAgLy8gV2UgY2FuIHVzZSB0aGlzIHNob3J0Y3V0IHNpbmNlIG9wdGltaXphdGlvbiBpcyBoYW5kbGVkXG4gICAgLy8gbGF0ZXIgb24gUmVzdFF1ZXJ5LCBhdm9pZCBvdmVyaGVhZCBoZXJlLlxuICAgIGluY2x1ZGUgPSBrZXlzO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBJZiBhdXRoRGF0YSBpcyBkZXRlY3RlZCBrZXlzIHdpbGwgbm90IHdvcmsgcHJvcGVybHlcbiAgICAvLyBzaW5jZSBhdXRoRGF0YSBoYXMgYSBzcGVjaWFsIHN0b3JhZ2UgYmVoYXZpb3JcbiAgICAvLyBzbyB3ZSBuZWVkIHRvIHNraXAga2V5cyBjdXJyZW50bHlcbiAgICBrZXlzOiBrZXlzICYmIGtleXMuaW5kZXhPZignYXV0aERhdGEnKSA9PT0gLTEgPyBrZXlzIDogdW5kZWZpbmVkLFxuICAgIGluY2x1ZGUsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UGFyc2VDbGFzc011dGF0aW9uQ29uZmlnID0gZnVuY3Rpb24gKHBhcnNlQ2xhc3NDb25maWcpIHtcbiAgcmV0dXJuIChwYXJzZUNsYXNzQ29uZmlnICYmIHBhcnNlQ2xhc3NDb25maWcubXV0YXRpb24pIHx8IHt9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNsb25lQXJncyhhcmdzKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHN0cnVjdHVyZWRDbG9uZShhcmdzKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYXJncykpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMs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
@@ -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,280 @@
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
+ if (file.url) {
118
+ const {
119
+ validateFileUrl
120
+ } = require('../../FileUrlValidator');
121
+ validateFileUrl(file.url, config);
122
+ }
123
+ return {
124
+ name: file.name,
125
+ __type: 'File',
126
+ url: file.url
127
+ };
128
+ }
129
+ throw new _node.default.Error(_node.default.Error.FILE_SAVE_ERROR, 'Invalid file upload.');
130
+ },
131
+ polygon: value => ({
132
+ __type: 'Polygon',
133
+ coordinates: value.map(geoPoint => [geoPoint.latitude, geoPoint.longitude])
134
+ }),
135
+ geoPoint: value => ({
136
+ ...value,
137
+ __type: 'GeoPoint'
138
+ }),
139
+ ACL: value => {
140
+ const parseACL = {};
141
+ if (value.public) {
142
+ parseACL['*'] = {
143
+ read: value.public.read,
144
+ write: value.public.write
145
+ };
146
+ }
147
+ if (value.users) {
148
+ value.users.forEach(rule => {
149
+ const globalIdObject = (0, _graphqlRelay.fromGlobalId)(rule.userId);
150
+ if (globalIdObject.type === '_User') {
151
+ rule.userId = globalIdObject.id;
152
+ }
153
+ parseACL[rule.userId] = {
154
+ read: rule.read,
155
+ write: rule.write
156
+ };
157
+ });
158
+ }
159
+ if (value.roles) {
160
+ value.roles.forEach(rule => {
161
+ parseACL[`role:${rule.roleName}`] = {
162
+ read: rule.read,
163
+ write: rule.write
164
+ };
165
+ });
166
+ }
167
+ return parseACL;
168
+ },
169
+ relation: async (targetClass, field, value, originalValue, parseGraphQLSchema, {
170
+ config,
171
+ auth,
172
+ info
173
+ }) => {
174
+ if (Object.keys(value).length === 0) {
175
+ 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}`);
176
+ }
177
+ const op = {
178
+ __op: 'Batch',
179
+ ops: []
180
+ };
181
+ let nestedObjectsToAdd = [];
182
+ if (value.createAndAdd) {
183
+ nestedObjectsToAdd = (await Promise.all(value.createAndAdd.map(async (input, i) => {
184
+ const parseFields = await transformTypes('create', input, {
185
+ className: targetClass,
186
+ originalFields: originalValue.createAndAdd[i],
187
+ parseGraphQLSchema,
188
+ req: {
189
+ config,
190
+ auth,
191
+ info
192
+ }
193
+ });
194
+ return objectsMutations.createObject(targetClass, parseFields, config, auth, info);
195
+ }))).map(object => ({
196
+ __type: 'Pointer',
197
+ className: targetClass,
198
+ objectId: object.objectId
199
+ }));
200
+ }
201
+ if (value.add || nestedObjectsToAdd.length > 0) {
202
+ if (!value.add) {
203
+ value.add = [];
204
+ }
205
+ value.add = value.add.map(input => {
206
+ const globalIdObject = (0, _graphqlRelay.fromGlobalId)(input);
207
+ if (globalIdObject.type === targetClass) {
208
+ input = globalIdObject.id;
209
+ }
210
+ return {
211
+ __type: 'Pointer',
212
+ className: targetClass,
213
+ objectId: input
214
+ };
215
+ });
216
+ op.ops.push({
217
+ __op: 'AddRelation',
218
+ objects: [...value.add, ...nestedObjectsToAdd]
219
+ });
220
+ }
221
+ if (value.remove) {
222
+ op.ops.push({
223
+ __op: 'RemoveRelation',
224
+ objects: value.remove.map(input => {
225
+ const globalIdObject = (0, _graphqlRelay.fromGlobalId)(input);
226
+ if (globalIdObject.type === targetClass) {
227
+ input = globalIdObject.id;
228
+ }
229
+ return {
230
+ __type: 'Pointer',
231
+ className: targetClass,
232
+ objectId: input
233
+ };
234
+ })
235
+ });
236
+ }
237
+ return op;
238
+ },
239
+ pointer: async (targetClass, field, value, originalValue, parseGraphQLSchema, {
240
+ config,
241
+ auth,
242
+ info
243
+ }) => {
244
+ if (Object.keys(value).length > 1 || Object.keys(value).length === 0) {
245
+ throw new _node.default.Error(_node.default.Error.INVALID_POINTER, `You need to provide link OR createLink on the pointer mutation of field ${field}`);
246
+ }
247
+ let nestedObjectToAdd;
248
+ if (value.createAndLink) {
249
+ const parseFields = await transformTypes('create', value.createAndLink, {
250
+ className: targetClass,
251
+ parseGraphQLSchema,
252
+ originalFields: originalValue.createAndLink,
253
+ req: {
254
+ config,
255
+ auth,
256
+ info
257
+ }
258
+ });
259
+ nestedObjectToAdd = await objectsMutations.createObject(targetClass, parseFields, config, auth, info);
260
+ return {
261
+ __type: 'Pointer',
262
+ className: targetClass,
263
+ objectId: nestedObjectToAdd.objectId
264
+ };
265
+ }
266
+ if (value.link) {
267
+ let objectId = value.link;
268
+ const globalIdObject = (0, _graphqlRelay.fromGlobalId)(objectId);
269
+ if (globalIdObject.type === targetClass) {
270
+ objectId = globalIdObject.id;
271
+ }
272
+ return {
273
+ __type: 'Pointer',
274
+ className: targetClass,
275
+ objectId
276
+ };
277
+ }
278
+ }
279
+ };
280
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2dyYXBocWxSZWxheSIsIl9maWxlc011dGF0aW9ucyIsIm9iamVjdHNNdXRhdGlvbnMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInRyYW5zZm9ybVR5cGVzIiwiaW5wdXRUeXBlIiwiZmllbGRzIiwiY2xhc3NOYW1lIiwicGFyc2VHcmFwaFFMU2NoZW1hIiwicmVxIiwib3JpZ2luYWxGaWVsZHMiLCJjbGFzc0dyYXBoUUxDcmVhdGVUeXBlIiwiY2xhc3NHcmFwaFFMVXBkYXRlVHlwZSIsImNvbmZpZyIsImlzQ3JlYXRlRW5hYmxlZCIsImlzVXBkYXRlRW5hYmxlZCIsInBhcnNlQ2xhc3NUeXBlcyIsInBhcnNlQ2xhc3MiLCJwYXJzZUNsYXNzZXMiLCJjbGFzc0dyYXBoUUxDcmVhdGVUeXBlRmllbGRzIiwiZ2V0RmllbGRzIiwiY2xhc3NHcmFwaFFMVXBkYXRlVHlwZUZpZWxkcyIsInByb21pc2VzIiwia2V5cyIsIm1hcCIsImZpZWxkIiwiaW5wdXRUeXBlRmllbGQiLCJwYXJzZUZpZWxkVHlwZSIsInR5cGUiLCJfX29wIiwidHJhbnNmb3JtZXJzIiwiZ2VvUG9pbnQiLCJwb2x5Z29uIiwiZmlsZSIsInJlbGF0aW9uIiwidGFyZ2V0Q2xhc3MiLCJwb2ludGVyIiwiUHJvbWlzZSIsImFsbCIsIkFDTCIsImV4cG9ydHMiLCJpbnB1dCIsInVwbG9hZCIsImZpbGVJbmZvIiwiaGFuZGxlVXBsb2FkIiwiX190eXBlIiwibmFtZSIsInVybCIsInZhbGlkYXRlRmlsZVVybCIsIlBhcnNlIiwiRXJyb3IiLCJGSUxFX1NBVkVfRVJST1IiLCJ2YWx1ZSIsImNvb3JkaW5hdGVzIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJwYXJzZUFDTCIsInB1YmxpYyIsInJlYWQiLCJ3cml0ZSIsInVzZXJzIiwiZm9yRWFjaCIsInJ1bGUiLCJnbG9iYWxJZE9iamVjdCIsImZyb21HbG9iYWxJZCIsInVzZXJJZCIsImlkIiwicm9sZXMiLCJyb2xlTmFtZSIsIm9yaWdpbmFsVmFsdWUiLCJhdXRoIiwiaW5mbyIsImxlbmd0aCIsIklOVkFMSURfUE9JTlRFUiIsIm9wIiwib3BzIiwibmVzdGVkT2JqZWN0c1RvQWRkIiwiY3JlYXRlQW5kQWRkIiwicGFyc2VGaWVsZHMiLCJjcmVhdGVPYmplY3QiLCJvYmplY3QiLCJvYmplY3RJZCIsImFkZCIsInB1c2giLCJvYmplY3RzIiwicmVtb3ZlIiwibmVzdGVkT2JqZWN0VG9BZGQiLCJjcmVhdGVBbmRMaW5rIiwibGluayJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9HcmFwaFFML3RyYW5zZm9ybWVycy9tdXRhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUGFyc2UgZnJvbSAncGFyc2Uvbm9kZSc7XG5pbXBvcnQgeyBmcm9tR2xvYmFsSWQgfSBmcm9tICdncmFwaHFsLXJlbGF5JztcbmltcG9ydCB7IGhhbmRsZVVwbG9hZCB9IGZyb20gJy4uL2xvYWRlcnMvZmlsZXNNdXRhdGlvbnMnO1xuaW1wb3J0ICogYXMgb2JqZWN0c011dGF0aW9ucyBmcm9tICcuLi9oZWxwZXJzL29iamVjdHNNdXRhdGlvbnMnO1xuXG5jb25zdCB0cmFuc2Zvcm1UeXBlcyA9IGFzeW5jIChcbiAgaW5wdXRUeXBlOiAnY3JlYXRlJyB8ICd1cGRhdGUnLFxuICBmaWVsZHMsXG4gIHsgY2xhc3NOYW1lLCBwYXJzZUdyYXBoUUxTY2hlbWEsIHJlcSwgb3JpZ2luYWxGaWVsZHMgfVxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjbGFzc0dyYXBoUUxDcmVhdGVUeXBlLFxuICAgIGNsYXNzR3JhcGhRTFVwZGF0ZVR5cGUsXG4gICAgY29uZmlnOiB7IGlzQ3JlYXRlRW5hYmxlZCwgaXNVcGRhdGVFbmFibGVkIH0sXG4gIH0gPSBwYXJzZUdyYXBoUUxTY2hlbWEucGFyc2VDbGFzc1R5cGVzW2NsYXNzTmFtZV07XG4gIGNvbnN0IHBhcnNlQ2xhc3MgPSBwYXJzZUdyYXBoUUxTY2hlbWEucGFyc2VDbGFzc2VzW2NsYXNzTmFtZV07XG4gIGlmIChmaWVsZHMpIHtcbiAgICBjb25zdCBjbGFzc0dyYXBoUUxDcmVhdGVUeXBlRmllbGRzID1cbiAgICAgIGlzQ3JlYXRlRW5hYmxlZCAmJiBjbGFzc0dyYXBoUUxDcmVhdGVUeXBlID8gY2xhc3NHcmFwaFFMQ3JlYXRlVHlwZS5nZXRGaWVsZHMoKSA6IG51bGw7XG4gICAgY29uc3QgY2xhc3NHcmFwaFFMVXBkYXRlVHlwZUZpZWxkcyA9XG4gICAgICBpc1VwZGF0ZUVuYWJsZWQgJiYgY2xhc3NHcmFwaFFMVXBkYXRlVHlwZSA/IGNsYXNzR3JhcGhRTFVwZGF0ZVR5cGUuZ2V0RmllbGRzKCkgOiBudWxsO1xuICAgIGNvbnN0IHByb21pc2VzID0gT2JqZWN0LmtleXMoZmllbGRzKS5tYXAoYXN5bmMgZmllbGQgPT4ge1xuICAgICAgbGV0IGlucHV0VHlwZUZpZWxkO1xuICAgICAgaWYgKGlucHV0VHlwZSA9PT0gJ2NyZWF0ZScgJiYgY2xhc3NHcmFwaFFMQ3JlYXRlVHlwZUZpZWxkcykge1xuICAgICAgICBpbnB1dFR5cGVGaWVsZCA9IGNsYXNzR3JhcGhRTENyZWF0ZVR5cGVGaWVsZHNbZmllbGRdO1xuICAgICAgfSBlbHNlIGlmIChjbGFzc0dyYXBoUUxVcGRhdGVUeXBlRmllbGRzKSB7XG4gICAgICAgIGlucHV0VHlwZUZpZWxkID0gY2xhc3NHcmFwaFFMVXBkYXRlVHlwZUZpZWxkc1tmaWVsZF07XG4gICAgICB9XG4gICAgICBpZiAoaW5wdXRUeXBlRmllbGQpIHtcbiAgICAgICAgY29uc3QgcGFyc2VGaWVsZFR5cGUgPSBwYXJzZUNsYXNzLmZpZWxkc1tmaWVsZF0udHlwZTtcbiAgICAgICAgc3dpdGNoIChwYXJzZUZpZWxkVHlwZSkge1xuICAgICAgICAgIGNhc2UgJ0dlb1BvaW50JzpcbiAgICAgICAgICAgIGlmIChmaWVsZHNbZmllbGRdID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGZpZWxkc1tmaWVsZF0gPSB7IF9fb3A6ICdEZWxldGUnIH07XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGRzW2ZpZWxkXSA9IHRyYW5zZm9ybWVycy5nZW9Qb2ludChmaWVsZHNbZmllbGRdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ1BvbHlnb24nOlxuICAgICAgICAgICAgaWYgKGZpZWxkc1tmaWVsZF0gPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgZmllbGRzW2ZpZWxkXSA9IHsgX19vcDogJ0RlbGV0ZScgfTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWVsZHNbZmllbGRdID0gdHJhbnNmb3JtZXJzLnBvbHlnb24oZmllbGRzW2ZpZWxkXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdGaWxlJzpcbiAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gdXNlIHRoZSBvcmlnaW5hbEZpZWxkcyB0byBoYW5kbGUgdGhlIGZpbGUgdXBsb2FkXG4gICAgICAgICAgICAvLyBzaW5jZSBmaWVsZHMgYXJlIGEgZGVlcGNvcHkgYW5kIGRvIG5vdCBrZWVwIHRoZSBmaWxlIG9iamVjdFxuICAgICAgICAgICAgZmllbGRzW2ZpZWxkXSA9IGF3YWl0IHRyYW5zZm9ybWVycy5maWxlKG9yaWdpbmFsRmllbGRzW2ZpZWxkXSwgcmVxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ1JlbGF0aW9uJzpcbiAgICAgICAgICAgIGZpZWxkc1tmaWVsZF0gPSBhd2FpdCB0cmFuc2Zvcm1lcnMucmVsYXRpb24oXG4gICAgICAgICAgICAgIHBhcnNlQ2xhc3MuZmllbGRzW2ZpZWxkXS50YXJnZXRDbGFzcyxcbiAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgIGZpZWxkc1tmaWVsZF0sXG4gICAgICAgICAgICAgIG9yaWdpbmFsRmllbGRzW2ZpZWxkXSxcbiAgICAgICAgICAgICAgcGFyc2VHcmFwaFFMU2NoZW1hLFxuICAgICAgICAgICAgICByZXFcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdQb2ludGVyJzpcbiAgICAgICAgICAgIGlmIChmaWVsZHNbZmllbGRdID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGZpZWxkc1tmaWVsZF0gPSB7IF9fb3A6ICdEZWxldGUnIH07XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGRzW2ZpZWxkXSA9IGF3YWl0IHRyYW5zZm9ybWVycy5wb2ludGVyKFxuICAgICAgICAgICAgICBwYXJzZUNsYXNzLmZpZWxkc1tmaWVsZF0udGFyZ2V0Q2xhc3MsXG4gICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICBmaWVsZHNbZmllbGRdLFxuICAgICAgICAgICAgICBvcmlnaW5hbEZpZWxkc1tmaWVsZF0sXG4gICAgICAgICAgICAgIHBhcnNlR3JhcGhRTFNjaGVtYSxcbiAgICAgICAgICAgICAgcmVxXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmIChmaWVsZHNbZmllbGRdID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGZpZWxkc1tmaWVsZF0gPSB7IF9fb3A6ICdEZWxldGUnIH07XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgIGlmIChmaWVsZHMuQUNMKSB7IGZpZWxkcy5BQ0wgPSB0cmFuc2Zvcm1lcnMuQUNMKGZpZWxkcy5BQ0wpOyB9XG4gIH1cbiAgcmV0dXJuIGZpZWxkcztcbn07XG5cbmNvbnN0IHRyYW5zZm9ybWVycyA9IHtcbiAgZmlsZTogYXN5bmMgKGlucHV0LCB7IGNvbmZpZyB9KSA9PiB7XG4gICAgaWYgKGlucHV0ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4geyBfX29wOiAnRGVsZXRlJyB9O1xuICAgIH1cbiAgICBjb25zdCB7IGZpbGUsIHVwbG9hZCB9ID0gaW5wdXQ7XG4gICAgaWYgKHVwbG9hZCkge1xuICAgICAgY29uc3QgeyBmaWxlSW5mbyB9ID0gYXdhaXQgaGFuZGxlVXBsb2FkKHVwbG9hZCwgY29uZmlnKTtcbiAgICAgIHJldHVybiB7IC4uLmZpbGVJbmZvLCBfX3R5cGU6ICdGaWxlJyB9O1xuICAgIH0gZWxzZSBpZiAoZmlsZSAmJiBmaWxlLm5hbWUpIHtcbiAgICAgIGlmIChmaWxlLnVybCkge1xuICAgICAgICBjb25zdCB7IHZhbGlkYXRlRmlsZVVybCB9ID0gcmVxdWlyZSgnLi4vLi4vRmlsZVVybFZhbGlkYXRvcicpO1xuICAgICAgICB2YWxpZGF0ZUZpbGVVcmwoZmlsZS51cmwsIGNvbmZpZyk7XG4gICAgICB9XG4gICAgICByZXR1cm4geyBuYW1lOiBmaWxlLm5hbWUsIF9fdHlwZTogJ0ZpbGUnLCB1cmw6IGZpbGUudXJsIH07XG4gICAgfVxuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5GSUxFX1NBVkVfRVJST1IsICdJbnZhbGlkIGZpbGUgdXBsb2FkLicpO1xuICB9LFxuICBwb2x5Z29uOiB2YWx1ZSA9PiAoe1xuICAgIF9fdHlwZTogJ1BvbHlnb24nLFxuICAgIGNvb3JkaW5hdGVzOiB2YWx1ZS5tYXAoZ2VvUG9pbnQgPT4gW2dlb1BvaW50LmxhdGl0dWRlLCBnZW9Qb2ludC5sb25naXR1ZGVdKSxcbiAgfSksXG4gIGdlb1BvaW50OiB2YWx1ZSA9PiAoe1xuICAgIC4uLnZhbHVlLFxuICAgIF9fdHlwZTogJ0dlb1BvaW50JyxcbiAgfSksXG4gIEFDTDogdmFsdWUgPT4ge1xuICAgIGNvbnN0IHBhcnNlQUNMID0ge307XG4gICAgaWYgKHZhbHVlLnB1YmxpYykge1xuICAgICAgcGFyc2VBQ0xbJyonXSA9IHtcbiAgICAgICAgcmVhZDogdmFsdWUucHVibGljLnJlYWQsXG4gICAgICAgIHdyaXRlOiB2YWx1ZS5wdWJsaWMud3JpdGUsXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAodmFsdWUudXNlcnMpIHtcbiAgICAgIHZhbHVlLnVzZXJzLmZvckVhY2gocnVsZSA9PiB7XG4gICAgICAgIGNvbnN0IGdsb2JhbElkT2JqZWN0ID0gZnJvbUdsb2JhbElkKHJ1bGUudXNlcklkKTtcbiAgICAgICAgaWYgKGdsb2JhbElkT2JqZWN0LnR5cGUgPT09ICdfVXNlcicpIHtcbiAgICAgICAgICBydWxlLnVzZXJJZCA9IGdsb2JhbElkT2JqZWN0LmlkO1xuICAgICAgICB9XG4gICAgICAgIHBhcnNlQUNMW3J1bGUudXNlcklkXSA9IHtcbiAgICAgICAgICByZWFkOiBydWxlLnJlYWQsXG4gICAgICAgICAgd3JpdGU6IHJ1bGUud3JpdGUsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLnJvbGVzKSB7XG4gICAgICB2YWx1ZS5yb2xlcy5mb3JFYWNoKHJ1bGUgPT4ge1xuICAgICAgICBwYXJzZUFDTFtgcm9sZToke3J1bGUucm9sZU5hbWV9YF0gPSB7XG4gICAgICAgICAgcmVhZDogcnVsZS5yZWFkLFxuICAgICAgICAgIHdyaXRlOiBydWxlLndyaXRlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBwYXJzZUFDTDtcbiAgfSxcbiAgcmVsYXRpb246IGFzeW5jIChcbiAgICB0YXJnZXRDbGFzcyxcbiAgICBmaWVsZCxcbiAgICB2YWx1ZSxcbiAgICBvcmlnaW5hbFZhbHVlLFxuICAgIHBhcnNlR3JhcGhRTFNjaGVtYSxcbiAgICB7IGNvbmZpZywgYXV0aCwgaW5mbyB9XG4gICkgPT4ge1xuICAgIGlmIChPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwKVxuICAgIHsgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgUGFyc2UuRXJyb3IuSU5WQUxJRF9QT0lOVEVSLFxuICAgICAgYFlvdSBuZWVkIHRvIHByb3ZpZGUgYXQgbGVhc3Qgb25lIG9wZXJhdGlvbiBvbiB0aGUgcmVsYXRpb24gbXV0YXRpb24gb2YgZmllbGQgJHtmaWVsZH1gXG4gICAgKTsgfVxuXG4gICAgY29uc3Qgb3AgPSB7XG4gICAgICBfX29wOiAnQmF0Y2gnLFxuICAgICAgb3BzOiBbXSxcbiAgICB9O1xuICAgIGxldCBuZXN0ZWRPYmplY3RzVG9BZGQgPSBbXTtcblxuICAgIGlmICh2YWx1ZS5jcmVhdGVBbmRBZGQpIHtcbiAgICAgIG5lc3RlZE9iamVjdHNUb0FkZCA9IChcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgdmFsdWUuY3JlYXRlQW5kQWRkLm1hcChhc3luYyAoaW5wdXQsIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlRmllbGRzID0gYXdhaXQgdHJhbnNmb3JtVHlwZXMoJ2NyZWF0ZScsIGlucHV0LCB7XG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogdGFyZ2V0Q2xhc3MsXG4gICAgICAgICAgICAgIG9yaWdpbmFsRmllbGRzOiBvcmlnaW5hbFZhbHVlLmNyZWF0ZUFuZEFkZFtpXSxcbiAgICAgICAgICAgICAgcGFyc2VHcmFwaFFMU2NoZW1hLFxuICAgICAgICAgICAgICByZXE6IHsgY29uZmlnLCBhdXRoLCBpbmZvIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBvYmplY3RzTXV0YXRpb25zLmNyZWF0ZU9iamVjdCh0YXJnZXRDbGFzcywgcGFyc2VGaWVsZHMsIGNvbmZpZywgYXV0aCwgaW5mbyk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKS5tYXAob2JqZWN0ID0+ICh7XG4gICAgICAgIF9fdHlwZTogJ1BvaW50ZXInLFxuICAgICAgICBjbGFzc05hbWU6IHRhcmdldENsYXNzLFxuICAgICAgICBvYmplY3RJZDogb2JqZWN0Lm9iamVjdElkLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZS5hZGQgfHwgbmVzdGVkT2JqZWN0c1RvQWRkLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICghdmFsdWUuYWRkKSB7IHZhbHVlLmFkZCA9IFtdOyB9XG4gICAgICB2YWx1ZS5hZGQgPSB2YWx1ZS5hZGQubWFwKGlucHV0ID0+IHtcbiAgICAgICAgY29uc3QgZ2xvYmFsSWRPYmplY3QgPSBmcm9tR2xvYmFsSWQoaW5wdXQpO1xuICAgICAgICBpZiAoZ2xvYmFsSWRPYmplY3QudHlwZSA9PT0gdGFyZ2V0Q2xhc3MpIHtcbiAgICAgICAgICBpbnB1dCA9IGdsb2JhbElkT2JqZWN0LmlkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgX190eXBlOiAnUG9pbnRlcicsXG4gICAgICAgICAgY2xhc3NOYW1lOiB0YXJnZXRDbGFzcyxcbiAgICAgICAgICBvYmplY3RJZDogaW5wdXQsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICAgIG9wLm9wcy5wdXNoKHtcbiAgICAgICAgX19vcDogJ0FkZFJlbGF0aW9uJyxcbiAgICAgICAgb2JqZWN0czogWy4uLnZhbHVlLmFkZCwgLi4ubmVzdGVkT2JqZWN0c1RvQWRkXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZS5yZW1vdmUpIHtcbiAgICAgIG9wLm9wcy5wdXNoKHtcbiAgICAgICAgX19vcDogJ1JlbW92ZVJlbGF0aW9uJyxcbiAgICAgICAgb2JqZWN0czogdmFsdWUucmVtb3ZlLm1hcChpbnB1dCA9PiB7XG4gICAgICAgICAgY29uc3QgZ2xvYmFsSWRPYmplY3QgPSBmcm9tR2xvYmFsSWQoaW5wdXQpO1xuICAgICAgICAgIGlmIChnbG9iYWxJZE9iamVjdC50eXBlID09PSB0YXJnZXRDbGFzcykge1xuICAgICAgICAgICAgaW5wdXQgPSBnbG9iYWxJZE9iamVjdC5pZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIF9fdHlwZTogJ1BvaW50ZXInLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiB0YXJnZXRDbGFzcyxcbiAgICAgICAgICAgIG9iamVjdElkOiBpbnB1dCxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gb3A7XG4gIH0sXG4gIHBvaW50ZXI6IGFzeW5jIChcbiAgICB0YXJnZXRDbGFzcyxcbiAgICBmaWVsZCxcbiAgICB2YWx1ZSxcbiAgICBvcmlnaW5hbFZhbHVlLFxuICAgIHBhcnNlR3JhcGhRTFNjaGVtYSxcbiAgICB7IGNvbmZpZywgYXV0aCwgaW5mbyB9XG4gICkgPT4ge1xuICAgIGlmIChPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID4gMSB8fCBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwKVxuICAgIHsgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgUGFyc2UuRXJyb3IuSU5WQUxJRF9QT0lOVEVSLFxuICAgICAgYFlvdSBuZWVkIHRvIHByb3ZpZGUgbGluayBPUiBjcmVhdGVMaW5rIG9uIHRoZSBwb2ludGVyIG11dGF0aW9uIG9mIGZpZWxkICR7ZmllbGR9YFxuICAgICk7IH1cblxuICAgIGxldCBuZXN0ZWRPYmplY3RUb0FkZDtcbiAgICBpZiAodmFsdWUuY3JlYXRlQW5kTGluaykge1xuICAgICAgY29uc3QgcGFyc2VGaWVsZHMgPSBhd2FpdCB0cmFuc2Zvcm1UeXBlcygnY3JlYXRlJywgdmFsdWUuY3JlYXRlQW5kTGluaywge1xuICAgICAgICBjbGFzc05hbWU6IHRhcmdldENsYXNzLFxuICAgICAgICBwYXJzZUdyYXBoUUxTY2hlbWEsXG4gICAgICAgIG9yaWdpbmFsRmllbGRzOiBvcmlnaW5hbFZhbHVlLmNyZWF0ZUFuZExpbmssXG4gICAgICAgIHJlcTogeyBjb25maWcsIGF1dGgsIGluZm8gfSxcbiAgICAgIH0pO1xuICAgICAgbmVzdGVkT2JqZWN0VG9BZGQgPSBhd2FpdCBvYmplY3RzTXV0YXRpb25zLmNyZWF0ZU9iamVjdChcbiAgICAgICAgdGFyZ2V0Q2xhc3MsXG4gICAgICAgIHBhcnNlRmllbGRzLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIGF1dGgsXG4gICAgICAgIGluZm9cbiAgICAgICk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBfX3R5cGU6ICdQb2ludGVyJyxcbiAgICAgICAgY2xhc3NOYW1lOiB0YXJnZXRDbGFzcyxcbiAgICAgICAgb2JqZWN0SWQ6IG5lc3RlZE9iamVjdFRvQWRkLm9iamVjdElkLFxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmxpbmspIHtcbiAgICAgIGxldCBvYmplY3RJZCA9IHZhbHVlLmxpbms7XG4gICAgICBjb25zdCBnbG9iYWxJZE9iamVjdCA9IGZyb21HbG9iYWxJZChvYmplY3RJZCk7XG4gICAgICBpZiAoZ2xvYmFsSWRPYmplY3QudHlwZSA9PT0gdGFyZ2V0Q2xhc3MpIHtcbiAgICAgICAgb2JqZWN0SWQgPSBnbG9iYWxJZE9iamVjdC5pZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIF9fdHlwZTogJ1BvaW50ZXInLFxuICAgICAgICBjbGFzc05hbWU6IHRhcmdldENsYXNzLFxuICAgICAgICBvYmplY3RJZCxcbiAgICAgIH07XG4gICAgfVxuICB9LFxufTtcblxuZXhwb3J0IHsgdHJhbnNmb3JtVHlwZXMgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsYUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsZ0JBQUEsR0FBQUMs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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+IHtcbiAgc3dpdGNoIChwYXJzZVR5cGUpIHtcbiAgICBjYXNlICdTdHJpbmcnOlxuICAgICAgcmV0dXJuIEdyYXBoUUxTdHJpbmc7XG4gICAgY2FzZSAnTnVtYmVyJzpcbiAgICAgIHJldHVybiBHcmFwaFFMRmxvYXQ7XG4gICAgY2FzZSAnQm9vbGVhbic6XG4gICAgICByZXR1cm4gR3JhcGhRTEJvb2xlYW47XG4gICAgY2FzZSAnQXJyYXknOlxuICAgICAgcmV0dXJuIG5ldyBHcmFwaFFMTGlzdChkZWZhdWx0R3JhcGhRTFR5cGVzLkFSUkFZX1JFU1VMVCk7XG4gICAgY2FzZSAnT2JqZWN0JzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLk9CSkVDVDtcbiAgICBjYXNlICdEYXRlJzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLkRBVEU7XG4gICAgY2FzZSAnUG9pbnRlcic6XG4gICAgICBpZiAoXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlcyAmJlxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdICYmXG4gICAgICAgIHBhcnNlQ2xhc3NUeXBlc1t0YXJnZXRDbGFzc10uY2xhc3NHcmFwaFFMT3V0cHV0VHlwZVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdLmNsYXNzR3JhcGhRTE91dHB1dFR5cGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGVmYXVsdEdyYXBoUUxUeXBlcy5PQkpFQ1Q7XG4gICAgICB9XG4gICAgY2FzZSAnUmVsYXRpb24nOlxuICAgICAgaWYgKFxuICAgICAgICBwYXJzZUNsYXNzVHlwZXMgJiZcbiAgICAgICAgcGFyc2VDbGFzc1R5cGVzW3RhcmdldENsYXNzXSAmJlxuICAgICAgICBwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdLmNsYXNzR3JhcGhRTEZpbmRSZXN1bHRUeXBlXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG5ldyBHcmFwaFFMTm9uTnVsbChwYXJzZUNsYXNzVHlwZXNbdGFyZ2V0Q2xhc3NdLmNsYXNzR3JhcGhRTEZpbmRSZXN1bHRUeXBlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgR3JhcGhRTE5vbk51bGwoZGVmYXVsdEdyYXBoUUxUeXBlcy5PQkpFQ1QpO1xuICAgICAgfVxuICAgIGNhc2UgJ0ZpbGUnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuRklMRV9JTkZPO1xuICAgIGNhc2UgJ0dlb1BvaW50JzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLkdFT19QT0lOVDtcbiAgICBjYXNlICdQb2x5Z29uJzpcbiAgICAgIHJldHVybiBkZWZhdWx0R3JhcGhRTFR5cGVzLlBPTFlHT047XG4gICAgY2FzZSAnQnl0ZXMnOlxuICAgICAgcmV0dXJuIGRlZmF1bHRHcmFwaFFMVHlwZXMuQllURVM7XG4gICAgY2FzZSAnQUNMJzpcbiAgICAgIHJldHVybiBuZXcgR3JhcGhRTE5vbk51bGwoZGVmYXVsdEdyYXBoUUxUeXBlcy5BQ0wpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuXG5leHBvcnQgeyB0cmFuc2Zvcm1PdXRwdXRUeXBlVG9HcmFwaFFMIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLG1CQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFBbUcsU0FBQUQsd0JBQUFHLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFMLHVCQUFBLFlBQUFBLENBQUFHLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBQyxPQUFBLEVBQUFWLENBQUEsaUJBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFNLENBQUEsQ0FBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsZ0JBQUFQLENBQUEsSUFBQUQsQ0FBQSxnQkFBQUMsQ0FBQSxPQUFBYSxjQUFBLENBQUFDLElBQUEsQ0FBQWYsQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsSUFBQUQsQ0FBQSxHQUFBVSxNQUFBLENBQUFDLGNBQUEsS0FBQUQsTUFBQSxDQUFBRSx3QkFBQSxDQUFBbEIsQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsQ0FBQUssR0FBQSxJQUFBTCxDQUFBLENBQUFNLEdBQUEsSUFBQVAsQ0FBQSxDQUFBRSxDQUFBLEVBQUFQLENBQUEsRUFBQU0sQ0FBQSxJQUFBQyxDQUFBLENBQUFQLENBQUEsSUFBQUQsQ0FBQSxDQUFBQyxDQUFBLFdBQUFPLENBQUEsS0FBQVIsQ0FBQSxFQUFBQyxDQUFBO0FBRW5HLE1BQU1rQiw0QkFBNEIsR0FBR0EsQ0FBQ0MsU0FBUyxFQUFFQyxXQUFXLEVBQUVDLGVBQWUsS0FBSztFQUNoRixRQUFRRixTQUFTO0lBQ2YsS0FBSyxRQUFRO01BQ1gsT0FBT0csc0JBQWE7SUFDdEIsS0FBSyxRQUFRO01BQ1gsT0FBT0MscUJBQVk7SUFDckIsS0FBSyxTQUFTO01BQ1osT0FBT0MsdUJBQWM7SUFDdkIsS0FBSyxPQUFPO01BQ1YsT0FBTyxJQUFJQyxvQkFBVyxDQUFDOUIsbUJBQW1CLENBQUMrQixZQUFZLENBQUM7SUFDMUQsS0FBSyxRQUFRO01BQ1gsT0FBTy9CLG1CQUFtQixDQUFDZ0MsTUFBTTtJQUNuQyxLQUFLLE1BQU07TUFDVCxPQUFPaEMsbUJBQW1CLENBQUNpQyxJQUFJO0lBQ2pDLEtBQUssU0FBUztNQUNaLElBQ0VQLGVBQWUsSUFDZkEsZUFBZSxDQUFDRCxXQUFXLENBQUMsSUFDNUJDLGVBQWUsQ0FBQ0QsV0FBVyxDQUFDLENBQUNTLHNCQUFzQixFQUNuRDtRQUNBLE9BQU9SLGVBQWUsQ0FBQ0QsV0FBVyxDQUFDLENBQUNTLHNCQUFzQjtNQUM1RCxDQUFDLE1BQU07UUFDTCxPQUFPbEMsbUJBQW1CLENBQUNnQyxNQUFNO01BQ25DO0lBQ0YsS0FBSyxVQUFVO01BQ2IsSUFDRU4sZUFBZSxJQUNmQSxlQUFlLENBQUNELFdBQVcsQ0FBQyxJQUM1QkMsZUFBZSxDQUFDRCxXQUFXLENBQUMsQ0FBQ1UsMEJBQTBCLEVBQ3ZEO1FBQ0EsT0FBTyxJQUFJQyx1QkFBYyxDQUFDVixlQUFlLENBQUNELFdBQVcsQ0FBQyxDQUFDVSwwQkFBMEIsQ0FBQztNQUNwRixDQUFDLE1BQU07UUFDTCxPQUFPLElBQUlDLHVCQUFjLENBQUNwQyxtQkFBbUIsQ0FBQ2dDLE1BQU0sQ0FBQztNQUN2RDtJQUNGLEtBQUssTUFBTTtNQUNULE9BQU9oQyxtQkFBbUIsQ0FBQ3FDLFNBQVM7SUFDdEMsS0FBSyxVQUFVO01BQ2IsT0FBT3JDLG1CQUFtQixDQUFDc0MsU0FBUztJQUN0QyxLQUFLLFNBQVM7TUFDWixPQUFPdEMsbUJBQW1CLENBQUN1QyxPQUFPO0lBQ3BDLEtBQUssT0FBTztNQUNWLE9BQU92QyxtQkFBbUIsQ0FBQ3dDLEtBQUs7SUFDbEMsS0FBSyxLQUFLO01BQ1IsT0FBTyxJQUFJSix1QkFBYyxDQUFDcEMsbUJBQW1CLENBQUN5QyxHQUFHLENBQUM7SUFDcEQ7TUFDRSxPQUFPQyxTQUFTO0VBQ3BCO0FBQ0YsQ0FBQztBQUFDQyxPQUFBLENBQUFwQiw0QkFBQSxHQUFBQSw0QkFBQSIsImlnbm9yZUxpc3QiOltdfQ==