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/PATENTS DELETED
@@ -1,37 +0,0 @@
1
- Additional Grant of Patent Rights Version 2
2
-
3
- "Software" means the Parse Server software distributed by Parse, LLC.
4
-
5
- Parse, LLC. ("Parse") hereby grants to each recipient of the Software
6
- ("you") a perpetual, worldwide, royalty-free, non-exclusive, irrevocable
7
- (subject to the termination provision below) license under any Necessary
8
- Claims, to make, have made, use, sell, offer to sell, import, and otherwise
9
- transfer the Software. For avoidance of doubt, no license is granted under
10
- Parse’s rights in any patent claims that are infringed by (i) modifications
11
- to the Software made by you or any third party or (ii) the Software in
12
- combination with any software or other technology.
13
-
14
- The license granted hereunder will terminate, automatically and without notice,
15
- if you (or any of your subsidiaries, corporate affiliates or agents) initiate
16
- directly or indirectly, or take a direct financial interest in, any Patent
17
- Assertion: (i) against Parse or any of its subsidiaries or corporate
18
- affiliates, (ii) against any party if such Patent Assertion arises in whole or
19
- in part from any software, technology, product or service of Parse or any of
20
- its subsidiaries or corporate affiliates, or (iii) against any party relating
21
- to the Software. Notwithstanding the foregoing, if Parse or any of its
22
- subsidiaries or corporate affiliates files a lawsuit alleging patent
23
- infringement against you in the first instance, and you respond by filing a
24
- patent infringement counterclaim in that lawsuit against that party that is
25
- unrelated to the Software, the license granted hereunder will not terminate
26
- under section (i) of this paragraph due to such counterclaim.
27
-
28
- A "Necessary Claim" is a claim of a patent owned by Parse that is
29
- necessarily infringed by the Software standing alone.
30
-
31
- A "Patent Assertion" is any lawsuit or other action alleging direct, indirect,
32
- or contributory infringement or inducement to infringe any patent, including a
33
- cross-claim or counterclaim.
34
-
35
- -----
36
-
37
- As of April 5, 2017, Parse, LLC has transferred this code to the parse-community organization, and will no longer be contributing to or distributing this code.
package/bin/dev DELETED
@@ -1,37 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- var nodemon = require('nodemon');
4
- var babel = require("babel-core");
5
- var gaze = require('gaze');
6
- var fs = require('fs');
7
- var path = require('path');
8
-
9
- // Watch the src and transpile when changed
10
- gaze('src/**/*', function(err, watcher) {
11
- if (err) throw err;
12
- watcher.on('changed', function(sourceFile) {
13
- console.log(sourceFile + " has changed");
14
- try {
15
- targetFile = path.relative(__dirname, sourceFile).replace(/\/src\//, '/lib/');
16
- targetFile = path.resolve(__dirname, targetFile);
17
- fs.writeFile(targetFile, babel.transformFileSync(sourceFile).code);
18
- } catch (e) {
19
- console.error(e.message, e.stack);
20
- }
21
- });
22
- });
23
-
24
- try {
25
- // Run and watch dist
26
- nodemon({
27
- script: 'bin/parse-server',
28
- ext: 'js json',
29
- watch: 'lib'
30
- });
31
- } catch (e) {
32
- console.error(e.message, e.stack);
33
- }
34
-
35
- process.once('SIGINT', function() {
36
- process.exit(0);
37
- });
package/lib/.DS_Store DELETED
Binary file
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjb21tb24uanMiLCJzb3VyY2VzQ29udGVudCI6W119
@@ -1,69 +0,0 @@
1
- 'use strict';
2
-
3
- const crypto = require('crypto');
4
- const https = require('https');
5
- const Parse = require('parse/node').Parse;
6
-
7
- const graphRequest = path => {
8
- return new Promise((resolve, reject) => {
9
- https.get(`https://graph.accountkit.com/v1.1/${path}`, res => {
10
- var data = '';
11
- res.on('data', chunk => {
12
- data += chunk;
13
- });
14
- res.on('end', () => {
15
- try {
16
- data = JSON.parse(data);
17
- if (data.error) {
18
- // when something wrong with fb graph request (token corrupted etc.)
19
- // instead of network issue
20
- reject(data.error);
21
- } else {
22
- resolve(data);
23
- }
24
- } catch (e) {
25
- reject(e);
26
- }
27
- });
28
- }).on('error', function () {
29
- reject('Failed to validate this access token with Facebook Account Kit.');
30
- });
31
- });
32
- };
33
-
34
- function getRequestPath(authData, options) {
35
- const access_token = authData.access_token,
36
- appSecret = options && options.appSecret;
37
- if (appSecret) {
38
- const appsecret_proof = crypto.createHmac("sha256", appSecret).update(access_token).digest('hex');
39
- return `me?access_token=${access_token}&appsecret_proof=${appsecret_proof}`;
40
- }
41
- return `me?access_token=${access_token}`;
42
- }
43
-
44
- function validateAppId(appIds, authData, options) {
45
- if (!appIds.length) {
46
- return Promise.reject(new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Facebook app id for Account Kit is not configured.'));
47
- }
48
- return graphRequest(getRequestPath(authData, options)).then(data => {
49
- if (data && data.application && appIds.indexOf(data.application.id) != -1) {
50
- return;
51
- }
52
- throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Facebook app id for Account Kit is invalid for this user.');
53
- });
54
- }
55
-
56
- function validateAuthData(authData, options) {
57
- return graphRequest(getRequestPath(authData, options)).then(data => {
58
- if (data && data.id == authData.id) {
59
- return;
60
- }
61
- throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Facebook Account Kit auth is invalid for this user.');
62
- });
63
- }
64
-
65
- module.exports = {
66
- validateAppId,
67
- validateAuthData
68
- };
69
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL2ZhY2Vib29rYWNjb3VudGtpdC5qcyJdLCJuYW1lcyI6WyJjcnlwdG8iLCJyZXF1aXJlIiwiaHR0cHMiLCJQYXJzZSIsImdyYXBoUmVxdWVzdCIsInBhdGgiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImdldCIsInJlcyIsImRhdGEiLCJvbiIsImNodW5rIiwiSlNPTiIsInBhcnNlIiwiZXJyb3IiLCJlIiwiZ2V0UmVxdWVzdFBhdGgiLCJhdXRoRGF0YSIsIm9wdGlvbnMiLCJhY2Nlc3NfdG9rZW4iLCJhcHBTZWNyZXQiLCJhcHBzZWNyZXRfcHJvb2YiLCJjcmVhdGVIbWFjIiwidXBkYXRlIiwiZGlnZXN0IiwidmFsaWRhdGVBcHBJZCIsImFwcElkcyIsImxlbmd0aCIsIkVycm9yIiwiT0JKRUNUX05PVF9GT1VORCIsInRoZW4iLCJhcHBsaWNhdGlvbiIsImluZGV4T2YiLCJpZCIsInZhbGlkYXRlQXV0aERhdGEiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLFNBQVNDLFFBQVEsUUFBUixDQUFmO0FBQ0EsTUFBTUMsUUFBUUQsUUFBUSxPQUFSLENBQWQ7QUFDQSxNQUFNRSxRQUFTRixRQUFRLFlBQVIsRUFBc0JFLEtBQXJDOztBQUVBLE1BQU1DLGVBQWdCQyxJQUFELElBQVU7QUFDN0IsU0FBTyxJQUFJQyxPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQ3RDTixVQUFNTyxHQUFOLENBQVcscUNBQW9DSixJQUFLLEVBQXBELEVBQXdESyxHQUFELElBQVM7QUFDOUQsVUFBSUMsT0FBTyxFQUFYO0FBQ0FELFVBQUlFLEVBQUosQ0FBTyxNQUFQLEVBQWdCQyxLQUFELElBQVc7QUFDeEJGLGdCQUFRRSxLQUFSO0FBQ0QsT0FGRDtBQUdBSCxVQUFJRSxFQUFKLENBQU8sS0FBUCxFQUFjLE1BQU07QUFDbEIsWUFBSTtBQUNGRCxpQkFBT0csS0FBS0MsS0FBTCxDQUFXSixJQUFYLENBQVA7QUFDQSxjQUFJQSxLQUFLSyxLQUFULEVBQWdCO0FBQ2Q7QUFDQTtBQUNBUixtQkFBT0csS0FBS0ssS0FBWjtBQUNELFdBSkQsTUFJTztBQUNMVCxvQkFBUUksSUFBUjtBQUNEO0FBQ0YsU0FURCxDQVNFLE9BQU9NLENBQVAsRUFBVTtBQUNWVCxpQkFBT1MsQ0FBUDtBQUNEO0FBQ0YsT0FiRDtBQWNELEtBbkJELEVBbUJHTCxFQW5CSCxDQW1CTSxPQW5CTixFQW1CZSxZQUFZO0FBQ3pCSixhQUFPLGlFQUFQO0FBQ0QsS0FyQkQ7QUFzQkQsR0F2Qk0sQ0FBUDtBQXdCRCxDQXpCRDs7QUEyQkEsU0FBU1UsY0FBVCxDQUF3QkMsUUFBeEIsRUFBa0NDLE9BQWxDLEVBQTJDO0FBQ3pDLFFBQU1DLGVBQWVGLFNBQVNFLFlBQTlCO0FBQUEsUUFBNENDLFlBQVlGLFdBQVdBLFFBQVFFLFNBQTNFO0FBQ0EsTUFBSUEsU0FBSixFQUFlO0FBQ2IsVUFBTUMsa0JBQWtCdkIsT0FBT3dCLFVBQVAsQ0FBa0IsUUFBbEIsRUFBNEJGLFNBQTVCLEVBQXVDRyxNQUF2QyxDQUE4Q0osWUFBOUMsRUFBNERLLE1BQTVELENBQW1FLEtBQW5FLENBQXhCO0FBQ0EsV0FBUSxtQkFBa0JMLFlBQWEsb0JBQW1CRSxlQUFnQixFQUExRTtBQUNEO0FBQ0QsU0FBUSxtQkFBa0JGLFlBQWEsRUFBdkM7QUFDRDs7QUFFRCxTQUFTTSxhQUFULENBQXVCQyxNQUF2QixFQUErQlQsUUFBL0IsRUFBeUNDLE9BQXpDLEVBQWtEO0FBQ2hELE1BQUksQ0FBQ1EsT0FBT0MsTUFBWixFQUFvQjtBQUNsQixXQUFPdkIsUUFBUUUsTUFBUixDQUNMLElBQUlMLE1BQU0yQixLQUFWLENBQ0UzQixNQUFNMkIsS0FBTixDQUFZQyxnQkFEZCxFQUVFLG9EQUZGLENBREssQ0FBUDtBQUtEO0FBQ0QsU0FBTzNCLGFBQWFjLGVBQWVDLFFBQWYsRUFBeUJDLE9BQXpCLENBQWIsRUFDSlksSUFESSxDQUNDckIsUUFBUTtBQUNaLFFBQUlBLFFBQVFBLEtBQUtzQixXQUFiLElBQTRCTCxPQUFPTSxPQUFQLENBQWV2QixLQUFLc0IsV0FBTCxDQUFpQkUsRUFBaEMsS0FBdUMsQ0FBQyxDQUF4RSxFQUEyRTtBQUN6RTtBQUNEO0FBQ0QsVUFBTSxJQUFJaEMsTUFBTTJCLEtBQVYsQ0FDSjNCLE1BQU0yQixLQUFOLENBQVlDLGdCQURSLEVBRUosMkRBRkksQ0FBTjtBQUdELEdBUkksQ0FBUDtBQVNEOztBQUVELFNBQVNLLGdCQUFULENBQTBCakIsUUFBMUIsRUFBb0NDLE9BQXBDLEVBQTZDO0FBQzNDLFNBQU9oQixhQUFhYyxlQUFlQyxRQUFmLEVBQXlCQyxPQUF6QixDQUFiLEVBQ0pZLElBREksQ0FDQ3JCLFFBQVE7QUFDWixRQUFJQSxRQUFRQSxLQUFLd0IsRUFBTCxJQUFXaEIsU0FBU2dCLEVBQWhDLEVBQW9DO0FBQ2xDO0FBQ0Q7QUFDRCxVQUFNLElBQUloQyxNQUFNMkIsS0FBVixDQUNKM0IsTUFBTTJCLEtBQU4sQ0FBWUMsZ0JBRFIsRUFFSixxREFGSSxDQUFOO0FBR0QsR0FSSSxDQUFQO0FBU0Q7O0FBRURNLE9BQU9DLE9BQVAsR0FBaUI7QUFDZlgsZUFEZTtBQUVmUztBQUZlLENBQWpCIiwiZmlsZSI6ImZhY2Vib29rYWNjb3VudGtpdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpO1xuY29uc3QgaHR0cHMgPSByZXF1aXJlKCdodHRwcycpO1xuY29uc3QgUGFyc2UgID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpLlBhcnNlO1xuXG5jb25zdCBncmFwaFJlcXVlc3QgPSAocGF0aCkgPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGh0dHBzLmdldChgaHR0cHM6Ly9ncmFwaC5hY2NvdW50a2l0LmNvbS92MS4xLyR7cGF0aH1gLCAocmVzKSA9PiB7XG4gICAgICB2YXIgZGF0YSA9ICcnO1xuICAgICAgcmVzLm9uKCdkYXRhJywgKGNodW5rKSA9PiB7XG4gICAgICAgIGRhdGEgKz0gY2h1bms7XG4gICAgICB9KTtcbiAgICAgIHJlcy5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICAgIGlmIChkYXRhLmVycm9yKSB7XG4gICAgICAgICAgICAvLyB3aGVuIHNvbWV0aGluZyB3cm9uZyB3aXRoIGZiIGdyYXBoIHJlcXVlc3QgKHRva2VuIGNvcnJ1cHRlZCBldGMuKVxuICAgICAgICAgICAgLy8gaW5zdGVhZCBvZiBuZXR3b3JrIGlzc3VlXG4gICAgICAgICAgICByZWplY3QoZGF0YS5lcnJvcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KS5vbignZXJyb3InLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZWplY3QoJ0ZhaWxlZCB0byB2YWxpZGF0ZSB0aGlzIGFjY2VzcyB0b2tlbiB3aXRoIEZhY2Vib29rIEFjY291bnQgS2l0LicpO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmZ1bmN0aW9uIGdldFJlcXVlc3RQYXRoKGF1dGhEYXRhLCBvcHRpb25zKSB7XG4gIGNvbnN0IGFjY2Vzc190b2tlbiA9IGF1dGhEYXRhLmFjY2Vzc190b2tlbiwgYXBwU2VjcmV0ID0gb3B0aW9ucyAmJiBvcHRpb25zLmFwcFNlY3JldDtcbiAgaWYgKGFwcFNlY3JldCkge1xuICAgIGNvbnN0IGFwcHNlY3JldF9wcm9vZiA9IGNyeXB0by5jcmVhdGVIbWFjKFwic2hhMjU2XCIsIGFwcFNlY3JldCkudXBkYXRlKGFjY2Vzc190b2tlbikuZGlnZXN0KCdoZXgnKTtcbiAgICByZXR1cm4gYG1lP2FjY2Vzc190b2tlbj0ke2FjY2Vzc190b2tlbn0mYXBwc2VjcmV0X3Byb29mPSR7YXBwc2VjcmV0X3Byb29mfWBcbiAgfVxuICByZXR1cm4gYG1lP2FjY2Vzc190b2tlbj0ke2FjY2Vzc190b2tlbn1gO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUFwcElkKGFwcElkcywgYXV0aERhdGEsIG9wdGlvbnMpIHtcbiAgaWYgKCFhcHBJZHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxuICAgICAgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICBQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELFxuICAgICAgICAnRmFjZWJvb2sgYXBwIGlkIGZvciBBY2NvdW50IEtpdCBpcyBub3QgY29uZmlndXJlZC4nKVxuICAgIClcbiAgfVxuICByZXR1cm4gZ3JhcGhSZXF1ZXN0KGdldFJlcXVlc3RQYXRoKGF1dGhEYXRhLCBvcHRpb25zKSlcbiAgICAudGhlbihkYXRhID0+IHtcbiAgICAgIGlmIChkYXRhICYmIGRhdGEuYXBwbGljYXRpb24gJiYgYXBwSWRzLmluZGV4T2YoZGF0YS5hcHBsaWNhdGlvbi5pZCkgIT0gLTEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICBQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELFxuICAgICAgICAnRmFjZWJvb2sgYXBwIGlkIGZvciBBY2NvdW50IEtpdCBpcyBpbnZhbGlkIGZvciB0aGlzIHVzZXIuJyk7XG4gICAgfSlcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVBdXRoRGF0YShhdXRoRGF0YSwgb3B0aW9ucykge1xuICByZXR1cm4gZ3JhcGhSZXF1ZXN0KGdldFJlcXVlc3RQYXRoKGF1dGhEYXRhLCBvcHRpb25zKSlcbiAgICAudGhlbihkYXRhID0+IHtcbiAgICAgIGlmIChkYXRhICYmIGRhdGEuaWQgPT0gYXV0aERhdGEuaWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICBQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELFxuICAgICAgICAnRmFjZWJvb2sgQWNjb3VudCBLaXQgYXV0aCBpcyBpbnZhbGlkIGZvciB0aGlzIHVzZXIuJyk7XG4gICAgfSlcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHZhbGlkYXRlQXBwSWQsXG4gIHZhbGlkYXRlQXV0aERhdGFcbn07XG4iXX0=
@@ -1,97 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _cryptoUtils = require("../cryptoUtils");
8
-
9
- var _defaults = require("../defaults");
10
-
11
- var _defaults2 = _interopRequireDefault(_defaults);
12
-
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
-
15
- const MAIN_SCHEMA = "__MAIN_SCHEMA";
16
- const SCHEMA_CACHE_PREFIX = "__SCHEMA";
17
- const ALL_KEYS = "__ALL_KEYS";
18
-
19
- class SchemaCache {
20
-
21
- constructor(cacheController, ttl = _defaults2.default.schemaCacheTTL, singleCache = false) {
22
- this.ttl = ttl;
23
- if (typeof ttl == 'string') {
24
- this.ttl = parseInt(ttl);
25
- }
26
- this.cache = cacheController;
27
- this.prefix = SCHEMA_CACHE_PREFIX;
28
- if (!singleCache) {
29
- this.prefix += (0, _cryptoUtils.randomString)(20);
30
- }
31
- }
32
-
33
- put(key, value) {
34
- return this.cache.get(this.prefix + ALL_KEYS).then(allKeys => {
35
- allKeys = allKeys || {};
36
- allKeys[key] = true;
37
- return Promise.all([this.cache.put(this.prefix + ALL_KEYS, allKeys, this.ttl), this.cache.put(key, value, this.ttl)]);
38
- });
39
- }
40
-
41
- getAllClasses() {
42
- if (!this.ttl) {
43
- return Promise.resolve(null);
44
- }
45
- return this.cache.get(this.prefix + MAIN_SCHEMA);
46
- }
47
-
48
- setAllClasses(schema) {
49
- if (!this.ttl) {
50
- return Promise.resolve(null);
51
- }
52
- return this.put(this.prefix + MAIN_SCHEMA, schema);
53
- }
54
-
55
- setOneSchema(className, schema) {
56
- if (!this.ttl) {
57
- return Promise.resolve(null);
58
- }
59
- return this.put(this.prefix + className, schema);
60
- }
61
-
62
- getOneSchema(className) {
63
- if (!this.ttl) {
64
- return Promise.resolve(null);
65
- }
66
- return this.cache.get(this.prefix + className).then(schema => {
67
- if (schema) {
68
- return Promise.resolve(schema);
69
- }
70
- return this.cache.get(this.prefix + MAIN_SCHEMA).then(cachedSchemas => {
71
- cachedSchemas = cachedSchemas || [];
72
- schema = cachedSchemas.find(cachedSchema => {
73
- return cachedSchema.className === className;
74
- });
75
- if (schema) {
76
- return Promise.resolve(schema);
77
- }
78
- return Promise.resolve(null);
79
- });
80
- });
81
- }
82
-
83
- clear() {
84
- // That clears all caches...
85
- return this.cache.get(this.prefix + ALL_KEYS).then(allKeys => {
86
- if (!allKeys) {
87
- return;
88
- }
89
- const promises = Object.keys(allKeys).map(key => {
90
- return this.cache.del(key);
91
- });
92
- return Promise.all(promises);
93
- });
94
- }
95
- }
96
- exports.default = SchemaCache;
97
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVycy9TY2hlbWFDYWNoZS5qcyJdLCJuYW1lcyI6WyJNQUlOX1NDSEVNQSIsIlNDSEVNQV9DQUNIRV9QUkVGSVgiLCJBTExfS0VZUyIsIlNjaGVtYUNhY2hlIiwiY29uc3RydWN0b3IiLCJjYWNoZUNvbnRyb2xsZXIiLCJ0dGwiLCJkZWZhdWx0cyIsInNjaGVtYUNhY2hlVFRMIiwic2luZ2xlQ2FjaGUiLCJwYXJzZUludCIsImNhY2hlIiwicHJlZml4IiwicHV0Iiwia2V5IiwidmFsdWUiLCJnZXQiLCJ0aGVuIiwiYWxsS2V5cyIsIlByb21pc2UiLCJhbGwiLCJnZXRBbGxDbGFzc2VzIiwicmVzb2x2ZSIsInNldEFsbENsYXNzZXMiLCJzY2hlbWEiLCJzZXRPbmVTY2hlbWEiLCJjbGFzc05hbWUiLCJnZXRPbmVTY2hlbWEiLCJjYWNoZWRTY2hlbWFzIiwiZmluZCIsImNhY2hlZFNjaGVtYSIsImNsZWFyIiwicHJvbWlzZXMiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwiZGVsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFJQTs7QUFDQTs7Ozs7O0FBTEEsTUFBTUEsY0FBYyxlQUFwQjtBQUNBLE1BQU1DLHNCQUFzQixVQUE1QjtBQUNBLE1BQU1DLFdBQVcsWUFBakI7O0FBS2UsTUFBTUMsV0FBTixDQUFrQjs7QUFHL0JDLGNBQVlDLGVBQVosRUFBNkJDLE1BQU1DLG1CQUFTQyxjQUE1QyxFQUE0REMsY0FBYyxLQUExRSxFQUFpRjtBQUMvRSxTQUFLSCxHQUFMLEdBQVdBLEdBQVg7QUFDQSxRQUFJLE9BQU9BLEdBQVAsSUFBYyxRQUFsQixFQUE0QjtBQUMxQixXQUFLQSxHQUFMLEdBQVdJLFNBQVNKLEdBQVQsQ0FBWDtBQUNEO0FBQ0QsU0FBS0ssS0FBTCxHQUFhTixlQUFiO0FBQ0EsU0FBS08sTUFBTCxHQUFjWCxtQkFBZDtBQUNBLFFBQUksQ0FBQ1EsV0FBTCxFQUFrQjtBQUNoQixXQUFLRyxNQUFMLElBQWUsK0JBQWEsRUFBYixD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LENBQWV0QixHQUFmLENBQVA7QUFDRCxPQUZnQixDQUFqQjtBQUdBLGFBQU9LLFFBQVFDLEdBQVIsQ0FBWVksUUFBWixDQUFQO0FBQ0QsS0FSTSxDQUFQO0FBU0Q7QUE1RThCO2tCQUFaN0IsVyIsImZpbGUiOiJTY2hlbWFDYWNoZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IE1BSU5fU0NIRU1BID0gXCJfX01BSU5fU0NIRU1BXCI7XG5jb25zdCBTQ0hFTUFfQ0FDSEVfUFJFRklYID0gXCJfX1NDSEVNQVwiO1xuY29uc3QgQUxMX0tFWVMgPSBcIl9fQUxMX0tFWVNcIjtcblxuaW1wb3J0IHsgcmFuZG9tU3RyaW5nIH0gZnJvbSAnLi4vY3J5cHRvVXRpbHMnO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4uL2RlZmF1bHRzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2NoZW1hQ2FjaGUge1xuICBjYWNoZTogT2JqZWN0O1xuXG4gIGNvbnN0cnVjdG9yKGNhY2hlQ29udHJvbGxlciwgdHRsID0gZGVmYXVsdHMuc2NoZW1hQ2FjaGVUVEwsIHNpbmdsZUNhY2hlID0gZmFsc2UpIHtcbiAgICB0aGlzLnR0bCA9IHR0bDtcbiAgICBpZiAodHlwZW9mIHR0bCA9PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy50dGwgPSBwYXJzZUludCh0dGwpO1xuICAgIH1cbiAgICB0aGlzLmNhY2hlID0gY2FjaGVDb250cm9sbGVyO1xuICAgIHRoaXMucHJlZml4ID0gU0NIRU1BX0NBQ0hFX1BSRUZJWDtcbiAgICBpZiAoIXNpbmdsZUNhY2hlKSB7XG4gICAgICB0aGlzLnByZWZpeCArPSByYW5kb21TdHJpbmcoMjApO1xuICAgIH1cbiAgfVxuXG4gIHB1dChrZXksIHZhbHVlKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KHRoaXMucHJlZml4ICsgQUxMX0tFWVMpLnRoZW4oKGFsbEtleXMpID0+IHtcbiAgICAgIGFsbEtleXMgPSBhbGxLZXlzIHx8IHt9O1xuICAgICAgYWxsS2V5c1trZXldID0gdHJ1ZTtcbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChbdGhpcy5jYWNoZS5wdXQodGhpcy5wcmVmaXggKyBBTExfS0VZUywgYWxsS2V5cywgdGhpcy50dGwpLCB0aGlzLmNhY2hlLnB1dChrZXksIHZhbHVlLCB0aGlzLnR0bCldKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldEFsbENsYXNzZXMoKSB7XG4gICAgaWYgKCF0aGlzLnR0bCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KHRoaXMucHJlZml4ICsgTUFJTl9TQ0hFTUEpO1xuICB9XG5cbiAgc2V0QWxsQ2xhc3NlcyhzY2hlbWEpIHtcbiAgICBpZiAoIXRoaXMudHRsKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wdXQodGhpcy5wcmVmaXggKyBNQUlOX1NDSEVNQSwgc2NoZW1hKTtcbiAgfVxuXG4gIHNldE9uZVNjaGVtYShjbGFzc05hbWUsIHNjaGVtYSkge1xuICAgIGlmICghdGhpcy50dGwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnB1dCh0aGlzLnByZWZpeCArIGNsYXNzTmFtZSwgc2NoZW1hKTtcbiAgfVxuXG4gIGdldE9uZVNjaGVtYShjbGFzc05hbWUpIHtcbiAgICBpZiAoIXRoaXMudHRsKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jYWNoZS5nZXQodGhpcy5wcmVmaXggKyBjbGFzc05hbWUpLnRoZW4oKHNjaGVtYSkgPT4ge1xuICAgICAgaWYgKHNjaGVtYSkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHNjaGVtYSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5jYWNoZS5nZXQodGhpcy5wcmVmaXggKyBNQUlOX1NDSEVNQSkudGhlbigoY2FjaGVkU2NoZW1hcykgPT4ge1xuICAgICAgICBjYWNoZWRTY2hlbWFzID0gY2FjaGVkU2NoZW1hcyB8fCBbXTtcbiAgICAgICAgc2NoZW1hID0gY2FjaGVkU2NoZW1hcy5maW5kKChjYWNoZWRTY2hlbWEpID0+IHtcbiAgICAgICAgICByZXR1cm4gY2FjaGVkU2NoZW1hLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHNjaGVtYSkge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc2NoZW1hKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICAvLyBUaGF0IGNsZWFycyBhbGwgY2FjaGVzLi4uXG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KHRoaXMucHJlZml4ICsgQUxMX0tFWVMpLnRoZW4oKGFsbEtleXMpID0+IHtcbiAgICAgIGlmICghYWxsS2V5cykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBwcm9taXNlcyA9IE9iamVjdC5rZXlzKGFsbEtleXMpLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhY2hlLmRlbChrZXkpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
Binary file
@@ -1,77 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.numberParser = numberParser;
7
- exports.numberOrBoolParser = numberOrBoolParser;
8
- exports.objectParser = objectParser;
9
- exports.arrayParser = arrayParser;
10
- exports.moduleOrObjectParser = moduleOrObjectParser;
11
- exports.booleanParser = booleanParser;
12
- exports.nullParser = nullParser;
13
- function numberParser(key) {
14
- return function (opt) {
15
- const intOpt = parseInt(opt);
16
- if (!Number.isInteger(intOpt)) {
17
- throw new Error(`Key ${key} has invalid value ${opt}`);
18
- }
19
- return intOpt;
20
- };
21
- }
22
-
23
- function numberOrBoolParser(key) {
24
- return function (opt) {
25
- if (typeof opt === 'boolean') {
26
- return opt;
27
- }
28
- if (opt === 'true') {
29
- return true;
30
- }
31
- if (opt === 'false') {
32
- return false;
33
- }
34
- return numberParser(key)(opt);
35
- };
36
- }
37
-
38
- function objectParser(opt) {
39
- if (typeof opt == 'object') {
40
- return opt;
41
- }
42
- return JSON.parse(opt);
43
- }
44
-
45
- function arrayParser(opt) {
46
- if (Array.isArray(opt)) {
47
- return opt;
48
- } else if (typeof opt === 'string') {
49
- return opt.split(',');
50
- } else {
51
- throw new Error(`${opt} should be a comma separated string or an array`);
52
- }
53
- }
54
-
55
- function moduleOrObjectParser(opt) {
56
- if (typeof opt == 'object') {
57
- return opt;
58
- }
59
- try {
60
- return JSON.parse(opt);
61
- } catch (e) {/* */}
62
- return opt;
63
- }
64
-
65
- function booleanParser(opt) {
66
- if (opt == true || opt == 'true' || opt == '1') {
67
- return true;
68
- }
69
- return false;
70
- }
71
-
72
- function nullParser(opt) {
73
- if (opt == 'null') {
74
- return null;
75
- }
76
- return opt;
77
- }
Binary file
@@ -1,57 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- class HTTPResponse {
7
- constructor(response, body) {
8
- let _text, _data;
9
- this.status = response.statusCode;
10
- this.headers = response.headers || {};
11
- this.cookies = this.headers["set-cookie"];
12
-
13
- if (typeof body == 'string') {
14
- _text = body;
15
- } else if (Buffer.isBuffer(body)) {
16
- this.buffer = body;
17
- } else if (typeof body == 'object') {
18
- _data = body;
19
- }
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
-
30
- const getData = () => {
31
- if (!_data) {
32
- try {
33
- _data = JSON.parse(getText());
34
- } catch (e) {/* */}
35
- }
36
- return _data;
37
- };
38
-
39
- Object.defineProperty(this, 'body', {
40
- get: () => {
41
- return body;
42
- }
43
- });
44
-
45
- Object.defineProperty(this, 'text', {
46
- enumerable: true,
47
- get: getText
48
- });
49
-
50
- Object.defineProperty(this, 'data', {
51
- enumerable: true,
52
- get: getData
53
- });
54
- }
55
- }
56
- exports.default = HTTPResponse;
57
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbG91ZC1jb2RlL0hUVFBSZXNwb25zZS5qcyJdLCJuYW1lcyI6WyJIVFRQUmVzcG9uc2UiLCJjb25zdHJ1Y3RvciIsInJlc3BvbnNlIiwiYm9keSIsIl90ZXh0IiwiX2RhdGEiLCJzdGF0dXMiLCJzdGF0dXNDb2RlIiwiaGVhZGVycyIsImNvb2tpZXMiLCJCdWZmZXIiLCJpc0J1ZmZlciIsImJ1ZmZlciIsImdldFRleHQiLCJ0b1N0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJnZXREYXRhIiwicGFyc2UiLCJlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXQiLCJlbnVtZXJhYmxlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUNlLE1BQU1BLFlBQU4sQ0FBbUI7QUFDaENDLGNBQVlDLFFBQVosRUFBc0JDLElBQXRCLEVBQTRCO0FBQzFCLFFBQUlDLEtBQUosRUFBV0MsS0FBWDtBQUNBLFNBQUtDLE1BQUwsR0FBY0osU0FBU0ssVUFBdkI7QUFDQSxTQUFLQyxPQUFMLEdBQWVOLFNBQVNNLE9BQVQsSUFBb0IsRUFBbkM7QUFDQSxTQUFLQyxPQUFMLEdBQWUsS0FBS0QsT0FBTCxDQUFhLFlBQWIsQ0FBZjs7QUFFQSxRQUFJLE9BQU9MLElBQVAsSUFBZSxRQUFuQixFQUE2QjtBQUMzQkMsY0FBUUQsSUFBUjtBQUNELEtBRkQsTUFFTyxJQUFJTyxPQUFPQyxRQUFQLENBQWdCUixJQUFoQixDQUFKLEVBQTJCO0FBQ2hDLFdBQUtTLE1BQUwsR0FBY1QsSUFBZDtBQUNELEtBRk0sTUFFQSxJQUFJLE9BQU9BLElBQVAsSUFBZSxRQUFuQixFQUE2QjtBQUNsQ0UsY0FBUUYsSUFBUjtBQUNEOztBQUVELFVBQU1VLFVBQVUsTUFBTTtBQUNwQixVQUFJLENBQUNULEtBQUQsSUFBVSxLQUFLUSxNQUFuQixFQUEyQjtBQUN6QlIsZ0JBQVEsS0FBS1EsTUFBTCxDQUFZRSxRQUFaLENBQXFCLE9BQXJCLENBQVI7QUFDRCxPQUZELE1BRU8sSUFBSSxDQUFDVixLQUFELElBQVVDLEtBQWQsRUFBcUI7QUFDMUJELGdCQUFRVyxLQUFLQyxTQUFMLENBQWVYLEtBQWYsQ0FBUjtBQUNEO0FBQ0QsYUFBT0QsS0FBUDtBQUNELEtBUEQ7O0FBU0EsVUFBTWEsVUFBVSxNQUFNO0FBQ3BCLFVBQUksQ0FBQ1osS0FBTCxFQUFZO0FBQ1YsWUFBSTtBQUNGQSxrQkFBUVUsS0FBS0csS0FBTCxDQUFXTCxTQUFYLENBQVI7QUFDRCxTQUZELENBRUUsT0FBT00sQ0FBUCxFQUFVLENBQUUsS0FBTztBQUN0QjtBQUNELGFBQU9kLEtBQVA7QUFDRCxLQVBEOztBQVNBZSxXQUFPQyxjQUFQLENBQXNCLElBQXRCLEVBQTRCLE1BQTVCLEVBQW9DO0FBQ2xDQyxXQUFLLE1BQU07QUFBRSxlQUFPbkIsSUFBUDtBQUFhO0FBRFEsS0FBcEM7O0FBSUFpQixXQUFPQyxjQUFQLENBQXNCLElBQXRCLEVBQTRCLE1BQTVCLEVBQW9DO0FBQ2xDRSxrQkFBWSxJQURzQjtBQUVsQ0QsV0FBS1Q7QUFGNkIsS0FBcEM7O0FBS0FPLFdBQU9DLGNBQVAsQ0FBc0IsSUFBdEIsRUFBNEIsTUFBNUIsRUFBb0M7QUFDbENFLGtCQUFZLElBRHNCO0FBRWxDRCxXQUFLTDtBQUY2QixLQUFwQztBQUlEO0FBOUMrQjtrQkFBYmpCLFkiLCJmaWxlIjoiSFRUUFJlc3BvbnNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIVFRQUmVzcG9uc2Uge1xuICBjb25zdHJ1Y3RvcihyZXNwb25zZSwgYm9keSkge1xuICAgIGxldCBfdGV4dCwgX2RhdGE7XG4gICAgdGhpcy5zdGF0dXMgPSByZXNwb25zZS5zdGF0dXNDb2RlO1xuICAgIHRoaXMuaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnMgfHwge307XG4gICAgdGhpcy5jb29raWVzID0gdGhpcy5oZWFkZXJzW1wic2V0LWNvb2tpZVwiXTtcblxuICAgIGlmICh0eXBlb2YgYm9keSA9PSAnc3RyaW5nJykge1xuICAgICAgX3RleHQgPSBib2R5O1xuICAgIH0gZWxzZSBpZiAoQnVmZmVyLmlzQnVmZmVyKGJvZHkpKSB7XG4gICAgICB0aGlzLmJ1ZmZlciA9IGJvZHk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYm9keSA9PSAnb2JqZWN0Jykge1xuICAgICAgX2RhdGEgPSBib2R5O1xuICAgIH1cblxuICAgIGNvbnN0IGdldFRleHQgPSAoKSA9PiB7XG4gICAgICBpZiAoIV90ZXh0ICYmIHRoaXMuYnVmZmVyKSB7XG4gICAgICAgIF90ZXh0ID0gdGhpcy5idWZmZXIudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgICB9IGVsc2UgaWYgKCFfdGV4dCAmJiBfZGF0YSkge1xuICAgICAgICBfdGV4dCA9IEpTT04uc3RyaW5naWZ5KF9kYXRhKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBfdGV4dDtcbiAgICB9XG5cbiAgICBjb25zdCBnZXREYXRhID0gKCkgPT4ge1xuICAgICAgaWYgKCFfZGF0YSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIF9kYXRhID0gSlNPTi5wYXJzZShnZXRUZXh0KCkpO1xuICAgICAgICB9IGNhdGNoIChlKSB7IC8qICovIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBfZGF0YTtcbiAgICB9XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2JvZHknLCB7XG4gICAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIGJvZHkgfVxuICAgIH0pO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd0ZXh0Jywge1xuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZ2V0VGV4dFxuICAgIH0pO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdkYXRhJywge1xuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZ2V0RGF0YVxuICAgIH0pO1xuICB9XG59XG4iXX0=