@casual-simulation/aux-records 3.2.6 → 3.2.7-alpha.6226622763
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/AIController.d.ts +1 -1
- package/AIGenerateSkyboxInterface.d.ts +1 -1
- package/AuthController.d.ts +53 -1
- package/AuthController.js +117 -1
- package/AuthController.js.map +1 -1
- package/AuthMessenger.d.ts +1 -1
- package/AuthStore.d.ts +5 -1
- package/AuthUtils.d.ts +55 -1
- package/AuthUtils.js +130 -2
- package/AuthUtils.js.map +1 -1
- package/DataRecordsController.d.ts +1 -1
- package/DataRecordsStore.d.ts +1 -1
- package/EventRecordsController.d.ts +1 -1
- package/EventRecordsController.js.map +1 -1
- package/EventRecordsStore.d.ts +1 -1
- package/FileRecordsController.d.ts +1 -1
- package/FileRecordsStore.d.ts +2 -2
- package/LivekitEvents.d.ts +1 -1
- package/MemoryRateLimiter.js +1 -1
- package/MemoryRateLimiter.js.map +1 -1
- package/MemoryStore.d.ts +2 -2
- package/MemoryStore.js +2 -0
- package/MemoryStore.js.map +1 -1
- package/PolicyController.d.ts +1 -1
- package/PolicyController.js.map +1 -1
- package/PolicyPermissions.d.ts +212 -1
- package/PolicyPermissions.js +67 -0
- package/PolicyPermissions.js.map +1 -1
- package/PolicyStore.d.ts +1 -1
- package/RateLimitController.d.ts +3 -1
- package/RateLimitController.js +2 -0
- package/RateLimitController.js.map +1 -1
- package/RecordsController.d.ts +30 -2
- package/RecordsController.js +12 -8
- package/RecordsController.js.map +1 -1
- package/{RecordsHttpServer.d.ts → RecordsServer.d.ts} +34 -5
- package/{RecordsHttpServer.js → RecordsServer.js} +133 -6
- package/RecordsServer.js.map +1 -0
- package/RecordsStore.d.ts +12 -6
- package/SubscriptionConfiguration.d.ts +479 -74
- package/SubscriptionConfiguration.js +34 -1
- package/SubscriptionConfiguration.js.map +1 -1
- package/SubscriptionController.d.ts +1 -1
- package/TestUtils.d.ts +2 -0
- package/TestUtils.js +5 -0
- package/TestUtils.js.map +1 -1
- package/Utils.d.ts +0 -10
- package/Utils.js +0 -19
- package/Utils.js.map +1 -1
- package/index.d.ts +2 -1
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/package.json +6 -3
- package/websockets/InstRecordsStore.d.ts +186 -0
- package/websockets/InstRecordsStore.js +2 -0
- package/websockets/InstRecordsStore.js.map +1 -0
- package/websockets/MemoryInstRecordsStore.d.ts +31 -0
- package/websockets/MemoryInstRecordsStore.js +310 -0
- package/websockets/MemoryInstRecordsStore.js.map +1 -0
- package/websockets/MemoryTempInstRecordsStore.d.ts +31 -0
- package/websockets/MemoryTempInstRecordsStore.js +169 -0
- package/websockets/MemoryTempInstRecordsStore.js.map +1 -0
- package/websockets/MemoryWebsocketConnectionStore.d.ts +33 -0
- package/websockets/MemoryWebsocketConnectionStore.js +169 -0
- package/websockets/MemoryWebsocketConnectionStore.js.map +1 -0
- package/websockets/MemoryWebsocketMessenger.d.ts +21 -0
- package/websockets/MemoryWebsocketMessenger.js +94 -0
- package/websockets/MemoryWebsocketMessenger.js.map +1 -0
- package/websockets/SplitInstRecordsStore.d.ts +21 -0
- package/websockets/SplitInstRecordsStore.js +186 -0
- package/websockets/SplitInstRecordsStore.js.map +1 -0
- package/websockets/TemporaryInstRecordsStore.d.ts +130 -0
- package/websockets/TemporaryInstRecordsStore.js +2 -0
- package/websockets/TemporaryInstRecordsStore.js.map +1 -0
- package/websockets/Utils.d.ts +16 -0
- package/websockets/Utils.js +26 -0
- package/websockets/Utils.js.map +1 -0
- package/websockets/WebsocketConnectionStore.d.ts +141 -0
- package/websockets/WebsocketConnectionStore.js +2 -0
- package/websockets/WebsocketConnectionStore.js.map +1 -0
- package/websockets/WebsocketController.d.ts +97 -0
- package/websockets/WebsocketController.js +707 -0
- package/websockets/WebsocketController.js.map +1 -0
- package/websockets/WebsocketMessenger.d.ts +42 -0
- package/websockets/WebsocketMessenger.js +2 -0
- package/websockets/WebsocketMessenger.js.map +1 -0
- package/websockets/index.d.ts +12 -0
- package/websockets/index.js +12 -0
- package/websockets/index.js.map +1 -0
- package/Errors.d.ts +0 -29
- package/Errors.js +0 -2
- package/Errors.js.map +0 -1
- package/RecordsHttpServer.js.map +0 -1
package/AIController.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InvalidSubscriptionTierError, NotAuthorizedError, NotLoggedInError, NotSubscribedError, NotSupportedError, ServerError, SubscriptionLimitReached } from '
|
|
1
|
+
import { InvalidSubscriptionTierError, NotAuthorizedError, NotLoggedInError, NotSubscribedError, NotSupportedError, ServerError, SubscriptionLimitReached } from '@casual-simulation/aux-common/Errors';
|
|
2
2
|
import { AIChatInterface, AIChatMessage } from './AIChatInterface';
|
|
3
3
|
import { AIGenerateSkyboxInterface, AIGenerateSkyboxInterfaceBlockadeLabsOptions } from './AIGenerateSkyboxInterface';
|
|
4
4
|
import { AIGeneratedImage, AIImageInterface } from './AIImageInterface';
|
package/AuthController.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AddressType, AuthStore, AuthUser } from './AuthStore';
|
|
2
|
-
import { ServerError } from '
|
|
2
|
+
import { ServerError } from '@casual-simulation/aux-common/Errors';
|
|
3
3
|
import { AuthMessenger } from './AuthMessenger';
|
|
4
4
|
import { RegexRule } from './Utils';
|
|
5
5
|
import { ConfigurationStore } from './ConfigurationStore';
|
|
@@ -35,6 +35,10 @@ export declare const MAX_LOGIN_REQUEST_ATTEMPTS = 5;
|
|
|
35
35
|
* The error message that should be used for invalid_key error messages.
|
|
36
36
|
*/
|
|
37
37
|
export declare const INVALID_KEY_ERROR_MESSAGE = "The session key is invalid.";
|
|
38
|
+
/**
|
|
39
|
+
* The error message that should be used for invalid_token error messages.
|
|
40
|
+
*/
|
|
41
|
+
export declare const INVALID_TOKEN_ERROR_MESSAGE = "The connection token is invalid.";
|
|
38
42
|
/**
|
|
39
43
|
* The maximum allowed length for an email address.
|
|
40
44
|
*/
|
|
@@ -60,6 +64,7 @@ export declare class AuthController {
|
|
|
60
64
|
private _validateAddress;
|
|
61
65
|
completeLogin(request: CompleteLoginRequest): Promise<CompleteLoginResult>;
|
|
62
66
|
validateSessionKey(key: string): Promise<ValidateSessionKeyResult>;
|
|
67
|
+
validateConnectionToken(token: string): Promise<ValidateConnectionTokenResult>;
|
|
63
68
|
revokeSession(request: RevokeSessionRequest): Promise<RevokeSessionResult>;
|
|
64
69
|
/**
|
|
65
70
|
* Attempts to revoke all the sessions for the specified user.
|
|
@@ -178,6 +183,10 @@ export interface CompleteLoginSuccess {
|
|
|
178
183
|
* The secret key that provides access for the session.
|
|
179
184
|
*/
|
|
180
185
|
sessionKey: string;
|
|
186
|
+
/**
|
|
187
|
+
* The connection key that provides websocket access for the session.
|
|
188
|
+
*/
|
|
189
|
+
connectionKey: string;
|
|
181
190
|
/**
|
|
182
191
|
* The unix timestamp in miliseconds that the session will expire at.
|
|
183
192
|
*/
|
|
@@ -215,6 +224,45 @@ export interface ValidateSessionKeyFailure {
|
|
|
215
224
|
errorMessage: string;
|
|
216
225
|
banReason?: AuthUser['banReason'];
|
|
217
226
|
}
|
|
227
|
+
export type ValidateConnectionTokenResult = ValidateConnectionTokenSuccess | ValidateConnectionTokenFailure;
|
|
228
|
+
export interface ValidateConnectionTokenSuccess {
|
|
229
|
+
success: true;
|
|
230
|
+
/**
|
|
231
|
+
* The ID of the user that owns the connection token.
|
|
232
|
+
*/
|
|
233
|
+
userId: string;
|
|
234
|
+
/**
|
|
235
|
+
* The ID of the session that the connection token is for.
|
|
236
|
+
*/
|
|
237
|
+
sessionId: string;
|
|
238
|
+
/**
|
|
239
|
+
* The ID that the client wants for the connection.
|
|
240
|
+
*/
|
|
241
|
+
connectionId: string;
|
|
242
|
+
/**
|
|
243
|
+
* The name of the record that the connection token was generated for.
|
|
244
|
+
*/
|
|
245
|
+
recordName: string;
|
|
246
|
+
/**
|
|
247
|
+
* The instance that the connection token was generated for.
|
|
248
|
+
*/
|
|
249
|
+
inst: string;
|
|
250
|
+
allSessionsRevokedTimeMs?: number;
|
|
251
|
+
/**
|
|
252
|
+
* The subscription ID for the user.
|
|
253
|
+
*/
|
|
254
|
+
subscriptionTier?: string;
|
|
255
|
+
/**
|
|
256
|
+
* The ID of the subscription that the user is subscribed to.
|
|
257
|
+
*/
|
|
258
|
+
subscriptionId?: string;
|
|
259
|
+
}
|
|
260
|
+
export interface ValidateConnectionTokenFailure {
|
|
261
|
+
success: false;
|
|
262
|
+
errorCode: 'unacceptable_connection_token' | 'invalid_token' | 'session_expired' | 'user_is_banned' | ServerError;
|
|
263
|
+
errorMessage: string;
|
|
264
|
+
banReason?: AuthUser['banReason'];
|
|
265
|
+
}
|
|
218
266
|
export interface RevokeSessionRequest {
|
|
219
267
|
/**
|
|
220
268
|
* The ID of the user whose session should be revoked.
|
|
@@ -342,6 +390,10 @@ export interface ReplaceSessionSuccess {
|
|
|
342
390
|
* The secret key that provides access for the session.
|
|
343
391
|
*/
|
|
344
392
|
sessionKey: string;
|
|
393
|
+
/**
|
|
394
|
+
* The connection key that provides websocket access for the session.
|
|
395
|
+
*/
|
|
396
|
+
connectionKey: string;
|
|
345
397
|
/**
|
|
346
398
|
* The unix timestamp in miliseconds that the session will expire at.
|
|
347
399
|
*/
|
package/AuthController.js
CHANGED
|
@@ -12,7 +12,8 @@ import { randomBytes } from 'tweetnacl';
|
|
|
12
12
|
import { hashHighEntropyPasswordWithSalt, hashPasswordWithSalt, verifyPasswordAgainstHashes, } from '@casual-simulation/crypto';
|
|
13
13
|
import { fromByteArray } from 'base64-js';
|
|
14
14
|
import { cleanupObject, isActiveSubscription, isStringValid, } from './Utils';
|
|
15
|
-
import { formatV1SessionKey, parseSessionKey, randomCode, } from './AuthUtils';
|
|
15
|
+
import { formatV1ConnectionKey, formatV1SessionKey, parseSessionKey, randomCode, verifyConnectionToken, } from './AuthUtils';
|
|
16
|
+
import { parseConnectionToken } from '@casual-simulation/aux-common';
|
|
16
17
|
/**
|
|
17
18
|
* The number of miliseconds that a login request should be valid for before expiration.
|
|
18
19
|
*/
|
|
@@ -45,6 +46,10 @@ export const MAX_LOGIN_REQUEST_ATTEMPTS = 5;
|
|
|
45
46
|
* The error message that should be used for invalid_key error messages.
|
|
46
47
|
*/
|
|
47
48
|
export const INVALID_KEY_ERROR_MESSAGE = 'The session key is invalid.';
|
|
49
|
+
/**
|
|
50
|
+
* The error message that should be used for invalid_token error messages.
|
|
51
|
+
*/
|
|
52
|
+
export const INVALID_TOKEN_ERROR_MESSAGE = 'The connection token is invalid.';
|
|
48
53
|
/**
|
|
49
54
|
* The maximum allowed length for an email address.
|
|
50
55
|
*/
|
|
@@ -330,6 +335,7 @@ export class AuthController {
|
|
|
330
335
|
}
|
|
331
336
|
const sessionId = fromByteArray(randomBytes(SESSION_ID_BYTE_LENGTH));
|
|
332
337
|
const sessionSecret = fromByteArray(randomBytes(SESSION_SECRET_BYTE_LENGTH));
|
|
338
|
+
const connectionSecret = fromByteArray(randomBytes(SESSION_SECRET_BYTE_LENGTH));
|
|
333
339
|
const now = Date.now();
|
|
334
340
|
const session = {
|
|
335
341
|
userId: loginRequest.userId,
|
|
@@ -338,6 +344,7 @@ export class AuthController {
|
|
|
338
344
|
// sessionSecret and sessionId are high-entropy (128 bits of random data)
|
|
339
345
|
// so we should use a hash that is optimized for high-entropy inputs.
|
|
340
346
|
secretHash: hashHighEntropyPasswordWithSalt(sessionSecret, sessionId),
|
|
347
|
+
connectionSecret: connectionSecret,
|
|
341
348
|
grantedTimeMs: now,
|
|
342
349
|
revokeTimeMs: null,
|
|
343
350
|
expireTimeMs: now + SESSION_LIFETIME_MS,
|
|
@@ -351,6 +358,7 @@ export class AuthController {
|
|
|
351
358
|
success: true,
|
|
352
359
|
userId: session.userId,
|
|
353
360
|
sessionKey: formatV1SessionKey(loginRequest.userId, sessionId, sessionSecret, session.expireTimeMs),
|
|
361
|
+
connectionKey: formatV1ConnectionKey(loginRequest.userId, sessionId, connectionSecret, session.expireTimeMs),
|
|
354
362
|
expireTimeMs: session.expireTimeMs,
|
|
355
363
|
};
|
|
356
364
|
}
|
|
@@ -468,6 +476,111 @@ export class AuthController {
|
|
|
468
476
|
}
|
|
469
477
|
});
|
|
470
478
|
}
|
|
479
|
+
validateConnectionToken(token) {
|
|
480
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
481
|
+
if (typeof token !== 'string' || token === '') {
|
|
482
|
+
return {
|
|
483
|
+
success: false,
|
|
484
|
+
errorCode: 'unacceptable_connection_token',
|
|
485
|
+
errorMessage: 'The given connection token is invalid. It must be a correctly formatted string.',
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
try {
|
|
489
|
+
const tokenValues = parseConnectionToken(token);
|
|
490
|
+
if (!tokenValues) {
|
|
491
|
+
console.log('[AuthController] [validateConnectionToken] Could not parse token.');
|
|
492
|
+
return {
|
|
493
|
+
success: false,
|
|
494
|
+
errorCode: 'unacceptable_connection_token',
|
|
495
|
+
errorMessage: 'The given connection token is invalid. It must be a correctly formatted string.',
|
|
496
|
+
};
|
|
497
|
+
}
|
|
498
|
+
const [userId, sessionId, connectionId, recordName, inst, hash] = tokenValues;
|
|
499
|
+
const session = yield this._store.findSession(userId, sessionId);
|
|
500
|
+
if (!session) {
|
|
501
|
+
console.log('[AuthController] [validateConnectionToken] Could not find session.');
|
|
502
|
+
return {
|
|
503
|
+
success: false,
|
|
504
|
+
errorCode: 'invalid_token',
|
|
505
|
+
errorMessage: INVALID_TOKEN_ERROR_MESSAGE,
|
|
506
|
+
};
|
|
507
|
+
}
|
|
508
|
+
if (!verifyConnectionToken(token, session.connectionSecret)) {
|
|
509
|
+
console.log('[AuthController] [validateConnectionToken] Connection token was invalid.');
|
|
510
|
+
return {
|
|
511
|
+
success: false,
|
|
512
|
+
errorCode: 'invalid_token',
|
|
513
|
+
errorMessage: INVALID_TOKEN_ERROR_MESSAGE,
|
|
514
|
+
};
|
|
515
|
+
}
|
|
516
|
+
const now = Date.now();
|
|
517
|
+
if (session.revokeTimeMs && now >= session.revokeTimeMs) {
|
|
518
|
+
console.log('[AuthController] [validateConnectionToken] Session has been revoked.');
|
|
519
|
+
return {
|
|
520
|
+
success: false,
|
|
521
|
+
errorCode: 'invalid_token',
|
|
522
|
+
errorMessage: INVALID_TOKEN_ERROR_MESSAGE,
|
|
523
|
+
};
|
|
524
|
+
}
|
|
525
|
+
if (now >= session.expireTimeMs) {
|
|
526
|
+
console.log('[AuthController] [validateConnectionToken] Session has expired.');
|
|
527
|
+
return {
|
|
528
|
+
success: false,
|
|
529
|
+
errorCode: 'session_expired',
|
|
530
|
+
errorMessage: 'The session has expired.',
|
|
531
|
+
};
|
|
532
|
+
}
|
|
533
|
+
const userInfo = yield this._store.findUser(userId);
|
|
534
|
+
if (!userInfo) {
|
|
535
|
+
console.log('[AuthController] [validateConnectionToken] Unable to find user!');
|
|
536
|
+
return {
|
|
537
|
+
success: false,
|
|
538
|
+
errorCode: 'invalid_token',
|
|
539
|
+
errorMessage: INVALID_TOKEN_ERROR_MESSAGE,
|
|
540
|
+
};
|
|
541
|
+
}
|
|
542
|
+
else {
|
|
543
|
+
if (typeof userInfo.allSessionRevokeTimeMs === 'number') {
|
|
544
|
+
if (userInfo.allSessionRevokeTimeMs >= session.grantedTimeMs) {
|
|
545
|
+
return {
|
|
546
|
+
success: false,
|
|
547
|
+
errorCode: 'invalid_token',
|
|
548
|
+
errorMessage: INVALID_TOKEN_ERROR_MESSAGE,
|
|
549
|
+
};
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
if (userInfo.banTimeMs > 0) {
|
|
553
|
+
return {
|
|
554
|
+
success: false,
|
|
555
|
+
errorCode: 'user_is_banned',
|
|
556
|
+
errorMessage: 'The user has been banned.',
|
|
557
|
+
banReason: userInfo.banReason,
|
|
558
|
+
};
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
const { subscriptionId, subscriptionTier } = yield this._getSubscriptionInfo(userInfo);
|
|
562
|
+
return {
|
|
563
|
+
success: true,
|
|
564
|
+
userId: session.userId,
|
|
565
|
+
sessionId: session.sessionId,
|
|
566
|
+
connectionId: connectionId,
|
|
567
|
+
recordName: recordName,
|
|
568
|
+
inst: inst,
|
|
569
|
+
allSessionsRevokedTimeMs: userInfo.allSessionRevokeTimeMs,
|
|
570
|
+
subscriptionId: subscriptionId !== null && subscriptionId !== void 0 ? subscriptionId : undefined,
|
|
571
|
+
subscriptionTier: subscriptionTier !== null && subscriptionTier !== void 0 ? subscriptionTier : undefined,
|
|
572
|
+
};
|
|
573
|
+
}
|
|
574
|
+
catch (err) {
|
|
575
|
+
console.error('[AuthController] Error ocurred while validating a connection token', err);
|
|
576
|
+
return {
|
|
577
|
+
success: false,
|
|
578
|
+
errorCode: 'server_error',
|
|
579
|
+
errorMessage: 'A server error occurred.',
|
|
580
|
+
};
|
|
581
|
+
}
|
|
582
|
+
});
|
|
583
|
+
}
|
|
471
584
|
revokeSession(request) {
|
|
472
585
|
return __awaiter(this, void 0, void 0, function* () {
|
|
473
586
|
if (typeof request.userId !== 'string' || request.userId === '') {
|
|
@@ -615,11 +728,13 @@ export class AuthController {
|
|
|
615
728
|
const now = Date.now();
|
|
616
729
|
const newSessionId = fromByteArray(randomBytes(SESSION_ID_BYTE_LENGTH));
|
|
617
730
|
const newSessionSecret = fromByteArray(randomBytes(SESSION_SECRET_BYTE_LENGTH));
|
|
731
|
+
const newConnectionSecret = fromByteArray(randomBytes(SESSION_SECRET_BYTE_LENGTH));
|
|
618
732
|
const newSession = {
|
|
619
733
|
userId: userId,
|
|
620
734
|
sessionId: newSessionId,
|
|
621
735
|
requestId: null,
|
|
622
736
|
secretHash: hashPasswordWithSalt(newSessionSecret, newSessionId),
|
|
737
|
+
connectionSecret: newConnectionSecret,
|
|
623
738
|
grantedTimeMs: now,
|
|
624
739
|
revokeTimeMs: null,
|
|
625
740
|
expireTimeMs: now + SESSION_LIFETIME_MS,
|
|
@@ -641,6 +756,7 @@ export class AuthController {
|
|
|
641
756
|
success: true,
|
|
642
757
|
userId: userId,
|
|
643
758
|
sessionKey: formatV1SessionKey(userId, newSessionId, newSessionSecret, newSession.expireTimeMs),
|
|
759
|
+
connectionKey: formatV1ConnectionKey(userId, newSessionId, newConnectionSecret, newSession.expireTimeMs),
|
|
644
760
|
expireTimeMs: newSession.expireTimeMs,
|
|
645
761
|
};
|
|
646
762
|
}
|
package/AuthController.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthController.js","sourceRoot":"","sources":["AuthController.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AuthController.js","sourceRoot":"","sources":["AuthController.ts"],"names":[],"mappings":"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"}
|
package/AuthMessenger.d.ts
CHANGED
package/AuthStore.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RegexRule } from './Utils';
|
|
2
|
-
import { ServerError } from '
|
|
2
|
+
import { ServerError } from '@casual-simulation/aux-common/Errors';
|
|
3
3
|
/**
|
|
4
4
|
* Defines an interface that represents an auth store.
|
|
5
5
|
*/
|
|
@@ -271,6 +271,10 @@ export interface AuthSession {
|
|
|
271
271
|
* The hash of the token that provides access to this session.
|
|
272
272
|
*/
|
|
273
273
|
secretHash: string;
|
|
274
|
+
/**
|
|
275
|
+
* The secret of the token that provides connection access to this session.
|
|
276
|
+
*/
|
|
277
|
+
connectionSecret: string;
|
|
274
278
|
/**
|
|
275
279
|
* The unix timestamp in miliseconds that the session was granted at.
|
|
276
280
|
*/
|
package/AuthUtils.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export declare function randomCode(): string;
|
|
|
15
15
|
*/
|
|
16
16
|
export declare function formatV1SessionKey(userId: string, sessionId: string, sessionSecret: string, expireTimeMs: number): string;
|
|
17
17
|
/**
|
|
18
|
-
* Parses the given session
|
|
18
|
+
* Parses the given session key into a user ID and session ID, and session secret array.
|
|
19
19
|
* Returns null if the key cannot be parsed.
|
|
20
20
|
* @param key The key to parse.
|
|
21
21
|
*/
|
|
@@ -36,6 +36,36 @@ export declare function parseV1SessionKey(key: string): [
|
|
|
36
36
|
sessionSecret: string,
|
|
37
37
|
expireTimeMs: number
|
|
38
38
|
];
|
|
39
|
+
/**
|
|
40
|
+
* Formats the given user ID, session ID, connection secret, and expiration time into a key that is used to generate connection tokens.
|
|
41
|
+
* @param userId The ID of the user.
|
|
42
|
+
* @param sessionId The ID of the session.
|
|
43
|
+
* @param sessionSecret The secret for the connections.
|
|
44
|
+
* @param expireTimeMs The unix timestamp that the key expires at.
|
|
45
|
+
*/
|
|
46
|
+
export declare function formatV1ConnectionKey(userId: string, sessionId: string, connectionSecret: string, expireTimeMs: number): string;
|
|
47
|
+
/**
|
|
48
|
+
* Parses the given connection key into a user ID and session ID, and connection secret array.
|
|
49
|
+
* Returns null if the key cannot be parsed.
|
|
50
|
+
* @param key The key to parse.
|
|
51
|
+
*/
|
|
52
|
+
export declare function parseConnectionKey(key: string | null): [
|
|
53
|
+
userId: string,
|
|
54
|
+
sessionId: string,
|
|
55
|
+
connectionSecret: string,
|
|
56
|
+
expireTimeMs: number
|
|
57
|
+
];
|
|
58
|
+
/**
|
|
59
|
+
* Parses a version 1 session key into a user ID, session ID, session secret, and expiration time.
|
|
60
|
+
* Returns null if the key cannot be parsed or if it is not a V1 key.
|
|
61
|
+
* @param key The key to parse.
|
|
62
|
+
*/
|
|
63
|
+
export declare function parseV1ConnectionKey(key: string): [
|
|
64
|
+
userId: string,
|
|
65
|
+
sessionId: string,
|
|
66
|
+
connectionSecret: string,
|
|
67
|
+
expireTimeMs: number
|
|
68
|
+
];
|
|
39
69
|
/**
|
|
40
70
|
* Formats the given OpenAI Key into a string that is detectable as an OpenAI Key.
|
|
41
71
|
* @param apiKey The API Key that should be formatted.
|
|
@@ -51,4 +81,28 @@ export declare function isOpenAiKey(apiKey: string): boolean;
|
|
|
51
81
|
* @param key The key that should be parsed.
|
|
52
82
|
*/
|
|
53
83
|
export declare function parseOpenAiKey(key: string): [key: string];
|
|
84
|
+
/**
|
|
85
|
+
* Generates a new connection token from the given key, connection ID, and device ID.
|
|
86
|
+
*
|
|
87
|
+
* Returns null if the key cannot be parsed.
|
|
88
|
+
* @param key The connection key that should be used to generate the token.
|
|
89
|
+
* @param connectionId The connection ID.
|
|
90
|
+
* @param deviceId The device ID.
|
|
91
|
+
* @param inst The ID of the instance that the connection is for.
|
|
92
|
+
*/
|
|
93
|
+
export declare function generateV1ConnectionToken(key: string, connectionId: string, recordName: string, inst: string): string;
|
|
94
|
+
/**
|
|
95
|
+
* Calculates the SHA-256 HMAC of the given connection ID, record name, and inst using the given connection secret.
|
|
96
|
+
* @param connectionSecret The connection secret.
|
|
97
|
+
* @param connectionId The ID of the connection.
|
|
98
|
+
* @param recordName The name of the record.
|
|
99
|
+
* @param inst The inst.
|
|
100
|
+
*/
|
|
101
|
+
export declare function v1ConnectionTokenHmac(connectionSecret: string, connectionId: string, recordName: string, inst: string): string;
|
|
102
|
+
/**
|
|
103
|
+
* Validates whether the given connection token is valid and was generated from the given connection key.
|
|
104
|
+
* @param connectionToken The connection token to validate.
|
|
105
|
+
* @param connectionSecret The secret for the connection.
|
|
106
|
+
*/
|
|
107
|
+
export declare function verifyConnectionToken(connectionToken: string, connectionSecret: string): boolean;
|
|
54
108
|
//# sourceMappingURL=AuthUtils.d.ts.map
|
package/AuthUtils.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { padStart } from 'lodash';
|
|
2
2
|
import { randomBytes } from 'tweetnacl';
|
|
3
|
-
import { fromBase64String, toBase64String } from '
|
|
3
|
+
import { fromBase64String, toBase64String, parseV1ConnectionToken, formatV1ConnectionToken, } from '@casual-simulation/aux-common';
|
|
4
|
+
import { sha256, hmac } from 'hash.js';
|
|
5
|
+
import { toByteArray } from 'base64-js';
|
|
4
6
|
/**
|
|
5
7
|
* The number of characters that random codes should contain.
|
|
6
8
|
*/
|
|
@@ -25,7 +27,7 @@ export function formatV1SessionKey(userId, sessionId, sessionSecret, expireTimeM
|
|
|
25
27
|
return `vSK1.${toBase64String(userId)}.${toBase64String(sessionId)}.${toBase64String(sessionSecret)}.${toBase64String(expireTimeMs.toString())}`;
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
28
|
-
* Parses the given session
|
|
30
|
+
* Parses the given session key into a user ID and session ID, and session secret array.
|
|
29
31
|
* Returns null if the key cannot be parsed.
|
|
30
32
|
* @param key The key to parse.
|
|
31
33
|
*/
|
|
@@ -83,6 +85,75 @@ export function parseV1SessionKey(key) {
|
|
|
83
85
|
return null;
|
|
84
86
|
}
|
|
85
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Formats the given user ID, session ID, connection secret, and expiration time into a key that is used to generate connection tokens.
|
|
90
|
+
* @param userId The ID of the user.
|
|
91
|
+
* @param sessionId The ID of the session.
|
|
92
|
+
* @param sessionSecret The secret for the connections.
|
|
93
|
+
* @param expireTimeMs The unix timestamp that the key expires at.
|
|
94
|
+
*/
|
|
95
|
+
export function formatV1ConnectionKey(userId, sessionId, connectionSecret, expireTimeMs) {
|
|
96
|
+
return `vCK1.${toBase64String(userId)}.${toBase64String(sessionId)}.${toBase64String(connectionSecret)}.${toBase64String(expireTimeMs.toString())}`;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Parses the given connection key into a user ID and session ID, and connection secret array.
|
|
100
|
+
* Returns null if the key cannot be parsed.
|
|
101
|
+
* @param key The key to parse.
|
|
102
|
+
*/
|
|
103
|
+
export function parseConnectionKey(key) {
|
|
104
|
+
return parseV1ConnectionKey(key);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Parses a version 1 session key into a user ID, session ID, session secret, and expiration time.
|
|
108
|
+
* Returns null if the key cannot be parsed or if it is not a V1 key.
|
|
109
|
+
* @param key The key to parse.
|
|
110
|
+
*/
|
|
111
|
+
export function parseV1ConnectionKey(key) {
|
|
112
|
+
if (!key) {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
if (!key.startsWith('vCK1.')) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
const withoutVersion = key.slice('vCK1.'.length);
|
|
119
|
+
let periodAfterUserId = withoutVersion.indexOf('.');
|
|
120
|
+
if (periodAfterUserId < 0) {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
const userIdBase64 = withoutVersion.slice(0, periodAfterUserId);
|
|
124
|
+
const sessionIdPlusPassword = withoutVersion.slice(periodAfterUserId + 1);
|
|
125
|
+
if (userIdBase64.length <= 0 || sessionIdPlusPassword.length <= 0) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
const periodAfterSessionId = sessionIdPlusPassword.indexOf('.');
|
|
129
|
+
if (periodAfterSessionId < 0) {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
const sessionIdBase64 = sessionIdPlusPassword.slice(0, periodAfterSessionId);
|
|
133
|
+
const passwordPlusExpireTime = sessionIdPlusPassword.slice(periodAfterSessionId + 1);
|
|
134
|
+
if (sessionIdBase64.length <= 0 || passwordPlusExpireTime.length <= 0) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
const periodAfterPassword = passwordPlusExpireTime.indexOf('.');
|
|
138
|
+
if (periodAfterPassword < 0) {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
const passwordBase64 = passwordPlusExpireTime.slice(0, periodAfterPassword);
|
|
142
|
+
const expireTimeBase64 = passwordPlusExpireTime.slice(periodAfterPassword + 1);
|
|
143
|
+
if (passwordBase64.length <= 0 || expireTimeBase64.length <= 0) {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
try {
|
|
147
|
+
const userId = fromBase64String(userIdBase64);
|
|
148
|
+
const sessionId = fromBase64String(sessionIdBase64);
|
|
149
|
+
const password = fromBase64String(passwordBase64);
|
|
150
|
+
const expireTime = parseInt(fromBase64String(expireTimeBase64));
|
|
151
|
+
return [userId, sessionId, password, expireTime];
|
|
152
|
+
}
|
|
153
|
+
catch (err) {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
86
157
|
/**
|
|
87
158
|
* Formats the given OpenAI Key into a string that is detectable as an OpenAI Key.
|
|
88
159
|
* @param apiKey The API Key that should be formatted.
|
|
@@ -111,4 +182,61 @@ export function parseOpenAiKey(key) {
|
|
|
111
182
|
const withoutVersion = key.slice('vAI1.'.length);
|
|
112
183
|
return [fromBase64String(withoutVersion)];
|
|
113
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Generates a new connection token from the given key, connection ID, and device ID.
|
|
187
|
+
*
|
|
188
|
+
* Returns null if the key cannot be parsed.
|
|
189
|
+
* @param key The connection key that should be used to generate the token.
|
|
190
|
+
* @param connectionId The connection ID.
|
|
191
|
+
* @param deviceId The device ID.
|
|
192
|
+
* @param inst The ID of the instance that the connection is for.
|
|
193
|
+
*/
|
|
194
|
+
export function generateV1ConnectionToken(key, connectionId, recordName, inst) {
|
|
195
|
+
const parsed = parseConnectionKey(key);
|
|
196
|
+
if (!parsed) {
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
const [userId, sessionId, connectionSecret, expireTimeMs] = parsed;
|
|
200
|
+
const hashHex = v1ConnectionTokenHmac(connectionSecret, connectionId, recordName, inst);
|
|
201
|
+
return formatV1ConnectionToken(userId, sessionId, connectionId, recordName, inst, hashHex);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Calculates the SHA-256 HMAC of the given connection ID, record name, and inst using the given connection secret.
|
|
205
|
+
* @param connectionSecret The connection secret.
|
|
206
|
+
* @param connectionId The ID of the connection.
|
|
207
|
+
* @param recordName The name of the record.
|
|
208
|
+
* @param inst The inst.
|
|
209
|
+
*/
|
|
210
|
+
export function v1ConnectionTokenHmac(connectionSecret, connectionId, recordName, inst) {
|
|
211
|
+
const hash = hmac(sha256, toByteArray(connectionSecret), 'hex');
|
|
212
|
+
hash.update(connectionId);
|
|
213
|
+
hash.update(recordName);
|
|
214
|
+
hash.update(inst);
|
|
215
|
+
const hashHex = hash.digest('hex');
|
|
216
|
+
return hashHex;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Validates whether the given connection token is valid and was generated from the given connection key.
|
|
220
|
+
* @param connectionToken The connection token to validate.
|
|
221
|
+
* @param connectionSecret The secret for the connection.
|
|
222
|
+
*/
|
|
223
|
+
export function verifyConnectionToken(connectionToken, connectionSecret) {
|
|
224
|
+
if (!connectionToken || !connectionSecret) {
|
|
225
|
+
return false;
|
|
226
|
+
}
|
|
227
|
+
try {
|
|
228
|
+
const parsed = parseV1ConnectionToken(connectionToken);
|
|
229
|
+
if (parsed) {
|
|
230
|
+
const [userId, sessionId, connectionId, recordName, inst, hash] = parsed;
|
|
231
|
+
const expectedHash = v1ConnectionTokenHmac(connectionSecret, connectionId, recordName, inst);
|
|
232
|
+
return hash === expectedHash;
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
catch (_a) {
|
|
239
|
+
return false;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
114
242
|
//# sourceMappingURL=AuthUtils.js.map
|