@plures/pluresdb 1.4.0

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 (96) hide show
  1. package/LICENSE +72 -0
  2. package/README.md +450 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/better-sqlite3-shared.d.ts +12 -0
  5. package/dist/better-sqlite3-shared.d.ts.map +1 -0
  6. package/dist/better-sqlite3-shared.js +143 -0
  7. package/dist/better-sqlite3-shared.js.map +1 -0
  8. package/dist/better-sqlite3.d.ts +4 -0
  9. package/dist/better-sqlite3.d.ts.map +1 -0
  10. package/dist/better-sqlite3.js +8 -0
  11. package/dist/better-sqlite3.js.map +1 -0
  12. package/dist/cli.d.ts +7 -0
  13. package/dist/cli.d.ts.map +1 -0
  14. package/dist/cli.js +258 -0
  15. package/dist/cli.js.map +1 -0
  16. package/dist/node-index.d.ts +148 -0
  17. package/dist/node-index.d.ts.map +1 -0
  18. package/dist/node-index.js +665 -0
  19. package/dist/node-index.js.map +1 -0
  20. package/dist/node-wrapper.d.ts +44 -0
  21. package/dist/node-wrapper.d.ts.map +1 -0
  22. package/dist/node-wrapper.js +296 -0
  23. package/dist/node-wrapper.js.map +1 -0
  24. package/dist/types/index.d.ts +28 -0
  25. package/dist/types/index.d.ts.map +1 -0
  26. package/dist/types/index.js +3 -0
  27. package/dist/types/index.js.map +1 -0
  28. package/dist/types/node-types.d.ts +71 -0
  29. package/dist/types/node-types.d.ts.map +1 -0
  30. package/dist/types/node-types.js +6 -0
  31. package/dist/types/node-types.js.map +1 -0
  32. package/dist/vscode/extension.d.ts +81 -0
  33. package/dist/vscode/extension.d.ts.map +1 -0
  34. package/dist/vscode/extension.js +309 -0
  35. package/dist/vscode/extension.js.map +1 -0
  36. package/examples/basic-usage.d.ts +2 -0
  37. package/examples/basic-usage.d.ts.map +1 -0
  38. package/examples/basic-usage.js +26 -0
  39. package/examples/basic-usage.js.map +1 -0
  40. package/examples/basic-usage.ts +29 -0
  41. package/examples/vscode-extension-example/README.md +95 -0
  42. package/examples/vscode-extension-example/package.json +49 -0
  43. package/examples/vscode-extension-example/src/extension.ts +172 -0
  44. package/examples/vscode-extension-example/tsconfig.json +12 -0
  45. package/examples/vscode-extension-integration.d.ts +31 -0
  46. package/examples/vscode-extension-integration.d.ts.map +1 -0
  47. package/examples/vscode-extension-integration.js +319 -0
  48. package/examples/vscode-extension-integration.js.map +1 -0
  49. package/examples/vscode-extension-integration.ts +41 -0
  50. package/legacy/benchmarks/memory-benchmarks.ts +350 -0
  51. package/legacy/benchmarks/run-benchmarks.ts +315 -0
  52. package/legacy/better-sqlite3-shared.ts +157 -0
  53. package/legacy/better-sqlite3.ts +4 -0
  54. package/legacy/cli.ts +241 -0
  55. package/legacy/config.ts +50 -0
  56. package/legacy/core/crdt.ts +107 -0
  57. package/legacy/core/database.ts +529 -0
  58. package/legacy/healthcheck.ts +162 -0
  59. package/legacy/http/api-server.ts +438 -0
  60. package/legacy/index.ts +28 -0
  61. package/legacy/logic/rules.ts +46 -0
  62. package/legacy/main.rs +3 -0
  63. package/legacy/main.ts +197 -0
  64. package/legacy/network/websocket-server.ts +115 -0
  65. package/legacy/node-index.ts +823 -0
  66. package/legacy/node-wrapper.ts +329 -0
  67. package/legacy/sqlite-compat.ts +633 -0
  68. package/legacy/sqlite3-compat.ts +55 -0
  69. package/legacy/storage/kv-storage.ts +73 -0
  70. package/legacy/tests/core.test.ts +305 -0
  71. package/legacy/tests/fixtures/performance-data.json +71 -0
  72. package/legacy/tests/fixtures/test-data.json +129 -0
  73. package/legacy/tests/integration/api-server.test.ts +334 -0
  74. package/legacy/tests/integration/mesh-network.test.ts +303 -0
  75. package/legacy/tests/logic.test.ts +34 -0
  76. package/legacy/tests/performance/load.test.ts +290 -0
  77. package/legacy/tests/security/input-validation.test.ts +286 -0
  78. package/legacy/tests/unit/core.test.ts +226 -0
  79. package/legacy/tests/unit/subscriptions.test.ts +135 -0
  80. package/legacy/tests/unit/vector-search.test.ts +173 -0
  81. package/legacy/tests/vscode_extension_test.ts +281 -0
  82. package/legacy/types/index.ts +32 -0
  83. package/legacy/types/node-types.ts +80 -0
  84. package/legacy/util/debug.ts +14 -0
  85. package/legacy/vector/index.ts +59 -0
  86. package/legacy/vscode/extension.ts +387 -0
  87. package/package.json +127 -0
  88. package/scripts/compiled-crud-verify.ts +30 -0
  89. package/scripts/dogfood.ts +297 -0
  90. package/scripts/postinstall.js +156 -0
  91. package/scripts/release-check.js +190 -0
  92. package/scripts/run-tests.ts +178 -0
  93. package/scripts/setup-libclang.ps1 +209 -0
  94. package/scripts/update-changelog.js +214 -0
  95. package/web/README.md +27 -0
  96. package/web/svelte/package.json +31 -0
