@casual-simulation/aux-common 3.4.6-alpha.14668890889 → 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 +24 -40
- 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
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines a type that represents the different kinds of policies that a record key can have.
|
|
3
|
+
*
|
|
4
|
+
* - null and "subjectfull" indicate that actions performed with this key must require a subject to provide their access token in order for operations to succeed.
|
|
5
|
+
* - "subjectless" indicates that actions may be performed with key despite not having an access key from a subject.
|
|
6
|
+
*
|
|
7
|
+
* @dochash types/records/key
|
|
8
|
+
* @docname PublicRecordKeyPolicy
|
|
9
|
+
*/
|
|
10
|
+
export type PublicRecordKeyPolicy = null | 'subjectfull' | 'subjectless';
|
|
11
|
+
/**
|
|
12
|
+
* The default policy for keys that do not have a specified record key.
|
|
13
|
+
*/
|
|
14
|
+
export declare const DEFAULT_RECORD_KEY_POLICY: PublicRecordKeyPolicy;
|
|
15
|
+
/**
|
|
16
|
+
* Formats the given record name and record secret into a record key.
|
|
17
|
+
* @param recordName The name of the record.
|
|
18
|
+
* @param recordSecret The secret that is used to access the record.
|
|
19
|
+
*/
|
|
20
|
+
export declare function formatV1RecordKey(recordName: string, recordSecret: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Formats the given record name and record secret into a record key.
|
|
23
|
+
* @param recordName The name of the record.
|
|
24
|
+
* @param recordSecret The secret that is used to access the record.
|
|
25
|
+
* @param keyPolicy The policy that the key uses.
|
|
26
|
+
*/
|
|
27
|
+
export declare function formatV2RecordKey(recordName: string, recordSecret: string, keyPolicy: PublicRecordKeyPolicy): string;
|
|
28
|
+
/**
|
|
29
|
+
* Parses the given record key into a name and password pair.
|
|
30
|
+
* Returns null if the key cannot be parsed.
|
|
31
|
+
* @param key The key to parse.
|
|
32
|
+
*/
|
|
33
|
+
export declare function parseRecordKey(key: string): [name: string, password: string, policy: PublicRecordKeyPolicy];
|
|
34
|
+
/**
|
|
35
|
+
* Parses a version 2 record key into a name, password, and policy trio.
|
|
36
|
+
* Returns null if the key cannot be parsed or if it is not a V2 key.
|
|
37
|
+
* @param key The key to parse.
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseV2RecordKey(key: string): [name: string, password: string, policy: PublicRecordKeyPolicy];
|
|
40
|
+
/**
|
|
41
|
+
* Parses a version 1 record key into a name and password pair.
|
|
42
|
+
* Returns null if the key cannot be parsed or if it is not a V1 key.
|
|
43
|
+
* @param key The key to parse.
|
|
44
|
+
*/
|
|
45
|
+
export declare function parseV1RecordKey(key: string): [name: string, password: string, policy: PublicRecordKeyPolicy];
|
|
46
|
+
/**
|
|
47
|
+
* Determines if the given value is a record key.
|
|
48
|
+
* @param key The value to check.
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
export declare function isRecordKey(key: unknown): key is string;
|
|
52
|
+
//# sourceMappingURL=RecordKeys.d.ts.map
|
|
@@ -0,0 +1,131 @@
|
|
|
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 { toBase64String, fromBase64String } from '../utils';
|
|
19
|
+
/**
|
|
20
|
+
* The default policy for keys that do not have a specified record key.
|
|
21
|
+
*/
|
|
22
|
+
export const DEFAULT_RECORD_KEY_POLICY = 'subjectfull';
|
|
23
|
+
/**
|
|
24
|
+
* Formats the given record name and record secret into a record key.
|
|
25
|
+
* @param recordName The name of the record.
|
|
26
|
+
* @param recordSecret The secret that is used to access the record.
|
|
27
|
+
*/
|
|
28
|
+
export function formatV1RecordKey(recordName, recordSecret) {
|
|
29
|
+
return `vRK1.${toBase64String(recordName)}.${toBase64String(recordSecret)}`;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Formats the given record name and record secret into a record key.
|
|
33
|
+
* @param recordName The name of the record.
|
|
34
|
+
* @param recordSecret The secret that is used to access the record.
|
|
35
|
+
* @param keyPolicy The policy that the key uses.
|
|
36
|
+
*/
|
|
37
|
+
export function formatV2RecordKey(recordName, recordSecret, keyPolicy) {
|
|
38
|
+
return `vRK2.${toBase64String(recordName)}.${toBase64String(recordSecret)}.${keyPolicy !== null && keyPolicy !== void 0 ? keyPolicy : DEFAULT_RECORD_KEY_POLICY}`;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Parses the given record key into a name and password pair.
|
|
42
|
+
* Returns null if the key cannot be parsed.
|
|
43
|
+
* @param key The key to parse.
|
|
44
|
+
*/
|
|
45
|
+
export function parseRecordKey(key) {
|
|
46
|
+
var _a;
|
|
47
|
+
return (_a = parseV2RecordKey(key)) !== null && _a !== void 0 ? _a : parseV1RecordKey(key);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Parses a version 2 record key into a name, password, and policy trio.
|
|
51
|
+
* Returns null if the key cannot be parsed or if it is not a V2 key.
|
|
52
|
+
* @param key The key to parse.
|
|
53
|
+
*/
|
|
54
|
+
export function parseV2RecordKey(key) {
|
|
55
|
+
if (!key) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
if (!key.startsWith('vRK2.')) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const withoutVersion = key.slice('vRK2.'.length);
|
|
62
|
+
let periodAfterName = withoutVersion.indexOf('.');
|
|
63
|
+
if (periodAfterName < 0) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
const nameBase64 = withoutVersion.slice(0, periodAfterName);
|
|
67
|
+
const passwordPlusPolicy = withoutVersion.slice(periodAfterName + 1);
|
|
68
|
+
if (nameBase64.length <= 0 || passwordPlusPolicy.length <= 0) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
const periodAfterPassword = passwordPlusPolicy.indexOf('.');
|
|
72
|
+
if (periodAfterPassword < 0) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const passwordBase64 = passwordPlusPolicy.slice(0, periodAfterPassword);
|
|
76
|
+
const policy = passwordPlusPolicy.slice(periodAfterPassword + 1);
|
|
77
|
+
if (passwordBase64.length <= 0 || policy.length <= 0) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
if (policy !== 'subjectfull' && policy !== 'subjectless') {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
const name = fromBase64String(nameBase64);
|
|
85
|
+
const password = fromBase64String(passwordBase64);
|
|
86
|
+
return [name, password, policy];
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Parses a version 1 record key into a name and password pair.
|
|
94
|
+
* Returns null if the key cannot be parsed or if it is not a V1 key.
|
|
95
|
+
* @param key The key to parse.
|
|
96
|
+
*/
|
|
97
|
+
export function parseV1RecordKey(key) {
|
|
98
|
+
if (!key) {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
if (!key.startsWith('vRK1.')) {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
const withoutVersion = key.slice('vRK1.'.length);
|
|
105
|
+
let nextPeriod = withoutVersion.indexOf('.');
|
|
106
|
+
if (nextPeriod < 0) {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
const nameBase64 = withoutVersion.slice(0, nextPeriod);
|
|
110
|
+
const passwordBase64 = withoutVersion.slice(nextPeriod + 1);
|
|
111
|
+
if (nameBase64.length <= 0 || passwordBase64.length <= 0) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const name = fromBase64String(nameBase64);
|
|
116
|
+
const password = fromBase64String(passwordBase64);
|
|
117
|
+
return [name, password, DEFAULT_RECORD_KEY_POLICY];
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Determines if the given value is a record key.
|
|
125
|
+
* @param key The value to check.
|
|
126
|
+
* @returns
|
|
127
|
+
*/
|
|
128
|
+
export function isRecordKey(key) {
|
|
129
|
+
return typeof key === 'string' && parseRecordKey(key) !== null;
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=RecordKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecordKeys.js","sourceRoot":"","sources":["RecordKeys.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
export const SUBSCRIPTION_ID_NAMESPACE = 'f12953a9-21e2-47d4-b7b7-f699bd9a5550';
|
|
19
|
+
//# sourceMappingURL=WebPush.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebPush.js","sourceRoot":"","sources":["WebPush.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,sCAAsC,CAAC"}
|
package/records/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
export * from './RecordKeys';
|
|
19
|
+
export * from './AuthUtils';
|
|
20
|
+
export * from './WebPush';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
|
package/rpc/ErrorCodes.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type KnownErrorCodes = 'not_logged_in' | 'not_supported' | 'data_not_found' | 'data_too_large' | 'record_not_found' | 'file_not_found' | 'session_not_found' | 'operation_not_found' | 'studio_not_found' | 'user_not_found' | 'inst_not_found' | 'session_already_revoked' | 'invalid_code' | 'invalid_key' | 'invalid_request' | 'invalid_origin' | 'invalid_record_key' | 'session_expired' | 'unacceptable_address' | 'unacceptable_user_id' | 'unacceptable_code' | 'unacceptable_session_key' | 'unacceptable_session_id' | 'unacceptable_request_id' | 'unacceptable_ip_address' | 'unacceptable_address_type' | 'unacceptable_expire_time' | 'unacceptable_request' | 'unacceptable_update' | 'address_type_not_supported' | 'server_error' | 'unauthorized_to_create_record_key' | 'price_does_not_match' | 'user_is_banned' | 'rate_limit_exceeded' | 'not_authorized' | 'not_subscribed' | 'invalid_subscription_tier' | 'subscription_limit_reached' | 'record_already_exists' | 'action_not_supported' | 'no_session_key' | 'unacceptable_studio_id' | 'email_already_exists' | 'parent_email_already_exists' | 'child_email_already_exists' | 'parent_email_required' | 'invalid_room_name' | 'invalid_username' | 'invalid_update_policy' | 'invalid_delete_policy' | 'unacceptable_url' | 'file_already_exists' | 'invalid_file_data' | 'invalid_model' | 'roles_too_large' | 'policy_not_found' | 'policy_too_large' | 'invalid_policy' | 'not_completed' | 'invalid_display_name' | 'permission_already_exists' | 'comId_not_found' | 'comId_already_taken' | 'permission_not_found' | 'unacceptable_connection_token' | 'invalid_token' | 'unacceptable_connection_id' | 'message_not_found' | 'not_found' | 'invalid_connection_state' | 'user_already_exists' | 'session_is_not_revokable' | 'hume_api_error' | 'invalid_webhook_target' | 'took_too_long';
|
|
1
|
+
export type KnownErrorCodes = 'not_logged_in' | 'not_supported' | 'data_not_found' | 'data_too_large' | 'record_not_found' | 'file_not_found' | 'session_not_found' | 'operation_not_found' | 'studio_not_found' | 'user_not_found' | 'inst_not_found' | 'session_already_revoked' | 'invalid_code' | 'invalid_key' | 'invalid_request' | 'invalid_origin' | 'invalid_record_key' | 'session_expired' | 'unacceptable_address' | 'unacceptable_user_id' | 'unacceptable_code' | 'unacceptable_session_key' | 'unacceptable_session_id' | 'unacceptable_request_id' | 'unacceptable_ip_address' | 'unacceptable_address_type' | 'unacceptable_expire_time' | 'unacceptable_request' | 'unacceptable_update' | 'address_type_not_supported' | 'server_error' | 'unauthorized_to_create_record_key' | 'price_does_not_match' | 'user_is_banned' | 'rate_limit_exceeded' | 'not_authorized' | 'not_subscribed' | 'invalid_subscription_tier' | 'subscription_limit_reached' | 'record_already_exists' | 'action_not_supported' | 'no_session_key' | 'unacceptable_studio_id' | 'email_already_exists' | 'parent_email_already_exists' | 'child_email_already_exists' | 'parent_email_required' | 'invalid_room_name' | 'invalid_username' | 'invalid_update_policy' | 'invalid_delete_policy' | 'unacceptable_url' | 'file_already_exists' | 'invalid_file_data' | 'invalid_model' | 'roles_too_large' | 'policy_not_found' | 'policy_too_large' | 'invalid_policy' | 'not_completed' | 'invalid_display_name' | 'permission_already_exists' | 'comId_not_found' | 'comId_already_taken' | 'permission_not_found' | 'unacceptable_connection_token' | 'invalid_token' | 'unacceptable_connection_id' | 'message_not_found' | 'not_found' | 'invalid_connection_state' | 'user_already_exists' | 'session_is_not_revokable' | 'hume_api_error' | 'invalid_webhook_target' | 'took_too_long' | 'parent_not_found';
|
|
2
2
|
/**
|
|
3
3
|
* Gets the status code that should be used for the given response.
|
|
4
4
|
* @param response The response.
|
|
@@ -8,5 +8,5 @@ export declare function getStatusCode(response: {
|
|
|
8
8
|
errorCode: KnownErrorCodes;
|
|
9
9
|
} | {
|
|
10
10
|
success: true;
|
|
11
|
-
}):
|
|
11
|
+
}): 401 | 501 | 404 | 400 | 200 | 403 | 500 | 412 | 429 | 409 | 504;
|
|
12
12
|
//# sourceMappingURL=ErrorCodes.d.ts.map
|
package/rpc/ErrorCodes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorCodes.js","sourceRoot":"","sources":["ErrorCodes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ErrorCodes.js","sourceRoot":"","sources":["ErrorCodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -118,19 +118,23 @@ export function getSchemaMetadata(schema) {
|
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
120
|
else if (schema instanceof z.ZodOptional) {
|
|
121
|
-
return
|
|
121
|
+
return { ...getSchemaMetadata(schema._def.innerType), optional: true };
|
|
122
122
|
}
|
|
123
123
|
else if (schema instanceof z.ZodNullable) {
|
|
124
|
-
return
|
|
124
|
+
return { ...getSchemaMetadata(schema._def.innerType), nullable: true };
|
|
125
125
|
}
|
|
126
126
|
else if (schema instanceof z.ZodDefault) {
|
|
127
|
-
return
|
|
127
|
+
return {
|
|
128
|
+
...getSchemaMetadata(schema._def.innerType),
|
|
129
|
+
hasDefault: true,
|
|
130
|
+
defaultValue: schema._def.defaultValue(),
|
|
131
|
+
};
|
|
128
132
|
}
|
|
129
133
|
else if (schema instanceof z.ZodNever) {
|
|
130
134
|
return undefined;
|
|
131
135
|
}
|
|
132
136
|
else if (schema instanceof z.ZodEffects) {
|
|
133
|
-
return
|
|
137
|
+
return { ...getSchemaMetadata(schema._def.schema) };
|
|
134
138
|
}
|
|
135
139
|
else if (schema instanceof z.ZodUnion) {
|
|
136
140
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericRPCInterface.js","sourceRoot":"","sources":["GenericRPCInterface.ts"],"names":[],"mappings":"AAqBA,OAAO,
|
|
1
|
+
{"version":3,"file":"GenericRPCInterface.js","sourceRoot":"","sources":["GenericRPCInterface.ts"],"names":[],"mappings":"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"}
|
package/test/TestHelpers.js
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
/* CasualOS is a set of web-based tools designed to facilitate the creation of real-time, multi-user, context-aware interactive experiences.
|
|
11
2
|
*
|
|
12
3
|
* Copyright (c) 2019-2025 Casual Simulation, Inc.
|
|
@@ -33,10 +24,8 @@ export function wait(ms) {
|
|
|
33
24
|
}, ms);
|
|
34
25
|
});
|
|
35
26
|
}
|
|
36
|
-
export function waitAsync(num = 10) {
|
|
37
|
-
return
|
|
38
|
-
return new Promise((resolve) => jest.requireActual('timers').setImmediate(resolve));
|
|
39
|
-
});
|
|
27
|
+
export async function waitAsync(num = 10) {
|
|
28
|
+
return new Promise((resolve) => jest.requireActual('timers').setImmediate(resolve));
|
|
40
29
|
}
|
|
41
30
|
export const customDataTypeCases = [
|
|
42
31
|
[
|
package/test/TestHelpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestHelpers.js","sourceRoot":"","sources":["TestHelpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TestHelpers.js","sourceRoot":"","sources":["TestHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAErD,MAAM,UAAU,IAAI,CAAC,EAAU;IAC3B,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACjC,UAAU,CAAC,GAAG,EAAE;YACZ,OAAO,EAAE,CAAC;QACd,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc,EAAE;IAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CACrD,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B;QACI,UAAU;QACV,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,wBAAwB;KAClB;IACV,CAAC,SAAS,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAU;IAChD,CAAC,SAAS,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAU;IACrD,CAAC,UAAU,EAAE,IAAI,QAAQ,EAAE,EAAE,WAAW,CAAU;CACrD,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,GAAG,mBAAmB;IACtB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAU;IAC7B,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAU;IAC7B,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAU;IAChC,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAU;IACjC,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAU;IACzC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAU;IAC5C,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAU;IACnD,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAU;CAC3C,CAAC"}
|
package/utils.d.ts
CHANGED
|
@@ -55,4 +55,18 @@ export declare function toBase64String(str: string): string;
|
|
|
55
55
|
* @param base64
|
|
56
56
|
*/
|
|
57
57
|
export declare function fromBase64String(base64: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Tries to parse the given JSON string into a JavaScript Value.
|
|
60
|
+
* @param json The JSON to parse.
|
|
61
|
+
*/
|
|
62
|
+
export declare function tryParseJson(json: string): JsonParseResult;
|
|
63
|
+
export type JsonParseResult = JsonParseSuccess | JsonParseFailure;
|
|
64
|
+
export interface JsonParseSuccess {
|
|
65
|
+
success: true;
|
|
66
|
+
value: any;
|
|
67
|
+
}
|
|
68
|
+
export interface JsonParseFailure {
|
|
69
|
+
success: false;
|
|
70
|
+
error: unknown;
|
|
71
|
+
}
|
|
58
72
|
//# sourceMappingURL=utils.d.ts.map
|
package/utils.js
CHANGED
|
@@ -179,4 +179,22 @@ export function fromBase64String(base64) {
|
|
|
179
179
|
const array = toByteArray(base64);
|
|
180
180
|
return decoder.decode(array);
|
|
181
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Tries to parse the given JSON string into a JavaScript Value.
|
|
184
|
+
* @param json The JSON to parse.
|
|
185
|
+
*/
|
|
186
|
+
export function tryParseJson(json) {
|
|
187
|
+
try {
|
|
188
|
+
return {
|
|
189
|
+
success: true,
|
|
190
|
+
value: JSON.parse(json),
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
catch (err) {
|
|
194
|
+
return {
|
|
195
|
+
success: false,
|
|
196
|
+
error: err,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
}
|
|
182
200
|
//# sourceMappingURL=utils.js.map
|
package/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License
|
|
16
16
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import { BehaviorSubject, Observable, distinctUntilChanged, filter,
|
|
18
|
+
import { BehaviorSubject, NEVER, Observable, distinctUntilChanged, filter, firstValueFrom, map, of, startWith, switchMap, } from 'rxjs';
|
|
19
19
|
/**
|
|
20
20
|
* Defines a connection client that attempts to authenticate before bubbling a connection event.
|
|
21
21
|
*/
|
|
@@ -44,7 +44,10 @@ export class AuthenticatedConnectionClient {
|
|
|
44
44
|
});
|
|
45
45
|
this._authSource.onAuthPermissionResult.subscribe((result) => {
|
|
46
46
|
if (result.origin === this.origin) {
|
|
47
|
-
this._inner.send(
|
|
47
|
+
this._inner.send({
|
|
48
|
+
...result,
|
|
49
|
+
type: 'permission/request/missing/response',
|
|
50
|
+
});
|
|
48
51
|
}
|
|
49
52
|
});
|
|
50
53
|
this._inner.event('permission/request/missing').subscribe((request) => {
|
|
@@ -58,7 +61,11 @@ export class AuthenticatedConnectionClient {
|
|
|
58
61
|
this._inner
|
|
59
62
|
.event('permission/request/missing/response')
|
|
60
63
|
.subscribe((response) => {
|
|
61
|
-
this._authSource.sendAuthExternalPermissionResult(
|
|
64
|
+
this._authSource.sendAuthExternalPermissionResult({
|
|
65
|
+
...response,
|
|
66
|
+
type: 'external_permission_result',
|
|
67
|
+
origin: this.origin,
|
|
68
|
+
});
|
|
62
69
|
});
|
|
63
70
|
}
|
|
64
71
|
get origin() {
|
|
@@ -115,7 +122,7 @@ export class AuthenticatedConnectionClient {
|
|
|
115
122
|
kind: 'need_indicator',
|
|
116
123
|
});
|
|
117
124
|
}
|
|
118
|
-
const loginStates = responses.pipe(filter((r) => r.success === true), map((r) => r.indicator), switchMap((indicator) => this._loginWithIndicator(indicator)));
|
|
125
|
+
const loginStates = responses.pipe(filter((r) => r.success === true), map((r) => r.indicator), switchMap((indicator) => this._loginWithIndicator(indicator)), switchMap((v) => v));
|
|
119
126
|
return loginStates;
|
|
120
127
|
}
|
|
121
128
|
else {
|
|
@@ -125,13 +132,35 @@ export class AuthenticatedConnectionClient {
|
|
|
125
132
|
});
|
|
126
133
|
}
|
|
127
134
|
}
|
|
128
|
-
_loginWithIndicator(indicator) {
|
|
135
|
+
async _loginWithIndicator(indicator) {
|
|
129
136
|
const onLoginResult = this._inner.event('login_result');
|
|
130
|
-
this._inner.send(
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
137
|
+
this._inner.send({
|
|
138
|
+
type: 'login',
|
|
139
|
+
...indicator,
|
|
140
|
+
});
|
|
141
|
+
const result = await firstValueFrom(onLoginResult);
|
|
142
|
+
if (result.success === true) {
|
|
143
|
+
console.log('[AuthencatedConnectionClient] Logged in.');
|
|
144
|
+
return of({
|
|
145
|
+
connected: true,
|
|
146
|
+
info: result.info,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// handle login failure
|
|
151
|
+
console.error('[AuthenticatedConnectionClient] Login failed:', result);
|
|
152
|
+
// Resend request for indicator
|
|
153
|
+
this._authSource.sendAuthRequest({
|
|
154
|
+
type: 'request',
|
|
155
|
+
origin: this.origin,
|
|
156
|
+
kind: 'invalid_indicator',
|
|
157
|
+
indicator: indicator,
|
|
158
|
+
errorCode: result.errorCode,
|
|
159
|
+
errorMessage: result.errorMessage,
|
|
160
|
+
reason: result.reason,
|
|
161
|
+
});
|
|
162
|
+
return NEVER;
|
|
163
|
+
}
|
|
135
164
|
}
|
|
136
165
|
}
|
|
137
166
|
function onSubscribe(onSubscribe) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticatedConnectionClient.js","sourceRoot":"","sources":["AuthenticatedConnectionClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACH,eAAe,EACf,UAAU,
|
|
1
|
+
{"version":3,"file":"AuthenticatedConnectionClient.js","sourceRoot":"","sources":["AuthenticatedConnectionClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,7 +126,9 @@ export class InstRecordsClient {
|
|
|
126
126
|
};
|
|
127
127
|
}
|
|
128
128
|
else {
|
|
129
|
-
branchEvent =
|
|
129
|
+
branchEvent = {
|
|
130
|
+
...nameOrEvent,
|
|
131
|
+
};
|
|
130
132
|
}
|
|
131
133
|
const recordName = (_a = branchEvent.recordName) !== null && _a !== void 0 ? _a : null;
|
|
132
134
|
const inst = branchEvent.inst;
|
|
@@ -145,14 +147,16 @@ export class InstRecordsClient {
|
|
|
145
147
|
});
|
|
146
148
|
}
|
|
147
149
|
this._client.send(branchEvent);
|
|
148
|
-
let list = this._getSentUpdates(recordName, inst, branch);
|
|
149
|
-
for (let [key, value] of list) {
|
|
150
|
-
this._sendAddUpdates(recordName, inst, branch, value.updates, key);
|
|
151
|
-
}
|
|
152
150
|
}), switchMap((connected) => merge(this._client.event('repo/watch_branch_result').pipe(filter((event) => event.recordName === recordName &&
|
|
153
151
|
event.inst === inst &&
|
|
154
|
-
event.branch === branch), tap(() => {
|
|
152
|
+
event.branch === branch), tap((e) => {
|
|
155
153
|
this._connectedBranches.add(watchedBranchKey);
|
|
154
|
+
if (e.success) {
|
|
155
|
+
let list = this._getSentUpdates(recordName, inst, branch);
|
|
156
|
+
for (let [key, value] of list) {
|
|
157
|
+
this._sendAddUpdates(recordName, inst, branch, value.updates, key);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
156
160
|
})), this._client.event('repo/add_updates').pipe(filter((event) => event.recordName === recordName &&
|
|
157
161
|
event.inst === inst &&
|
|
158
162
|
event.branch === branch), scan((acc, event) => {
|
|
@@ -336,14 +340,20 @@ export class InstRecordsClient {
|
|
|
336
340
|
!this._isDeviceConnected(recordName, inst, branch, e.connection)), tap((e) => {
|
|
337
341
|
const devices = this._getConnectedDevices(recordName, inst, branch);
|
|
338
342
|
devices.set(e.connection.connectionId, e.connection);
|
|
339
|
-
}), map((e) => (
|
|
343
|
+
}), map((e) => ({
|
|
344
|
+
type: 'repo/connected_to_branch',
|
|
345
|
+
...e,
|
|
346
|
+
}))), this._client.event('repo/disconnected_from_branch').pipe(filter((e) => e.broadcast === false &&
|
|
340
347
|
e.recordName === recordName &&
|
|
341
348
|
e.inst === inst &&
|
|
342
349
|
e.branch === branch &&
|
|
343
350
|
this._isDeviceConnected(recordName, inst, branch, e.connection)), tap((e) => {
|
|
344
351
|
const devices = this._getConnectedDevices(recordName, inst, branch);
|
|
345
352
|
devices.delete(e.connection.connectionId);
|
|
346
|
-
}), map((e) => (
|
|
353
|
+
}), map((e) => ({
|
|
354
|
+
type: 'repo/disconnected_from_branch',
|
|
355
|
+
...e,
|
|
356
|
+
}))))), finalize(() => {
|
|
347
357
|
this._connectedDeviceBranches.delete(watchedBranchKey);
|
|
348
358
|
if (this._client.isConnected) {
|
|
349
359
|
this._client.send({
|