@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.
- package/LICENSE +176 -0
- package/NOTICE +10 -0
- package/README.md +1311 -0
- package/bin/parse-live-query-server +3 -0
- package/bin/parse-server +3 -0
- package/lib/AccountLockout.js +149 -0
- package/lib/Adapters/AdapterLoader.js +60 -0
- package/lib/Adapters/Analytics/AnalyticsAdapter.js +32 -0
- package/lib/Adapters/Auth/AuthAdapter.js +132 -0
- package/lib/Adapters/Auth/BaseCodeAuthAdapter.js +119 -0
- package/lib/Adapters/Auth/OAuth1Client.js +204 -0
- package/lib/Adapters/Auth/apple.js +125 -0
- package/lib/Adapters/Auth/facebook.js +187 -0
- package/lib/Adapters/Auth/gcenter.js +217 -0
- package/lib/Adapters/Auth/github.js +125 -0
- package/lib/Adapters/Auth/google.js +122 -0
- package/lib/Adapters/Auth/gpgames.js +125 -0
- package/lib/Adapters/Auth/httpsRequest.js +41 -0
- package/lib/Adapters/Auth/index.js +248 -0
- package/lib/Adapters/Auth/instagram.js +118 -0
- package/lib/Adapters/Auth/janraincapture.js +85 -0
- package/lib/Adapters/Auth/janrainengage.js +57 -0
- package/lib/Adapters/Auth/keycloak.js +168 -0
- package/lib/Adapters/Auth/ldap.js +193 -0
- package/lib/Adapters/Auth/line.js +125 -0
- package/lib/Adapters/Auth/linkedin.js +117 -0
- package/lib/Adapters/Auth/meetup.js +44 -0
- package/lib/Adapters/Auth/mfa.js +334 -0
- package/lib/Adapters/Auth/microsoft.js +111 -0
- package/lib/Adapters/Auth/oauth2.js +115 -0
- package/lib/Adapters/Auth/phantauth.js +53 -0
- package/lib/Adapters/Auth/qq.js +113 -0
- package/lib/Adapters/Auth/spotify.js +115 -0
- package/lib/Adapters/Auth/twitter.js +197 -0
- package/lib/Adapters/Auth/utils.js +28 -0
- package/lib/Adapters/Auth/vkontakte.js +55 -0
- package/lib/Adapters/Auth/wechat.js +110 -0
- package/lib/Adapters/Auth/weibo.js +141 -0
- package/lib/Adapters/Cache/CacheAdapter.js +40 -0
- package/lib/Adapters/Cache/InMemoryCache.js +61 -0
- package/lib/Adapters/Cache/InMemoryCacheAdapter.js +34 -0
- package/lib/Adapters/Cache/LRUCache.js +35 -0
- package/lib/Adapters/Cache/NullCacheAdapter.js +26 -0
- package/lib/Adapters/Cache/RedisCacheAdapter.js +109 -0
- package/lib/Adapters/Cache/SchemaCache.js +25 -0
- package/lib/Adapters/Email/MailAdapter.js +32 -0
- package/lib/Adapters/Files/FilesAdapter.js +129 -0
- package/lib/Adapters/Files/GridFSBucketAdapter.js +280 -0
- package/lib/Adapters/Files/GridStoreAdapter.js +5 -0
- package/lib/Adapters/Logger/LoggerAdapter.js +27 -0
- package/lib/Adapters/Logger/WinstonLogger.js +107 -0
- package/lib/Adapters/Logger/WinstonLoggerAdapter.js +63 -0
- package/lib/Adapters/MessageQueue/EventEmitterMQ.js +55 -0
- package/lib/Adapters/PubSub/EventEmitterPubSub.js +53 -0
- package/lib/Adapters/PubSub/PubSubAdapter.js +34 -0
- package/lib/Adapters/PubSub/RedisPubSub.js +49 -0
- package/lib/Adapters/Push/PushAdapter.js +40 -0
- package/lib/Adapters/Storage/Mongo/MongoCollection.js +212 -0
- package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +334 -0
- package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +1047 -0
- package/lib/Adapters/Storage/Mongo/MongoTransform.js +1397 -0
- package/lib/Adapters/Storage/Postgres/PostgresClient.js +38 -0
- package/lib/Adapters/Storage/Postgres/PostgresConfigParser.js +73 -0
- package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +2409 -0
- package/lib/Adapters/Storage/Postgres/sql/array/add-unique.sql +11 -0
- package/lib/Adapters/Storage/Postgres/sql/array/add.sql +11 -0
- package/lib/Adapters/Storage/Postgres/sql/array/contains-all-regex.sql +14 -0
- package/lib/Adapters/Storage/Postgres/sql/array/contains-all.sql +14 -0
- package/lib/Adapters/Storage/Postgres/sql/array/contains.sql +11 -0
- package/lib/Adapters/Storage/Postgres/sql/array/remove.sql +11 -0
- package/lib/Adapters/Storage/Postgres/sql/index.js +32 -0
- package/lib/Adapters/Storage/Postgres/sql/misc/json-object-set-keys.sql +19 -0
- package/lib/Adapters/Storage/StorageAdapter.js +2 -0
- package/lib/Adapters/WebSocketServer/WSAdapter.js +35 -0
- package/lib/Adapters/WebSocketServer/WSSAdapter.js +66 -0
- package/lib/Auth.js +687 -0
- package/lib/AuthDataLock.js +53 -0
- package/lib/ClientSDK.js +39 -0
- package/lib/Config.js +879 -0
- package/lib/Controllers/AdaptableController.js +72 -0
- package/lib/Controllers/AnalyticsController.js +43 -0
- package/lib/Controllers/CacheController.js +71 -0
- package/lib/Controllers/DatabaseController.js +1685 -0
- package/lib/Controllers/FilesController.js +122 -0
- package/lib/Controllers/HooksController.js +254 -0
- package/lib/Controllers/LiveQueryController.js +72 -0
- package/lib/Controllers/LoggerController.js +222 -0
- package/lib/Controllers/ParseGraphQLController.js +294 -0
- package/lib/Controllers/PushController.js +224 -0
- package/lib/Controllers/SchemaController.js +1563 -0
- package/lib/Controllers/UserController.js +364 -0
- package/lib/Controllers/index.js +251 -0
- package/lib/Controllers/types.js +2 -0
- package/lib/Deprecator/Deprecations.js +100 -0
- package/lib/Deprecator/Deprecator.js +140 -0
- package/lib/Error.js +50 -0
- package/lib/FileUrlValidator.js +69 -0
- package/lib/GraphQL/ParseGraphQLSchema.js +375 -0
- package/lib/GraphQL/ParseGraphQLServer.js +241 -0
- package/lib/GraphQL/helpers/objectsMutations.js +30 -0
- package/lib/GraphQL/helpers/objectsQueries.js +246 -0
- package/lib/GraphQL/helpers/queryComplexity.js +138 -0
- package/lib/GraphQL/loaders/configMutations.js +87 -0
- package/lib/GraphQL/loaders/configQueries.js +79 -0
- package/lib/GraphQL/loaders/defaultGraphQLMutations.js +21 -0
- package/lib/GraphQL/loaders/defaultGraphQLQueries.js +23 -0
- package/lib/GraphQL/loaders/defaultGraphQLTypes.js +1099 -0
- package/lib/GraphQL/loaders/defaultRelaySchema.js +53 -0
- package/lib/GraphQL/loaders/filesMutations.js +107 -0
- package/lib/GraphQL/loaders/functionsMutations.js +77 -0
- package/lib/GraphQL/loaders/parseClassMutations.js +267 -0
- package/lib/GraphQL/loaders/parseClassQueries.js +126 -0
- package/lib/GraphQL/loaders/parseClassTypes.js +493 -0
- package/lib/GraphQL/loaders/schemaDirectives.js +62 -0
- package/lib/GraphQL/loaders/schemaMutations.js +161 -0
- package/lib/GraphQL/loaders/schemaQueries.js +80 -0
- package/lib/GraphQL/loaders/schemaTypes.js +341 -0
- package/lib/GraphQL/loaders/usersMutations.js +433 -0
- package/lib/GraphQL/loaders/usersQueries.js +90 -0
- package/lib/GraphQL/parseGraphQLUtils.js +71 -0
- package/lib/GraphQL/transformers/className.js +14 -0
- package/lib/GraphQL/transformers/constraintType.js +53 -0
- package/lib/GraphQL/transformers/inputType.js +51 -0
- package/lib/GraphQL/transformers/mutation.js +280 -0
- package/lib/GraphQL/transformers/outputType.js +51 -0
- package/lib/GraphQL/transformers/query.js +237 -0
- package/lib/GraphQL/transformers/schemaFields.js +99 -0
- package/lib/InstallationDedup.js +178 -0
- package/lib/KeyPromiseQueue.js +48 -0
- package/lib/LiveQuery/Client.js +90 -0
- package/lib/LiveQuery/Id.js +20 -0
- package/lib/LiveQuery/ParseCloudCodePublisher.js +54 -0
- package/lib/LiveQuery/ParseLiveQueryServer.js +1071 -0
- package/lib/LiveQuery/ParsePubSub.js +37 -0
- package/lib/LiveQuery/ParseWebSocketServer.js +66 -0
- package/lib/LiveQuery/QueryTools.js +443 -0
- package/lib/LiveQuery/RequestSchema.js +161 -0
- package/lib/LiveQuery/SessionTokenCache.js +51 -0
- package/lib/LiveQuery/Subscription.js +47 -0
- package/lib/LiveQuery/equalObjects.js +50 -0
- package/lib/Options/Definitions.js +1599 -0
- package/lib/Options/docs.js +389 -0
- package/lib/Options/index.js +12 -0
- package/lib/Options/parsers.js +89 -0
- package/lib/Page.js +44 -0
- package/lib/ParseMessageQueue.js +24 -0
- package/lib/ParseServer.js +632 -0
- package/lib/ParseServerRESTController.js +173 -0
- package/lib/PromiseRouter.js +208 -0
- package/lib/Push/PushQueue.js +67 -0
- package/lib/Push/PushWorker.js +101 -0
- package/lib/Push/utils.js +129 -0
- package/lib/RestQuery.js +1208 -0
- package/lib/RestWrite.js +1671 -0
- package/lib/Routers/AggregateRouter.js +150 -0
- package/lib/Routers/AnalyticsRouter.js +26 -0
- package/lib/Routers/AudiencesRouter.js +54 -0
- package/lib/Routers/ClassesRouter.js +191 -0
- package/lib/Routers/CloudCodeRouter.js +87 -0
- package/lib/Routers/FeaturesRouter.js +72 -0
- package/lib/Routers/FilesRouter.js +772 -0
- package/lib/Routers/FunctionsRouter.js +341 -0
- package/lib/Routers/GlobalConfigRouter.js +123 -0
- package/lib/Routers/GraphQLRouter.js +41 -0
- package/lib/Routers/HooksRouter.js +121 -0
- package/lib/Routers/IAPValidationRouter.js +113 -0
- package/lib/Routers/InstallationsRouter.js +46 -0
- package/lib/Routers/LogsRouter.js +57 -0
- package/lib/Routers/PagesRouter.js +676 -0
- package/lib/Routers/PurgeRouter.js +45 -0
- package/lib/Routers/PushRouter.js +75 -0
- package/lib/Routers/RolesRouter.js +33 -0
- package/lib/Routers/SchemasRouter.js +118 -0
- package/lib/Routers/SecurityRouter.js +34 -0
- package/lib/Routers/SessionsRouter.js +126 -0
- package/lib/Routers/UsersRouter.js +733 -0
- package/lib/SchemaMigrations/DefinedSchemas.js +379 -0
- package/lib/SchemaMigrations/Migrations.js +30 -0
- package/lib/Security/Check.js +109 -0
- package/lib/Security/CheckGroup.js +44 -0
- package/lib/Security/CheckGroups/CheckGroupDatabase.js +44 -0
- package/lib/Security/CheckGroups/CheckGroupServerConfig.js +160 -0
- package/lib/Security/CheckGroups/CheckGroups.js +21 -0
- package/lib/Security/CheckRunner.js +213 -0
- package/lib/SharedRest.js +34 -0
- package/lib/StatusHandler.js +329 -0
- package/lib/TestUtils.js +87 -0
- package/lib/Utils.js +577 -0
- package/lib/batch.js +185 -0
- package/lib/cache.js +12 -0
- package/lib/cli/definitions/parse-live-query-server.js +9 -0
- package/lib/cli/definitions/parse-server.js +9 -0
- package/lib/cli/parse-live-query-server.js +14 -0
- package/lib/cli/parse-server.js +101 -0
- package/lib/cli/utils/commander.js +132 -0
- package/lib/cli/utils/runner.js +53 -0
- package/lib/cloud-code/Parse.Cloud.js +797 -0
- package/lib/cloud-code/Parse.Server.js +21 -0
- package/lib/cryptoUtils.js +54 -0
- package/lib/defaults.js +58 -0
- package/lib/deprecated.js +12 -0
- package/lib/index.js +89 -0
- package/lib/logger.js +40 -0
- package/lib/middlewares.js +810 -0
- package/lib/password.js +40 -0
- package/lib/request.js +175 -0
- package/lib/requiredParameter.js +11 -0
- package/lib/rest.js +264 -0
- package/lib/triggers.js +949 -0
- package/lib/vendor/README.md +8 -0
- package/lib/vendor/mongodbUrl.js +1012 -0
- package/package.json +172 -0
- package/postinstall.js +38 -0
- package/public/custom_json.html +17 -0
- package/public/custom_json.json +23 -0
- package/public/custom_page.html +15 -0
- package/public/de/email_verification_link_expired.html +24 -0
- package/public/de/email_verification_link_invalid.html +21 -0
- package/public/de/email_verification_send_fail.html +21 -0
- package/public/de/email_verification_send_success.html +19 -0
- package/public/de/email_verification_success.html +18 -0
- package/public/de/password_reset.html +65 -0
- package/public/de/password_reset_link_invalid.html +19 -0
- package/public/de/password_reset_success.html +18 -0
- package/public/de-AT/email_verification_link_expired.html +24 -0
- package/public/de-AT/email_verification_link_invalid.html +21 -0
- package/public/de-AT/email_verification_send_fail.html +21 -0
- package/public/de-AT/email_verification_send_success.html +19 -0
- package/public/de-AT/email_verification_success.html +18 -0
- package/public/de-AT/password_reset.html +65 -0
- package/public/de-AT/password_reset_link_invalid.html +19 -0
- package/public/de-AT/password_reset_success.html +18 -0
- package/public/email_verification_link_expired.html +24 -0
- package/public/email_verification_link_invalid.html +21 -0
- package/public/email_verification_send_fail.html +21 -0
- package/public/email_verification_send_success.html +19 -0
- package/public/email_verification_success.html +18 -0
- package/public/password_reset.html +65 -0
- package/public/password_reset_link_invalid.html +19 -0
- package/public/password_reset_success.html +18 -0
- package/types/@types/@parse/fs-files-adapter/index.d.ts +5 -0
- package/types/@types/deepcopy/index.d.ts +5 -0
- package/types/LiveQuery/ParseLiveQueryServer.d.ts +40 -0
- package/types/Options/index.d.ts +320 -0
- package/types/ParseServer.d.ts +65 -0
- package/types/eslint.config.mjs +30 -0
- package/types/index.d.ts +21 -0
- package/types/logger.d.ts +2 -0
- package/types/tests.ts +44 -0
- package/types/tsconfig.json +24 -0
- package/views/choose_password +215 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _BaseCodeAuthAdapter = _interopRequireDefault(require("./BaseCodeAuthAdapter"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
/**
|
|
10
|
+
* Parse Server authentication adapter for WeChat.
|
|
11
|
+
*
|
|
12
|
+
* @class WeChatAdapter
|
|
13
|
+
* @param {Object} options - The adapter options object.
|
|
14
|
+
* @param {boolean} [options.enableInsecureAuth=false] - **[DEPRECATED]** Enable insecure authentication (not recommended).
|
|
15
|
+
* @param {string} options.clientId - Your WeChat App ID.
|
|
16
|
+
* @param {string} options.clientSecret - Your WeChat App Secret.
|
|
17
|
+
*
|
|
18
|
+
* @description
|
|
19
|
+
* ## Parse Server Configuration
|
|
20
|
+
* To configure Parse Server for WeChat authentication, use the following structure:
|
|
21
|
+
* ### Secure Configuration (Recommended)
|
|
22
|
+
* ```json
|
|
23
|
+
* {
|
|
24
|
+
* "auth": {
|
|
25
|
+
* "wechat": {
|
|
26
|
+
* "clientId": "your-client-id",
|
|
27
|
+
* "clientSecret": "your-client-secret"
|
|
28
|
+
* }
|
|
29
|
+
* }
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
* ### Insecure Configuration (Not Recommended)
|
|
33
|
+
* ```json
|
|
34
|
+
* {
|
|
35
|
+
* "auth": {
|
|
36
|
+
* "wechat": {
|
|
37
|
+
* "enableInsecureAuth": true
|
|
38
|
+
* }
|
|
39
|
+
* }
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* The adapter requires the following `authData` fields:
|
|
44
|
+
* - **With `enableInsecureAuth` (Not Recommended)**: `id`, `access_token`.
|
|
45
|
+
* - **Without `enableInsecureAuth`**: `code`.
|
|
46
|
+
*
|
|
47
|
+
* ## Auth Payloads
|
|
48
|
+
* ### Secure Authentication Payload (Recommended)
|
|
49
|
+
* ```json
|
|
50
|
+
* {
|
|
51
|
+
* "wechat": {
|
|
52
|
+
* "code": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
* ```
|
|
56
|
+
* ### Insecure Authentication Payload (Not Recommended)
|
|
57
|
+
* ```json
|
|
58
|
+
* {
|
|
59
|
+
* "wechat": {
|
|
60
|
+
* "id": "1234567",
|
|
61
|
+
* "access_token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
62
|
+
* }
|
|
63
|
+
* }
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* ## Notes
|
|
67
|
+
* - With `enableInsecureAuth`, the adapter directly validates the `id` and `access_token` sent by the client.
|
|
68
|
+
* - Without `enableInsecureAuth`, the adapter uses the `code` provided by the client to exchange for an access token via WeChat's OAuth API.
|
|
69
|
+
* - The `enableInsecureAuth` flag is **deprecated** and may be removed in future versions. Use secure authentication with the `code` field instead.
|
|
70
|
+
*
|
|
71
|
+
* @example <caption>Auth Data Example</caption>
|
|
72
|
+
* // Example authData provided by the client:
|
|
73
|
+
* const authData = {
|
|
74
|
+
* wechat: {
|
|
75
|
+
* code: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
76
|
+
* }
|
|
77
|
+
* };
|
|
78
|
+
*
|
|
79
|
+
* @see {@link https://developers.weixin.qq.com/doc/offiaccount/en/OA_Web_Apps/Wechat_webpage_authorization.html WeChat Authentication Documentation}
|
|
80
|
+
*/
|
|
81
|
+
|
|
82
|
+
class WeChatAdapter extends _BaseCodeAuthAdapter.default {
|
|
83
|
+
constructor() {
|
|
84
|
+
super('WeChat');
|
|
85
|
+
}
|
|
86
|
+
async getUserFromAccessToken(access_token, authData) {
|
|
87
|
+
const response = await fetch(`https://api.weixin.qq.com/sns/auth?access_token=${access_token}&openid=${authData.id}`);
|
|
88
|
+
const data = await response.json();
|
|
89
|
+
if (!response.ok || data.errcode !== 0) {
|
|
90
|
+
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'WeChat auth is invalid for this user.');
|
|
91
|
+
}
|
|
92
|
+
return data;
|
|
93
|
+
}
|
|
94
|
+
async getAccessTokenFromCode(authData) {
|
|
95
|
+
if (!authData.code) {
|
|
96
|
+
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'WeChat auth requires a code to be sent.');
|
|
97
|
+
}
|
|
98
|
+
const appId = this.clientId;
|
|
99
|
+
const appSecret = this.clientSecret;
|
|
100
|
+
const response = await fetch(`https://api.weixin.qq.com/sns/oauth2/access_token?appid=${appId}&secret=${appSecret}&code=${authData.code}&grant_type=authorization_code`);
|
|
101
|
+
const data = await response.json();
|
|
102
|
+
if (!response.ok || data.errcode) {
|
|
103
|
+
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'WeChat auth is invalid for this user.');
|
|
104
|
+
}
|
|
105
|
+
authData.id = data.openid;
|
|
106
|
+
return data.access_token;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
var _default = exports.default = new WeChatAdapter();
|
|
110
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQmFzZUNvZGVBdXRoQWRhcHRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiV2VDaGF0QWRhcHRlciIsIkJhc2VBdXRoQ29kZUFkYXB0ZXIiLCJjb25zdHJ1Y3RvciIsImdldFVzZXJGcm9tQWNjZXNzVG9rZW4iLCJhY2Nlc3NfdG9rZW4iLCJhdXRoRGF0YSIsInJlc3BvbnNlIiwiZmV0Y2giLCJpZCIsImRhdGEiLCJqc29uIiwib2siLCJlcnJjb2RlIiwiUGFyc2UiLCJFcnJvciIsIk9CSkVDVF9OT1RfRk9VTkQiLCJnZXRBY2Nlc3NUb2tlbkZyb21Db2RlIiwiY29kZSIsImFwcElkIiwiY2xpZW50SWQiLCJhcHBTZWNyZXQiLCJjbGllbnRTZWNyZXQiLCJvcGVuaWQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQWRhcHRlcnMvQXV0aC93ZWNoYXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQYXJzZSBTZXJ2ZXIgYXV0aGVudGljYXRpb24gYWRhcHRlciBmb3IgV2VDaGF0LlxuICpcbiAqIEBjbGFzcyBXZUNoYXRBZGFwdGVyXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFRoZSBhZGFwdGVyIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5lbmFibGVJbnNlY3VyZUF1dGg9ZmFsc2VdIC0gKipbREVQUkVDQVRFRF0qKiBFbmFibGUgaW5zZWN1cmUgYXV0aGVudGljYXRpb24gKG5vdCByZWNvbW1lbmRlZCkuXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5jbGllbnRJZCAtIFlvdXIgV2VDaGF0IEFwcCBJRC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmNsaWVudFNlY3JldCAtIFlvdXIgV2VDaGF0IEFwcCBTZWNyZXQuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiAjIyBQYXJzZSBTZXJ2ZXIgQ29uZmlndXJhdGlvblxuICogVG8gY29uZmlndXJlIFBhcnNlIFNlcnZlciBmb3IgV2VDaGF0IGF1dGhlbnRpY2F0aW9uLCB1c2UgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gKiAjIyMgU2VjdXJlIENvbmZpZ3VyYXRpb24gKFJlY29tbWVuZGVkKVxuICogYGBganNvblxuICoge1xuICogICBcImF1dGhcIjoge1xuICogICAgIFwid2VjaGF0XCI6IHtcbiAqICAgICAgIFwiY2xpZW50SWRcIjogXCJ5b3VyLWNsaWVudC1pZFwiLFxuICogICAgICAgXCJjbGllbnRTZWNyZXRcIjogXCJ5b3VyLWNsaWVudC1zZWNyZXRcIlxuICogICAgIH1cbiAqICAgfVxuICogfVxuICogYGBgXG4gKiAjIyMgSW5zZWN1cmUgQ29uZmlndXJhdGlvbiAoTm90IFJlY29tbWVuZGVkKVxuICogYGBganNvblxuICoge1xuICogICBcImF1dGhcIjoge1xuICogICAgIFwid2VjaGF0XCI6IHtcbiAqICAgICAgIFwiZW5hYmxlSW5zZWN1cmVBdXRoXCI6IHRydWVcbiAqICAgICB9XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIFRoZSBhZGFwdGVyIHJlcXVpcmVzIHRoZSBmb2xsb3dpbmcgYGF1dGhEYXRhYCBmaWVsZHM6XG4gKiAtICoqV2l0aCBgZW5hYmxlSW5zZWN1cmVBdXRoYCAoTm90IFJlY29tbWVuZGVkKSoqOiBgaWRgLCBgYWNjZXNzX3Rva2VuYC5cbiAqIC0gKipXaXRob3V0IGBlbmFibGVJbnNlY3VyZUF1dGhgKio6IGBjb2RlYC5cbiAqXG4gKiAjIyBBdXRoIFBheWxvYWRzXG4gKiAjIyMgU2VjdXJlIEF1dGhlbnRpY2F0aW9uIFBheWxvYWQgKFJlY29tbWVuZGVkKVxuICogYGBganNvblxuICoge1xuICogICBcIndlY2hhdFwiOiB7XG4gKiAgICAgXCJjb2RlXCI6IFwieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhcIlxuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqICMjIyBJbnNlY3VyZSBBdXRoZW50aWNhdGlvbiBQYXlsb2FkIChOb3QgUmVjb21tZW5kZWQpXG4gKiBgYGBqc29uXG4gKiB7XG4gKiAgIFwid2VjaGF0XCI6IHtcbiAqICAgICBcImlkXCI6IFwiMTIzNDU2N1wiLFxuICogICAgIFwiYWNjZXNzX3Rva2VuXCI6IFwieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhcIlxuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiAjIyBOb3Rlc1xuICogLSBXaXRoIGBlbmFibGVJbnNlY3VyZUF1dGhgLCB0aGUgYWRhcHRlciBkaXJlY3RseSB2YWxpZGF0ZXMgdGhlIGBpZGAgYW5kIGBhY2Nlc3NfdG9rZW5gIHNlbnQgYnkgdGhlIGNsaWVudC5cbiAqIC0gV2l0aG91dCBgZW5hYmxlSW5zZWN1cmVBdXRoYCwgdGhlIGFkYXB0ZXIgdXNlcyB0aGUgYGNvZGVgIHByb3ZpZGVkIGJ5IHRoZSBjbGllbnQgdG8gZXhjaGFuZ2UgZm9yIGFuIGFjY2VzcyB0b2tlbiB2aWEgV2VDaGF0J3MgT0F1dGggQVBJLlxuICogLSBUaGUgYGVuYWJsZUluc2VjdXJlQXV0aGAgZmxhZyBpcyAqKmRlcHJlY2F0ZWQqKiBhbmQgbWF5IGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zLiBVc2Ugc2VjdXJlIGF1dGhlbnRpY2F0aW9uIHdpdGggdGhlIGBjb2RlYCBmaWVsZCBpbnN0ZWFkLlxuICpcbiAqIEBleGFtcGxlIDxjYXB0aW9uPkF1dGggRGF0YSBFeGFtcGxlPC9jYXB0aW9uPlxuICogLy8gRXhhbXBsZSBhdXRoRGF0YSBwcm92aWRlZCBieSB0aGUgY2xpZW50OlxuICogY29uc3QgYXV0aERhdGEgPSB7XG4gKiAgIHdlY2hhdDoge1xuICogICAgIGNvZGU6IFwieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhcIlxuICogICB9XG4gKiB9O1xuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVycy53ZWl4aW4ucXEuY29tL2RvYy9vZmZpYWNjb3VudC9lbi9PQV9XZWJfQXBwcy9XZWNoYXRfd2VicGFnZV9hdXRob3JpemF0aW9uLmh0bWwgV2VDaGF0IEF1dGhlbnRpY2F0aW9uIERvY3VtZW50YXRpb259XG4gKi9cblxuaW1wb3J0IEJhc2VBdXRoQ29kZUFkYXB0ZXIgZnJvbSAnLi9CYXNlQ29kZUF1dGhBZGFwdGVyJztcblxuY2xhc3MgV2VDaGF0QWRhcHRlciBleHRlbmRzIEJhc2VBdXRoQ29kZUFkYXB0ZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignV2VDaGF0Jyk7XG4gIH1cblxuICBhc3luYyBnZXRVc2VyRnJvbUFjY2Vzc1Rva2VuKGFjY2Vzc190b2tlbiwgYXV0aERhdGEpIHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgYGh0dHBzOi8vYXBpLndlaXhpbi5xcS5jb20vc25zL2F1dGg/YWNjZXNzX3Rva2VuPSR7YWNjZXNzX3Rva2VufSZvcGVuaWQ9JHthdXRoRGF0YS5pZH1gXG4gICAgKTtcblxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rIHx8IGRhdGEuZXJyY29kZSAhPT0gMCkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsICdXZUNoYXQgYXV0aCBpcyBpbnZhbGlkIGZvciB0aGlzIHVzZXIuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBhc3luYyBnZXRBY2Nlc3NUb2tlbkZyb21Db2RlKGF1dGhEYXRhKSB7XG4gICAgaWYgKCFhdXRoRGF0YS5jb2RlKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgJ1dlQ2hhdCBhdXRoIHJlcXVpcmVzIGEgY29kZSB0byBiZSBzZW50LicpO1xuICAgIH1cblxuICAgIGNvbnN0IGFwcElkID0gdGhpcy5jbGllbnRJZDtcbiAgICBjb25zdCBhcHBTZWNyZXQgPSB0aGlzLmNsaWVudFNlY3JldFxuXG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgYGh0dHBzOi8vYXBpLndlaXhpbi5xcS5jb20vc25zL29hdXRoMi9hY2Nlc3NfdG9rZW4/YXBwaWQ9JHthcHBJZH0mc2VjcmV0PSR7YXBwU2VjcmV0fSZjb2RlPSR7YXV0aERhdGEuY29kZX0mZ3JhbnRfdHlwZT1hdXRob3JpemF0aW9uX2NvZGVgXG4gICAgKTtcblxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rIHx8IGRhdGEuZXJyY29kZSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsICdXZUNoYXQgYXV0aCBpcyBpbnZhbGlkIGZvciB0aGlzIHVzZXIuJyk7XG4gICAgfVxuXG4gICAgYXV0aERhdGEuaWQgPSBkYXRhLm9wZW5pZDtcblxuICAgIHJldHVybiBkYXRhLmFjY2Vzc190b2tlbjtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgV2VDaGF0QWRhcHRlcigpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUF5RUEsSUFBQUEsb0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUF3RCxTQUFBRCx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQXpFeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUlBLE1BQU1HLGFBQWEsU0FBU0MsNEJBQW1CLENBQUM7RUFDOUNDLFdBQVdBLENBQUEsRUFBRztJQUNaLEtBQUssQ0FBQyxRQUFRLENBQUM7RUFDakI7RUFFQSxNQUFNQyxzQkFBc0JBLENBQUNDLFlBQVksRUFBRUMsUUFBUSxFQUFFO0lBQ25ELE1BQU1DLFFBQVEsR0FBRyxNQUFNQyxLQUFLLENBQzFCLG1EQUFtREgsWUFBWSxXQUFXQyxRQUFRLENBQUNHLEVBQUUsRUFDdkYsQ0FBQztJQUVELE1BQU1DLElBQUksR0FBRyxNQUFNSCxRQUFRLENBQUNJLElBQUksQ0FBQyxDQUFDO0lBRWxDLElBQUksQ0FBQ0osUUFBUSxDQUFDSyxFQUFFLElBQUlGLElBQUksQ0FBQ0csT0FBTyxLQUFLLENBQUMsRUFBRTtNQUN0QyxNQUFNLElBQUlDLEtBQUssQ0FBQ0MsS0FBSyxDQUFDRCxLQUFLLENBQUNDLEtBQUssQ0FBQ0MsZ0JBQWdCLEVBQUUsdUNBQXVDLENBQUM7SUFDOUY7SUFFQSxPQUFPTixJQUFJO0VBQ2I7RUFFQSxNQUFNTyxzQkFBc0JBLENBQUNYLFFBQVEsRUFBRTtJQUNyQyxJQUFJLENBQUNBLFFBQVEsQ0FBQ1ksSUFBSSxFQUFFO01BQ2xCLE1BQU0sSUFBSUosS0FBSyxDQUFDQyxLQUFLLENBQUNELEtBQUssQ0FBQ0MsS0FBSyxDQUFDQyxnQkFBZ0IsRUFBRSx5Q0FBeUMsQ0FBQztJQUNoRztJQUVBLE1BQU1HLEtBQUssR0FBRyxJQUFJLENBQUNDLFFBQVE7SUFDM0IsTUFBTUMsU0FBUyxHQUFHLElBQUksQ0FBQ0MsWUFBWTtJQUduQyxNQUFNZixRQUFRLEdBQUcsTUFBTUMsS0FBSyxDQUMxQiwyREFBMkRXLEtBQUssV0FBV0UsU0FBUyxTQUFTZixRQUFRLENBQUNZLElBQUksZ0NBQzVHLENBQUM7SUFFRCxNQUFNUixJQUFJLEdBQUcsTUFBTUgsUUFBUSxDQUFDSSxJQUFJLENBQUMsQ0FBQztJQUVsQyxJQUFJLENBQUNKLFFBQVEsQ0FBQ0ssRUFBRSxJQUFJRixJQUFJLENBQUNHLE9BQU8sRUFBRTtNQUNoQyxNQUFNLElBQUlDLEtBQUssQ0FBQ0MsS0FBSyxDQUFDRCxLQUFLLENBQUNDLEtBQUssQ0FBQ0MsZ0JBQWdCLEVBQUUsdUNBQXVDLENBQUM7SUFDOUY7SUFFQVYsUUFBUSxDQUFDRyxFQUFFLEdBQUdDLElBQUksQ0FBQ2EsTUFBTTtJQUV6QixPQUFPYixJQUFJLENBQUNMLFlBQVk7RUFDMUI7QUFDRjtBQUFDLElBQUFtQixRQUFBLEdBQUFDLE9BQUEsQ0FBQXpCLE9BQUEsR0FFYyxJQUFJQyxhQUFhLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _BaseCodeAuthAdapter = _interopRequireDefault(require("./BaseCodeAuthAdapter"));
|
|
8
|
+
var _querystring = _interopRequireDefault(require("querystring"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
/**
|
|
11
|
+
* Parse Server authentication adapter for Weibo.
|
|
12
|
+
*
|
|
13
|
+
* @class WeiboAdapter
|
|
14
|
+
* @param {Object} options - The adapter configuration options.
|
|
15
|
+
* @param {boolean} [options.enableInsecureAuth=false] - **[DEPRECATED]** Enable insecure authentication (not recommended).
|
|
16
|
+
* @param {string} options.clientId - Your Weibo client ID.
|
|
17
|
+
* @param {string} options.clientSecret - Your Weibo client secret.
|
|
18
|
+
*
|
|
19
|
+
* @description
|
|
20
|
+
* ## Parse Server Configuration
|
|
21
|
+
* To configure Parse Server for Weibo authentication, use the following structure:
|
|
22
|
+
* ### Secure Configuration
|
|
23
|
+
* ```json
|
|
24
|
+
* {
|
|
25
|
+
* "auth": {
|
|
26
|
+
* "weibo": {
|
|
27
|
+
* "clientId": "your-client-id",
|
|
28
|
+
* "clientSecret": "your-client-secret"
|
|
29
|
+
* }
|
|
30
|
+
* }
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
* ### Insecure Configuration (Not Recommended)
|
|
34
|
+
* ```json
|
|
35
|
+
* {
|
|
36
|
+
* "auth": {
|
|
37
|
+
* "weibo": {
|
|
38
|
+
* "enableInsecureAuth": true
|
|
39
|
+
* }
|
|
40
|
+
* }
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* The adapter requires the following `authData` fields:
|
|
45
|
+
* - **Secure Authentication**: `code`, `redirect_uri`.
|
|
46
|
+
* - **Insecure Authentication (Not Recommended)**: `id`, `access_token`.
|
|
47
|
+
*
|
|
48
|
+
* ## Auth Payloads
|
|
49
|
+
* ### Secure Authentication Payload
|
|
50
|
+
* ```json
|
|
51
|
+
* {
|
|
52
|
+
* "weibo": {
|
|
53
|
+
* "code": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
54
|
+
* "redirect_uri": "https://example.com/callback"
|
|
55
|
+
* }
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
* ### Insecure Authentication Payload (Not Recommended)
|
|
59
|
+
* ```json
|
|
60
|
+
* {
|
|
61
|
+
* "weibo": {
|
|
62
|
+
* "id": "1234567",
|
|
63
|
+
* "access_token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
64
|
+
* }
|
|
65
|
+
* }
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* ## Notes
|
|
69
|
+
* - **Insecure Authentication**: When `enableInsecureAuth` is enabled, the adapter directly validates the `id` and `access_token` provided by the client.
|
|
70
|
+
* - **Secure Authentication**: When `enableInsecureAuth` is disabled, the adapter exchanges the `code` and `redirect_uri` for an access token using Weibo's OAuth API.
|
|
71
|
+
* - `enableInsecureAuth` is **deprecated** and may be removed in future versions. Use secure authentication with `code` and `redirect_uri`.
|
|
72
|
+
*
|
|
73
|
+
* @example <caption>Auth Data Example (Secure)</caption>
|
|
74
|
+
* const authData = {
|
|
75
|
+
* weibo: {
|
|
76
|
+
* code: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
77
|
+
* redirect_uri: "https://example.com/callback"
|
|
78
|
+
* }
|
|
79
|
+
* };
|
|
80
|
+
*
|
|
81
|
+
* @example <caption>Auth Data Example (Insecure - Not Recommended)</caption>
|
|
82
|
+
* const authData = {
|
|
83
|
+
* weibo: {
|
|
84
|
+
* id: "1234567",
|
|
85
|
+
* access_token: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
86
|
+
* }
|
|
87
|
+
* };
|
|
88
|
+
*
|
|
89
|
+
* @see {@link https://open.weibo.com/wiki/Oauth2/access_token Weibo Authentication Documentation}
|
|
90
|
+
*/
|
|
91
|
+
|
|
92
|
+
class WeiboAdapter extends _BaseCodeAuthAdapter.default {
|
|
93
|
+
constructor() {
|
|
94
|
+
super('Weibo');
|
|
95
|
+
}
|
|
96
|
+
async getUserFromAccessToken(access_token) {
|
|
97
|
+
const postData = _querystring.default.stringify({
|
|
98
|
+
access_token: access_token
|
|
99
|
+
});
|
|
100
|
+
const response = await fetch('https://api.weibo.com/oauth2/get_token_info', {
|
|
101
|
+
method: 'POST',
|
|
102
|
+
headers: {
|
|
103
|
+
'Content-Type': 'application/x-www-form-urlencoded'
|
|
104
|
+
},
|
|
105
|
+
body: postData
|
|
106
|
+
});
|
|
107
|
+
const data = await response.json();
|
|
108
|
+
if (!response.ok) {
|
|
109
|
+
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Weibo auth is invalid for this user.');
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
id: data.uid
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
async getAccessTokenFromCode(authData) {
|
|
116
|
+
if (!authData?.code || !authData?.redirect_uri) {
|
|
117
|
+
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Weibo auth requires code and redirect_uri to be sent.');
|
|
118
|
+
}
|
|
119
|
+
const postData = _querystring.default.stringify({
|
|
120
|
+
client_id: this.clientId,
|
|
121
|
+
client_secret: this.clientSecret,
|
|
122
|
+
grant_type: 'authorization_code',
|
|
123
|
+
code: authData.code,
|
|
124
|
+
redirect_uri: authData.redirect_uri
|
|
125
|
+
});
|
|
126
|
+
const response = await fetch('https://api.weibo.com/oauth2/access_token', {
|
|
127
|
+
method: 'POST',
|
|
128
|
+
headers: {
|
|
129
|
+
'Content-Type': 'application/x-www-form-urlencoded'
|
|
130
|
+
},
|
|
131
|
+
body: postData
|
|
132
|
+
});
|
|
133
|
+
const data = await response.json();
|
|
134
|
+
if (!response.ok || data.errcode) {
|
|
135
|
+
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Weibo auth is invalid for this user.');
|
|
136
|
+
}
|
|
137
|
+
return data.access_token;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
var _default = exports.default = new WeiboAdapter();
|
|
141
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQmFzZUNvZGVBdXRoQWRhcHRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3F1ZXJ5c3RyaW5nIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiV2VpYm9BZGFwdGVyIiwiQmFzZUF1dGhDb2RlQWRhcHRlciIsImNvbnN0cnVjdG9yIiwiZ2V0VXNlckZyb21BY2Nlc3NUb2tlbiIsImFjY2Vzc190b2tlbiIsInBvc3REYXRhIiwicXVlcnlzdHJpbmciLCJzdHJpbmdpZnkiLCJyZXNwb25zZSIsImZldGNoIiwibWV0aG9kIiwiaGVhZGVycyIsImJvZHkiLCJkYXRhIiwianNvbiIsIm9rIiwiUGFyc2UiLCJFcnJvciIsIk9CSkVDVF9OT1RfRk9VTkQiLCJpZCIsInVpZCIsImdldEFjY2Vzc1Rva2VuRnJvbUNvZGUiLCJhdXRoRGF0YSIsImNvZGUiLCJyZWRpcmVjdF91cmkiLCJjbGllbnRfaWQiLCJjbGllbnRJZCIsImNsaWVudF9zZWNyZXQiLCJjbGllbnRTZWNyZXQiLCJncmFudF90eXBlIiwiZXJyY29kZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL3dlaWJvLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGFyc2UgU2VydmVyIGF1dGhlbnRpY2F0aW9uIGFkYXB0ZXIgZm9yIFdlaWJvLlxuICpcbiAqIEBjbGFzcyBXZWlib0FkYXB0ZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gVGhlIGFkYXB0ZXIgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5lbmFibGVJbnNlY3VyZUF1dGg9ZmFsc2VdIC0gKipbREVQUkVDQVRFRF0qKiBFbmFibGUgaW5zZWN1cmUgYXV0aGVudGljYXRpb24gKG5vdCByZWNvbW1lbmRlZCkuXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5jbGllbnRJZCAtIFlvdXIgV2VpYm8gY2xpZW50IElELlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuY2xpZW50U2VjcmV0IC0gWW91ciBXZWlibyBjbGllbnQgc2VjcmV0LlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogIyMgUGFyc2UgU2VydmVyIENvbmZpZ3VyYXRpb25cbiAqIFRvIGNvbmZpZ3VyZSBQYXJzZSBTZXJ2ZXIgZm9yIFdlaWJvIGF1dGhlbnRpY2F0aW9uLCB1c2UgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gKiAjIyMgU2VjdXJlIENvbmZpZ3VyYXRpb25cbiAqIGBgYGpzb25cbiAqIHtcbiAqICAgXCJhdXRoXCI6IHtcbiAqICAgICBcIndlaWJvXCI6IHtcbiAqICAgICAgIFwiY2xpZW50SWRcIjogXCJ5b3VyLWNsaWVudC1pZFwiLFxuICogICAgICAgXCJjbGllbnRTZWNyZXRcIjogXCJ5b3VyLWNsaWVudC1zZWNyZXRcIlxuICogICAgIH1cbiAqICAgfVxuICogfVxuICogYGBgXG4gKiAjIyMgSW5zZWN1cmUgQ29uZmlndXJhdGlvbiAoTm90IFJlY29tbWVuZGVkKVxuICogYGBganNvblxuICoge1xuICogICBcImF1dGhcIjoge1xuICogICAgIFwid2VpYm9cIjoge1xuICogICAgICAgXCJlbmFibGVJbnNlY3VyZUF1dGhcIjogdHJ1ZVxuICogICAgIH1cbiAqICAgfVxuICogfVxuICogYGBgXG4gKlxuICogVGhlIGFkYXB0ZXIgcmVxdWlyZXMgdGhlIGZvbGxvd2luZyBgYXV0aERhdGFgIGZpZWxkczpcbiAqIC0gKipTZWN1cmUgQXV0aGVudGljYXRpb24qKjogYGNvZGVgLCBgcmVkaXJlY3RfdXJpYC5cbiAqIC0gKipJbnNlY3VyZSBBdXRoZW50aWNhdGlvbiAoTm90IFJlY29tbWVuZGVkKSoqOiBgaWRgLCBgYWNjZXNzX3Rva2VuYC5cbiAqXG4gKiAjIyBBdXRoIFBheWxvYWRzXG4gKiAjIyMgU2VjdXJlIEF1dGhlbnRpY2F0aW9uIFBheWxvYWRcbiAqIGBgYGpzb25cbiAqIHtcbiAqICAgXCJ3ZWlib1wiOiB7XG4gKiAgICAgXCJjb2RlXCI6IFwieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhcIixcbiAqICAgICBcInJlZGlyZWN0X3VyaVwiOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vY2FsbGJhY2tcIlxuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqICMjIyBJbnNlY3VyZSBBdXRoZW50aWNhdGlvbiBQYXlsb2FkIChOb3QgUmVjb21tZW5kZWQpXG4gKiBgYGBqc29uXG4gKiB7XG4gKiAgIFwid2VpYm9cIjoge1xuICogICAgIFwiaWRcIjogXCIxMjM0NTY3XCIsXG4gKiAgICAgXCJhY2Nlc3NfdG9rZW5cIjogXCJ4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eFwiXG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqICMjIE5vdGVzXG4gKiAtICoqSW5zZWN1cmUgQXV0aGVudGljYXRpb24qKjogV2hlbiBgZW5hYmxlSW5zZWN1cmVBdXRoYCBpcyBlbmFibGVkLCB0aGUgYWRhcHRlciBkaXJlY3RseSB2YWxpZGF0ZXMgdGhlIGBpZGAgYW5kIGBhY2Nlc3NfdG9rZW5gIHByb3ZpZGVkIGJ5IHRoZSBjbGllbnQuXG4gKiAtICoqU2VjdXJlIEF1dGhlbnRpY2F0aW9uKio6IFdoZW4gYGVuYWJsZUluc2VjdXJlQXV0aGAgaXMgZGlzYWJsZWQsIHRoZSBhZGFwdGVyIGV4Y2hhbmdlcyB0aGUgYGNvZGVgIGFuZCBgcmVkaXJlY3RfdXJpYCBmb3IgYW4gYWNjZXNzIHRva2VuIHVzaW5nIFdlaWJvJ3MgT0F1dGggQVBJLlxuICogLSBgZW5hYmxlSW5zZWN1cmVBdXRoYCBpcyAqKmRlcHJlY2F0ZWQqKiBhbmQgbWF5IGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zLiBVc2Ugc2VjdXJlIGF1dGhlbnRpY2F0aW9uIHdpdGggYGNvZGVgIGFuZCBgcmVkaXJlY3RfdXJpYC5cbiAqXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5BdXRoIERhdGEgRXhhbXBsZSAoU2VjdXJlKTwvY2FwdGlvbj5cbiAqIGNvbnN0IGF1dGhEYXRhID0ge1xuICogICB3ZWlibzoge1xuICogICAgIGNvZGU6IFwieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhcIixcbiAqICAgICByZWRpcmVjdF91cmk6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9jYWxsYmFja1wiXG4gKiAgIH1cbiAqIH07XG4gKlxuICogQGV4YW1wbGUgPGNhcHRpb24+QXV0aCBEYXRhIEV4YW1wbGUgKEluc2VjdXJlIC0gTm90IFJlY29tbWVuZGVkKTwvY2FwdGlvbj5cbiAqIGNvbnN0IGF1dGhEYXRhID0ge1xuICogICB3ZWlibzoge1xuICogICAgIGlkOiBcIjEyMzQ1NjdcIixcbiAqICAgICBhY2Nlc3NfdG9rZW46IFwieHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhcIlxuICogICB9XG4gKiB9O1xuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vb3Blbi53ZWliby5jb20vd2lraS9PYXV0aDIvYWNjZXNzX3Rva2VuIFdlaWJvIEF1dGhlbnRpY2F0aW9uIERvY3VtZW50YXRpb259XG4gKi9cblxuaW1wb3J0IEJhc2VBdXRoQ29kZUFkYXB0ZXIgZnJvbSAnLi9CYXNlQ29kZUF1dGhBZGFwdGVyJztcbmltcG9ydCBxdWVyeXN0cmluZyBmcm9tICdxdWVyeXN0cmluZyc7XG5cbmNsYXNzIFdlaWJvQWRhcHRlciBleHRlbmRzIEJhc2VBdXRoQ29kZUFkYXB0ZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignV2VpYm8nKTtcbiAgfVxuXG4gIGFzeW5jIGdldFVzZXJGcm9tQWNjZXNzVG9rZW4oYWNjZXNzX3Rva2VuKSB7XG4gICAgY29uc3QgcG9zdERhdGEgPSBxdWVyeXN0cmluZy5zdHJpbmdpZnkoe1xuICAgICAgYWNjZXNzX3Rva2VuOiBhY2Nlc3NfdG9rZW4sXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCdodHRwczovL2FwaS53ZWliby5jb20vb2F1dGgyL2dldF90b2tlbl9pbmZvJywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgICAgIH0sXG4gICAgICBib2R5OiBwb3N0RGF0YSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgJ1dlaWJvIGF1dGggaXMgaW52YWxpZCBmb3IgdGhpcyB1c2VyLicpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBpZDogZGF0YS51aWQsXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0QWNjZXNzVG9rZW5Gcm9tQ29kZShhdXRoRGF0YSkge1xuICAgIGlmICghYXV0aERhdGE/LmNvZGUgfHwgIWF1dGhEYXRhPy5yZWRpcmVjdF91cmkpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgICAgUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCxcbiAgICAgICAgJ1dlaWJvIGF1dGggcmVxdWlyZXMgY29kZSBhbmQgcmVkaXJlY3RfdXJpIHRvIGJlIHNlbnQuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBwb3N0RGF0YSA9IHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeSh7XG4gICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICBjbGllbnRfc2VjcmV0OiB0aGlzLmNsaWVudFNlY3JldCxcbiAgICAgIGdyYW50X3R5cGU6ICdhdXRob3JpemF0aW9uX2NvZGUnLFxuICAgICAgY29kZTogYXV0aERhdGEuY29kZSxcbiAgICAgIHJlZGlyZWN0X3VyaTogYXV0aERhdGEucmVkaXJlY3RfdXJpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnaHR0cHM6Ly9hcGkud2VpYm8uY29tL29hdXRoMi9hY2Nlc3NfdG9rZW4nLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IHBvc3REYXRhLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblxuICAgIGlmICghcmVzcG9uc2Uub2sgfHwgZGF0YS5lcnJjb2RlKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgJ1dlaWJvIGF1dGggaXMgaW52YWxpZCBmb3IgdGhpcyB1c2VyLicpO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhLmFjY2Vzc190b2tlbjtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgV2VpYm9BZGFwdGVyKCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQWtGQSxJQUFBQSxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsWUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQXNDLFNBQUFELHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBbkZ0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CacheAdapter = void 0;
|
|
7
|
+
/* eslint-disable unused-imports/no-unused-vars */
|
|
8
|
+
/**
|
|
9
|
+
* @interface
|
|
10
|
+
* @memberof module:Adapters
|
|
11
|
+
*/
|
|
12
|
+
class CacheAdapter {
|
|
13
|
+
/**
|
|
14
|
+
* Get a value in the cache
|
|
15
|
+
* @param {String} key Cache key to get
|
|
16
|
+
* @return {Promise} that will eventually resolve to the value in the cache.
|
|
17
|
+
*/
|
|
18
|
+
get(key) {}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Set a value in the cache
|
|
22
|
+
* @param {String} key Cache key to set
|
|
23
|
+
* @param {String} value Value to set the key
|
|
24
|
+
* @param {String} ttl Optional TTL
|
|
25
|
+
*/
|
|
26
|
+
put(key, value, ttl) {}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Remove a value from the cache.
|
|
30
|
+
* @param {String} key Cache key to remove
|
|
31
|
+
*/
|
|
32
|
+
del(key) {}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Empty a cache
|
|
36
|
+
*/
|
|
37
|
+
clear() {}
|
|
38
|
+
}
|
|
39
|
+
exports.CacheAdapter = CacheAdapter;
|
|
40
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDYWNoZUFkYXB0ZXIiLCJnZXQiLCJrZXkiLCJwdXQiLCJ2YWx1ZSIsInR0bCIsImRlbCIsImNsZWFyIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9DYWNoZS9DYWNoZUFkYXB0ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgdW51c2VkLWltcG9ydHMvbm8tdW51c2VkLXZhcnMgKi9cbi8qKlxuICogQGludGVyZmFjZVxuICogQG1lbWJlcm9mIG1vZHVsZTpBZGFwdGVyc1xuICovXG5leHBvcnQgY2xhc3MgQ2FjaGVBZGFwdGVyIHtcbiAgLyoqXG4gICAqIEdldCBhIHZhbHVlIGluIHRoZSBjYWNoZVxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5IENhY2hlIGtleSB0byBnZXRcbiAgICogQHJldHVybiB7UHJvbWlzZX0gdGhhdCB3aWxsIGV2ZW50dWFsbHkgcmVzb2x2ZSB0byB0aGUgdmFsdWUgaW4gdGhlIGNhY2hlLlxuICAgKi9cbiAgZ2V0KGtleSkge31cblxuICAvKipcbiAgICogU2V0IGEgdmFsdWUgaW4gdGhlIGNhY2hlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgQ2FjaGUga2V5IHRvIHNldFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdmFsdWUgVmFsdWUgdG8gc2V0IHRoZSBrZXlcbiAgICogQHBhcmFtIHtTdHJpbmd9IHR0bCBPcHRpb25hbCBUVExcbiAgICovXG4gIHB1dChrZXksIHZhbHVlLCB0dGwpIHt9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHZhbHVlIGZyb20gdGhlIGNhY2hlLlxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5IENhY2hlIGtleSB0byByZW1vdmVcbiAgICovXG4gIGRlbChrZXkpIHt9XG5cbiAgLyoqXG4gICAqIEVtcHR5IGEgY2FjaGVcbiAgICovXG4gIGNsZWFyKCkge31cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1BLFlBQVksQ0FBQztFQUN4QjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0VBQ0VDLEdBQUdBLENBQUNDLEdBQUcsRUFBRSxDQUFDOztFQUVWO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFQyxHQUFHQSxDQUFDRCxHQUFHLEVBQUVFLEtBQUssRUFBRUMsR0FBRyxFQUFFLENBQUM7O0VBRXRCO0FBQ0Y7QUFDQTtBQUNBO0VBQ0VDLEdBQUdBLENBQUNKLEdBQUcsRUFBRSxDQUFDOztFQUVWO0FBQ0Y7QUFDQTtFQUNFSyxLQUFLQSxDQUFBLEVBQUcsQ0FBQztBQUNYO0FBQUNDLE9BQUEsQ0FBQVIsWUFBQSxHQUFBQSxZQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.InMemoryCache = void 0;
|
|
7
|
+
const DEFAULT_CACHE_TTL = 5 * 1000;
|
|
8
|
+
class InMemoryCache {
|
|
9
|
+
constructor({
|
|
10
|
+
ttl = DEFAULT_CACHE_TTL
|
|
11
|
+
}) {
|
|
12
|
+
this.ttl = ttl;
|
|
13
|
+
this.cache = Object.create(null);
|
|
14
|
+
}
|
|
15
|
+
get(key) {
|
|
16
|
+
const record = this.cache[key];
|
|
17
|
+
if (record == null) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Has Record and isnt expired
|
|
22
|
+
if (isNaN(record.expire) || record.expire >= Date.now()) {
|
|
23
|
+
return record.value;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Record has expired
|
|
27
|
+
delete this.cache[key];
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
put(key, value, ttl = this.ttl) {
|
|
31
|
+
if (ttl < 0 || isNaN(ttl)) {
|
|
32
|
+
ttl = NaN;
|
|
33
|
+
}
|
|
34
|
+
var record = {
|
|
35
|
+
value: value,
|
|
36
|
+
expire: ttl + Date.now()
|
|
37
|
+
};
|
|
38
|
+
if (!isNaN(record.expire)) {
|
|
39
|
+
record.timeout = setTimeout(() => {
|
|
40
|
+
this.del(key);
|
|
41
|
+
}, ttl);
|
|
42
|
+
}
|
|
43
|
+
this.cache[key] = record;
|
|
44
|
+
}
|
|
45
|
+
del(key) {
|
|
46
|
+
var record = this.cache[key];
|
|
47
|
+
if (record == null) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (record.timeout) {
|
|
51
|
+
clearTimeout(record.timeout);
|
|
52
|
+
}
|
|
53
|
+
delete this.cache[key];
|
|
54
|
+
}
|
|
55
|
+
clear() {
|
|
56
|
+
this.cache = Object.create(null);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.InMemoryCache = InMemoryCache;
|
|
60
|
+
var _default = exports.default = InMemoryCache;
|
|
61
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJERUZBVUxUX0NBQ0hFX1RUTCIsIkluTWVtb3J5Q2FjaGUiLCJjb25zdHJ1Y3RvciIsInR0bCIsImNhY2hlIiwiT2JqZWN0IiwiY3JlYXRlIiwiZ2V0Iiwia2V5IiwicmVjb3JkIiwiaXNOYU4iLCJleHBpcmUiLCJEYXRlIiwibm93IiwidmFsdWUiLCJwdXQiLCJOYU4iLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsImRlbCIsImNsZWFyVGltZW91dCIsImNsZWFyIiwiZXhwb3J0cyIsIl9kZWZhdWx0IiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9DYWNoZS9Jbk1lbW9yeUNhY2hlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IERFRkFVTFRfQ0FDSEVfVFRMID0gNSAqIDEwMDA7XG5cbmV4cG9ydCBjbGFzcyBJbk1lbW9yeUNhY2hlIHtcbiAgY29uc3RydWN0b3IoeyB0dGwgPSBERUZBVUxUX0NBQ0hFX1RUTCB9KSB7XG4gICAgdGhpcy50dGwgPSB0dGw7XG4gICAgdGhpcy5jYWNoZSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIH1cblxuICBnZXQoa2V5KSB7XG4gICAgY29uc3QgcmVjb3JkID0gdGhpcy5jYWNoZVtrZXldO1xuICAgIGlmIChyZWNvcmQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gSGFzIFJlY29yZCBhbmQgaXNudCBleHBpcmVkXG4gICAgaWYgKGlzTmFOKHJlY29yZC5leHBpcmUpIHx8IHJlY29yZC5leHBpcmUgPj0gRGF0ZS5ub3coKSkge1xuICAgICAgcmV0dXJuIHJlY29yZC52YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBSZWNvcmQgaGFzIGV4cGlyZWRcbiAgICBkZWxldGUgdGhpcy5jYWNoZVtrZXldO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHV0KGtleSwgdmFsdWUsIHR0bCA9IHRoaXMudHRsKSB7XG4gICAgaWYgKHR0bCA8IDAgfHwgaXNOYU4odHRsKSkge1xuICAgICAgdHRsID0gTmFOO1xuICAgIH1cblxuICAgIHZhciByZWNvcmQgPSB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBleHBpcmU6IHR0bCArIERhdGUubm93KCksXG4gICAgfTtcblxuICAgIGlmICghaXNOYU4ocmVjb3JkLmV4cGlyZSkpIHtcbiAgICAgIHJlY29yZC50aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZGVsKGtleSk7XG4gICAgICB9LCB0dGwpO1xuICAgIH1cblxuICAgIHRoaXMuY2FjaGVba2V5XSA9IHJlY29yZDtcbiAgfVxuXG4gIGRlbChrZXkpIHtcbiAgICB2YXIgcmVjb3JkID0gdGhpcy5jYWNoZVtrZXldO1xuICAgIGlmIChyZWNvcmQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZWNvcmQudGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHJlY29yZC50aW1lb3V0KTtcbiAgICB9XG4gICAgZGVsZXRlIHRoaXMuY2FjaGVba2V5XTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuY2FjaGUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEluTWVtb3J5Q2FjaGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE1BQU1BLGlCQUFpQixHQUFHLENBQUMsR0FBRyxJQUFJO0FBRTNCLE1BQU1DLGFBQWEsQ0FBQztFQUN6QkMsV0FBV0EsQ0FBQztJQUFFQyxHQUFHLEdBQUdIO0VBQWtCLENBQUMsRUFBRTtJQUN2QyxJQUFJLENBQUNHLEdBQUcsR0FBR0EsR0FBRztJQUNkLElBQUksQ0FBQ0MsS0FBSyxHQUFHQyxNQUFNLENBQUNDLE1BQU0sQ0FBQyxJQUFJLENBQUM7RUFDbEM7RUFFQUMsR0FBR0EsQ0FBQ0MsR0FBRyxFQUFFO0lBQ1AsTUFBTUMsTUFBTSxHQUFHLElBQUksQ0FBQ0wsS0FBSyxDQUFDSSxHQUFHLENBQUM7SUFDOUIsSUFBSUMsTUFBTSxJQUFJLElBQUksRUFBRTtNQUNsQixPQUFPLElBQUk7SUFDYjs7SUFFQTtJQUNBLElBQUlDLEtBQUssQ0FBQ0QsTUFBTSxDQUFDRSxNQUFNLENBQUMsSUFBSUYsTUFBTSxDQUFDRSxNQUFNLElBQUlDLElBQUksQ0FBQ0MsR0FBRyxDQUFDLENBQUMsRUFBRTtNQUN2RCxPQUFPSixNQUFNLENBQUNLLEtBQUs7SUFDckI7O0lBRUE7SUFDQSxPQUFPLElBQUksQ0FBQ1YsS0FBSyxDQUFDSSxHQUFHLENBQUM7SUFDdEIsT0FBTyxJQUFJO0VBQ2I7RUFFQU8sR0FBR0EsQ0FBQ1AsR0FBRyxFQUFFTSxLQUFLLEVBQUVYLEdBQUcsR0FBRyxJQUFJLENBQUNBLEdBQUcsRUFBRTtJQUM5QixJQUFJQSxHQUFHLEdBQUcsQ0FBQyxJQUFJTyxLQUFLLENBQUNQLEdBQUcsQ0FBQyxFQUFFO01BQ3pCQSxHQUFHLEdBQUdhLEdBQUc7SUFDWDtJQUVBLElBQUlQLE1BQU0sR0FBRztNQUNYSyxLQUFLLEVBQUVBLEtBQUs7TUFDWkgsTUFBTSxFQUFFUixHQUFHLEdBQUdTLElBQUksQ0FBQ0MsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLENBQUNILEtBQUssQ0FBQ0QsTUFBTSxDQUFDRSxNQUFNLENBQUMsRUFBRTtNQUN6QkYsTUFBTSxDQUFDUSxPQUFPLEdBQUdDLFVBQVUsQ0FBQyxNQUFNO1FBQ2hDLElBQUksQ0FBQ0MsR0FBRyxDQUFDWCxHQUFHLENBQUM7TUFDZixDQUFDLEVBQUVMLEdBQUcsQ0FBQztJQUNUO0lBRUEsSUFBSSxDQUFDQyxLQUFLLENBQUNJLEdBQUcsQ0FBQyxHQUFHQyxNQUFNO0VBQzFCO0VBRUFVLEdBQUdBLENBQUNYLEdBQUcsRUFBRTtJQUNQLElBQUlDLE1BQU0sR0FBRyxJQUFJLENBQUNMLEtBQUssQ0FBQ0ksR0FBRyxDQUFDO0lBQzVCLElBQUlDLE1BQU0sSUFBSSxJQUFJLEVBQUU7TUFDbEI7SUFDRjtJQUVBLElBQUlBLE1BQU0sQ0FBQ1EsT0FBTyxFQUFFO01BQ2xCRyxZQUFZLENBQUNYLE1BQU0sQ0FBQ1EsT0FBTyxDQUFDO0lBQzlCO0lBQ0EsT0FBTyxJQUFJLENBQUNiLEtBQUssQ0FBQ0ksR0FBRyxDQUFDO0VBQ3hCO0VBRUFhLEtBQUtBLENBQUEsRUFBRztJQUNOLElBQUksQ0FBQ2pCLEtBQUssR0FBR0MsTUFBTSxDQUFDQyxNQUFNLENBQUMsSUFBSSxDQUFDO0VBQ2xDO0FBQ0Y7QUFBQ2dCLE9BQUEsQ0FBQXJCLGFBQUEsR0FBQUEsYUFBQTtBQUFBLElBQUFzQixRQUFBLEdBQUFELE9BQUEsQ0FBQUUsT0FBQSxHQUVjdkIsYUFBYSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.InMemoryCacheAdapter = void 0;
|
|
7
|
+
var _LRUCache = require("./LRUCache");
|
|
8
|
+
class InMemoryCacheAdapter {
|
|
9
|
+
constructor(ctx) {
|
|
10
|
+
this.cache = new _LRUCache.LRUCache(ctx);
|
|
11
|
+
}
|
|
12
|
+
get(key) {
|
|
13
|
+
const record = this.cache.get(key);
|
|
14
|
+
if (record === null) {
|
|
15
|
+
return Promise.resolve(null);
|
|
16
|
+
}
|
|
17
|
+
return Promise.resolve(record);
|
|
18
|
+
}
|
|
19
|
+
put(key, value, ttl) {
|
|
20
|
+
this.cache.put(key, value, ttl);
|
|
21
|
+
return Promise.resolve();
|
|
22
|
+
}
|
|
23
|
+
del(key) {
|
|
24
|
+
this.cache.del(key);
|
|
25
|
+
return Promise.resolve();
|
|
26
|
+
}
|
|
27
|
+
clear() {
|
|
28
|
+
this.cache.clear();
|
|
29
|
+
return Promise.resolve();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.InMemoryCacheAdapter = InMemoryCacheAdapter;
|
|
33
|
+
var _default = exports.default = InMemoryCacheAdapter;
|
|
34
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfTFJVQ2FjaGUiLCJyZXF1aXJlIiwiSW5NZW1vcnlDYWNoZUFkYXB0ZXIiLCJjb25zdHJ1Y3RvciIsImN0eCIsImNhY2hlIiwiTFJVQ2FjaGUiLCJnZXQiLCJrZXkiLCJyZWNvcmQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInB1dCIsInZhbHVlIiwidHRsIiwiZGVsIiwiY2xlYXIiLCJleHBvcnRzIiwiX2RlZmF1bHQiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0FkYXB0ZXJzL0NhY2hlL0luTWVtb3J5Q2FjaGVBZGFwdGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExSVUNhY2hlIH0gZnJvbSAnLi9MUlVDYWNoZSc7XG5cbmV4cG9ydCBjbGFzcyBJbk1lbW9yeUNhY2hlQWRhcHRlciB7XG4gIGNvbnN0cnVjdG9yKGN0eCkge1xuICAgIHRoaXMuY2FjaGUgPSBuZXcgTFJVQ2FjaGUoY3R4KTtcbiAgfVxuXG4gIGdldChrZXkpIHtcbiAgICBjb25zdCByZWNvcmQgPSB0aGlzLmNhY2hlLmdldChrZXkpO1xuICAgIGlmIChyZWNvcmQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVjb3JkKTtcbiAgfVxuXG4gIHB1dChrZXksIHZhbHVlLCB0dGwpIHtcbiAgICB0aGlzLmNhY2hlLnB1dChrZXksIHZhbHVlLCB0dGwpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIGRlbChrZXkpIHtcbiAgICB0aGlzLmNhY2hlLmRlbChrZXkpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSW5NZW1vcnlDYWNoZUFkYXB0ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUVPLE1BQU1DLG9CQUFvQixDQUFDO0VBQ2hDQyxXQUFXQSxDQUFDQyxHQUFHLEVBQUU7SUFDZixJQUFJLENBQUNDLEtBQUssR0FBRyxJQUFJQyxrQkFBUSxDQUFDRixHQUFHLENBQUM7RUFDaEM7RUFFQUcsR0FBR0EsQ0FBQ0MsR0FBRyxFQUFFO0lBQ1AsTUFBTUMsTUFBTSxHQUFHLElBQUksQ0FBQ0osS0FBSyxDQUFDRSxHQUFHLENBQUNDLEdBQUcsQ0FBQztJQUNsQyxJQUFJQyxNQUFNLEtBQUssSUFBSSxFQUFFO01BQ25CLE9BQU9DLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLElBQUksQ0FBQztJQUM5QjtJQUNBLE9BQU9ELE9BQU8sQ0FBQ0MsT0FBTyxDQUFDRixNQUFNLENBQUM7RUFDaEM7RUFFQUcsR0FBR0EsQ0FBQ0osR0FBRyxFQUFFSyxLQUFLLEVBQUVDLEdBQUcsRUFBRTtJQUNuQixJQUFJLENBQUNULEtBQUssQ0FBQ08sR0FBRyxDQUFDSixHQUFHLEVBQUVLLEtBQUssRUFBRUMsR0FBRyxDQUFDO0lBQy9CLE9BQU9KLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUM7RUFDMUI7RUFFQUksR0FBR0EsQ0FBQ1AsR0FBRyxFQUFFO0lBQ1AsSUFBSSxDQUFDSCxLQUFLLENBQUNVLEdBQUcsQ0FBQ1AsR0FBRyxDQUFDO0lBQ25CLE9BQU9FLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUM7RUFDMUI7RUFFQUssS0FBS0EsQ0FBQSxFQUFHO0lBQ04sSUFBSSxDQUFDWCxLQUFLLENBQUNXLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLE9BQU9OLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUM7RUFDMUI7QUFDRjtBQUFDTSxPQUFBLENBQUFmLG9CQUFBLEdBQUFBLG9CQUFBO0FBQUEsSUFBQWdCLFFBQUEsR0FBQUQsT0FBQSxDQUFBRSxPQUFBLEdBRWNqQixvQkFBb0IiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.LRUCache = void 0;
|
|
7
|
+
var _lruCache = require("lru-cache");
|
|
8
|
+
var _defaults = _interopRequireDefault(require("../../defaults"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
class LRUCache {
|
|
11
|
+
constructor({
|
|
12
|
+
ttl = _defaults.default.cacheTTL,
|
|
13
|
+
maxSize = _defaults.default.cacheMaxSize
|
|
14
|
+
}) {
|
|
15
|
+
this.cache = new _lruCache.LRUCache({
|
|
16
|
+
max: maxSize,
|
|
17
|
+
ttl
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
get(key) {
|
|
21
|
+
return this.cache.get(key) || null;
|
|
22
|
+
}
|
|
23
|
+
put(key, value, ttl = this.ttl) {
|
|
24
|
+
this.cache.set(key, value, ttl);
|
|
25
|
+
}
|
|
26
|
+
del(key) {
|
|
27
|
+
this.cache.delete(key);
|
|
28
|
+
}
|
|
29
|
+
clear() {
|
|
30
|
+
this.cache.clear();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.LRUCache = LRUCache;
|
|
34
|
+
var _default = exports.default = LRUCache;
|
|
35
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbHJ1Q2FjaGUiLCJyZXF1aXJlIiwiX2RlZmF1bHRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkxSVUNhY2hlIiwiY29uc3RydWN0b3IiLCJ0dGwiLCJkZWZhdWx0cyIsImNhY2hlVFRMIiwibWF4U2l6ZSIsImNhY2hlTWF4U2l6ZSIsImNhY2hlIiwiTFJVIiwibWF4IiwiZ2V0Iiwia2V5IiwicHV0IiwidmFsdWUiLCJzZXQiLCJkZWwiLCJkZWxldGUiLCJjbGVhciIsImV4cG9ydHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9DYWNoZS9MUlVDYWNoZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMUlVDYWNoZSBhcyBMUlUgfSBmcm9tICdscnUtY2FjaGUnO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4uLy4uL2RlZmF1bHRzJztcblxuZXhwb3J0IGNsYXNzIExSVUNhY2hlIHtcbiAgY29uc3RydWN0b3IoeyB0dGwgPSBkZWZhdWx0cy5jYWNoZVRUTCwgbWF4U2l6ZSA9IGRlZmF1bHRzLmNhY2hlTWF4U2l6ZSB9KSB7XG4gICAgdGhpcy5jYWNoZSA9IG5ldyBMUlUoe1xuICAgICAgbWF4OiBtYXhTaXplLFxuICAgICAgdHRsLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0KGtleSkge1xuICAgIHJldHVybiB0aGlzLmNhY2hlLmdldChrZXkpIHx8IG51bGw7XG4gIH1cblxuICBwdXQoa2V5LCB2YWx1ZSwgdHRsID0gdGhpcy50dGwpIHtcbiAgICB0aGlzLmNhY2hlLnNldChrZXksIHZhbHVlLCB0dGwpO1xuICB9XG5cbiAgZGVsKGtleSkge1xuICAgIHRoaXMuY2FjaGUuZGVsZXRlKGtleSk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICB0aGlzLmNhY2hlLmNsZWFyKCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTFJVQ2FjaGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUFzQyxTQUFBRSx1QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUUvQixNQUFNRyxRQUFRLENBQUM7RUFDcEJDLFdBQVdBLENBQUM7SUFBRUMsR0FBRyxHQUFHQyxpQkFBUSxDQUFDQyxRQUFRO0lBQUVDLE9BQU8sR0FBR0YsaUJBQVEsQ0FBQ0c7RUFBYSxDQUFDLEVBQUU7SUFDeEUsSUFBSSxDQUFDQyxLQUFLLEdBQUcsSUFBSUMsa0JBQUcsQ0FBQztNQUNuQkMsR0FBRyxFQUFFSixPQUFPO01BQ1pIO0lBQ0YsQ0FBQyxDQUFDO0VBQ0o7RUFFQVEsR0FBR0EsQ0FBQ0MsR0FBRyxFQUFFO0lBQ1AsT0FBTyxJQUFJLENBQUNKLEtBQUssQ0FBQ0csR0FBRyxDQUFDQyxHQUFHLENBQUMsSUFBSSxJQUFJO0VBQ3BDO0VBRUFDLEdBQUdBLENBQUNELEdBQUcsRUFBRUUsS0FBSyxFQUFFWCxHQUFHLEdBQUcsSUFBSSxDQUFDQSxHQUFHLEVBQUU7SUFDOUIsSUFBSSxDQUFDSyxLQUFLLENBQUNPLEdBQUcsQ0FBQ0gsR0FBRyxFQUFFRSxLQUFLLEVBQUVYLEdBQUcsQ0FBQztFQUNqQztFQUVBYSxHQUFHQSxDQUFDSixHQUFHLEVBQUU7SUFDUCxJQUFJLENBQUNKLEtBQUssQ0FBQ1MsTUFBTSxDQUFDTCxHQUFHLENBQUM7RUFDeEI7RUFFQU0sS0FBS0EsQ0FBQSxFQUFHO0lBQ04sSUFBSSxDQUFDVixLQUFLLENBQUNVLEtBQUssQ0FBQyxDQUFDO0VBQ3BCO0FBQ0Y7QUFBQ0MsT0FBQSxDQUFBbEIsUUFBQSxHQUFBQSxRQUFBO0FBQUEsSUFBQW1CLFFBQUEsR0FBQUQsT0FBQSxDQUFBbkIsT0FBQSxHQUVjQyxRQUFRIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.NullCacheAdapter = void 0;
|
|
7
|
+
class NullCacheAdapter {
|
|
8
|
+
constructor() {}
|
|
9
|
+
get() {
|
|
10
|
+
return new Promise(resolve => {
|
|
11
|
+
return resolve(null);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
put() {
|
|
15
|
+
return Promise.resolve();
|
|
16
|
+
}
|
|
17
|
+
del() {
|
|
18
|
+
return Promise.resolve();
|
|
19
|
+
}
|
|
20
|
+
clear() {
|
|
21
|
+
return Promise.resolve();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.NullCacheAdapter = NullCacheAdapter;
|
|
25
|
+
var _default = exports.default = NullCacheAdapter;
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOdWxsQ2FjaGVBZGFwdGVyIiwiY29uc3RydWN0b3IiLCJnZXQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInB1dCIsImRlbCIsImNsZWFyIiwiZXhwb3J0cyIsIl9kZWZhdWx0IiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9DYWNoZS9OdWxsQ2FjaGVBZGFwdGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBOdWxsQ2FjaGVBZGFwdGVyIHtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGdldCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICByZXR1cm4gcmVzb2x2ZShudWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1dCgpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICBkZWwoKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE51bGxDYWNoZUFkYXB0ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLE1BQU1BLGdCQUFnQixDQUFDO0VBQzVCQyxXQUFXQSxDQUFBLEVBQUcsQ0FBQztFQUVmQyxHQUFHQSxDQUFBLEVBQUc7SUFDSixPQUFPLElBQUlDLE9BQU8sQ0FBQ0MsT0FBTyxJQUFJO01BQzVCLE9BQU9BLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDdEIsQ0FBQyxDQUFDO0VBQ0o7RUFFQUMsR0FBR0EsQ0FBQSxFQUFHO0lBQ0osT0FBT0YsT0FBTyxDQUFDQyxPQUFPLENBQUMsQ0FBQztFQUMxQjtFQUVBRSxHQUFHQSxDQUFBLEVBQUc7SUFDSixPQUFPSCxPQUFPLENBQUNDLE9BQU8sQ0FBQyxDQUFDO0VBQzFCO0VBRUFHLEtBQUtBLENBQUEsRUFBRztJQUNOLE9BQU9KLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUM7RUFDMUI7QUFDRjtBQUFDSSxPQUFBLENBQUFSLGdCQUFBLEdBQUFBLGdCQUFBO0FBQUEsSUFBQVMsUUFBQSxHQUFBRCxPQUFBLENBQUFFLE9BQUEsR0FFY1YsZ0JBQWdCIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.RedisCacheAdapter = void 0;
|
|
7
|
+
var _redis = require("redis");
|
|
8
|
+
var _logger = _interopRequireDefault(require("../../logger"));
|
|
9
|
+
var _KeyPromiseQueue = require("../../KeyPromiseQueue");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
const DEFAULT_REDIS_TTL = 30 * 1000; // 30 seconds in milliseconds
|
|
12
|
+
const FLUSH_DB_KEY = '__flush_db__';
|
|
13
|
+
function debug(...args) {
|
|
14
|
+
const message = ['RedisCacheAdapter: ' + arguments[0]].concat(args.slice(1, args.length));
|
|
15
|
+
_logger.default.debug.apply(_logger.default, message);
|
|
16
|
+
}
|
|
17
|
+
const isValidTTL = ttl => typeof ttl === 'number' && ttl > 0;
|
|
18
|
+
class RedisCacheAdapter {
|
|
19
|
+
constructor(redisCtx, ttl = DEFAULT_REDIS_TTL) {
|
|
20
|
+
this.ttl = isValidTTL(ttl) ? ttl : DEFAULT_REDIS_TTL;
|
|
21
|
+
this.client = (0, _redis.createClient)(redisCtx);
|
|
22
|
+
this.queue = new _KeyPromiseQueue.KeyPromiseQueue();
|
|
23
|
+
this.client.on('error', err => {
|
|
24
|
+
_logger.default.error('RedisCacheAdapter client error', {
|
|
25
|
+
error: err
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
this.client.on('connect', () => {});
|
|
29
|
+
this.client.on('reconnecting', () => {});
|
|
30
|
+
this.client.on('ready', () => {});
|
|
31
|
+
}
|
|
32
|
+
async connect() {
|
|
33
|
+
if (this.client.isOpen) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
return await this.client.connect();
|
|
37
|
+
}
|
|
38
|
+
async handleShutdown() {
|
|
39
|
+
if (!this.client) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
await this.client.close();
|
|
44
|
+
} catch (err) {
|
|
45
|
+
_logger.default.error('RedisCacheAdapter error on shutdown', {
|
|
46
|
+
error: err
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async get(key) {
|
|
51
|
+
debug('get', {
|
|
52
|
+
key
|
|
53
|
+
});
|
|
54
|
+
try {
|
|
55
|
+
await this.queue.enqueue(key);
|
|
56
|
+
const res = await this.client.get(key);
|
|
57
|
+
if (!res) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
return JSON.parse(res);
|
|
61
|
+
} catch (err) {
|
|
62
|
+
_logger.default.error('RedisCacheAdapter error on get', {
|
|
63
|
+
error: err
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async put(key, value, ttl = this.ttl) {
|
|
68
|
+
value = JSON.stringify(value);
|
|
69
|
+
debug('put', {
|
|
70
|
+
key,
|
|
71
|
+
value,
|
|
72
|
+
ttl
|
|
73
|
+
});
|
|
74
|
+
await this.queue.enqueue(key);
|
|
75
|
+
if (ttl === 0) {
|
|
76
|
+
// ttl of zero is a logical no-op, but redis cannot set expire time of zero
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (ttl === Infinity) {
|
|
80
|
+
return this.client.set(key, value);
|
|
81
|
+
}
|
|
82
|
+
if (!isValidTTL(ttl)) {
|
|
83
|
+
ttl = this.ttl;
|
|
84
|
+
}
|
|
85
|
+
return this.client.set(key, value, {
|
|
86
|
+
PX: ttl
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
async del(key) {
|
|
90
|
+
debug('del', {
|
|
91
|
+
key
|
|
92
|
+
});
|
|
93
|
+
await this.queue.enqueue(key);
|
|
94
|
+
return this.client.del(key);
|
|
95
|
+
}
|
|
96
|
+
async clear() {
|
|
97
|
+
debug('clear');
|
|
98
|
+
await this.queue.enqueue(FLUSH_DB_KEY);
|
|
99
|
+
return this.client.sendCommand(['FLUSHDB']);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Used for testing
|
|
103
|
+
getAllKeys() {
|
|
104
|
+
return this.client.keys('*');
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.RedisCacheAdapter = RedisCacheAdapter;
|
|
108
|
+
var _default = exports.default = RedisCacheAdapter;
|
|
109
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVkaXMiLCJyZXF1aXJlIiwiX2xvZ2dlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfS2V5UHJvbWlzZVF1ZXVlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiREVGQVVMVF9SRURJU19UVEwiLCJGTFVTSF9EQl9LRVkiLCJkZWJ1ZyIsImFyZ3MiLCJtZXNzYWdlIiwiYXJndW1lbnRzIiwiY29uY2F0Iiwic2xpY2UiLCJsZW5ndGgiLCJsb2dnZXIiLCJhcHBseSIsImlzVmFsaWRUVEwiLCJ0dGwiLCJSZWRpc0NhY2hlQWRhcHRlciIsImNvbnN0cnVjdG9yIiwicmVkaXNDdHgiLCJjbGllbnQiLCJjcmVhdGVDbGllbnQiLCJxdWV1ZSIsIktleVByb21pc2VRdWV1ZSIsIm9uIiwiZXJyIiwiZXJyb3IiLCJjb25uZWN0IiwiaXNPcGVuIiwiaGFuZGxlU2h1dGRvd24iLCJjbG9zZSIsImdldCIsImtleSIsImVucXVldWUiLCJyZXMiLCJKU09OIiwicGFyc2UiLCJwdXQiLCJ2YWx1ZSIsInN0cmluZ2lmeSIsIkluZmluaXR5Iiwic2V0IiwiUFgiLCJkZWwiLCJjbGVhciIsInNlbmRDb21tYW5kIiwiZ2V0QWxsS2V5cyIsImtleXMiLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQWRhcHRlcnMvQ2FjaGUvUmVkaXNDYWNoZUFkYXB0ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ2xpZW50IH0gZnJvbSAncmVkaXMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi8uLi9sb2dnZXInO1xuaW1wb3J0IHsgS2V5UHJvbWlzZVF1ZXVlIH0gZnJvbSAnLi4vLi4vS2V5UHJvbWlzZVF1ZXVlJztcblxuY29uc3QgREVGQVVMVF9SRURJU19UVEwgPSAzMCAqIDEwMDA7IC8vIDMwIHNlY29uZHMgaW4gbWlsbGlzZWNvbmRzXG5jb25zdCBGTFVTSF9EQl9LRVkgPSAnX19mbHVzaF9kYl9fJztcblxuZnVuY3Rpb24gZGVidWcoLi4uYXJnczogYW55KSB7XG4gIGNvbnN0IG1lc3NhZ2UgPSBbJ1JlZGlzQ2FjaGVBZGFwdGVyOiAnICsgYXJndW1lbnRzWzBdXS5jb25jYXQoYXJncy5zbGljZSgxLCBhcmdzLmxlbmd0aCkpO1xuICBsb2dnZXIuZGVidWcuYXBwbHkobG9nZ2VyLCBtZXNzYWdlKTtcbn1cblxuY29uc3QgaXNWYWxpZFRUTCA9IHR0bCA9PiB0eXBlb2YgdHRsID09PSAnbnVtYmVyJyAmJiB0dGwgPiAwO1xuXG5leHBvcnQgY2xhc3MgUmVkaXNDYWNoZUFkYXB0ZXIge1xuICBjb25zdHJ1Y3RvcihyZWRpc0N0eCwgdHRsID0gREVGQVVMVF9SRURJU19UVEwpIHtcbiAgICB0aGlzLnR0bCA9IGlzVmFsaWRUVEwodHRsKSA/IHR0bCA6IERFRkFVTFRfUkVESVNfVFRMO1xuICAgIHRoaXMuY2xpZW50ID0gY3JlYXRlQ2xpZW50KHJlZGlzQ3R4KTtcbiAgICB0aGlzLnF1ZXVlID0gbmV3IEtleVByb21pc2VRdWV1ZSgpO1xuICAgIHRoaXMuY2xpZW50Lm9uKCdlcnJvcicsIGVyciA9PiB7IGxvZ2dlci5lcnJvcignUmVkaXNDYWNoZUFkYXB0ZXIgY2xpZW50IGVycm9yJywgeyBlcnJvcjogZXJyIH0pIH0pO1xuICAgIHRoaXMuY2xpZW50Lm9uKCdjb25uZWN0JywgKCkgPT4ge30pO1xuICAgIHRoaXMuY2xpZW50Lm9uKCdyZWNvbm5lY3RpbmcnLCAoKSA9PiB7fSk7XG4gICAgdGhpcy5jbGllbnQub24oJ3JlYWR5JywgKCkgPT4ge30pO1xuICB9XG5cbiAgYXN5bmMgY29ubmVjdCgpIHtcbiAgICBpZiAodGhpcy5jbGllbnQuaXNPcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmNsaWVudC5jb25uZWN0KCk7XG4gIH1cblxuICBhc3luYyBoYW5kbGVTaHV0ZG93bigpIHtcbiAgICBpZiAoIXRoaXMuY2xpZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmNsaWVudC5jbG9zZSgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmVycm9yKCdSZWRpc0NhY2hlQWRhcHRlciBlcnJvciBvbiBzaHV0ZG93bicsIHsgZXJyb3I6IGVyciB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXQoa2V5KSB7XG4gICAgZGVidWcoJ2dldCcsIHsga2V5IH0pO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnF1ZXVlLmVucXVldWUoa2V5KTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuY2xpZW50LmdldChrZXkpO1xuICAgICAgaWYgKCFyZXMpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXMpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmVycm9yKCdSZWRpc0NhY2hlQWRhcHRlciBlcnJvciBvbiBnZXQnLCB7IGVycm9yOiBlcnIgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcHV0KGtleSwgdmFsdWUsIHR0bCA9IHRoaXMudHRsKSB7XG4gICAgdmFsdWUgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgZGVidWcoJ3B1dCcsIHsga2V5LCB2YWx1ZSwgdHRsIH0pO1xuICAgIGF3YWl0IHRoaXMucXVldWUuZW5xdWV1ZShrZXkpO1xuICAgIGlmICh0dGwgPT09IDApIHtcbiAgICAgIC8vIHR0bCBvZiB6ZXJvIGlzIGEgbG9naWNhbCBuby1vcCwgYnV0IHJlZGlzIGNhbm5vdCBzZXQgZXhwaXJlIHRpbWUgb2YgemVyb1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0dGwgPT09IEluZmluaXR5KSB7XG4gICAgICByZXR1cm4gdGhpcy5jbGllbnQuc2V0KGtleSwgdmFsdWUpO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZFRUTCh0dGwpKSB7XG4gICAgICB0dGwgPSB0aGlzLnR0bDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LnNldChrZXksIHZhbHVlLCB7IFBYOiB0dGwgfSk7XG4gIH1cblxuICBhc3luYyBkZWwoa2V5KSB7XG4gICAgZGVidWcoJ2RlbCcsIHsga2V5IH0pO1xuICAgIGF3YWl0IHRoaXMucXVldWUuZW5xdWV1ZShrZXkpO1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5kZWwoa2V5KTtcbiAgfVxuXG4gIGFzeW5jIGNsZWFyKCkge1xuICAgIGRlYnVnKCdjbGVhcicpO1xuICAgIGF3YWl0IHRoaXMucXVldWUuZW5xdWV1ZShGTFVTSF9EQl9LRVkpO1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5zZW5kQ29tbWFuZChbJ0ZMVVNIREInXSk7XG4gIH1cblxuICAvLyBVc2VkIGZvciB0ZXN0aW5nXG4gIGdldEFsbEtleXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmtleXMoJyonKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBSZWRpc0NhY2hlQWRhcHRlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsZ0JBQUEsR0FBQUgsT0FBQTtBQUF3RCxTQUFBRSx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUV4RCxNQUFNRyxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDckMsTUFBTUMsWUFBWSxHQUFHLGNBQWM7QUFFbkMsU0FBU0MsS0FBS0EsQ0FBQyxHQUFHQyxJQUFTLEVBQUU7RUFDM0IsTUFBTUMsT0FBTyxHQUFHLENBQUMscUJBQXFCLEdBQUdDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDQyxNQUFNLENBQUNILElBQUksQ0FBQ0ksS0FBSyxDQUFDLENBQUMsRUFBRUosSUFB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
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
const SchemaCache = {};
|
|
8
|
+
var _default = exports.default = {
|
|
9
|
+
all() {
|
|
10
|
+
return [...(SchemaCache.allClasses || [])];
|
|
11
|
+
},
|
|
12
|
+
get(className) {
|
|
13
|
+
return this.all().find(cached => cached.className === className);
|
|
14
|
+
},
|
|
15
|
+
put(allSchema) {
|
|
16
|
+
SchemaCache.allClasses = allSchema;
|
|
17
|
+
},
|
|
18
|
+
del(className) {
|
|
19
|
+
this.put(this.all().filter(cached => cached.className !== className));
|
|
20
|
+
},
|
|
21
|
+
clear() {
|
|
22
|
+
delete SchemaCache.allClasses;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTY2hlbWFDYWNoZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJhbGwiLCJhbGxDbGFzc2VzIiwiZ2V0IiwiY2xhc3NOYW1lIiwiZmluZCIsImNhY2hlZCIsInB1dCIsImFsbFNjaGVtYSIsImRlbCIsImZpbHRlciIsImNsZWFyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0FkYXB0ZXJzL0NhY2hlL1NjaGVtYUNhY2hlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNjaGVtYUNhY2hlID0ge307XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgYWxsKCkge1xuICAgIHJldHVybiBbLi4uKFNjaGVtYUNhY2hlLmFsbENsYXNzZXMgfHwgW10pXTtcbiAgfSxcblxuICBnZXQoY2xhc3NOYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxsKCkuZmluZChjYWNoZWQgPT4gY2FjaGVkLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcbiAgfSxcblxuICBwdXQoYWxsU2NoZW1hKSB7XG4gICAgU2NoZW1hQ2FjaGUuYWxsQ2xhc3NlcyA9IGFsbFNjaGVtYTtcbiAgfSxcblxuICBkZWwoY2xhc3NOYW1lKSB7XG4gICAgdGhpcy5wdXQodGhpcy5hbGwoKS5maWx0ZXIoY2FjaGVkID0+IGNhY2hlZC5jbGFzc05hbWUgIT09IGNsYXNzTmFtZSkpO1xuICB9LFxuXG4gIGNsZWFyKCkge1xuICAgIGRlbGV0ZSBTY2hlbWFDYWNoZS5hbGxDbGFzc2VzO1xuICB9LFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsTUFBTUEsV0FBVyxHQUFHLENBQUMsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBRVI7RUFDYkMsR0FBR0EsQ0FBQSxFQUFHO0lBQ0osT0FBTyxDQUFDLElBQUlKLFdBQVcsQ0FBQ0ssVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0VBQzVDLENBQUM7RUFFREMsR0FBR0EsQ0FBQ0MsU0FBUyxFQUFFO0lBQ2IsT0FBTyxJQUFJLENBQUNILEdBQUcsQ0FBQyxDQUFDLENBQUNJLElBQUksQ0FBQ0MsTUFBTSxJQUFJQSxNQUFNLENBQUNGLFNBQVMsS0FBS0EsU0FBUyxDQUFDO0VBQ2xFLENBQUM7RUFFREcsR0FBR0EsQ0FBQ0MsU0FBUyxFQUFFO0lBQ2JYLFdBQVcsQ0FBQ0ssVUFBVSxHQUFHTSxTQUFTO0VBQ3BDLENBQUM7RUFFREMsR0FBR0EsQ0FBQ0wsU0FBUyxFQUFFO0lBQ2IsSUFBSSxDQUFDRyxHQUFHLENBQUMsSUFBSSxDQUFDTixHQUFHLENBQUMsQ0FBQyxDQUFDUyxNQUFNLENBQUNKLE1BQU0sSUFBSUEsTUFBTSxDQUFDRixTQUFTLEtBQUtBLFNBQVMsQ0FBQyxDQUFDO0VBQ3ZFLENBQUM7RUFFRE8sS0FBS0EsQ0FBQSxFQUFHO0lBQ04sT0FBT2QsV0FBVyxDQUFDSyxVQUFVO0VBQy9CO0FBQ0YsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|