@gomomento/sdk-core 1.41.1 → 1.42.0
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/dist/src/clients/ILeaderboard.d.ts +12 -0
- package/dist/src/clients/ILeaderboard.js +6 -0
- package/dist/src/clients/ILeaderboardClient.d.ts +4 -0
- package/dist/src/clients/ILeaderboardClient.js +3 -0
- package/dist/src/index.d.ts +6 -2
- package/dist/src/index.js +8 -4
- package/dist/src/internal/clients/index.d.ts +1 -0
- package/dist/src/internal/clients/index.js +2 -1
- package/dist/src/internal/clients/leaderboard/AbstractLeaderboard.d.ts +103 -0
- package/dist/src/internal/clients/leaderboard/AbstractLeaderboard.js +120 -0
- package/dist/src/internal/clients/leaderboard/ILeaderboardDataClient.d.ts +11 -0
- package/dist/src/internal/clients/leaderboard/ILeaderboardDataClient.js +3 -0
- package/dist/src/internal/clients/leaderboard/index.d.ts +3 -0
- package/dist/src/internal/clients/leaderboard/index.js +20 -0
- package/dist/src/internal/utils/validators.d.ts +5 -0
- package/dist/src/internal/utils/validators.js +35 -2
- package/dist/src/messages/responses/grpc-response-types.d.ts +6 -0
- package/dist/src/messages/responses/grpc-response-types.js +10 -2
- package/dist/src/messages/responses/leaderboard/index.d.ts +5 -0
- package/dist/src/messages/responses/leaderboard/index.js +9 -0
- package/dist/src/messages/responses/leaderboard/leaderboard-delete.d.ts +61 -0
- package/dist/src/messages/responses/leaderboard/leaderboard-delete.js +54 -0
- package/dist/src/messages/responses/leaderboard/leaderboard-fetch.d.ts +82 -0
- package/dist/src/messages/responses/leaderboard/leaderboard-fetch.js +80 -0
- package/dist/src/messages/responses/leaderboard/leaderboard-length.d.ts +78 -0
- package/dist/src/messages/responses/leaderboard/leaderboard-length.js +77 -0
- package/dist/src/messages/responses/leaderboard/leaderboard-remove-elements.d.ts +61 -0
- package/dist/src/messages/responses/leaderboard/leaderboard-remove-elements.js +54 -0
- package/dist/src/messages/responses/leaderboard/leaderboard-upsert.d.ts +61 -0
- package/dist/src/messages/responses/leaderboard/leaderboard-upsert.js +54 -0
- package/dist/src/messages/responses/response-base.d.ts +6 -0
- package/dist/src/messages/responses/response-base.js +12 -2
- package/dist/src/utils/cache-call-options.d.ts +65 -0
- package/dist/src/utils/cache-call-options.js +7 -2
- package/package.json +1 -1
@@ -0,0 +1,12 @@
|
|
1
|
+
import { LeaderboardDelete, LeaderboardFetch, LeaderboardLength, LeaderboardRemoveElements, LeaderboardUpsert } from '../messages/responses/leaderboard';
|
2
|
+
import { LeaderboardFetchByRankCallOptions, LeaderboardFetchByScoreCallOptions, LeaderboardGetRankCallOptions, LeaderboardOrder } from '../utils/cache-call-options';
|
3
|
+
export interface ILeaderboard {
|
4
|
+
leaderboardUpsert(elements: Map<number, number>): Promise<LeaderboardUpsert.Response>;
|
5
|
+
leaderboardFetchByScore(options?: LeaderboardFetchByScoreCallOptions): Promise<LeaderboardFetch.Response>;
|
6
|
+
leaderboardFetchByRank(options?: LeaderboardFetchByRankCallOptions): Promise<LeaderboardFetch.Response>;
|
7
|
+
leaderboardGetRank(ids: Array<number>, options?: LeaderboardGetRankCallOptions): Promise<LeaderboardFetch.Response>;
|
8
|
+
leaderboardLength(): Promise<LeaderboardLength.Response>;
|
9
|
+
leaderboardRemoveElements(ids: Array<number>): Promise<LeaderboardRemoveElements.Response>;
|
10
|
+
leaderboardDelete(): Promise<LeaderboardDelete.Response>;
|
11
|
+
}
|
12
|
+
export { LeaderboardFetchByRankCallOptions, LeaderboardFetchByScoreCallOptions, LeaderboardGetRankCallOptions, LeaderboardOrder, };
|
@@ -0,0 +1,6 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.LeaderboardOrder = void 0;
|
4
|
+
const cache_call_options_1 = require("../utils/cache-call-options");
|
5
|
+
Object.defineProperty(exports, "LeaderboardOrder", { enumerable: true, get: function () { return cache_call_options_1.LeaderboardOrder; } });
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUxlYWRlcmJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvSUxlYWRlcmJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLG9FQUtxQztBQTBCbkMsaUdBM0JBLHFDQUFnQixPQTJCQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIExlYWRlcmJvYXJkRGVsZXRlLFxuICBMZWFkZXJib2FyZEZldGNoLFxuICBMZWFkZXJib2FyZExlbmd0aCxcbiAgTGVhZGVyYm9hcmRSZW1vdmVFbGVtZW50cyxcbiAgTGVhZGVyYm9hcmRVcHNlcnQsXG59IGZyb20gJy4uL21lc3NhZ2VzL3Jlc3BvbnNlcy9sZWFkZXJib2FyZCc7XG5pbXBvcnQge1xuICBMZWFkZXJib2FyZEZldGNoQnlSYW5rQ2FsbE9wdGlvbnMsXG4gIExlYWRlcmJvYXJkRmV0Y2hCeVNjb3JlQ2FsbE9wdGlvbnMsXG4gIExlYWRlcmJvYXJkR2V0UmFua0NhbGxPcHRpb25zLFxuICBMZWFkZXJib2FyZE9yZGVyLFxufSBmcm9tICcuLi91dGlscy9jYWNoZS1jYWxsLW9wdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElMZWFkZXJib2FyZCB7XG4gIGxlYWRlcmJvYXJkVXBzZXJ0KFxuICAgIGVsZW1lbnRzOiBNYXA8bnVtYmVyLCBudW1iZXI+XG4gICk6IFByb21pc2U8TGVhZGVyYm9hcmRVcHNlcnQuUmVzcG9uc2U+O1xuICBsZWFkZXJib2FyZEZldGNoQnlTY29yZShcbiAgICBvcHRpb25zPzogTGVhZGVyYm9hcmRGZXRjaEJ5U2NvcmVDYWxsT3B0aW9uc1xuICApOiBQcm9taXNlPExlYWRlcmJvYXJkRmV0Y2guUmVzcG9uc2U+O1xuICBsZWFkZXJib2FyZEZldGNoQnlSYW5rKFxuICAgIG9wdGlvbnM/OiBMZWFkZXJib2FyZEZldGNoQnlSYW5rQ2FsbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxMZWFkZXJib2FyZEZldGNoLlJlc3BvbnNlPjtcbiAgbGVhZGVyYm9hcmRHZXRSYW5rKFxuICAgIGlkczogQXJyYXk8bnVtYmVyPixcbiAgICBvcHRpb25zPzogTGVhZGVyYm9hcmRHZXRSYW5rQ2FsbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxMZWFkZXJib2FyZEZldGNoLlJlc3BvbnNlPjtcbiAgbGVhZGVyYm9hcmRMZW5ndGgoKTogUHJvbWlzZTxMZWFkZXJib2FyZExlbmd0aC5SZXNwb25zZT47XG4gIGxlYWRlcmJvYXJkUmVtb3ZlRWxlbWVudHMoXG4gICAgaWRzOiBBcnJheTxudW1iZXI+XG4gICk6IFByb21pc2U8TGVhZGVyYm9hcmRSZW1vdmVFbGVtZW50cy5SZXNwb25zZT47XG4gIGxlYWRlcmJvYXJkRGVsZXRlKCk6IFByb21pc2U8TGVhZGVyYm9hcmREZWxldGUuUmVzcG9uc2U+O1xufVxuZXhwb3J0IHtcbiAgTGVhZGVyYm9hcmRGZXRjaEJ5UmFua0NhbGxPcHRpb25zLFxuICBMZWFkZXJib2FyZEZldGNoQnlTY29yZUNhbGxPcHRpb25zLFxuICBMZWFkZXJib2FyZEdldFJhbmtDYWxsT3B0aW9ucyxcbiAgTGVhZGVyYm9hcmRPcmRlcixcbn07XG4iXX0=
|
@@ -0,0 +1,3 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUxlYWRlcmJvYXJkQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudHMvSUxlYWRlcmJvYXJkQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lMZWFkZXJib2FyZH0gZnJvbSAnLi9JTGVhZGVyYm9hcmQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElMZWFkZXJib2FyZENsaWVudCB7XG4gIGxlYWRlcmJvYXJkKGNhY2hlTmFtZTogc3RyaW5nLCBsZWFkZXJib2FyZE5hbWU6IHN0cmluZyk6IElMZWFkZXJib2FyZDtcbn1cbiJdfQ==
|
package/dist/src/index.d.ts
CHANGED
@@ -61,8 +61,10 @@ import * as GenerateDisposableToken from './messages/responses/generate-disposab
|
|
61
61
|
export * as vector from './messages/responses/vector';
|
62
62
|
export * from './messages/responses/vector';
|
63
63
|
export { VectorIndexItem } from './messages/vector-index';
|
64
|
+
export * as leaderboard from './messages/responses/leaderboard';
|
65
|
+
export * from './messages/responses/leaderboard';
|
64
66
|
import { CacheInfo } from './messages/cache-info';
|
65
|
-
import { SubscribeCallOptions, CollectionTtl, SortedSetOrder, ExpiresIn, ExpiresAt, ItemType } from './utils';
|
67
|
+
import { SubscribeCallOptions, CollectionTtl, SortedSetOrder, LeaderboardOrder, ExpiresIn, ExpiresAt, ItemType } from './utils';
|
66
68
|
import { CredentialProvider, StringMomentoTokenProvider, EnvMomentoTokenProvider } from './auth';
|
67
69
|
import { MomentoErrorCode, SdkError, AlreadyExistsError, AuthenticationError, CancelledError, FailedPreconditionError, LimitExceededError, InternalServerError, InvalidArgumentError, UnknownServiceError, ServerUnavailableError, TimeoutError, BadRequestError, PermissionError, NotFoundError, UnknownError } from './errors';
|
68
70
|
export { MomentoLogger, MomentoLoggerFactory, } from './config/logging/momento-logger';
|
@@ -71,6 +73,8 @@ export { ICacheClient, SetOptions, SetIfNotExistsOptions, IncrementOptions, } fr
|
|
71
73
|
export { IMomentoCache } from './clients/IMomentoCache';
|
72
74
|
export { IVectorIndexClient, SearchOptions, ALL_VECTOR_METADATA, } from './clients/IVectorIndexClient';
|
73
75
|
export { VectorSimilarityMetric } from './internal/clients';
|
76
|
+
export { ILeaderboardClient } from './clients/ILeaderboardClient';
|
77
|
+
export { ILeaderboard } from './clients/ILeaderboard';
|
74
78
|
export { CacheRole, CachePermission, TopicRole, TopicPermission, Permission, Permissions, AllDataReadWrite, PermissionScope,
|
75
79
|
/**
|
76
80
|
* @deprecated - please use PermissionScope
|
@@ -83,7 +87,7 @@ export * as PermissionScopes from './auth/tokens/permission-scopes';
|
|
83
87
|
*/
|
84
88
|
export * as TokenScopes from './auth/tokens/permission-scopes';
|
85
89
|
export * as DisposableTokenScopes from './auth/tokens/disposable-token-scopes';
|
86
|
-
export { ExpiresIn, ExpiresAt, CollectionTtl, ItemType, SortedSetOrder, CredentialProvider, StringMomentoTokenProvider, EnvMomentoTokenProvider, CacheGet, CacheListConcatenateBack, CacheListConcatenateFront, CacheListFetch, CacheListLength, CacheListPopBack, CacheListPopFront, CacheListPushBack, CacheListPushFront, CacheListRemoveValue, CacheListRetain, CacheSet, CacheSetIfNotExists, CacheDelete, CacheFlush, CreateCache, DeleteCache, ListCaches, CacheIncrement, CreateSigningKey, ListSigningKeys, RevokeSigningKey, CacheSetFetch, CacheDictionaryFetch, CacheDictionarySetField, CacheDictionarySetFields, CacheDictionaryGetField, CacheDictionaryGetFields, CacheDictionaryRemoveField, CacheDictionaryRemoveFields, CacheDictionaryIncrement, CacheDictionaryLength, CacheSetAddElements, CacheSetAddElement, CacheSetRemoveElements, CacheSetRemoveElement, CacheSortedSetPutElement, CacheSortedSetPutElements, CacheSortedSetFetch, CacheSortedSetGetRank, CacheSortedSetGetScore, CacheSortedSetGetScores, CacheSortedSetIncrementScore, CacheSortedSetRemoveElement, CacheSortedSetRemoveElements, CacheSortedSetLength, CacheSortedSetLengthByScore, CacheItemGetType, CacheItemGetTtl, CacheKeyExists, CacheKeysExist, CacheUpdateTtl, CacheIncreaseTtl, CacheDecreaseTtl, CacheInfo, TopicPublish, TopicSubscribe, TopicItem, SubscribeCallOptions, GenerateApiKey,
|
90
|
+
export { ExpiresIn, ExpiresAt, CollectionTtl, ItemType, SortedSetOrder, LeaderboardOrder, CredentialProvider, StringMomentoTokenProvider, EnvMomentoTokenProvider, CacheGet, CacheListConcatenateBack, CacheListConcatenateFront, CacheListFetch, CacheListLength, CacheListPopBack, CacheListPopFront, CacheListPushBack, CacheListPushFront, CacheListRemoveValue, CacheListRetain, CacheSet, CacheSetIfNotExists, CacheDelete, CacheFlush, CreateCache, DeleteCache, ListCaches, CacheIncrement, CreateSigningKey, ListSigningKeys, RevokeSigningKey, CacheSetFetch, CacheDictionaryFetch, CacheDictionarySetField, CacheDictionarySetFields, CacheDictionaryGetField, CacheDictionaryGetFields, CacheDictionaryRemoveField, CacheDictionaryRemoveFields, CacheDictionaryIncrement, CacheDictionaryLength, CacheSetAddElements, CacheSetAddElement, CacheSetRemoveElements, CacheSetRemoveElement, CacheSortedSetPutElement, CacheSortedSetPutElements, CacheSortedSetFetch, CacheSortedSetGetRank, CacheSortedSetGetScore, CacheSortedSetGetScores, CacheSortedSetIncrementScore, CacheSortedSetRemoveElement, CacheSortedSetRemoveElements, CacheSortedSetLength, CacheSortedSetLengthByScore, CacheItemGetType, CacheItemGetTtl, CacheKeyExists, CacheKeysExist, CacheUpdateTtl, CacheIncreaseTtl, CacheDecreaseTtl, CacheInfo, TopicPublish, TopicSubscribe, TopicItem, SubscribeCallOptions, GenerateApiKey,
|
87
91
|
/**
|
88
92
|
* @deprecated - please use GenerateApiKey
|
89
93
|
*/
|
package/dist/src/index.js
CHANGED
@@ -14,9 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
15
|
};
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
exports.
|
18
|
-
exports.
|
19
|
-
exports.UnknownError = exports.NotFoundError = exports.PermissionError = exports.BadRequestError = exports.TimeoutError = void 0;
|
17
|
+
exports.RevokeSigningKey = exports.ListSigningKeys = exports.CreateSigningKey = exports.CacheIncrement = exports.ListCaches = exports.DeleteCache = exports.CreateCache = exports.CacheFlush = exports.CacheDelete = exports.CacheSetIfNotExists = exports.CacheSet = exports.CacheListRetain = exports.CacheListRemoveValue = exports.CacheListPushFront = exports.CacheListPushBack = exports.CacheListPopFront = exports.CacheListPopBack = exports.CacheListLength = exports.CacheListFetch = exports.CacheListConcatenateFront = exports.CacheListConcatenateBack = exports.CacheGet = exports.EnvMomentoTokenProvider = exports.StringMomentoTokenProvider = exports.CredentialProvider = exports.LeaderboardOrder = exports.SortedSetOrder = exports.ItemType = exports.CollectionTtl = exports.ExpiresAt = exports.ExpiresIn = exports.DisposableTokenScopes = exports.TokenScopes = exports.PermissionScopes = exports.isCacheItemKeyPrefix = exports.isCacheItemKey = exports.AllCacheItems = exports.AllTopics = exports.AllCaches = exports.isTopicName = exports.isCacheName = exports.AllDataReadWrite = exports.TopicRole = exports.CacheRole = exports.VectorSimilarityMetric = exports.ALL_VECTOR_METADATA = exports.NoopMomentoLoggerFactory = exports.NoopMomentoLogger = exports.leaderboard = exports.vector = void 0;
|
18
|
+
exports.InvalidArgumentError = exports.InternalServerError = exports.LimitExceededError = exports.FailedPreconditionError = exports.CancelledError = exports.AuthenticationError = exports.AlreadyExistsError = exports.SdkError = exports.MomentoErrorCode = exports.GenerateDisposableToken = exports.RefreshAuthToken = exports.RefreshApiKey = exports.GenerateAuthToken = exports.GenerateApiKey = exports.TopicItem = exports.TopicSubscribe = exports.TopicPublish = exports.CacheInfo = exports.CacheDecreaseTtl = exports.CacheIncreaseTtl = exports.CacheUpdateTtl = exports.CacheKeysExist = exports.CacheKeyExists = exports.CacheItemGetTtl = exports.CacheItemGetType = exports.CacheSortedSetLengthByScore = exports.CacheSortedSetLength = exports.CacheSortedSetRemoveElements = exports.CacheSortedSetRemoveElement = exports.CacheSortedSetIncrementScore = exports.CacheSortedSetGetScores = exports.CacheSortedSetGetScore = exports.CacheSortedSetGetRank = exports.CacheSortedSetFetch = exports.CacheSortedSetPutElements = exports.CacheSortedSetPutElement = exports.CacheSetRemoveElement = exports.CacheSetRemoveElements = exports.CacheSetAddElement = exports.CacheSetAddElements = exports.CacheDictionaryLength = exports.CacheDictionaryIncrement = exports.CacheDictionaryRemoveFields = exports.CacheDictionaryRemoveField = exports.CacheDictionaryGetFields = exports.CacheDictionaryGetField = exports.CacheDictionarySetFields = exports.CacheDictionarySetField = exports.CacheDictionaryFetch = exports.CacheSetFetch = void 0;
|
19
|
+
exports.UnknownError = exports.NotFoundError = exports.PermissionError = exports.BadRequestError = exports.TimeoutError = exports.ServerUnavailableError = exports.UnknownServiceError = void 0;
|
20
20
|
// Cache Client Response Types
|
21
21
|
const CacheGet = require("./messages/responses/cache-get");
|
22
22
|
exports.CacheGet = CacheGet;
|
@@ -145,11 +145,15 @@ exports.GenerateDisposableToken = GenerateDisposableToken;
|
|
145
145
|
// VectorClient Response Types
|
146
146
|
exports.vector = require("./messages/responses/vector");
|
147
147
|
__exportStar(require("./messages/responses/vector"), exports);
|
148
|
+
// Leaderboard Response Types
|
149
|
+
exports.leaderboard = require("./messages/responses/leaderboard");
|
150
|
+
__exportStar(require("./messages/responses/leaderboard"), exports);
|
148
151
|
const cache_info_1 = require("./messages/cache-info");
|
149
152
|
Object.defineProperty(exports, "CacheInfo", { enumerable: true, get: function () { return cache_info_1.CacheInfo; } });
|
150
153
|
const utils_1 = require("./utils");
|
151
154
|
Object.defineProperty(exports, "CollectionTtl", { enumerable: true, get: function () { return utils_1.CollectionTtl; } });
|
152
155
|
Object.defineProperty(exports, "SortedSetOrder", { enumerable: true, get: function () { return utils_1.SortedSetOrder; } });
|
156
|
+
Object.defineProperty(exports, "LeaderboardOrder", { enumerable: true, get: function () { return utils_1.LeaderboardOrder; } });
|
153
157
|
Object.defineProperty(exports, "ExpiresIn", { enumerable: true, get: function () { return utils_1.ExpiresIn; } });
|
154
158
|
Object.defineProperty(exports, "ExpiresAt", { enumerable: true, get: function () { return utils_1.ExpiresAt; } });
|
155
159
|
Object.defineProperty(exports, "ItemType", { enumerable: true, get: function () { return utils_1.ItemType; } });
|
@@ -199,4 +203,4 @@ exports.PermissionScopes = require("./auth/tokens/permission-scopes");
|
|
199
203
|
*/
|
200
204
|
exports.TokenScopes = require("./auth/tokens/permission-scopes");
|
201
205
|
exports.DisposableTokenScopes = require("./auth/tokens/disposable-token-scopes");
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhCQUE4QjtBQUM5QiwyREFBMkQ7QUF3THpELDRCQUFRO0FBdkxWLDZGQUE2RjtBQXdMM0YsNERBQXdCO0FBdkwxQiwrRkFBK0Y7QUF3TDdGLDhEQUF5QjtBQXZMM0Isd0VBQXdFO0FBd0x0RSx3Q0FBYztBQXZMaEIsMEVBQTBFO0FBd0x4RSwwQ0FBZTtBQXZMakIsNkVBQTZFO0FBd0wzRSw0Q0FBZ0I7QUF2TGxCLCtFQUErRTtBQXdMN0UsOENBQWlCO0FBdkxuQiwrRUFBK0U7QUF3TDdFLDhDQUFpQjtBQXZMbkIsaUZBQWlGO0FBd0wvRSxnREFBa0I7QUF2THBCLHFGQUFxRjtBQXdMbkYsb0RBQW9CO0FBdkx0QiwwRUFBMEU7QUF3THhFLDBDQUFlO0FBdkxqQiwyREFBMkQ7QUF3THpELDRCQUFRO0FBdkxWLGlFQUFpRTtBQXlML0Qsa0NBQVc7QUF4TGIsK0RBQStEO0FBeUw3RCxnQ0FBVTtBQXhMWixpRUFBaUU7QUF5TC9ELGtDQUFXO0FBeExiLGlFQUFpRTtBQXlML0Qsa0NBQVc7QUF4TGIsK0RBQStEO0FBeUw3RCxnQ0FBVTtBQXhMWiw0RUFBNEU7QUEwTDFFLDRDQUFnQjtBQXpMbEIsMEVBQTBFO0FBMEx4RSwwQ0FBZTtBQXpMakIsNEVBQTRFO0FBMEwxRSw0Q0FBZ0I7QUF6TGxCLHNFQUFzRTtBQTBMcEUsc0NBQWE7QUF6TGYsb0ZBQW9GO0FBMExsRixvREFBb0I7QUF6THRCLDJGQUEyRjtBQTBMekYsMERBQXVCO0FBekx6Qiw2RkFBNkY7QUEwTDNGLDREQUF3QjtBQXpMMUIsMkZBQTJGO0FBMEx6RiwwREFBdUI7QUF6THpCLDZGQUE2RjtBQTBMM0YsNERBQXdCO0FBekwxQixpR0FBaUc7QUEwTC9GLGdFQUEwQjtBQXpMNUIsbUdBQW1HO0FBMExqRyxrRUFBMkI7QUF6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QTtBQUU5QixtRUFzQndDO0FBckJ0Qyw2R0FBQSxTQUFTLE9BQUE7QUFFVCw2R0FBQSxTQUFTLE9BQUE7QUFJVCxvSEFBQSxnQkFBZ0IsT0FBQTtBQU9oQiwrR0FBQSxXQUFXLE9BQUE7QUFFWCwrR0FBQSxXQUFXLE9BQUE7QUFHWCw2R0FBQSxTQUFTLE9BQUE7QUFDVCw2R0FBQSxTQUFTLE9BQUE7QUFDVCxpSEFBQSxhQUFhLE9BQUE7QUFHZiwrRUFPOEM7QUFGNUMsd0hBQUEsY0FBYyxPQUFBO0FBQ2QsOEhBQUEsb0JBQW9CLE9BQUE7QUFHdEIsc0VBQW9FO0FBQ3BFOztHQUVHO0FBQ0gsaUVBQStEO0FBQy9ELGlGQUErRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIENhY2hlIENsaWVudCBSZXNwb25zZSBUeXBlc1xuaW1wb3J0ICogYXMgQ2FjaGVHZXQgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtZ2V0JztcbmltcG9ydCAqIGFzIENhY2hlTGlzdENvbmNhdGVuYXRlQmFjayBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1saXN0LWNvbmNhdGVuYXRlLWJhY2snO1xuaW1wb3J0ICogYXMgQ2FjaGVMaXN0Q29uY2F0ZW5hdGVGcm9udCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1saXN0LWNvbmNhdGVuYXRlLWZyb250JztcbmltcG9ydCAqIGFzIENhY2hlTGlzdEZldGNoIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWxpc3QtZmV0Y2gnO1xuaW1wb3J0ICogYXMgQ2FjaGVMaXN0TGVuZ3RoIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWxpc3QtbGVuZ3RoJztcbmltcG9ydCAqIGFzIENhY2hlTGlzdFBvcEJhY2sgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtbGlzdC1wb3AtYmFjayc7XG5pbXBvcnQgKiBhcyBDYWNoZUxpc3RQb3BGcm9udCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1saXN0LXBvcC1mcm9udCc7XG5pbXBvcnQgKiBhcyBDYWNoZUxpc3RQdXNoQmFjayBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1saXN0LXB1c2gtYmFjayc7XG5pbXBvcnQgKiBhcyBDYWNoZUxpc3RQdXNoRnJvbnQgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtbGlzdC1wdXNoLWZyb250JztcbmltcG9ydCAqIGFzIENhY2hlTGlzdFJlbW92ZVZhbHVlIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWxpc3QtcmVtb3ZlLXZhbHVlJztcbmltcG9ydCAqIGFzIENhY2hlTGlzdFJldGFpbiBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1saXN0LXJldGFpbic7XG5pbXBvcnQgKiBhcyBDYWNoZVNldCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1zZXQnO1xuaW1wb3J0ICogYXMgQ2FjaGVEZWxldGUgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtZGVsZXRlJztcbmltcG9ydCAqIGFzIENhY2hlRmx1c2ggZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtZmx1c2gnO1xuaW1wb3J0ICogYXMgQ3JlYXRlQ2FjaGUgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY3JlYXRlLWNhY2hlJztcbmltcG9ydCAqIGFzIERlbGV0ZUNhY2hlIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2RlbGV0ZS1jYWNoZSc7XG5pbXBvcnQgKiBhcyBMaXN0Q2FjaGVzIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2xpc3QtY2FjaGVzJztcbmltcG9ydCAqIGFzIENyZWF0ZVNpZ25pbmdLZXkgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY3JlYXRlLXNpZ25pbmcta2V5JztcbmltcG9ydCAqIGFzIExpc3RTaWduaW5nS2V5cyBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9saXN0LXNpZ25pbmcta2V5cyc7XG5pbXBvcnQgKiBhcyBSZXZva2VTaWduaW5nS2V5IGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL3Jldm9rZS1zaWduaW5nLWtleSc7XG5pbXBvcnQgKiBhcyBDYWNoZVNldEZldGNoIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNldC1mZXRjaCc7XG5pbXBvcnQgKiBhcyBDYWNoZURpY3Rpb25hcnlGZXRjaCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1kaWN0aW9uYXJ5LWZldGNoJztcbmltcG9ydCAqIGFzIENhY2hlRGljdGlvbmFyeVNldEZpZWxkIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWRpY3Rpb25hcnktc2V0LWZpZWxkJztcbmltcG9ydCAqIGFzIENhY2hlRGljdGlvbmFyeVNldEZpZWxkcyBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1kaWN0aW9uYXJ5LXNldC1maWVsZHMnO1xuaW1wb3J0ICogYXMgQ2FjaGVEaWN0aW9uYXJ5R2V0RmllbGQgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtZGljdGlvbmFyeS1nZXQtZmllbGQnO1xuaW1wb3J0ICogYXMgQ2FjaGVEaWN0aW9uYXJ5R2V0RmllbGRzIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWRpY3Rpb25hcnktZ2V0LWZpZWxkcyc7XG5pbXBvcnQgKiBhcyBDYWNoZURpY3Rpb25hcnlSZW1vdmVGaWVsZCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1kaWN0aW9uYXJ5LXJlbW92ZS1maWVsZCc7XG5pbXBvcnQgKiBhcyBDYWNoZURpY3Rpb25hcnlSZW1vdmVGaWVsZHMgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtZGljdGlvbmFyeS1yZW1vdmUtZmllbGRzJztcbmltcG9ydCAqIGFzIENhY2hlRGljdGlvbmFyeUluY3JlbWVudCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1kaWN0aW9uYXJ5LWluY3JlbWVudCc7XG5pbXBvcnQgKiBhcyBDYWNoZURpY3Rpb25hcnlMZW5ndGggZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtZGljdGlvbmFyeS1sZW5ndGgnO1xuaW1wb3J0ICogYXMgQ2FjaGVTZXRBZGRFbGVtZW50cyBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1zZXQtYWRkLWVsZW1lbnRzJztcbmltcG9ydCAqIGFzIENhY2hlU2V0QWRkRWxlbWVudCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1zZXQtYWRkLWVsZW1lbnQnO1xuaW1wb3J0ICogYXMgQ2FjaGVTZXRSZW1vdmVFbGVtZW50cyBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1zZXQtcmVtb3ZlLWVsZW1lbnRzJztcbmltcG9ydCAqIGFzIENhY2hlU2V0UmVtb3ZlRWxlbWVudCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1zZXQtcmVtb3ZlLWVsZW1lbnQnO1xuaW1wb3J0ICogYXMgQ2FjaGVJbmNyZW1lbnQgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtaW5jcmVtZW50JztcbmltcG9ydCAqIGFzIENhY2hlU2V0SWZOb3RFeGlzdHMgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtc2V0LWlmLW5vdC1leGlzdHMnO1xuaW1wb3J0ICogYXMgQ2FjaGVTb3J0ZWRTZXRQdXRFbGVtZW50IGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNvcnRlZC1zZXQtcHV0LWVsZW1lbnQnO1xuaW1wb3J0ICogYXMgQ2FjaGVTb3J0ZWRTZXRQdXRFbGVtZW50cyBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1zb3J0ZWQtc2V0LXB1dC1lbGVtZW50cyc7XG5pbXBvcnQgKiBhcyBDYWNoZVNvcnRlZFNldEZldGNoIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNvcnRlZC1zZXQtZmV0Y2gnO1xuaW1wb3J0ICogYXMgQ2FjaGVTb3J0ZWRTZXRHZXRSYW5rIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNvcnRlZC1zZXQtZ2V0LXJhbmsnO1xuaW1wb3J0ICogYXMgQ2FjaGVTb3J0ZWRTZXRHZXRTY29yZSBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1zb3J0ZWQtc2V0LWdldC1zY29yZSc7XG5pbXBvcnQgKiBhcyBDYWNoZVNvcnRlZFNldEdldFNjb3JlcyBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1zb3J0ZWQtc2V0LWdldC1zY29yZXMnO1xuaW1wb3J0ICogYXMgQ2FjaGVTb3J0ZWRTZXRJbmNyZW1lbnRTY29yZSBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1zb3J0ZWQtc2V0LWluY3JlbWVudC1zY29yZSc7XG5pbXBvcnQgKiBhcyBDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnQgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtc29ydGVkLXNldC1yZW1vdmUtZWxlbWVudCc7XG5pbXBvcnQgKiBhcyBDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnRzIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNvcnRlZC1zZXQtcmVtb3ZlLWVsZW1lbnRzJztcbmltcG9ydCAqIGFzIENhY2hlU29ydGVkU2V0TGVuZ3RoIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNvcnRlZC1zZXQtbGVuZ3RoJztcbmltcG9ydCAqIGFzIENhY2hlU29ydGVkU2V0TGVuZ3RoQnlTY29yZSBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1zb3J0ZWQtc2V0LWxlbmd0aC1ieS1zY29yZSc7XG5pbXBvcnQgKiBhcyBDYWNoZUl0ZW1HZXRUeXBlIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWl0ZW0tZ2V0LXR5cGUnO1xuaW1wb3J0ICogYXMgQ2FjaGVJdGVtR2V0VHRsIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWl0ZW0tZ2V0LXR0bCc7XG5pbXBvcnQgKiBhcyBDYWNoZUtleUV4aXN0cyBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1rZXktZXhpc3RzJztcbmltcG9ydCAqIGFzIENhY2hlS2V5c0V4aXN0IGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWtleXMtZXhpc3QnO1xuaW1wb3J0ICogYXMgQ2FjaGVVcGRhdGVUdGwgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtdHRsLXVwZGF0ZSc7XG5pbXBvcnQgKiBhcyBDYWNoZUluY3JlYXNlVHRsIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXR0bC1pbmNyZWFzZSc7XG5pbXBvcnQgKiBhcyBDYWNoZURlY3JlYXNlVHRsIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXR0bC1kZWNyZWFzZSc7XG5cbi8vIFRvcGljQ2xpZW50IFJlc3BvbnNlIFR5cGVzXG5pbXBvcnQgKiBhcyBUb3BpY1B1Ymxpc2ggZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvdG9waWMtcHVibGlzaCc7XG5pbXBvcnQgKiBhcyBUb3BpY1N1YnNjcmliZSBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy90b3BpYy1zdWJzY3JpYmUnO1xuaW1wb3J0IHtUb3BpY0l0ZW19IGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL3RvcGljLWl0ZW0nO1xuXG4vLyBBdXRoQ2xpZW50IFJlc3BvbnNlIFR5cGVzXG5pbXBvcnQgKiBhcyBHZW5lcmF0ZUFwaUtleSBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9nZW5lcmF0ZS1hcGkta2V5JztcbmltcG9ydCAqIGFzIFJlZnJlc2hBcGlLZXkgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvcmVmcmVzaC1hcGkta2V5JztcblxuaW1wb3J0ICogYXMgR2VuZXJhdGVEaXNwb3NhYmxlVG9rZW4gZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvZ2VuZXJhdGUtZGlzcG9zYWJsZS10b2tlbic7XG5cbi8vIFZlY3RvckNsaWVudCBSZXNwb25zZSBUeXBlc1xuZXhwb3J0ICogYXMgdmVjdG9yIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL3ZlY3Rvcic7XG5leHBvcnQgKiBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy92ZWN0b3InO1xuZXhwb3J0IHtWZWN0b3JJbmRleEl0ZW19IGZyb20gJy4vbWVzc2FnZXMvdmVjdG9yLWluZGV4JztcblxuaW1wb3J0IHtDYWNoZUluZm99IGZyb20gJy4vbWVzc2FnZXMvY2FjaGUtaW5mbyc7XG5pbXBvcnQge1xuICBTdWJzY3JpYmVDYWxsT3B0aW9ucyxcbiAgQ29sbGVjdGlvblR0bCxcbiAgU29ydGVkU2V0T3JkZXIsXG4gIEV4cGlyZXNJbixcbiAgRXhwaXJlc0F0LFxuICBJdGVtVHlwZSxcbn0gZnJvbSAnLi91dGlscyc7XG5cbmltcG9ydCB7XG4gIENyZWRlbnRpYWxQcm92aWRlcixcbiAgU3RyaW5nTW9tZW50b1Rva2VuUHJvdmlkZXIsXG4gIEVudk1vbWVudG9Ub2tlblByb3ZpZGVyLFxufSBmcm9tICcuL2F1dGgnO1xuXG5pbXBvcnQge1xuICBNb21lbnRvRXJyb3JDb2RlLFxuICBTZGtFcnJvcixcbiAgQWxyZWFkeUV4aXN0c0Vycm9yLFxuICBBdXRoZW50aWNhdGlvbkVycm9yLFxuICBDYW5jZWxsZWRFcnJvcixcbiAgRmFpbGVkUHJlY29uZGl0aW9uRXJyb3IsXG4gIExpbWl0RXhjZWVkZWRFcnJvcixcbiAgSW50ZXJuYWxTZXJ2ZXJFcnJvcixcbiAgSW52YWxpZEFyZ3VtZW50RXJyb3IsXG4gIFVua25vd25TZXJ2aWNlRXJyb3IsXG4gIFNlcnZlclVuYXZhaWxhYmxlRXJyb3IsXG4gIFRpbWVvdXRFcnJvcixcbiAgQmFkUmVxdWVzdEVycm9yLFxuICBQZXJtaXNzaW9uRXJyb3IsXG4gIE5vdEZvdW5kRXJyb3IsXG4gIFVua25vd25FcnJvcixcbn0gZnJvbSAnLi9lcnJvcnMnO1xuXG5leHBvcnQge1xuICBNb21lbnRvTG9nZ2VyLFxuICBNb21lbnRvTG9nZ2VyRmFjdG9yeSxcbn0gZnJvbSAnLi9jb25maWcvbG9nZ2luZy9tb21lbnRvLWxvZ2dlcic7XG5cbmV4cG9ydCB7XG4gIE5vb3BNb21lbnRvTG9nZ2VyLFxuICBOb29wTW9tZW50b0xvZ2dlckZhY3RvcnksXG59IGZyb20gJy4vY29uZmlnL2xvZ2dpbmcvbm9vcC1tb21lbnRvLWxvZ2dlcic7XG5cbmV4cG9ydCB7XG4gIElDYWNoZUNsaWVudCxcbiAgU2V0T3B0aW9ucyxcbiAgU2V0SWZOb3RFeGlzdHNPcHRpb25zLFxuICBJbmNyZW1lbnRPcHRpb25zLFxufSBmcm9tICcuL2NsaWVudHMvSUNhY2hlQ2xpZW50JztcblxuZXhwb3J0IHtJTW9tZW50b0NhY2hlfSBmcm9tICcuL2NsaWVudHMvSU1vbWVudG9DYWNoZSc7XG5cbmV4cG9ydCB7XG4gIElWZWN0b3JJbmRleENsaWVudCxcbiAgU2VhcmNoT3B0aW9ucyxcbiAgQUxMX1ZFQ1RPUl9NRVRBREFUQSxcbn0gZnJvbSAnLi9jbGllbnRzL0lWZWN0b3JJbmRleENsaWVudCc7XG5cbmV4cG9ydCB7VmVjdG9yU2ltaWxhcml0eU1ldHJpY30gZnJvbSAnLi9pbnRlcm5hbC9jbGllbnRzJztcblxuZXhwb3J0IHtcbiAgQ2FjaGVSb2xlLFxuICBDYWNoZVBlcm1pc3Npb24sXG4gIFRvcGljUm9sZSxcbiAgVG9waWNQZXJtaXNzaW9uLFxuICBQZXJtaXNzaW9uLFxuICBQZXJtaXNzaW9ucyxcbiAgQWxsRGF0YVJlYWRXcml0ZSxcbiAgUGVybWlzc2lvblNjb3BlLFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgLSBwbGVhc2UgdXNlIFBlcm1pc3Npb25TY29wZVxuICAgKi9cbiAgVG9rZW5TY29wZSxcbiAgQ2FjaGVOYW1lLFxuICBpc0NhY2hlTmFtZSxcbiAgVG9waWNOYW1lLFxuICBpc1RvcGljTmFtZSxcbiAgQ2FjaGVTZWxlY3RvcixcbiAgVG9waWNTZWxlY3RvcixcbiAgQWxsQ2FjaGVzLFxuICBBbGxUb3BpY3MsXG4gIEFsbENhY2hlSXRlbXMsXG59IGZyb20gJy4vYXV0aC90b2tlbnMvcGVybWlzc2lvbi1zY29wZSc7XG5cbmV4cG9ydCB7XG4gIERpc3Bvc2FibGVUb2tlblNjb3BlLFxuICBDYWNoZUl0ZW1TZWxlY3RvcixcbiAgQ2FjaGVJdGVtS2V5LFxuICBDYWNoZUl0ZW1LZXlQcmVmaXgsXG4gIGlzQ2FjaGVJdGVtS2V5LFxuICBpc0NhY2hlSXRlbUtleVByZWZpeCxcbn0gZnJvbSAnLi9hdXRoL3Rva2Vucy9kaXNwb3NhYmxlLXRva2VuLXNjb3BlJztcblxuZXhwb3J0ICogYXMgUGVybWlzc2lvblNjb3BlcyBmcm9tICcuL2F1dGgvdG9rZW5zL3Blcm1pc3Npb24tc2NvcGVzJztcbi8qKlxuICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSBQZXJtaXNzaW9uU2NvcGVzIGluc3RlYWRcbiAqL1xuZXhwb3J0ICogYXMgVG9rZW5TY29wZXMgZnJvbSAnLi9hdXRoL3Rva2Vucy9wZXJtaXNzaW9uLXNjb3Blcyc7XG5leHBvcnQgKiBhcyBEaXNwb3NhYmxlVG9rZW5TY29wZXMgZnJvbSAnLi9hdXRoL3Rva2Vucy9kaXNwb3NhYmxlLXRva2VuLXNjb3Blcyc7XG5cbmV4cG9ydCB7XG4gIEV4cGlyZXNJbixcbiAgRXhwaXJlc0F0LFxuICBDb2xsZWN0aW9uVHRsLFxuICBJdGVtVHlwZSxcbiAgU29ydGVkU2V0T3JkZXIsXG4gIENyZWRlbnRpYWxQcm92aWRlcixcbiAgU3RyaW5nTW9tZW50b1Rva2VuUHJvdmlkZXIsXG4gIEVudk1vbWVudG9Ub2tlblByb3ZpZGVyLFxuXG4gIC8vIENhY2hlQ2xpZW50IFJlc3BvbnNlIFR5cGVzXG4gIENhY2hlR2V0LFxuICBDYWNoZUxpc3RDb25jYXRlbmF0ZUJhY2ssXG4gIENhY2hlTGlzdENvbmNhdGVuYXRlRnJvbnQsXG4gIENhY2hlTGlzdEZldGNoLFxuICBDYWNoZUxpc3RMZW5ndGgsXG4gIENhY2hlTGlzdFBvcEJhY2ssXG4gIENhY2hlTGlzdFBvcEZyb250LFxuICBDYWNoZUxpc3RQdXNoQmFjayxcbiAgQ2FjaGVMaXN0UHVzaEZyb250LFxuICBDYWNoZUxpc3RSZW1vdmVWYWx1ZSxcbiAgQ2FjaGVMaXN0UmV0YWluLFxuICBDYWNoZVNldCxcbiAgQ2FjaGVTZXRJZk5vdEV4aXN0cyxcbiAgQ2FjaGVEZWxldGUsXG4gIENhY2hlRmx1c2gsXG4gIENyZWF0ZUNhY2hlLFxuICBEZWxldGVDYWNoZSxcbiAgTGlzdENhY2hlcyxcbiAgQ2FjaGVJbmNyZW1lbnQsXG4gIENyZWF0ZVNpZ25pbmdLZXksXG4gIExpc3RTaWduaW5nS2V5cyxcbiAgUmV2b2tlU2lnbmluZ0tleSxcbiAgQ2FjaGVTZXRGZXRjaCxcbiAgQ2FjaGVEaWN0aW9uYXJ5RmV0Y2gsXG4gIENhY2hlRGljdGlvbmFyeVNldEZpZWxkLFxuICBDYWNoZURpY3Rpb25hcnlTZXRGaWVsZHMsXG4gIENhY2hlRGljdGlvbmFyeUdldEZpZWxkLFxuICBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZHMsXG4gIENhY2hlRGljdGlvbmFyeVJlbW92ZUZpZWxkLFxuICBDYWNoZURpY3Rpb25hcnlSZW1vdmVGaWVsZHMsXG4gIENhY2hlRGljdGlvbmFyeUluY3JlbWVudCxcbiAgQ2FjaGVEaWN0aW9uYXJ5TGVuZ3RoLFxuICBDYWNoZVNldEFkZEVsZW1lbnRzLFxuICBDYWNoZVNldEFkZEVsZW1lbnQsXG4gIENhY2hlU2V0UmVtb3ZlRWxlbWVudHMsXG4gIENhY2hlU2V0UmVtb3ZlRWxlbWVudCxcbiAgQ2FjaGVTb3J0ZWRTZXRQdXRFbGVtZW50LFxuICBDYWNoZVNvcnRlZFNldFB1dEVsZW1lbnRzLFxuICBDYWNoZVNvcnRlZFNldEZldGNoLFxuICBDYWNoZVNvcnRlZFNldEdldFJhbmssXG4gIENhY2hlU29ydGVkU2V0R2V0U2NvcmUsXG4gIENhY2hlU29ydGVkU2V0R2V0U2NvcmVzLFxuICBDYWNoZVNvcnRlZFNldEluY3JlbWVudFNjb3JlLFxuICBDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnQsXG4gIENhY2hlU29ydGVkU2V0UmVtb3ZlRWxlbWVudHMsXG4gIENhY2hlU29ydGVkU2V0TGVuZ3RoLFxuICBDYWNoZVNvcnRlZFNldExlbmd0aEJ5U2NvcmUsXG4gIENhY2hlSXRlbUdldFR5cGUsXG4gIENhY2hlSXRlbUdldFR0bCxcbiAgQ2FjaGVLZXlFeGlzdHMsXG4gIENhY2hlS2V5c0V4aXN0LFxuICBDYWNoZVVwZGF0ZVR0bCxcbiAgQ2FjaGVJbmNyZWFzZVR0bCxcbiAgQ2FjaGVEZWNyZWFzZVR0bCxcbiAgQ2FjaGVJbmZvLFxuICAvLyBUb3BpY0NsaWVudCBSZXNwb25zZSBUeXBlc1xuICBUb3BpY1B1Ymxpc2gsXG4gIFRvcGljU3Vic2NyaWJlLFxuICBUb3BpY0l0ZW0sXG4gIFN1YnNjcmliZUNhbGxPcHRpb25zLFxuICAvLyBBdXRoQ2xpZW50IFJlc3BvbnNlIFR5cGVzXG4gIEdlbmVyYXRlQXBpS2V5LFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgLSBwbGVhc2UgdXNlIEdlbmVyYXRlQXBpS2V5XG4gICAqL1xuICBHZW5lcmF0ZUFwaUtleSBhcyBHZW5lcmF0ZUF1dGhUb2tlbixcbiAgUmVmcmVzaEFwaUtleSxcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIC0gcGxlYXNlIHVzZSBSZWZyZXNoQXBpS2V5XG4gICAqL1xuICBSZWZyZXNoQXBpS2V5IGFzIFJlZnJlc2hBdXRoVG9rZW4sXG4gIEdlbmVyYXRlRGlzcG9zYWJsZVRva2VuLFxuICAvLyBFcnJvcnNcbiAgTW9tZW50b0Vycm9yQ29kZSxcbiAgU2RrRXJyb3IsXG4gIEFscmVhZHlFeGlzdHNFcnJvcixcbiAgQXV0aGVudGljYXRpb25FcnJvcixcbiAgQ2FuY2VsbGVkRXJyb3IsXG4gIEZhaWxlZFByZWNvbmRpdGlvbkVycm9yLFxuICBMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIEludGVybmFsU2VydmVyRXJyb3IsXG4gIEludmFsaWRBcmd1bWVudEVycm9yLFxuICBVbmtub3duU2VydmljZUVycm9yLFxuICBTZXJ2ZXJVbmF2YWlsYWJsZUVycm9yLFxuICBUaW1lb3V0RXJyb3IsXG4gIEJhZFJlcXVlc3RFcnJvcixcbiAgUGVybWlzc2lvbkVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxuICBVbmtub3duRXJyb3IsXG59O1xuIl19
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhCQUE4QjtBQUM5QiwyREFBMkQ7QUFpTXpELDRCQUFRO0FBaE1WLDZGQUE2RjtBQWlNM0YsNERBQXdCO0FBaE0xQiwrRkFBK0Y7QUFpTTdGLDhEQUF5QjtBQWhNM0Isd0VBQXdFO0FBaU10RSx3Q0FBYztBQWhNaEIsMEVBQTBFO0FBaU14RSwwQ0FBZTtBQWhNakIsNkVBQTZFO0FBaU0zRSw0Q0FBZ0I7QUFoTWxCLCtFQUErRTtBQWlNN0UsOENBQWlCO0FBaE1uQiwrRUFBK0U7QUFpTTdFLDhDQUFpQjtBQWhNbkIsaUZBQWlGO0FBaU0vRSxnREFBa0I7QUFoTXBCLHFGQUFxRjtBQWlNbkYsb0RBQW9CO0FBaE10QiwwRUFBMEU7QUFpTXhFLDBDQUFlO0FBaE1qQiwyREFBMkQ7QUFpTXpELDRCQUFRO0FBaE1WLGlFQUFpRTtBQWtNL0Qsa0NBQVc7QUFqTWIsK0RBQStEO0FBa003RCxnQ0FBVTtBQWpNWixpRUFBaUU7QUFrTS9ELGtDQUFXO0FBak1iLGlFQUFpRTtBQWtNL0Qsa0NBQVc7QUFqTWIsK0RBQStEO0FBa003RCxnQ0FBVTtBQWpNWiw0RUFBNEU7QUFtTTFFLDRDQUFnQjtBQWxNbEIsMEVBQTBFO0FBbU14RSwwQ0FBZTtBQWxNakIsNEVBQTRFO0FBbU0xRSw0Q0FBZ0I7QUFsTWxCLHNFQUFzRTtBQW1NcEUsc0NBQWE7QUFsTWYsb0ZBQW9GO0FBbU1sRixvREFBb0I7QUFsTXRCLDJGQUEyRjtBQW1NekYsMERBQXVCO0FBbE16Qiw2RkFBNkY7QUFtTTNGLDREQUF3QjtBQWxNMUIsMkZBQTJGO0FBbU16RiwwREFBdUI7QUFsTXpCLDZGQUE2RjtBQW1NM0YsNERBQXdCO0FBbE0xQixpR0FBaUc7QUFtTS9GLGdFQUEwQjtBQWxNNUIsbUdBQW1HO0FBbU1qRyxrRUFBMkI7QUFs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RUFJc0M7QUFEcEMseUhBQUEsbUJBQW1CLE9BQUE7QUFHckIsOENBQTBEO0FBQWxELGlIQUFBLHNCQUFzQixPQUFBO0FBSzlCLG1FQXNCd0M7QUFyQnRDLDZHQUFBLFNBQVMsT0FBQTtBQUVULDZHQUFBLFNBQVMsT0FBQTtBQUlULG9IQUFBLGdCQUFnQixPQUFBO0FBT2hCLCtHQUFBLFdBQVcsT0FBQTtBQUVYLCtHQUFBLFdBQVcsT0FBQTtBQUdYLDZHQUFBLFNBQVMsT0FBQTtBQUNULDZHQUFBLFNBQVMsT0FBQTtBQUNULGlIQUFBLGFBQWEsT0FBQTtBQUdmLCtFQU84QztBQUY1Qyx3SEFBQSxjQUFjLE9BQUE7QUFDZCw4SEFBQSxvQkFBb0IsT0FBQTtBQUd0QixzRUFBb0U7QUFDcEU7O0dBRUc7QUFDSCxpRUFBK0Q7QUFDL0QsaUZBQStFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ2FjaGUgQ2xpZW50IFJlc3BvbnNlIFR5cGVzXG5pbXBvcnQgKiBhcyBDYWNoZUdldCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1nZXQnO1xuaW1wb3J0ICogYXMgQ2FjaGVMaXN0Q29uY2F0ZW5hdGVCYWNrIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWxpc3QtY29uY2F0ZW5hdGUtYmFjayc7XG5pbXBvcnQgKiBhcyBDYWNoZUxpc3RDb25jYXRlbmF0ZUZyb250IGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWxpc3QtY29uY2F0ZW5hdGUtZnJvbnQnO1xuaW1wb3J0ICogYXMgQ2FjaGVMaXN0RmV0Y2ggZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtbGlzdC1mZXRjaCc7XG5pbXBvcnQgKiBhcyBDYWNoZUxpc3RMZW5ndGggZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtbGlzdC1sZW5ndGgnO1xuaW1wb3J0ICogYXMgQ2FjaGVMaXN0UG9wQmFjayBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1saXN0LXBvcC1iYWNrJztcbmltcG9ydCAqIGFzIENhY2hlTGlzdFBvcEZyb250IGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWxpc3QtcG9wLWZyb250JztcbmltcG9ydCAqIGFzIENhY2hlTGlzdFB1c2hCYWNrIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWxpc3QtcHVzaC1iYWNrJztcbmltcG9ydCAqIGFzIENhY2hlTGlzdFB1c2hGcm9udCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1saXN0LXB1c2gtZnJvbnQnO1xuaW1wb3J0ICogYXMgQ2FjaGVMaXN0UmVtb3ZlVmFsdWUgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtbGlzdC1yZW1vdmUtdmFsdWUnO1xuaW1wb3J0ICogYXMgQ2FjaGVMaXN0UmV0YWluIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWxpc3QtcmV0YWluJztcbmltcG9ydCAqIGFzIENhY2hlU2V0IGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNldCc7XG5pbXBvcnQgKiBhcyBDYWNoZURlbGV0ZSBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1kZWxldGUnO1xuaW1wb3J0ICogYXMgQ2FjaGVGbHVzaCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1mbHVzaCc7XG5pbXBvcnQgKiBhcyBDcmVhdGVDYWNoZSBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jcmVhdGUtY2FjaGUnO1xuaW1wb3J0ICogYXMgRGVsZXRlQ2FjaGUgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvZGVsZXRlLWNhY2hlJztcbmltcG9ydCAqIGFzIExpc3RDYWNoZXMgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvbGlzdC1jYWNoZXMnO1xuaW1wb3J0ICogYXMgQ3JlYXRlU2lnbmluZ0tleSBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jcmVhdGUtc2lnbmluZy1rZXknO1xuaW1wb3J0ICogYXMgTGlzdFNpZ25pbmdLZXlzIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2xpc3Qtc2lnbmluZy1rZXlzJztcbmltcG9ydCAqIGFzIFJldm9rZVNpZ25pbmdLZXkgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvcmV2b2tlLXNpZ25pbmcta2V5JztcbmltcG9ydCAqIGFzIENhY2hlU2V0RmV0Y2ggZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtc2V0LWZldGNoJztcbmltcG9ydCAqIGFzIENhY2hlRGljdGlvbmFyeUZldGNoIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWRpY3Rpb25hcnktZmV0Y2gnO1xuaW1wb3J0ICogYXMgQ2FjaGVEaWN0aW9uYXJ5U2V0RmllbGQgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtZGljdGlvbmFyeS1zZXQtZmllbGQnO1xuaW1wb3J0ICogYXMgQ2FjaGVEaWN0aW9uYXJ5U2V0RmllbGRzIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWRpY3Rpb25hcnktc2V0LWZpZWxkcyc7XG5pbXBvcnQgKiBhcyBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1kaWN0aW9uYXJ5LWdldC1maWVsZCc7XG5pbXBvcnQgKiBhcyBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZHMgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtZGljdGlvbmFyeS1nZXQtZmllbGRzJztcbmltcG9ydCAqIGFzIENhY2hlRGljdGlvbmFyeVJlbW92ZUZpZWxkIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWRpY3Rpb25hcnktcmVtb3ZlLWZpZWxkJztcbmltcG9ydCAqIGFzIENhY2hlRGljdGlvbmFyeVJlbW92ZUZpZWxkcyBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1kaWN0aW9uYXJ5LXJlbW92ZS1maWVsZHMnO1xuaW1wb3J0ICogYXMgQ2FjaGVEaWN0aW9uYXJ5SW5jcmVtZW50IGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWRpY3Rpb25hcnktaW5jcmVtZW50JztcbmltcG9ydCAqIGFzIENhY2hlRGljdGlvbmFyeUxlbmd0aCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1kaWN0aW9uYXJ5LWxlbmd0aCc7XG5pbXBvcnQgKiBhcyBDYWNoZVNldEFkZEVsZW1lbnRzIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNldC1hZGQtZWxlbWVudHMnO1xuaW1wb3J0ICogYXMgQ2FjaGVTZXRBZGRFbGVtZW50IGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNldC1hZGQtZWxlbWVudCc7XG5pbXBvcnQgKiBhcyBDYWNoZVNldFJlbW92ZUVsZW1lbnRzIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNldC1yZW1vdmUtZWxlbWVudHMnO1xuaW1wb3J0ICogYXMgQ2FjaGVTZXRSZW1vdmVFbGVtZW50IGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNldC1yZW1vdmUtZWxlbWVudCc7XG5pbXBvcnQgKiBhcyBDYWNoZUluY3JlbWVudCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1pbmNyZW1lbnQnO1xuaW1wb3J0ICogYXMgQ2FjaGVTZXRJZk5vdEV4aXN0cyBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1zZXQtaWYtbm90LWV4aXN0cyc7XG5pbXBvcnQgKiBhcyBDYWNoZVNvcnRlZFNldFB1dEVsZW1lbnQgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtc29ydGVkLXNldC1wdXQtZWxlbWVudCc7XG5pbXBvcnQgKiBhcyBDYWNoZVNvcnRlZFNldFB1dEVsZW1lbnRzIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNvcnRlZC1zZXQtcHV0LWVsZW1lbnRzJztcbmltcG9ydCAqIGFzIENhY2hlU29ydGVkU2V0RmV0Y2ggZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtc29ydGVkLXNldC1mZXRjaCc7XG5pbXBvcnQgKiBhcyBDYWNoZVNvcnRlZFNldEdldFJhbmsgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtc29ydGVkLXNldC1nZXQtcmFuayc7XG5pbXBvcnQgKiBhcyBDYWNoZVNvcnRlZFNldEdldFNjb3JlIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNvcnRlZC1zZXQtZ2V0LXNjb3JlJztcbmltcG9ydCAqIGFzIENhY2hlU29ydGVkU2V0R2V0U2NvcmVzIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNvcnRlZC1zZXQtZ2V0LXNjb3Jlcyc7XG5pbXBvcnQgKiBhcyBDYWNoZVNvcnRlZFNldEluY3JlbWVudFNjb3JlIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNvcnRlZC1zZXQtaW5jcmVtZW50LXNjb3JlJztcbmltcG9ydCAqIGFzIENhY2hlU29ydGVkU2V0UmVtb3ZlRWxlbWVudCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS1zb3J0ZWQtc2V0LXJlbW92ZS1lbGVtZW50JztcbmltcG9ydCAqIGFzIENhY2hlU29ydGVkU2V0UmVtb3ZlRWxlbWVudHMgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtc29ydGVkLXNldC1yZW1vdmUtZWxlbWVudHMnO1xuaW1wb3J0ICogYXMgQ2FjaGVTb3J0ZWRTZXRMZW5ndGggZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtc29ydGVkLXNldC1sZW5ndGgnO1xuaW1wb3J0ICogYXMgQ2FjaGVTb3J0ZWRTZXRMZW5ndGhCeVNjb3JlIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLXNvcnRlZC1zZXQtbGVuZ3RoLWJ5LXNjb3JlJztcbmltcG9ydCAqIGFzIENhY2hlSXRlbUdldFR5cGUgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtaXRlbS1nZXQtdHlwZSc7XG5pbXBvcnQgKiBhcyBDYWNoZUl0ZW1HZXRUdGwgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtaXRlbS1nZXQtdHRsJztcbmltcG9ydCAqIGFzIENhY2hlS2V5RXhpc3RzIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2NhY2hlLWtleS1leGlzdHMnO1xuaW1wb3J0ICogYXMgQ2FjaGVLZXlzRXhpc3QgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUta2V5cy1leGlzdCc7XG5pbXBvcnQgKiBhcyBDYWNoZVVwZGF0ZVR0bCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9jYWNoZS10dGwtdXBkYXRlJztcbmltcG9ydCAqIGFzIENhY2hlSW5jcmVhc2VUdGwgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtdHRsLWluY3JlYXNlJztcbmltcG9ydCAqIGFzIENhY2hlRGVjcmVhc2VUdGwgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvY2FjaGUtdHRsLWRlY3JlYXNlJztcblxuLy8gVG9waWNDbGllbnQgUmVzcG9uc2UgVHlwZXNcbmltcG9ydCAqIGFzIFRvcGljUHVibGlzaCBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy90b3BpYy1wdWJsaXNoJztcbmltcG9ydCAqIGFzIFRvcGljU3Vic2NyaWJlIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL3RvcGljLXN1YnNjcmliZSc7XG5pbXBvcnQge1RvcGljSXRlbX0gZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvdG9waWMtaXRlbSc7XG5cbi8vIEF1dGhDbGllbnQgUmVzcG9uc2UgVHlwZXNcbmltcG9ydCAqIGFzIEdlbmVyYXRlQXBpS2V5IGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL2dlbmVyYXRlLWFwaS1rZXknO1xuaW1wb3J0ICogYXMgUmVmcmVzaEFwaUtleSBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9yZWZyZXNoLWFwaS1rZXknO1xuXG5pbXBvcnQgKiBhcyBHZW5lcmF0ZURpc3Bvc2FibGVUb2tlbiBmcm9tICcuL21lc3NhZ2VzL3Jlc3BvbnNlcy9nZW5lcmF0ZS1kaXNwb3NhYmxlLXRva2VuJztcblxuLy8gVmVjdG9yQ2xpZW50IFJlc3BvbnNlIFR5cGVzXG5leHBvcnQgKiBhcyB2ZWN0b3IgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvdmVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZXMvcmVzcG9uc2VzL3ZlY3Rvcic7XG5leHBvcnQge1ZlY3RvckluZGV4SXRlbX0gZnJvbSAnLi9tZXNzYWdlcy92ZWN0b3ItaW5kZXgnO1xuXG4vLyBMZWFkZXJib2FyZCBSZXNwb25zZSBUeXBlc1xuZXhwb3J0ICogYXMgbGVhZGVyYm9hcmQgZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvbGVhZGVyYm9hcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlcy9yZXNwb25zZXMvbGVhZGVyYm9hcmQnO1xuXG5pbXBvcnQge0NhY2hlSW5mb30gZnJvbSAnLi9tZXNzYWdlcy9jYWNoZS1pbmZvJztcbmltcG9ydCB7XG4gIFN1YnNjcmliZUNhbGxPcHRpb25zLFxuICBDb2xsZWN0aW9uVHRsLFxuICBTb3J0ZWRTZXRPcmRlcixcbiAgTGVhZGVyYm9hcmRPcmRlcixcbiAgRXhwaXJlc0luLFxuICBFeHBpcmVzQXQsXG4gIEl0ZW1UeXBlLFxufSBmcm9tICcuL3V0aWxzJztcblxuaW1wb3J0IHtcbiAgQ3JlZGVudGlhbFByb3ZpZGVyLFxuICBTdHJpbmdNb21lbnRvVG9rZW5Qcm92aWRlcixcbiAgRW52TW9tZW50b1Rva2VuUHJvdmlkZXIsXG59IGZyb20gJy4vYXV0aCc7XG5cbmltcG9ydCB7XG4gIE1vbWVudG9FcnJvckNvZGUsXG4gIFNka0Vycm9yLFxuICBBbHJlYWR5RXhpc3RzRXJyb3IsXG4gIEF1dGhlbnRpY2F0aW9uRXJyb3IsXG4gIENhbmNlbGxlZEVycm9yLFxuICBGYWlsZWRQcmVjb25kaXRpb25FcnJvcixcbiAgTGltaXRFeGNlZWRlZEVycm9yLFxuICBJbnRlcm5hbFNlcnZlckVycm9yLFxuICBJbnZhbGlkQXJndW1lbnRFcnJvcixcbiAgVW5rbm93blNlcnZpY2VFcnJvcixcbiAgU2VydmVyVW5hdmFpbGFibGVFcnJvcixcbiAgVGltZW91dEVycm9yLFxuICBCYWRSZXF1ZXN0RXJyb3IsXG4gIFBlcm1pc3Npb25FcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbiAgVW5rbm93bkVycm9yLFxufSBmcm9tICcuL2Vycm9ycyc7XG5cbmV4cG9ydCB7XG4gIE1vbWVudG9Mb2dnZXIsXG4gIE1vbWVudG9Mb2dnZXJGYWN0b3J5LFxufSBmcm9tICcuL2NvbmZpZy9sb2dnaW5nL21vbWVudG8tbG9nZ2VyJztcblxuZXhwb3J0IHtcbiAgTm9vcE1vbWVudG9Mb2dnZXIsXG4gIE5vb3BNb21lbnRvTG9nZ2VyRmFjdG9yeSxcbn0gZnJvbSAnLi9jb25maWcvbG9nZ2luZy9ub29wLW1vbWVudG8tbG9nZ2VyJztcblxuZXhwb3J0IHtcbiAgSUNhY2hlQ2xpZW50LFxuICBTZXRPcHRpb25zLFxuICBTZXRJZk5vdEV4aXN0c09wdGlvbnMsXG4gIEluY3JlbWVudE9wdGlvbnMsXG59IGZyb20gJy4vY2xpZW50cy9JQ2FjaGVDbGllbnQnO1xuXG5leHBvcnQge0lNb21lbnRvQ2FjaGV9IGZyb20gJy4vY2xpZW50cy9JTW9tZW50b0NhY2hlJztcblxuZXhwb3J0IHtcbiAgSVZlY3RvckluZGV4Q2xpZW50LFxuICBTZWFyY2hPcHRpb25zLFxuICBBTExfVkVDVE9SX01FVEFEQVRBLFxufSBmcm9tICcuL2NsaWVudHMvSVZlY3RvckluZGV4Q2xpZW50JztcblxuZXhwb3J0IHtWZWN0b3JTaW1pbGFyaXR5TWV0cmljfSBmcm9tICcuL2ludGVybmFsL2NsaWVudHMnO1xuXG5leHBvcnQge0lMZWFkZXJib2FyZENsaWVudH0gZnJvbSAnLi9jbGllbnRzL0lMZWFkZXJib2FyZENsaWVudCc7XG5leHBvcnQge0lMZWFkZXJib2FyZH0gZnJvbSAnLi9jbGllbnRzL0lMZWFkZXJib2FyZCc7XG5cbmV4cG9ydCB7XG4gIENhY2hlUm9sZSxcbiAgQ2FjaGVQZXJtaXNzaW9uLFxuICBUb3BpY1JvbGUsXG4gIFRvcGljUGVybWlzc2lvbixcbiAgUGVybWlzc2lvbixcbiAgUGVybWlzc2lvbnMsXG4gIEFsbERhdGFSZWFkV3JpdGUsXG4gIFBlcm1pc3Npb25TY29wZSxcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIC0gcGxlYXNlIHVzZSBQZXJtaXNzaW9uU2NvcGVcbiAgICovXG4gIFRva2VuU2NvcGUsXG4gIENhY2hlTmFtZSxcbiAgaXNDYWNoZU5hbWUsXG4gIFRvcGljTmFtZSxcbiAgaXNUb3BpY05hbWUsXG4gIENhY2hlU2VsZWN0b3IsXG4gIFRvcGljU2VsZWN0b3IsXG4gIEFsbENhY2hlcyxcbiAgQWxsVG9waWNzLFxuICBBbGxDYWNoZUl0ZW1zLFxufSBmcm9tICcuL2F1dGgvdG9rZW5zL3Blcm1pc3Npb24tc2NvcGUnO1xuXG5leHBvcnQge1xuICBEaXNwb3NhYmxlVG9rZW5TY29wZSxcbiAgQ2FjaGVJdGVtU2VsZWN0b3IsXG4gIENhY2hlSXRlbUtleSxcbiAgQ2FjaGVJdGVtS2V5UHJlZml4LFxuICBpc0NhY2hlSXRlbUtleSxcbiAgaXNDYWNoZUl0ZW1LZXlQcmVmaXgsXG59IGZyb20gJy4vYXV0aC90b2tlbnMvZGlzcG9zYWJsZS10b2tlbi1zY29wZSc7XG5cbmV4cG9ydCAqIGFzIFBlcm1pc3Npb25TY29wZXMgZnJvbSAnLi9hdXRoL3Rva2Vucy9wZXJtaXNzaW9uLXNjb3Blcyc7XG4vKipcbiAqIEBkZXByZWNhdGVkIHBsZWFzZSB1c2UgUGVybWlzc2lvblNjb3BlcyBpbnN0ZWFkXG4gKi9cbmV4cG9ydCAqIGFzIFRva2VuU2NvcGVzIGZyb20gJy4vYXV0aC90b2tlbnMvcGVybWlzc2lvbi1zY29wZXMnO1xuZXhwb3J0ICogYXMgRGlzcG9zYWJsZVRva2VuU2NvcGVzIGZyb20gJy4vYXV0aC90b2tlbnMvZGlzcG9zYWJsZS10b2tlbi1zY29wZXMnO1xuXG5leHBvcnQge1xuICBFeHBpcmVzSW4sXG4gIEV4cGlyZXNBdCxcbiAgQ29sbGVjdGlvblR0bCxcbiAgSXRlbVR5cGUsXG4gIFNvcnRlZFNldE9yZGVyLFxuICBMZWFkZXJib2FyZE9yZGVyLFxuICBDcmVkZW50aWFsUHJvdmlkZXIsXG4gIFN0cmluZ01vbWVudG9Ub2tlblByb3ZpZGVyLFxuICBFbnZNb21lbnRvVG9rZW5Qcm92aWRlcixcblxuICAvLyBDYWNoZUNsaWVudCBSZXNwb25zZSBUeXBlc1xuICBDYWNoZUdldCxcbiAgQ2FjaGVMaXN0Q29uY2F0ZW5hdGVCYWNrLFxuICBDYWNoZUxpc3RDb25jYXRlbmF0ZUZyb250LFxuICBDYWNoZUxpc3RGZXRjaCxcbiAgQ2FjaGVMaXN0TGVuZ3RoLFxuICBDYWNoZUxpc3RQb3BCYWNrLFxuICBDYWNoZUxpc3RQb3BGcm9udCxcbiAgQ2FjaGVMaXN0UHVzaEJhY2ssXG4gIENhY2hlTGlzdFB1c2hGcm9udCxcbiAgQ2FjaGVMaXN0UmVtb3ZlVmFsdWUsXG4gIENhY2hlTGlzdFJldGFpbixcbiAgQ2FjaGVTZXQsXG4gIENhY2hlU2V0SWZOb3RFeGlzdHMsXG4gIENhY2hlRGVsZXRlLFxuICBDYWNoZUZsdXNoLFxuICBDcmVhdGVDYWNoZSxcbiAgRGVsZXRlQ2FjaGUsXG4gIExpc3RDYWNoZXMsXG4gIENhY2hlSW5jcmVtZW50LFxuICBDcmVhdGVTaWduaW5nS2V5LFxuICBMaXN0U2lnbmluZ0tleXMsXG4gIFJldm9rZVNpZ25pbmdLZXksXG4gIENhY2hlU2V0RmV0Y2gsXG4gIENhY2hlRGljdGlvbmFyeUZldGNoLFxuICBDYWNoZURpY3Rpb25hcnlTZXRGaWVsZCxcbiAgQ2FjaGVEaWN0aW9uYXJ5U2V0RmllbGRzLFxuICBDYWNoZURpY3Rpb25hcnlHZXRGaWVsZCxcbiAgQ2FjaGVEaWN0aW9uYXJ5R2V0RmllbGRzLFxuICBDYWNoZURpY3Rpb25hcnlSZW1vdmVGaWVsZCxcbiAgQ2FjaGVEaWN0aW9uYXJ5UmVtb3ZlRmllbGRzLFxuICBDYWNoZURpY3Rpb25hcnlJbmNyZW1lbnQsXG4gIENhY2hlRGljdGlvbmFyeUxlbmd0aCxcbiAgQ2FjaGVTZXRBZGRFbGVtZW50cyxcbiAgQ2FjaGVTZXRBZGRFbGVtZW50LFxuICBDYWNoZVNldFJlbW92ZUVsZW1lbnRzLFxuICBDYWNoZVNldFJlbW92ZUVsZW1lbnQsXG4gIENhY2hlU29ydGVkU2V0UHV0RWxlbWVudCxcbiAgQ2FjaGVTb3J0ZWRTZXRQdXRFbGVtZW50cyxcbiAgQ2FjaGVTb3J0ZWRTZXRGZXRjaCxcbiAgQ2FjaGVTb3J0ZWRTZXRHZXRSYW5rLFxuICBDYWNoZVNvcnRlZFNldEdldFNjb3JlLFxuICBDYWNoZVNvcnRlZFNldEdldFNjb3JlcyxcbiAgQ2FjaGVTb3J0ZWRTZXRJbmNyZW1lbnRTY29yZSxcbiAgQ2FjaGVTb3J0ZWRTZXRSZW1vdmVFbGVtZW50LFxuICBDYWNoZVNvcnRlZFNldFJlbW92ZUVsZW1lbnRzLFxuICBDYWNoZVNvcnRlZFNldExlbmd0aCxcbiAgQ2FjaGVTb3J0ZWRTZXRMZW5ndGhCeVNjb3JlLFxuICBDYWNoZUl0ZW1HZXRUeXBlLFxuICBDYWNoZUl0ZW1HZXRUdGwsXG4gIENhY2hlS2V5RXhpc3RzLFxuICBDYWNoZUtleXNFeGlzdCxcbiAgQ2FjaGVVcGRhdGVUdGwsXG4gIENhY2hlSW5jcmVhc2VUdGwsXG4gIENhY2hlRGVjcmVhc2VUdGwsXG4gIENhY2hlSW5mbyxcbiAgLy8gVG9waWNDbGllbnQgUmVzcG9uc2UgVHlwZXNcbiAgVG9waWNQdWJsaXNoLFxuICBUb3BpY1N1YnNjcmliZSxcbiAgVG9waWNJdGVtLFxuICBTdWJzY3JpYmVDYWxsT3B0aW9ucyxcbiAgLy8gQXV0aENsaWVudCBSZXNwb25zZSBUeXBlc1xuICBHZW5lcmF0ZUFwaUtleSxcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIC0gcGxlYXNlIHVzZSBHZW5lcmF0ZUFwaUtleVxuICAgKi9cbiAgR2VuZXJhdGVBcGlLZXkgYXMgR2VuZXJhdGVBdXRoVG9rZW4sXG4gIFJlZnJlc2hBcGlLZXksXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCAtIHBsZWFzZSB1c2UgUmVmcmVzaEFwaUtleVxuICAgKi9cbiAgUmVmcmVzaEFwaUtleSBhcyBSZWZyZXNoQXV0aFRva2VuLFxuICBHZW5lcmF0ZURpc3Bvc2FibGVUb2tlbixcbiAgLy8gRXJyb3JzXG4gIE1vbWVudG9FcnJvckNvZGUsXG4gIFNka0Vycm9yLFxuICBBbHJlYWR5RXhpc3RzRXJyb3IsXG4gIEF1dGhlbnRpY2F0aW9uRXJyb3IsXG4gIENhbmNlbGxlZEVycm9yLFxuICBGYWlsZWRQcmVjb25kaXRpb25FcnJvcixcbiAgTGltaXRFeGNlZWRlZEVycm9yLFxuICBJbnRlcm5hbFNlcnZlckVycm9yLFxuICBJbnZhbGlkQXJndW1lbnRFcnJvcixcbiAgVW5rbm93blNlcnZpY2VFcnJvcixcbiAgU2VydmVyVW5hdmFpbGFibGVFcnJvcixcbiAgVGltZW91dEVycm9yLFxuICBCYWRSZXF1ZXN0RXJyb3IsXG4gIFBlcm1pc3Npb25FcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbiAgVW5rbm93bkVycm9yLFxufTtcbiJdfQ==
|
@@ -18,4 +18,5 @@ __exportStar(require("./cache"), exports);
|
|
18
18
|
__exportStar(require("./auth"), exports);
|
19
19
|
__exportStar(require("./pubsub"), exports);
|
20
20
|
__exportStar(require("./vector"), exports);
|
21
|
-
|
21
|
+
__exportStar(require("./leaderboard"), exports);
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW50ZXJuYWwvY2xpZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQXdCO0FBQ3hCLHlDQUF1QjtBQUN2QiwyQ0FBeUI7QUFDekIsMkNBQXlCO0FBQ3pCLGdEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FjaGUnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoJztcbmV4cG9ydCAqIGZyb20gJy4vcHVic3ViJztcbmV4cG9ydCAqIGZyb20gJy4vdmVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGVhZGVyYm9hcmQnO1xuIl19
|
@@ -0,0 +1,103 @@
|
|
1
|
+
import { ILeaderboard, LeaderboardFetchByRankCallOptions, LeaderboardFetchByScoreCallOptions, LeaderboardGetRankCallOptions } from '../../../clients/ILeaderboard';
|
2
|
+
import { LeaderboardDelete, LeaderboardFetch, LeaderboardLength, LeaderboardRemoveElements, LeaderboardUpsert } from '../../../messages/responses/leaderboard';
|
3
|
+
import { ILeaderboardDataClient } from './ILeaderboardDataClient';
|
4
|
+
export declare abstract class AbstractLeaderboard implements ILeaderboard {
|
5
|
+
protected readonly cacheName: string;
|
6
|
+
protected readonly leaderboardName: string;
|
7
|
+
protected readonly dataClient: ILeaderboardDataClient;
|
8
|
+
protected constructor(cacheName: string, leaderboardName: string, dataClient: ILeaderboardDataClient);
|
9
|
+
/**
|
10
|
+
* Updates elements in a leaderboard or inserts elements if they do not already exist.
|
11
|
+
* The leaderboard is also created if it does not already exist.
|
12
|
+
* Note: can upsert a maximum of 8192 elements at a time.
|
13
|
+
*
|
14
|
+
* @param {Map<number, number>} elements - The ID->score pairs to add to the leaderboard.
|
15
|
+
* @returns {Promise<LeaderboardUpsert.Response>} -
|
16
|
+
* {@link LeaderboardUpsert.Success} on success.
|
17
|
+
* {@link LeaderboardUpsert.Error} on failure.
|
18
|
+
*/
|
19
|
+
leaderboardUpsert(elements: Map<number, number>): Promise<LeaderboardUpsert.Response>;
|
20
|
+
/**
|
21
|
+
* Fetch the elements in the given leaderboard by score.
|
22
|
+
* Note: can fetch a maximum of 8192 elements at a time.
|
23
|
+
*
|
24
|
+
* @param {LeaderboardFetchByScoreCallOptions} options
|
25
|
+
* @param {number} [options.minScore] - The minimum score (inclusive) of the
|
26
|
+
* elements to fetch. Defaults to negative infinity.
|
27
|
+
* @param {number} [options.maxScore] - The maximum score (exclusive) of the
|
28
|
+
* elements to fetch. Defaults to positive infinity.
|
29
|
+
* @param {LeaderboardOrder} [options.order] - The order to fetch the elements in.
|
30
|
+
* Defaults to ascending, meaning 0 is the lowest-scoring rank.
|
31
|
+
* @param {number} [options.offset] - The number of elements to skip before
|
32
|
+
* returning the first element. Defaults to 0. Note: this is not the score of
|
33
|
+
* the first element to return, but the number of elements of the result set
|
34
|
+
* to skip before returning the first element.
|
35
|
+
* @param {number} [options.count] - The maximum number of elements to return.
|
36
|
+
* Defaults to 8192, which is the maximum that can be fetched at a time.
|
37
|
+
* @returns {Promise<LeaderboardFetch.Response>} -
|
38
|
+
* {@link LeaderboardFetch.Found} containing the requested elements.
|
39
|
+
* {@link LeaderboardFetch.NotFound} when requested elements were not found.
|
40
|
+
* {@link LeaderboardFetch.Error} on failure.
|
41
|
+
*/
|
42
|
+
leaderboardFetchByScore(options?: LeaderboardFetchByScoreCallOptions): Promise<LeaderboardFetch.Response>;
|
43
|
+
/**
|
44
|
+
* Fetch the elements in the given leaderboard by index (rank).
|
45
|
+
* Note: can fetch a maximum of 8192 elements at a time and rank
|
46
|
+
* is 0-based (index begins at 0).
|
47
|
+
*
|
48
|
+
* @param {LeaderboardFetchByRankOptions} options
|
49
|
+
* @param {number} [options.startRank] - The rank of the first element to
|
50
|
+
* fetch. Defaults to 0. This rank is inclusive, ie the element at this rank
|
51
|
+
* will be fetched.
|
52
|
+
* @param {number} [options.endRank] - The rank of the last element to fetch.
|
53
|
+
* This rank is exclusive, ie the element at this rank will not be fetched.
|
54
|
+
* Defaults to startRank + 8192 in order to fetch the maximum 8192 elements per request.
|
55
|
+
* @param {LeaderboardOrder} [options.order] - The order to fetch the elements in.
|
56
|
+
* Defaults to ascending, meaning 0 is the lowest-scoring rank.
|
57
|
+
* @returns {Promise<LeaderboardFetch.Response>} -
|
58
|
+
* {@link LeaderboardFetch.Found} containing the requested elements.
|
59
|
+
* {@link LeaderboardFetch.NotFound} when requested elements were not found.
|
60
|
+
* {@link LeaderboardFetch.Error} on failure.
|
61
|
+
*/
|
62
|
+
leaderboardFetchByRank(options?: LeaderboardFetchByRankCallOptions): Promise<LeaderboardFetch.Response>;
|
63
|
+
/**
|
64
|
+
* Look up the rank of an element in the leaderboard given the element id.
|
65
|
+
* Note: rank is 0-based (index begins at 0).
|
66
|
+
*
|
67
|
+
* @param {number} ids - The ids of the elements whose rank we are retrieving.
|
68
|
+
* @param {LeaderboardGetRankCallOptions} options
|
69
|
+
* @param {LeaderboardOrder} [options.order] - The order to fetch the elements in.
|
70
|
+
* Defaults to ascending, meaning 0 is the lowest-scoring rank.
|
71
|
+
* @returns {Promise<LeaderboardFetch.Response>}
|
72
|
+
* {@link LeaderboardFetch.Found} containing the requested elements.
|
73
|
+
* {@link LeaderboardFetch.NotFound} when requested elements were not found.
|
74
|
+
* {@link LeaderboardFetch.Error} on failure.
|
75
|
+
*/
|
76
|
+
leaderboardGetRank(ids: Array<number>, options?: LeaderboardGetRankCallOptions): Promise<LeaderboardFetch.Response>;
|
77
|
+
/**
|
78
|
+
* Fetch length (number of items) of leaderboard
|
79
|
+
*
|
80
|
+
* @returns {Promise<LeaderboardLength.Response>}
|
81
|
+
* {@link LeaderboardLength.Success} containing the length if the leaderboard exists.
|
82
|
+
* {@link LeaderboardLength.Error} on failure.
|
83
|
+
*/
|
84
|
+
leaderboardLength(): Promise<LeaderboardLength.Response>;
|
85
|
+
/**
|
86
|
+
* Remove multiple elements from the given leaderboard
|
87
|
+
* Note: can remove a maximum of 8192 elements at a time.
|
88
|
+
*
|
89
|
+
* @param {Array<number>} ids - The IDs of the elements to remove from the leaderboard.
|
90
|
+
* @returns {Promise<LeaderboardRemoveElements.Response>}
|
91
|
+
* {@link LeaderboardRemoveElements.Success} if the elements were successfully removed.
|
92
|
+
* {@link LeaderboardRemoveElements.Error} on failure.
|
93
|
+
*/
|
94
|
+
leaderboardRemoveElements(ids: Array<number>): Promise<LeaderboardRemoveElements.Response>;
|
95
|
+
/**
|
96
|
+
* Delete the given leaderboard
|
97
|
+
*
|
98
|
+
* @returns {Promise<LeaderboardDelete.Response>}
|
99
|
+
* {@link LeaderboardDelete.Success} on success.
|
100
|
+
* {@link LeaderboardDelete.Error} on failure.
|
101
|
+
*/
|
102
|
+
leaderboardDelete(): Promise<LeaderboardDelete.Response>;
|
103
|
+
}
|
@@ -0,0 +1,120 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.AbstractLeaderboard = void 0;
|
4
|
+
class AbstractLeaderboard {
|
5
|
+
constructor(cacheName, leaderboardName, dataClient) {
|
6
|
+
this.cacheName = cacheName;
|
7
|
+
this.leaderboardName = leaderboardName;
|
8
|
+
this.dataClient = dataClient;
|
9
|
+
}
|
10
|
+
/**
|
11
|
+
* Updates elements in a leaderboard or inserts elements if they do not already exist.
|
12
|
+
* The leaderboard is also created if it does not already exist.
|
13
|
+
* Note: can upsert a maximum of 8192 elements at a time.
|
14
|
+
*
|
15
|
+
* @param {Map<number, number>} elements - The ID->score pairs to add to the leaderboard.
|
16
|
+
* @returns {Promise<LeaderboardUpsert.Response>} -
|
17
|
+
* {@link LeaderboardUpsert.Success} on success.
|
18
|
+
* {@link LeaderboardUpsert.Error} on failure.
|
19
|
+
*/
|
20
|
+
async leaderboardUpsert(elements) {
|
21
|
+
return await this.dataClient.leaderboardUpsert(this.cacheName, this.leaderboardName, elements);
|
22
|
+
}
|
23
|
+
/**
|
24
|
+
* Fetch the elements in the given leaderboard by score.
|
25
|
+
* Note: can fetch a maximum of 8192 elements at a time.
|
26
|
+
*
|
27
|
+
* @param {LeaderboardFetchByScoreCallOptions} options
|
28
|
+
* @param {number} [options.minScore] - The minimum score (inclusive) of the
|
29
|
+
* elements to fetch. Defaults to negative infinity.
|
30
|
+
* @param {number} [options.maxScore] - The maximum score (exclusive) of the
|
31
|
+
* elements to fetch. Defaults to positive infinity.
|
32
|
+
* @param {LeaderboardOrder} [options.order] - The order to fetch the elements in.
|
33
|
+
* Defaults to ascending, meaning 0 is the lowest-scoring rank.
|
34
|
+
* @param {number} [options.offset] - The number of elements to skip before
|
35
|
+
* returning the first element. Defaults to 0. Note: this is not the score of
|
36
|
+
* the first element to return, but the number of elements of the result set
|
37
|
+
* to skip before returning the first element.
|
38
|
+
* @param {number} [options.count] - The maximum number of elements to return.
|
39
|
+
* Defaults to 8192, which is the maximum that can be fetched at a time.
|
40
|
+
* @returns {Promise<LeaderboardFetch.Response>} -
|
41
|
+
* {@link LeaderboardFetch.Found} containing the requested elements.
|
42
|
+
* {@link LeaderboardFetch.NotFound} when requested elements were not found.
|
43
|
+
* {@link LeaderboardFetch.Error} on failure.
|
44
|
+
*/
|
45
|
+
async leaderboardFetchByScore(options) {
|
46
|
+
return await this.dataClient.leaderboardFetchByScore(this.cacheName, this.leaderboardName, options === null || options === void 0 ? void 0 : options.minScore, options === null || options === void 0 ? void 0 : options.maxScore, options === null || options === void 0 ? void 0 : options.order, options === null || options === void 0 ? void 0 : options.offset, options === null || options === void 0 ? void 0 : options.count);
|
47
|
+
}
|
48
|
+
/**
|
49
|
+
* Fetch the elements in the given leaderboard by index (rank).
|
50
|
+
* Note: can fetch a maximum of 8192 elements at a time and rank
|
51
|
+
* is 0-based (index begins at 0).
|
52
|
+
*
|
53
|
+
* @param {LeaderboardFetchByRankOptions} options
|
54
|
+
* @param {number} [options.startRank] - The rank of the first element to
|
55
|
+
* fetch. Defaults to 0. This rank is inclusive, ie the element at this rank
|
56
|
+
* will be fetched.
|
57
|
+
* @param {number} [options.endRank] - The rank of the last element to fetch.
|
58
|
+
* This rank is exclusive, ie the element at this rank will not be fetched.
|
59
|
+
* Defaults to startRank + 8192 in order to fetch the maximum 8192 elements per request.
|
60
|
+
* @param {LeaderboardOrder} [options.order] - The order to fetch the elements in.
|
61
|
+
* Defaults to ascending, meaning 0 is the lowest-scoring rank.
|
62
|
+
* @returns {Promise<LeaderboardFetch.Response>} -
|
63
|
+
* {@link LeaderboardFetch.Found} containing the requested elements.
|
64
|
+
* {@link LeaderboardFetch.NotFound} when requested elements were not found.
|
65
|
+
* {@link LeaderboardFetch.Error} on failure.
|
66
|
+
*/
|
67
|
+
async leaderboardFetchByRank(options) {
|
68
|
+
return await this.dataClient.leaderboardFetchByRank(this.cacheName, this.leaderboardName, options === null || options === void 0 ? void 0 : options.startRank, options === null || options === void 0 ? void 0 : options.endRank, options === null || options === void 0 ? void 0 : options.order);
|
69
|
+
}
|
70
|
+
/**
|
71
|
+
* Look up the rank of an element in the leaderboard given the element id.
|
72
|
+
* Note: rank is 0-based (index begins at 0).
|
73
|
+
*
|
74
|
+
* @param {number} ids - The ids of the elements whose rank we are retrieving.
|
75
|
+
* @param {LeaderboardGetRankCallOptions} options
|
76
|
+
* @param {LeaderboardOrder} [options.order] - The order to fetch the elements in.
|
77
|
+
* Defaults to ascending, meaning 0 is the lowest-scoring rank.
|
78
|
+
* @returns {Promise<LeaderboardFetch.Response>}
|
79
|
+
* {@link LeaderboardFetch.Found} containing the requested elements.
|
80
|
+
* {@link LeaderboardFetch.NotFound} when requested elements were not found.
|
81
|
+
* {@link LeaderboardFetch.Error} on failure.
|
82
|
+
*/
|
83
|
+
async leaderboardGetRank(ids, options) {
|
84
|
+
return await this.dataClient.leaderboardGetRank(this.cacheName, this.leaderboardName, ids, options === null || options === void 0 ? void 0 : options.order);
|
85
|
+
}
|
86
|
+
/**
|
87
|
+
* Fetch length (number of items) of leaderboard
|
88
|
+
*
|
89
|
+
* @returns {Promise<LeaderboardLength.Response>}
|
90
|
+
* {@link LeaderboardLength.Success} containing the length if the leaderboard exists.
|
91
|
+
* {@link LeaderboardLength.Error} on failure.
|
92
|
+
*/
|
93
|
+
async leaderboardLength() {
|
94
|
+
return await this.dataClient.leaderboardLength(this.cacheName, this.leaderboardName);
|
95
|
+
}
|
96
|
+
/**
|
97
|
+
* Remove multiple elements from the given leaderboard
|
98
|
+
* Note: can remove a maximum of 8192 elements at a time.
|
99
|
+
*
|
100
|
+
* @param {Array<number>} ids - The IDs of the elements to remove from the leaderboard.
|
101
|
+
* @returns {Promise<LeaderboardRemoveElements.Response>}
|
102
|
+
* {@link LeaderboardRemoveElements.Success} if the elements were successfully removed.
|
103
|
+
* {@link LeaderboardRemoveElements.Error} on failure.
|
104
|
+
*/
|
105
|
+
async leaderboardRemoveElements(ids) {
|
106
|
+
return await this.dataClient.leaderboardRemoveElements(this.cacheName, this.leaderboardName, ids);
|
107
|
+
}
|
108
|
+
/**
|
109
|
+
* Delete the given leaderboard
|
110
|
+
*
|
111
|
+
* @returns {Promise<LeaderboardDelete.Response>}
|
112
|
+
* {@link LeaderboardDelete.Success} on success.
|
113
|
+
* {@link LeaderboardDelete.Error} on failure.
|
114
|
+
*/
|
115
|
+
async leaderboardDelete() {
|
116
|
+
return await this.dataClient.leaderboardDelete(this.cacheName, this.leaderboardName);
|
117
|
+
}
|
118
|
+
}
|
119
|
+
exports.AbstractLeaderboard = AbstractLeaderboard;
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RMZWFkZXJib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbnRlcm5hbC9jbGllbnRzL2xlYWRlcmJvYXJkL0Fic3RyYWN0TGVhZGVyYm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZUEsTUFBc0IsbUJBQW1CO0lBS3ZDLFlBQ0UsU0FBaUIsRUFDakIsZUFBdUIsRUFDdkIsVUFBa0M7UUFFbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLEtBQUssQ0FBQyxpQkFBaUIsQ0FDNUIsUUFBNkI7UUFFN0IsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQzVDLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLGVBQWUsRUFDcEIsUUFBUSxDQUNULENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXFCRztJQUNJLEtBQUssQ0FBQyx1QkFBdUIsQ0FDbEMsT0FBNEM7UUFFNUMsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQ2xELElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLGVBQWUsRUFDcEIsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFFBQVEsRUFDakIsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFFBQVEsRUFDakIsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssRUFDZCxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsTUFBTSxFQUNmLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFLLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0JHO0lBQ0ksS0FBSyxDQUFDLHNCQUFzQixDQUNqQyxPQUEyQztRQUUzQyxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FDakQsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsZUFBZSxFQUNwQixPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsU0FBUyxFQUNsQixPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsT0FBTyxFQUNoQixPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsS0FBSyxDQUNmLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksS0FBSyxDQUFDLGtCQUFrQixDQUM3QixHQUFrQixFQUNsQixPQUF1QztRQUV2QyxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FDN0MsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsZUFBZSxFQUNwQixHQUFHLEVBQ0gsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssQ0FDZixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxpQkFBaUI7UUFDNUIsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQzVDLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FDckIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQyx5QkFBeUIsQ0FDcEMsR0FBa0I7UUFFbEIsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMseUJBQXlCLENBQ3BELElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLGVBQWUsRUFDcEIsR0FBRyxDQUNKLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQjtRQUM1QixPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FDNUMsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsZUFBZSxDQUNyQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBN0tELGtEQTZLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElMZWFkZXJib2FyZCxcbiAgTGVhZGVyYm9hcmRGZXRjaEJ5UmFua0NhbGxPcHRpb25zLFxuICBMZWFkZXJib2FyZEZldGNoQnlTY29yZUNhbGxPcHRpb25zLFxuICBMZWFkZXJib2FyZEdldFJhbmtDYWxsT3B0aW9ucyxcbn0gZnJvbSAnLi4vLi4vLi4vY2xpZW50cy9JTGVhZGVyYm9hcmQnO1xuaW1wb3J0IHtcbiAgTGVhZGVyYm9hcmREZWxldGUsXG4gIExlYWRlcmJvYXJkRmV0Y2gsXG4gIExlYWRlcmJvYXJkTGVuZ3RoLFxuICBMZWFkZXJib2FyZFJlbW92ZUVsZW1lbnRzLFxuICBMZWFkZXJib2FyZFVwc2VydCxcbn0gZnJvbSAnLi4vLi4vLi4vbWVzc2FnZXMvcmVzcG9uc2VzL2xlYWRlcmJvYXJkJztcbmltcG9ydCB7SUxlYWRlcmJvYXJkRGF0YUNsaWVudH0gZnJvbSAnLi9JTGVhZGVyYm9hcmREYXRhQ2xpZW50JztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TGVhZGVyYm9hcmQgaW1wbGVtZW50cyBJTGVhZGVyYm9hcmQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FjaGVOYW1lOiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBsZWFkZXJib2FyZE5hbWU6IHN0cmluZztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGFDbGllbnQ6IElMZWFkZXJib2FyZERhdGFDbGllbnQ7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGxlYWRlcmJvYXJkTmFtZTogc3RyaW5nLFxuICAgIGRhdGFDbGllbnQ6IElMZWFkZXJib2FyZERhdGFDbGllbnRcbiAgKSB7XG4gICAgdGhpcy5jYWNoZU5hbWUgPSBjYWNoZU5hbWU7XG4gICAgdGhpcy5sZWFkZXJib2FyZE5hbWUgPSBsZWFkZXJib2FyZE5hbWU7XG4gICAgdGhpcy5kYXRhQ2xpZW50ID0gZGF0YUNsaWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIGVsZW1lbnRzIGluIGEgbGVhZGVyYm9hcmQgb3IgaW5zZXJ0cyBlbGVtZW50cyBpZiB0aGV5IGRvIG5vdCBhbHJlYWR5IGV4aXN0LlxuICAgKiBUaGUgbGVhZGVyYm9hcmQgaXMgYWxzbyBjcmVhdGVkIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QuXG4gICAqIE5vdGU6IGNhbiB1cHNlcnQgYSBtYXhpbXVtIG9mIDgxOTIgZWxlbWVudHMgYXQgYSB0aW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge01hcDxudW1iZXIsIG51bWJlcj59IGVsZW1lbnRzIC0gVGhlIElELT5zY29yZSBwYWlycyB0byBhZGQgdG8gdGhlIGxlYWRlcmJvYXJkLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxMZWFkZXJib2FyZFVwc2VydC5SZXNwb25zZT59IC1cbiAgICoge0BsaW5rIExlYWRlcmJvYXJkVXBzZXJ0LlN1Y2Nlc3N9IG9uIHN1Y2Nlc3MuXG4gICAqIHtAbGluayBMZWFkZXJib2FyZFVwc2VydC5FcnJvcn0gb24gZmFpbHVyZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsZWFkZXJib2FyZFVwc2VydChcbiAgICBlbGVtZW50czogTWFwPG51bWJlciwgbnVtYmVyPlxuICApOiBQcm9taXNlPExlYWRlcmJvYXJkVXBzZXJ0LlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZGF0YUNsaWVudC5sZWFkZXJib2FyZFVwc2VydChcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgdGhpcy5sZWFkZXJib2FyZE5hbWUsXG4gICAgICBlbGVtZW50c1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggdGhlIGVsZW1lbnRzIGluIHRoZSBnaXZlbiBsZWFkZXJib2FyZCBieSBzY29yZS5cbiAgICogTm90ZTogY2FuIGZldGNoIGEgbWF4aW11bSBvZiA4MTkyIGVsZW1lbnRzIGF0IGEgdGltZS5cbiAgICpcbiAgICogQHBhcmFtIHtMZWFkZXJib2FyZEZldGNoQnlTY29yZUNhbGxPcHRpb25zfSBvcHRpb25zXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5taW5TY29yZV0gLSBUaGUgbWluaW11bSBzY29yZSAoaW5jbHVzaXZlKSBvZiB0aGVcbiAgICogZWxlbWVudHMgdG8gZmV0Y2guIERlZmF1bHRzIHRvIG5lZ2F0aXZlIGluZmluaXR5LlxuICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubWF4U2NvcmVdIC0gVGhlIG1heGltdW0gc2NvcmUgKGV4Y2x1c2l2ZSkgb2YgdGhlXG4gICAqIGVsZW1lbnRzIHRvIGZldGNoLiBEZWZhdWx0cyB0byBwb3NpdGl2ZSBpbmZpbml0eS5cbiAgICogQHBhcmFtIHtMZWFkZXJib2FyZE9yZGVyfSBbb3B0aW9ucy5vcmRlcl0gLSBUaGUgb3JkZXIgdG8gZmV0Y2ggdGhlIGVsZW1lbnRzIGluLlxuICAgKiBEZWZhdWx0cyB0byBhc2NlbmRpbmcsIG1lYW5pbmcgMCBpcyB0aGUgbG93ZXN0LXNjb3JpbmcgcmFuay5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLm9mZnNldF0gLSBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHNraXAgYmVmb3JlXG4gICAqIHJldHVybmluZyB0aGUgZmlyc3QgZWxlbWVudC4gRGVmYXVsdHMgdG8gMC4gTm90ZTogdGhpcyBpcyBub3QgdGhlIHNjb3JlIG9mXG4gICAqIHRoZSBmaXJzdCBlbGVtZW50IHRvIHJldHVybiwgYnV0IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgb2YgdGhlIHJlc3VsdCBzZXRcbiAgICogdG8gc2tpcCBiZWZvcmUgcmV0dXJuaW5nIHRoZSBmaXJzdCBlbGVtZW50LlxuICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMuY291bnRdIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGVsZW1lbnRzIHRvIHJldHVybi5cbiAgICogRGVmYXVsdHMgdG8gODE5Miwgd2hpY2ggaXMgdGhlIG1heGltdW0gdGhhdCBjYW4gYmUgZmV0Y2hlZCBhdCBhIHRpbWUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPExlYWRlcmJvYXJkRmV0Y2guUmVzcG9uc2U+fSAtXG4gICAqIHtAbGluayBMZWFkZXJib2FyZEZldGNoLkZvdW5kfSBjb250YWluaW5nIHRoZSByZXF1ZXN0ZWQgZWxlbWVudHMuXG4gICAqIHtAbGluayBMZWFkZXJib2FyZEZldGNoLk5vdEZvdW5kfSB3aGVuIHJlcXVlc3RlZCBlbGVtZW50cyB3ZXJlIG5vdCBmb3VuZC5cbiAgICoge0BsaW5rIExlYWRlcmJvYXJkRmV0Y2guRXJyb3J9IG9uIGZhaWx1cmUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbGVhZGVyYm9hcmRGZXRjaEJ5U2NvcmUoXG4gICAgb3B0aW9ucz86IExlYWRlcmJvYXJkRmV0Y2hCeVNjb3JlQ2FsbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxMZWFkZXJib2FyZEZldGNoLlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZGF0YUNsaWVudC5sZWFkZXJib2FyZEZldGNoQnlTY29yZShcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgdGhpcy5sZWFkZXJib2FyZE5hbWUsXG4gICAgICBvcHRpb25zPy5taW5TY29yZSxcbiAgICAgIG9wdGlvbnM/Lm1heFNjb3JlLFxuICAgICAgb3B0aW9ucz8ub3JkZXIsXG4gICAgICBvcHRpb25zPy5vZmZzZXQsXG4gICAgICBvcHRpb25zPy5jb3VudFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggdGhlIGVsZW1lbnRzIGluIHRoZSBnaXZlbiBsZWFkZXJib2FyZCBieSBpbmRleCAocmFuaykuXG4gICAqIE5vdGU6IGNhbiBmZXRjaCBhIG1heGltdW0gb2YgODE5MiBlbGVtZW50cyBhdCBhIHRpbWUgYW5kIHJhbmtcbiAgICogaXMgMC1iYXNlZCAoaW5kZXggYmVnaW5zIGF0IDApLlxuICAgKlxuICAgKiBAcGFyYW0ge0xlYWRlcmJvYXJkRmV0Y2hCeVJhbmtPcHRpb25zfSBvcHRpb25zXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5zdGFydFJhbmtdIC0gVGhlIHJhbmsgb2YgdGhlIGZpcnN0IGVsZW1lbnQgdG9cbiAgICogZmV0Y2guIERlZmF1bHRzIHRvIDAuIFRoaXMgcmFuayBpcyBpbmNsdXNpdmUsIGllIHRoZSBlbGVtZW50IGF0IHRoaXMgcmFua1xuICAgKiB3aWxsIGJlIGZldGNoZWQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5lbmRSYW5rXSAtIFRoZSByYW5rIG9mIHRoZSBsYXN0IGVsZW1lbnQgdG8gZmV0Y2guXG4gICAqIFRoaXMgcmFuayBpcyBleGNsdXNpdmUsIGllIHRoZSBlbGVtZW50IGF0IHRoaXMgcmFuayB3aWxsIG5vdCBiZSBmZXRjaGVkLlxuICAgKiBEZWZhdWx0cyB0byBzdGFydFJhbmsgKyA4MTkyIGluIG9yZGVyIHRvIGZldGNoIHRoZSBtYXhpbXVtIDgxOTIgZWxlbWVudHMgcGVyIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7TGVhZGVyYm9hcmRPcmRlcn0gW29wdGlvbnMub3JkZXJdIC0gVGhlIG9yZGVyIHRvIGZldGNoIHRoZSBlbGVtZW50cyBpbi5cbiAgICogRGVmYXVsdHMgdG8gYXNjZW5kaW5nLCBtZWFuaW5nIDAgaXMgdGhlIGxvd2VzdC1zY29yaW5nIHJhbmsuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPExlYWRlcmJvYXJkRmV0Y2guUmVzcG9uc2U+fSAtXG4gICAqIHtAbGluayBMZWFkZXJib2FyZEZldGNoLkZvdW5kfSBjb250YWluaW5nIHRoZSByZXF1ZXN0ZWQgZWxlbWVudHMuXG4gICAqIHtAbGluayBMZWFkZXJib2FyZEZldGNoLk5vdEZvdW5kfSB3aGVuIHJlcXVlc3RlZCBlbGVtZW50cyB3ZXJlIG5vdCBmb3VuZC5cbiAgICoge0BsaW5rIExlYWRlcmJvYXJkRmV0Y2guRXJyb3J9IG9uIGZhaWx1cmUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbGVhZGVyYm9hcmRGZXRjaEJ5UmFuayhcbiAgICBvcHRpb25zPzogTGVhZGVyYm9hcmRGZXRjaEJ5UmFua0NhbGxPcHRpb25zXG4gICk6IFByb21pc2U8TGVhZGVyYm9hcmRGZXRjaC5SZXNwb25zZT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmRhdGFDbGllbnQubGVhZGVyYm9hcmRGZXRjaEJ5UmFuayhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgdGhpcy5sZWFkZXJib2FyZE5hbWUsXG4gICAgICBvcHRpb25zPy5zdGFydFJhbmssXG4gICAgICBvcHRpb25zPy5lbmRSYW5rLFxuICAgICAgb3B0aW9ucz8ub3JkZXJcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIExvb2sgdXAgdGhlIHJhbmsgb2YgYW4gZWxlbWVudCBpbiB0aGUgbGVhZGVyYm9hcmQgZ2l2ZW4gdGhlIGVsZW1lbnQgaWQuXG4gICAqIE5vdGU6IHJhbmsgaXMgMC1iYXNlZCAoaW5kZXggYmVnaW5zIGF0IDApLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gaWRzIC0gVGhlIGlkcyBvZiB0aGUgZWxlbWVudHMgd2hvc2UgcmFuayB3ZSBhcmUgcmV0cmlldmluZy5cbiAgICogQHBhcmFtIHtMZWFkZXJib2FyZEdldFJhbmtDYWxsT3B0aW9uc30gb3B0aW9uc1xuICAgKiBAcGFyYW0ge0xlYWRlcmJvYXJkT3JkZXJ9IFtvcHRpb25zLm9yZGVyXSAtIFRoZSBvcmRlciB0byBmZXRjaCB0aGUgZWxlbWVudHMgaW4uXG4gICAqIERlZmF1bHRzIHRvIGFzY2VuZGluZywgbWVhbmluZyAwIGlzIHRoZSBsb3dlc3Qtc2NvcmluZyByYW5rLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxMZWFkZXJib2FyZEZldGNoLlJlc3BvbnNlPn1cbiAgICoge0BsaW5rIExlYWRlcmJvYXJkRmV0Y2guRm91bmR9IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBlbGVtZW50cy5cbiAgICoge0BsaW5rIExlYWRlcmJvYXJkRmV0Y2guTm90Rm91bmR9IHdoZW4gcmVxdWVzdGVkIGVsZW1lbnRzIHdlcmUgbm90IGZvdW5kLlxuICAgKiB7QGxpbmsgTGVhZGVyYm9hcmRGZXRjaC5FcnJvcn0gb24gZmFpbHVyZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsZWFkZXJib2FyZEdldFJhbmsoXG4gICAgaWRzOiBBcnJheTxudW1iZXI+LFxuICAgIG9wdGlvbnM/OiBMZWFkZXJib2FyZEdldFJhbmtDYWxsT3B0aW9uc1xuICApOiBQcm9taXNlPExlYWRlcmJvYXJkRmV0Y2guUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5kYXRhQ2xpZW50LmxlYWRlcmJvYXJkR2V0UmFuayhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgdGhpcy5sZWFkZXJib2FyZE5hbWUsXG4gICAgICBpZHMsXG4gICAgICBvcHRpb25zPy5vcmRlclxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggbGVuZ3RoIChudW1iZXIgb2YgaXRlbXMpIG9mIGxlYWRlcmJvYXJkXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPExlYWRlcmJvYXJkTGVuZ3RoLlJlc3BvbnNlPn1cbiAgICoge0BsaW5rIExlYWRlcmJvYXJkTGVuZ3RoLlN1Y2Nlc3N9IGNvbnRhaW5pbmcgdGhlIGxlbmd0aCBpZiB0aGUgbGVhZGVyYm9hcmQgZXhpc3RzLlxuICAgKiB7QGxpbmsgTGVhZGVyYm9hcmRMZW5ndGguRXJyb3J9IG9uIGZhaWx1cmUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbGVhZGVyYm9hcmRMZW5ndGgoKTogUHJvbWlzZTxMZWFkZXJib2FyZExlbmd0aC5SZXNwb25zZT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmRhdGFDbGllbnQubGVhZGVyYm9hcmRMZW5ndGgoXG4gICAgICB0aGlzLmNhY2hlTmFtZSxcbiAgICAgIHRoaXMubGVhZGVyYm9hcmROYW1lXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgbXVsdGlwbGUgZWxlbWVudHMgZnJvbSB0aGUgZ2l2ZW4gbGVhZGVyYm9hcmRcbiAgICogTm90ZTogY2FuIHJlbW92ZSBhIG1heGltdW0gb2YgODE5MiBlbGVtZW50cyBhdCBhIHRpbWUuXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXk8bnVtYmVyPn0gaWRzIC0gVGhlIElEcyBvZiB0aGUgZWxlbWVudHMgdG8gcmVtb3ZlIGZyb20gdGhlIGxlYWRlcmJvYXJkLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxMZWFkZXJib2FyZFJlbW92ZUVsZW1lbnRzLlJlc3BvbnNlPn1cbiAgICoge0BsaW5rIExlYWRlcmJvYXJkUmVtb3ZlRWxlbWVudHMuU3VjY2Vzc30gaWYgdGhlIGVsZW1lbnRzIHdlcmUgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQuXG4gICAqIHtAbGluayBMZWFkZXJib2FyZFJlbW92ZUVsZW1lbnRzLkVycm9yfSBvbiBmYWlsdXJlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxlYWRlcmJvYXJkUmVtb3ZlRWxlbWVudHMoXG4gICAgaWRzOiBBcnJheTxudW1iZXI+XG4gICk6IFByb21pc2U8TGVhZGVyYm9hcmRSZW1vdmVFbGVtZW50cy5SZXNwb25zZT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmRhdGFDbGllbnQubGVhZGVyYm9hcmRSZW1vdmVFbGVtZW50cyhcbiAgICAgIHRoaXMuY2FjaGVOYW1lLFxuICAgICAgdGhpcy5sZWFkZXJib2FyZE5hbWUsXG4gICAgICBpZHNcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSB0aGUgZ2l2ZW4gbGVhZGVyYm9hcmRcbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8TGVhZGVyYm9hcmREZWxldGUuUmVzcG9uc2U+fVxuICAgKiB7QGxpbmsgTGVhZGVyYm9hcmREZWxldGUuU3VjY2Vzc30gb24gc3VjY2Vzcy5cbiAgICoge0BsaW5rIExlYWRlcmJvYXJkRGVsZXRlLkVycm9yfSBvbiBmYWlsdXJlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxlYWRlcmJvYXJkRGVsZXRlKCk6IFByb21pc2U8TGVhZGVyYm9hcmREZWxldGUuUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5kYXRhQ2xpZW50LmxlYWRlcmJvYXJkRGVsZXRlKFxuICAgICAgdGhpcy5jYWNoZU5hbWUsXG4gICAgICB0aGlzLmxlYWRlcmJvYXJkTmFtZVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { LeaderboardDelete, LeaderboardFetch, LeaderboardLength, LeaderboardRemoveElements, LeaderboardUpsert } from '../../../messages/responses/leaderboard';
|
2
|
+
import { LeaderboardOrder } from '../../../utils';
|
3
|
+
export interface ILeaderboardDataClient {
|
4
|
+
leaderboardUpsert(cacheName: string, leaderboardName: string, elements: Map<number, number>): Promise<LeaderboardUpsert.Response>;
|
5
|
+
leaderboardFetchByScore(cacheName: string, leaderboardName: string, minScore?: number, maxScore?: number, order?: LeaderboardOrder, offset?: number, count?: number): Promise<LeaderboardFetch.Response>;
|
6
|
+
leaderboardFetchByRank(cacheName: string, leaderboardName: string, startRank?: number, endRank?: number, order?: LeaderboardOrder): Promise<LeaderboardFetch.Response>;
|
7
|
+
leaderboardGetRank(cacheName: string, leaderboardName: string, ids: Array<number>, order?: LeaderboardOrder): Promise<LeaderboardFetch.Response>;
|
8
|
+
leaderboardLength(cacheName: string, leaderboardName: string): Promise<LeaderboardLength.Response>;
|
9
|
+
leaderboardRemoveElements(cacheName: string, leaderboardName: string, ids: Array<number>): Promise<LeaderboardRemoveElements.Response>;
|
10
|
+
leaderboardDelete(cacheName: string, leaderboardName: string): Promise<LeaderboardDelete.Response>;
|
11
|
+
}
|
@@ -0,0 +1,3 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUxlYWRlcmJvYXJkRGF0YUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbnRlcm5hbC9jbGllbnRzL2xlYWRlcmJvYXJkL0lMZWFkZXJib2FyZERhdGFDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIExlYWRlcmJvYXJkRGVsZXRlLFxuICBMZWFkZXJib2FyZEZldGNoLFxuICBMZWFkZXJib2FyZExlbmd0aCxcbiAgTGVhZGVyYm9hcmRSZW1vdmVFbGVtZW50cyxcbiAgTGVhZGVyYm9hcmRVcHNlcnQsXG59IGZyb20gJy4uLy4uLy4uL21lc3NhZ2VzL3Jlc3BvbnNlcy9sZWFkZXJib2FyZCc7XG5pbXBvcnQge0xlYWRlcmJvYXJkT3JkZXJ9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBJTGVhZGVyYm9hcmREYXRhQ2xpZW50IHtcbiAgbGVhZGVyYm9hcmRVcHNlcnQoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgbGVhZGVyYm9hcmROYW1lOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IE1hcDxudW1iZXIsIG51bWJlcj5cbiAgKTogUHJvbWlzZTxMZWFkZXJib2FyZFVwc2VydC5SZXNwb25zZT47XG4gIGxlYWRlcmJvYXJkRmV0Y2hCeVNjb3JlKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGxlYWRlcmJvYXJkTmFtZTogc3RyaW5nLFxuICAgIG1pblNjb3JlPzogbnVtYmVyLFxuICAgIG1heFNjb3JlPzogbnVtYmVyLFxuICAgIG9yZGVyPzogTGVhZGVyYm9hcmRPcmRlcixcbiAgICBvZmZzZXQ/OiBudW1iZXIsXG4gICAgY291bnQ/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxMZWFkZXJib2FyZEZldGNoLlJlc3BvbnNlPjtcbiAgbGVhZGVyYm9hcmRGZXRjaEJ5UmFuayhcbiAgICBjYWNoZU5hbWU6IHN0cmluZyxcbiAgICBsZWFkZXJib2FyZE5hbWU6IHN0cmluZyxcbiAgICBzdGFydFJhbms/OiBudW1iZXIsXG4gICAgZW5kUmFuaz86IG51bWJlcixcbiAgICBvcmRlcj86IExlYWRlcmJvYXJkT3JkZXJcbiAgKTogUHJvbWlzZTxMZWFkZXJib2FyZEZldGNoLlJlc3BvbnNlPjtcbiAgbGVhZGVyYm9hcmRHZXRSYW5rKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGxlYWRlcmJvYXJkTmFtZTogc3RyaW5nLFxuICAgIGlkczogQXJyYXk8bnVtYmVyPixcbiAgICBvcmRlcj86IExlYWRlcmJvYXJkT3JkZXJcbiAgKTogUHJvbWlzZTxMZWFkZXJib2FyZEZldGNoLlJlc3BvbnNlPjtcbiAgbGVhZGVyYm9hcmRMZW5ndGgoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgbGVhZGVyYm9hcmROYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxMZWFkZXJib2FyZExlbmd0aC5SZXNwb25zZT47XG4gIGxlYWRlcmJvYXJkUmVtb3ZlRWxlbWVudHMoXG4gICAgY2FjaGVOYW1lOiBzdHJpbmcsXG4gICAgbGVhZGVyYm9hcmROYW1lOiBzdHJpbmcsXG4gICAgaWRzOiBBcnJheTxudW1iZXI+XG4gICk6IFByb21pc2U8TGVhZGVyYm9hcmRSZW1vdmVFbGVtZW50cy5SZXNwb25zZT47XG4gIGxlYWRlcmJvYXJkRGVsZXRlKFxuICAgIGNhY2hlTmFtZTogc3RyaW5nLFxuICAgIGxlYWRlcmJvYXJkTmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8TGVhZGVyYm9hcmREZWxldGUuUmVzcG9uc2U+O1xufVxuIl19
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("../../../clients/ILeaderboard"), exports);
|
18
|
+
__exportStar(require("../../../clients/ILeaderboardClient"), exports);
|
19
|
+
__exportStar(require("./AbstractLeaderboard"), exports);
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvaW50ZXJuYWwvY2xpZW50cy9sZWFkZXJib2FyZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0VBQThDO0FBQzlDLHNFQUFvRDtBQUNwRCx3REFBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuLi8uLi8uLi9jbGllbnRzL0lMZWFkZXJib2FyZCc7XG5leHBvcnQgKiBmcm9tICcuLi8uLi8uLi9jbGllbnRzL0lMZWFkZXJib2FyZENsaWVudCc7XG5leHBvcnQgKiBmcm9tICcuL0Fic3RyYWN0TGVhZGVyYm9hcmQnO1xuIl19
|
@@ -19,3 +19,8 @@ export declare function validateValidForSeconds(validForSeconds: number): void;
|
|
19
19
|
export declare function validateTimeout(timeout: number): void;
|
20
20
|
export declare function validateDisposableTokenExpiry(expiresIn: ExpiresIn): void;
|
21
21
|
export declare function isBase64(str: string): boolean;
|
22
|
+
export declare function validateLeaderboardName(name: string): void;
|
23
|
+
export declare function validateLeaderboardRanks(start_rank: number, end_rank: number): void;
|
24
|
+
export declare function validateLeaderboardOffset(offset: number): void;
|
25
|
+
export declare function validateLeaderboardCount(count: number): void;
|
26
|
+
export declare function validateLeaderboardNumberOfElements(numElements: number): void;
|