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.
Files changed (240) hide show
  1. package/LICENSE +167 -25
  2. package/NOTICE +10 -0
  3. package/README.md +929 -278
  4. package/lib/AccountLockout.js +47 -30
  5. package/lib/Adapters/AdapterLoader.js +21 -6
  6. package/lib/Adapters/Analytics/AnalyticsAdapter.js +15 -12
  7. package/lib/Adapters/Auth/AuthAdapter.js +116 -13
  8. package/lib/Adapters/Auth/BaseCodeAuthAdapter.js +99 -0
  9. package/lib/Adapters/Auth/OAuth1Client.js +27 -46
  10. package/lib/Adapters/Auth/apple.js +123 -0
  11. package/lib/Adapters/Auth/facebook.js +162 -35
  12. package/lib/Adapters/Auth/gcenter.js +217 -0
  13. package/lib/Adapters/Auth/github.js +118 -48
  14. package/lib/Adapters/Auth/google.js +160 -51
  15. package/lib/Adapters/Auth/gpgames.js +125 -0
  16. package/lib/Adapters/Auth/httpsRequest.js +6 -7
  17. package/lib/Adapters/Auth/index.js +170 -62
  18. package/lib/Adapters/Auth/instagram.js +114 -40
  19. package/lib/Adapters/Auth/janraincapture.js +52 -23
  20. package/lib/Adapters/Auth/janrainengage.js +19 -36
  21. package/lib/Adapters/Auth/keycloak.js +148 -0
  22. package/lib/Adapters/Auth/ldap.js +167 -0
  23. package/lib/Adapters/Auth/line.js +125 -0
  24. package/lib/Adapters/Auth/linkedin.js +111 -55
  25. package/lib/Adapters/Auth/meetup.js +24 -34
  26. package/lib/Adapters/Auth/mfa.js +324 -0
  27. package/lib/Adapters/Auth/microsoft.js +111 -0
  28. package/lib/Adapters/Auth/oauth2.js +97 -162
  29. package/lib/Adapters/Auth/phantauth.js +53 -0
  30. package/lib/Adapters/Auth/qq.js +108 -49
  31. package/lib/Adapters/Auth/spotify.js +107 -55
  32. package/lib/Adapters/Auth/twitter.js +188 -48
  33. package/lib/Adapters/Auth/utils.js +28 -0
  34. package/lib/Adapters/Auth/vkontakte.js +26 -39
  35. package/lib/Adapters/Auth/wechat.js +106 -44
  36. package/lib/Adapters/Auth/weibo.js +132 -58
  37. package/lib/Adapters/Cache/CacheAdapter.js +13 -8
  38. package/lib/Adapters/Cache/InMemoryCache.js +3 -13
  39. package/lib/Adapters/Cache/InMemoryCacheAdapter.js +5 -13
  40. package/lib/Adapters/Cache/LRUCache.js +13 -27
  41. package/lib/Adapters/Cache/NullCacheAdapter.js +3 -8
  42. package/lib/Adapters/Cache/RedisCacheAdapter.js +85 -76
  43. package/lib/Adapters/Cache/SchemaCache.js +25 -0
  44. package/lib/Adapters/Email/MailAdapter.js +10 -8
  45. package/lib/Adapters/Files/FilesAdapter.js +83 -25
  46. package/lib/Adapters/Files/GridFSBucketAdapter.js +231 -0
  47. package/lib/Adapters/Files/GridStoreAdapter.js +4 -91
  48. package/lib/Adapters/Logger/LoggerAdapter.js +18 -14
  49. package/lib/Adapters/Logger/WinstonLogger.js +69 -88
  50. package/lib/Adapters/Logger/WinstonLoggerAdapter.js +7 -16
  51. package/lib/Adapters/MessageQueue/EventEmitterMQ.js +8 -26
  52. package/lib/Adapters/PubSub/EventEmitterPubSub.js +12 -25
  53. package/lib/Adapters/PubSub/PubSubAdapter.js +34 -0
  54. package/lib/Adapters/PubSub/RedisPubSub.js +42 -19
  55. package/lib/Adapters/Push/PushAdapter.js +14 -7
  56. package/lib/Adapters/Storage/Mongo/MongoCollection.js +137 -45
  57. package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +158 -63
  58. package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +320 -168
  59. package/lib/Adapters/Storage/Mongo/MongoTransform.js +279 -306
  60. package/lib/Adapters/Storage/Postgres/PostgresClient.js +14 -10
  61. package/lib/Adapters/Storage/Postgres/PostgresConfigParser.js +47 -21
  62. package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +854 -468
  63. package/lib/Adapters/Storage/Postgres/sql/index.js +4 -6
  64. package/lib/Adapters/Storage/StorageAdapter.js +1 -1
  65. package/lib/Adapters/WebSocketServer/WSAdapter.js +35 -0
  66. package/lib/Adapters/WebSocketServer/WSSAdapter.js +66 -0
  67. package/lib/Auth.js +488 -125
  68. package/lib/ClientSDK.js +2 -6
  69. package/lib/Config.js +525 -94
  70. package/lib/Controllers/AdaptableController.js +5 -25
  71. package/lib/Controllers/AnalyticsController.js +22 -23
  72. package/lib/Controllers/CacheController.js +10 -31
  73. package/lib/Controllers/DatabaseController.js +767 -313
  74. package/lib/Controllers/FilesController.js +49 -54
  75. package/lib/Controllers/HooksController.js +80 -84
  76. package/lib/Controllers/LiveQueryController.js +35 -22
  77. package/lib/Controllers/LoggerController.js +22 -58
  78. package/lib/Controllers/ParseGraphQLController.js +293 -0
  79. package/lib/Controllers/PushController.js +58 -49
  80. package/lib/Controllers/SchemaController.js +916 -422
  81. package/lib/Controllers/UserController.js +265 -180
  82. package/lib/Controllers/index.js +90 -125
  83. package/lib/Controllers/types.js +1 -1
  84. package/lib/Deprecator/Deprecations.js +30 -0
  85. package/lib/Deprecator/Deprecator.js +127 -0
  86. package/lib/Error.js +48 -0
  87. package/lib/GraphQL/ParseGraphQLSchema.js +375 -0
  88. package/lib/GraphQL/ParseGraphQLServer.js +214 -0
  89. package/lib/GraphQL/helpers/objectsMutations.js +30 -0
  90. package/lib/GraphQL/helpers/objectsQueries.js +246 -0
  91. package/lib/GraphQL/loaders/configMutations.js +87 -0
  92. package/lib/GraphQL/loaders/configQueries.js +79 -0
  93. package/lib/GraphQL/loaders/defaultGraphQLMutations.js +21 -0
  94. package/lib/GraphQL/loaders/defaultGraphQLQueries.js +23 -0
  95. package/lib/GraphQL/loaders/defaultGraphQLTypes.js +1098 -0
  96. package/lib/GraphQL/loaders/defaultRelaySchema.js +53 -0
  97. package/lib/GraphQL/loaders/filesMutations.js +107 -0
  98. package/lib/GraphQL/loaders/functionsMutations.js +78 -0
  99. package/lib/GraphQL/loaders/parseClassMutations.js +268 -0
  100. package/lib/GraphQL/loaders/parseClassQueries.js +127 -0
  101. package/lib/GraphQL/loaders/parseClassTypes.js +493 -0
  102. package/lib/GraphQL/loaders/schemaDirectives.js +62 -0
  103. package/lib/GraphQL/loaders/schemaMutations.js +162 -0
  104. package/lib/GraphQL/loaders/schemaQueries.js +81 -0
  105. package/lib/GraphQL/loaders/schemaTypes.js +341 -0
  106. package/lib/GraphQL/loaders/usersMutations.js +433 -0
  107. package/lib/GraphQL/loaders/usersQueries.js +90 -0
  108. package/lib/GraphQL/parseGraphQLUtils.js +63 -0
  109. package/lib/GraphQL/transformers/className.js +14 -0
  110. package/lib/GraphQL/transformers/constraintType.js +53 -0
  111. package/lib/GraphQL/transformers/inputType.js +51 -0
  112. package/lib/GraphQL/transformers/mutation.js +274 -0
  113. package/lib/GraphQL/transformers/outputType.js +51 -0
  114. package/lib/GraphQL/transformers/query.js +237 -0
  115. package/lib/GraphQL/transformers/schemaFields.js +99 -0
  116. package/lib/KeyPromiseQueue.js +48 -0
  117. package/lib/LiveQuery/Client.js +25 -33
  118. package/lib/LiveQuery/Id.js +2 -5
  119. package/lib/LiveQuery/ParseCloudCodePublisher.js +26 -23
  120. package/lib/LiveQuery/ParseLiveQueryServer.js +560 -285
  121. package/lib/LiveQuery/ParsePubSub.js +7 -16
  122. package/lib/LiveQuery/ParseWebSocketServer.js +42 -39
  123. package/lib/LiveQuery/QueryTools.js +76 -15
  124. package/lib/LiveQuery/RequestSchema.js +111 -97
  125. package/lib/LiveQuery/SessionTokenCache.js +23 -36
  126. package/lib/LiveQuery/Subscription.js +8 -17
  127. package/lib/LiveQuery/equalObjects.js +2 -3
  128. package/lib/Options/Definitions.js +1355 -382
  129. package/lib/Options/docs.js +301 -62
  130. package/lib/Options/index.js +11 -1
  131. package/lib/Options/parsers.js +14 -10
  132. package/lib/Page.js +44 -0
  133. package/lib/ParseMessageQueue.js +6 -13
  134. package/lib/ParseServer.js +474 -235
  135. package/lib/ParseServerRESTController.js +102 -40
  136. package/lib/PromiseRouter.js +39 -50
  137. package/lib/Push/PushQueue.js +24 -30
  138. package/lib/Push/PushWorker.js +32 -56
  139. package/lib/Push/utils.js +22 -35
  140. package/lib/RestQuery.js +361 -139
  141. package/lib/RestWrite.js +713 -344
  142. package/lib/Routers/AggregateRouter.js +97 -71
  143. package/lib/Routers/AnalyticsRouter.js +8 -14
  144. package/lib/Routers/AudiencesRouter.js +16 -35
  145. package/lib/Routers/ClassesRouter.js +86 -72
  146. package/lib/Routers/CloudCodeRouter.js +28 -37
  147. package/lib/Routers/FeaturesRouter.js +22 -25
  148. package/lib/Routers/FilesRouter.js +266 -171
  149. package/lib/Routers/FunctionsRouter.js +87 -103
  150. package/lib/Routers/GlobalConfigRouter.js +94 -33
  151. package/lib/Routers/GraphQLRouter.js +41 -0
  152. package/lib/Routers/HooksRouter.js +43 -47
  153. package/lib/Routers/IAPValidationRouter.js +57 -70
  154. package/lib/Routers/InstallationsRouter.js +17 -25
  155. package/lib/Routers/LogsRouter.js +10 -25
  156. package/lib/Routers/PagesRouter.js +647 -0
  157. package/lib/Routers/PublicAPIRouter.js +104 -112
  158. package/lib/Routers/PurgeRouter.js +19 -29
  159. package/lib/Routers/PushRouter.js +14 -28
  160. package/lib/Routers/RolesRouter.js +7 -14
  161. package/lib/Routers/SchemasRouter.js +63 -42
  162. package/lib/Routers/SecurityRouter.js +34 -0
  163. package/lib/Routers/SessionsRouter.js +25 -38
  164. package/lib/Routers/UsersRouter.js +463 -190
  165. package/lib/SchemaMigrations/DefinedSchemas.js +379 -0
  166. package/lib/SchemaMigrations/Migrations.js +30 -0
  167. package/lib/Security/Check.js +109 -0
  168. package/lib/Security/CheckGroup.js +44 -0
  169. package/lib/Security/CheckGroups/CheckGroupDatabase.js +44 -0
  170. package/lib/Security/CheckGroups/CheckGroupServerConfig.js +96 -0
  171. package/lib/Security/CheckGroups/CheckGroups.js +21 -0
  172. package/lib/Security/CheckRunner.js +213 -0
  173. package/lib/SharedRest.js +29 -0
  174. package/lib/StatusHandler.js +96 -93
  175. package/lib/TestUtils.js +70 -14
  176. package/lib/Utils.js +468 -0
  177. package/lib/batch.js +74 -40
  178. package/lib/cache.js +8 -8
  179. package/lib/cli/definitions/parse-live-query-server.js +4 -3
  180. package/lib/cli/definitions/parse-server.js +4 -3
  181. package/lib/cli/parse-live-query-server.js +9 -17
  182. package/lib/cli/parse-server.js +49 -47
  183. package/lib/cli/utils/commander.js +20 -29
  184. package/lib/cli/utils/runner.js +31 -32
  185. package/lib/cloud-code/Parse.Cloud.js +711 -36
  186. package/lib/cloud-code/Parse.Server.js +21 -0
  187. package/lib/cryptoUtils.js +6 -11
  188. package/lib/defaults.js +21 -15
  189. package/lib/deprecated.js +1 -1
  190. package/lib/index.js +78 -67
  191. package/lib/logger.js +12 -20
  192. package/lib/middlewares.js +484 -160
  193. package/lib/password.js +10 -6
  194. package/lib/request.js +175 -0
  195. package/lib/requiredParameter.js +4 -3
  196. package/lib/rest.js +157 -82
  197. package/lib/triggers.js +627 -185
  198. package/lib/vendor/README.md +3 -3
  199. package/lib/vendor/mongodbUrl.js +224 -137
  200. package/package.json +135 -57
  201. package/postinstall.js +38 -50
  202. package/public_html/invalid_verification_link.html +3 -3
  203. package/types/@types/@parse/fs-files-adapter/index.d.ts +5 -0
  204. package/types/@types/deepcopy/index.d.ts +5 -0
  205. package/types/LiveQuery/ParseLiveQueryServer.d.ts +40 -0
  206. package/types/Options/index.d.ts +301 -0
  207. package/types/ParseServer.d.ts +65 -0
  208. package/types/eslint.config.mjs +30 -0
  209. package/types/index.d.ts +21 -0
  210. package/types/logger.d.ts +2 -0
  211. package/types/tests.ts +44 -0
  212. package/types/tsconfig.json +24 -0
  213. package/CHANGELOG.md +0 -1246
  214. package/PATENTS +0 -37
  215. package/bin/dev +0 -37
  216. package/lib/.DS_Store +0 -0
  217. package/lib/Adapters/Auth/common.js +0 -2
  218. package/lib/Adapters/Auth/facebookaccountkit.js +0 -69
  219. package/lib/Controllers/SchemaCache.js +0 -97
  220. package/lib/LiveQuery/.DS_Store +0 -0
  221. package/lib/cli/utils/parsers.js +0 -77
  222. package/lib/cloud-code/.DS_Store +0 -0
  223. package/lib/cloud-code/HTTPResponse.js +0 -57
  224. package/lib/cloud-code/Untitled-1 +0 -123
  225. package/lib/cloud-code/httpRequest.js +0 -102
  226. package/lib/cloud-code/team.html +0 -123
  227. package/lib/graphql/ParseClass.js +0 -234
  228. package/lib/graphql/Schema.js +0 -197
  229. package/lib/graphql/index.js +0 -1
  230. package/lib/graphql/types/ACL.js +0 -35
  231. package/lib/graphql/types/Date.js +0 -25
  232. package/lib/graphql/types/File.js +0 -24
  233. package/lib/graphql/types/GeoPoint.js +0 -35
  234. package/lib/graphql/types/JSONObject.js +0 -30
  235. package/lib/graphql/types/NumberInput.js +0 -43
  236. package/lib/graphql/types/NumberQuery.js +0 -42
  237. package/lib/graphql/types/Pointer.js +0 -35
  238. package/lib/graphql/types/QueryConstraint.js +0 -61
  239. package/lib/graphql/types/StringQuery.js +0 -39
  240. package/lib/graphql/types/index.js +0 -110
