This commit is contained in:
Benjamin Toby 2026-03-08 08:32:12 +01:00
parent 9e922be199
commit c7f2f22b32
38 changed files with 222 additions and 445 deletions

View File

@ -69,12 +69,12 @@ npm install @moduletrace/nsqlite
### 1. Create the config file
Create `bun-sqlite.config.ts` at your project root:
Create `nsqlite.config.ts` at your project root:
```ts
import type { BunSQLiteConfig } from "@moduletrace/nsqlite";
import type { NSQLiteConfig } from "@moduletrace/nsqlite";
const config: BunSQLiteConfig = {
const config: NSQLiteConfig = {
db_name: "my-app.db",
db_schema_file_name: "schema.ts",
db_dir: "./db", // optional: where to store the db file
@ -90,9 +90,9 @@ export default config;
Create `./db/schema.ts` (matching `db_schema_file_name` above):
```ts
import type { BUN_SQLITE_DatabaseSchemaType } from "@moduletrace/nsqlite";
import type { NSQLITE_DatabaseSchemaType } from "@moduletrace/nsqlite";
const schema: BUN_SQLITE_DatabaseSchemaType = {
const schema: NSQLITE_DatabaseSchemaType = {
dbName: "my-app",
tables: [
{
@ -112,7 +112,7 @@ export default schema;
### 3. Sync the schema to SQLite
```bash
npx bun-sqlite schema
npx nsqlite schema
```
This creates the SQLite database file and creates/updates all tables to match your schema.
@ -147,7 +147,7 @@ await NodeSQLite.delete({ table: "users", targetId: 1 });
## Configuration
The config file must be named `bun-sqlite.config.ts` and placed at the root of your project.
The config file must be named `nsqlite.config.ts` and placed at the root of your project.
| Field | Type | Required | Description |
| --------------------- | -------- | -------- | ------------------------------------------------------------------------------------------ |
@ -165,21 +165,21 @@ The config file must be named `bun-sqlite.config.ts` and placed at the root of y
### Database Schema
```ts
interface BUN_SQLITE_DatabaseSchemaType {
interface NSQLITE_DatabaseSchemaType {
dbName?: string;
tables: BUN_SQLITE_TableSchemaType[];
tables: NSQLITE_TableSchemaType[];
}
```
### Table Schema
```ts
interface BUN_SQLITE_TableSchemaType {
interface NSQLITE_TableSchemaType {
tableName: string;
tableDescription?: string;
fields: BUN_SQLITE_FieldSchemaType[];
indexes?: BUN_SQLITE_IndexSchemaType[];
uniqueConstraints?: BUN_SQLITE_UniqueConstraintSchemaType[];
fields: NSQLITE_FieldSchemaType[];
indexes?: NSQLITE_IndexSchemaType[];
uniqueConstraints?: NSQLITE_UniqueConstraintSchemaType[];
parentTableName?: string; // inherit fields from another table in the schema
tableNameOld?: string; // rename: set this to the old name to trigger ALTER TABLE RENAME
isVector?: boolean; // mark this as a sqlite-vec virtual table
@ -190,7 +190,7 @@ interface BUN_SQLITE_TableSchemaType {
### Field Schema
```ts
type BUN_SQLITE_FieldSchemaType = {
type NSQLITE_FieldSchemaType = {
fieldName?: string;
dataType: "TEXT" | "INTEGER";
primaryKey?: boolean;
@ -199,7 +199,7 @@ type BUN_SQLITE_FieldSchemaType = {
unique?: boolean;
defaultValue?: string | number;
defaultValueLiteral?: string; // raw SQL literal, e.g. "CURRENT_TIMESTAMP"
foreignKey?: BUN_SQLITE_ForeignKeyType;
foreignKey?: NSQLITE_ForeignKeyType;
isVector?: boolean; // vector embedding column
vectorSize?: number; // embedding dimensions (default: 1536)
sideCar?: boolean; // sqlite-vec "+" prefix for side-car columns
@ -210,7 +210,7 @@ type BUN_SQLITE_FieldSchemaType = {
### Foreign Key
```ts
interface BUN_SQLITE_ForeignKeyType {
interface NSQLITE_ForeignKeyType {
destinationTableName: string;
destinationTableColumnName: string;
cascadeDelete?: boolean;
@ -221,7 +221,7 @@ interface BUN_SQLITE_ForeignKeyType {
### Index
```ts
interface BUN_SQLITE_IndexSchemaType {
interface NSQLITE_IndexSchemaType {
indexName?: string;
indexType?: "regular" | "full_text" | "vector";
indexTableFields?: { value: string; dataType: string }[];
@ -231,7 +231,7 @@ interface BUN_SQLITE_IndexSchemaType {
### Unique Constraint
```ts
interface BUN_SQLITE_UniqueConstraintSchemaType {
interface NSQLITE_UniqueConstraintSchemaType {
constraintName?: string;
constraintTableFields?: { value: string }[];
}
@ -241,12 +241,12 @@ interface BUN_SQLITE_UniqueConstraintSchemaType {
## CLI Commands
The package provides a `bun-sqlite` CLI binary.
The package provides a `nsqlite` CLI binary.
### `schema` — Sync database to schema
```bash
npx bun-sqlite schema [options]
npx nsqlite schema [options]
```
| Option | Description |
@ -258,19 +258,19 @@ npx bun-sqlite schema [options]
```bash
# Sync schema only
npx bun-sqlite schema
npx nsqlite schema
# Sync schema and regenerate types
npx bun-sqlite schema --typedef
npx nsqlite schema --typedef
# Sync schema, recreate vector tables, and regenerate types
npx bun-sqlite schema --vector --typedef
npx nsqlite schema --vector --typedef
```
### `typedef` — Generate TypeScript types only
```bash
npx bun-sqlite typedef
npx nsqlite typedef
```
Reads the schema and writes TypeScript type definitions to the path configured in `typedef_file_path`.
@ -280,7 +280,7 @@ Reads the schema and writes TypeScript type definitions to the path configured i
### `backup` — Back up the database
```bash
npx bun-sqlite backup
npx nsqlite backup
```
Copies the current database file into `db_backup_dir` with a timestamped filename. After copying, the oldest backups are automatically pruned so the number of stored backups never exceeds `max_backups` (default: 10).
@ -288,7 +288,7 @@ Copies the current database file into `db_backup_dir` with a timestamped filenam
**Example:**
```bash
npx bun-sqlite backup
npx nsqlite backup
# Backing up database ...
# DB Backup Success!
```
@ -298,7 +298,7 @@ npx bun-sqlite backup
### `restore` — Restore the database from a backup
```bash
npx bun-sqlite restore
npx nsqlite restore
```
Presents an interactive list of available backups sorted by date (newest first). Select a backup to overwrite the current database file with it.
@ -306,7 +306,7 @@ Presents an interactive list of available backups sorted by date (newest first).
**Example:**
```bash
npx bun-sqlite restore
npx nsqlite restore
# Restoring up database ...
# ? Select a backup: (Use arrow keys)
# Backup #1: Mon Mar 02 2026 14:30:00
@ -660,10 +660,10 @@ const res = await NodeSQLite.select({
```bash
# Initial sync
npx bun-sqlite schema
npx nsqlite schema
# Recreate vector tables (e.g. after changing vectorSize)
npx bun-sqlite schema --vector
npx nsqlite schema --vector
```
### Query vectors
@ -691,16 +691,16 @@ const res = await NodeSQLite.select({
Run the `typedef` command (or pass `--typedef` to `schema`) to generate a `.ts` file containing:
- A `const` array of all table names (`BunSQLiteTables`)
- A `type` for each table (named `BUN_SQLITE_<DB_NAME>_<TABLE_NAME>`)
- An intersection type `BUN_SQLITE_<DB_NAME>_ALL_TYPEDEFS`
- A `const` array of all table names (`NSQLiteTables`)
- A `type` for each table (named `NSQLITE_<DB_NAME>_<TABLE_NAME>`)
- An intersection type `NSQLITE_<DB_NAME>_ALL_TYPEDEFS`
**Example output** (`db/types/db.ts`):
```ts
export const BunSQLiteTables = ["users"] as const;
export const NSQLiteTables = ["users"] as const;
export type BUN_SQLITE_MY_APP_USERS = {
export type NSQLITE_MY_APP_USERS = {
/** The unique identifier of the record. */
id?: number;
/** The time when the record was created. (Unix Timestamp) */
@ -712,17 +712,17 @@ export type BUN_SQLITE_MY_APP_USERS = {
email?: string;
};
export type BUN_SQLITE_MY_APP_ALL_TYPEDEFS = BUN_SQLITE_MY_APP_USERS; // intersection of all table types
export type NSQLITE_MY_APP_ALL_TYPEDEFS = NSQLITE_MY_APP_USERS; // intersection of all table types
```
Use the generated types with the CRUD API for full type safety:
```ts
import NodeSQLite from "@moduletrace/nsqlite";
import { BUN_SQLITE_MY_APP_USERS, BunSQLiteTables } from "./db/types/db";
import { NSQLITE_MY_APP_USERS, NSQLiteTables } from "./db/types/db";
const res = await NodeSQLite.select<BUN_SQLITE_MY_APP_USERS>({
table: "users" as (typeof BunSQLiteTables)[number],
const res = await NodeSQLite.select<NSQLITE_MY_APP_USERS>({
table: "users" as (typeof NSQLiteTables)[number],
});
```
@ -784,14 +784,14 @@ node-sqlite/
│ └── trim-backups.ts # Prune oldest backups over max_backups
└── test/
├── test-01/ # Basic example project
│ ├── bun-sqlite.config.ts
│ ├── nsqlite.config.ts
│ ├── db/
│ │ ├── bun-sqlite-schema.ts
│ │ └── types/bun-sqlite.ts # Generated types
│ │ ├── nsqlite-schema.ts
│ │ └── types/nsqlite.ts # Generated types
│ └── src/
│ └── sql.ts
└── test-02/ # Full CRUD example project
├── bun-sqlite.config.ts
├── nsqlite.config.ts
├── index.ts
└── src/crud/
├── insert.ts

213
bun.lock
View File

@ -1,213 +0,0 @@
{
"lockfileVersion": 1,
"workspaces": {
"": {
"name": "@moduletrace/node-sqlite",
"dependencies": {
"@inquirer/prompts": "^8.3.0",
"better-sqlite3": "^12.6.2",
"chalk": "^5.6.2",
"commander": "^14.0.3",
"inquirer": "^13.3.0",
"lodash": "^4.17.23",
"mysql": "^2.18.1",
"sqlite-vec": "^0.1.7-alpha.2",
},
"devDependencies": {
"@types/better-sqlite3": "^7.6.13",
"@types/bun": "latest",
"@types/lodash": "^4.17.24",
"@types/mysql": "^2.15.27",
"@types/node": "^25.3.3",
},
"peerDependencies": {
"typescript": "^5",
},
},
},
"packages": {
"@inquirer/ansi": ["@inquirer/ansi@2.0.3", "", {}, "sha512-g44zhR3NIKVs0zUesa4iMzExmZpLUdTLRMCStqX3GE5NT6VkPcxQGJ+uC8tDgBUC/vB1rUhUd55cOf++4NZcmw=="],
"@inquirer/checkbox": ["@inquirer/checkbox@5.1.0", "", { "dependencies": { "@inquirer/ansi": "^2.0.3", "@inquirer/core": "^11.1.5", "@inquirer/figures": "^2.0.3", "@inquirer/type": "^4.0.3" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-/HjF1LN0a1h4/OFsbGKHNDtWICFU/dqXCdym719HFTyJo9IG7Otr+ziGWc9S0iQuohRZllh+WprSgd5UW5Fw0g=="],
"@inquirer/confirm": ["@inquirer/confirm@6.0.8", "", { "dependencies": { "@inquirer/core": "^11.1.5", "@inquirer/type": "^4.0.3" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-Di6dgmiZ9xCSUxWUReWTqDtbhXCuG2MQm2xmgSAIruzQzBqNf49b8E07/vbCYY506kDe8BiwJbegXweG8M1klw=="],
"@inquirer/core": ["@inquirer/core@11.1.5", "", { "dependencies": { "@inquirer/ansi": "^2.0.3", "@inquirer/figures": "^2.0.3", "@inquirer/type": "^4.0.3", "cli-width": "^4.1.0", "fast-wrap-ansi": "^0.2.0", "mute-stream": "^3.0.0", "signal-exit": "^4.1.0" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-QQPAX+lka8GyLcZ7u7Nb1h6q72iZ/oy0blilC3IB2nSt1Qqxp7akt94Jqhi/DzARuN3Eo9QwJRvtl4tmVe4T5A=="],
"@inquirer/editor": ["@inquirer/editor@5.0.8", "", { "dependencies": { "@inquirer/core": "^11.1.5", "@inquirer/external-editor": "^2.0.3", "@inquirer/type": "^4.0.3" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-sLcpbb9B3XqUEGrj1N66KwhDhEckzZ4nI/W6SvLXyBX8Wic3LDLENlWRvkOGpCPoserabe+MxQkpiMoI8irvyA=="],
"@inquirer/expand": ["@inquirer/expand@5.0.8", "", { "dependencies": { "@inquirer/core": "^11.1.5", "@inquirer/type": "^4.0.3" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-QieW3F1prNw3j+hxO7/NKkG1pk3oz7pOB6+5Upwu3OIwADfPX0oZVppsqlL+Vl/uBHHDSOBY0BirLctLnXwGGg=="],
"@inquirer/external-editor": ["@inquirer/external-editor@2.0.3", "", { "dependencies": { "chardet": "^2.1.1", "iconv-lite": "^0.7.2" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-LgyI7Agbda74/cL5MvA88iDpvdXI2KuMBCGRkbCl2Dg1vzHeOgs+s0SDcXV7b+WZJrv2+ERpWSM65Fpi9VfY3w=="],
"@inquirer/figures": ["@inquirer/figures@2.0.3", "", {}, "sha512-y09iGt3JKoOCBQ3w4YrSJdokcD8ciSlMIWsD+auPu+OZpfxLuyz+gICAQ6GCBOmJJt4KEQGHuZSVff2jiNOy7g=="],
"@inquirer/input": ["@inquirer/input@5.0.8", "", { "dependencies": { "@inquirer/core": "^11.1.5", "@inquirer/type": "^4.0.3" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-p0IJslw0AmedLEkOU+yrEX3Aj2RTpQq7ZOf8nc1DIhjzaxRWrrgeuE5Kyh39fVRgtcACaMXx/9WNo8+GjgBOfw=="],
"@inquirer/number": ["@inquirer/number@4.0.8", "", { "dependencies": { "@inquirer/core": "^11.1.5", "@inquirer/type": "^4.0.3" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-uGLiQah9A0F9UIvJBX52m0CnqtLaym0WpT9V4YZrjZ+YRDKZdwwoEPz06N6w8ChE2lrnsdyhY9sL+Y690Kh9gQ=="],
"@inquirer/password": ["@inquirer/password@5.0.8", "", { "dependencies": { "@inquirer/ansi": "^2.0.3", "@inquirer/core": "^11.1.5", "@inquirer/type": "^4.0.3" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-zt1sF4lYLdvPqvmvHdmjOzuUUjuCQ897pdUCO8RbXMUDKXJTTyOQgtn23le+jwcb+MpHl3VAFvzIdxRAf6aPlA=="],
"@inquirer/prompts": ["@inquirer/prompts@8.3.0", "", { "dependencies": { "@inquirer/checkbox": "^5.1.0", "@inquirer/confirm": "^6.0.8", "@inquirer/editor": "^5.0.8", "@inquirer/expand": "^5.0.8", "@inquirer/input": "^5.0.8", "@inquirer/number": "^4.0.8", "@inquirer/password": "^5.0.8", "@inquirer/rawlist": "^5.2.4", "@inquirer/search": "^4.1.4", "@inquirer/select": "^5.1.0" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-JAj66kjdH/F1+B7LCigjARbwstt3SNUOSzMdjpsvwJmzunK88gJeXmcm95L9nw1KynvFVuY4SzXh/3Y0lvtgSg=="],
"@inquirer/rawlist": ["@inquirer/rawlist@5.2.4", "", { "dependencies": { "@inquirer/core": "^11.1.5", "@inquirer/type": "^4.0.3" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-fTuJ5Cq9W286isLxwj6GGyfTjx1Zdk4qppVEPexFuA6yioCCXS4V1zfKroQqw7QdbDPN73xs2DiIAlo55+kBqg=="],
"@inquirer/search": ["@inquirer/search@4.1.4", "", { "dependencies": { "@inquirer/core": "^11.1.5", "@inquirer/figures": "^2.0.3", "@inquirer/type": "^4.0.3" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-9yPTxq7LPmYjrGn3DRuaPuPbmC6u3fiWcsE9ggfLcdgO/ICHYgxq7mEy1yJ39brVvgXhtOtvDVjDh9slJxE4LQ=="],
"@inquirer/select": ["@inquirer/select@5.1.0", "", { "dependencies": { "@inquirer/ansi": "^2.0.3", "@inquirer/core": "^11.1.5", "@inquirer/figures": "^2.0.3", "@inquirer/type": "^4.0.3" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-OyYbKnchS1u+zRe14LpYrN8S0wH1vD0p2yKISvSsJdH2TpI87fh4eZdWnpdbrGauCRWDph3NwxRmM4Pcm/hx1Q=="],
"@inquirer/type": ["@inquirer/type@4.0.3", "", { "peerDependencies": { "@types/node": ">=18" } }, "sha512-cKZN7qcXOpj1h+1eTTcGDVLaBIHNMT1Rz9JqJP5MnEJ0JhgVWllx7H/tahUp5YEK1qaByH2Itb8wLG/iScD5kw=="],
"@types/better-sqlite3": ["@types/better-sqlite3@7.6.13", "", { "dependencies": { "@types/node": "*" } }, "sha512-NMv9ASNARoKksWtsq/SHakpYAYnhBrQgGD8zkLYk/jaK8jUGn08CfEdTRgYhMypUQAfzSP8W6gNLe0q19/t4VA=="],
"@types/bun": ["@types/bun@1.3.10", "", { "dependencies": { "bun-types": "1.3.10" } }, "sha512-0+rlrUrOrTSskibryHbvQkDOWRJwJZqZlxrUs1u4oOoTln8+WIXBPmAuCF35SWB2z4Zl3E84Nl/D0P7803nigQ=="],
"@types/lodash": ["@types/lodash@4.17.24", "", {}, "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ=="],
"@types/mysql": ["@types/mysql@2.15.27", "", { "dependencies": { "@types/node": "*" } }, "sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA=="],
"@types/node": ["@types/node@25.3.3", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ=="],
"base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="],
"better-sqlite3": ["better-sqlite3@12.6.2", "", { "dependencies": { "bindings": "^1.5.0", "prebuild-install": "^7.1.1" } }, "sha512-8VYKM3MjCa9WcaSAI3hzwhmyHVlH8tiGFwf0RlTsZPWJ1I5MkzjiudCo4KC4DxOaL/53A5B1sI/IbldNFDbsKA=="],
"bignumber.js": ["bignumber.js@9.0.0", "", {}, "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A=="],
"bindings": ["bindings@1.5.0", "", { "dependencies": { "file-uri-to-path": "1.0.0" } }, "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="],
"bl": ["bl@4.1.0", "", { "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="],
"buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="],
"bun-types": ["bun-types@1.3.10", "", { "dependencies": { "@types/node": "*" } }, "sha512-tcpfCCl6XWo6nCVnpcVrxQ+9AYN1iqMIzgrSKYMB/fjLtV2eyAVEg7AxQJuCq/26R6HpKWykQXuSOq/21RYcbg=="],
"chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="],
"chardet": ["chardet@2.1.1", "", {}, "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ=="],
"chownr": ["chownr@1.1.4", "", {}, "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="],
"cli-width": ["cli-width@4.1.0", "", {}, "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ=="],
"commander": ["commander@14.0.3", "", {}, "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw=="],
"core-util-is": ["core-util-is@1.0.3", "", {}, "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="],
"decompress-response": ["decompress-response@6.0.0", "", { "dependencies": { "mimic-response": "^3.1.0" } }, "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="],
"deep-extend": ["deep-extend@0.6.0", "", {}, "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="],
"detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
"end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="],
"expand-template": ["expand-template@2.0.3", "", {}, "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="],
"fast-string-truncated-width": ["fast-string-truncated-width@3.0.3", "", {}, "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g=="],
"fast-string-width": ["fast-string-width@3.0.2", "", { "dependencies": { "fast-string-truncated-width": "^3.0.2" } }, "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg=="],
"fast-wrap-ansi": ["fast-wrap-ansi@0.2.0", "", { "dependencies": { "fast-string-width": "^3.0.2" } }, "sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w=="],
"file-uri-to-path": ["file-uri-to-path@1.0.0", "", {}, "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="],
"fs-constants": ["fs-constants@1.0.0", "", {}, "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="],
"github-from-package": ["github-from-package@0.0.0", "", {}, "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="],
"iconv-lite": ["iconv-lite@0.7.2", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw=="],
"ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="],
"inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
"ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="],
"inquirer": ["inquirer@13.3.0", "", { "dependencies": { "@inquirer/ansi": "^2.0.3", "@inquirer/core": "^11.1.5", "@inquirer/prompts": "^8.3.0", "@inquirer/type": "^4.0.3", "mute-stream": "^3.0.0", "run-async": "^4.0.6", "rxjs": "^7.8.2" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-APTrZe9IhrsshL0u2PgmEMLP3CXDBjZ99xh5dR2+sryOt5R+JGL0KNuaTTT2lW54B9eNQDMutPR05UYTL7Xb1Q=="],
"isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="],
"lodash": ["lodash@4.17.23", "", {}, "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w=="],
"mimic-response": ["mimic-response@3.1.0", "", {}, "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="],
"minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="],
"mkdirp-classic": ["mkdirp-classic@0.5.3", "", {}, "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="],
"mute-stream": ["mute-stream@3.0.0", "", {}, "sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw=="],
"mysql": ["mysql@2.18.1", "", { "dependencies": { "bignumber.js": "9.0.0", "readable-stream": "2.3.7", "safe-buffer": "5.1.2", "sqlstring": "2.3.1" } }, "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig=="],
"napi-build-utils": ["napi-build-utils@2.0.0", "", {}, "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA=="],
"node-abi": ["node-abi@3.87.0", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ=="],
"once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
"prebuild-install": ["prebuild-install@7.1.3", "", { "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", "napi-build-utils": "^2.0.0", "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", "simple-get": "^4.0.0", "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0" }, "bin": "bin.js" }, "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug=="],
"process-nextick-args": ["process-nextick-args@2.0.1", "", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="],
"pump": ["pump@3.0.4", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA=="],
"rc": ["rc@1.2.8", "", { "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "bin": "cli.js" }, "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="],
"readable-stream": ["readable-stream@2.3.7", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="],
"run-async": ["run-async@4.0.6", "", {}, "sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ=="],
"rxjs": ["rxjs@7.8.2", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA=="],
"safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="],
"safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
"semver": ["semver@7.7.4", "", { "bin": "bin/semver.js" }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="],
"signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="],
"simple-concat": ["simple-concat@1.0.1", "", {}, "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="],
"simple-get": ["simple-get@4.0.1", "", { "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } }, "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA=="],
"sqlite-vec": ["sqlite-vec@0.1.7-alpha.2", "", { "optionalDependencies": { "sqlite-vec-darwin-arm64": "0.1.7-alpha.2", "sqlite-vec-darwin-x64": "0.1.7-alpha.2", "sqlite-vec-linux-arm64": "0.1.7-alpha.2", "sqlite-vec-linux-x64": "0.1.7-alpha.2", "sqlite-vec-windows-x64": "0.1.7-alpha.2" } }, "sha512-rNgRCv+4V4Ed3yc33Qr+nNmjhtrMnnHzXfLVPeGb28Dx5mmDL3Ngw/Wk8vhCGjj76+oC6gnkmMG8y73BZWGBwQ=="],
"sqlite-vec-darwin-arm64": ["sqlite-vec-darwin-arm64@0.1.7-alpha.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-raIATOqFYkeCHhb/t3r7W7Cf2lVYdf4J3ogJ6GFc8PQEgHCPEsi+bYnm2JT84MzLfTlSTIdxr4/NKv+zF7oLPw=="],
"sqlite-vec-darwin-x64": ["sqlite-vec-darwin-x64@0.1.7-alpha.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-jeZEELsQjjRsVojsvU5iKxOvkaVuE+JYC8Y4Ma8U45aAERrDYmqZoHvgSG7cg1PXL3bMlumFTAmHynf1y4pOzA=="],
"sqlite-vec-linux-arm64": ["sqlite-vec-linux-arm64@0.1.7-alpha.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-6Spj4Nfi7tG13jsUG+W7jnT0bCTWbyPImu2M8nWp20fNrd1SZ4g3CSlDAK8GBdavX7wRlbBHCZ+BDa++rbDewA=="],
"sqlite-vec-linux-x64": ["sqlite-vec-linux-x64@0.1.7-alpha.2", "", { "os": "linux", "cpu": "x64" }, "sha512-IcgrbHaDccTVhXDf8Orwdc2+hgDLAFORl6OBUhcvlmwswwBP1hqBTSEhovClG4NItwTOBNgpwOoQ7Qp3VDPWLg=="],
"sqlite-vec-windows-x64": ["sqlite-vec-windows-x64@0.1.7-alpha.2", "", { "os": "win32", "cpu": "x64" }, "sha512-TRP6hTjAcwvQ6xpCZvjP00pdlda8J38ArFy1lMYhtQWXiIBmWnhMaMbq4kaeCYwvTTddfidatRS+TJrwIKB/oQ=="],
"sqlstring": ["sqlstring@2.3.1", "", {}, "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ=="],
"string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="],
"strip-json-comments": ["strip-json-comments@2.0.1", "", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="],
"tar-fs": ["tar-fs@2.1.4", "", { "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.1.4" } }, "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ=="],
"tar-stream": ["tar-stream@2.2.0", "", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="],
"tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
"tunnel-agent": ["tunnel-agent@0.6.0", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="],
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
"undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="],
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
"wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
"bl/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="],
"tar-stream/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="],
}
}

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bun
#!/usr/bin/env node
/**
* # Declare Global Variables
*/

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bun
#!/usr/bin/env node
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
@ -13,9 +13,9 @@ const restore_1 = __importDefault(require("./restore"));
* # Describe Program
*/
commander_1.program
.name(`bun-sqlite`)
.description(`SQLite manager for Bun`)
.version(`1.0.0`);
.name(`nsqlite`)
.description(`SQLite manager for Node JS`)
.version(`1.1.0`);
/**
* # Declare Commands
*/

View File

@ -1,5 +1,5 @@
export declare const AppData: {
readonly ConfigFileName: "bun-sqlite.config.ts";
readonly ConfigFileName: "nsqlite.config.ts";
readonly MaxBackups: 10;
readonly DefaultBackupDirName: ".backups";
};

View File

@ -2,7 +2,7 @@
Object.defineProperty(exports, "__esModule", { value: true });
exports.AppData = void 0;
exports.AppData = {
ConfigFileName: "bun-sqlite.config.ts",
ConfigFileName: "nsqlite.config.ts",
MaxBackups: 10,
DefaultBackupDirName: ".backups",
};

View File

@ -1,2 +1,2 @@
import type { BunSQLiteConfigReturn } from "../types";
export default function init(): BunSQLiteConfigReturn;
import type { NSQLiteConfigReturn } from "../types";
export default function init(): NSQLiteConfigReturn;

View File

@ -1,7 +1,7 @@
import type { BUN_SQLITE_TableSchemaType } from "../../types";
import type { NSQLITE_TableSchemaType } from "../../types";
type Param = {
paradigm: "JavaScript" | "TypeScript" | undefined;
table: BUN_SQLITE_TableSchemaType;
table: NSQLITE_TableSchemaType;
query?: any;
typeDefName?: string;
allValuesOptional?: boolean;

View File

@ -8,8 +8,8 @@ function generateTypeDefinition({ paradigm, table, query, typeDefName, allValues
tdName = typeDefName
? typeDefName
: dbName
? `BUN_SQLITE_${dbName}_${table.tableName}`.toUpperCase()
: `BUN_SQLITE_${query.single}_${query.single_table}`.toUpperCase();
? `NSQLITE_${dbName}_${table.tableName}`.toUpperCase()
: `NSQLITE_${query.single}_${query.single_table}`.toUpperCase();
const fields = table.fields;
function typeMap(schemaType) {
var _a, _b, _c;

View File

@ -1,12 +1,12 @@
#!/usr/bin/env bun
import type { BUN_SQLITE_DatabaseSchemaType } from "../../types";
#!/usr/bin/env node
import type { NSQLITE_DatabaseSchemaType } from "../../types";
declare class SQLiteSchemaManager {
private db;
private db_manager_table_name;
private recreate_vector_table;
private db_schema;
constructor({ schema, recreate_vector_table, }: {
schema: BUN_SQLITE_DatabaseSchemaType;
schema: NSQLITE_DatabaseSchemaType;
recreate_vector_table?: boolean;
});
private createDbManagerTable;

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bun
#!/usr/bin/env node
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }

View File

@ -1,6 +1,6 @@
import type { BUN_SQLITE_DatabaseSchemaType } from "../../types";
import type { NSQLITE_DatabaseSchemaType } from "../../types";
type Params = {
dbSchema?: BUN_SQLITE_DatabaseSchemaType;
dbSchema?: NSQLITE_DatabaseSchemaType;
};
export default function dbSchemaToType(params?: Params): string[] | undefined;
export {};

View File

@ -11,7 +11,7 @@ function dbSchemaToType(params) {
let datasquirelSchema = params === null || params === void 0 ? void 0 : params.dbSchema;
if (!datasquirelSchema)
return;
let tableNames = `export const BunSQLiteTables = [\n${datasquirelSchema.tables
let tableNames = `export const NSQLiteTables = [\n${datasquirelSchema.tables
.map((tbl) => ` "${tbl.tableName}",`)
.join("\n")}\n] as const`;
const dbTablesSchemas = datasquirelSchema.tables;
@ -33,7 +33,7 @@ function dbSchemaToType(params) {
const defObj = (0, db_generate_type_defs_1.default)({
paradigm: "TypeScript",
table: final_table,
typeDefName: `BUN_SQLITE_${defDbName}_${final_table.tableName.toUpperCase()}`,
typeDefName: `NSQLITE_${defDbName}_${final_table.tableName.toUpperCase()}`,
allValuesOptional: true,
addExport: true,
});
@ -44,7 +44,7 @@ function dbSchemaToType(params) {
})
.filter((schm) => typeof schm == "string");
const allTd = (defNames === null || defNames === void 0 ? void 0 : defNames[0])
? `export type BUN_SQLITE_${defDbName}_ALL_TYPEDEFS = ${defNames.join(` & `)}`
? `export type NSQLITE_${defDbName}_ALL_TYPEDEFS = ${defNames.join(` & `)}`
: ``;
return [tableNames, ...schemas, allTd];
}

View File

@ -1,6 +1,6 @@
import type { BUN_SQLITE_DatabaseSchemaType } from "../../types";
import type { NSQLITE_DatabaseSchemaType } from "../../types";
type Params = {
dbSchema: BUN_SQLITE_DatabaseSchemaType;
dbSchema: NSQLITE_DatabaseSchemaType;
dst_file: string;
};
export default function dbSchemaToTypeDef({ dbSchema, dst_file }: Params): void;

View File

@ -1,2 +1,2 @@
import type { BUN_SQLITE_DatabaseSchemaType } from "../../types";
export declare const DbSchema: BUN_SQLITE_DatabaseSchemaType;
import type { NSQLITE_DatabaseSchemaType } from "../../types";
export declare const DbSchema: NSQLITE_DatabaseSchemaType;

78
dist/types/index.d.ts vendored
View File

@ -1,32 +1,32 @@
import type { RequestOptions } from "https";
export type BUN_SQLITE_DatabaseFullName = string;
export type NSQLITE_DatabaseFullName = string;
export declare const UsersOmitedFields: readonly ["password", "social_id", "verification_status", "date_created", "date_created_code", "date_created_timestamp", "date_updated", "date_updated_code", "date_updated_timestamp"];
export interface BUN_SQLITE_DatabaseSchemaType {
export interface NSQLITE_DatabaseSchemaType {
id?: string | number;
dbName?: string;
dbSlug?: string;
dbFullName?: string;
dbDescription?: string;
dbImage?: string;
tables: BUN_SQLITE_TableSchemaType[];
childrenDatabases?: BUN_SQLITE_ChildrenDatabaseObject[];
tables: NSQLITE_TableSchemaType[];
childrenDatabases?: NSQLITE_ChildrenDatabaseObject[];
childDatabase?: boolean;
childDatabaseDbId?: string | number;
updateData?: boolean;
collation?: (typeof MariaDBCollations)[number];
}
export interface BUN_SQLITE_ChildrenDatabaseObject {
export interface NSQLITE_ChildrenDatabaseObject {
dbId?: string | number;
}
export declare const MariaDBCollations: readonly ["utf8mb4_bin", "utf8mb4_unicode_520_ci"];
export interface BUN_SQLITE_TableSchemaType {
export interface NSQLITE_TableSchemaType {
id?: string | number;
tableName: string;
tableDescription?: string;
fields: BUN_SQLITE_FieldSchemaType[];
indexes?: BUN_SQLITE_IndexSchemaType[];
uniqueConstraints?: BUN_SQLITE_UniqueConstraintSchemaType[];
childrenTables?: BUN_SQLITE_ChildrenTablesType[];
fields: NSQLITE_FieldSchemaType[];
indexes?: NSQLITE_IndexSchemaType[];
uniqueConstraints?: NSQLITE_UniqueConstraintSchemaType[];
childrenTables?: NSQLITE_ChildrenTablesType[];
/**
* Whether this is a child table
*/
@ -61,7 +61,7 @@ export interface BUN_SQLITE_TableSchemaType {
isVector?: boolean;
vectorType?: string;
}
export interface BUN_SQLITE_ChildrenTablesType {
export interface NSQLITE_ChildrenTablesType {
tableId?: string | number;
dbId?: string | number;
}
@ -96,18 +96,18 @@ export declare const TextFieldTypesArray: readonly [{
readonly title: "Code";
readonly value: "code";
}];
export declare const BUN_SQLITE_DATATYPES: readonly [{
export declare const NSQLITE_DATATYPES: readonly [{
readonly value: "TEXT";
}, {
readonly value: "INTEGER";
}];
export type BUN_SQLITE_FieldSchemaType = {
export type NSQLITE_FieldSchemaType = {
id?: number | string;
fieldName?: string;
fieldDescription?: string;
originName?: string;
updatedField?: boolean;
dataType: (typeof BUN_SQLITE_DATATYPES)[number]["value"];
dataType: (typeof NSQLITE_DATATYPES)[number]["value"];
nullValue?: boolean;
notNullValue?: boolean;
primaryKey?: boolean;
@ -115,7 +115,7 @@ export type BUN_SQLITE_FieldSchemaType = {
autoIncrement?: boolean;
defaultValue?: string | number;
defaultValueLiteral?: string;
foreignKey?: BUN_SQLITE_ForeignKeyType;
foreignKey?: NSQLITE_ForeignKeyType;
defaultField?: boolean;
plainText?: boolean;
unique?: boolean;
@ -156,7 +156,7 @@ CREATE VIRTUAL TABLE documents USING vec0(
-- INSERTING (Notice: No '+' here)
INSERT INTO documents(embedding, title, raw_body)
VALUES (vec_f32(?), 'Bun Docs', 'Bun is a fast JavaScript runtime...');
VALUES (vec_f32(?), 'Node Docs', 'Node is a fast JavaScript runtime...');
-- QUERYING (Notice: No '+' here)
SELECT title, raw_body
@ -168,7 +168,7 @@ WHERE embedding MATCH ? AND k = 1;
} & {
[key in (typeof TextFieldTypesArray)[number]["value"]]?: boolean;
};
export interface BUN_SQLITE_ForeignKeyType {
export interface NSQLITE_ForeignKeyType {
foreignKeyName?: string;
destinationTableName?: string;
destinationTableColumnName?: string;
@ -176,28 +176,28 @@ export interface BUN_SQLITE_ForeignKeyType {
cascadeDelete?: boolean;
cascadeUpdate?: boolean;
}
export interface BUN_SQLITE_IndexSchemaType {
export interface NSQLITE_IndexSchemaType {
id?: string | number;
indexName?: string;
indexType?: (typeof IndexTypes)[number];
indexTableFields?: BUN_SQLITE_IndexTableFieldType[];
indexTableFields?: NSQLITE_IndexTableFieldType[];
alias?: string;
newTempIndex?: boolean;
}
export interface BUN_SQLITE_UniqueConstraintSchemaType {
export interface NSQLITE_UniqueConstraintSchemaType {
id?: string | number;
constraintName?: string;
alias?: string;
constraintTableFields?: BUN_SQLITE_UniqueConstraintFieldType[];
constraintTableFields?: NSQLITE_UniqueConstraintFieldType[];
}
export interface BUN_SQLITE_UniqueConstraintFieldType {
export interface NSQLITE_UniqueConstraintFieldType {
value: string;
}
export interface BUN_SQLITE_IndexTableFieldType {
export interface NSQLITE_IndexTableFieldType {
value: string;
dataType: string;
}
export interface BUN_SQLITE_MYSQL_SHOW_INDEXES_Type {
export interface NSQLITE_MYSQL_SHOW_INDEXES_Type {
Key_name: string;
Table: string;
Column_name: string;
@ -207,7 +207,7 @@ export interface BUN_SQLITE_MYSQL_SHOW_INDEXES_Type {
Index_comment: string;
Comment: string;
}
export interface BUN_SQLITE_MYSQL_SHOW_COLUMNS_Type {
export interface NSQLITE_MYSQL_SHOW_COLUMNS_Type {
Field: string;
Type: string;
Null: string;
@ -215,7 +215,7 @@ export interface BUN_SQLITE_MYSQL_SHOW_COLUMNS_Type {
Default: string;
Extra: string;
}
export interface BUN_SQLITE_MARIADB_SHOW_INDEXES_TYPE {
export interface NSQLITE_MARIADB_SHOW_INDEXES_TYPE {
Table: string;
Non_unique: 0 | 1;
Key_name: string;
@ -230,12 +230,12 @@ export interface BUN_SQLITE_MARIADB_SHOW_INDEXES_TYPE {
Index_comment?: string;
Ignored?: "YES" | "NO";
}
export interface BUN_SQLITE_MYSQL_FOREIGN_KEYS_Type {
export interface NSQLITE_MYSQL_FOREIGN_KEYS_Type {
CONSTRAINT_NAME: string;
CONSTRAINT_SCHEMA: string;
TABLE_NAME: string;
}
export interface BUN_SQLITE_MYSQL_user_databases_Type {
export interface NSQLITE_MYSQL_user_databases_Type {
id: number;
user_id: number;
db_full_name: string;
@ -362,7 +362,7 @@ export interface GetReturn<R extends any = any> {
payload?: R;
msg?: string;
error?: string;
schema?: BUN_SQLITE_TableSchemaType;
schema?: NSQLITE_TableSchemaType;
finalQuery?: string;
}
export interface GetSchemaRequestQuery {
@ -383,7 +383,7 @@ export interface PostReturn {
payload?: Object[] | string | PostInsertReturn;
msg?: string;
error?: any;
schema?: BUN_SQLITE_TableSchemaType;
schema?: NSQLITE_TableSchemaType;
}
export interface PostDataPayload {
action: "insert" | "update" | "delete";
@ -615,8 +615,8 @@ export type ServerQueryParamsJoinMatchSourceTargetObject = {
export type ApiConnectBody = {
url: string;
key: string;
database: BUN_SQLITE_MYSQL_user_databases_Type;
dbSchema: BUN_SQLITE_DatabaseSchemaType;
database: NSQLITE_MYSQL_user_databases_Type;
dbSchema: NSQLITE_DatabaseSchemaType;
type: "pull" | "push";
user_id?: string | number;
};
@ -876,7 +876,7 @@ export type APIResponseObject<T extends {
countQueryObject?: ResponseQueryObject;
status?: number;
count?: number;
errors?: BUNSQLITEErrorObject[];
errors?: NSQLITEErrorObject[];
debug?: any;
batchPayload?: any[][] | null;
errorData?: any;
@ -965,7 +965,7 @@ export type DefaultEntryType = {
[k: string]: string | number | null;
};
export declare const IndexTypes: readonly ["regular", "full_text", "vector"];
export type BUNSQLITEErrorObject = {
export type NSQLITEErrorObject = {
sql?: string;
sqlValues?: any[];
error?: string;
@ -986,7 +986,7 @@ export type SQLInsertGenParams = {
tableName: string;
dbFullName?: string;
};
export type BunSQLiteConfig = {
export type NSQLiteConfig = {
db_name: string;
/**
* The Name of the Database Schema File. Eg `db_schema.ts`. This is
@ -1008,8 +1008,8 @@ export type BunSQLiteConfig = {
*/
typedef_file_path?: string;
};
export type BunSQLiteConfigReturn = {
config: BunSQLiteConfig;
dbSchema: BUN_SQLITE_DatabaseSchemaType;
export type NSQLiteConfigReturn = {
config: NSQLiteConfig;
dbSchema: NSQLITE_DatabaseSchemaType;
};
export declare const DefaultFields: BUN_SQLITE_FieldSchemaType[];
export declare const DefaultFields: NSQLITE_FieldSchemaType[];

4
dist/types/index.js vendored
View File

@ -1,6 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DefaultFields = exports.IndexTypes = exports.DockerComposeServices = exports.QueryFields = exports.DsqlCrudActions = exports.DataCrudRequestMethodsLowerCase = exports.DataCrudRequestMethods = exports.ServerQueryEqualities = exports.ServerQueryOperators = exports.BUN_SQLITE_DATATYPES = exports.TextFieldTypesArray = exports.MariaDBCollations = exports.UsersOmitedFields = void 0;
exports.DefaultFields = exports.IndexTypes = exports.DockerComposeServices = exports.QueryFields = exports.DsqlCrudActions = exports.DataCrudRequestMethodsLowerCase = exports.DataCrudRequestMethods = exports.ServerQueryEqualities = exports.ServerQueryOperators = exports.NSQLITE_DATATYPES = exports.TextFieldTypesArray = exports.MariaDBCollations = exports.UsersOmitedFields = void 0;
exports.UsersOmitedFields = [
"password",
"social_id",
@ -28,7 +28,7 @@ exports.TextFieldTypesArray = [
{ title: "Shell", value: "shell" },
{ title: "Code", value: "code" },
];
exports.BUN_SQLITE_DATATYPES = [
exports.NSQLITE_DATATYPES = [
{ value: "TEXT" },
{ value: "INTEGER" },
];

View File

@ -1,6 +1,6 @@
import { type BUN_SQLITE_DatabaseSchemaType } from "../types";
import { type NSQLITE_DatabaseSchemaType } from "../types";
type Params = {
dbSchema: BUN_SQLITE_DatabaseSchemaType;
dbSchema: NSQLITE_DatabaseSchemaType;
};
export default function ({ dbSchema }: Params): BUN_SQLITE_DatabaseSchemaType;
export default function ({ dbSchema }: Params): NSQLITE_DatabaseSchemaType;
export {};

View File

@ -1,6 +1,6 @@
import type { BunSQLiteConfig } from "../types";
import type { NSQLiteConfig } from "../types";
type Params = {
config: BunSQLiteConfig;
config: NSQLiteConfig;
};
export default function grabDBBackupFileName({ config }: Params): string;
export {};

View File

@ -1,6 +1,6 @@
import type { BunSQLiteConfig } from "../types";
import type { NSQLiteConfig } from "../types";
type Params = {
config: BunSQLiteConfig;
config: NSQLiteConfig;
};
export default function grabDBDir({ config }: Params): {
db_dir: string;

View File

@ -1,6 +1,6 @@
import type { BunSQLiteConfig } from "../types";
import type { NSQLiteConfig } from "../types";
type Params = {
config: BunSQLiteConfig;
config: NSQLiteConfig;
};
export default function grabSortedBackups({ config }: Params): string[];
export {};

View File

@ -1,6 +1,6 @@
import type { BunSQLiteConfig } from "../types";
import type { NSQLiteConfig } from "../types";
type Params = {
config: BunSQLiteConfig;
config: NSQLiteConfig;
};
export default function trimBackups({ config }: Params): void;
export {};

16
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "@moduletrace/node-sqlite",
"version": "1.0.8",
"name": "@moduletrace/nsqlite",
"version": "1.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@moduletrace/node-sqlite",
"version": "1.0.8",
"name": "@moduletrace/nsqlite",
"version": "1.0.1",
"dependencies": {
"@inquirer/prompts": "^8.3.0",
"better-sqlite3": "^12.6.2",
@ -18,7 +18,7 @@
"sqlite-vec": "^0.1.7-alpha.2"
},
"bin": {
"bun-sqlite": "dist/commands/index.js"
"nsqlite": "dist/commands/index.js"
},
"devDependencies": {
"@types/better-sqlite3": "^7.6.13",
@ -397,9 +397,9 @@
}
},
"node_modules/@types/node": {
"version": "25.3.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.3.tgz",
"integrity": "sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==",
"version": "25.3.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.5.tgz",
"integrity": "sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA==",
"devOptional": true,
"license": "MIT",
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "@moduletrace/nsqlite",
"version": "1.0.1",
"version": "1.0.2",
"description": "SQLite manager for Node JS",
"author": "Benjamin Toby",
"main": "dist/index.js",

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bun
#!/usr/bin/env node
import { program } from "commander";
import schema from "./schema";
@ -15,9 +15,9 @@ declare global {}
* # Describe Program
*/
program
.name(`bun-sqlite`)
.description(`SQLite manager for Bun`)
.version(`1.0.0`);
.name(`nsqlite`)
.description(`SQLite manager for Node JS`)
.version(`1.1.0`);
/**
* # Declare Commands

View File

@ -1,5 +1,5 @@
export const AppData = {
ConfigFileName: "bun-sqlite.config.ts",
ConfigFileName: "nsqlite.config.ts",
MaxBackups: 10,
DefaultBackupDirName: ".backups",
} as const;

View File

@ -3,12 +3,12 @@ import fs from "fs";
import { AppData } from "../data/app-data";
import grabDirNames from "../data/grab-dir-names";
import type {
BunSQLiteConfig,
BunSQLiteConfigReturn,
BUN_SQLITE_DatabaseSchemaType,
NSQLiteConfig,
NSQLiteConfigReturn,
NSQLITE_DatabaseSchemaType,
} from "../types";
export default function init(): BunSQLiteConfigReturn {
export default function init(): NSQLiteConfigReturn {
try {
const { ROOT_DIR } = grabDirNames();
const { ConfigFileName } = AppData;
@ -25,7 +25,7 @@ export default function init(): BunSQLiteConfigReturn {
}
const ConfigImport = require(ConfigFilePath);
const Config = ConfigImport["default"] as BunSQLiteConfig;
const Config = ConfigImport["default"] as NSQLiteConfig;
if (!Config.db_name) {
console.error(`\`db_name\` is required in your config`);
@ -51,7 +51,7 @@ export default function init(): BunSQLiteConfigReturn {
const DbSchemaImport = require(DBSchemaFilePath);
const DbSchema = DbSchemaImport[
"default"
] as BUN_SQLITE_DatabaseSchemaType;
] as NSQLITE_DatabaseSchemaType;
const backup_dir =
Config.db_backup_dir || AppData["DefaultBackupDirName"];

View File

@ -1,11 +1,11 @@
import type {
BUN_SQLITE_FieldSchemaType,
BUN_SQLITE_TableSchemaType,
NSQLITE_FieldSchemaType,
NSQLITE_TableSchemaType,
} from "../../types";
type Param = {
paradigm: "JavaScript" | "TypeScript" | undefined;
table: BUN_SQLITE_TableSchemaType;
table: NSQLITE_TableSchemaType;
query?: any;
typeDefName?: string;
allValuesOptional?: boolean;
@ -29,12 +29,12 @@ export default function generateTypeDefinition({
tdName = typeDefName
? typeDefName
: dbName
? `BUN_SQLITE_${dbName}_${table.tableName}`.toUpperCase()
: `BUN_SQLITE_${query.single}_${query.single_table}`.toUpperCase();
? `NSQLITE_${dbName}_${table.tableName}`.toUpperCase()
: `NSQLITE_${query.single}_${query.single_table}`.toUpperCase();
const fields = table.fields;
function typeMap(schemaType: BUN_SQLITE_FieldSchemaType) {
function typeMap(schemaType: NSQLITE_FieldSchemaType) {
if (schemaType.options && schemaType.options.length > 0) {
return schemaType.options
.map((opt) =>

View File

@ -1,12 +1,12 @@
#!/usr/bin/env bun
#!/usr/bin/env node
import { type Database } from "better-sqlite3";
import _ from "lodash";
import DbClient from ".";
import type {
BUN_SQLITE_DatabaseSchemaType,
BUN_SQLITE_FieldSchemaType,
BUN_SQLITE_TableSchemaType,
NSQLITE_DatabaseSchemaType,
NSQLITE_FieldSchemaType,
NSQLITE_TableSchemaType,
} from "../../types";
// Schema Manager Class
@ -14,13 +14,13 @@ class SQLiteSchemaManager {
private db: Database;
private db_manager_table_name: string;
private recreate_vector_table: boolean;
private db_schema: BUN_SQLITE_DatabaseSchemaType;
private db_schema: NSQLITE_DatabaseSchemaType;
constructor({
schema,
recreate_vector_table = false,
}: {
schema: BUN_SQLITE_DatabaseSchemaType;
schema: NSQLITE_DatabaseSchemaType;
recreate_vector_table?: boolean;
}) {
this.db = DbClient;
@ -115,7 +115,7 @@ class SQLiteSchemaManager {
* Sync a single table (create or update)
*/
private async syncTable(
table: BUN_SQLITE_TableSchemaType,
table: NSQLITE_TableSchemaType,
existingTables: string[],
): Promise<void> {
let tableExists = existingTables.includes(table.tableName);
@ -151,9 +151,7 @@ class SQLiteSchemaManager {
/**
* Create a new table
*/
private async createTable(
table: BUN_SQLITE_TableSchemaType,
): Promise<void> {
private async createTable(table: NSQLITE_TableSchemaType): Promise<void> {
console.log(`Creating table: ${table.tableName}`);
let new_table = _.cloneDeep(table);
@ -219,9 +217,7 @@ class SQLiteSchemaManager {
/**
* Update an existing table
*/
private async updateTable(
table: BUN_SQLITE_TableSchemaType,
): Promise<void> {
private async updateTable(table: NSQLITE_TableSchemaType): Promise<void> {
console.log(`Updating table: ${table.tableName}`);
const existingColumns = this.getTableColumns(table.tableName);
@ -278,7 +274,7 @@ class SQLiteSchemaManager {
*/
private async addColumn(
tableName: string,
field: BUN_SQLITE_FieldSchemaType,
field: NSQLITE_FieldSchemaType,
): Promise<void> {
console.log(`Adding column: ${tableName}.${field.fieldName}`);
@ -298,9 +294,7 @@ class SQLiteSchemaManager {
/**
* Recreate table (for complex schema changes)
*/
private async recreateTable(
table: BUN_SQLITE_TableSchemaType,
): Promise<void> {
private async recreateTable(table: NSQLITE_TableSchemaType): Promise<void> {
if (table.isVector) {
if (!this.recreate_vector_table) {
return;
@ -374,7 +368,7 @@ class SQLiteSchemaManager {
/**
* Build column definition SQL
*/
private buildColumnDefinition(field: BUN_SQLITE_FieldSchemaType): string {
private buildColumnDefinition(field: NSQLITE_FieldSchemaType): string {
if (!field.fieldName) {
throw new Error("Field name is required");
}
@ -429,7 +423,7 @@ class SQLiteSchemaManager {
/**
* Map DSQL data types to SQLite types
*/
private mapDataType(field: BUN_SQLITE_FieldSchemaType): string {
private mapDataType(field: NSQLITE_FieldSchemaType): string {
const dataType = field.dataType?.toLowerCase() || "text";
const vectorSize = field.vectorSize || 1536;
@ -481,9 +475,7 @@ class SQLiteSchemaManager {
/**
* Build foreign key constraint
*/
private buildForeignKeyConstraint(
field: BUN_SQLITE_FieldSchemaType,
): string {
private buildForeignKeyConstraint(field: NSQLITE_FieldSchemaType): string {
const fk = field.foreignKey!;
let constraint = `FOREIGN KEY ("${field.fieldName}") REFERENCES "${fk.destinationTableName}"("${fk.destinationTableColumnName}")`;
@ -501,9 +493,7 @@ class SQLiteSchemaManager {
/**
* Sync indexes for a table
*/
private async syncIndexes(
table: BUN_SQLITE_TableSchemaType,
): Promise<void> {
private async syncIndexes(table: NSQLITE_TableSchemaType): Promise<void> {
if (!table.indexes || table.indexes.length === 0) {
return;
}
@ -560,7 +550,7 @@ class SQLiteSchemaManager {
// Example usage
async function main() {
const schema: BUN_SQLITE_DatabaseSchemaType = {
const schema: NSQLITE_DatabaseSchemaType = {
dbName: "example_db",
tables: [
{

View File

@ -1,9 +1,9 @@
import _ from "lodash";
import type { BUN_SQLITE_DatabaseSchemaType } from "../../types";
import type { NSQLITE_DatabaseSchemaType } from "../../types";
import generateTypeDefinition from "./db-generate-type-defs";
type Params = {
dbSchema?: BUN_SQLITE_DatabaseSchemaType;
dbSchema?: NSQLITE_DatabaseSchemaType;
};
export default function dbSchemaToType(params?: Params): string[] | undefined {
@ -11,7 +11,7 @@ export default function dbSchemaToType(params?: Params): string[] | undefined {
if (!datasquirelSchema) return;
let tableNames = `export const BunSQLiteTables = [\n${datasquirelSchema.tables
let tableNames = `export const NSQLiteTables = [\n${datasquirelSchema.tables
.map((tbl) => ` "${tbl.tableName}",`)
.join("\n")}\n] as const`;
@ -43,7 +43,7 @@ export default function dbSchemaToType(params?: Params): string[] | undefined {
const defObj = generateTypeDefinition({
paradigm: "TypeScript",
table: final_table,
typeDefName: `BUN_SQLITE_${defDbName}_${final_table.tableName.toUpperCase()}`,
typeDefName: `NSQLITE_${defDbName}_${final_table.tableName.toUpperCase()}`,
allValuesOptional: true,
addExport: true,
});
@ -57,7 +57,7 @@ export default function dbSchemaToType(params?: Params): string[] | undefined {
.filter((schm) => typeof schm == "string");
const allTd = defNames?.[0]
? `export type BUN_SQLITE_${defDbName}_ALL_TYPEDEFS = ${defNames.join(` & `)}`
? `export type NSQLITE_${defDbName}_ALL_TYPEDEFS = ${defNames.join(` & `)}`
: ``;
return [tableNames, ...schemas, allTd];

View File

@ -1,10 +1,10 @@
import path from "node:path";
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
import type { BUN_SQLITE_DatabaseSchemaType } from "../../types";
import type { NSQLITE_DatabaseSchemaType } from "../../types";
import dbSchemaToType from "./db-schema-to-typedef";
type Params = {
dbSchema: BUN_SQLITE_DatabaseSchemaType;
dbSchema: NSQLITE_DatabaseSchemaType;
dst_file: string;
};

View File

@ -1,7 +1,7 @@
import _ from "lodash";
import type { BUN_SQLITE_DatabaseSchemaType } from "../../types";
import type { NSQLITE_DatabaseSchemaType } from "../../types";
export const DbSchema: BUN_SQLITE_DatabaseSchemaType = {
export const DbSchema: NSQLITE_DatabaseSchemaType = {
dbName: "travis-ai",
tables: [],
};

View File

@ -1,6 +1,6 @@
import type { RequestOptions } from "https";
export type BUN_SQLITE_DatabaseFullName = string;
export type NSQLITE_DatabaseFullName = string;
export const UsersOmitedFields = [
"password",
@ -14,22 +14,22 @@ export const UsersOmitedFields = [
"date_updated_timestamp",
] as const;
export interface BUN_SQLITE_DatabaseSchemaType {
export interface NSQLITE_DatabaseSchemaType {
id?: string | number;
dbName?: string;
dbSlug?: string;
dbFullName?: string;
dbDescription?: string;
dbImage?: string;
tables: BUN_SQLITE_TableSchemaType[];
childrenDatabases?: BUN_SQLITE_ChildrenDatabaseObject[];
tables: NSQLITE_TableSchemaType[];
childrenDatabases?: NSQLITE_ChildrenDatabaseObject[];
childDatabase?: boolean;
childDatabaseDbId?: string | number;
updateData?: boolean;
collation?: (typeof MariaDBCollations)[number];
}
export interface BUN_SQLITE_ChildrenDatabaseObject {
export interface NSQLITE_ChildrenDatabaseObject {
dbId?: string | number;
}
@ -38,14 +38,14 @@ export const MariaDBCollations = [
"utf8mb4_unicode_520_ci",
] as const;
export interface BUN_SQLITE_TableSchemaType {
export interface NSQLITE_TableSchemaType {
id?: string | number;
tableName: string;
tableDescription?: string;
fields: BUN_SQLITE_FieldSchemaType[];
indexes?: BUN_SQLITE_IndexSchemaType[];
uniqueConstraints?: BUN_SQLITE_UniqueConstraintSchemaType[];
childrenTables?: BUN_SQLITE_ChildrenTablesType[];
fields: NSQLITE_FieldSchemaType[];
indexes?: NSQLITE_IndexSchemaType[];
uniqueConstraints?: NSQLITE_UniqueConstraintSchemaType[];
childrenTables?: NSQLITE_ChildrenTablesType[];
/**
* Whether this is a child table
*/
@ -81,7 +81,7 @@ export interface BUN_SQLITE_TableSchemaType {
vectorType?: string;
}
export interface BUN_SQLITE_ChildrenTablesType {
export interface NSQLITE_ChildrenTablesType {
tableId?: string | number;
dbId?: string | number;
}
@ -99,18 +99,18 @@ export const TextFieldTypesArray = [
{ title: "Code", value: "code" },
] as const;
export const BUN_SQLITE_DATATYPES = [
export const NSQLITE_DATATYPES = [
{ value: "TEXT" },
{ value: "INTEGER" },
] as const;
export type BUN_SQLITE_FieldSchemaType = {
export type NSQLITE_FieldSchemaType = {
id?: number | string;
fieldName?: string;
fieldDescription?: string;
originName?: string;
updatedField?: boolean;
dataType: (typeof BUN_SQLITE_DATATYPES)[number]["value"];
dataType: (typeof NSQLITE_DATATYPES)[number]["value"];
nullValue?: boolean;
notNullValue?: boolean;
primaryKey?: boolean;
@ -118,7 +118,7 @@ export type BUN_SQLITE_FieldSchemaType = {
autoIncrement?: boolean;
defaultValue?: string | number;
defaultValueLiteral?: string;
foreignKey?: BUN_SQLITE_ForeignKeyType;
foreignKey?: NSQLITE_ForeignKeyType;
defaultField?: boolean;
plainText?: boolean;
unique?: boolean;
@ -159,7 +159,7 @@ CREATE VIRTUAL TABLE documents USING vec0(
-- INSERTING (Notice: No '+' here)
INSERT INTO documents(embedding, title, raw_body)
VALUES (vec_f32(?), 'Bun Docs', 'Bun is a fast JavaScript runtime...');
VALUES (vec_f32(?), 'Node Docs', 'Node is a fast JavaScript runtime...');
-- QUERYING (Notice: No '+' here)
SELECT title, raw_body
@ -172,7 +172,7 @@ WHERE embedding MATCH ? AND k = 1;
[key in (typeof TextFieldTypesArray)[number]["value"]]?: boolean;
};
export interface BUN_SQLITE_ForeignKeyType {
export interface NSQLITE_ForeignKeyType {
foreignKeyName?: string;
destinationTableName?: string;
destinationTableColumnName?: string;
@ -181,32 +181,32 @@ export interface BUN_SQLITE_ForeignKeyType {
cascadeUpdate?: boolean;
}
export interface BUN_SQLITE_IndexSchemaType {
export interface NSQLITE_IndexSchemaType {
id?: string | number;
indexName?: string;
indexType?: (typeof IndexTypes)[number];
indexTableFields?: BUN_SQLITE_IndexTableFieldType[];
indexTableFields?: NSQLITE_IndexTableFieldType[];
alias?: string;
newTempIndex?: boolean;
}
export interface BUN_SQLITE_UniqueConstraintSchemaType {
export interface NSQLITE_UniqueConstraintSchemaType {
id?: string | number;
constraintName?: string;
alias?: string;
constraintTableFields?: BUN_SQLITE_UniqueConstraintFieldType[];
constraintTableFields?: NSQLITE_UniqueConstraintFieldType[];
}
export interface BUN_SQLITE_UniqueConstraintFieldType {
export interface NSQLITE_UniqueConstraintFieldType {
value: string;
}
export interface BUN_SQLITE_IndexTableFieldType {
export interface NSQLITE_IndexTableFieldType {
value: string;
dataType: string;
}
export interface BUN_SQLITE_MYSQL_SHOW_INDEXES_Type {
export interface NSQLITE_MYSQL_SHOW_INDEXES_Type {
Key_name: string;
Table: string;
Column_name: string;
@ -217,7 +217,7 @@ export interface BUN_SQLITE_MYSQL_SHOW_INDEXES_Type {
Comment: string;
}
export interface BUN_SQLITE_MYSQL_SHOW_COLUMNS_Type {
export interface NSQLITE_MYSQL_SHOW_COLUMNS_Type {
Field: string;
Type: string;
Null: string;
@ -226,7 +226,7 @@ export interface BUN_SQLITE_MYSQL_SHOW_COLUMNS_Type {
Extra: string;
}
export interface BUN_SQLITE_MARIADB_SHOW_INDEXES_TYPE {
export interface NSQLITE_MARIADB_SHOW_INDEXES_TYPE {
Table: string;
Non_unique: 0 | 1;
Key_name: string;
@ -242,13 +242,13 @@ export interface BUN_SQLITE_MARIADB_SHOW_INDEXES_TYPE {
Ignored?: "YES" | "NO";
}
export interface BUN_SQLITE_MYSQL_FOREIGN_KEYS_Type {
export interface NSQLITE_MYSQL_FOREIGN_KEYS_Type {
CONSTRAINT_NAME: string;
CONSTRAINT_SCHEMA: string;
TABLE_NAME: string;
}
export interface BUN_SQLITE_MYSQL_user_databases_Type {
export interface NSQLITE_MYSQL_user_databases_Type {
id: number;
user_id: number;
db_full_name: string;
@ -387,7 +387,7 @@ export interface GetReturn<R extends any = any> {
payload?: R;
msg?: string;
error?: string;
schema?: BUN_SQLITE_TableSchemaType;
schema?: NSQLITE_TableSchemaType;
finalQuery?: string;
}
@ -411,7 +411,7 @@ export interface PostReturn {
payload?: Object[] | string | PostInsertReturn;
msg?: string;
error?: any;
schema?: BUN_SQLITE_TableSchemaType;
schema?: NSQLITE_TableSchemaType;
}
export interface PostDataPayload {
@ -709,8 +709,8 @@ export type ServerQueryParamsJoinMatchSourceTargetObject = {
export type ApiConnectBody = {
url: string;
key: string;
database: BUN_SQLITE_MYSQL_user_databases_Type;
dbSchema: BUN_SQLITE_DatabaseSchemaType;
database: NSQLITE_MYSQL_user_databases_Type;
dbSchema: NSQLITE_DatabaseSchemaType;
type: "pull" | "push";
user_id?: string | number;
};
@ -994,7 +994,7 @@ export type APIResponseObject<
countQueryObject?: ResponseQueryObject;
status?: number;
count?: number;
errors?: BUNSQLITEErrorObject[];
errors?: NSQLITEErrorObject[];
debug?: any;
batchPayload?: any[][] | null;
errorData?: any;
@ -1115,7 +1115,7 @@ export type DefaultEntryType = {
export const IndexTypes = ["regular", "full_text", "vector"] as const;
export type BUNSQLITEErrorObject = {
export type NSQLITEErrorObject = {
sql?: string;
sqlValues?: any[];
error?: string;
@ -1141,7 +1141,7 @@ export type SQLInsertGenParams = {
dbFullName?: string;
};
export type BunSQLiteConfig = {
export type NSQLiteConfig = {
db_name: string;
/**
* The Name of the Database Schema File. Eg `db_schema.ts`. This is
@ -1164,12 +1164,12 @@ export type BunSQLiteConfig = {
typedef_file_path?: string;
};
export type BunSQLiteConfigReturn = {
config: BunSQLiteConfig;
dbSchema: BUN_SQLITE_DatabaseSchemaType;
export type NSQLiteConfigReturn = {
config: NSQLiteConfig;
dbSchema: NSQLITE_DatabaseSchemaType;
};
export const DefaultFields: BUN_SQLITE_FieldSchemaType[] = [
export const DefaultFields: NSQLITE_FieldSchemaType[] = [
{
fieldName: "id",
dataType: "INTEGER",

View File

@ -1,11 +1,11 @@
import _ from "lodash";
import { DefaultFields, type BUN_SQLITE_DatabaseSchemaType } from "../types";
import { DefaultFields, type NSQLITE_DatabaseSchemaType } from "../types";
type Params = {
dbSchema: BUN_SQLITE_DatabaseSchemaType;
dbSchema: NSQLITE_DatabaseSchemaType;
};
export default function ({ dbSchema }: Params): BUN_SQLITE_DatabaseSchemaType {
export default function ({ dbSchema }: Params): NSQLITE_DatabaseSchemaType {
const finaldbSchema = _.cloneDeep(dbSchema);
finaldbSchema.tables = finaldbSchema.tables.map((t) => {
const newTable = _.cloneDeep(t);

View File

@ -1,7 +1,7 @@
import type { BunSQLiteConfig } from "../types";
import type { NSQLiteConfig } from "../types";
type Params = {
config: BunSQLiteConfig;
config: NSQLiteConfig;
};
export default function grabDBBackupFileName({ config }: Params) {

View File

@ -1,10 +1,10 @@
import path from "path";
import grabDirNames from "../data/grab-dir-names";
import type { BunSQLiteConfig } from "../types";
import type { NSQLiteConfig } from "../types";
import { AppData } from "../data/app-data";
type Params = {
config: BunSQLiteConfig;
config: NSQLiteConfig;
};
export default function grabDBDir({ config }: Params) {

View File

@ -1,9 +1,9 @@
import grabDBDir from "../utils/grab-db-dir";
import fs from "fs";
import type { BunSQLiteConfig } from "../types";
import type { NSQLiteConfig } from "../types";
type Params = {
config: BunSQLiteConfig;
config: NSQLiteConfig;
};
export default function grabSortedBackups({ config }: Params) {

View File

@ -1,12 +1,12 @@
import grabDBDir from "../utils/grab-db-dir";
import fs from "fs";
import type { BunSQLiteConfig } from "../types";
import type { NSQLiteConfig } from "../types";
import grabSortedBackups from "./grab-sorted-backups";
import { AppData } from "../data/app-data";
import path from "path";
type Params = {
config: BunSQLiteConfig;
config: NSQLiteConfig;
};
export default function trimBackups({ config }: Params) {