@plures/pluresdb 1.6.10 → 2.9.6

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 (126) hide show
  1. package/README.md +97 -289
  2. package/crates/README.md +99 -0
  3. package/crates/pluresdb-node/README.md +181 -0
  4. package/crates/pluresdb-node/index.d.ts +0 -0
  5. package/crates/pluresdb-node/index.js +265 -0
  6. package/crates/pluresdb-node/package.json +35 -0
  7. package/dist/napi/index.js +60 -0
  8. package/embedded.d.ts +1 -0
  9. package/embedded.js +46 -0
  10. package/package.json +20 -9
  11. package/dist/.tsbuildinfo +0 -1
  12. package/dist/better-sqlite3-shared.d.ts +0 -12
  13. package/dist/better-sqlite3-shared.d.ts.map +0 -1
  14. package/dist/better-sqlite3-shared.js +0 -143
  15. package/dist/better-sqlite3-shared.js.map +0 -1
  16. package/dist/better-sqlite3.d.ts +0 -4
  17. package/dist/better-sqlite3.d.ts.map +0 -1
  18. package/dist/better-sqlite3.js +0 -8
  19. package/dist/better-sqlite3.js.map +0 -1
  20. package/dist/cli.d.ts +0 -7
  21. package/dist/cli.d.ts.map +0 -1
  22. package/dist/cli.js.map +0 -1
  23. package/dist/local-first/unified-api.d.ts +0 -110
  24. package/dist/local-first/unified-api.d.ts.map +0 -1
  25. package/dist/local-first/unified-api.js +0 -348
  26. package/dist/local-first/unified-api.js.map +0 -1
  27. package/dist/node-index.d.ts +0 -150
  28. package/dist/node-index.d.ts.map +0 -1
  29. package/dist/node-index.js +0 -668
  30. package/dist/node-index.js.map +0 -1
  31. package/dist/node-wrapper.d.ts +0 -44
  32. package/dist/node-wrapper.d.ts.map +0 -1
  33. package/dist/node-wrapper.js +0 -296
  34. package/dist/node-wrapper.js.map +0 -1
  35. package/dist/types/index.d.ts +0 -28
  36. package/dist/types/index.d.ts.map +0 -1
  37. package/dist/types/index.js +0 -3
  38. package/dist/types/index.js.map +0 -1
  39. package/dist/types/node-types.d.ts +0 -71
  40. package/dist/types/node-types.d.ts.map +0 -1
  41. package/dist/types/node-types.js +0 -6
  42. package/dist/types/node-types.js.map +0 -1
  43. package/dist/util/debug.d.ts +0 -3
  44. package/dist/util/debug.d.ts.map +0 -1
  45. package/dist/util/debug.js +0 -34
  46. package/dist/util/debug.js.map +0 -1
  47. package/dist/vscode/extension.d.ts +0 -81
  48. package/dist/vscode/extension.d.ts.map +0 -1
  49. package/dist/vscode/extension.js +0 -309
  50. package/dist/vscode/extension.js.map +0 -1
  51. package/examples/basic-usage.d.ts +0 -2
  52. package/examples/basic-usage.d.ts.map +0 -1
  53. package/examples/basic-usage.js +0 -26
  54. package/examples/basic-usage.js.map +0 -1
  55. package/examples/basic-usage.ts +0 -29
  56. package/examples/browser-demo/README.md +0 -204
  57. package/examples/browser-demo/index.html +0 -466
  58. package/examples/browser-wasm-integration.md +0 -411
  59. package/examples/ipc-demo/README.md +0 -127
  60. package/examples/local-first-usage.ts +0 -138
  61. package/examples/native-ipc-integration.md +0 -526
  62. package/examples/tauri-demo/README.md +0 -240
  63. package/examples/tauri-integration.md +0 -260
  64. package/examples/vscode-extension-example/README.md +0 -95
  65. package/examples/vscode-extension-example/package.json +0 -49
  66. package/examples/vscode-extension-example/src/extension.ts +0 -172
  67. package/examples/vscode-extension-example/tsconfig.json +0 -12
  68. package/examples/vscode-extension-integration.d.ts +0 -31
  69. package/examples/vscode-extension-integration.d.ts.map +0 -1
  70. package/examples/vscode-extension-integration.js +0 -319
  71. package/examples/vscode-extension-integration.js.map +0 -1
  72. package/examples/vscode-extension-integration.ts +0 -41
  73. package/legacy/benchmarks/memory-benchmarks.ts +0 -350
  74. package/legacy/benchmarks/run-benchmarks.ts +0 -315
  75. package/legacy/better-sqlite3-shared.ts +0 -157
  76. package/legacy/better-sqlite3.ts +0 -4
  77. package/legacy/cli.ts +0 -241
  78. package/legacy/config.ts +0 -50
  79. package/legacy/core/crdt.ts +0 -107
  80. package/legacy/core/database.ts +0 -529
  81. package/legacy/healthcheck.ts +0 -162
  82. package/legacy/http/api-server.ts +0 -569
  83. package/legacy/index.ts +0 -31
  84. package/legacy/local-first/unified-api.ts +0 -449
  85. package/legacy/logic/rules.ts +0 -46
  86. package/legacy/main.rs +0 -3
  87. package/legacy/main.ts +0 -197
  88. package/legacy/network/websocket-server.ts +0 -115
  89. package/legacy/node-index.ts +0 -827
  90. package/legacy/node-wrapper.ts +0 -329
  91. package/legacy/plugins/README.md +0 -181
  92. package/legacy/plugins/example-embedding-plugin.ts +0 -56
  93. package/legacy/plugins/plugin-system.ts +0 -315
  94. package/legacy/sqlite-compat.ts +0 -633
  95. package/legacy/sqlite3-compat.ts +0 -55
  96. package/legacy/storage/kv-storage.ts +0 -73
  97. package/legacy/tests/core.test.ts +0 -305
  98. package/legacy/tests/fixtures/performance-data.json +0 -71
  99. package/legacy/tests/fixtures/test-data.json +0 -129
  100. package/legacy/tests/integration/api-server.test.ts +0 -334
  101. package/legacy/tests/integration/mesh-network.test.ts +0 -303
  102. package/legacy/tests/logic.test.ts +0 -34
  103. package/legacy/tests/performance/load.test.ts +0 -290
  104. package/legacy/tests/security/input-validation.test.ts +0 -286
  105. package/legacy/tests/unit/core.test.ts +0 -226
  106. package/legacy/tests/unit/local-first-api.test.ts +0 -65
  107. package/legacy/tests/unit/plugin-system.test.ts +0 -388
  108. package/legacy/tests/unit/subscriptions.test.ts +0 -135
  109. package/legacy/tests/unit/vector-search.test.ts +0 -173
  110. package/legacy/tests/vscode_extension_test.ts +0 -281
  111. package/legacy/types/index.ts +0 -32
  112. package/legacy/types/node-types.ts +0 -80
  113. package/legacy/util/debug.ts +0 -27
  114. package/legacy/vector/index.ts +0 -59
  115. package/legacy/vscode/extension.ts +0 -387
  116. package/scripts/compiled-crud-verify.ts +0 -30
  117. package/scripts/dogfood.ts +0 -297
  118. package/scripts/postinstall.js +0 -156
  119. package/scripts/publish-crates.sh +0 -95
  120. package/scripts/release-check.js +0 -224
  121. package/scripts/run-tests.ts +0 -178
  122. package/scripts/setup-libclang.ps1 +0 -209
  123. package/scripts/update-changelog.js +0 -214
  124. package/scripts/validate-npm-publish.js +0 -228
  125. package/web/README.md +0 -27
  126. package/web/svelte/package.json +0 -31
