@kokimoki/app 1.7.2 → 1.8.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/dist/kokimoki-client.d.ts +16 -4
- package/dist/kokimoki-client.js +19 -8
- package/dist/kokimoki.min.d.ts +16 -4
- package/dist/kokimoki.min.js +20 -9
- package/dist/kokimoki.min.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -77,7 +77,7 @@ export declare class KokimokiClient<ClientContextT = any> extends KokimokiClient
|
|
|
77
77
|
private sendUnsubscribeReq;
|
|
78
78
|
join<T extends S.Generic<unknown>>(store: KokimokiStore<T>): Promise<void>;
|
|
79
79
|
leave<T extends S.Generic<unknown>>(store: KokimokiStore<T>): Promise<void>;
|
|
80
|
-
transact(handler: (t: KokimokiTransaction) =>
|
|
80
|
+
transact<ReturnT = void>(handler: (t: KokimokiTransaction) => ReturnT | Promise<ReturnT>): Promise<ReturnT>;
|
|
81
81
|
close(): Promise<void>;
|
|
82
82
|
getRoomHash<T extends S.Generic<unknown>>(store: KokimokiStore<T>): number;
|
|
83
83
|
/** Initializers */
|
|
@@ -93,7 +93,7 @@ export declare class KokimokiClient<ClientContextT = any> extends KokimokiClient
|
|
|
93
93
|
* @param metadata
|
|
94
94
|
* @returns
|
|
95
95
|
*/
|
|
96
|
-
insertLeaderboardEntry<MetadataT, PrivateMetadataT>(leaderboardName: string,
|
|
96
|
+
insertLeaderboardEntry<MetadataT, PrivateMetadataT>(leaderboardName: string, sortDir: "asc" | "desc", score: number, metadata: MetadataT, privateMetadata: PrivateMetadataT): Promise<{
|
|
97
97
|
rank: number;
|
|
98
98
|
}>;
|
|
99
99
|
/**
|
|
@@ -104,7 +104,7 @@ export declare class KokimokiClient<ClientContextT = any> extends KokimokiClient
|
|
|
104
104
|
* @param privateMetadata Can only be read using the leaderboard API
|
|
105
105
|
* @returns
|
|
106
106
|
*/
|
|
107
|
-
upsertLeaderboardEntry<MetadataT, PrivateMetadataT>(leaderboardName: string,
|
|
107
|
+
upsertLeaderboardEntry<MetadataT, PrivateMetadataT>(leaderboardName: string, sortDir: "asc" | "desc", score: number, metadata: MetadataT, privateMetadata: PrivateMetadataT): Promise<{
|
|
108
108
|
rank: number;
|
|
109
109
|
}>;
|
|
110
110
|
/**
|
|
@@ -114,9 +114,21 @@ export declare class KokimokiClient<ClientContextT = any> extends KokimokiClient
|
|
|
114
114
|
* @param limit
|
|
115
115
|
* @returns
|
|
116
116
|
*/
|
|
117
|
-
listLeaderboardEntries<MetadataT>(leaderboardName: string,
|
|
117
|
+
listLeaderboardEntries<MetadataT>(leaderboardName: string, sortDir: "asc" | "desc", skip?: number, limit?: number): Promise<Paginated<{
|
|
118
|
+
rank: number;
|
|
118
119
|
score: number;
|
|
119
120
|
metadata: MetadataT;
|
|
120
121
|
}>>;
|
|
122
|
+
/**
|
|
123
|
+
* Get best entry in leaderboard for a client, defaults to current client
|
|
124
|
+
* @param leaderboardName
|
|
125
|
+
* @param sortDir
|
|
126
|
+
* @param clientId
|
|
127
|
+
*/
|
|
128
|
+
getBestLeaderboardEntry<MetadataT>(leaderboardName: string, sortDir: "asc" | "desc", clientId?: string): Promise<{
|
|
129
|
+
rank: number;
|
|
130
|
+
score: number;
|
|
131
|
+
metadata: MetadataT;
|
|
132
|
+
}>;
|
|
121
133
|
}
|
|
122
134
|
export {};
|
package/dist/kokimoki-client.js
CHANGED
|
@@ -481,10 +481,10 @@ export class KokimokiClient extends EventEmitter {
|
|
|
481
481
|
// throw new Error("Client not connected");
|
|
482
482
|
// }
|
|
483
483
|
const transaction = new KokimokiTransaction(this);
|
|
484
|
-
await handler(transaction);
|
|
484
|
+
const returnValue = await handler(transaction);
|
|
485
485
|
const { updates, consumedMessages } = await transaction.getUpdates();
|
|
486
486
|
if (!updates.length) {
|
|
487
|
-
return;
|
|
487
|
+
return returnValue;
|
|
488
488
|
}
|
|
489
489
|
// Construct buffers
|
|
490
490
|
const remoteUpdateWriter = new WsMessageWriter();
|
|
@@ -547,6 +547,7 @@ export class KokimokiClient extends EventEmitter {
|
|
|
547
547
|
const reader = new WsMessageReader(localBuffer);
|
|
548
548
|
this.handleRoomUpdateMessage(reader);
|
|
549
549
|
}
|
|
550
|
+
return returnValue;
|
|
550
551
|
}
|
|
551
552
|
async close() {
|
|
552
553
|
this._autoReconnect = false;
|
|
@@ -615,13 +616,13 @@ export class KokimokiClient extends EventEmitter {
|
|
|
615
616
|
* @param metadata
|
|
616
617
|
* @returns
|
|
617
618
|
*/
|
|
618
|
-
async insertLeaderboardEntry(leaderboardName,
|
|
619
|
+
async insertLeaderboardEntry(leaderboardName, sortDir, score, metadata, privateMetadata) {
|
|
619
620
|
const res = await fetch(`${this._apiUrl}/leaderboard-entries`, {
|
|
620
621
|
method: "POST",
|
|
621
622
|
headers: this.apiHeaders,
|
|
622
623
|
body: JSON.stringify({
|
|
623
624
|
leaderboardName,
|
|
624
|
-
|
|
625
|
+
sortDir,
|
|
625
626
|
score,
|
|
626
627
|
metadata,
|
|
627
628
|
privateMetadata,
|
|
@@ -638,13 +639,13 @@ export class KokimokiClient extends EventEmitter {
|
|
|
638
639
|
* @param privateMetadata Can only be read using the leaderboard API
|
|
639
640
|
* @returns
|
|
640
641
|
*/
|
|
641
|
-
async upsertLeaderboardEntry(leaderboardName,
|
|
642
|
+
async upsertLeaderboardEntry(leaderboardName, sortDir, score, metadata, privateMetadata) {
|
|
642
643
|
const res = await fetch(`${this._apiUrl}/leaderboard-entries`, {
|
|
643
644
|
method: "POST",
|
|
644
645
|
headers: this.apiHeaders,
|
|
645
646
|
body: JSON.stringify({
|
|
646
647
|
leaderboardName,
|
|
647
|
-
|
|
648
|
+
sortDir,
|
|
648
649
|
score,
|
|
649
650
|
metadata,
|
|
650
651
|
privateMetadata,
|
|
@@ -660,8 +661,18 @@ export class KokimokiClient extends EventEmitter {
|
|
|
660
661
|
* @param limit
|
|
661
662
|
* @returns
|
|
662
663
|
*/
|
|
663
|
-
async listLeaderboardEntries(leaderboardName,
|
|
664
|
-
const res = await fetch(`${this._apiUrl}/leaderboard-entries?leaderboardName=${leaderboardName}&
|
|
664
|
+
async listLeaderboardEntries(leaderboardName, sortDir, skip = 0, limit = 100) {
|
|
665
|
+
const res = await fetch(`${this._apiUrl}/leaderboard-entries?leaderboardName=${leaderboardName}&sortDir=${sortDir}&skip=${skip}&limit=${limit}`);
|
|
666
|
+
return await res.json();
|
|
667
|
+
}
|
|
668
|
+
/**
|
|
669
|
+
* Get best entry in leaderboard for a client, defaults to current client
|
|
670
|
+
* @param leaderboardName
|
|
671
|
+
* @param sortDir
|
|
672
|
+
* @param clientId
|
|
673
|
+
*/
|
|
674
|
+
async getBestLeaderboardEntry(leaderboardName, sortDir, clientId) {
|
|
675
|
+
const res = await fetch(`${this._apiUrl}/leaderboard-entries/best?leaderboardName=${leaderboardName}&sortDir=${sortDir}&clientId=${clientId || this.id}`);
|
|
665
676
|
return await res.json();
|
|
666
677
|
}
|
|
667
678
|
}
|
package/dist/kokimoki.min.d.ts
CHANGED
|
@@ -300,7 +300,7 @@ declare class KokimokiClient<ClientContextT = any> extends KokimokiClient_base {
|
|
|
300
300
|
private sendUnsubscribeReq;
|
|
301
301
|
join<T extends KokimokiSchema.Generic<unknown>>(store: KokimokiStore<T>): Promise<void>;
|
|
302
302
|
leave<T extends KokimokiSchema.Generic<unknown>>(store: KokimokiStore<T>): Promise<void>;
|
|
303
|
-
transact(handler: (t: KokimokiTransaction) =>
|
|
303
|
+
transact<ReturnT = void>(handler: (t: KokimokiTransaction) => ReturnT | Promise<ReturnT>): Promise<ReturnT>;
|
|
304
304
|
close(): Promise<void>;
|
|
305
305
|
getRoomHash<T extends KokimokiSchema.Generic<unknown>>(store: KokimokiStore<T>): number;
|
|
306
306
|
/** Initializers */
|
|
@@ -316,7 +316,7 @@ declare class KokimokiClient<ClientContextT = any> extends KokimokiClient_base {
|
|
|
316
316
|
* @param metadata
|
|
317
317
|
* @returns
|
|
318
318
|
*/
|
|
319
|
-
insertLeaderboardEntry<MetadataT, PrivateMetadataT>(leaderboardName: string,
|
|
319
|
+
insertLeaderboardEntry<MetadataT, PrivateMetadataT>(leaderboardName: string, sortDir: "asc" | "desc", score: number, metadata: MetadataT, privateMetadata: PrivateMetadataT): Promise<{
|
|
320
320
|
rank: number;
|
|
321
321
|
}>;
|
|
322
322
|
/**
|
|
@@ -327,7 +327,7 @@ declare class KokimokiClient<ClientContextT = any> extends KokimokiClient_base {
|
|
|
327
327
|
* @param privateMetadata Can only be read using the leaderboard API
|
|
328
328
|
* @returns
|
|
329
329
|
*/
|
|
330
|
-
upsertLeaderboardEntry<MetadataT, PrivateMetadataT>(leaderboardName: string,
|
|
330
|
+
upsertLeaderboardEntry<MetadataT, PrivateMetadataT>(leaderboardName: string, sortDir: "asc" | "desc", score: number, metadata: MetadataT, privateMetadata: PrivateMetadataT): Promise<{
|
|
331
331
|
rank: number;
|
|
332
332
|
}>;
|
|
333
333
|
/**
|
|
@@ -337,10 +337,22 @@ declare class KokimokiClient<ClientContextT = any> extends KokimokiClient_base {
|
|
|
337
337
|
* @param limit
|
|
338
338
|
* @returns
|
|
339
339
|
*/
|
|
340
|
-
listLeaderboardEntries<MetadataT>(leaderboardName: string,
|
|
340
|
+
listLeaderboardEntries<MetadataT>(leaderboardName: string, sortDir: "asc" | "desc", skip?: number, limit?: number): Promise<Paginated<{
|
|
341
|
+
rank: number;
|
|
341
342
|
score: number;
|
|
342
343
|
metadata: MetadataT;
|
|
343
344
|
}>>;
|
|
345
|
+
/**
|
|
346
|
+
* Get best entry in leaderboard for a client, defaults to current client
|
|
347
|
+
* @param leaderboardName
|
|
348
|
+
* @param sortDir
|
|
349
|
+
* @param clientId
|
|
350
|
+
*/
|
|
351
|
+
getBestLeaderboardEntry<MetadataT>(leaderboardName: string, sortDir: "asc" | "desc", clientId?: string): Promise<{
|
|
352
|
+
rank: number;
|
|
353
|
+
score: number;
|
|
354
|
+
metadata: MetadataT;
|
|
355
|
+
}>;
|
|
344
356
|
}
|
|
345
357
|
|
|
346
358
|
declare class RoomSubscription {
|
package/dist/kokimoki.min.js
CHANGED
|
@@ -486,7 +486,7 @@ function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
|
|
|
486
486
|
var eventsExports = events.exports;
|
|
487
487
|
var EventEmitter$1 = /*@__PURE__*/getDefaultExportFromCjs(eventsExports);
|
|
488
488
|
|
|
489
|
-
const KOKIMOKI_APP_VERSION = "1.
|
|
489
|
+
const KOKIMOKI_APP_VERSION = "1.8.1";
|
|
490
490
|
|
|
491
491
|
/**
|
|
492
492
|
* Utility module to work with key-value stores.
|
|
@@ -15111,10 +15111,10 @@ class KokimokiClient extends EventEmitter$1 {
|
|
|
15111
15111
|
// throw new Error("Client not connected");
|
|
15112
15112
|
// }
|
|
15113
15113
|
const transaction = new KokimokiTransaction(this);
|
|
15114
|
-
await handler(transaction);
|
|
15114
|
+
const returnValue = await handler(transaction);
|
|
15115
15115
|
const { updates, consumedMessages } = await transaction.getUpdates();
|
|
15116
15116
|
if (!updates.length) {
|
|
15117
|
-
return;
|
|
15117
|
+
return returnValue;
|
|
15118
15118
|
}
|
|
15119
15119
|
// Construct buffers
|
|
15120
15120
|
const remoteUpdateWriter = new WsMessageWriter();
|
|
@@ -15177,6 +15177,7 @@ class KokimokiClient extends EventEmitter$1 {
|
|
|
15177
15177
|
const reader = new WsMessageReader(localBuffer);
|
|
15178
15178
|
this.handleRoomUpdateMessage(reader);
|
|
15179
15179
|
}
|
|
15180
|
+
return returnValue;
|
|
15180
15181
|
}
|
|
15181
15182
|
async close() {
|
|
15182
15183
|
this._autoReconnect = false;
|
|
@@ -15245,13 +15246,13 @@ class KokimokiClient extends EventEmitter$1 {
|
|
|
15245
15246
|
* @param metadata
|
|
15246
15247
|
* @returns
|
|
15247
15248
|
*/
|
|
15248
|
-
async insertLeaderboardEntry(leaderboardName,
|
|
15249
|
+
async insertLeaderboardEntry(leaderboardName, sortDir, score, metadata, privateMetadata) {
|
|
15249
15250
|
const res = await fetch(`${this._apiUrl}/leaderboard-entries`, {
|
|
15250
15251
|
method: "POST",
|
|
15251
15252
|
headers: this.apiHeaders,
|
|
15252
15253
|
body: JSON.stringify({
|
|
15253
15254
|
leaderboardName,
|
|
15254
|
-
|
|
15255
|
+
sortDir,
|
|
15255
15256
|
score,
|
|
15256
15257
|
metadata,
|
|
15257
15258
|
privateMetadata,
|
|
@@ -15268,13 +15269,13 @@ class KokimokiClient extends EventEmitter$1 {
|
|
|
15268
15269
|
* @param privateMetadata Can only be read using the leaderboard API
|
|
15269
15270
|
* @returns
|
|
15270
15271
|
*/
|
|
15271
|
-
async upsertLeaderboardEntry(leaderboardName,
|
|
15272
|
+
async upsertLeaderboardEntry(leaderboardName, sortDir, score, metadata, privateMetadata) {
|
|
15272
15273
|
const res = await fetch(`${this._apiUrl}/leaderboard-entries`, {
|
|
15273
15274
|
method: "POST",
|
|
15274
15275
|
headers: this.apiHeaders,
|
|
15275
15276
|
body: JSON.stringify({
|
|
15276
15277
|
leaderboardName,
|
|
15277
|
-
|
|
15278
|
+
sortDir,
|
|
15278
15279
|
score,
|
|
15279
15280
|
metadata,
|
|
15280
15281
|
privateMetadata,
|
|
@@ -15290,8 +15291,18 @@ class KokimokiClient extends EventEmitter$1 {
|
|
|
15290
15291
|
* @param limit
|
|
15291
15292
|
* @returns
|
|
15292
15293
|
*/
|
|
15293
|
-
async listLeaderboardEntries(leaderboardName,
|
|
15294
|
-
const res = await fetch(`${this._apiUrl}/leaderboard-entries?leaderboardName=${leaderboardName}&
|
|
15294
|
+
async listLeaderboardEntries(leaderboardName, sortDir, skip = 0, limit = 100) {
|
|
15295
|
+
const res = await fetch(`${this._apiUrl}/leaderboard-entries?leaderboardName=${leaderboardName}&sortDir=${sortDir}&skip=${skip}&limit=${limit}`);
|
|
15296
|
+
return await res.json();
|
|
15297
|
+
}
|
|
15298
|
+
/**
|
|
15299
|
+
* Get best entry in leaderboard for a client, defaults to current client
|
|
15300
|
+
* @param leaderboardName
|
|
15301
|
+
* @param sortDir
|
|
15302
|
+
* @param clientId
|
|
15303
|
+
*/
|
|
15304
|
+
async getBestLeaderboardEntry(leaderboardName, sortDir, clientId) {
|
|
15305
|
+
const res = await fetch(`${this._apiUrl}/leaderboard-entries/best?leaderboardName=${leaderboardName}&sortDir=${sortDir}&clientId=${clientId || this.id}`);
|
|
15295
15306
|
return await res.json();
|
|
15296
15307
|
}
|
|
15297
15308
|
}
|