package/lib/password.js CHANGED
@@ -1,12 +1,17 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  // Tools for encrypting and decrypting passwords.
4
4
  // Basically promise-friendly wrappers for bcrypt.
5
5
  var bcrypt = require('bcryptjs');
6
-
7
6
  try {
8
- bcrypt = require('bcrypt');
9
- } catch (e) {} /* */
7
+ const _bcrypt = require('@node-rs/bcrypt');
8
+ bcrypt = {
9
+ hash: _bcrypt.hash,
10
+ compare: _bcrypt.verify
11
+ };
12
+ } catch {
13
+ /* */
14
+ }
10
15
 
11
16
  // Returns a promise for a hashed password string.
12
17
  function hash(password) {
@@ -22,9 +27,8 @@ function compare(password, hashedPassword) {
22
27
  }
23
28
  return bcrypt.compare(password, hashedPassword);
24
29
  }
25
-
26
30
  module.exports = {
27
31
  hash: hash,
28
32
  compare: compare
29
33
  };
30
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXNzd29yZC5qcyJdLCJuYW1lcyI6WyJiY3J5cHQiLCJyZXF1aXJlIiwiZSIsImhhc2giLCJwYXNzd29yZCIsImNvbXBhcmUiLCJoYXNoZWRQYXNzd29yZCIsIlByb21pc2UiLCJyZXNvbHZlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0EsSUFBSUEsU0FBU0MsUUFBUSxVQUFSLENBQWI7O0FBRUEsSUFBSTtBQUNGRCxXQUFTQyxRQUFRLFFBQVIsQ0FBVDtBQUNELENBRkQsQ0FFRSxPQUFNQyxDQUFOLEVBQVMsQ0FBUyxDQUFsQixDQUFXOztBQUViO0FBQ0EsU0FBU0MsSUFBVCxDQUFjQyxRQUFkLEVBQXdCO0FBQ3RCLFNBQU9KLE9BQU9HLElBQVAsQ0FBWUMsUUFBWixFQUFzQixFQUF0QixDQUFQO0FBQ0Q7O0FBRUQ7QUFDQTtBQUNBLFNBQVNDLE9BQVQsQ0FBaUJELFFBQWpCLEVBQTJCRSxjQUEzQixFQUEyQztBQUN6QztBQUNBLE1BQUksQ0FBQ0YsUUFBRCxJQUFhLENBQUNFLGNBQWxCLEVBQWtDO0FBQ2hDLFdBQU9DLFFBQVFDLE9BQVIsQ0FBZ0IsS0FBaEIsQ0FBUDtBQUNEO0FBQ0QsU0FBT1IsT0FBT0ssT0FBUCxDQUFlRCxRQUFmLEVBQXlCRSxjQUF6QixDQUFQO0FBQ0Q7O0FBRURHLE9BQU9DLE9BQVAsR0FBaUI7QUFDZlAsUUFBTUEsSUFEUztBQUVmRSxXQUFTQTtBQUZNLENBQWpCIiwiZmlsZSI6InBhc3N3b3JkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVG9vbHMgZm9yIGVuY3J5cHRpbmcgYW5kIGRlY3J5cHRpbmcgcGFzc3dvcmRzLlxuLy8gQmFzaWNhbGx5IHByb21pc2UtZnJpZW5kbHkgd3JhcHBlcnMgZm9yIGJjcnlwdC5cbnZhciBiY3J5cHQgPSByZXF1aXJlKCdiY3J5cHRqcycpO1xuXG50cnkge1xuICBiY3J5cHQgPSByZXF1aXJlKCdiY3J5cHQnKTtcbn0gY2F0Y2goZSkgeyAvKiAqLyB9XG5cbi8vIFJldHVybnMgYSBwcm9taXNlIGZvciBhIGhhc2hlZCBwYXNzd29yZCBzdHJpbmcuXG5mdW5jdGlvbiBoYXNoKHBhc3N3b3JkKSB7XG4gIHJldHVybiBiY3J5cHQuaGFzaChwYXNzd29yZCwgMTApO1xufVxuXG4vLyBSZXR1cm5zIGEgcHJvbWlzZSBmb3Igd2hldGhlciB0aGlzIHBhc3N3b3JkIGNvbXBhcmVzIHRvIGVxdWFsIHRoaXNcbi8vIGhhc2hlZCBwYXNzd29yZC5cbmZ1bmN0aW9uIGNvbXBhcmUocGFzc3dvcmQsIGhhc2hlZFBhc3N3b3JkKSB7XG4gIC8vIENhbm5vdCBiY3J5cHQgY29tcGFyZSB3aGVuIG9uZSBpcyB1bmRlZmluZWRcbiAgaWYgKCFwYXNzd29yZCB8fCAhaGFzaGVkUGFzc3dvcmQpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcbiAgfVxuICByZXR1cm4gYmNyeXB0LmNvbXBhcmUocGFzc3dvcmQsIGhhc2hlZFBhc3N3b3JkKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGhhc2g6IGhhc2gsXG4gIGNvbXBhcmU6IGNvbXBhcmVcbn07XG4iXX0=
34
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJiY3J5cHQiLCJyZXF1aXJlIiwiX2JjcnlwdCIsImhhc2giLCJjb21wYXJlIiwidmVyaWZ5IiwicGFzc3dvcmQiLCJoYXNoZWRQYXNzd29yZCIsIlByb21pc2UiLCJyZXNvbHZlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXNzd29yZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUb29scyBmb3IgZW5jcnlwdGluZyBhbmQgZGVjcnlwdGluZyBwYXNzd29yZHMuXG4vLyBCYXNpY2FsbHkgcHJvbWlzZS1mcmllbmRseSB3cmFwcGVycyBmb3IgYmNyeXB0LlxudmFyIGJjcnlwdCA9IHJlcXVpcmUoJ2JjcnlwdGpzJyk7XG5cbnRyeSB7XG4gIGNvbnN0IF9iY3J5cHQgPSByZXF1aXJlKCdAbm9kZS1ycy9iY3J5cHQnKTtcbiAgYmNyeXB0ID0ge1xuICAgIGhhc2g6IF9iY3J5cHQuaGFzaCxcbiAgICBjb21wYXJlOiBfYmNyeXB0LnZlcmlmeSxcbiAgfTtcbn0gY2F0Y2gge1xuICAvKiAqL1xufVxuXG4vLyBSZXR1cm5zIGEgcHJvbWlzZSBmb3IgYSBoYXNoZWQgcGFzc3dvcmQgc3RyaW5nLlxuZnVuY3Rpb24gaGFzaChwYXNzd29yZCkge1xuICByZXR1cm4gYmNyeXB0Lmhhc2gocGFzc3dvcmQsIDEwKTtcbn1cblxuLy8gUmV0dXJucyBhIHByb21pc2UgZm9yIHdoZXRoZXIgdGhpcyBwYXNzd29yZCBjb21wYXJlcyB0byBlcXVhbCB0aGlzXG4vLyBoYXNoZWQgcGFzc3dvcmQuXG5mdW5jdGlvbiBjb21wYXJlKHBhc3N3b3JkLCBoYXNoZWRQYXNzd29yZCkge1xuICAvLyBDYW5ub3QgYmNyeXB0IGNvbXBhcmUgd2hlbiBvbmUgaXMgdW5kZWZpbmVkXG4gIGlmICghcGFzc3dvcmQgfHwgIWhhc2hlZFBhc3N3b3JkKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG4gIH1cbiAgcmV0dXJuIGJjcnlwdC5jb21wYXJlKHBhc3N3b3JkLCBoYXNoZWRQYXNzd29yZCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBoYXNoOiBoYXNoLFxuICBjb21wYXJlOiBjb21wYXJlLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0EsSUFBSUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsVUFBVSxDQUFDO0FBRWhDLElBQUk7RUFDRixNQUFNQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztFQUMxQ0QsTUFBTSxHQUFHO0lBQ1BHLElBQUksRUFBRUQsT0FBTyxDQUFDQyxJQUFJO0lBQ2xCQyxPQUFPLEVBQUVGLE9BQU8sQ0FBQ0c7RUFDbkIsQ0FBQztBQUNILENBQUMsQ0FBQyxNQUFNO0VBQ047QUFBQTs7QUFHRjtBQUNBLFNBQVNGLElBQUlBLENBQUNHLFFBQVEsRUFBRTtFQUN0QixPQUFPTixNQUFNLENBQUNHLElBQUksQ0FBQ0csUUFBUSxFQUFFLEVBQUUsQ0FBQztBQUNsQzs7QUFFQTtBQUNBO0FBQ0EsU0FBU0YsT0FBT0EsQ0FBQ0UsUUFBUSxFQUFFQyxjQUFjLEVBQUU7RUFDekM7RUFDQSxJQUFJLENBQUNELFFBQVEsSUFBSSxDQUFDQyxjQUFjLEVBQUU7SUFDaEMsT0FBT0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsS0FBSyxDQUFDO0VBQy9CO0VBQ0EsT0FBT1QsTUFBTSxDQUFDSSxPQUFPLENBQUNFLFFBQVEsRUFBRUMsY0FBYyxDQUFDO0FBQ2pEO0FBRUFHLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHO0VBQ2ZSLElBQUksRUFBRUEsSUFBSTtFQUNWQyxPQUFPLEVBQUVBO0FBQ1gsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
package/lib/request.js ADDED
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+
3
+ var _querystring = _interopRequireDefault(require("querystring"));
4
+ var _logger = _interopRequireDefault(require("./logger"));
5
+ var _followRedirects = require("follow-redirects");
6
+ var _url = require("url");
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ class HTTPResponse {
9
+ constructor(response, body) {
10
+ let _text, _data;
11
+ this.status = response.statusCode;
12
+ this.headers = response.headers || {};
13
+ this.cookies = this.headers['set-cookie'];
14
+ if (typeof body == 'string') {
15
+ _text = body;
16
+ } else if (Buffer.isBuffer(body)) {
17
+ this.buffer = body;
18
+ } else if (typeof body == 'object') {
19
+ _data = body;
20
+ }
21
+ const getText = () => {
22
+ if (!_text && this.buffer) {
23
+ _text = this.buffer.toString('utf-8');
24
+ } else if (!_text && _data) {
25
+ _text = JSON.stringify(_data);
26
+ }
27
+ return _text;
28
+ };
29
+ const getData = () => {
30
+ if (!_data) {
31
+ try {
32
+ _data = JSON.parse(getText());
33
+ } catch {
34
+ /* */
35
+ }
36
+ }
37
+ return _data;
38
+ };
39
+ Object.defineProperty(this, 'body', {
40
+ get: () => {
41
+ return body;
42
+ }
43
+ });
44
+ Object.defineProperty(this, 'text', {
45
+ enumerable: true,
46
+ get: getText
47
+ });
48
+ Object.defineProperty(this, 'data', {
49
+ enumerable: true,
50
+ get: getData
51
+ });
52
+ }
53
+ }
54
+ const clients = {
55
+ 'http:': _followRedirects.http,
56
+ 'https:': _followRedirects.https
57
+ };
58
+ function makeCallback(resolve, reject) {
59
+ return function (response) {
60
+ const chunks = [];
61
+ response.on('data', chunk => {
62
+ chunks.push(chunk);
63
+ });
64
+ response.on('end', () => {
65
+ const body = Buffer.concat(chunks);
66
+ const httpResponse = new HTTPResponse(response, body);
67
+
68
+ // Consider <200 && >= 400 as errors
69
+ if (httpResponse.status < 200 || httpResponse.status >= 400) {
70
+ return reject(httpResponse);
71
+ } else {
72
+ return resolve(httpResponse);
73
+ }
74
+ });
75
+ response.on('error', reject);
76
+ };
77
+ }
78
+ const encodeBody = function ({
79
+ body,
80
+ headers = {}
81
+ }) {
82
+ if (typeof body !== 'object') {
83
+ return {
84
+ body,
85
+ headers
86
+ };
87
+ }
88
+ var contentTypeKeys = Object.keys(headers).filter(key => {
89
+ return key.match(/content-type/i) != null;
90
+ });
91
+ if (contentTypeKeys.length == 0) {
92
+ // no content type
93
+ // As per https://parse.com/docs/cloudcode/guide#cloud-code-advanced-sending-a-post-request the default encoding is supposedly x-www-form-urlencoded
94
+
95
+ body = _querystring.default.stringify(body);
96
+ headers['Content-Type'] = 'application/x-www-form-urlencoded';
97
+ } else {
98
+ /* istanbul ignore next */
99
+ if (contentTypeKeys.length > 1) {
100
+ _logger.default.error('Parse.Cloud.httpRequest', 'multiple content-type headers are set.');
101
+ }
102
+ // There maybe many, we'll just take the 1st one
103
+ var contentType = contentTypeKeys[0];
104
+ if (headers[contentType].match(/application\/json/i)) {
105
+ body = JSON.stringify(body);
106
+ } else if (headers[contentType].match(/application\/x-www-form-urlencoded/i)) {
107
+ body = _querystring.default.stringify(body);
108
+ }
109
+ }
110
+ return {
111
+ body,
112
+ headers
113
+ };
114
+ };
115
+ function httpRequest(options) {
116
+ let url;
117
+ try {
118
+ url = (0, _url.parse)(options.url);
119
+ } catch (e) {
120
+ return Promise.reject(e);
121
+ }
122
+ options = Object.assign(options, encodeBody(options));
123
+ // support params options
124
+ if (typeof options.params === 'object') {
125
+ options.qs = options.params;
126
+ } else if (typeof options.params === 'string') {
127
+ options.qs = _querystring.default.parse(options.params);
128
+ }
129
+ const client = clients[url.protocol];
130
+ if (!client) {
131
+ return Promise.reject(`Unsupported protocol ${url.protocol}`);
132
+ }
133
+ const requestOptions = {
134
+ method: options.method,
135
+ port: Number(url.port),
136
+ path: url.pathname,
137
+ hostname: url.hostname,
138
+ headers: options.headers,
139
+ encoding: null,
140
+ followRedirects: options.followRedirects === true
141
+ };
142
+ if (requestOptions.headers) {
143
+ Object.keys(requestOptions.headers).forEach(key => {
144
+ if (typeof requestOptions.headers[key] === 'undefined') {
145
+ delete requestOptions.headers[key];
146
+ }
147
+ });
148
+ }
149
+ if (url.search) {
150
+ options.qs = Object.assign({}, options.qs, _querystring.default.parse(url.query));
151
+ }
152
+ if (url.auth) {
153
+ requestOptions.auth = url.auth;
154
+ }
155
+ if (options.qs) {
156
+ requestOptions.path += `?${_querystring.default.stringify(options.qs)}`;
157
+ }
158
+ if (options.agent) {
159
+ requestOptions.agent = options.agent;
160
+ }
161
+ return new Promise((resolve, reject) => {
162
+ const req = client.request(requestOptions, makeCallback(resolve, reject, options));
163
+ if (options.body) {
164
+ req.write(options.body);
165
+ }
166
+ req.on('error', error => {
167
+ reject(error);
168
+ });
169
+ req.end();
170
+ });
171
+ }
172
+ module.exports = httpRequest;
173
+ module.exports.encodeBody = encodeBody;
174
+ module.exports.HTTPResponse = HTTPResponse;
175
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcXVlcnlzdHJpbmciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2dnZXIiLCJfZm9sbG93UmVkaXJlY3RzIiwiX3VybCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkhUVFBSZXNwb25zZSIsImNvbnN0cnVjdG9yIiwicmVzcG9uc2UiLCJib2R5IiwiX3RleHQiLCJfZGF0YSIsInN0YXR1cyIsInN0YXR1c0NvZGUiLCJoZWFkZXJzIiwiY29va2llcyIsIkJ1ZmZlciIsImlzQnVmZmVyIiwiYnVmZmVyIiwiZ2V0VGV4dCIsInRvU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldERhdGEiLCJwYXJzZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0IiwiZW51bWVyYWJsZSIsImNsaWVudHMiLCJodHRwIiwiaHR0cHMiLCJtYWtlQ2FsbGJhY2siLCJyZXNvbHZlIiwicmVqZWN0IiwiY2h1bmtzIiwib24iLCJjaHVuayIsInB1c2giLCJjb25jYXQiLCJodHRwUmVzcG9uc2UiLCJlbmNvZGVCb2R5IiwiY29udGVudFR5cGVLZXlzIiwia2V5cyIsImZpbHRlciIsImtleSIsIm1hdGNoIiwibGVuZ3RoIiwicXVlcnlzdHJpbmciLCJsb2ciLCJlcnJvciIsImNvbnRlbnRUeXBlIiwiaHR0cFJlcXVlc3QiLCJvcHRpb25zIiwidXJsIiwiUHJvbWlzZSIsImFzc2lnbiIsInBhcmFtcyIsInFzIiwiY2xpZW50IiwicHJvdG9jb2wiLCJyZXF1ZXN0T3B0aW9ucyIsIm1ldGhvZCIsInBvcnQiLCJOdW1iZXIiLCJwYXRoIiwicGF0aG5hbWUiLCJob3N0bmFtZSIsImVuY29kaW5nIiwiZm9sbG93UmVkaXJlY3RzIiwiZm9yRWFjaCIsInNlYXJjaCIsInF1ZXJ5IiwiYXV0aCIsImFnZW50IiwicmVxIiwicmVxdWVzdCIsIndyaXRlIiwiZW5kIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXF1ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBxdWVyeXN0cmluZyBmcm9tICdxdWVyeXN0cmluZyc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IGh0dHAsIGh0dHBzIH0gZnJvbSAnZm9sbG93LXJlZGlyZWN0cyc7XG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gJ3VybCc7XG5cbmNsYXNzIEhUVFBSZXNwb25zZSB7XG4gIGNvbnN0cnVjdG9yKHJlc3BvbnNlLCBib2R5KSB7XG4gICAgbGV0IF90ZXh0LCBfZGF0YTtcbiAgICB0aGlzLnN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1c0NvZGU7XG4gICAgdGhpcy5oZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVycyB8fCB7fTtcbiAgICB0aGlzLmNvb2tpZXMgPSB0aGlzLmhlYWRlcnNbJ3NldC1jb29raWUnXTtcblxuICAgIGlmICh0eXBlb2YgYm9keSA9PSAnc3RyaW5nJykge1xuICAgICAgX3RleHQgPSBib2R5O1xuICAgIH0gZWxzZSBpZiAoQnVmZmVyLmlzQnVmZmVyKGJvZHkpKSB7XG4gICAgICB0aGlzLmJ1ZmZlciA9IGJvZHk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYm9keSA9PSAnb2JqZWN0Jykge1xuICAgICAgX2RhdGEgPSBib2R5O1xuICAgIH1cblxuICAgIGNvbnN0IGdldFRleHQgPSAoKSA9PiB7XG4gICAgICBpZiAoIV90ZXh0ICYmIHRoaXMuYnVmZmVyKSB7XG4gICAgICAgIF90ZXh0ID0gdGhpcy5idWZmZXIudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgICB9IGVsc2UgaWYgKCFfdGV4dCAmJiBfZGF0YSkge1xuICAgICAgICBfdGV4dCA9IEpTT04uc3RyaW5naWZ5KF9kYXRhKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBfdGV4dDtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0RGF0YSA9ICgpID0+IHtcbiAgICAgIGlmICghX2RhdGEpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBfZGF0YSA9IEpTT04ucGFyc2UoZ2V0VGV4dCgpKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLyogKi9cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIF9kYXRhO1xuICAgIH07XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2JvZHknLCB7XG4gICAgICBnZXQ6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGJvZHk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd0ZXh0Jywge1xuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZ2V0VGV4dCxcbiAgICB9KTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnZGF0YScsIHtcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGdldERhdGEsXG4gICAgfSk7XG4gIH1cbn1cblxuY29uc3QgY2xpZW50cyA9IHtcbiAgJ2h0dHA6JzogaHR0cCxcbiAgJ2h0dHBzOic6IGh0dHBzLFxufTtcblxuZnVuY3Rpb24gbWFrZUNhbGxiYWNrKHJlc29sdmUsIHJlamVjdCkge1xuICByZXR1cm4gZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgY29uc3QgY2h1bmtzID0gW107XG4gICAgcmVzcG9uc2Uub24oJ2RhdGEnLCBjaHVuayA9PiB7XG4gICAgICBjaHVua3MucHVzaChjaHVuayk7XG4gICAgfSk7XG4gICAgcmVzcG9uc2Uub24oJ2VuZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGJvZHkgPSBCdWZmZXIuY29uY2F0KGNodW5rcyk7XG4gICAgICBjb25zdCBodHRwUmVzcG9uc2UgPSBuZXcgSFRUUFJlc3BvbnNlKHJlc3BvbnNlLCBib2R5KTtcblxuICAgICAgLy8gQ29uc2lkZXIgPDIwMCAmJiA+PSA0MDAgYXMgZXJyb3JzXG4gICAgICBpZiAoaHR0cFJlc3BvbnNlLnN0YXR1cyA8IDIwMCB8fCBodHRwUmVzcG9uc2Uuc3RhdHVzID49IDQwMCkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGh0dHBSZXNwb25zZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZShodHRwUmVzcG9uc2UpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJlc3BvbnNlLm9uKCdlcnJvcicsIHJlamVjdCk7XG4gIH07XG59XG5cbmNvbnN0IGVuY29kZUJvZHkgPSBmdW5jdGlvbiAoeyBib2R5LCBoZWFkZXJzID0ge30gfSkge1xuICBpZiAodHlwZW9mIGJvZHkgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIHsgYm9keSwgaGVhZGVycyB9O1xuICB9XG4gIHZhciBjb250ZW50VHlwZUtleXMgPSBPYmplY3Qua2V5cyhoZWFkZXJzKS5maWx0ZXIoa2V5ID0+IHtcbiAgICByZXR1cm4ga2V5Lm1hdGNoKC9jb250ZW50LXR5cGUvaSkgIT0gbnVsbDtcbiAgfSk7XG5cbiAgaWYgKGNvbnRlbnRUeXBlS2V5cy5sZW5ndGggPT0gMCkge1xuICAgIC8vIG5vIGNvbnRlbnQgdHlwZVxuICAgIC8vICBBcyBwZXIgaHR0cHM6Ly9wYXJzZS5jb20vZG9jcy9jbG91ZGNvZGUvZ3VpZGUjY2xvdWQtY29kZS1hZHZhbmNlZC1zZW5kaW5nLWEtcG9zdC1yZXF1ZXN0IHRoZSBkZWZhdWx0IGVuY29kaW5nIGlzIHN1cHBvc2VkbHkgeC13d3ctZm9ybS11cmxlbmNvZGVkXG5cbiAgICBib2R5ID0gcXVlcnlzdHJpbmcuc3RyaW5naWZ5KGJvZHkpO1xuICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc7XG4gIH0gZWxzZSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoY29udGVudFR5cGVLZXlzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGxvZy5lcnJvcignUGFyc2UuQ2xvdWQuaHR0cFJlcXVlc3QnLCAnbXVsdGlwbGUgY29udGVudC10eXBlIGhlYWRlcnMgYXJlIHNldC4nKTtcbiAgICB9XG4gICAgLy8gVGhlcmUgbWF5YmUgbWFueSwgd2UnbGwganVzdCB0YWtlIHRoZSAxc3Qgb25lXG4gICAgdmFyIGNvbnRlbnRUeXBlID0gY29udGVudFR5cGVLZXlzWzBdO1xuICAgIGlmIChoZWFkZXJzW2NvbnRlbnRUeXBlXS5tYXRjaCgvYXBwbGljYXRpb25cXC9qc29uL2kpKSB7XG4gICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gICAgfSBlbHNlIGlmIChoZWFkZXJzW2NvbnRlbnRUeXBlXS5tYXRjaCgvYXBwbGljYXRpb25cXC94LXd3dy1mb3JtLXVybGVuY29kZWQvaSkpIHtcbiAgICAgIGJvZHkgPSBxdWVyeXN0cmluZy5zdHJpbmdpZnkoYm9keSk7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IGJvZHksIGhlYWRlcnMgfTtcbn07XG5cbmZ1bmN0aW9uIGh0dHBSZXF1ZXN0KG9wdGlvbnMpIHtcbiAgbGV0IHVybDtcbiAgdHJ5IHtcbiAgICB1cmwgPSBwYXJzZShvcHRpb25zLnVybCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZSk7XG4gIH1cbiAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24ob3B0aW9ucywgZW5jb2RlQm9keShvcHRpb25zKSk7XG4gIC8vIHN1cHBvcnQgcGFyYW1zIG9wdGlvbnNcbiAgaWYgKHR5cGVvZiBvcHRpb25zLnBhcmFtcyA9PT0gJ29iamVjdCcpIHtcbiAgICBvcHRpb25zLnFzID0gb3B0aW9ucy5wYXJhbXM7XG4gIH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMucGFyYW1zID09PSAnc3RyaW5nJykge1xuICAgIG9wdGlvbnMucXMgPSBxdWVyeXN0cmluZy5wYXJzZShvcHRpb25zLnBhcmFtcyk7XG4gIH1cbiAgY29uc3QgY2xpZW50ID0gY2xpZW50c1t1cmwucHJvdG9jb2xdO1xuICBpZiAoIWNsaWVudCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChgVW5zdXBwb3J0ZWQgcHJvdG9jb2wgJHt1cmwucHJvdG9jb2x9YCk7XG4gIH1cbiAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgbWV0aG9kOiBvcHRpb25zLm1ldGhvZCxcbiAgICBwb3J0OiBOdW1iZXIodXJsLnBvcnQpLFxuICAgIHBhdGg6IHVybC5wYXRobmFtZSxcbiAgICBob3N0bmFtZTogdXJsLmhvc3RuYW1lLFxuICAgIGhlYWRlcnM6IG9wdGlvbnMuaGVhZGVycyxcbiAgICBlbmNvZGluZzogbnVsbCxcbiAgICBmb2xsb3dSZWRpcmVjdHM6IG9wdGlvbnMuZm9sbG93UmVkaXJlY3RzID09PSB0cnVlLFxuICB9O1xuICBpZiAocmVxdWVzdE9wdGlvbnMuaGVhZGVycykge1xuICAgIE9iamVjdC5rZXlzKHJlcXVlc3RPcHRpb25zLmhlYWRlcnMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGlmICh0eXBlb2YgcmVxdWVzdE9wdGlvbnMuaGVhZGVyc1trZXldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBkZWxldGUgcmVxdWVzdE9wdGlvbnMuaGVhZGVyc1trZXldO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGlmICh1cmwuc2VhcmNoKSB7XG4gICAgb3B0aW9ucy5xcyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMucXMsIHF1ZXJ5c3RyaW5nLnBhcnNlKHVybC5xdWVyeSkpO1xuICB9XG4gIGlmICh1cmwuYXV0aCkge1xuICAgIHJlcXVlc3RPcHRpb25zLmF1dGggPSB1cmwuYXV0aDtcbiAgfVxuICBpZiAob3B0aW9ucy5xcykge1xuICAgIHJlcXVlc3RPcHRpb25zLnBhdGggKz0gYD8ke3F1ZXJ5c3RyaW5nLnN0cmluZ2lmeShvcHRpb25zLnFzKX1gO1xuICB9XG4gIGlmIChvcHRpb25zLmFnZW50KSB7XG4gICAgcmVxdWVzdE9wdGlvbnMuYWdlbnQgPSBvcHRpb25zLmFnZW50O1xuICB9XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgcmVxID0gY2xpZW50LnJlcXVlc3QocmVxdWVzdE9wdGlvbnMsIG1ha2VDYWxsYmFjayhyZXNvbHZlLCByZWplY3QsIG9wdGlvbnMpKTtcbiAgICBpZiAob3B0aW9ucy5ib2R5KSB7XG4gICAgICByZXEud3JpdGUob3B0aW9ucy5ib2R5KTtcbiAgICB9XG4gICAgcmVxLm9uKCdlcnJvcicsIGVycm9yID0+IHtcbiAgICAgIHJlamVjdChlcnJvcik7XG4gICAgfSk7XG4gICAgcmVxLmVuZCgpO1xuICB9KTtcbn1cbm1vZHVsZS5leHBvcnRzID0gaHR0cFJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cy5lbmNvZGVCb2R5ID0gZW5jb2RlQm9keTtcbm1vZHVsZS5leHBvcnRzLkhUVFBSZXNwb25zZSA9IEhUVFBSZXNwb25zZTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFBQSxZQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxnQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsSUFBQSxHQUFBSCxPQUFBO0FBQTRCLFNBQUFELHVCQUFBSyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRTVCLE1BQU1HLFlBQVksQ0FBQztFQUNqQkMsV0FBV0EsQ0FBQ0MsUUFBUSxFQUFFQyxJQUFJLEVBQUU7SUFDMUIsSUFBSUMsS0FBSyxFQUFFQyxLQUFLO0lBQ2hCLElBQUksQ0FBQ0MsTUFBTSxHQUFHSixRQUFRLENBQUNLLFVBQVU7SUFDakMsSUFBSSxDQUFDQyxPQUFPLEdBQUdOLFFBQVEsQ0FBQ00sT0FBTyxJQUFJLENBQUMsQ0FBQztJQUNyQyxJQUFJLENBQUNDLE9BQU8sR0FBRyxJQUFJLENBQUNELE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFFekMsSUFBSSxPQUFPTCxJQUFJLElBQUksUUFBUSxFQUFFO01BQzNCQyxLQUFLLEdBQUdELElBQUk7SUFD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
@@ -3,8 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
- exports.default = errorMessage => {
6
+ exports.default = void 0;
7
+ var _default = errorMessage => {
8
8
  throw errorMessage;
9
9
  };
10
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXF1aXJlZFBhcmFtZXRlci5qcyJdLCJuYW1lcyI6WyJlcnJvck1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7Ozs7OztrQkFDZ0JBLFlBQUQsSUFBK0I7QUFBRSxRQUFNQSxZQUFOO0FBQW9CLEMiLCJmaWxlIjoicmVxdWlyZWRQYXJhbWV0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGZsb3cgKi9cbmV4cG9ydCBkZWZhdWx0IChlcnJvck1lc3NhZ2U6IHN0cmluZyk6IGFueSA9PiB7IHRocm93IGVycm9yTWVzc2FnZSB9XG4iXX0=
10
+ exports.default = _default;
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlcnJvck1lc3NhZ2UiLCJleHBvcnRzIiwiZGVmYXVsdCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL3JlcXVpcmVkUGFyYW1ldGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAZmxvdyAqL1xuZXhwb3J0IGRlZmF1bHQgKGVycm9yTWVzc2FnZTogc3RyaW5nKTogYW55ID0+IHtcbiAgdGhyb3cgZXJyb3JNZXNzYWdlO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O2VBQ2dCQSxZQUFvQixJQUFVO0VBQzVDLE1BQU1BLFlBQVk7QUFDcEIsQ0FBQztBQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FBQUMsUUFBQSIsImlnbm9yZUxpc3QiOltdfQ==