package/LICENSE ADDED
@@ -0,0 +1,72 @@
1
+ PluresDB - Open Source License
2
+
3
+ Copyright (c) 2024 Plures Organization
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 published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (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
+ ===============================================================================
19
+ LICENSE COMPLIANCE
20
+ ===============================================================================
21
+
22
+ AGPL v3 requires that:
23
+ - All modifications to PluresDB must be open source
24
+ - If you provide PluresDB as a service, you must offer source code to users
25
+ - Derivative works must be licensed under AGPL v3
26
+ - You cannot add additional restrictions
27
+
28
+ ===============================================================================
29
+ THIRD-PARTY LICENSES
30
+ ===============================================================================
31
+
32
+ This software includes third-party components with the following licenses:
33
+
34
+ Dependencies (MIT License):
35
+ - tokio: https://github.com/tokio-rs/tokio
36
+ - serde: https://github.com/serde-rs/serde
37
+ - axum: https://github.com/tokio-rs/axum
38
+ - sqlx: https://github.com/launchbadge/sqlx
39
+ - hnsw_rs: https://github.com/plures/hnsw_rs
40
+
41
+ JavaScript Dependencies (MIT License):
42
+ - axios: https://github.com/axios/axios
43
+ - cytoscape: https://github.com/cytoscape/cytoscape.js
44
+ - monaco-editor: https://github.com/microsoft/monaco-editor
45
+
46
+ All third-party components maintain their original licenses and copyrights.
47
+
48
+ ===============================================================================
49
+ CONTACT INFORMATION
50
+ ===============================================================================
51
+
52
+ GitHub: https://github.com/plures/pluresdb
53
+ Issues: https://github.com/plures/pluresdb/issues
54
+ Discussions: https://github.com/plures/pluresdb/discussions
55
+
56
+ For security issues, please see SECURITY.md
57
+
58
+ ===============================================================================
59
+ LEGAL NOTICE
60
+ ===============================================================================
61
+
62
+ This license ensures that:
63
+ - PluresDB remains free and open source
64
+ - All modifications must be shared with the community
65
+ - Network use triggers the requirement to share source code
66
+ - The software and community benefit from all improvements
67
+ - Commercial users can still build businesses on top of PluresDB
68
+ - We can generate revenue through services and support
69
+ - The ecosystem benefits from shared improvements
70
+
71
+ By using this software, you agree to the terms of the GNU Affero General
72
+ Public License v3.0.
package/README.md ADDED
@@ -0,0 +1,450 @@
1
+ # PluresDB
2
+
3
+ [![npm version](https://badge.fury.io/js/pluresdb.svg)](https://badge.fury.io/js/pluresdb)
4
+ [![crates.io](https://img.shields.io/crates/v/pluresdb-core.svg)](https://crates.io/crates/pluresdb-core)
5
+ [![Deno version](https://img.shields.io/badge/deno-v2.x-blue)](https://deno.land)
6
+ [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](https://opensource.org/licenses/AGPL-3.0)
7
+
8
+ **P2P Graph Database with SQLite Compatibility** - A local-first, offline-first database for modern applications.
9
+
10
+ > 💡 **Perfect for Personal Use on Windows!** PluresDB is ideal for note-taking, knowledge management, personal wikis, task tracking, and more. [Get Started on Windows →](docs/WINDOWS_GETTING_STARTED.md)
11
+
12
+ ## 🚀 Quick Start
13
+
14
+ ### Release channels (current)
15
+
16
+ - **Winget:** Published as `pluresdb.pluresdb` ([manifest](https://github.com/plures/pluresdb/blob/main/packaging/winget/pluresdb.yaml)) for Windows installs
17
+ - **npm:** [`pluresdb`](https://www.npmjs.com/package/pluresdb) (Node.js + better-sqlite3 compatibility)
18
+ - **crates.io:** [`pluresdb-core`](https://crates.io/crates/pluresdb-core), [`pluresdb-storage`](https://crates.io/crates/pluresdb-storage), [`pluresdb-sync`](https://crates.io/crates/pluresdb-sync), [`pluresdb-cli`](https://crates.io/crates/pluresdb-cli) (Rust crates)
19
+ - **JSR:** [`@plures/pluresdb`](https://jsr.io/@plures/pluresdb) (Deno module)
20
+ - **Docker Hub:** [`pluresdb/pluresdb`](https://hub.docker.com/r/pluresdb/pluresdb) (containerized deployment)
21
+ - **GitHub Releases:** Pre-built binaries for Windows, macOS, and Linux
22
+
23
+ For version-specific information and release notes, see the [CHANGELOG](CHANGELOG.md).
24
+
25
+ ### Install
26
+
27
+ ```bash
28
+ # npm
29
+ npm install pluresdb
30
+
31
+ # yarn
32
+ yarn add pluresdb
33
+
34
+ # pnpm
35
+ pnpm add pluresdb
36
+
37
+ # Deno (JSR)
38
+ deno add @plures/pluresdb
39
+
40
+ # Rust (Cargo)
41
+ cargo add pluresdb-core pluresdb-storage pluresdb-sync
42
+
43
+ # Docker
44
+ docker pull pluresdb/pluresdb:latest
45
+
46
+ # Windows (Winget)
47
+ winget install pluresdb.pluresdb
48
+ ```
49
+
50
+ ### Development Prerequisites (Rust Components)
51
+
52
+ If you plan to build or test the Rust crates in this repository, make sure `libclang` is available so
53
+ bindgen-based dependencies (like `zstd-sys`) can compile. On Windows you can automate this setup with:
54
+
55
+ ```powershell
56
+ pwsh ./scripts/setup-libclang.ps1 -ConfigureCurrentProcess
57
+ ```
58
+
59
+ The script will detect or install LLVM (via `winget`/`choco`), set the `LIBCLANG_PATH` environment variable,
60
+ and update the current session so that `cargo build` / `cargo test` can run without manual configuration.
61
+ Restart your terminal if you omit the `-ConfigureCurrentProcess` flag.
62
+
63
+ ## 📦 Packaging Artifacts
64
+
65
+ Generate Windows, MSI, Deno, and Nix release bundles with the helper script:
66
+
67
+ ```powershell
68
+ pwsh ./packaging/scripts/build-packages.ps1
69
+ ```
70
+
71
+ The script automatically reads the release version from `Cargo.toml`. Override it for pre-release cuts if needed:
72
+
73
+ ```powershell
74
+ pwsh ./packaging/scripts/build-packages.ps1 -Version 1.1.0-rc1
75
+ ```
76
+
77
+ ### Basic Usage
78
+
79
+ ```typescript
80
+ import { PluresNode, SQLiteCompatibleAPI } from "pluresdb";
81
+
82
+ // Start the database
83
+ const db = new PluresNode({
84
+ config: {
85
+ port: 34567,
86
+ host: "localhost",
87
+ dataDir: "./data",
88
+ },
89
+ autoStart: true,
90
+ });
91
+
92
+ // Use SQLite-compatible API
93
+ const sqlite = new SQLiteCompatibleAPI();
94
+
95
+ // Create tables
96
+ await sqlite.exec(`
97
+ CREATE TABLE users (
98
+ id INTEGER PRIMARY KEY,
99
+ name TEXT,
100
+ email TEXT
101
+ )
102
+ `);
103
+
104
+ // Insert data
105
+ await sqlite.run("INSERT INTO users (name, email) VALUES (?, ?)", [
106
+ "John",
107
+ "john@example.com",
108
+ ]);
109
+
110
+ // Query data
111
+ const users = await sqlite.all("SELECT * FROM users");
112
+
113
+ // Vector search
114
+ const results = await sqlite.vectorSearch("machine learning", 10);
115
+ ```
116
+
117
+ #### In Deno
118
+
119
+ ```ts
120
+ import { GunDB, startApiServer } from "jsr:@plures/pluresdb";
121
+
122
+ const db = new GunDB();
123
+ await db.ready();
124
+
125
+ // start the mesh listener and optional HTTP API
126
+ db.serve({ port: 34567 });
127
+ const api = startApiServer({ port: 8080, db });
128
+
129
+ await db.put("user:alice", { name: "Alice", email: "alice@example.com" });
130
+ const record = await db.get("user:alice");
131
+ console.log(record);
132
+
133
+ // remember to close when the process exits
134
+ await db.close();
135
+ api.close();
136
+ ```
137
+
138
+ ## 🎯 Features
139
+
140
+ ### Core Database
141
+
142
+ - **P2P Graph Database**: Distributed, peer-to-peer data storage
143
+ - **SQLite Compatibility**: 95% SQLite API compatibility for easy migration
144
+ - **CRDT Conflict Resolution**: Automatic conflict resolution for distributed data
145
+ - **Vector Search**: Built-in vector embeddings and similarity search
146
+ - **Local-First**: Offline-first data storage with sync when online
147
+
148
+ ### P2P Ecosystem
149
+
150
+ - **Identity Management**: Public key infrastructure for peer identification
151
+ - **Encrypted Sharing**: End-to-end encrypted data sharing between peers
152
+ - **Cross-Device Sync**: Automatic synchronization across all your devices
153
+ - **Acceptance Policies**: Granular control over what data to accept from peers
154
+
155
+ ### Developer Experience
156
+
157
+ - **TypeScript Support**: Full TypeScript definitions included
158
+ - **VSCode Integration**: Easy integration with VSCode extensions
159
+ - **Web UI**: Comprehensive 24-tab management interface
160
+ - **REST API**: Full REST API for web applications
161
+ - **WebSocket API**: Real-time updates and synchronization
162
+
163
+ ## 📦 Installation Methods
164
+
165
+ ### Windows (Personal Database Use)
166
+
167
+ **Recommended for Windows users who want a personal database (`pluresdb.pluresdb`):**
168
+
169
+ ```powershell
170
+ # Option 1: Using winget
171
+ winget install pluresdb.pluresdb
172
+
173
+ # Option 2: Using PowerShell installer
174
+ irm https://raw.githubusercontent.com/plures/pluresdb/main/install.ps1 | iex
175
+
176
+ # Option 3: Download ZIP from releases
177
+ # Extract and run start.bat
178
+ ```
179
+
180
+ 📖 **[Complete Windows Getting Started Guide →](docs/WINDOWS_GETTING_STARTED.md)**
181
+
182
+ ### Package Managers
183
+
184
+ ```bash
185
+ # macOS
186
+ brew install plures/pluresdb/pluresdb
187
+
188
+ # Linux (NixOS)
189
+ nix-env -iA nixpkgs.pluresdb
190
+
191
+ # Universal install script
192
+ curl -fsSL https://raw.githubusercontent.com/plures/pluresdb/main/install.sh | bash
193
+ ```
194
+
195
+ ### Docker
196
+
197
+ ```bash
198
+ docker pull plures/pluresdb:latest
199
+ docker run -p 34567:34567 -p 34568:34568 plures/pluresdb:latest
200
+ ```
201
+
202
+ ## 🔧 VSCode Extension Integration
203
+
204
+ Perfect for VSCode extensions that currently use SQLite:
205
+
206
+ ```typescript
207
+ import { SQLiteCompatibleAPI } from "pluresdb";
208
+
209
+ export function activate(context: vscode.ExtensionContext) {
210
+ // Replace your SQLite database with PluresDB
211
+ const db = new SQLiteCompatibleAPI({
212
+ config: {
213
+ dataDir: path.join(context.globalStorageUri.fsPath, "pluresdb"),
214
+ },
215
+ });
216
+
217
+ // Use the same SQLite API you're familiar with
218
+ await db.exec("CREATE TABLE settings (key TEXT, value TEXT)");
219
+ await db.run("INSERT INTO settings VALUES (?, ?)", ["theme", "dark"]);
220
+ const settings = await db.all("SELECT * FROM settings");
221
+ }
222
+ ```
223
+
224
+ ## 🌐 Web UI
225
+
226
+ Access the comprehensive web interface at `http://localhost:34568`:
227
+
228
+ - **Data Explorer**: Browse and edit your data
229
+ - **Graph Visualization**: Interactive graph view of relationships
230
+ - **Vector Search**: Semantic search across your data
231
+ - **P2P Management**: Manage peers and encrypted sharing
232
+ - **Performance Monitoring**: Real-time performance metrics
233
+ - **Settings**: Configure database and P2P settings
234
+
235
+ ## 🔌 API Reference
236
+
237
+ ### SQLite-Compatible API
238
+
239
+ ```typescript
240
+ // Database operations
241
+ await sqlite.exec(sql); // Execute SQL
242
+ await sqlite.run(sql, params); // Run SQL with parameters
243
+ await sqlite.get(sql, params); // Get single row
244
+ await sqlite.all(sql, params); // Get all rows
245
+
246
+ // Key-value operations
247
+ await sqlite.put(key, value); // Store key-value pair
248
+ await sqlite.getValue(key); // Get value by key
249
+ await sqlite.delete(key); // Delete key
250
+
251
+ // Vector search
252
+ await sqlite.vectorSearch(query, limit); // Semantic search
253
+ ```
254
+
255
+ ### better-sqlite3-Compatible API
256
+
257
+ Need the synchronous ergonomics of [`better-sqlite3`](https://github.com/WiseLibs/better-sqlite3)?
258
+ The Node package now ships a compatibility layer that mirrors its familiar
259
+ `Database`/`Statement` workflow while proxying calls to PluresDB.
260
+
261
+ > **Note:** PluresDB operations run through HTTP and therefore return Promises.
262
+ > You can still keep the same control flow by awaiting each call.
263
+
264
+ ```typescript
265
+ import Database from "pluresdb/better-sqlite3";
266
+
267
+ const db = await new Database("./data.db", { autoStart: true }).open();
268
+ await db.exec(
269
+ "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)",
270
+ );
271
+
272
+ const insert = db.prepare("INSERT INTO users (name) VALUES (?)");
273
+ await insert.run("Ada Lovelace");
274
+
275
+ const select = db.prepare("SELECT id, name FROM users ORDER BY id");
276
+ const people = await select.all();
277
+ ```
278
+
279
+ Statements support `run`, `get`, `all`, `iterate`, and common mode toggles like
280
+ `.raw()`, `.pluck()`, and `.expand(true)` for dotted column names.
281
+
282
+ ```typescript
283
+ const singleColumnValues = await select.pluck().all();
284
+ const nestedRows = await select.expand().all();
285
+ ```
286
+
287
+ Transaction helpers mirror `better-sqlite3` as well:
288
+
289
+ ```typescript
290
+ const write = db.transaction(async (users) => {
291
+ for (const user of users) {
292
+ await insert.run(user.name);
293
+ }
294
+ });
295
+
296
+ await write([{ name: "Grace Hopper" }, { name: "Margaret Hamilton" }]);
297
+ ```
298
+
299
+ ### P2P API
300
+
301
+ ```typescript
302
+ // Identity management
303
+ await db.createIdentity({ name: "John", email: "john@example.com" });
304
+ await db.searchPeers("developer");
305
+
306
+ // Encrypted sharing
307
+ await db.shareNode(nodeId, targetPeerId, { accessLevel: "read-only" });
308
+ await db.acceptSharedNode(sharedNodeId);
309
+
310
+ // Cross-device sync
311
+ await db.addDevice({ name: "My Phone", type: "phone" });
312
+ await db.syncWithDevice(deviceId);
313
+ ```
314
+
315
+ ## 🗂️ Monorepo layout & Rust implementation
316
+
317
+ PluresDB ships as a Rust-first monorepo with language bindings for Deno and Node; the top-level layout is:
318
+
319
+ - **Rust workspace:** `crates/` hosts the production Rust core (`pluresdb-core`, `pluresdb-storage`, `pluresdb-sync`) plus bindings and tools (`pluresdb-cli`, `pluresdb-node`, `pluresdb-deno`).
320
+ - **JavaScript/TypeScript:** `legacy/` retains the original Deno/Node code paths for compatibility and references the same APIs exported via `package.json`/`mod.ts`.
321
+ - **Packaging:** `packaging/` and `packaging/winget/` contain the MSI/winget artifacts that back the published Windows package.
322
+
323
+ ## 🚀 Migration from SQLite
324
+
325
+ Migrating from SQLite is straightforward:
326
+
327
+ 1. **Install PluresDB**: `npm install pluresdb`
328
+ 2. **Replace imports**: Change `sqlite3` to `pluresdb`
329
+ 3. **Update initialization**: Use `SQLiteCompatibleAPI` instead of `sqlite3.Database`
330
+ 4. **Keep your queries**: All SQL queries work the same way
331
+
332
+ ```typescript
333
+ // Before (SQLite)
334
+ import sqlite3 from "sqlite3";
335
+ const db = new sqlite3.Database("./data.db");
336
+
337
+ // After (PluresDB)
338
+ import { SQLiteCompatibleAPI } from "pluresdb";
339
+ const db = new SQLiteCompatibleAPI();
340
+ ```
341
+
342
+ ## 🔒 Security
343
+
344
+ - **End-to-End Encryption**: All shared data is encrypted
345
+ - **Public Key Infrastructure**: Secure peer identification
346
+ - **Access Control**: Granular permissions and policies
347
+ - **Audit Trail**: Complete logging of all activities
348
+ - **Local-First**: Your data stays on your devices
349
+ - **Payload Sanitization**: Incoming records are scrubbed to neutralize prototype pollution and function injection attempts
350
+
351
+ ## 🧪 Testing & Verification
352
+
353
+ PluresDB ships with a unified verification workflow that compiles the TypeScript entry points and runs every Deno test suite (integration, performance, security, and unit).
354
+
355
+ ```powershell
356
+ npm run verify
357
+ ```
358
+
359
+ The command executes `tsc -p tsconfig.json` followed by `deno test -A --unstable-kv`, ensuring shipping builds stay green.
360
+
361
+ ### Azure Relay Testing
362
+
363
+ For testing P2P relay functionality in a cloud environment, PluresDB includes Azure infrastructure automation:
364
+
365
+ ```bash
366
+ # Deploy test environment with 3 nodes
367
+ cd azure/scripts
368
+ ./deploy.sh --environment test --node-count 3
369
+
370
+ # Run relay tests
371
+ npm run test:azure:relay
372
+
373
+ # Clean up
374
+ ./destroy.sh --environment test
375
+ ```
376
+
377
+ See [Azure Testing Guide](azure/README.md) and [Quick Start](azure/QUICKSTART.md) for detailed instructions.
378
+
379
+ ## 📊 Performance
380
+
381
+ - **Vector Search**: Sub-millisecond similarity search
382
+ - **CRDT Sync**: Efficient conflict resolution
383
+ - **Local Storage**: Fast local operations
384
+ - **P2P Sync**: Optimized for bandwidth and latency
385
+ - **Memory Efficient**: Minimal memory footprint
386
+
387
+ ## 🌍 Use Cases
388
+
389
+ ### Personal Database & Knowledge Management 📝
390
+
391
+ PluresDB is **perfect for personal use on Windows** as a local-first database:
392
+
393
+ - **Digital Journal**: Daily logs, mood tracking, personal reflections
394
+ - **Note-taking System**: Organize notes with tags, relationships, and smart search
395
+ - **Personal Wiki**: Build your own knowledge base with linked concepts
396
+ - **Task Manager**: Track personal and work tasks with custom fields
397
+ - **Research Database**: Collect papers, articles, bookmarks with metadata
398
+ - **Contact Manager**: Store contacts with rich relationships
399
+ - **Recipe Collection**: Searchable recipes with ingredients and ratings
400
+ - **Password Vault**: Encrypted storage for sensitive information
401
+ - **Bookmark Manager**: Save and organize web links with AI-powered search
402
+
403
+ 👉 **[Windows Getting Started Guide](docs/WINDOWS_GETTING_STARTED.md)** for personal database setup
404
+
405
+ ### Application Development 🚀
406
+
407
+ - **VSCode Extensions**: Replace SQLite with P2P capabilities
408
+ - **Local-First Apps**: Offline-first applications
409
+ - **Collaborative Tools**: Real-time collaboration
410
+ - **IoT Applications**: Edge computing and sync
411
+ - **Research Projects**: Academic and research data
412
+ - **Personal Knowledge Management**: Personal wikis and notes
413
+
414
+ ## 📚 Documentation
415
+
416
+ - [Installation Guide](packaging/INSTALLATION.md)
417
+ - [API Reference](docs/API.md)
418
+ - [VSCode Integration](examples/vscode-extension-integration.ts)
419
+ - [Migration Guide](docs/MIGRATION.md)
420
+ - [P2P Guide](docs/P2P.md)
421
+
422
+ ## 🤝 Contributing
423
+
424
+ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
425
+
426
+ **Note**: By contributing to PluresDB, you agree that your contributions will be licensed under the AGPL v3 license.
427
+
428
+ ## 📄 License
429
+
430
+ This project is licensed under the GNU Affero General Public License v3.0 (AGPL v3). This ensures that all modifications to PluresDB remain open source. See [LICENSE](LICENSE) for details.
431
+
432
+ ## 🆘 Support
433
+
434
+ - **Issues**: [GitHub Issues](https://github.com/plures/pluresdb/issues)
435
+ - **Discussions**: [GitHub Discussions](https://github.com/plures/pluresdb/discussions)
436
+
437
+ For security issues, please see our [Security Policy](SECURITY.md).
438
+
439
+ ## 🙏 Acknowledgments
440
+
441
+ - Built with [Deno](https://deno.land/)
442
+ - Inspired by [Gun.js](https://gun.eco/)
443
+ - Web UI built with [Svelte](https://svelte.dev/)
444
+ - Vector search powered by [HNSW](https://github.com/nmslib/hnswlib)
445
+
446
+ ---
447
+
448
+ **Ready to build the future of local-first applications?** 🚀
449
+
450
+ [Get Started](packaging/INSTALLATION.md) | [View Examples](examples/) | [GitHub Discussions](https://github.com/plures/pluresdb/discussions)
@@ -0,0 +1 @@
1
+ {"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../legacy/types/node-types.ts","../legacy/better-sqlite3-shared.ts","../legacy/vscode/extension.ts","../legacy/node-index.ts","../legacy/better-sqlite3.ts","../legacy/types/index.ts","../legacy/node-wrapper.ts","../legacy/cli.ts","../node_modules/@types/node/compatibility/disposable.d.ts","../node_modules/@types/node/compatibility/indexable.d.ts","../node_modules/@types/node/compatibility/iterators.d.ts","../node_modules/@types/node/compatibility/index.d.ts","../node_modules/@types/node/globals.typedarray.d.ts","../node_modules/@types/node/buffer.buffer.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/web-globals/abortcontroller.d.ts","../node_modules/@types/node/web-globals/domexception.d.ts","../node_modules/@types/node/web-globals/events.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/undici-types/retry-handler.d.ts","../node_modules/undici-types/retry-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/util.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/eventsource.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/web-globals/fetch.d.ts","../node_modules/@types/node/web-globals/navigator.d.ts","../node_modules/@types/node/web-globals/storage.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/inspector.generated.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/sea.d.ts","../node_modules/@types/node/sqlite.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/index.d.ts"],"fileIdsList":[[58,71,119,136,137],[61,71,119,136,137],[64,71,119,131,136,137,141,143],[58,59,60,71,119,120,130,131,136,137,140,141,143,167],[63,71,119,120,130,131,136,137,140,141],[71,119,136,137],[58,61,71,119,136,137,141],[71,116,117,119,136,137],[71,118,119,136,137],[119,136,137],[71,119,124,136,137,154],[71,119,120,125,130,136,137,139,151,162],[71,119,120,121,130,136,137,139],[66,67,68,71,119,136,137],[71,119,122,136,137,163],[71,119,123,124,131,136,137,140],[71,119,124,136,137,151,159],[71,119,125,127,130,136,137,139],[71,118,119,126,136,137],[71,119,127,128,136,137],[71,119,129,130,136,137],[71,118,119,130,136,137],[71,119,130,131,132,136,137,151,162],[71,119,130,131,132,136,137,146,151,154],[71,112,119,127,130,133,136,137,139,151,162],[71,119,130,131,133,134,136,137,139,151,159,162],[71,119,133,135,136,137,151,159,162],[69,70,71,72,73,74,75,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168],[71,119,130,136,137],[71,119,136,137,138,162],[71,119,127,130,136,137,139,151],[71,119,136,137,140],[71,119,136,137,141],[71,118,119,136,137,142],[71,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168],[71,119,136,137,144],[71,119,136,137,145],[71,119,130,136,137,146,147],[71,119,136,137,146,148,163,165],[71,119,131,136,137],[71,119,130,136,137,151,152,154],[71,119,136,137,153,154],[71,119,136,137,151,152],[71,119,136,137,154],[71,119,136,137,155],[71,116,119,136,137,151,156],[71,119,130,136,137,157,158],[71,119,136,137,157,158],[71,119,124,136,137,139,151,159],[71,119,136,137,160],[71,119,136,137,139,161],[71,119,133,136,137,145,162],[71,119,124,136,137,163],[71,119,136,137,151,164],[71,119,136,137,138,165],[71,119,136,137,166],[71,112,119,136,137],[71,112,119,130,132,136,137,142,151,154,162,164,165,167],[71,119,136,137,151,168],[71,84,88,119,136,137,162],[71,84,119,136,137,151,162],[71,79,119,136,137],[71,81,84,119,136,137,159,162],[71,119,136,137,139,159],[71,119,136,137,169],[71,79,119,136,137,169],[71,81,84,119,136,137,139,162],[71,76,77,80,83,119,130,136,137,151,162],[71,84,91,119,136,137],[71,76,82,119,136,137],[71,84,105,106,119,136,137],[71,80,84,119,136,137,154,162,169],[71,105,119,136,137,169],[71,78,79,119,136,137,169],[71,84,119,136,137],[71,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,106,107,108,109,110,111,119,136,137],[71,84,99,119,136,137],[71,84,91,92,119,136,137],[71,82,84,92,93,119,136,137],[71,83,119,136,137],[71,76,79,84,119,136,137],[71,84,88,92,93,119,136,137],[71,88,119,136,137],[71,82,84,87,119,136,137,162],[71,76,81,84,91,119,136,137],[71,119,136,137,151],[71,79,84,105,119,136,137,167,169]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"5ddfd2a854188edc6ab9070531144708355a3de82bfe3518f3728c9e9249942c","signature":"886602dde98ba1ed4d3caaa2bf4e820ee5d1d1399f3922b6deb3fcaaa26035fb"},{"version":"3076c2933572b94e91dfb7230c169e3927d02be79e0aa778cd37f16fb731c9d7","signature":"1bc0988b2958a7395d441116b6441f197142a062ec8bd4dcc48c9c628d89de8d"},{"version":"68a8f6e1e81a7f2fab0bafe60a4cbb4b49635a5f99d17f3e70fcf02bed474264","signature":"dc916e2a4affd8a9b869498cb6185691ebc66500f8f3c49b3d80bc91c54353ba"},{"version":"b711ddaca8170c1a949eb20b4f3091a7e9e408b4c4def0fb75f36481f24cc2c2","signature":"0c1d7573a05dbb181cde668c0e686b65465a4b414fa75937ef80bec82eb70d73"},{"version":"c9e9bc3a28176934ea7039392042e0b3e71911a244ae43aa91b9aa9ba43c46b9","signature":"400dca09d3a2b7dff0ea7b01952631cd00c65adbc563982cef4a874f142a0f77"},{"version":"d9d71dd78cdad0ba54747b05d81c590bc8b9f63a958e1e79c066f39918b7925a","signature":"4b6d45b9585e924547324ba400ba1b79cab92dc8e285987551409101ffefb601"},{"version":"2b2251b7ac140b0796ca7839fcf32c13464180ecb2e5ae949e37b3e303d836a5","signature":"64402f8e9e44251160da5eba6818d78e5cc5de0a970ba6986a3014f0118e6faa"},{"version":"f43513ada7ab6e219546e7532d6a93da49703fc222ec54802b7bccdce7d6c761","signature":"fe07acf00866a96f9f923514d12053332faf9364947bf7de840f57afa4e08364"},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"bb45cd435da536500f1d9692a9b49d0c570b763ccbf00473248b777f5c1f353b","impliedFormat":1},{"version":"6b4e081d55ac24fc8a4631d5dd77fe249fa25900abd7d046abb87d90e3b45645","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"83e63d6ccf8ec004a3bb6d58b9bb0104f60e002754b1e968024b320730cc5311","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"21145ce1c54e05ef9e52092b98a4ebfb326b92f52e76e47211c50cfcd2a2b4ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"f27524f4bef4b6519c604bdb23bf4465bddcccbf3f003abb901acbd0d7404d99","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c959a391a75be9789b43c8468f71e3fa06488b4d691d5729dde1416dcd38225b","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"5ebe6f4cc3b803cbfc962bae0d954f9c80e5078ca41eb3f1de41d92e7193ef37","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"9f663c2f91127ef7024e8ca4b3b4383ff2770e5f826696005de382282794b127","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1}],"root":[[58,62],64,65],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"checkJs":false,"declaration":true,"declarationMap":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"outDir":"./","rootDir":"../legacy","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[59,1],[62,2],[65,3],[61,4],[64,5],[63,6],[58,6],[60,7],[116,8],[117,8],[118,9],[71,10],[119,11],[120,12],[121,13],[66,6],[69,14],[67,6],[68,6],[122,15],[123,16],[124,17],[125,18],[126,19],[127,20],[128,20],[129,21],[130,22],[131,23],[132,24],[72,6],[70,6],[133,25],[134,26],[135,27],[169,28],[136,29],[137,6],[138,30],[139,31],[140,32],[141,33],[142,34],[143,35],[144,36],[145,37],[146,38],[147,38],[148,39],[149,6],[150,40],[151,41],[153,42],[152,43],[154,44],[155,45],[156,46],[157,47],[158,48],[159,49],[160,50],[161,51],[162,52],[163,53],[164,54],[165,55],[166,56],[73,6],[74,6],[75,6],[113,57],[114,6],[115,6],[167,58],[168,59],[56,6],[57,6],[11,6],[10,6],[2,6],[12,6],[13,6],[14,6],[15,6],[16,6],[17,6],[18,6],[19,6],[3,6],[20,6],[21,6],[4,6],[22,6],[26,6],[23,6],[24,6],[25,6],[27,6],[28,6],[29,6],[5,6],[30,6],[31,6],[32,6],[33,6],[6,6],[37,6],[34,6],[35,6],[36,6],[38,6],[7,6],[39,6],[44,6],[45,6],[40,6],[41,6],[42,6],[43,6],[8,6],[49,6],[46,6],[47,6],[48,6],[50,6],[9,6],[51,6],[52,6],[53,6],[55,6],[54,6],[1,6],[91,60],[101,61],[90,60],[111,62],[82,63],[81,64],[110,65],[104,66],[109,67],[84,68],[98,69],[83,70],[107,71],[79,72],[78,65],[108,73],[80,74],[85,75],[86,6],[89,75],[76,6],[112,76],[102,77],[93,78],[94,79],[96,80],[92,81],[95,82],[105,65],[87,83],[88,84],[97,85],[77,86],[100,77],[99,75],[103,6],[106,87]],"version":"5.9.3"}
@@ -0,0 +1,12 @@
1
+ import { QueryResult } from "./types/node-types";
2
+ export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
3
+ export declare function normalizeParameterInput(args: unknown[]): unknown[];
4
+ export declare function shapeRow(row: unknown, columns: string[] | undefined, mode: {
5
+ raw: boolean;
6
+ pluck: boolean;
7
+ expand: boolean;
8
+ }): unknown;
9
+ export declare function normalizeQueryResult(raw: unknown): QueryResult;
10
+ export declare function splitSqlStatements(sql: string): string[];
11
+ export declare function sanitizeDataDirName(name: string): string;
12
+ //# sourceMappingURL=better-sqlite3-shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"better-sqlite3-shared.d.ts","sourceRoot":"","sources":["../legacy/better-sqlite3-shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMlC;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAelE;AAyBD,wBAAgB,QAAQ,CACtB,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAC7B,IAAI,EAAE;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACtD,OAAO,CA4CT;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,CA2C9D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAKxD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD"}