@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.
Files changed (239) hide show
  1. package/AIChatInterface.d.ts +7 -43
  2. package/AIChatInterface.js +8 -6
  3. package/AIChatInterface.js.map +1 -1
  4. package/AIController.js +44 -49
  5. package/AIController.js.map +1 -1
  6. package/AIOpenAIRealtimeInterface.d.ts +1 -1
  7. package/AnthropicAIChatInterface.js +4 -4
  8. package/AnthropicAIChatInterface.js.map +1 -1
  9. package/AuthController.d.ts +78 -10
  10. package/AuthController.js +230 -166
  11. package/AuthController.js.map +1 -1
  12. package/AuthStore.d.ts +317 -4
  13. package/BigIntPatch.d.ts +1 -0
  14. package/BigIntPatch.js +24 -0
  15. package/BigIntPatch.js.map +1 -0
  16. package/BlockadeLabsGenerateSkyboxInterface.js +4 -4
  17. package/BlockadeLabsGenerateSkyboxInterface.js.map +1 -1
  18. package/CachingConfigStore.d.ts +8 -1
  19. package/CachingConfigStore.js +50 -0
  20. package/CachingConfigStore.js.map +1 -1
  21. package/ComIdConfig.d.ts +132 -86
  22. package/ComIdConfig.js +5 -5
  23. package/ComIdConfig.js.map +1 -1
  24. package/ConfigurationStore.d.ts +1393 -3
  25. package/ConfigurationStore.js +49 -0
  26. package/ConfigurationStore.js.map +1 -1
  27. package/DataRecordsController.js +28 -28
  28. package/DataRecordsController.js.map +1 -1
  29. package/EventRecordsController.js +9 -9
  30. package/EventRecordsController.js.map +1 -1
  31. package/FileRecordsController.js +18 -17
  32. package/FileRecordsController.js.map +1 -1
  33. package/GoogleAIChatInterface.js +4 -4
  34. package/GoogleAIChatInterface.js.map +1 -1
  35. package/HttpTestUtils.d.ts +48 -0
  36. package/HttpTestUtils.js +256 -0
  37. package/HttpTestUtils.js.map +1 -0
  38. package/LivekitController.js +2 -2
  39. package/LivekitController.js.map +1 -1
  40. package/LoomController.js +3 -4
  41. package/LoomController.js.map +1 -1
  42. package/MemoryStore.d.ts +60 -7
  43. package/MemoryStore.js +427 -59
  44. package/MemoryStore.js.map +1 -1
  45. package/MetricsStore.d.ts +11 -0
  46. package/ModerationConfiguration.d.ts +11 -85
  47. package/ModerationConfiguration.js +17 -17
  48. package/ModerationConfiguration.js.map +1 -1
  49. package/ModerationController.js +9 -11
  50. package/ModerationController.js.map +1 -1
  51. package/OpenAIChatInterface.js +8 -13
  52. package/OpenAIChatInterface.js.map +1 -1
  53. package/OpenAIImageInterface.js +4 -5
  54. package/OpenAIImageInterface.js.map +1 -1
  55. package/PolicyController.js +66 -73
  56. package/PolicyController.js.map +1 -1
  57. package/PolicyStore.d.ts +59 -33
  58. package/PolicyStore.js +35 -1
  59. package/PolicyStore.js.map +1 -1
  60. package/PrivoClient.d.ts +3 -1
  61. package/PrivoClient.js +2 -4
  62. package/PrivoClient.js.map +1 -1
  63. package/PrivoConfiguration.d.ts +6 -72
  64. package/PrivoConfiguration.js +30 -31
  65. package/PrivoConfiguration.js.map +1 -1
  66. package/README.md +276 -2
  67. package/RateLimitController.js +2 -2
  68. package/RateLimitController.js.map +1 -1
  69. package/RecordsClient.d.ts +3 -1
  70. package/RecordsClient.js +6 -6
  71. package/RecordsClient.js.map +1 -1
  72. package/RecordsController.d.ts +145 -3
  73. package/RecordsController.js +399 -61
  74. package/RecordsController.js.map +1 -1
  75. package/RecordsServer.d.ts +1932 -1109
  76. package/RecordsStore.d.ts +99 -14
  77. package/RecordsStore.js +8 -10
  78. package/RecordsStore.js.map +1 -1
  79. package/ServerConfig.d.ts +698 -9867
  80. package/ServerConfig.js +457 -377
  81. package/ServerConfig.js.map +1 -1
  82. package/SloydInterface.js +1 -1
  83. package/SloydInterface.js.map +1 -1
  84. package/StabilityAIImageInterface.js +6 -9
  85. package/StabilityAIImageInterface.js.map +1 -1
  86. package/StripeInterface.d.ts +431 -287
  87. package/StripeInterface.js +21 -1
  88. package/StripeInterface.js.map +1 -1
  89. package/SubscriptionConfigBuilder.d.ts +10 -1
  90. package/SubscriptionConfigBuilder.js +72 -41
  91. package/SubscriptionConfigBuilder.js.map +1 -1
  92. package/SubscriptionConfiguration.d.ts +606 -6334
  93. package/SubscriptionConfiguration.js +460 -277
  94. package/SubscriptionConfiguration.js.map +1 -1
  95. package/SubscriptionController.d.ts +677 -4
  96. package/SubscriptionController.js +2986 -186
  97. package/SubscriptionController.js.map +1 -1
  98. package/SystemNotificationMessenger.d.ts +14 -70
  99. package/SystemNotificationMessenger.js +17 -20
  100. package/SystemNotificationMessenger.js.map +1 -1
  101. package/TestUtils.d.ts +18 -3
  102. package/TestUtils.js +84 -8
  103. package/TestUtils.js.map +1 -1
  104. package/TypeUtils.d.ts +991 -0
  105. package/TypeUtils.js +2 -0
  106. package/TypeUtils.js.map +1 -0
  107. package/Utils.d.ts +59 -0
  108. package/Utils.js +507 -3
  109. package/Utils.js.map +1 -1
  110. package/Validations.d.ts +24 -108
  111. package/Validations.js +62 -45
  112. package/Validations.js.map +1 -1
  113. package/ViewTemplateRenderer.d.ts +39 -0
  114. package/ViewTemplateRenderer.js +19 -0
  115. package/ViewTemplateRenderer.js.map +1 -0
  116. package/contracts/ContractRecordsController.d.ts +58 -0
  117. package/contracts/ContractRecordsController.js +144 -0
  118. package/contracts/ContractRecordsController.js.map +1 -0
  119. package/contracts/ContractRecordsStore.d.ts +285 -0
  120. package/contracts/ContractRecordsStore.js +19 -0
  121. package/contracts/ContractRecordsStore.js.map +1 -0
  122. package/contracts/MemoryContractRecordsStore.d.ts +27 -0
  123. package/contracts/MemoryContractRecordsStore.js +124 -0
  124. package/contracts/MemoryContractRecordsStore.js.map +1 -0
  125. package/contracts/index.d.ts +4 -0
  126. package/contracts/index.js +21 -0
  127. package/contracts/index.js.map +1 -0
  128. package/crud/CrudHelpers.d.ts +25 -26
  129. package/crud/CrudHelpers.js +1 -1
  130. package/crud/CrudHelpers.js.map +1 -1
  131. package/crud/CrudRecordsController.js +13 -16
  132. package/crud/CrudRecordsController.js.map +1 -1
  133. package/crud/CrudRecordsControllerTests.d.ts +2 -2
  134. package/crud/CrudRecordsControllerTests.js +605 -580
  135. package/crud/CrudRecordsControllerTests.js.map +1 -1
  136. package/crud/MemoryCrudRecordsStore.js +1 -2
  137. package/crud/MemoryCrudRecordsStore.js.map +1 -1
  138. package/crud/sub/MemorySubCrudRecordsStore.js +4 -6
  139. package/crud/sub/MemorySubCrudRecordsStore.js.map +1 -1
  140. package/crud/sub/SubCrudRecordsController.js +8 -8
  141. package/crud/sub/SubCrudRecordsController.js.map +1 -1
  142. package/database/DatabaseRecordsController.js +1 -2
  143. package/database/DatabaseRecordsController.js.map +1 -1
  144. package/database/SqliteDatabaseInterface.js +1 -2
  145. package/database/SqliteDatabaseInterface.js.map +1 -1
  146. package/dns/DNSDomainNameValidator.d.ts +11 -0
  147. package/dns/DNSDomainNameValidator.js +59 -0
  148. package/dns/DNSDomainNameValidator.js.map +1 -0
  149. package/dns/DomainNameValidator.d.ts +36 -0
  150. package/dns/DomainNameValidator.js +19 -0
  151. package/dns/DomainNameValidator.js.map +1 -0
  152. package/dns/index.d.ts +3 -0
  153. package/dns/index.js +20 -0
  154. package/dns/index.js.map +1 -0
  155. package/financial/FinancialController.d.ts +272 -0
  156. package/financial/FinancialController.js +762 -0
  157. package/financial/FinancialController.js.map +1 -0
  158. package/financial/FinancialInterface.d.ts +352 -0
  159. package/financial/FinancialInterface.js +642 -0
  160. package/financial/FinancialInterface.js.map +1 -0
  161. package/financial/FinancialStore.d.ts +186 -0
  162. package/financial/FinancialStore.js +19 -0
  163. package/financial/FinancialStore.js.map +1 -0
  164. package/financial/MemoryFinancialInterface.d.ts +23 -0
  165. package/financial/MemoryFinancialInterface.js +592 -0
  166. package/financial/MemoryFinancialInterface.js.map +1 -0
  167. package/financial/TigerBeetleFinancialInterface.d.ts +46 -0
  168. package/financial/TigerBeetleFinancialInterface.js +109 -0
  169. package/financial/TigerBeetleFinancialInterface.js.map +1 -0
  170. package/financial/TigerBeetleTestUtils.d.ts +40 -0
  171. package/financial/TigerBeetleTestUtils.js +185 -0
  172. package/financial/TigerBeetleTestUtils.js.map +1 -0
  173. package/financial/Types.d.ts +1 -0
  174. package/financial/Types.js +801 -0
  175. package/financial/Types.js.map +1 -0
  176. package/financial/index.d.ts +6 -0
  177. package/financial/index.js +24 -0
  178. package/financial/index.js.map +1 -0
  179. package/index.d.ts +4 -0
  180. package/index.js +3 -0
  181. package/index.js.map +1 -1
  182. package/notifications/NotificationRecordsController.js +14 -14
  183. package/notifications/NotificationRecordsController.js.map +1 -1
  184. package/notifications/WebPushInterface.d.ts +24 -155
  185. package/notifications/WebPushInterface.js +2 -2
  186. package/notifications/WebPushInterface.js.map +1 -1
  187. package/package.json +72 -70
  188. package/packages/version/MemoryPackageVersionRecordsStore.js +12 -15
  189. package/packages/version/MemoryPackageVersionRecordsStore.js.map +1 -1
  190. package/packages/version/PackageVersionRecordsController.d.ts +19 -0
  191. package/packages/version/PackageVersionRecordsController.js +102 -22
  192. package/packages/version/PackageVersionRecordsController.js.map +1 -1
  193. package/packages/version/PackageVersionRecordsStore.js +6 -8
  194. package/packages/version/PackageVersionRecordsStore.js.map +1 -1
  195. package/purchasable-items/MemoryPurchasableItemRecordsStore.d.ts +7 -0
  196. package/purchasable-items/MemoryPurchasableItemRecordsStore.js +33 -0
  197. package/purchasable-items/MemoryPurchasableItemRecordsStore.js.map +1 -0
  198. package/purchasable-items/PurchasableItemRecordsController.d.ts +16 -0
  199. package/purchasable-items/PurchasableItemRecordsController.js +72 -0
  200. package/purchasable-items/PurchasableItemRecordsController.js.map +1 -0
  201. package/purchasable-items/PurchasableItemRecordsStore.d.ts +66 -0
  202. package/purchasable-items/PurchasableItemRecordsStore.js +2 -0
  203. package/purchasable-items/PurchasableItemRecordsStore.js.map +1 -0
  204. package/purchasable-items/index.d.ts +4 -0
  205. package/purchasable-items/index.js +21 -0
  206. package/purchasable-items/index.js.map +1 -0
  207. package/queue/MemoryQueue.js +1 -1
  208. package/queue/MemoryQueue.js.map +1 -1
  209. package/search/MemorySearchInterface.js +1 -2
  210. package/search/MemorySearchInterface.js.map +1 -1
  211. package/search/SearchRecordsController.d.ts +66 -244
  212. package/search/SearchRecordsController.js +35 -36
  213. package/search/SearchRecordsController.js.map +1 -1
  214. package/search/SearchSyncProcessor.d.ts +7 -83
  215. package/search/TypesenseSearchInterface.js +8 -11
  216. package/search/TypesenseSearchInterface.js.map +1 -1
  217. package/tracing/TracingDecorators.js +5 -8
  218. package/tracing/TracingDecorators.js.map +1 -1
  219. package/webhooks/WebhookEnvironment.d.ts +36 -560
  220. package/webhooks/WebhookEnvironment.js +1 -1
  221. package/webhooks/WebhookEnvironment.js.map +1 -1
  222. package/webhooks/WebhookRecordsController.js +14 -16
  223. package/webhooks/WebhookRecordsController.js.map +1 -1
  224. package/websockets/MemoryLockStore.d.ts +18 -0
  225. package/websockets/MemoryLockStore.js +2 -0
  226. package/websockets/MemoryLockStore.js.map +1 -0
  227. package/websockets/MemoryTempInstRecordsStore.js +15 -27
  228. package/websockets/MemoryTempInstRecordsStore.js.map +1 -1
  229. package/websockets/MemoryWebsocketConnectionStore.js +6 -8
  230. package/websockets/MemoryWebsocketConnectionStore.js.map +1 -1
  231. package/websockets/MemoryWebsocketMessenger.js +1 -2
  232. package/websockets/MemoryWebsocketMessenger.js.map +1 -1
  233. package/websockets/SplitInstRecordsStore.js +2 -2
  234. package/websockets/SplitInstRecordsStore.js.map +1 -1
  235. package/websockets/WebsocketController.d.ts +5 -0
  236. package/websockets/WebsocketController.js +122 -83
  237. package/websockets/WebsocketController.js.map +1 -1
  238. package/RecordsServer.js +0 -6435
  239. 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