@casual-simulation/aux-common 3.4.6-alpha.14601027727 → 3.5.0-alpha.15117651144
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/AAGUID.d.ts +11 -0
- package/AAGUID.js +116 -0
- package/AAGUID.js.map +1 -0
- package/BlobPolyfill.js +20 -31
- package/BlobPolyfill.js.map +1 -1
- package/bots/AuxStateHelpers.js +9 -3
- package/bots/AuxStateHelpers.js.map +1 -1
- package/bots/Bot.d.ts +1 -1
- package/bots/Bot.js +10 -1
- package/bots/Bot.js.map +1 -1
- package/bots/BotCalculationContext.js.map +1 -1
- package/bots/BotCalculations.d.ts +3 -3
- package/bots/BotCalculations.js +5 -1
- package/bots/BotCalculations.js.map +1 -1
- package/bots/BotEvents.d.ts +20 -2
- package/bots/BotEvents.js +84 -17
- package/bots/BotEvents.js.map +1 -1
- package/bots/StateUpdatedEvent.js.map +1 -1
- package/bots/StoredAux.d.ts +1 -1
- package/bots/StoredAux.js.map +1 -1
- package/bots/test/BotCalculationContextTests.d.ts +0 -1
- package/bots/test/BotCalculationContextTests.js.map +1 -1
- package/common/PolicyPermissions.d.ts +224 -3
- package/common/PolicyPermissions.js +46 -0
- package/common/PolicyPermissions.js.map +1 -1
- package/common/RemoteActions.js +19 -6
- package/common/RemoteActions.js.map +1 -1
- package/common/StatusUpdateUtils.js +4 -1
- package/common/StatusUpdateUtils.js.map +1 -1
- package/common/Version.d.ts +22 -0
- package/common/Version.js +75 -0
- package/common/Version.js.map +1 -0
- package/common/WebConfig.d.ts +6 -6
- package/common/index.d.ts +1 -0
- package/common/index.js +1 -0
- package/common/index.js.map +1 -1
- package/documents/RemoteYjsSharedDocument.js +30 -54
- package/documents/RemoteYjsSharedDocument.js.map +1 -1
- package/documents/SharedDocumentFactories.js +7 -18
- package/documents/SharedDocumentFactories.js.map +1 -1
- package/documents/YjsSharedDocument.js +1 -12
- package/documents/YjsSharedDocument.js.map +1 -1
- package/documents/test/DocumentTests.js +15 -24
- package/documents/test/DocumentTests.js.map +1 -1
- package/forms/FormError.d.ts +43 -0
- package/forms/FormError.js +56 -0
- package/forms/FormError.js.map +1 -0
- package/forms/index.d.ts +2 -0
- package/forms/index.js +19 -0
- package/forms/index.js.map +1 -0
- package/http/GenericHttpInterface.d.ts +2 -1
- package/http/GenericHttpInterface.js.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/package.json +7 -7
- package/partitions/AuxPartition.js +5 -1
- package/partitions/AuxPartition.js.map +1 -1
- package/partitions/AuxPartitionFactories.js +7 -18
- package/partitions/AuxPartitionFactories.js.map +1 -1
- package/partitions/MemoryPartition.js +25 -41
- package/partitions/MemoryPartition.js.map +1 -1
- package/partitions/OtherPlayersPartition.js +140 -159
- package/partitions/OtherPlayersPartition.js.map +1 -1
- package/partitions/PartitionAuthSource.d.ts +4 -0
- package/partitions/PartitionUtils.js +1 -1
- package/partitions/PartitionUtils.js.map +1 -1
- package/partitions/ProxyBridgePartition.js +32 -47
- package/partitions/ProxyBridgePartition.js.map +1 -1
- package/partitions/RemoteYjsPartition.js +235 -221
- package/partitions/RemoteYjsPartition.js.map +1 -1
- package/partitions/YjsPartition.js +215 -205
- package/partitions/YjsPartition.js.map +1 -1
- package/records/AuthUtils.d.ts +175 -0
- package/records/AuthUtils.js +335 -0
- package/records/AuthUtils.js.map +1 -0
- package/records/RecordKeys.d.ts +52 -0
- package/records/RecordKeys.js +131 -0
- package/records/RecordKeys.js.map +1 -0
- package/records/WebPush.d.ts +2 -0
- package/records/WebPush.js +19 -0
- package/records/WebPush.js.map +1 -0
- package/records/index.d.ts +4 -0
- package/records/index.js +21 -0
- package/records/index.js.map +1 -0
- package/rpc/ErrorCodes.d.ts +2 -2
- package/rpc/ErrorCodes.js.map +1 -1
- package/rpc/GenericRPCInterface.js +8 -4
- package/rpc/GenericRPCInterface.js.map +1 -1
- package/test/TestHelpers.js +2 -13
- package/test/TestHelpers.js.map +1 -1
- package/utils.d.ts +14 -0
- package/utils.js +18 -0
- package/utils.js.map +1 -1
- package/websockets/AuthenticatedConnectionClient.js +39 -10
- package/websockets/AuthenticatedConnectionClient.js.map +1 -1
- package/websockets/InstRecordsClient.js +18 -8
- package/websockets/InstRecordsClient.js.map +1 -1
- package/websockets/MemoryConnectionClient.d.ts +1 -1
- package/websockets/Utils.d.ts +33 -0
- package/websockets/Utils.js +82 -0
- package/websockets/Utils.js.map +1 -0
- package/websockets/WebsocketEvents.d.ts +18 -17
- package/websockets/WebsocketEvents.js.map +1 -1
- package/websockets/index.d.ts +1 -0
- package/websockets/index.js +1 -0
- package/websockets/index.js.map +1 -1
- package/yjs/YjsHelpers.js.map +1 -1
- package/yjs/YjsIndexedDBPersistence.js +53 -78
- package/yjs/YjsIndexedDBPersistence.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YjsPartition.js","sourceRoot":"","sources":["YjsPartition.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YjsPartition.js","sourceRoot":"","sources":["YjsPartition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines an interface that represents the role that a user can have.
|
|
3
|
+
*
|
|
4
|
+
* - "none" means that the user has no special permissions.
|
|
5
|
+
* - "superUser" means that the user has additional permissions that only special users should have.
|
|
6
|
+
* - "system" means that the user is the system and is performing a system operation.
|
|
7
|
+
* - "moderator" means that the user is a moderator and has additional permissions to moderate content.
|
|
8
|
+
*/
|
|
9
|
+
export type UserRole = 'none' | 'superUser' | 'system' | 'moderator';
|
|
10
|
+
/**
|
|
11
|
+
* The default lifetime at which a session key should be refreshed.
|
|
12
|
+
*/
|
|
13
|
+
export declare const REFRESH_LIFETIME_MS: number;
|
|
14
|
+
/**
|
|
15
|
+
* Formats the given user ID, session ID, session secret, and expiration time into a key that is used to authenticate a user to a particular session.
|
|
16
|
+
* @param userId The ID of the user.
|
|
17
|
+
* @param sessionId The ID of the session.
|
|
18
|
+
* @param sessionSecret The secret for the session.
|
|
19
|
+
* @param expireTimeMs The unix timestamp that the key expires at.
|
|
20
|
+
*/
|
|
21
|
+
export declare function formatV1SessionKey(userId: string, sessionId: string, sessionSecret: string, expireTimeMs: number | null): string;
|
|
22
|
+
/**
|
|
23
|
+
* Parses the given session key into a user ID and session ID, and session secret array.
|
|
24
|
+
* Returns null if the key cannot be parsed.
|
|
25
|
+
* @param key The key to parse.
|
|
26
|
+
*/
|
|
27
|
+
export declare function parseSessionKey(key: string | null): [
|
|
28
|
+
userId: string,
|
|
29
|
+
sessionId: string,
|
|
30
|
+
sessionSecret: string,
|
|
31
|
+
expireTimeMs: number
|
|
32
|
+
];
|
|
33
|
+
/**
|
|
34
|
+
* Parses a version 1 session key into a user ID, session ID, session secret, and expiration time.
|
|
35
|
+
* Returns null if the key cannot be parsed or if it is not a V1 key.
|
|
36
|
+
* @param key The key to parse.
|
|
37
|
+
*/
|
|
38
|
+
export declare function parseV1SessionKey(key: string): [
|
|
39
|
+
userId: string,
|
|
40
|
+
sessionId: string,
|
|
41
|
+
sessionSecret: string,
|
|
42
|
+
expireTimeMs: number
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* Formats the given user ID, session ID, connection secret, and expiration time into a key that is used to generate connection tokens.
|
|
46
|
+
* @param userId The ID of the user.
|
|
47
|
+
* @param sessionId The ID of the session.
|
|
48
|
+
* @param sessionSecret The secret for the connections.
|
|
49
|
+
* @param expireTimeMs The unix timestamp that the key expires at.
|
|
50
|
+
*/
|
|
51
|
+
export declare function formatV1ConnectionKey(userId: string, sessionId: string, connectionSecret: string, expireTimeMs: number | null): string;
|
|
52
|
+
/**
|
|
53
|
+
* Parses the given connection key into a user ID and session ID, and connection secret array.
|
|
54
|
+
* Returns null if the key cannot be parsed.
|
|
55
|
+
* @param key The key to parse.
|
|
56
|
+
*/
|
|
57
|
+
export declare function parseConnectionKey(key: string | null): [
|
|
58
|
+
userId: string,
|
|
59
|
+
sessionId: string,
|
|
60
|
+
connectionSecret: string,
|
|
61
|
+
expireTimeMs: number
|
|
62
|
+
];
|
|
63
|
+
/**
|
|
64
|
+
* Parses a version 1 session key into a user ID, session ID, session secret, and expiration time.
|
|
65
|
+
* Returns null if the key cannot be parsed or if it is not a V1 key.
|
|
66
|
+
* @param key The key to parse.
|
|
67
|
+
*/
|
|
68
|
+
export declare function parseV1ConnectionKey(key: string): [
|
|
69
|
+
userId: string,
|
|
70
|
+
sessionId: string,
|
|
71
|
+
connectionSecret: string,
|
|
72
|
+
expireTimeMs: number
|
|
73
|
+
];
|
|
74
|
+
/**
|
|
75
|
+
* Formats the given OpenAI Key into a string that is detectable as an OpenAI Key.
|
|
76
|
+
* @param apiKey The API Key that should be formatted.
|
|
77
|
+
*/
|
|
78
|
+
export declare function formatV1OpenAiKey(apiKey: string): string;
|
|
79
|
+
/**
|
|
80
|
+
* Determines if the given string represents an OpenAI Key.
|
|
81
|
+
* @param apiKey The API Key.
|
|
82
|
+
*/
|
|
83
|
+
export declare function isOpenAiKey(apiKey: string): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Parses the given OpenAI Key.
|
|
86
|
+
* @param key The key that should be parsed.
|
|
87
|
+
*/
|
|
88
|
+
export declare function parseOpenAiKey(key: string): [key: string];
|
|
89
|
+
/**
|
|
90
|
+
* Generates a new connection token from the given key, connection ID, and device ID.
|
|
91
|
+
*
|
|
92
|
+
* Returns null if the key cannot be parsed.
|
|
93
|
+
* @param key The connection key that should be used to generate the token.
|
|
94
|
+
* @param connectionId The connection ID.
|
|
95
|
+
* @param deviceId The device ID.
|
|
96
|
+
* @param inst The ID of the instance that the connection is for.
|
|
97
|
+
*/
|
|
98
|
+
export declare function generateV1ConnectionToken(key: string, connectionId: string, recordName: string | null, inst: string): string;
|
|
99
|
+
/**
|
|
100
|
+
* Calculates the SHA-256 HMAC of the given connection ID, record name, and inst using the given connection secret.
|
|
101
|
+
* @param connectionSecret The connection secret.
|
|
102
|
+
* @param connectionId The ID of the connection.
|
|
103
|
+
* @param recordName The name of the record.
|
|
104
|
+
* @param inst The inst.
|
|
105
|
+
*/
|
|
106
|
+
export declare function v1ConnectionTokenHmac(connectionSecret: string, connectionId: string, recordName: string, inst: string): string;
|
|
107
|
+
/**
|
|
108
|
+
* Validates whether the given connection token is valid and was generated from the given connection key.
|
|
109
|
+
* @param connectionToken The connection token to validate.
|
|
110
|
+
* @param connectionSecret The secret for the connection.
|
|
111
|
+
*/
|
|
112
|
+
export declare function verifyConnectionToken(connectionToken: string, connectionSecret: string): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Determines whether the given role is a super user role.
|
|
115
|
+
* @param role The role to check.
|
|
116
|
+
*/
|
|
117
|
+
export declare function isSuperUserRole(role: UserRole | null | undefined): boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Determines wether the given role is suitable for a package reviewer.
|
|
120
|
+
* @param role The role.
|
|
121
|
+
*/
|
|
122
|
+
export declare function isPackageReviewerRole(role: UserRole | null | undefined): boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Determines whether the given time has expired.
|
|
125
|
+
* Can be used to determine wether a session keys, connection keys, etc. has expired.
|
|
126
|
+
*
|
|
127
|
+
* If the given time is null, then the key is considered to never expire.
|
|
128
|
+
*
|
|
129
|
+
* @param expirationMs The time that the key expires in miliseconds at since 1 January 1970 (Unix Epoch).
|
|
130
|
+
* @param nowMs The current time in milliseconds since 1 January 1970 (Unix Epoch).
|
|
131
|
+
*/
|
|
132
|
+
export declare function isExpired(expirationMs: number | null, nowMs?: number): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Determines wether the given key will expire within the next REFRESH_LIFETIME_MS.
|
|
135
|
+
*
|
|
136
|
+
* Returns true if the key has expired or will expire within the next REFRESH_LIFETIME_MS.
|
|
137
|
+
* Returns false if the key will not expire within the next REFRESH_LIFETIME_MS.
|
|
138
|
+
* @param expirationMs The time that the key expires in miliseconds at since 1 January 1970 (Unix Epoch).
|
|
139
|
+
* @param nowMs The current time in milliseconds since 1 January 1970 (Unix Epoch).
|
|
140
|
+
*/
|
|
141
|
+
export declare function willExpire(expirationMs: number | null, nowMs?: number): boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Determines if a key with the given expiration time can expire.
|
|
144
|
+
* @param expirationMs The time that the key expires at in miliseconds since 1 January 1970 (Unix Epoch).
|
|
145
|
+
*/
|
|
146
|
+
export declare function canExpire(expirationMs: number | null): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Gets the amount of time in miliseconds until a token with the given expiration time should be refreshed.
|
|
149
|
+
*
|
|
150
|
+
* Returns 0 or a negative number if the key has expired or will expire within the next week (REFRESH_LIFETIME_MS).
|
|
151
|
+
* Returns a positive number if the key will not expire within the next week (REFRESH_LIFETIME_MS).
|
|
152
|
+
* Returns infinity if the key will never expire.
|
|
153
|
+
*
|
|
154
|
+
* @param expirationMs The time that the token expires in miliseconds since the Unix Epoch (1 January 1970).
|
|
155
|
+
* @param nowMs The current time in miliseconds since the Unix Epoch (1 January 1970).
|
|
156
|
+
*/
|
|
157
|
+
export declare function timeUntilRefresh(expirationMs: number | null, nowMs?: number): number;
|
|
158
|
+
/**
|
|
159
|
+
* Gets the amount of time until a token with the given expiration time expires.
|
|
160
|
+
*
|
|
161
|
+
* Returns 0 or a negative number if the key has expired.
|
|
162
|
+
* Returns infinity if the key will never expire.
|
|
163
|
+
* Returns some other positive number if the key will expire in the future.
|
|
164
|
+
*
|
|
165
|
+
* @param expirationMs The time that the token expires in miliseconds since the Unix Epoch (1 January 1970).
|
|
166
|
+
* @param nowMs The current time in miliseconds since the Unix Epoch (1 January 1970).
|
|
167
|
+
*/
|
|
168
|
+
export declare function timeUntilExpiration(expirationMs: number | null, nowMs?: number): number;
|
|
169
|
+
/**
|
|
170
|
+
* Gets the expiration time of the given session key.
|
|
171
|
+
* @param key The session key.
|
|
172
|
+
* @returns Returns the expiration time in miliseconds since the Unix Epoch (1 January 1970). Returns -1 if the key is invalid.
|
|
173
|
+
*/
|
|
174
|
+
export declare function getSessionKeyExpiration(key: string): number;
|
|
175
|
+
//# sourceMappingURL=AuthUtils.d.ts.map
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
/* CasualOS is a set of web-based tools designed to facilitate the creation of real-time, multi-user, context-aware interactive experiences.
|
|
2
|
+
*
|
|
3
|
+
* Copyright (c) 2019-2025 Casual Simulation, Inc.
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as
|
|
7
|
+
* published by the Free Software Foundation, either version 3 of the
|
|
8
|
+
* License, or (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { fromBase64String, toBase64String } from '../utils';
|
|
19
|
+
import { sha256, hmac } from 'hash.js';
|
|
20
|
+
import { toByteArray } from 'base64-js';
|
|
21
|
+
import { formatV1ConnectionToken, parseV1ConnectionToken, } from '../common/ConnectionToken';
|
|
22
|
+
/**
|
|
23
|
+
* The default lifetime at which a session key should be refreshed.
|
|
24
|
+
*/
|
|
25
|
+
export const REFRESH_LIFETIME_MS = 1000 * 60 * 60 * 24 * 7; // 1 week
|
|
26
|
+
/**
|
|
27
|
+
* Formats the given user ID, session ID, session secret, and expiration time into a key that is used to authenticate a user to a particular session.
|
|
28
|
+
* @param userId The ID of the user.
|
|
29
|
+
* @param sessionId The ID of the session.
|
|
30
|
+
* @param sessionSecret The secret for the session.
|
|
31
|
+
* @param expireTimeMs The unix timestamp that the key expires at.
|
|
32
|
+
*/
|
|
33
|
+
export function formatV1SessionKey(userId, sessionId, sessionSecret, expireTimeMs) {
|
|
34
|
+
return `vSK1.${toBase64String(userId)}.${toBase64String(sessionId)}.${toBase64String(sessionSecret)}.${toBase64String((expireTimeMs !== null && expireTimeMs !== void 0 ? expireTimeMs : Infinity).toString())}`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Parses the given session key into a user ID and session ID, and session secret array.
|
|
38
|
+
* Returns null if the key cannot be parsed.
|
|
39
|
+
* @param key The key to parse.
|
|
40
|
+
*/
|
|
41
|
+
export function parseSessionKey(key) {
|
|
42
|
+
return parseV1SessionKey(key);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Parses a version 1 session key into a user ID, session ID, session secret, and expiration time.
|
|
46
|
+
* Returns null if the key cannot be parsed or if it is not a V1 key.
|
|
47
|
+
* @param key The key to parse.
|
|
48
|
+
*/
|
|
49
|
+
export function parseV1SessionKey(key) {
|
|
50
|
+
if (!key) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
if (!key.startsWith('vSK1.')) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
const withoutVersion = key.slice('vSK1.'.length);
|
|
57
|
+
let periodAfterUserId = withoutVersion.indexOf('.');
|
|
58
|
+
if (periodAfterUserId < 0) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const userIdBase64 = withoutVersion.slice(0, periodAfterUserId);
|
|
62
|
+
const sessionIdPlusPassword = withoutVersion.slice(periodAfterUserId + 1);
|
|
63
|
+
if (userIdBase64.length <= 0 || sessionIdPlusPassword.length <= 0) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
const periodAfterSessionId = sessionIdPlusPassword.indexOf('.');
|
|
67
|
+
if (periodAfterSessionId < 0) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
const sessionIdBase64 = sessionIdPlusPassword.slice(0, periodAfterSessionId);
|
|
71
|
+
const passwordPlusExpireTime = sessionIdPlusPassword.slice(periodAfterSessionId + 1);
|
|
72
|
+
if (sessionIdBase64.length <= 0 || passwordPlusExpireTime.length <= 0) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const periodAfterPassword = passwordPlusExpireTime.indexOf('.');
|
|
76
|
+
if (periodAfterPassword < 0) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
const passwordBase64 = passwordPlusExpireTime.slice(0, periodAfterPassword);
|
|
80
|
+
const expireTimeBase64 = passwordPlusExpireTime.slice(periodAfterPassword + 1);
|
|
81
|
+
if (passwordBase64.length <= 0 || expireTimeBase64.length <= 0) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
const userId = fromBase64String(userIdBase64);
|
|
86
|
+
const sessionId = fromBase64String(sessionIdBase64);
|
|
87
|
+
const password = fromBase64String(passwordBase64);
|
|
88
|
+
const expireTimeText = fromBase64String(expireTimeBase64);
|
|
89
|
+
const expireTime = expireTimeText === 'Infinity' ? null : parseInt(expireTimeText);
|
|
90
|
+
return [userId, sessionId, password, expireTime];
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Formats the given user ID, session ID, connection secret, and expiration time into a key that is used to generate connection tokens.
|
|
98
|
+
* @param userId The ID of the user.
|
|
99
|
+
* @param sessionId The ID of the session.
|
|
100
|
+
* @param sessionSecret The secret for the connections.
|
|
101
|
+
* @param expireTimeMs The unix timestamp that the key expires at.
|
|
102
|
+
*/
|
|
103
|
+
export function formatV1ConnectionKey(userId, sessionId, connectionSecret, expireTimeMs) {
|
|
104
|
+
return `vCK1.${toBase64String(userId)}.${toBase64String(sessionId)}.${toBase64String(connectionSecret)}.${toBase64String((expireTimeMs !== null && expireTimeMs !== void 0 ? expireTimeMs : Infinity).toString())}`;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Parses the given connection key into a user ID and session ID, and connection secret array.
|
|
108
|
+
* Returns null if the key cannot be parsed.
|
|
109
|
+
* @param key The key to parse.
|
|
110
|
+
*/
|
|
111
|
+
export function parseConnectionKey(key) {
|
|
112
|
+
return parseV1ConnectionKey(key);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Parses a version 1 session key into a user ID, session ID, session secret, and expiration time.
|
|
116
|
+
* Returns null if the key cannot be parsed or if it is not a V1 key.
|
|
117
|
+
* @param key The key to parse.
|
|
118
|
+
*/
|
|
119
|
+
export function parseV1ConnectionKey(key) {
|
|
120
|
+
if (!key) {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
if (!key.startsWith('vCK1.')) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
const withoutVersion = key.slice('vCK1.'.length);
|
|
127
|
+
let periodAfterUserId = withoutVersion.indexOf('.');
|
|
128
|
+
if (periodAfterUserId < 0) {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
const userIdBase64 = withoutVersion.slice(0, periodAfterUserId);
|
|
132
|
+
const sessionIdPlusPassword = withoutVersion.slice(periodAfterUserId + 1);
|
|
133
|
+
if (userIdBase64.length <= 0 || sessionIdPlusPassword.length <= 0) {
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
const periodAfterSessionId = sessionIdPlusPassword.indexOf('.');
|
|
137
|
+
if (periodAfterSessionId < 0) {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
const sessionIdBase64 = sessionIdPlusPassword.slice(0, periodAfterSessionId);
|
|
141
|
+
const passwordPlusExpireTime = sessionIdPlusPassword.slice(periodAfterSessionId + 1);
|
|
142
|
+
if (sessionIdBase64.length <= 0 || passwordPlusExpireTime.length <= 0) {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
const periodAfterPassword = passwordPlusExpireTime.indexOf('.');
|
|
146
|
+
if (periodAfterPassword < 0) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
const passwordBase64 = passwordPlusExpireTime.slice(0, periodAfterPassword);
|
|
150
|
+
const expireTimeBase64 = passwordPlusExpireTime.slice(periodAfterPassword + 1);
|
|
151
|
+
if (passwordBase64.length <= 0 || expireTimeBase64.length <= 0) {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
try {
|
|
155
|
+
const userId = fromBase64String(userIdBase64);
|
|
156
|
+
const sessionId = fromBase64String(sessionIdBase64);
|
|
157
|
+
const password = fromBase64String(passwordBase64);
|
|
158
|
+
const expireTimeText = fromBase64String(expireTimeBase64);
|
|
159
|
+
const expireTime = expireTimeText === 'Infinity' ? null : parseInt(expireTimeText);
|
|
160
|
+
return [userId, sessionId, password, expireTime];
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Formats the given OpenAI Key into a string that is detectable as an OpenAI Key.
|
|
168
|
+
* @param apiKey The API Key that should be formatted.
|
|
169
|
+
*/
|
|
170
|
+
export function formatV1OpenAiKey(apiKey) {
|
|
171
|
+
return `vAI1.${toBase64String(apiKey)}`;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Determines if the given string represents an OpenAI Key.
|
|
175
|
+
* @param apiKey The API Key.
|
|
176
|
+
*/
|
|
177
|
+
export function isOpenAiKey(apiKey) {
|
|
178
|
+
return typeof apiKey === 'string' && apiKey.startsWith(`vAI1.`);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Parses the given OpenAI Key.
|
|
182
|
+
* @param key The key that should be parsed.
|
|
183
|
+
*/
|
|
184
|
+
export function parseOpenAiKey(key) {
|
|
185
|
+
if (!key || typeof key !== 'string') {
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
188
|
+
if (!key.startsWith('vAI1.')) {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
const withoutVersion = key.slice('vAI1.'.length);
|
|
192
|
+
return [fromBase64String(withoutVersion)];
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Generates a new connection token from the given key, connection ID, and device ID.
|
|
196
|
+
*
|
|
197
|
+
* Returns null if the key cannot be parsed.
|
|
198
|
+
* @param key The connection key that should be used to generate the token.
|
|
199
|
+
* @param connectionId The connection ID.
|
|
200
|
+
* @param deviceId The device ID.
|
|
201
|
+
* @param inst The ID of the instance that the connection is for.
|
|
202
|
+
*/
|
|
203
|
+
export function generateV1ConnectionToken(key, connectionId, recordName, inst) {
|
|
204
|
+
const parsed = parseConnectionKey(key);
|
|
205
|
+
if (!parsed) {
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
208
|
+
recordName = recordName !== null && recordName !== void 0 ? recordName : '';
|
|
209
|
+
const [userId, sessionId, connectionSecret, expireTimeMs] = parsed;
|
|
210
|
+
const hashHex = v1ConnectionTokenHmac(connectionSecret, connectionId, recordName, inst);
|
|
211
|
+
return formatV1ConnectionToken(userId, sessionId, connectionId, recordName, inst, hashHex);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Calculates the SHA-256 HMAC of the given connection ID, record name, and inst using the given connection secret.
|
|
215
|
+
* @param connectionSecret The connection secret.
|
|
216
|
+
* @param connectionId The ID of the connection.
|
|
217
|
+
* @param recordName The name of the record.
|
|
218
|
+
* @param inst The inst.
|
|
219
|
+
*/
|
|
220
|
+
export function v1ConnectionTokenHmac(connectionSecret, connectionId, recordName, inst) {
|
|
221
|
+
const hash = hmac(sha256, toByteArray(connectionSecret), 'hex');
|
|
222
|
+
hash.update(connectionId);
|
|
223
|
+
hash.update(recordName);
|
|
224
|
+
hash.update(inst);
|
|
225
|
+
const hashHex = hash.digest('hex');
|
|
226
|
+
return hashHex;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Validates whether the given connection token is valid and was generated from the given connection key.
|
|
230
|
+
* @param connectionToken The connection token to validate.
|
|
231
|
+
* @param connectionSecret The secret for the connection.
|
|
232
|
+
*/
|
|
233
|
+
export function verifyConnectionToken(connectionToken, connectionSecret) {
|
|
234
|
+
if (!connectionToken || !connectionSecret) {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
try {
|
|
238
|
+
const parsed = parseV1ConnectionToken(connectionToken);
|
|
239
|
+
if (parsed) {
|
|
240
|
+
const [userId, sessionId, connectionId, recordName, inst, hash] = parsed;
|
|
241
|
+
const expectedHash = v1ConnectionTokenHmac(connectionSecret, connectionId, recordName, inst);
|
|
242
|
+
return hash === expectedHash;
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
return false;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
catch (_a) {
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Determines whether the given role is a super user role.
|
|
254
|
+
* @param role The role to check.
|
|
255
|
+
*/
|
|
256
|
+
export function isSuperUserRole(role) {
|
|
257
|
+
return role === 'superUser' || role === 'system';
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Determines wether the given role is suitable for a package reviewer.
|
|
261
|
+
* @param role The role.
|
|
262
|
+
*/
|
|
263
|
+
export function isPackageReviewerRole(role) {
|
|
264
|
+
return role === 'superUser' || role === 'moderator' || role === 'system';
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Determines whether the given time has expired.
|
|
268
|
+
* Can be used to determine wether a session keys, connection keys, etc. has expired.
|
|
269
|
+
*
|
|
270
|
+
* If the given time is null, then the key is considered to never expire.
|
|
271
|
+
*
|
|
272
|
+
* @param expirationMs The time that the key expires in miliseconds at since 1 January 1970 (Unix Epoch).
|
|
273
|
+
* @param nowMs The current time in milliseconds since 1 January 1970 (Unix Epoch).
|
|
274
|
+
*/
|
|
275
|
+
export function isExpired(expirationMs, nowMs = Date.now()) {
|
|
276
|
+
return nowMs >= (expirationMs !== null && expirationMs !== void 0 ? expirationMs : Infinity);
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Determines wether the given key will expire within the next REFRESH_LIFETIME_MS.
|
|
280
|
+
*
|
|
281
|
+
* Returns true if the key has expired or will expire within the next REFRESH_LIFETIME_MS.
|
|
282
|
+
* Returns false if the key will not expire within the next REFRESH_LIFETIME_MS.
|
|
283
|
+
* @param expirationMs The time that the key expires in miliseconds at since 1 January 1970 (Unix Epoch).
|
|
284
|
+
* @param nowMs The current time in milliseconds since 1 January 1970 (Unix Epoch).
|
|
285
|
+
*/
|
|
286
|
+
export function willExpire(expirationMs, nowMs = Date.now()) {
|
|
287
|
+
return isExpired(expirationMs, nowMs + REFRESH_LIFETIME_MS);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Determines if a key with the given expiration time can expire.
|
|
291
|
+
* @param expirationMs The time that the key expires at in miliseconds since 1 January 1970 (Unix Epoch).
|
|
292
|
+
*/
|
|
293
|
+
export function canExpire(expirationMs) {
|
|
294
|
+
return expirationMs !== null && isFinite(expirationMs) && expirationMs >= 0;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Gets the amount of time in miliseconds until a token with the given expiration time should be refreshed.
|
|
298
|
+
*
|
|
299
|
+
* Returns 0 or a negative number if the key has expired or will expire within the next week (REFRESH_LIFETIME_MS).
|
|
300
|
+
* Returns a positive number if the key will not expire within the next week (REFRESH_LIFETIME_MS).
|
|
301
|
+
* Returns infinity if the key will never expire.
|
|
302
|
+
*
|
|
303
|
+
* @param expirationMs The time that the token expires in miliseconds since the Unix Epoch (1 January 1970).
|
|
304
|
+
* @param nowMs The current time in miliseconds since the Unix Epoch (1 January 1970).
|
|
305
|
+
*/
|
|
306
|
+
export function timeUntilRefresh(expirationMs, nowMs = Date.now()) {
|
|
307
|
+
return timeUntilExpiration(expirationMs, nowMs + REFRESH_LIFETIME_MS);
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Gets the amount of time until a token with the given expiration time expires.
|
|
311
|
+
*
|
|
312
|
+
* Returns 0 or a negative number if the key has expired.
|
|
313
|
+
* Returns infinity if the key will never expire.
|
|
314
|
+
* Returns some other positive number if the key will expire in the future.
|
|
315
|
+
*
|
|
316
|
+
* @param expirationMs The time that the token expires in miliseconds since the Unix Epoch (1 January 1970).
|
|
317
|
+
* @param nowMs The current time in miliseconds since the Unix Epoch (1 January 1970).
|
|
318
|
+
*/
|
|
319
|
+
export function timeUntilExpiration(expirationMs, nowMs = Date.now()) {
|
|
320
|
+
return (expirationMs !== null && expirationMs !== void 0 ? expirationMs : Infinity) - nowMs;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Gets the expiration time of the given session key.
|
|
324
|
+
* @param key The session key.
|
|
325
|
+
* @returns Returns the expiration time in miliseconds since the Unix Epoch (1 January 1970). Returns -1 if the key is invalid.
|
|
326
|
+
*/
|
|
327
|
+
export function getSessionKeyExpiration(key) {
|
|
328
|
+
const parsed = parseSessionKey(key);
|
|
329
|
+
if (!parsed) {
|
|
330
|
+
return -1;
|
|
331
|
+
}
|
|
332
|
+
const expireTimeMs = parsed[3];
|
|
333
|
+
return expireTimeMs !== null && expireTimeMs !== void 0 ? expireTimeMs : Infinity;
|
|
334
|
+
}
|
|
335
|
+
//# sourceMappingURL=AuthUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthUtils.js","sourceRoot":"","sources":["AuthUtils.ts"],"names":[],"mappings":"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"}
|