@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,21 @@
1
+ "use strict";
2
+
3
+ const ParseServer = {};
4
+ /**
5
+ * ...
6
+ *
7
+ * @memberof Parse.Server
8
+ * @property {String} global Rate limit based on the number of requests made by all users.
9
+ * @property {String} session Rate limit based on the sessionToken.
10
+ * @property {String} user Rate limit based on the user ID.
11
+ * @property {String} ip Rate limit based on the request ip.
12
+ * ...
13
+ */
14
+ ParseServer.RateLimitZone = Object.freeze({
15
+ global: 'global',
16
+ session: 'session',
17
+ user: 'user',
18
+ ip: 'ip'
19
+ });
20
+ module.exports = ParseServer;
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZVNlcnZlciIsIlJhdGVMaW1pdFpvbmUiLCJPYmplY3QiLCJmcmVlemUiLCJnbG9iYWwiLCJzZXNzaW9uIiwidXNlciIsImlwIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbG91ZC1jb2RlL1BhcnNlLlNlcnZlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQYXJzZVNlcnZlciA9IHt9O1xuLyoqXG4gKiAuLi5cbiAqXG4gKiBAbWVtYmVyb2YgUGFyc2UuU2VydmVyXG4gKiBAcHJvcGVydHkge1N0cmluZ30gZ2xvYmFsIFJhdGUgbGltaXQgYmFzZWQgb24gdGhlIG51bWJlciBvZiByZXF1ZXN0cyBtYWRlIGJ5IGFsbCB1c2Vycy5cbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBzZXNzaW9uIFJhdGUgbGltaXQgYmFzZWQgb24gdGhlIHNlc3Npb25Ub2tlbi5cbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfSB1c2VyIFJhdGUgbGltaXQgYmFzZWQgb24gdGhlIHVzZXIgSUQuXG4gKiBAcHJvcGVydHkge1N0cmluZ30gaXAgUmF0ZSBsaW1pdCBiYXNlZCBvbiB0aGUgcmVxdWVzdCBpcC5cbiAqIC4uLlxuICovXG5QYXJzZVNlcnZlci5SYXRlTGltaXRab25lID0gT2JqZWN0LmZyZWV6ZSh7XG4gIGdsb2JhbDogJ2dsb2JhbCcsXG4gIHNlc3Npb246ICdzZXNzaW9uJyxcbiAgdXNlcjogJ3VzZXInLFxuICBpcDogJ2lwJyxcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFBhcnNlU2VydmVyO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQUEsV0FBVyxDQUFDQyxhQUFhLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDO0VBQ3hDQyxNQUFNLEVBQUUsUUFBUTtFQUNoQkMsT0FBTyxFQUFFLFNBQVM7RUFDbEJDLElBQUksRUFBRSxNQUFNO0VBQ1pDLEVBQUUsRUFBRTtBQUNOLENBQUMsQ0FBQztBQUVGQyxNQUFNLENBQUNDLE9BQU8sR0FBR1QsV0FBVyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.md5Hash = md5Hash;
7
+ exports.newObjectId = newObjectId;
8
+ exports.newToken = newToken;
9
+ exports.randomHexString = randomHexString;
10
+ exports.randomString = randomString;
11
+ var _crypto = require("crypto");
12
+ // Returns a new random hex string of the given even size.
13
+ function randomHexString(size) {
14
+ if (size === 0) {
15
+ throw new Error('Zero-length randomHexString is useless.');
16
+ }
17
+ if (size % 2 !== 0) {
18
+ throw new Error('randomHexString size must be divisible by 2.');
19
+ }
20
+ return (0, _crypto.randomBytes)(size / 2).toString('hex');
21
+ }
22
+
23
+ // Returns a new random alphanumeric string of the given size.
24
+ //
25
+ // Note: to simplify implementation, the result has slight modulo bias,
26
+ // because chars length of 62 doesn't divide the number of all bytes
27
+ // (256) evenly. Such bias is acceptable for most cases when the output
28
+ // length is long enough and doesn't need to be uniform.
29
+ function randomString(size) {
30
+ if (size === 0) {
31
+ throw new Error('Zero-length randomString is useless.');
32
+ }
33
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789';
34
+ let objectId = '';
35
+ const bytes = (0, _crypto.randomBytes)(size);
36
+ for (let i = 0; i < bytes.length; ++i) {
37
+ objectId += chars[bytes.readUInt8(i) % chars.length];
38
+ }
39
+ return objectId;
40
+ }
41
+
42
+ // Returns a new random alphanumeric string suitable for object ID.
43
+ function newObjectId(size = 10) {
44
+ return randomString(size);
45
+ }
46
+
47
+ // Returns a new random hex string suitable for secure tokens.
48
+ function newToken() {
49
+ return randomHexString(32);
50
+ }
51
+ function md5Hash(string) {
52
+ return (0, _crypto.createHash)('md5').update(string).digest('hex');
53
+ }
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3J5cHRvIiwicmVxdWlyZSIsInJhbmRvbUhleFN0cmluZyIsInNpemUiLCJFcnJvciIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJyYW5kb21TdHJpbmciLCJjaGFycyIsIm9iamVjdElkIiwiYnl0ZXMiLCJpIiwibGVuZ3RoIiwicmVhZFVJbnQ4IiwibmV3T2JqZWN0SWQiLCJuZXdUb2tlbiIsIm1kNUhhc2giLCJzdHJpbmciLCJjcmVhdGVIYXNoIiwidXBkYXRlIiwiZGlnZXN0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2NyeXB0b1V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCB7IHJhbmRvbUJ5dGVzLCBjcmVhdGVIYXNoIH0gZnJvbSAnY3J5cHRvJztcblxuLy8gUmV0dXJucyBhIG5ldyByYW5kb20gaGV4IHN0cmluZyBvZiB0aGUgZ2l2ZW4gZXZlbiBzaXplLlxuZXhwb3J0IGZ1bmN0aW9uIHJhbmRvbUhleFN0cmluZyhzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICBpZiAoc2l6ZSA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignWmVyby1sZW5ndGggcmFuZG9tSGV4U3RyaW5nIGlzIHVzZWxlc3MuJyk7XG4gIH1cbiAgaWYgKHNpemUgJSAyICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdyYW5kb21IZXhTdHJpbmcgc2l6ZSBtdXN0IGJlIGRpdmlzaWJsZSBieSAyLicpO1xuICB9XG4gIHJldHVybiByYW5kb21CeXRlcyhzaXplIC8gMikudG9TdHJpbmcoJ2hleCcpO1xufVxuXG4vLyBSZXR1cm5zIGEgbmV3IHJhbmRvbSBhbHBoYW51bWVyaWMgc3RyaW5nIG9mIHRoZSBnaXZlbiBzaXplLlxuLy9cbi8vIE5vdGU6IHRvIHNpbXBsaWZ5IGltcGxlbWVudGF0aW9uLCB0aGUgcmVzdWx0IGhhcyBzbGlnaHQgbW9kdWxvIGJpYXMsXG4vLyBiZWNhdXNlIGNoYXJzIGxlbmd0aCBvZiA2MiBkb2Vzbid0IGRpdmlkZSB0aGUgbnVtYmVyIG9mIGFsbCBieXRlc1xuLy8gKDI1NikgZXZlbmx5LiBTdWNoIGJpYXMgaXMgYWNjZXB0YWJsZSBmb3IgbW9zdCBjYXNlcyB3aGVuIHRoZSBvdXRwdXRcbi8vIGxlbmd0aCBpcyBsb25nIGVub3VnaCBhbmQgZG9lc24ndCBuZWVkIHRvIGJlIHVuaWZvcm0uXG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tU3RyaW5nKHNpemU6IG51bWJlcik6IHN0cmluZyB7XG4gIGlmIChzaXplID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdaZXJvLWxlbmd0aCByYW5kb21TdHJpbmcgaXMgdXNlbGVzcy4nKTtcbiAgfVxuICBjb25zdCBjaGFycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgKyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonICsgJzAxMjM0NTY3ODknO1xuICBsZXQgb2JqZWN0SWQgPSAnJztcbiAgY29uc3QgYnl0ZXMgPSByYW5kb21CeXRlcyhzaXplKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7ICsraSkge1xuICAgIG9iamVjdElkICs9IGNoYXJzW2J5dGVzLnJlYWRVSW50OChpKSAlIGNoYXJzLmxlbmd0aF07XG4gIH1cbiAgcmV0dXJuIG9iamVjdElkO1xufVxuXG4vLyBSZXR1cm5zIGEgbmV3IHJhbmRvbSBhbHBoYW51bWVyaWMgc3RyaW5nIHN1aXRhYmxlIGZvciBvYmplY3QgSUQuXG5leHBvcnQgZnVuY3Rpb24gbmV3T2JqZWN0SWQoc2l6ZTogbnVtYmVyID0gMTApOiBzdHJpbmcge1xuICByZXR1cm4gcmFuZG9tU3RyaW5nKHNpemUpO1xufVxuXG4vLyBSZXR1cm5zIGEgbmV3IHJhbmRvbSBoZXggc3RyaW5nIHN1aXRhYmxlIGZvciBzZWN1cmUgdG9rZW5zLlxuZXhwb3J0IGZ1bmN0aW9uIG5ld1Rva2VuKCk6IHN0cmluZyB7XG4gIHJldHVybiByYW5kb21IZXhTdHJpbmcoMzIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWQ1SGFzaChzdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBjcmVhdGVIYXNoKCdtZDUnKS51cGRhdGUoc3RyaW5nKS5kaWdlc3QoJ2hleCcpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBRUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBRUE7QUFDTyxTQUFTQyxlQUFlQSxDQUFDQyxJQUFZLEVBQVU7RUFDcEQsSUFBSUEsSUFBSSxLQUFLLENBQUMsRUFBRTtJQUNkLE1BQU0sSUFBSUMsS0FBSyxDQUFDLHlDQUF5QyxDQUFDO0VBQzVEO0VBQ0EsSUFBSUQsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7SUFDbEIsTUFBTSxJQUFJQyxLQUFLLENBQUMsOENBQThDLENBQUM7RUFDakU7RUFDQSxPQUFPLElBQUFDLG1CQUFXLEVBQUNGLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQ0csUUFBUSxDQUFDLEtBQUssQ0FBQztBQUM5Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQyxZQUFZQSxDQUFDSixJQUFZLEVBQVU7RUFDakQsSUFBSUEsSUFBSSxLQUFLLENBQUMsRUFBRTtJQUNkLE1BQU0sSUFBSUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDO0VBQ3pEO0VBQ0EsTUFBTUksS0FBSyxHQUFHLDRCQUE0QixHQUFHLDRCQUE0QixHQUFHLFlBQVk7RUFDeEYsSUFBSUMsUUFBUSxHQUFHLEVBQUU7RUFDakIsTUFBTUMsS0FBSyxHQUFHLElBQUFMLG1CQUFXLEVBQUNGLElBQUksQ0FBQztFQUMvQixLQUFLLElBQUlRLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR0QsS0FBSyxDQUFDRSxNQUFNLEVBQUUsRUFBRUQsQ0FBQyxFQUFFO0lBQ3JDRixRQUFRLElBQUlELEtBQUssQ0FBQ0UsS0FBSyxDQUFDRyxTQUFTLENBQUNGLENBQUMsQ0FBQyxHQUFHSCxLQUFLLENBQUNJLE1BQU0sQ0FBQztFQUN0RDtFQUNBLE9BQU9ILFFBQVE7QUFDakI7O0FBRUE7QUFDTyxTQUFTSyxXQUFXQSxDQUFDWCxJQUFZLEdBQUcsRUFBRSxFQUFVO0VBQ3JELE9BQU9JLFlBQVksQ0FBQ0osSUFBSSxDQUFDO0FBQzNCOztBQUVBO0FBQ08sU0FBU1ksUUFBUUEsQ0FBQSxFQUFXO0VBQ2pDLE9BQU9iLGVBQWUsQ0FBQyxFQUFFLENBQUM7QUFDNUI7QUFFTyxTQUFTYyxPQUFPQSxDQUFDQyxNQUFjLEVBQVU7RUFDOUMsT0FBTyxJQUFBQyxrQkFBVSxFQUFDLEtBQUssQ0FBQyxDQUFDQyxNQUFNLENBQUNGLE1BQU0sQ0FBQyxDQUFDRyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ3ZEIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.ParseServerDatabaseOptions = exports.DefaultMongoURI = exports.DatabaseOptionDefaults = void 0;
7
+ var _parsers = require("./Options/parsers");
8
+ const {
9
+ ParseServerOptions,
10
+ DatabaseOptions
11
+ } = require('./Options/Definitions');
12
+ const logsFolder = (() => {
13
+ let folder = './logs/';
14
+ if (typeof process !== 'undefined' && process.env.TESTING === '1') {
15
+ folder = './test_logs/';
16
+ }
17
+ if (process.env.PARSE_SERVER_LOGS_FOLDER) {
18
+ folder = (0, _parsers.nullParser)(process.env.PARSE_SERVER_LOGS_FOLDER);
19
+ }
20
+ return folder;
21
+ })();
22
+ const {
23
+ verbose,
24
+ level
25
+ } = (() => {
26
+ const verbose = process.env.VERBOSE ? true : false;
27
+ return {
28
+ verbose,
29
+ level: verbose ? 'verbose' : undefined
30
+ };
31
+ })();
32
+ const DefinitionDefaults = Object.keys(ParseServerOptions).reduce((memo, key) => {
33
+ const def = ParseServerOptions[key];
34
+ if (Object.prototype.hasOwnProperty.call(def, 'default')) {
35
+ memo[key] = def.default;
36
+ }
37
+ return memo;
38
+ }, {});
39
+ const computedDefaults = {
40
+ jsonLogs: process.env.JSON_LOGS || false,
41
+ logsFolder,
42
+ verbose,
43
+ level
44
+ };
45
+ var _default = exports.default = Object.assign({}, DefinitionDefaults, computedDefaults);
46
+ const DefaultMongoURI = exports.DefaultMongoURI = DefinitionDefaults.databaseURI;
47
+ const DatabaseOptionDefaults = exports.DatabaseOptionDefaults = Object.keys(DatabaseOptions).reduce((memo, key) => {
48
+ const def = DatabaseOptions[key];
49
+ if (Object.prototype.hasOwnProperty.call(def, 'default')) {
50
+ memo[key] = def.default;
51
+ }
52
+ return memo;
53
+ }, {});
54
+
55
+ // Parse Server-specific database options that should be filtered out
56
+ // before passing to MongoDB client
57
+ const ParseServerDatabaseOptions = exports.ParseServerDatabaseOptions = ['allowPublicExplain', 'batchSize', 'clientMetadata', 'createIndexAuthDataUniqueness', 'createIndexRoleName', 'createIndexUserEmail', 'createIndexUserEmailCaseInsensitive', 'createIndexUserEmailVerifyToken', 'createIndexUserPasswordResetToken', 'createIndexUserUsername', 'createIndexUserUsernameCaseInsensitive', 'disableIndexFieldValidation', 'enableSchemaHooks', 'logClientEvents', 'maxTimeMS', 'schemaCacheTtl'];
58
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGFyc2VycyIsInJlcXVpcmUiLCJQYXJzZVNlcnZlck9wdGlvbnMiLCJEYXRhYmFzZU9wdGlvbnMiLCJsb2dzRm9sZGVyIiwiZm9sZGVyIiwicHJvY2VzcyIsImVudiIsIlRFU1RJTkciLCJQQVJTRV9TRVJWRVJfTE9HU19GT0xERVIiLCJudWxsUGFyc2VyIiwidmVyYm9zZSIsImxldmVsIiwiVkVSQk9TRSIsInVuZGVmaW5lZCIsIkRlZmluaXRpb25EZWZhdWx0cyIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJtZW1vIiwia2V5IiwiZGVmIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVmYXVsdCIsImNvbXB1dGVkRGVmYXVsdHMiLCJqc29uTG9ncyIsIkpTT05fTE9HUyIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImFzc2lnbiIsIkRlZmF1bHRNb25nb1VSSSIsImRhdGFiYXNlVVJJIiwiRGF0YWJhc2VPcHRpb25EZWZhdWx0cyIsIlBhcnNlU2VydmVyRGF0YWJhc2VPcHRpb25zIl0sInNvdXJjZXMiOlsiLi4vc3JjL2RlZmF1bHRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG51bGxQYXJzZXIgfSBmcm9tICcuL09wdGlvbnMvcGFyc2Vycyc7XG5jb25zdCB7IFBhcnNlU2VydmVyT3B0aW9ucywgRGF0YWJhc2VPcHRpb25zIH0gPSByZXF1aXJlKCcuL09wdGlvbnMvRGVmaW5pdGlvbnMnKTtcbmNvbnN0IGxvZ3NGb2xkZXIgPSAoKCkgPT4ge1xuICBsZXQgZm9sZGVyID0gJy4vbG9ncy8nO1xuICBpZiAodHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MuZW52LlRFU1RJTkcgPT09ICcxJykge1xuICAgIGZvbGRlciA9ICcuL3Rlc3RfbG9ncy8nO1xuICB9XG4gIGlmIChwcm9jZXNzLmVudi5QQVJTRV9TRVJWRVJfTE9HU19GT0xERVIpIHtcbiAgICBmb2xkZXIgPSBudWxsUGFyc2VyKHByb2Nlc3MuZW52LlBBUlNFX1NFUlZFUl9MT0dTX0ZPTERFUik7XG4gIH1cbiAgcmV0dXJuIGZvbGRlcjtcbn0pKCk7XG5cbmNvbnN0IHsgdmVyYm9zZSwgbGV2ZWwgfSA9ICgoKSA9PiB7XG4gIGNvbnN0IHZlcmJvc2UgPSBwcm9jZXNzLmVudi5WRVJCT1NFID8gdHJ1ZSA6IGZhbHNlO1xuICByZXR1cm4geyB2ZXJib3NlLCBsZXZlbDogdmVyYm9zZSA/ICd2ZXJib3NlJyA6IHVuZGVmaW5lZCB9O1xufSkoKTtcblxuY29uc3QgRGVmaW5pdGlvbkRlZmF1bHRzID0gT2JqZWN0LmtleXMoUGFyc2VTZXJ2ZXJPcHRpb25zKS5yZWR1Y2UoKG1lbW8sIGtleSkgPT4ge1xuICBjb25zdCBkZWYgPSBQYXJzZVNlcnZlck9wdGlvbnNba2V5XTtcbiAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkZWYsICdkZWZhdWx0JykpIHtcbiAgICBtZW1vW2tleV0gPSBkZWYuZGVmYXVsdDtcbiAgfVxuICByZXR1cm4gbWVtbztcbn0sIHt9KTtcblxuY29uc3QgY29tcHV0ZWREZWZhdWx0cyA9IHtcbiAganNvbkxvZ3M6IHByb2Nlc3MuZW52LkpTT05fTE9HUyB8fCBmYWxzZSxcbiAgbG9nc0ZvbGRlcixcbiAgdmVyYm9zZSxcbiAgbGV2ZWwsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBPYmplY3QuYXNzaWduKHt9LCBEZWZpbml0aW9uRGVmYXVsdHMsIGNvbXB1dGVkRGVmYXVsdHMpO1xuZXhwb3J0IGNvbnN0IERlZmF1bHRNb25nb1VSSSA9IERlZmluaXRpb25EZWZhdWx0cy5kYXRhYmFzZVVSSTtcblxuZXhwb3J0IGNvbnN0IERhdGFiYXNlT3B0aW9uRGVmYXVsdHMgPSBPYmplY3Qua2V5cyhEYXRhYmFzZU9wdGlvbnMpLnJlZHVjZSgobWVtbywga2V5KSA9PiB7XG4gIGNvbnN0IGRlZiA9IERhdGFiYXNlT3B0aW9uc1trZXldO1xuICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRlZiwgJ2RlZmF1bHQnKSkge1xuICAgIG1lbW9ba2V5XSA9IGRlZi5kZWZhdWx0O1xuICB9XG4gIHJldHVybiBtZW1vO1xufSwge30pO1xuXG4vLyBQYXJzZSBTZXJ2ZXItc3BlY2lmaWMgZGF0YWJhc2Ugb3B0aW9ucyB0aGF0IHNob3VsZCBiZSBmaWx0ZXJlZCBvdXRcbi8vIGJlZm9yZSBwYXNzaW5nIHRvIE1vbmdvREIgY2xpZW50XG5leHBvcnQgY29uc3QgUGFyc2VTZXJ2ZXJEYXRhYmFzZU9wdGlvbnMgPSBbXG4gICdhbGxvd1B1YmxpY0V4cGxhaW4nLFxuICAnYmF0Y2hTaXplJyxcbiAgJ2NsaWVudE1ldGFkYXRhJyxcbiAgJ2NyZWF0ZUluZGV4QXV0aERhdGFVbmlxdWVuZXNzJyxcbiAgJ2NyZWF0ZUluZGV4Um9sZU5hbWUnLFxuICAnY3JlYXRlSW5kZXhVc2VyRW1haWwnLFxuICAnY3JlYXRlSW5kZXhVc2VyRW1haWxDYXNlSW5zZW5zaXRpdmUnLFxuICAnY3JlYXRlSW5kZXhVc2VyRW1haWxWZXJpZnlUb2tlbicsXG4gICdjcmVhdGVJbmRleFVzZXJQYXNzd29yZFJlc2V0VG9rZW4nLFxuICAnY3JlYXRlSW5kZXhVc2VyVXNlcm5hbWUnLFxuICAnY3JlYXRlSW5kZXhVc2VyVXNlcm5hbWVDYXNlSW5zZW5zaXRpdmUnLFxuICAnZGlzYWJsZUluZGV4RmllbGRWYWxpZGF0aW9uJyxcbiAgJ2VuYWJsZVNjaGVtYUhvb2tzJyxcbiAgJ2xvZ0NsaWVudEV2ZW50cycsXG4gICdtYXhUaW1lTVMnLFxuICAnc2NoZW1hQ2FjaGVUdGwnLFxuXTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQ0EsTUFBTTtFQUFFQyxrQkFBa0I7RUFBRUM7QUFBZ0IsQ0FBQyxHQUFHRixPQUFPLENBQUMsdUJBQXVCLENBQUM7QUFDaEYsTUFBTUcsVUFBVSxHQUFHLENBQUMsTUFBTTtFQUN4QixJQUFJQyxNQUFNLEdBQUcsU0FBUztFQUN0QixJQUFJLE9B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
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useExternal = useExternal;
7
+ function useExternal(name, moduleName) {
8
+ return function () {
9
+ throw `${name} is not provided by parse-server anymore; please install ${moduleName}`;
10
+ };
11
+ }
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFeHRlcm5hbCIsIm5hbWUiLCJtb2R1bGVOYW1lIl0sInNvdXJjZXMiOlsiLi4vc3JjL2RlcHJlY2F0ZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHVzZUV4dGVybmFsKG5hbWUsIG1vZHVsZU5hbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB0aHJvdyBgJHtuYW1lfSBpcyBub3QgcHJvdmlkZWQgYnkgcGFyc2Utc2VydmVyIGFueW1vcmU7IHBsZWFzZSBpbnN0YWxsICR7bW9kdWxlTmFtZX1gO1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxTQUFTQSxXQUFXQSxDQUFDQyxJQUFJLEVBQUVDLFVBQVUsRUFBRTtFQUM1QyxPQUFPLFlBQVk7SUFDakIsTUFBTSxHQUFHRCxJQUFJLDREQUE0REMsVUFBVSxFQUFFO0VBQ3ZGLENBQUM7QUFDSCIsImlnbm9yZUxpc3QiOltdfQ==
package/lib/index.js ADDED
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "AuthAdapter", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _AuthAdapter.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "FileSystemAdapter", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _fsFilesAdapter.default;
16
+ }
17
+ });
18
+ exports.GCSAdapter = void 0;
19
+ Object.defineProperty(exports, "InMemoryCacheAdapter", {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _InMemoryCacheAdapter.default;
23
+ }
24
+ });
25
+ Object.defineProperty(exports, "LRUCacheAdapter", {
26
+ enumerable: true,
27
+ get: function () {
28
+ return _LRUCache.default;
29
+ }
30
+ });
31
+ Object.defineProperty(exports, "NullCacheAdapter", {
32
+ enumerable: true,
33
+ get: function () {
34
+ return _NullCacheAdapter.default;
35
+ }
36
+ });
37
+ Object.defineProperty(exports, "ParseGraphQLServer", {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _ParseGraphQLServer.ParseGraphQLServer;
41
+ }
42
+ });
43
+ exports.ParseServer = void 0;
44
+ Object.defineProperty(exports, "PushWorker", {
45
+ enumerable: true,
46
+ get: function () {
47
+ return _PushWorker.PushWorker;
48
+ }
49
+ });
50
+ Object.defineProperty(exports, "RedisCacheAdapter", {
51
+ enumerable: true,
52
+ get: function () {
53
+ return _RedisCacheAdapter.default;
54
+ }
55
+ });
56
+ exports.default = exports.TestUtils = exports.SchemaMigrations = exports.S3Adapter = void 0;
57
+ var _ParseServer2 = _interopRequireDefault(require("./ParseServer"));
58
+ var _fsFilesAdapter = _interopRequireDefault(require("@parse/fs-files-adapter"));
59
+ var _InMemoryCacheAdapter = _interopRequireDefault(require("./Adapters/Cache/InMemoryCacheAdapter"));
60
+ var _NullCacheAdapter = _interopRequireDefault(require("./Adapters/Cache/NullCacheAdapter"));
61
+ var _RedisCacheAdapter = _interopRequireDefault(require("./Adapters/Cache/RedisCacheAdapter"));
62
+ var _LRUCache = _interopRequireDefault(require("./Adapters/Cache/LRUCache.js"));
63
+ var TestUtils = _interopRequireWildcard(require("./TestUtils"));
64
+ exports.TestUtils = TestUtils;
65
+ var SchemaMigrations = _interopRequireWildcard(require("./SchemaMigrations/Migrations"));
66
+ exports.SchemaMigrations = SchemaMigrations;
67
+ var _AuthAdapter = _interopRequireDefault(require("./Adapters/Auth/AuthAdapter"));
68
+ var _deprecated = require("./deprecated");
69
+ var _logger = require("./logger");
70
+ var _PushWorker = require("./Push/PushWorker");
71
+ var _ParseGraphQLServer = require("./GraphQL/ParseGraphQLServer");
72
+ 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); }
73
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
74
+ // Factory function
75
+ const _ParseServer = function (options) {
76
+ const server = new _ParseServer2.default(options);
77
+ return server;
78
+ };
79
+ // Mount the create liveQueryServer
80
+ exports.ParseServer = _ParseServer;
81
+ _ParseServer.createLiveQueryServer = _ParseServer2.default.createLiveQueryServer;
82
+ _ParseServer.startApp = _ParseServer2.default.startApp;
83
+ const S3Adapter = exports.S3Adapter = (0, _deprecated.useExternal)('S3Adapter', '@parse/s3-files-adapter');
84
+ const GCSAdapter = exports.GCSAdapter = (0, _deprecated.useExternal)('GCSAdapter', '@parse/gcs-files-adapter');
85
+ Object.defineProperty(module.exports, 'logger', {
86
+ get: _logger.getLogger
87
+ });
88
+ var _default = exports.default = _ParseServer2.default;
89
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUGFyc2VTZXJ2ZXIyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNGaWxlc0FkYXB0ZXIiLCJfSW5NZW1vcnlDYWNoZUFkYXB0ZXIiLCJfTnVsbENhY2hlQWRhcHRlciIsIl9SZWRpc0NhY2hlQWRhcHRlciIsIl9MUlVDYWNoZSIsIlRlc3RVdGlscyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiZXhwb3J0cyIsIlNjaGVtYU1pZ3JhdGlvbnMiLCJfQXV0aEFkYXB0ZXIiLCJfZGVwcmVjYXRlZCIsIl9sb2dnZXIiLCJfUHVzaFdvcmtlciIsIl9QYXJzZUdyYXBoUUxTZXJ2ZXIiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfUGFyc2VTZXJ2ZXIiLCJvcHRpb25zIiwic2VydmVyIiwiUGFyc2VTZXJ2ZXIiLCJjcmVhdGVMaXZlUXVlcnlTZXJ2ZXIiLCJzdGFydEFwcCIsIlMzQWRhcHRlciIsInVzZUV4dGVybmFsIiwiR0NTQWRhcHRlciIsIm1vZHVsZSIsImdldExvZ2dlciIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQYXJzZVNlcnZlciBmcm9tICcuL1BhcnNlU2VydmVyJztcbmltcG9ydCBGaWxlU3lzdGVtQWRhcHRlciBmcm9tICdAcGFyc2UvZnMtZmlsZXMtYWRhcHRlcic7XG5pbXBvcnQgSW5NZW1vcnlDYWNoZUFkYXB0ZXIgZnJvbSAnLi9BZGFwdGVycy9DYWNoZS9Jbk1lbW9yeUNhY2hlQWRhcHRlcic7XG5pbXBvcnQgTnVsbENhY2hlQWRhcHRlciBmcm9tICcuL0FkYXB0ZXJzL0NhY2hlL051bGxDYWNoZUFkYXB0ZXInO1xuaW1wb3J0IFJlZGlzQ2FjaGVBZGFwdGVyIGZyb20gJy4vQWRhcHRlcnMvQ2FjaGUvUmVkaXNDYWNoZUFkYXB0ZXInO1xuaW1wb3J0IExSVUNhY2hlQWRhcHRlciBmcm9tICcuL0FkYXB0ZXJzL0NhY2hlL0xSVUNhY2hlLmpzJztcbmltcG9ydCAqIGFzIFRlc3RVdGlscyBmcm9tICcuL1Rlc3RVdGlscyc7XG5pbXBvcnQgKiBhcyBTY2hlbWFNaWdyYXRpb25zIGZyb20gJy4vU2NoZW1hTWlncmF0aW9ucy9NaWdyYXRpb25zJztcbmltcG9ydCBBdXRoQWRhcHRlciBmcm9tICcuL0FkYXB0ZXJzL0F1dGgvQXV0aEFkYXB0ZXInO1xuaW1wb3J0IHsgdXNlRXh0ZXJuYWwgfSBmcm9tICcuL2RlcHJlY2F0ZWQnO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgUHVzaFdvcmtlciB9IGZyb20gJy4vUHVzaC9QdXNoV29ya2VyJztcbmltcG9ydCB7IFBhcnNlU2VydmVyT3B0aW9ucyB9IGZyb20gJy4vT3B0aW9ucyc7XG5pbXBvcnQgeyBQYXJzZUdyYXBoUUxTZXJ2ZXIgfSBmcm9tICcuL0dyYXBoUUwvUGFyc2VHcmFwaFFMU2VydmVyJztcblxuLy8gRmFjdG9yeSBmdW5jdGlvblxuY29uc3QgX1BhcnNlU2VydmVyID0gZnVuY3Rpb24gKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucykge1xuICBjb25zdCBzZXJ2ZXIgPSBuZXcgUGFyc2VTZXJ2ZXIob3B0aW9ucyk7XG4gIHJldHVybiBzZXJ2ZXI7XG59O1xuLy8gTW91bnQgdGhlIGNyZWF0ZSBsaXZlUXVlcnlTZXJ2ZXJcbl9QYXJzZVNlcnZlci5jcmVhdGVMaXZlUXVlcnlTZXJ2ZXIgPSBQYXJzZVNlcnZlci5jcmVhdGVMaXZlUXVlcnlTZXJ2ZXI7XG5fUGFyc2VTZXJ2ZXIuc3RhcnRBcHAgPSBQYXJzZVNlcnZlci5zdGFydEFwcDtcblxuY29uc3QgUzNBZGFwdGVyID0gdXNlRXh0ZXJuYWwoJ1MzQWRhcHRlcicsICdAcGFyc2UvczMtZmlsZXMtYWRhcHRlcicpO1xuY29uc3QgR0NTQWRhcHRlciA9IHVzZUV4dGVybmFsKCdHQ1NBZGFwdGVyJywgJ0BwYXJzZS9nY3MtZmlsZXMtYWRhcHRlcicpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLmV4cG9ydHMsICdsb2dnZXInLCB7XG4gIGdldDogZ2V0TG9nZ2VyLFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBhcnNlU2VydmVyO1xuZXhwb3J0IHtcbiAgUzNBZGFwdGVyLFxuICBHQ1NBZGFwdGVyLFxuICBGaWxlU3lzdGVtQWRhcHRlcixcbiAgSW5NZW1vcnlDYWNoZUFkYXB0ZXIsXG4gIE51bGxDYWNoZUFkYXB0ZXIsXG4gIFJlZGlzQ2FjaGVBZGFwdGVyLFxuICBMUlVDYWNoZUFkYXB0ZXIsXG4gIFRlc3RVdGlscyxcbiAgUHVzaFdvcmtlcixcbiAgUGFyc2VHcmFwaFFMU2VydmVyLFxuICBfUGFyc2VTZXJ2ZXIgYXMgUGFyc2VTZXJ2ZXIsXG4gIFNjaGVtYU1pZ3JhdGlvbnMsXG4gIEF1dGhBZGFwdGVyLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxhQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxlQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxxQkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsaUJBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLGtCQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxTQUFBLEdBQUFDLHVCQUFBLENBQUFQLE9BQUE7QUFBeUNRLE9BQUEsQ0FBQUYsU0FBQSxHQUFBQSxTQUFBO0FBQ3pDLElB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
package/lib/logger.js ADDED
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getLogger = getLogger;
7
+ exports.setLogger = setLogger;
8
+ var _defaults = _interopRequireDefault(require("./defaults"));
9
+ var _WinstonLoggerAdapter = require("./Adapters/Logger/WinstonLoggerAdapter");
10
+ var _LoggerController = require("./Controllers/LoggerController");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ // Used for Separate Live Query Server
13
+ function defaultLogger() {
14
+ const options = {
15
+ logsFolder: _defaults.default.logsFolder,
16
+ jsonLogs: _defaults.default.jsonLogs,
17
+ verbose: _defaults.default.verbose,
18
+ silent: _defaults.default.silent
19
+ };
20
+ const adapter = new _WinstonLoggerAdapter.WinstonLoggerAdapter(options);
21
+ return new _LoggerController.LoggerController(adapter, null, options);
22
+ }
23
+ let logger = defaultLogger();
24
+ function setLogger(aLogger) {
25
+ logger = aLogger;
26
+ }
27
+ function getLogger() {
28
+ return logger;
29
+ }
30
+
31
+ // for: `import logger from './logger'`
32
+ Object.defineProperty(module.exports, 'default', {
33
+ get: getLogger
34
+ });
35
+
36
+ // for: `import { logger } from './logger'`
37
+ Object.defineProperty(module.exports, 'logger', {
38
+ get: getLogger
39
+ });
40
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImdldExvZ2dlciIsInNldExvZ2dlciIsIl9kZWZhdWx0cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX1dpbnN0b25Mb2dnZXJBZGFwdGVyIiwiX0xvZ2dlckNvbnRyb2xsZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJkZWZhdWx0TG9nZ2VyIiwib3B0aW9ucyIsImxvZ3NGb2xkZXIiLCJkZWZhdWx0cyIsImpzb25Mb2dzIiwidmVyYm9zZSIsInNpbGVudCIsImFkYXB0ZXIiLCJXaW5zdG9uTG9nZ2VyQWRhcHRlciIsIkxvZ2dlckNvbnRyb2xsZXIiLCJsb2dnZXIiLCJhTG9nZ2VyIiwibW9kdWxlIiwiZ2V0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2xvZ2dlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi9kZWZhdWx0cyc7XG5pbXBvcnQgeyBXaW5zdG9uTG9nZ2VyQWRhcHRlciB9IGZyb20gJy4vQWRhcHRlcnMvTG9nZ2VyL1dpbnN0b25Mb2dnZXJBZGFwdGVyJztcbmltcG9ydCB7IExvZ2dlckNvbnRyb2xsZXIgfSBmcm9tICcuL0NvbnRyb2xsZXJzL0xvZ2dlckNvbnRyb2xsZXInO1xuXG4vLyBVc2VkIGZvciBTZXBhcmF0ZSBMaXZlIFF1ZXJ5IFNlcnZlclxuZnVuY3Rpb24gZGVmYXVsdExvZ2dlcigpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICBsb2dzRm9sZGVyOiBkZWZhdWx0cy5sb2dzRm9sZGVyLFxuICAgIGpzb25Mb2dzOiBkZWZhdWx0cy5qc29uTG9ncyxcbiAgICB2ZXJib3NlOiBkZWZhdWx0cy52ZXJib3NlLFxuICAgIHNpbGVudDogZGVmYXVsdHMuc2lsZW50LFxuICB9O1xuICBjb25zdCBhZGFwdGVyID0gbmV3IFdpbnN0b25Mb2dnZXJBZGFwdGVyKG9wdGlvbnMpO1xuICByZXR1cm4gbmV3IExvZ2dlckNvbnRyb2xsZXIoYWRhcHRlciwgbnVsbCwgb3B0aW9ucyk7XG59XG5cbmxldCBsb2dnZXIgPSBkZWZhdWx0TG9nZ2VyKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRMb2dnZXIoYUxvZ2dlcikge1xuICBsb2dnZXIgPSBhTG9nZ2VyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9nZ2VyKCkge1xuICByZXR1cm4gbG9nZ2VyO1xufVxuXG4vLyBmb3I6IGBpbXBvcnQgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJ2Bcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2R1bGUuZXhwb3J0cywgJ2RlZmF1bHQnLCB7XG4gIGdldDogZ2V0TG9nZ2VyLFxufSk7XG5cbi8vIGZvcjogYGltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJ2Bcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2R1bGUuZXhwb3J0cywgJ2xvZ2dlcicsIHtcbiAgZ2V0OiBnZXRMb2dnZXIsXG59KTtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTs7QUFBQ0EsTUFBQSxDQUFBQyxjQUFBLENBQUFDLE9BQUE7RUFBQUMsS0FBQTtBQUFBO0FBQUFELE9BQUEsQ0FBQUUsU0FBQSxHQUFBQSxTQUFBO0FBQUFGLE9BQUEsQ0FBQUcsU0FBQSxHQUFBQSxTQUFBO0FBQ2IsSUFBQUMsU0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMscUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGlCQUFBLEdBQUFGLE9BQUE7QUFBa0UsU0FBQUQsdUJBQUFJLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFbEU7QUFDQSxTQUFTRyxhQUFhQSxDQUFBLEVBQUc7RUFDdkIsTUFBTUMsT0FBTyxHQUFHO0lBQ2RDLFVBQVUsRUFBRUMsaUJBQVEsQ0FBQ0QsVUFBVTtJQUMvQkUsUUFBUSxFQUFFRCxpQkFBUSxDQUFDQyxRQUFRO0lBQzNCQyxPQUFPLEVBQUVGLGlCQUFRLENBQUNFLE9BQU87SUFDekJDLE1BQU0sRUFBRUgsaUJBQVEsQ0FBQ0c7RUFDbkIsQ0FBQztFQUNELE1BQU1DLE9BQU8sR0FBRyxJQUFJQywwQ0FBb0IsQ0FBQ1AsT0FBTyxDQUFDO0VBQ2pELE9BQU8sSUFBSVEsa0NBQWdCLENBQUNGLE9BQU8sRUFBRSxJQUFJLEVBQUVOLE9BQU8sQ0FBQztBQUNyRDtBQUVBLElBQUlTLE1BQU0sR0FBR1YsYUFBYSxDQUFDLENBQUM7QUFFckIsU0FBU1QsU0FBU0EsQ0FBQ29CLE9BQU8sRUFBRTtFQUNqQ0QsTUFBTSxHQUFHQyxPQUFPO0FBQ2xCO0FBRU8sU0FBU3JCLFNBQVNBLENBQUEsRUFBRztFQUMxQixPQUFPb0IsTUFBTTtBQUNmOztBQUVBO0FBQ0F4QixNQUFNLENBQUNDLGNBQWMsQ0FBQ3lCLE1BQU0sQ0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQUU7RUFDL0N5QixHQUFHLEVBQUV2QjtBQUNQLENBQUMsQ0FBQzs7QUFFRjtBQUNBSixNQUFNLENBQUNDLGNBQWMsQ0FBQ3lCLE1BQU0sQ0FBQ3hCLE9BQU8sRUFBRSxRQUFRLEVBQUU7RUFDOUN5QixHQUFHLEVBQUV2QjtBQUNQLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==