@casual-simulation/aux-records 3.8.1 → 3.10.2
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/AIChatInterface.d.ts +7 -43
- package/AIChatInterface.js +8 -6
- package/AIChatInterface.js.map +1 -1
- package/AIController.js +44 -49
- package/AIController.js.map +1 -1
- package/AIOpenAIRealtimeInterface.d.ts +1 -1
- package/AnthropicAIChatInterface.js +4 -4
- package/AnthropicAIChatInterface.js.map +1 -1
- package/AuthController.d.ts +78 -10
- package/AuthController.js +230 -166
- package/AuthController.js.map +1 -1
- package/AuthStore.d.ts +317 -4
- package/BigIntPatch.d.ts +1 -0
- package/BigIntPatch.js +24 -0
- package/BigIntPatch.js.map +1 -0
- package/BlockadeLabsGenerateSkyboxInterface.js +4 -4
- package/BlockadeLabsGenerateSkyboxInterface.js.map +1 -1
- package/CachingConfigStore.d.ts +8 -1
- package/CachingConfigStore.js +50 -0
- package/CachingConfigStore.js.map +1 -1
- package/ComIdConfig.d.ts +132 -86
- package/ComIdConfig.js +5 -5
- package/ComIdConfig.js.map +1 -1
- package/ConfigurationStore.d.ts +1393 -3
- package/ConfigurationStore.js +49 -0
- package/ConfigurationStore.js.map +1 -1
- package/DataRecordsController.js +28 -28
- package/DataRecordsController.js.map +1 -1
- package/EventRecordsController.js +9 -9
- package/EventRecordsController.js.map +1 -1
- package/FileRecordsController.js +18 -17
- package/FileRecordsController.js.map +1 -1
- package/GoogleAIChatInterface.js +4 -4
- package/GoogleAIChatInterface.js.map +1 -1
- package/HttpTestUtils.d.ts +48 -0
- package/HttpTestUtils.js +256 -0
- package/HttpTestUtils.js.map +1 -0
- package/LivekitController.js +2 -2
- package/LivekitController.js.map +1 -1
- package/LoomController.js +3 -4
- package/LoomController.js.map +1 -1
- package/MemoryStore.d.ts +60 -7
- package/MemoryStore.js +427 -59
- package/MemoryStore.js.map +1 -1
- package/MetricsStore.d.ts +11 -0
- package/ModerationConfiguration.d.ts +11 -85
- package/ModerationConfiguration.js +17 -17
- package/ModerationConfiguration.js.map +1 -1
- package/ModerationController.js +9 -11
- package/ModerationController.js.map +1 -1
- package/OpenAIChatInterface.js +8 -13
- package/OpenAIChatInterface.js.map +1 -1
- package/OpenAIImageInterface.js +4 -5
- package/OpenAIImageInterface.js.map +1 -1
- package/PolicyController.js +66 -73
- package/PolicyController.js.map +1 -1
- package/PolicyStore.d.ts +59 -33
- package/PolicyStore.js +35 -1
- package/PolicyStore.js.map +1 -1
- package/PrivoClient.d.ts +3 -1
- package/PrivoClient.js +2 -4
- package/PrivoClient.js.map +1 -1
- package/PrivoConfiguration.d.ts +6 -72
- package/PrivoConfiguration.js +30 -31
- package/PrivoConfiguration.js.map +1 -1
- package/README.md +276 -2
- package/RateLimitController.js +2 -2
- package/RateLimitController.js.map +1 -1
- package/RecordsClient.d.ts +3 -1
- package/RecordsClient.js +6 -6
- package/RecordsClient.js.map +1 -1
- package/RecordsController.d.ts +145 -3
- package/RecordsController.js +399 -61
- package/RecordsController.js.map +1 -1
- package/RecordsServer.d.ts +1932 -1109
- package/RecordsStore.d.ts +99 -14
- package/RecordsStore.js +8 -10
- package/RecordsStore.js.map +1 -1
- package/ServerConfig.d.ts +698 -9867
- package/ServerConfig.js +457 -377
- package/ServerConfig.js.map +1 -1
- package/SloydInterface.js +1 -1
- package/SloydInterface.js.map +1 -1
- package/StabilityAIImageInterface.js +6 -9
- package/StabilityAIImageInterface.js.map +1 -1
- package/StripeInterface.d.ts +431 -287
- package/StripeInterface.js +21 -1
- package/StripeInterface.js.map +1 -1
- package/SubscriptionConfigBuilder.d.ts +10 -1
- package/SubscriptionConfigBuilder.js +72 -41
- package/SubscriptionConfigBuilder.js.map +1 -1
- package/SubscriptionConfiguration.d.ts +606 -6334
- package/SubscriptionConfiguration.js +460 -277
- package/SubscriptionConfiguration.js.map +1 -1
- package/SubscriptionController.d.ts +677 -4
- package/SubscriptionController.js +2986 -186
- package/SubscriptionController.js.map +1 -1
- package/SystemNotificationMessenger.d.ts +14 -70
- package/SystemNotificationMessenger.js +17 -20
- package/SystemNotificationMessenger.js.map +1 -1
- package/TestUtils.d.ts +18 -3
- package/TestUtils.js +84 -8
- package/TestUtils.js.map +1 -1
- package/TypeUtils.d.ts +991 -0
- package/TypeUtils.js +2 -0
- package/TypeUtils.js.map +1 -0
- package/Utils.d.ts +59 -0
- package/Utils.js +507 -3
- package/Utils.js.map +1 -1
- package/Validations.d.ts +24 -108
- package/Validations.js +62 -45
- package/Validations.js.map +1 -1
- package/ViewTemplateRenderer.d.ts +39 -0
- package/ViewTemplateRenderer.js +19 -0
- package/ViewTemplateRenderer.js.map +1 -0
- package/contracts/ContractRecordsController.d.ts +58 -0
- package/contracts/ContractRecordsController.js +144 -0
- package/contracts/ContractRecordsController.js.map +1 -0
- package/contracts/ContractRecordsStore.d.ts +285 -0
- package/contracts/ContractRecordsStore.js +19 -0
- package/contracts/ContractRecordsStore.js.map +1 -0
- package/contracts/MemoryContractRecordsStore.d.ts +27 -0
- package/contracts/MemoryContractRecordsStore.js +124 -0
- package/contracts/MemoryContractRecordsStore.js.map +1 -0
- package/contracts/index.d.ts +4 -0
- package/contracts/index.js +21 -0
- package/contracts/index.js.map +1 -0
- package/crud/CrudHelpers.d.ts +25 -26
- package/crud/CrudHelpers.js +1 -1
- package/crud/CrudHelpers.js.map +1 -1
- package/crud/CrudRecordsController.js +13 -16
- package/crud/CrudRecordsController.js.map +1 -1
- package/crud/CrudRecordsControllerTests.d.ts +2 -2
- package/crud/CrudRecordsControllerTests.js +605 -580
- package/crud/CrudRecordsControllerTests.js.map +1 -1
- package/crud/MemoryCrudRecordsStore.js +1 -2
- package/crud/MemoryCrudRecordsStore.js.map +1 -1
- package/crud/sub/MemorySubCrudRecordsStore.js +4 -6
- package/crud/sub/MemorySubCrudRecordsStore.js.map +1 -1
- package/crud/sub/SubCrudRecordsController.js +8 -8
- package/crud/sub/SubCrudRecordsController.js.map +1 -1
- package/database/DatabaseRecordsController.js +1 -2
- package/database/DatabaseRecordsController.js.map +1 -1
- package/database/SqliteDatabaseInterface.js +1 -2
- package/database/SqliteDatabaseInterface.js.map +1 -1
- package/dns/DNSDomainNameValidator.d.ts +11 -0
- package/dns/DNSDomainNameValidator.js +59 -0
- package/dns/DNSDomainNameValidator.js.map +1 -0
- package/dns/DomainNameValidator.d.ts +36 -0
- package/dns/DomainNameValidator.js +19 -0
- package/dns/DomainNameValidator.js.map +1 -0
- package/dns/index.d.ts +3 -0
- package/dns/index.js +20 -0
- package/dns/index.js.map +1 -0
- package/financial/FinancialController.d.ts +272 -0
- package/financial/FinancialController.js +762 -0
- package/financial/FinancialController.js.map +1 -0
- package/financial/FinancialInterface.d.ts +352 -0
- package/financial/FinancialInterface.js +642 -0
- package/financial/FinancialInterface.js.map +1 -0
- package/financial/FinancialStore.d.ts +186 -0
- package/financial/FinancialStore.js +19 -0
- package/financial/FinancialStore.js.map +1 -0
- package/financial/MemoryFinancialInterface.d.ts +23 -0
- package/financial/MemoryFinancialInterface.js +592 -0
- package/financial/MemoryFinancialInterface.js.map +1 -0
- package/financial/TigerBeetleFinancialInterface.d.ts +46 -0
- package/financial/TigerBeetleFinancialInterface.js +109 -0
- package/financial/TigerBeetleFinancialInterface.js.map +1 -0
- package/financial/TigerBeetleTestUtils.d.ts +40 -0
- package/financial/TigerBeetleTestUtils.js +185 -0
- package/financial/TigerBeetleTestUtils.js.map +1 -0
- package/financial/Types.d.ts +1 -0
- package/financial/Types.js +801 -0
- package/financial/Types.js.map +1 -0
- package/financial/index.d.ts +6 -0
- package/financial/index.js +24 -0
- package/financial/index.js.map +1 -0
- package/index.d.ts +4 -0
- package/index.js +3 -0
- package/index.js.map +1 -1
- package/notifications/NotificationRecordsController.js +14 -14
- package/notifications/NotificationRecordsController.js.map +1 -1
- package/notifications/WebPushInterface.d.ts +24 -155
- package/notifications/WebPushInterface.js +2 -2
- package/notifications/WebPushInterface.js.map +1 -1
- package/package.json +72 -70
- package/packages/version/MemoryPackageVersionRecordsStore.js +12 -15
- package/packages/version/MemoryPackageVersionRecordsStore.js.map +1 -1
- package/packages/version/PackageVersionRecordsController.d.ts +19 -0
- package/packages/version/PackageVersionRecordsController.js +102 -22
- package/packages/version/PackageVersionRecordsController.js.map +1 -1
- package/packages/version/PackageVersionRecordsStore.js +6 -8
- package/packages/version/PackageVersionRecordsStore.js.map +1 -1
- package/purchasable-items/MemoryPurchasableItemRecordsStore.d.ts +7 -0
- package/purchasable-items/MemoryPurchasableItemRecordsStore.js +33 -0
- package/purchasable-items/MemoryPurchasableItemRecordsStore.js.map +1 -0
- package/purchasable-items/PurchasableItemRecordsController.d.ts +16 -0
- package/purchasable-items/PurchasableItemRecordsController.js +72 -0
- package/purchasable-items/PurchasableItemRecordsController.js.map +1 -0
- package/purchasable-items/PurchasableItemRecordsStore.d.ts +66 -0
- package/purchasable-items/PurchasableItemRecordsStore.js +2 -0
- package/purchasable-items/PurchasableItemRecordsStore.js.map +1 -0
- package/purchasable-items/index.d.ts +4 -0
- package/purchasable-items/index.js +21 -0
- package/purchasable-items/index.js.map +1 -0
- package/queue/MemoryQueue.js +1 -1
- package/queue/MemoryQueue.js.map +1 -1
- package/search/MemorySearchInterface.js +1 -2
- package/search/MemorySearchInterface.js.map +1 -1
- package/search/SearchRecordsController.d.ts +66 -244
- package/search/SearchRecordsController.js +35 -36
- package/search/SearchRecordsController.js.map +1 -1
- package/search/SearchSyncProcessor.d.ts +7 -83
- package/search/TypesenseSearchInterface.js +8 -11
- package/search/TypesenseSearchInterface.js.map +1 -1
- package/tracing/TracingDecorators.js +5 -8
- package/tracing/TracingDecorators.js.map +1 -1
- package/webhooks/WebhookEnvironment.d.ts +36 -560
- package/webhooks/WebhookEnvironment.js +1 -1
- package/webhooks/WebhookEnvironment.js.map +1 -1
- package/webhooks/WebhookRecordsController.js +14 -16
- package/webhooks/WebhookRecordsController.js.map +1 -1
- package/websockets/MemoryLockStore.d.ts +18 -0
- package/websockets/MemoryLockStore.js +2 -0
- package/websockets/MemoryLockStore.js.map +1 -0
- package/websockets/MemoryTempInstRecordsStore.js +15 -27
- package/websockets/MemoryTempInstRecordsStore.js.map +1 -1
- package/websockets/MemoryWebsocketConnectionStore.js +6 -8
- package/websockets/MemoryWebsocketConnectionStore.js.map +1 -1
- package/websockets/MemoryWebsocketMessenger.js +1 -2
- package/websockets/MemoryWebsocketMessenger.js.map +1 -1
- package/websockets/SplitInstRecordsStore.js +2 -2
- package/websockets/SplitInstRecordsStore.js.map +1 -1
- package/websockets/WebsocketController.d.ts +5 -0
- package/websockets/WebsocketController.js +122 -83
- package/websockets/WebsocketController.js.map +1 -1
- package/RecordsServer.js +0 -6435
- package/RecordsServer.js.map +0 -1
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The TigerBeetleFinancialInterface class implements the FinancialInterface
|
|
3
|
+
* using the TigerBeetle client.
|
|
4
|
+
*/
|
|
5
|
+
export class TigerBeetleFinancialInterface {
|
|
6
|
+
constructor(config) {
|
|
7
|
+
this._idOffset = 0n;
|
|
8
|
+
this._client = config.client;
|
|
9
|
+
this._id = config.id;
|
|
10
|
+
this._idOffset = config.idOffset || 0n;
|
|
11
|
+
}
|
|
12
|
+
_mapAccountIds(accounts, offset) {
|
|
13
|
+
if (offset === 0n) {
|
|
14
|
+
return accounts;
|
|
15
|
+
}
|
|
16
|
+
return accounts.map((a) => ({
|
|
17
|
+
...a,
|
|
18
|
+
id: a.id + offset,
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
21
|
+
_mapTransferIds(transfers, offset) {
|
|
22
|
+
if (offset === 0n) {
|
|
23
|
+
return transfers;
|
|
24
|
+
}
|
|
25
|
+
return transfers.map((t) => ({
|
|
26
|
+
...t,
|
|
27
|
+
id: t.id + offset,
|
|
28
|
+
credit_account_id: t.credit_account_id
|
|
29
|
+
? t.credit_account_id + offset
|
|
30
|
+
: 0n,
|
|
31
|
+
debit_account_id: t.debit_account_id
|
|
32
|
+
? t.debit_account_id + offset
|
|
33
|
+
: 0n,
|
|
34
|
+
pending_id: t.pending_id ? t.pending_id + offset : 0n,
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
_mapIds(ids, offset) {
|
|
38
|
+
if (offset === 0n) {
|
|
39
|
+
return ids;
|
|
40
|
+
}
|
|
41
|
+
return ids.map((id) => id + offset);
|
|
42
|
+
}
|
|
43
|
+
_mapAccountFilter(filter, offset) {
|
|
44
|
+
if (offset === 0n) {
|
|
45
|
+
return filter;
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
...filter,
|
|
49
|
+
account_id: filter.account_id !== 0n ? filter.account_id + offset : 0n,
|
|
50
|
+
user_data_128: filter.user_data_128 !== 0n
|
|
51
|
+
? filter.user_data_128 + offset
|
|
52
|
+
: 0n,
|
|
53
|
+
user_data_64: filter.user_data_64 !== 0n
|
|
54
|
+
? filter.user_data_64 + (offset % 2n ** 64n)
|
|
55
|
+
: 0n,
|
|
56
|
+
user_data_32: filter.user_data_32 !== 0
|
|
57
|
+
? filter.user_data_32 + Number(offset % 2n ** 32n)
|
|
58
|
+
: 0,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
_mapQueryFilter(filter, offset) {
|
|
62
|
+
if (offset === 0n) {
|
|
63
|
+
return filter;
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
...filter,
|
|
67
|
+
user_data_128: filter.user_data_128 !== 0n
|
|
68
|
+
? filter.user_data_128 + offset
|
|
69
|
+
: 0n,
|
|
70
|
+
user_data_64: filter.user_data_64 !== 0n
|
|
71
|
+
? filter.user_data_64 + (offset % 2n ** 64n)
|
|
72
|
+
: 0n,
|
|
73
|
+
user_data_32: filter.user_data_32 !== 0
|
|
74
|
+
? filter.user_data_32 + Number(offset % 2n ** 32n)
|
|
75
|
+
: 0,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
generateId() {
|
|
79
|
+
return this._id();
|
|
80
|
+
}
|
|
81
|
+
createAccount(account) {
|
|
82
|
+
return this._client.createAccounts(this._mapAccountIds([account], this._idOffset));
|
|
83
|
+
}
|
|
84
|
+
createAccounts(batch) {
|
|
85
|
+
return this._client.createAccounts(this._mapAccountIds(batch, this._idOffset));
|
|
86
|
+
}
|
|
87
|
+
createTransfers(batch) {
|
|
88
|
+
return this._client.createTransfers(this._mapTransferIds(batch, this._idOffset));
|
|
89
|
+
}
|
|
90
|
+
async lookupAccounts(batch) {
|
|
91
|
+
return this._mapAccountIds(await this._client.lookupAccounts(this._mapIds(batch, this._idOffset)), -this._idOffset);
|
|
92
|
+
}
|
|
93
|
+
async lookupTransfers(batch) {
|
|
94
|
+
return this._mapTransferIds(await this._client.lookupTransfers(this._mapIds(batch, this._idOffset)), -this._idOffset);
|
|
95
|
+
}
|
|
96
|
+
async getAccountTransfers(filter) {
|
|
97
|
+
return this._mapTransferIds(await this._client.getAccountTransfers(this._mapAccountFilter(filter, this._idOffset)), -this._idOffset);
|
|
98
|
+
}
|
|
99
|
+
getAccountBalances(filter) {
|
|
100
|
+
return this._client.getAccountBalances(this._mapAccountFilter(filter, this._idOffset));
|
|
101
|
+
}
|
|
102
|
+
async queryAccounts(filter) {
|
|
103
|
+
return this._mapAccountIds(await this._client.queryAccounts(this._mapQueryFilter(filter, this._idOffset)), -this._idOffset);
|
|
104
|
+
}
|
|
105
|
+
async queryTransfers(filter) {
|
|
106
|
+
return this._mapTransferIds(await this._client.queryTransfers(this._mapQueryFilter(filter, this._idOffset)), -this._idOffset);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=TigerBeetleFinancialInterface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TigerBeetleFinancialInterface.js","sourceRoot":"","sources":["TigerBeetleFinancialInterface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ChildProcess } from 'child_process';
|
|
2
|
+
/**
|
|
3
|
+
* Downloads and unzips a file to a temporary directory if it hasn't been downloaded before.
|
|
4
|
+
* @param url The URL of the file to download
|
|
5
|
+
* @param checksum Optional SHA-256 checksum to validate the downloaded file
|
|
6
|
+
* @returns The path to the directory containing the unzipped files
|
|
7
|
+
*/
|
|
8
|
+
export declare function downloadAndUnzipIfNeeded(url: string): Promise<string>;
|
|
9
|
+
export interface TigerBeetleInfo {
|
|
10
|
+
/**
|
|
11
|
+
* The directory where TigerBeetle is located
|
|
12
|
+
*/
|
|
13
|
+
tbDir: string;
|
|
14
|
+
/**
|
|
15
|
+
* The path to the TigerBeetle executable
|
|
16
|
+
*/
|
|
17
|
+
exePath: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Downloads the proper TigerBeetle executable for the current platform.
|
|
21
|
+
* @returns A TigerBeetleInfo object containing the directory and executable path
|
|
22
|
+
*/
|
|
23
|
+
export declare function getTigerBeetleInfo(): Promise<TigerBeetleInfo>;
|
|
24
|
+
/**
|
|
25
|
+
* Formats a TigerBeetle database file if it doesn't already exist.
|
|
26
|
+
* @param info The TigerBeetleInfo object containing the directory and executable path
|
|
27
|
+
* @param label The label to use for the TigerBeetle database file
|
|
28
|
+
* @returns The path to the formatted TigerBeetle database file
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatTigerBeetle(info: TigerBeetleInfo, label: string): Promise<string>;
|
|
31
|
+
/**
|
|
32
|
+
* Downloads and executes TigerBeetle, returning the process and port number.
|
|
33
|
+
* @param label The label to use for the TigerBeetle database file. Ensure that this is unique if you are running multiple instances.
|
|
34
|
+
* @returns A promise that resolves to an object containing the port number and the ChildProcess instance.
|
|
35
|
+
*/
|
|
36
|
+
export declare function runTigerBeetle(label: string): Promise<{
|
|
37
|
+
port: string | null;
|
|
38
|
+
process: ChildProcess;
|
|
39
|
+
}>;
|
|
40
|
+
//# sourceMappingURL=TigerBeetleTestUtils.d.ts.map
|
|
@@ -0,0 +1,185 @@
|
|
|
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 path from 'path';
|
|
19
|
+
import os from 'os';
|
|
20
|
+
import { sha256 } from 'hash.js';
|
|
21
|
+
import { existsSync } from 'fs';
|
|
22
|
+
import { mkdir, readdir, writeFile } from 'fs/promises';
|
|
23
|
+
// import { ZipReader, BlobReader, BlobWriter } from '@zip.js/zip.js';
|
|
24
|
+
import { promisify } from 'util';
|
|
25
|
+
import { spawn, execFile as execFileCallback } from 'child_process';
|
|
26
|
+
const { ZipReader, BlobReader, BlobWriter,
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
28
|
+
} = require('@zip.js/zip.js/dist/zip.js');
|
|
29
|
+
// const spawn = promisify(spawnCallback);
|
|
30
|
+
const execFile = promisify(execFileCallback);
|
|
31
|
+
/**
|
|
32
|
+
* Downloads and unzips a file to a temporary directory if it hasn't been downloaded before.
|
|
33
|
+
* @param url The URL of the file to download
|
|
34
|
+
* @param checksum Optional SHA-256 checksum to validate the downloaded file
|
|
35
|
+
* @returns The path to the directory containing the unzipped files
|
|
36
|
+
*/
|
|
37
|
+
export async function downloadAndUnzipIfNeeded(url) {
|
|
38
|
+
const urlHash = sha256().update(url).digest('hex');
|
|
39
|
+
const targetDir = path.join(os.tmpdir(), 'casualos-downloads', urlHash);
|
|
40
|
+
if (existsSync(targetDir) && (await readdir(targetDir)).length > 0) {
|
|
41
|
+
process.stdout.write(`Download already exists at ${targetDir}${os.EOL}`);
|
|
42
|
+
return targetDir;
|
|
43
|
+
}
|
|
44
|
+
await mkdir(targetDir, { recursive: true });
|
|
45
|
+
process.stdout.write(`Downloading ${url} to ${targetDir}...${os.EOL}`);
|
|
46
|
+
const resp = await fetch(url);
|
|
47
|
+
const reader = new BlobReader(await resp.blob());
|
|
48
|
+
const zip = new ZipReader(reader);
|
|
49
|
+
const entries = await zip.getEntries();
|
|
50
|
+
for (let entry of entries) {
|
|
51
|
+
if (entry.getData && entry.directory === false) {
|
|
52
|
+
const outputPath = path.join(targetDir, entry.filename);
|
|
53
|
+
const blob = await entry.getData(new BlobWriter('application/octet-stream'), {});
|
|
54
|
+
await writeFile(outputPath, new Uint8Array(await blob.arrayBuffer()), { flag: 'wx', mode: '755' });
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return targetDir;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Downloads the proper TigerBeetle executable for the current platform.
|
|
61
|
+
* @returns A TigerBeetleInfo object containing the directory and executable path
|
|
62
|
+
*/
|
|
63
|
+
export async function getTigerBeetleInfo() {
|
|
64
|
+
let tbDir;
|
|
65
|
+
let exePath;
|
|
66
|
+
if (os.platform() === 'win32') {
|
|
67
|
+
tbDir = await downloadAndUnzipIfNeeded('https://github.com/tigerbeetle/tigerbeetle/releases/latest/download/tigerbeetle-x86_64-windows.zip');
|
|
68
|
+
exePath = path.join(tbDir, 'tigerbeetle.exe');
|
|
69
|
+
}
|
|
70
|
+
else if (os.platform() === 'darwin') {
|
|
71
|
+
tbDir = await downloadAndUnzipIfNeeded('https://github.com/tigerbeetle/tigerbeetle/releases/latest/download/tigerbeetle-universal-macos.zip');
|
|
72
|
+
exePath = path.join(tbDir, 'tigerbeetle');
|
|
73
|
+
}
|
|
74
|
+
else if (os.platform() === 'linux') {
|
|
75
|
+
if (os.arch() === 'arm64') {
|
|
76
|
+
tbDir = await downloadAndUnzipIfNeeded('https://github.com/tigerbeetle/tigerbeetle/releases/latest/download/tigerbeetle-aarch64-linux.zip');
|
|
77
|
+
}
|
|
78
|
+
else if (os.arch() === 'x64') {
|
|
79
|
+
tbDir = await downloadAndUnzipIfNeeded('https://github.com/tigerbeetle/tigerbeetle/releases/latest/download/tigerbeetle-x86_64-linux.zip');
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
throw new Error(`Unsupported Linux architecture for TigerBeetle: ${os.arch()}`);
|
|
83
|
+
}
|
|
84
|
+
exePath = path.join(tbDir, 'tigerbeetle');
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
throw new Error(`Unsupported TigerBeetle platform: ${os.platform()}`);
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
tbDir,
|
|
91
|
+
exePath,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Formats a TigerBeetle database file if it doesn't already exist.
|
|
96
|
+
* @param info The TigerBeetleInfo object containing the directory and executable path
|
|
97
|
+
* @param label The label to use for the TigerBeetle database file
|
|
98
|
+
* @returns The path to the formatted TigerBeetle database file
|
|
99
|
+
*/
|
|
100
|
+
export async function formatTigerBeetle(info, label) {
|
|
101
|
+
const { tbDir, exePath } = info;
|
|
102
|
+
const tbFile = path.join(tbDir, `0_0.tigerbeetle.${label}`);
|
|
103
|
+
try {
|
|
104
|
+
process.stdout.write(`Formatting TigerBeetle file: ${tbFile}${os.EOL}`);
|
|
105
|
+
if (!existsSync(tbFile)) {
|
|
106
|
+
await execFile(exePath, [
|
|
107
|
+
'format',
|
|
108
|
+
'--cluster=0',
|
|
109
|
+
'--replica=0',
|
|
110
|
+
'--replica-count=1',
|
|
111
|
+
'--development',
|
|
112
|
+
tbFile,
|
|
113
|
+
], {
|
|
114
|
+
cwd: tbDir,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return tbFile;
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
process.stderr.write(`Failed to format TigerBeetle file: ${err}${os.EOL}`);
|
|
121
|
+
throw err;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Downloads and executes TigerBeetle, returning the process and port number.
|
|
126
|
+
* @param label The label to use for the TigerBeetle database file. Ensure that this is unique if you are running multiple instances.
|
|
127
|
+
* @returns A promise that resolves to an object containing the port number and the ChildProcess instance.
|
|
128
|
+
*/
|
|
129
|
+
export async function runTigerBeetle(label) {
|
|
130
|
+
const info = await getTigerBeetleInfo();
|
|
131
|
+
const tbFile = await formatTigerBeetle(info, label);
|
|
132
|
+
let process = null;
|
|
133
|
+
process = spawn(info.exePath, [
|
|
134
|
+
'start',
|
|
135
|
+
`--cache-grid=256MiB`,
|
|
136
|
+
`--addresses=0`,
|
|
137
|
+
'--development',
|
|
138
|
+
tbFile,
|
|
139
|
+
], {
|
|
140
|
+
cwd: info.tbDir,
|
|
141
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
142
|
+
});
|
|
143
|
+
globalThis.process.stdout.write(`TigerBeetle started with PID: ${process.pid}${os.EOL}`);
|
|
144
|
+
// read first line from stdout to get the port
|
|
145
|
+
const stdout = process.stdout;
|
|
146
|
+
const linePromise = new Promise((resolve, reject) => {
|
|
147
|
+
let line = '';
|
|
148
|
+
const dataListener = (data) => {
|
|
149
|
+
const chunk = data.toString();
|
|
150
|
+
let newline = chunk.indexOf('\n');
|
|
151
|
+
if (newline < 0) {
|
|
152
|
+
line += chunk;
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
line += chunk.slice(0, newline);
|
|
156
|
+
stdout.off('data', dataListener);
|
|
157
|
+
resolve(line);
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
stdout.on('data', dataListener);
|
|
161
|
+
});
|
|
162
|
+
const closePromise = new Promise((resolve) => {
|
|
163
|
+
process.on('close', () => {
|
|
164
|
+
globalThis.process.stdout.write(`TigerBeetle process closed${os.EOL}`);
|
|
165
|
+
resolve();
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
const line = await Promise.race([linePromise, closePromise.then(() => '')]);
|
|
169
|
+
return {
|
|
170
|
+
port: line !== '' ? line.trim() : null,
|
|
171
|
+
process,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
// let _runTigerBeetlePromise: Promise<ChildProcess> | null = null;
|
|
175
|
+
// export async function ensureTigerBeetleIsRunning() {
|
|
176
|
+
// if (!_runTigerBeetlePromise) {
|
|
177
|
+
// _runTigerBeetlePromise = runTigerBeetle().catch((err) => {
|
|
178
|
+
// console.error('Failed to start TigerBeetle:', err);
|
|
179
|
+
// _runTigerBeetlePromise = null;
|
|
180
|
+
// throw err;
|
|
181
|
+
// });
|
|
182
|
+
// }
|
|
183
|
+
// return _runTigerBeetlePromise;
|
|
184
|
+
// }
|
|
185
|
+
//# sourceMappingURL=TigerBeetleTestUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TigerBeetleTestUtils.js","sourceRoot":"","sources":["TigerBeetleTestUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=Types.d.ts.map
|