pluresdb 1.0.1 → 1.3.1
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/README.md +100 -5
- package/dist/.tsbuildinfo +1 -1
- package/dist/better-sqlite3-shared.d.ts +12 -0
- package/dist/better-sqlite3-shared.d.ts.map +1 -0
- package/dist/better-sqlite3-shared.js +143 -0
- package/dist/better-sqlite3-shared.js.map +1 -0
- package/dist/better-sqlite3.d.ts +4 -0
- package/dist/better-sqlite3.d.ts.map +1 -0
- package/dist/better-sqlite3.js +8 -0
- package/dist/better-sqlite3.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +21 -16
- package/dist/cli.js.map +1 -1
- package/dist/node-index.d.ts +98 -2
- package/dist/node-index.d.ts.map +1 -1
- package/dist/node-index.js +312 -6
- package/dist/node-index.js.map +1 -1
- package/dist/node-wrapper.d.ts.map +1 -1
- package/dist/node-wrapper.js +5 -3
- package/dist/node-wrapper.js.map +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/node-types.d.ts +12 -0
- package/dist/types/node-types.d.ts.map +1 -1
- package/dist/types/node-types.js.map +1 -1
- package/dist/vscode/extension.d.ts.map +1 -1
- package/dist/vscode/extension.js +4 -4
- package/dist/vscode/extension.js.map +1 -1
- package/examples/basic-usage.d.ts +1 -1
- package/examples/vscode-extension-example/src/extension.ts +15 -6
- package/examples/vscode-extension-integration.d.ts +24 -17
- package/examples/vscode-extension-integration.js +140 -106
- package/examples/vscode-extension-integration.ts +1 -1
- package/{src → legacy}/benchmarks/memory-benchmarks.ts +85 -51
- package/{src → legacy}/benchmarks/run-benchmarks.ts +32 -10
- package/legacy/better-sqlite3-shared.ts +157 -0
- package/legacy/better-sqlite3.ts +4 -0
- package/{src → legacy}/cli.ts +14 -4
- package/{src → legacy}/config.ts +2 -1
- package/{src → legacy}/core/crdt.ts +4 -1
- package/{src → legacy}/core/database.ts +57 -22
- package/{src → legacy}/healthcheck.ts +11 -5
- package/{src → legacy}/http/api-server.ts +125 -21
- package/{src → legacy}/index.ts +2 -2
- package/{src → legacy}/logic/rules.ts +3 -1
- package/{src → legacy}/main.ts +11 -4
- package/legacy/node-index.ts +823 -0
- package/{src → legacy}/node-wrapper.ts +18 -9
- package/{src → legacy}/sqlite-compat.ts +63 -16
- package/{src → legacy}/sqlite3-compat.ts +2 -2
- package/{src → legacy}/storage/kv-storage.ts +3 -1
- package/{src → legacy}/tests/core.test.ts +37 -13
- package/{src → legacy}/tests/fixtures/test-data.json +6 -1
- package/{src → legacy}/tests/integration/api-server.test.ts +110 -8
- package/{src → legacy}/tests/integration/mesh-network.test.ts +8 -2
- package/{src → legacy}/tests/logic.test.ts +6 -2
- package/{src → legacy}/tests/performance/load.test.ts +4 -2
- package/{src → legacy}/tests/security/input-validation.test.ts +5 -1
- package/{src → legacy}/tests/unit/core.test.ts +13 -3
- package/{src → legacy}/tests/unit/subscriptions.test.ts +1 -1
- package/{src → legacy}/tests/vscode_extension_test.ts +39 -11
- package/{src → legacy}/types/node-types.ts +14 -0
- package/{src → legacy}/vscode/extension.ts +37 -14
- package/package.json +19 -9
- package/scripts/compiled-crud-verify.ts +3 -1
- package/scripts/dogfood.ts +55 -16
- package/scripts/postinstall.js +4 -3
- package/scripts/release-check.js +190 -0
- package/scripts/run-tests.ts +5 -2
- package/scripts/update-changelog.js +214 -0
- package/web/svelte/package.json +5 -5
- package/src/node-index.ts +0 -385
- /package/{src → legacy}/main.rs +0 -0
- /package/{src → legacy}/network/websocket-server.ts +0 -0
- /package/{src → legacy}/tests/fixtures/performance-data.json +0 -0
- /package/{src → legacy}/tests/unit/vector-search.test.ts +0 -0
- /package/{src → legacy}/types/index.ts +0 -0
- /package/{src → legacy}/util/debug.ts +0 -0
- /package/{src → legacy}/vector/index.ts +0 -0
package/dist/cli.js
CHANGED
|
@@ -37,12 +37,16 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
37
37
|
return result;
|
|
38
38
|
};
|
|
39
39
|
})();
|
|
40
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
42
|
+
};
|
|
40
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
44
|
const node_wrapper_1 = require("./node-wrapper");
|
|
42
45
|
const path = __importStar(require("path"));
|
|
43
46
|
const fs = __importStar(require("fs"));
|
|
47
|
+
const node_process_1 = __importDefault(require("node:process"));
|
|
44
48
|
// Parse command line arguments
|
|
45
|
-
const args =
|
|
49
|
+
const args = node_process_1.default.argv.slice(2);
|
|
46
50
|
const command = args[0];
|
|
47
51
|
if (!command) {
|
|
48
52
|
console.log(`
|
|
@@ -70,12 +74,12 @@ Examples:
|
|
|
70
74
|
pluresdb query "SELECT * FROM users"
|
|
71
75
|
pluresdb vsearch "machine learning"
|
|
72
76
|
`);
|
|
73
|
-
|
|
77
|
+
node_process_1.default.exit(0);
|
|
74
78
|
}
|
|
75
79
|
if (command === "--version") {
|
|
76
80
|
const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, "../package.json"), "utf8"));
|
|
77
81
|
console.log(packageJson.version);
|
|
78
|
-
|
|
82
|
+
node_process_1.default.exit(0);
|
|
79
83
|
}
|
|
80
84
|
if (command === "--help") {
|
|
81
85
|
console.log(`
|
|
@@ -103,7 +107,7 @@ Examples:
|
|
|
103
107
|
pluresdb query "SELECT * FROM users"
|
|
104
108
|
pluresdb vsearch "machine learning"
|
|
105
109
|
`);
|
|
106
|
-
|
|
110
|
+
node_process_1.default.exit(0);
|
|
107
111
|
}
|
|
108
112
|
// Parse options
|
|
109
113
|
const options = {};
|
|
@@ -132,7 +136,8 @@ async function main() {
|
|
|
132
136
|
const config = {
|
|
133
137
|
port: options.port ? parseInt(options.port) : 34567,
|
|
134
138
|
host: options.host || "localhost",
|
|
135
|
-
dataDir: options["data-dir"] ||
|
|
139
|
+
dataDir: options["data-dir"] ||
|
|
140
|
+
path.join(require("os").homedir(), ".pluresdb"),
|
|
136
141
|
webPort: options["web-port"] ? parseInt(options["web-port"]) : 34568,
|
|
137
142
|
logLevel: options["log-level"] || "info",
|
|
138
143
|
};
|
|
@@ -143,10 +148,10 @@ async function main() {
|
|
|
143
148
|
console.log(`📁 Data: ${config.dataDir}`);
|
|
144
149
|
console.log(`\nPress Ctrl+C to stop the server`);
|
|
145
150
|
// Handle graceful shutdown
|
|
146
|
-
|
|
151
|
+
node_process_1.default.on("SIGINT", async () => {
|
|
147
152
|
console.log("\n🛑 Shutting down PluresDB...");
|
|
148
153
|
await plures.stop();
|
|
149
|
-
|
|
154
|
+
node_process_1.default.exit(0);
|
|
150
155
|
});
|
|
151
156
|
// Keep the process alive
|
|
152
157
|
await new Promise(() => { });
|
|
@@ -159,7 +164,7 @@ async function main() {
|
|
|
159
164
|
case "put":
|
|
160
165
|
if (args.length < 3) {
|
|
161
166
|
console.error("Error: put command requires key and value");
|
|
162
|
-
|
|
167
|
+
node_process_1.default.exit(1);
|
|
163
168
|
}
|
|
164
169
|
const key = args[1];
|
|
165
170
|
const value = JSON.parse(args[2]);
|
|
@@ -169,7 +174,7 @@ async function main() {
|
|
|
169
174
|
case "get":
|
|
170
175
|
if (args.length < 2) {
|
|
171
176
|
console.error("Error: get command requires key");
|
|
172
|
-
|
|
177
|
+
node_process_1.default.exit(1);
|
|
173
178
|
}
|
|
174
179
|
const getKey = args[1];
|
|
175
180
|
const result = await plures.get(getKey);
|
|
@@ -183,7 +188,7 @@ async function main() {
|
|
|
183
188
|
case "delete":
|
|
184
189
|
if (args.length < 2) {
|
|
185
190
|
console.error("Error: delete command requires key");
|
|
186
|
-
|
|
191
|
+
node_process_1.default.exit(1);
|
|
187
192
|
}
|
|
188
193
|
const deleteKey = args[1];
|
|
189
194
|
await plures.delete(deleteKey);
|
|
@@ -192,7 +197,7 @@ async function main() {
|
|
|
192
197
|
case "query":
|
|
193
198
|
if (args.length < 2) {
|
|
194
199
|
console.error("Error: query command requires SQL");
|
|
195
|
-
|
|
200
|
+
node_process_1.default.exit(1);
|
|
196
201
|
}
|
|
197
202
|
const sql = args[1];
|
|
198
203
|
const queryResult = await plures.query(sql);
|
|
@@ -201,7 +206,7 @@ async function main() {
|
|
|
201
206
|
case "vsearch":
|
|
202
207
|
if (args.length < 2) {
|
|
203
208
|
console.error("Error: vsearch command requires query");
|
|
204
|
-
|
|
209
|
+
node_process_1.default.exit(1);
|
|
205
210
|
}
|
|
206
211
|
const searchQuery = args[1];
|
|
207
212
|
const limit = options.limit ? parseInt(options.limit) : 10;
|
|
@@ -217,7 +222,7 @@ async function main() {
|
|
|
217
222
|
if (args[1] === "set") {
|
|
218
223
|
if (args.length < 4) {
|
|
219
224
|
console.error("Error: config set requires key and value");
|
|
220
|
-
|
|
225
|
+
node_process_1.default.exit(1);
|
|
221
226
|
}
|
|
222
227
|
const configKey = args[2];
|
|
223
228
|
const configValue = args[3];
|
|
@@ -232,7 +237,7 @@ async function main() {
|
|
|
232
237
|
default:
|
|
233
238
|
console.error(`Unknown command: ${command}`);
|
|
234
239
|
console.log('Run "pluresdb --help" for usage information');
|
|
235
|
-
|
|
240
|
+
node_process_1.default.exit(1);
|
|
236
241
|
}
|
|
237
242
|
}
|
|
238
243
|
finally {
|
|
@@ -242,12 +247,12 @@ async function main() {
|
|
|
242
247
|
}
|
|
243
248
|
catch (error) {
|
|
244
249
|
console.error("Error:", error instanceof Error ? error.message : String(error));
|
|
245
|
-
|
|
250
|
+
node_process_1.default.exit(1);
|
|
246
251
|
}
|
|
247
252
|
}
|
|
248
253
|
// Run the main function
|
|
249
254
|
main().catch((error) => {
|
|
250
255
|
console.error("Fatal error:", error instanceof Error ? error.message : String(error));
|
|
251
|
-
|
|
256
|
+
node_process_1.default.exit(1);
|
|
252
257
|
});
|
|
253
258
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../legacy/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/node-index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* This provides a clean API for VSCode extensions and other Node.js applications
|
|
4
4
|
*/
|
|
5
5
|
import { EventEmitter } from "node:events";
|
|
6
|
-
import { PluresDBOptions } from "./types/node-types";
|
|
6
|
+
import { BetterSQLite3Options, BetterSQLite3RunResult, Peer, PluresDBOptions, QueryResult } from "./types/node-types";
|
|
7
7
|
export declare class PluresNode extends EventEmitter {
|
|
8
8
|
private process;
|
|
9
9
|
private config;
|
|
@@ -27,6 +27,31 @@ export declare class PluresNode extends EventEmitter {
|
|
|
27
27
|
list(prefix?: string): Promise<string[]>;
|
|
28
28
|
getConfig(): Promise<any>;
|
|
29
29
|
setConfig(config: any): Promise<void>;
|
|
30
|
+
createIdentity(options: {
|
|
31
|
+
name: string;
|
|
32
|
+
email: string;
|
|
33
|
+
}): Promise<{
|
|
34
|
+
id: string;
|
|
35
|
+
publicKey: string;
|
|
36
|
+
}>;
|
|
37
|
+
searchPeers(query: string): Promise<Peer[]>;
|
|
38
|
+
shareNode(nodeId: string, targetPeerId: string, options?: {
|
|
39
|
+
accessLevel?: "read-only" | "read-write" | "admin";
|
|
40
|
+
}): Promise<{
|
|
41
|
+
sharedNodeId: string;
|
|
42
|
+
}>;
|
|
43
|
+
acceptSharedNode(sharedNodeId: string): Promise<{
|
|
44
|
+
success: boolean;
|
|
45
|
+
}>;
|
|
46
|
+
addDevice(device: {
|
|
47
|
+
name: string;
|
|
48
|
+
type: "laptop" | "phone" | "server" | "desktop";
|
|
49
|
+
}): Promise<{
|
|
50
|
+
id: string;
|
|
51
|
+
}>;
|
|
52
|
+
syncWithDevice(deviceId: string): Promise<{
|
|
53
|
+
success: boolean;
|
|
54
|
+
}>;
|
|
30
55
|
}
|
|
31
56
|
export declare class SQLiteCompatibleAPI {
|
|
32
57
|
private plures;
|
|
@@ -45,8 +70,79 @@ export declare class SQLiteCompatibleAPI {
|
|
|
45
70
|
getApiUrl(): string;
|
|
46
71
|
getWebUrl(): string;
|
|
47
72
|
isRunning(): boolean;
|
|
73
|
+
createIdentity(options: {
|
|
74
|
+
name: string;
|
|
75
|
+
email: string;
|
|
76
|
+
}): Promise<{
|
|
77
|
+
id: string;
|
|
78
|
+
publicKey: string;
|
|
79
|
+
}>;
|
|
80
|
+
searchPeers(query: string): Promise<Peer[]>;
|
|
81
|
+
shareNode(nodeId: string, targetPeerId: string, options?: {
|
|
82
|
+
accessLevel?: "read-only" | "read-write" | "admin";
|
|
83
|
+
}): Promise<{
|
|
84
|
+
sharedNodeId: string;
|
|
85
|
+
}>;
|
|
86
|
+
acceptSharedNode(sharedNodeId: string): Promise<{
|
|
87
|
+
success: boolean;
|
|
88
|
+
}>;
|
|
89
|
+
addDevice(device: {
|
|
90
|
+
name: string;
|
|
91
|
+
type: "laptop" | "phone" | "server" | "desktop";
|
|
92
|
+
}): Promise<{
|
|
93
|
+
id: string;
|
|
94
|
+
}>;
|
|
95
|
+
syncWithDevice(deviceId: string): Promise<{
|
|
96
|
+
success: boolean;
|
|
97
|
+
}>;
|
|
98
|
+
}
|
|
99
|
+
export declare class BetterSQLite3Statement {
|
|
100
|
+
private readonly database;
|
|
101
|
+
private readonly sql;
|
|
102
|
+
private boundParams;
|
|
103
|
+
private rawMode;
|
|
104
|
+
private pluckMode;
|
|
105
|
+
private expandMode;
|
|
106
|
+
readonly reader: boolean;
|
|
107
|
+
constructor(database: BetterSQLite3Database, sql: string);
|
|
108
|
+
get databaseInstance(): BetterSQLite3Database;
|
|
109
|
+
bind(...params: unknown[]): this;
|
|
110
|
+
raw(toggle?: boolean): this;
|
|
111
|
+
pluck(toggle?: boolean): this;
|
|
112
|
+
expand(toggle?: boolean): this;
|
|
113
|
+
safeIntegers(): this;
|
|
114
|
+
run(...params: unknown[]): Promise<BetterSQLite3RunResult>;
|
|
115
|
+
get(...params: unknown[]): Promise<unknown>;
|
|
116
|
+
all(...params: unknown[]): Promise<unknown[]>;
|
|
117
|
+
iterate(...params: unknown[]): AsyncIterableIterator<unknown>;
|
|
118
|
+
columns(): Promise<string[]>;
|
|
119
|
+
private resolveParams;
|
|
120
|
+
private fetchRows;
|
|
121
|
+
private transformRows;
|
|
122
|
+
}
|
|
123
|
+
export declare class BetterSQLite3Database {
|
|
124
|
+
private readonly options;
|
|
125
|
+
private readonly plures;
|
|
126
|
+
private readonly filename;
|
|
127
|
+
private readonly verbose?;
|
|
128
|
+
private openPromise;
|
|
129
|
+
private opened;
|
|
130
|
+
constructor(filenameOrOptions?: string | BetterSQLite3Options, maybeOptions?: BetterSQLite3Options);
|
|
131
|
+
get name(): string;
|
|
132
|
+
get isOpen(): boolean;
|
|
133
|
+
open(): Promise<this>;
|
|
134
|
+
close(): Promise<void>;
|
|
135
|
+
prepare(sql: string): BetterSQLite3Statement;
|
|
136
|
+
exec(sql: string): Promise<this>;
|
|
137
|
+
transaction<TArgs extends unknown[], TResult>(fn: (...args: TArgs) => Promise<TResult> | TResult): (...args: TArgs) => Promise<TResult>;
|
|
138
|
+
pragma(statement: string): Promise<unknown[]>;
|
|
139
|
+
defaultSafeIntegers(): this;
|
|
140
|
+
unsafeMode(): this;
|
|
141
|
+
executeStatement(sql: string, params: unknown[]): Promise<QueryResult>;
|
|
142
|
+
private ensureOpen;
|
|
143
|
+
private resolveOptions;
|
|
48
144
|
}
|
|
49
145
|
export { PluresNode as default };
|
|
50
146
|
export * from "./types/node-types";
|
|
51
|
-
export { PluresVSCodeExtension,
|
|
147
|
+
export { createPluresExtension, PluresVSCodeExtension, } from "./vscode/extension";
|
|
52
148
|
//# sourceMappingURL=node-index.d.ts.map
|
package/dist/node-index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-index.d.ts","sourceRoot":"","sources":["../
|
|
1
|
+
{"version":3,"file":"node-index.d.ts","sourceRoot":"","sources":["../legacy/node-index.ts"],"names":[],"mappings":"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"}
|
package/dist/node-index.js
CHANGED
|
@@ -43,14 +43,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
43
43
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
44
44
|
};
|
|
45
45
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
-
exports.
|
|
46
|
+
exports.PluresVSCodeExtension = exports.createPluresExtension = exports.default = exports.BetterSQLite3Database = exports.BetterSQLite3Statement = exports.SQLiteCompatibleAPI = exports.PluresNode = void 0;
|
|
47
47
|
const node_events_1 = require("node:events");
|
|
48
48
|
const node_child_process_1 = require("node:child_process");
|
|
49
49
|
const path = __importStar(require("node:path"));
|
|
50
50
|
const fs = __importStar(require("node:fs"));
|
|
51
51
|
const os = __importStar(require("node:os"));
|
|
52
52
|
const node_process_1 = __importDefault(require("node:process"));
|
|
53
|
-
const
|
|
53
|
+
const better_sqlite3_shared_1 = require("./better-sqlite3-shared");
|
|
54
|
+
const packageRoot = typeof __dirname !== "undefined"
|
|
55
|
+
? path.resolve(__dirname, "..")
|
|
56
|
+
: node_process_1.default.cwd();
|
|
54
57
|
class PluresNode extends node_events_1.EventEmitter {
|
|
55
58
|
process = null;
|
|
56
59
|
config;
|
|
@@ -89,7 +92,7 @@ class PluresNode extends node_events_1.EventEmitter {
|
|
|
89
92
|
return denoPath;
|
|
90
93
|
}
|
|
91
94
|
}
|
|
92
|
-
catch
|
|
95
|
+
catch {
|
|
93
96
|
// Continue to next path
|
|
94
97
|
}
|
|
95
98
|
}
|
|
@@ -97,7 +100,9 @@ class PluresNode extends node_events_1.EventEmitter {
|
|
|
97
100
|
}
|
|
98
101
|
isCommandAvailable(command) {
|
|
99
102
|
try {
|
|
100
|
-
require("child_process").execSync(`"${command}" --version`, {
|
|
103
|
+
require("child_process").execSync(`"${command}" --version`, {
|
|
104
|
+
stdio: "ignore",
|
|
105
|
+
});
|
|
101
106
|
return true;
|
|
102
107
|
}
|
|
103
108
|
catch {
|
|
@@ -181,7 +186,7 @@ class PluresNode extends node_events_1.EventEmitter {
|
|
|
181
186
|
return;
|
|
182
187
|
}
|
|
183
188
|
}
|
|
184
|
-
catch
|
|
189
|
+
catch {
|
|
185
190
|
// Server not ready yet
|
|
186
191
|
}
|
|
187
192
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
@@ -295,6 +300,73 @@ class PluresNode extends node_events_1.EventEmitter {
|
|
|
295
300
|
throw new Error(`Set config failed: ${response.statusText}`);
|
|
296
301
|
}
|
|
297
302
|
}
|
|
303
|
+
// P2P API methods
|
|
304
|
+
async createIdentity(options) {
|
|
305
|
+
const response = await fetch(`${this.apiUrl}/api/identity`, {
|
|
306
|
+
method: "POST",
|
|
307
|
+
headers: { "Content-Type": "application/json" },
|
|
308
|
+
body: JSON.stringify(options),
|
|
309
|
+
});
|
|
310
|
+
if (!response.ok) {
|
|
311
|
+
throw new Error(`Create identity failed: ${response.statusText}`);
|
|
312
|
+
}
|
|
313
|
+
return response.json();
|
|
314
|
+
}
|
|
315
|
+
async searchPeers(query) {
|
|
316
|
+
const response = await fetch(`${this.apiUrl}/api/peers/search?q=${encodeURIComponent(query)}`);
|
|
317
|
+
if (!response.ok) {
|
|
318
|
+
throw new Error(`Search peers failed: ${response.statusText}`);
|
|
319
|
+
}
|
|
320
|
+
return response.json();
|
|
321
|
+
}
|
|
322
|
+
async shareNode(nodeId, targetPeerId, options) {
|
|
323
|
+
const response = await fetch(`${this.apiUrl}/api/share`, {
|
|
324
|
+
method: "POST",
|
|
325
|
+
headers: { "Content-Type": "application/json" },
|
|
326
|
+
body: JSON.stringify({
|
|
327
|
+
nodeId,
|
|
328
|
+
targetPeerId,
|
|
329
|
+
accessLevel: options?.accessLevel || "read-only",
|
|
330
|
+
}),
|
|
331
|
+
});
|
|
332
|
+
if (!response.ok) {
|
|
333
|
+
throw new Error(`Share node failed: ${response.statusText}`);
|
|
334
|
+
}
|
|
335
|
+
return response.json();
|
|
336
|
+
}
|
|
337
|
+
async acceptSharedNode(sharedNodeId) {
|
|
338
|
+
const response = await fetch(`${this.apiUrl}/api/share/accept`, {
|
|
339
|
+
method: "POST",
|
|
340
|
+
headers: { "Content-Type": "application/json" },
|
|
341
|
+
body: JSON.stringify({ sharedNodeId }),
|
|
342
|
+
});
|
|
343
|
+
if (!response.ok) {
|
|
344
|
+
throw new Error(`Accept shared node failed: ${response.statusText}`);
|
|
345
|
+
}
|
|
346
|
+
return response.json();
|
|
347
|
+
}
|
|
348
|
+
async addDevice(device) {
|
|
349
|
+
const response = await fetch(`${this.apiUrl}/api/devices`, {
|
|
350
|
+
method: "POST",
|
|
351
|
+
headers: { "Content-Type": "application/json" },
|
|
352
|
+
body: JSON.stringify(device),
|
|
353
|
+
});
|
|
354
|
+
if (!response.ok) {
|
|
355
|
+
throw new Error(`Add device failed: ${response.statusText}`);
|
|
356
|
+
}
|
|
357
|
+
return response.json();
|
|
358
|
+
}
|
|
359
|
+
async syncWithDevice(deviceId) {
|
|
360
|
+
const response = await fetch(`${this.apiUrl}/api/devices/sync`, {
|
|
361
|
+
method: "POST",
|
|
362
|
+
headers: { "Content-Type": "application/json" },
|
|
363
|
+
body: JSON.stringify({ deviceId }),
|
|
364
|
+
});
|
|
365
|
+
if (!response.ok) {
|
|
366
|
+
throw new Error(`Sync with device failed: ${response.statusText}`);
|
|
367
|
+
}
|
|
368
|
+
return response.json();
|
|
369
|
+
}
|
|
298
370
|
}
|
|
299
371
|
exports.PluresNode = PluresNode;
|
|
300
372
|
exports.default = PluresNode;
|
|
@@ -350,10 +422,244 @@ class SQLiteCompatibleAPI {
|
|
|
350
422
|
isRunning() {
|
|
351
423
|
return this.plures.isServerRunning();
|
|
352
424
|
}
|
|
425
|
+
// P2P API methods
|
|
426
|
+
async createIdentity(options) {
|
|
427
|
+
return this.plures.createIdentity(options);
|
|
428
|
+
}
|
|
429
|
+
async searchPeers(query) {
|
|
430
|
+
return this.plures.searchPeers(query);
|
|
431
|
+
}
|
|
432
|
+
async shareNode(nodeId, targetPeerId, options) {
|
|
433
|
+
return this.plures.shareNode(nodeId, targetPeerId, options);
|
|
434
|
+
}
|
|
435
|
+
async acceptSharedNode(sharedNodeId) {
|
|
436
|
+
return this.plures.acceptSharedNode(sharedNodeId);
|
|
437
|
+
}
|
|
438
|
+
async addDevice(device) {
|
|
439
|
+
return this.plures.addDevice(device);
|
|
440
|
+
}
|
|
441
|
+
async syncWithDevice(deviceId) {
|
|
442
|
+
return this.plures.syncWithDevice(deviceId);
|
|
443
|
+
}
|
|
353
444
|
}
|
|
354
445
|
exports.SQLiteCompatibleAPI = SQLiteCompatibleAPI;
|
|
446
|
+
class BetterSQLite3Statement {
|
|
447
|
+
database;
|
|
448
|
+
sql;
|
|
449
|
+
boundParams;
|
|
450
|
+
rawMode = false;
|
|
451
|
+
pluckMode = false;
|
|
452
|
+
expandMode = false;
|
|
453
|
+
reader;
|
|
454
|
+
constructor(database, sql) {
|
|
455
|
+
this.database = database;
|
|
456
|
+
this.sql = sql;
|
|
457
|
+
this.reader = /^\s*select/i.test(sql);
|
|
458
|
+
}
|
|
459
|
+
get databaseInstance() {
|
|
460
|
+
return this.database;
|
|
461
|
+
}
|
|
462
|
+
bind(...params) {
|
|
463
|
+
this.boundParams = (0, better_sqlite3_shared_1.normalizeParameterInput)(params);
|
|
464
|
+
return this;
|
|
465
|
+
}
|
|
466
|
+
raw(toggle = true) {
|
|
467
|
+
this.rawMode = toggle;
|
|
468
|
+
if (toggle) {
|
|
469
|
+
this.pluckMode = false;
|
|
470
|
+
}
|
|
471
|
+
return this;
|
|
472
|
+
}
|
|
473
|
+
pluck(toggle = true) {
|
|
474
|
+
this.pluckMode = toggle;
|
|
475
|
+
if (toggle) {
|
|
476
|
+
this.expandMode = false;
|
|
477
|
+
this.rawMode = false;
|
|
478
|
+
}
|
|
479
|
+
return this;
|
|
480
|
+
}
|
|
481
|
+
expand(toggle = true) {
|
|
482
|
+
this.expandMode = toggle;
|
|
483
|
+
if (toggle) {
|
|
484
|
+
this.pluckMode = false;
|
|
485
|
+
}
|
|
486
|
+
return this;
|
|
487
|
+
}
|
|
488
|
+
safeIntegers() {
|
|
489
|
+
// No-op for compatibility with better-sqlite3 API
|
|
490
|
+
return this;
|
|
491
|
+
}
|
|
492
|
+
async run(...params) {
|
|
493
|
+
const result = await this.database.executeStatement(this.sql, this.resolveParams(params));
|
|
494
|
+
return {
|
|
495
|
+
changes: typeof result.changes === "number" ? result.changes : 0,
|
|
496
|
+
lastInsertRowid: typeof result.lastInsertRowId === "number"
|
|
497
|
+
? result.lastInsertRowId
|
|
498
|
+
: null,
|
|
499
|
+
columns: result.columns,
|
|
500
|
+
};
|
|
501
|
+
}
|
|
502
|
+
async get(...params) {
|
|
503
|
+
const rows = await this.fetchRows(params);
|
|
504
|
+
return rows.length > 0 ? rows[0] : undefined;
|
|
505
|
+
}
|
|
506
|
+
async all(...params) {
|
|
507
|
+
return await this.fetchRows(params);
|
|
508
|
+
}
|
|
509
|
+
async *iterate(...params) {
|
|
510
|
+
const rows = await this.fetchRows(params);
|
|
511
|
+
for (const row of rows) {
|
|
512
|
+
yield row;
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
async columns() {
|
|
516
|
+
const result = await this.database.executeStatement(this.sql, this.boundParams ?? []);
|
|
517
|
+
return result.columns ?? [];
|
|
518
|
+
}
|
|
519
|
+
resolveParams(params) {
|
|
520
|
+
const normalized = (0, better_sqlite3_shared_1.normalizeParameterInput)(params);
|
|
521
|
+
if (normalized.length > 0) {
|
|
522
|
+
return normalized;
|
|
523
|
+
}
|
|
524
|
+
return this.boundParams ? [...this.boundParams] : [];
|
|
525
|
+
}
|
|
526
|
+
async fetchRows(params) {
|
|
527
|
+
const result = await this.database.executeStatement(this.sql, this.resolveParams(params));
|
|
528
|
+
return this.transformRows(result);
|
|
529
|
+
}
|
|
530
|
+
transformRows(result) {
|
|
531
|
+
return result.rows.map((row) => (0, better_sqlite3_shared_1.shapeRow)(row, result.columns, {
|
|
532
|
+
raw: this.rawMode,
|
|
533
|
+
pluck: this.pluckMode,
|
|
534
|
+
expand: this.expandMode,
|
|
535
|
+
}));
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
exports.BetterSQLite3Statement = BetterSQLite3Statement;
|
|
539
|
+
class BetterSQLite3Database {
|
|
540
|
+
options;
|
|
541
|
+
plures;
|
|
542
|
+
filename;
|
|
543
|
+
verbose;
|
|
544
|
+
openPromise = null;
|
|
545
|
+
opened = false;
|
|
546
|
+
constructor(filenameOrOptions, maybeOptions) {
|
|
547
|
+
const { filename, options } = this.resolveOptions(filenameOrOptions, maybeOptions);
|
|
548
|
+
this.filename = filename;
|
|
549
|
+
this.options = options;
|
|
550
|
+
this.verbose = options.verbose;
|
|
551
|
+
const config = { ...options.config };
|
|
552
|
+
if (!config.dataDir) {
|
|
553
|
+
const baseDir = options.memory
|
|
554
|
+
? path.join(os.tmpdir(), "pluresdb", "better-sqlite3-memory")
|
|
555
|
+
: path.join(os.homedir(), ".pluresdb", "better-sqlite3");
|
|
556
|
+
const safeName = (0, better_sqlite3_shared_1.sanitizeDataDirName)(filename === ":memory:" ? "memory" : filename);
|
|
557
|
+
config.dataDir = path.join(baseDir, safeName);
|
|
558
|
+
}
|
|
559
|
+
this.plures = new PluresNode({
|
|
560
|
+
config,
|
|
561
|
+
denoPath: options.denoPath,
|
|
562
|
+
autoStart: false,
|
|
563
|
+
});
|
|
564
|
+
if (options.autoStart !== false) {
|
|
565
|
+
void this.open();
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
get name() {
|
|
569
|
+
return this.filename;
|
|
570
|
+
}
|
|
571
|
+
get isOpen() {
|
|
572
|
+
return this.opened;
|
|
573
|
+
}
|
|
574
|
+
async open() {
|
|
575
|
+
await this.ensureOpen();
|
|
576
|
+
return this;
|
|
577
|
+
}
|
|
578
|
+
async close() {
|
|
579
|
+
if (!this.opened && !this.openPromise) {
|
|
580
|
+
return;
|
|
581
|
+
}
|
|
582
|
+
await this.plures.stop();
|
|
583
|
+
this.opened = false;
|
|
584
|
+
this.openPromise = null;
|
|
585
|
+
}
|
|
586
|
+
prepare(sql) {
|
|
587
|
+
if (!this.opened) {
|
|
588
|
+
throw new Error("Database is not open. Call await db.open() before preparing statements.");
|
|
589
|
+
}
|
|
590
|
+
return new BetterSQLite3Statement(this, sql);
|
|
591
|
+
}
|
|
592
|
+
async exec(sql) {
|
|
593
|
+
await this.ensureOpen();
|
|
594
|
+
for (const statement of (0, better_sqlite3_shared_1.splitSqlStatements)(sql)) {
|
|
595
|
+
await this.executeStatement(statement, []);
|
|
596
|
+
}
|
|
597
|
+
return this;
|
|
598
|
+
}
|
|
599
|
+
transaction(fn) {
|
|
600
|
+
return async (...args) => {
|
|
601
|
+
await this.ensureOpen();
|
|
602
|
+
await this.executeStatement("BEGIN", []);
|
|
603
|
+
try {
|
|
604
|
+
const result = await fn(...args);
|
|
605
|
+
await this.executeStatement("COMMIT", []);
|
|
606
|
+
return result;
|
|
607
|
+
}
|
|
608
|
+
catch (error) {
|
|
609
|
+
await this.executeStatement("ROLLBACK", []).catch(() => undefined);
|
|
610
|
+
throw error;
|
|
611
|
+
}
|
|
612
|
+
};
|
|
613
|
+
}
|
|
614
|
+
async pragma(statement) {
|
|
615
|
+
const sql = /^\s*pragma/i.test(statement)
|
|
616
|
+
? statement
|
|
617
|
+
: `PRAGMA ${statement}`;
|
|
618
|
+
const result = await this.executeStatement(sql, []);
|
|
619
|
+
return result.rows;
|
|
620
|
+
}
|
|
621
|
+
defaultSafeIntegers() {
|
|
622
|
+
return this;
|
|
623
|
+
}
|
|
624
|
+
unsafeMode() {
|
|
625
|
+
return this;
|
|
626
|
+
}
|
|
627
|
+
async executeStatement(sql, params) {
|
|
628
|
+
await this.ensureOpen();
|
|
629
|
+
const normalizedParams = (0, better_sqlite3_shared_1.normalizeParameterInput)(params);
|
|
630
|
+
const raw = await this.plures.query(sql, normalizedParams);
|
|
631
|
+
return (0, better_sqlite3_shared_1.normalizeQueryResult)(raw);
|
|
632
|
+
}
|
|
633
|
+
async ensureOpen() {
|
|
634
|
+
if (this.opened) {
|
|
635
|
+
return;
|
|
636
|
+
}
|
|
637
|
+
if (!this.openPromise) {
|
|
638
|
+
this.openPromise = (async () => {
|
|
639
|
+
await this.plures.start();
|
|
640
|
+
this.opened = true;
|
|
641
|
+
if (this.verbose) {
|
|
642
|
+
this.verbose(`PluresDB ready for better-sqlite3 compatibility (${this.filename})`);
|
|
643
|
+
}
|
|
644
|
+
})();
|
|
645
|
+
}
|
|
646
|
+
await this.openPromise;
|
|
647
|
+
}
|
|
648
|
+
resolveOptions(filenameOrOptions, maybeOptions) {
|
|
649
|
+
if (typeof filenameOrOptions === "string") {
|
|
650
|
+
return {
|
|
651
|
+
filename: filenameOrOptions,
|
|
652
|
+
options: { ...(maybeOptions ?? {}), filename: filenameOrOptions },
|
|
653
|
+
};
|
|
654
|
+
}
|
|
655
|
+
const options = filenameOrOptions ?? {};
|
|
656
|
+
const filename = options.filename ?? ":memory:";
|
|
657
|
+
return { filename, options: { ...options, filename } };
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
exports.BetterSQLite3Database = BetterSQLite3Database;
|
|
355
661
|
__exportStar(require("./types/node-types"), exports);
|
|
356
662
|
var extension_1 = require("./vscode/extension");
|
|
357
|
-
Object.defineProperty(exports, "PluresVSCodeExtension", { enumerable: true, get: function () { return extension_1.PluresVSCodeExtension; } });
|
|
358
663
|
Object.defineProperty(exports, "createPluresExtension", { enumerable: true, get: function () { return extension_1.createPluresExtension; } });
|
|
664
|
+
Object.defineProperty(exports, "PluresVSCodeExtension", { enumerable: true, get: function () { return extension_1.PluresVSCodeExtension; } });
|
|
359
665
|
//# sourceMappingURL=node-index.js.map
|