@@ -1,348 +0,0 @@
1
- "use strict";
2
- /**
3
- * Unified Local-First API for PluresDB
4
- *
5
- * Automatically selects the best integration method based on runtime environment:
6
- * - Browser (WASM): Direct in-process WebAssembly
7
- * - Tauri: Direct Rust crate linking via Tauri commands
8
- * - Native IPC: Shared memory inter-process communication
9
- * - Network: HTTP REST API (fallback for backward compatibility)
10
- *
11
- * This provides a consistent API across all platforms while maximizing performance
12
- * and minimizing network overhead.
13
- */
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.PluresDBLocalFirst = void 0;
16
- const debug_1 = require("../util/debug");
17
- /**
18
- * Runtime environment detection
19
- */
20
- class RuntimeDetector {
21
- static isBrowser() {
22
- return typeof globalThis !== "undefined" &&
23
- typeof globalThis.window !== "undefined" &&
24
- typeof globalThis.document !== "undefined" &&
25
- typeof globalThis.WebAssembly !== "undefined";
26
- }
27
- static isTauri() {
28
- return typeof globalThis !== "undefined" &&
29
- typeof globalThis.window !== "undefined" &&
30
- globalThis.window?.__TAURI__ !== undefined;
31
- }
32
- static isNode() {
33
- const globalProcess = globalThis.process;
34
- return typeof globalProcess !== "undefined" &&
35
- globalProcess.versions?.node != null;
36
- }
37
- static isDeno() {
38
- return typeof globalThis !== "undefined" &&
39
- globalThis.Deno !== undefined;
40
- }
41
- static hasIPCEnvironment() {
42
- if (this.isNode()) {
43
- return globalThis.process?.env?.PLURESDB_IPC === "true";
44
- }
45
- if (this.isDeno()) {
46
- const Deno = globalThis.Deno;
47
- return Deno?.env?.get?.("PLURESDB_IPC") === "true";
48
- }
49
- return false;
50
- }
51
- static detectBestMode() {
52
- if (this.isTauri()) {
53
- (0, debug_1.debugLog)("Detected Tauri environment - using native integration");
54
- return "tauri";
55
- }
56
- if (this.isBrowser()) {
57
- (0, debug_1.debugLog)("Detected browser environment - using WASM");
58
- return "wasm";
59
- }
60
- if (this.hasIPCEnvironment()) {
61
- (0, debug_1.debugLog)("Detected IPC environment - using shared memory");
62
- return "ipc";
63
- }
64
- (0, debug_1.debugLog)("Using network mode (fallback)");
65
- return "network";
66
- }
67
- }
68
- /**
69
- * WASM Backend (Browser)
70
- *
71
- * Uses WebAssembly for direct in-process database access.
72
- * Data is persisted in IndexedDB.
73
- */
74
- class WasmBackend {
75
- db = null;
76
- dbName;
77
- constructor(dbName = "pluresdb") {
78
- this.dbName = dbName;
79
- }
80
- async initialize() {
81
- // Note: This is a placeholder. The actual WASM module will be implemented
82
- // in Phase 1 of the roadmap (pluresdb-wasm crate).
83
- throw new Error("WASM backend not yet implemented. Please see docs/LOCAL_FIRST_INTEGRATION.md for implementation status.");
84
- }
85
- async put(id, data) {
86
- if (!this.db)
87
- await this.initialize();
88
- return this.db.put(id, data);
89
- }
90
- async get(id) {
91
- if (!this.db)
92
- await this.initialize();
93
- return this.db.get(id);
94
- }
95
- async delete(id) {
96
- if (!this.db)
97
- await this.initialize();
98
- return this.db.delete(id);
99
- }
100
- async list() {
101
- if (!this.db)
102
- await this.initialize();
103
- return this.db.list();
104
- }
105
- async vectorSearch(query, limit) {
106
- if (!this.db)
107
- await this.initialize();
108
- return this.db.vectorSearch(query, limit);
109
- }
110
- async close() {
111
- if (this.db) {
112
- await this.db.close();
113
- this.db = null;
114
- }
115
- }
116
- }
117
- /**
118
- * Tauri Backend
119
- *
120
- * Uses Tauri commands to invoke Rust functions directly.
121
- * Provides native performance with no network overhead.
122
- */
123
- class TauriBackend {
124
- invoke;
125
- constructor() {
126
- const win = typeof globalThis !== "undefined" ? globalThis.window : undefined;
127
- if (!win || !win.__TAURI__) {
128
- throw new Error("Tauri backend requires Tauri environment");
129
- }
130
- this.invoke = win.__TAURI__.invoke;
131
- }
132
- async put(id, data) {
133
- return await this.invoke("pluresdb_put", { id, data });
134
- }
135
- async get(id) {
136
- return await this.invoke("pluresdb_get", { id });
137
- }
138
- async delete(id) {
139
- await this.invoke("pluresdb_delete", { id });
140
- }
141
- async list() {
142
- return await this.invoke("pluresdb_list");
143
- }
144
- async vectorSearch(query, limit) {
145
- return await this.invoke("pluresdb_vector_search", { query, limit });
146
- }
147
- }
148
- /**
149
- * IPC Backend (Native Apps)
150
- *
151
- * Uses shared memory and message passing for inter-process communication.
152
- * Provides low-latency access without network overhead.
153
- */
154
- class IPCBackend {
155
- channelName;
156
- constructor(channelName = "pluresdb") {
157
- this.channelName = channelName;
158
- }
159
- async initialize() {
160
- // Note: This is a placeholder. The actual IPC implementation will be
161
- // in Phase 3 of the roadmap (pluresdb-ipc crate).
162
- throw new Error("IPC backend not yet implemented. Please see docs/LOCAL_FIRST_INTEGRATION.md for implementation status.");
163
- }
164
- async put(id, data) {
165
- throw new Error("IPC backend not yet implemented");
166
- }
167
- async get(id) {
168
- throw new Error("IPC backend not yet implemented");
169
- }
170
- async delete(id) {
171
- throw new Error("IPC backend not yet implemented");
172
- }
173
- async list() {
174
- throw new Error("IPC backend not yet implemented");
175
- }
176
- async vectorSearch(query, limit) {
177
- throw new Error("IPC backend not yet implemented");
178
- }
179
- }
180
- /**
181
- * Network Backend (HTTP REST API)
182
- *
183
- * Uses HTTP requests to communicate with a PluresDB server.
184
- * This is the fallback mode for backward compatibility.
185
- */
186
- class NetworkBackend {
187
- baseUrl;
188
- constructor(url, port) {
189
- this.baseUrl = url || `http://localhost:${port || 34567}`;
190
- }
191
- async put(id, data) {
192
- const response = await fetch(`${this.baseUrl}/api/put`, {
193
- method: "POST",
194
- headers: { "Content-Type": "application/json" },
195
- body: JSON.stringify({ id, data }),
196
- });
197
- if (!response.ok) {
198
- throw new Error(`PUT failed: ${response.statusText}`);
199
- }
200
- // API returns { ok: true }, return the id
201
- await response.json();
202
- return id;
203
- }
204
- async get(id) {
205
- const response = await fetch(`${this.baseUrl}/api/get?id=${encodeURIComponent(id)}`);
206
- if (!response.ok) {
207
- if (response.status === 404)
208
- return null;
209
- throw new Error(`GET failed: ${response.statusText}`);
210
- }
211
- // API returns the node data directly (can be null)
212
- return await response.json();
213
- }
214
- async delete(id) {
215
- const response = await fetch(`${this.baseUrl}/api/delete?id=${encodeURIComponent(id)}`, {
216
- method: "DELETE",
217
- });
218
- if (!response.ok) {
219
- throw new Error(`DELETE failed: ${response.statusText}`);
220
- }
221
- }
222
- async list() {
223
- const response = await fetch(`${this.baseUrl}/api/list`);
224
- if (!response.ok) {
225
- throw new Error(`LIST failed: ${response.statusText}`);
226
- }
227
- // API returns array of { id, data }
228
- const nodes = await response.json();
229
- return nodes;
230
- }
231
- async vectorSearch(query, limit) {
232
- const response = await fetch(`${this.baseUrl}/api/search`, {
233
- method: "POST",
234
- headers: { "Content-Type": "application/json" },
235
- body: JSON.stringify({ query, limit }),
236
- });
237
- if (!response.ok) {
238
- throw new Error(`VECTOR_SEARCH failed: ${response.statusText}`);
239
- }
240
- // API returns array of { id, data }
241
- const nodes = await response.json();
242
- return nodes;
243
- }
244
- }
245
- /**
246
- * PluresDB Local-First API
247
- *
248
- * Unified interface that works across all platforms:
249
- * - Browser (WASM)
250
- * - Tauri (native)
251
- * - Native apps (IPC)
252
- * - Traditional apps (network)
253
- *
254
- * Automatically selects the best integration method or allows manual override.
255
- *
256
- * @example
257
- * ```typescript
258
- * // Auto-detect best mode
259
- * const db = new PluresDBLocalFirst();
260
- *
261
- * // Manual mode selection
262
- * const db = new PluresDBLocalFirst({ mode: "wasm", dbName: "my-app" });
263
- *
264
- * // Use the API (same across all modes)
265
- * await db.put("user:1", { name: "Alice", email: "alice@example.com" });
266
- * const user = await db.get("user:1");
267
- * const results = await db.vectorSearch("Find users named Alice", 10);
268
- * ```
269
- */
270
- class PluresDBLocalFirst {
271
- backend;
272
- mode;
273
- constructor(options = {}) {
274
- const mode = options.mode || "auto";
275
- const actualMode = mode === "auto" ? RuntimeDetector.detectBestMode() : mode;
276
- this.mode = actualMode;
277
- switch (actualMode) {
278
- case "wasm":
279
- this.backend = new WasmBackend(options.dbName);
280
- break;
281
- case "tauri":
282
- this.backend = new TauriBackend();
283
- break;
284
- case "ipc":
285
- this.backend = new IPCBackend(options.channelName);
286
- break;
287
- case "network":
288
- this.backend = new NetworkBackend(options.networkUrl, options.port);
289
- break;
290
- default:
291
- throw new Error(`Unknown mode: ${actualMode}`);
292
- }
293
- (0, debug_1.debugLog)(`Initialized in ${this.mode} mode`);
294
- }
295
- /**
296
- * Get the current integration mode
297
- */
298
- getMode() {
299
- return this.mode;
300
- }
301
- /**
302
- * Insert or update a node
303
- */
304
- async put(id, data) {
305
- return this.backend.put(id, data);
306
- }
307
- /**
308
- * Retrieve a node by ID
309
- */
310
- async get(id) {
311
- return this.backend.get(id);
312
- }
313
- /**
314
- * Delete a node by ID
315
- */
316
- async delete(id) {
317
- return this.backend.delete(id);
318
- }
319
- /**
320
- * List all nodes
321
- */
322
- async list() {
323
- return this.backend.list();
324
- }
325
- /**
326
- * Vector search (semantic similarity)
327
- */
328
- async vectorSearch(query, limit = 10) {
329
- if (!this.backend.vectorSearch) {
330
- throw new Error("Vector search not supported in this mode");
331
- }
332
- return this.backend.vectorSearch(query, limit);
333
- }
334
- /**
335
- * Close the database connection
336
- */
337
- async close() {
338
- if (this.backend.close) {
339
- await this.backend.close();
340
- }
341
- }
342
- }
343
- exports.PluresDBLocalFirst = PluresDBLocalFirst;
344
- /**
345
- * Legacy export for backward compatibility
346
- */
347
- exports.default = PluresDBLocalFirst;
348
- //# sourceMappingURL=unified-api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unified-api.js","sourceRoot":"","sources":["../../legacy/local-first/unified-api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,yCAAyC;AA2CzC;;GAEG;AACH,MAAM,eAAe;IACnB,MAAM,CAAC,SAAS;QACd,OAAO,OAAO,UAAU,KAAK,WAAW;YACtC,OAAQ,UAAkB,CAAC,MAAM,KAAK,WAAW;YACjD,OAAQ,UAAkB,CAAC,QAAQ,KAAK,WAAW;YACnD,OAAQ,UAAkB,CAAC,WAAW,KAAK,WAAW,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,OAAO,OAAO,UAAU,KAAK,WAAW;YACtC,OAAQ,UAAkB,CAAC,MAAM,KAAK,WAAW;YAChD,UAAkB,CAAC,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,MAAM;QACX,MAAM,aAAa,GAAI,UAAkB,CAAC,OAAO,CAAC;QAClD,OAAO,OAAO,aAAa,KAAK,WAAW;YACzC,aAAa,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,OAAO,UAAU,KAAK,WAAW;YACrC,UAAkB,CAAC,IAAI,KAAK,SAAS,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,iBAAiB;QACtB,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,OAAQ,UAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC;QACnE,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,GAAI,UAAkB,CAAC,IAAI,CAAC;YACtC,OAAO,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC;QACrD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACnB,IAAA,gBAAQ,EAAC,uDAAuD,CAAC,CAAC;YAClE,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,IAAA,gBAAQ,EAAC,2CAA2C,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC7B,IAAA,gBAAQ,EAAC,gDAAgD,CAAC,CAAC;YAC3D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAA,gBAAQ,EAAC,+BAA+B,CAAC,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,WAAW;IACP,EAAE,GAAY,IAAI,CAAC;IACnB,MAAM,CAAS;IAEvB,YAAY,SAAiB,UAAU;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,0EAA0E;QAC1E,mDAAmD;QACnD,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,IAAa;QACjC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,OAAQ,IAAI,CAAC,EAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,OAAQ,IAAI,CAAC,EAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,OAAQ,IAAI,CAAC,EAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,OAAQ,IAAI,CAAC,EAAU,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,KAAa;QAC7C,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,OAAQ,IAAI,CAAC,EAAU,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,MAAO,IAAI,CAAC,EAAU,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,YAAY;IACR,MAAM,CAAM;IAEpB;QACE,MAAM,GAAG,GAAG,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAE,UAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,IAAa;QACjC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,KAAa;QAC7C,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU;IACN,WAAW,CAAS;IAE5B,YAAY,cAAsB,UAAU;QAC1C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,qEAAqE;QACrE,kDAAkD;QAClD,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,IAAa;QACjC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,KAAa;QAC7C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,cAAc;IACV,OAAO,CAAS;IAExB,YAAY,GAAY,EAAE,IAAa;QACrC,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,oBAAoB,IAAI,IAAI,KAAK,EAAE,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,IAAa;QACjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,UAAU,EAAE;YACtD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,0CAA0C;QAC1C,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAErF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,mDAAmD;QACnD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE;YACtF,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,WAAW,CAAC,CAAC;QAEzD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,oCAAoC;QACpC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA0C,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,KAAa;QAC7C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,aAAa,EAAE;YACzD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SACvC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,oCAAoC;QACpC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA0C,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAa,kBAAkB;IACrB,OAAO,CAAoB;IAC3B,IAAI,CAAS;IAErB,YAAY,UAA6B,EAAE;QACzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7E,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QAEvB,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,MAAM;gBACT,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM;YAER,KAAK,OAAO;gBACV,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;gBAClC,MAAM;YAER,KAAK,KAAK;gBACR,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACnD,MAAM;YAER,KAAK,SAAS;gBACZ,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpE,MAAM;YAER;gBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,UAAU,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,IAAA,gBAAQ,EAAC,kBAAkB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,IAAa;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,QAAgB,EAAE;QAClD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;CACF;AAvFD,gDAuFC;AAED;;GAEG;AACH,kBAAe,kBAAkB,CAAC"}
@@ -1,150 +0,0 @@
1
- /**
2
- * Node.js Entry Point for PluresDB
3
- * This provides a clean API for VSCode extensions and other Node.js applications
4
- */
5
- import { EventEmitter } from "node:events";
6
- import { BetterSQLite3Options, BetterSQLite3RunResult, Peer, PluresDBOptions, QueryResult } from "./types/node-types";
7
- export declare class PluresNode extends EventEmitter {
8
- private process;
9
- private config;
10
- private denoPath;
11
- private isRunning;
12
- private apiUrl;
13
- constructor(options?: PluresDBOptions);
14
- private findDenoPath;
15
- private isCommandAvailable;
16
- start(): Promise<void>;
17
- private waitForServer;
18
- stop(): Promise<void>;
19
- getApiUrl(): string;
20
- getWebUrl(): string;
21
- isServerRunning(): boolean;
22
- query(sql: string, params?: any[]): Promise<any>;
23
- put(key: string, value: any): Promise<void>;
24
- get(key: string): Promise<any>;
25
- delete(key: string): Promise<void>;
26
- vectorSearch(query: string, limit?: number): Promise<any[]>;
27
- list(prefix?: string): Promise<string[]>;
28
- getConfig(): Promise<any>;
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
- }>;
55
- }
56
- export declare class SQLiteCompatibleAPI {
57
- private plures;
58
- constructor(options?: PluresDBOptions);
59
- start(): Promise<void>;
60
- stop(): Promise<void>;
61
- run(sql: string, params?: any[]): Promise<any>;
62
- get(sql: string, params?: any[]): Promise<any>;
63
- all(sql: string, params?: any[]): Promise<any>;
64
- exec(sql: string): Promise<any>;
65
- put(key: string, value: any): Promise<void>;
66
- getValue(key: string): Promise<any>;
67
- delete(key: string): Promise<void>;
68
- vectorSearch(query: string, limit?: number): Promise<any[]>;
69
- list(prefix?: string): Promise<string[]>;
70
- getApiUrl(): string;
71
- getWebUrl(): string;
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;
144
- }
145
- export { PluresNode as default };
146
- export * from "./types/node-types";
147
- export { createPluresExtension, PluresVSCodeExtension, } from "./vscode/extension";
148
- export { PluresDBLocalFirst } from "./local-first/unified-api";
149
- export type { LocalFirstOptions, LocalFirstBackend } from "./local-first/unified-api";
150
- //# sourceMappingURL=node-index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-index.d.ts","sourceRoot":"","sources":["../legacy/node-index.ts"],"names":[],"mappings":"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"}