mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-30 15:59:09 +08:00
db init
This commit is contained in:
parent
a248517520
commit
9105e0f5c1
@ -39,6 +39,9 @@ files:
|
||||
asarUnpack:
|
||||
- resources/**
|
||||
- '**/*.{metal,exp,lib}'
|
||||
extraResources:
|
||||
- from: 'migrations/sqlite-drizzle'
|
||||
to: 'migrations/sqlite-drizzle'
|
||||
win:
|
||||
executableName: Cherry Studio
|
||||
artifactName: ${productName}-${version}-${arch}-setup.${ext}
|
||||
|
||||
@ -32,6 +32,7 @@ export default defineConfig({
|
||||
alias: {
|
||||
'@main': resolve('src/main'),
|
||||
'@types': resolve('src/renderer/src/types'),
|
||||
'@storage': resolve('src/main/storage'),
|
||||
'@shared': resolve('packages/shared')
|
||||
}
|
||||
},
|
||||
|
||||
5
migrations/README.md
Normal file
5
migrations/README.md
Normal file
@ -0,0 +1,5 @@
|
||||
Using `libsql` as the `sqlite3` driver, and `drizzle` as the ORM and database migration tool
|
||||
|
||||
`migrations/sqlite-drizzle` contains auto-generated migration data. Please **DO NOT** modify it.
|
||||
|
||||
To generate migrations, use the command `yarn run migrations:generate`
|
||||
7
migrations/sqlite-drizzle.config.ts
Normal file
7
migrations/sqlite-drizzle.config.ts
Normal file
@ -0,0 +1,7 @@
|
||||
import { defineConfig } from 'drizzle-kit'
|
||||
export default defineConfig({
|
||||
out: './migrations/sqlite-drizzle',
|
||||
schema: './src/main/db/schema/*',
|
||||
dialect: 'sqlite',
|
||||
casing: 'snake_case'
|
||||
})
|
||||
10
migrations/sqlite-drizzle/0000_panoramic_morlun.sql
Normal file
10
migrations/sqlite-drizzle/0000_panoramic_morlun.sql
Normal file
@ -0,0 +1,10 @@
|
||||
CREATE TABLE `preference` (
|
||||
`scope` text NOT NULL,
|
||||
`key` text NOT NULL,
|
||||
`value` text,
|
||||
`created_at` integer,
|
||||
`updated_at` integer,
|
||||
`deleted_at` integer
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE INDEX `scope_name_idx` ON `preference` (`scope`,`key`);
|
||||
79
migrations/sqlite-drizzle/meta/0000_snapshot.json
Normal file
79
migrations/sqlite-drizzle/meta/0000_snapshot.json
Normal file
@ -0,0 +1,79 @@
|
||||
{
|
||||
"version": "6",
|
||||
"dialect": "sqlite",
|
||||
"id": "c8c54066-c6f6-404b-a46d-84787ae22485",
|
||||
"prevId": "00000000-0000-0000-0000-000000000000",
|
||||
"tables": {
|
||||
"preference": {
|
||||
"name": "preference",
|
||||
"columns": {
|
||||
"scope": {
|
||||
"name": "scope",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"key": {
|
||||
"name": "key",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": true,
|
||||
"autoincrement": false
|
||||
},
|
||||
"value": {
|
||||
"name": "value",
|
||||
"type": "text",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"created_at": {
|
||||
"name": "created_at",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"updated_at": {
|
||||
"name": "updated_at",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
},
|
||||
"deleted_at": {
|
||||
"name": "deleted_at",
|
||||
"type": "integer",
|
||||
"primaryKey": false,
|
||||
"notNull": false,
|
||||
"autoincrement": false
|
||||
}
|
||||
},
|
||||
"indexes": {
|
||||
"scope_name_idx": {
|
||||
"name": "scope_name_idx",
|
||||
"columns": [
|
||||
"scope",
|
||||
"key"
|
||||
],
|
||||
"isUnique": false
|
||||
}
|
||||
},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {},
|
||||
"checkConstraints": {}
|
||||
}
|
||||
},
|
||||
"views": {},
|
||||
"enums": {},
|
||||
"_meta": {
|
||||
"schemas": {},
|
||||
"tables": {},
|
||||
"columns": {}
|
||||
},
|
||||
"internal": {
|
||||
"indexes": {}
|
||||
}
|
||||
}
|
||||
13
migrations/sqlite-drizzle/meta/_journal.json
Normal file
13
migrations/sqlite-drizzle/meta/_journal.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"version": "7",
|
||||
"dialect": "sqlite",
|
||||
"entries": [
|
||||
{
|
||||
"idx": 0,
|
||||
"version": "6",
|
||||
"when": 1747914098702,
|
||||
"tag": "0000_panoramic_morlun",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -54,7 +54,8 @@
|
||||
"format": "prettier --write .",
|
||||
"lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix",
|
||||
"postinstall": "electron-builder install-app-deps",
|
||||
"prepare": "husky"
|
||||
"prepare": "husky",
|
||||
"migrations:generate": "drizzle-kit generate --config ./migrations/sqlite-drizzle.config.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@cherrystudio/embedjs": "^0.1.31",
|
||||
@ -71,12 +72,12 @@
|
||||
"@electron-toolkit/utils": "^3.0.0",
|
||||
"@electron/notarize": "^2.5.0",
|
||||
"@langchain/community": "^0.3.36",
|
||||
"@libsql/client": "^0.15.7",
|
||||
"@strongtz/win32-arm64-msvc": "^0.4.7",
|
||||
"@tanstack/react-query": "^5.27.0",
|
||||
"@types/react-infinite-scroll-component": "^5.0.0",
|
||||
"archiver": "^7.0.1",
|
||||
"async-mutex": "^0.5.0",
|
||||
"better-sqlite3": "^11.10.0",
|
||||
"color": "^5.0.0",
|
||||
"diff": "^7.0.0",
|
||||
"docx": "^9.0.2",
|
||||
@ -127,7 +128,6 @@
|
||||
"@shikijs/markdown-it": "^3.4.2",
|
||||
"@swc/plugin-styled-components": "^7.1.5",
|
||||
"@tryfabric/martian": "^1.2.4",
|
||||
"@types/better-sqlite3": "^7.6.13",
|
||||
"@types/diff": "^7",
|
||||
"@types/fs-extra": "^11",
|
||||
"@types/lodash": "^4.17.5",
|
||||
|
||||
35
packages/shared/preferences.ts
Normal file
35
packages/shared/preferences.ts
Normal file
@ -0,0 +1,35 @@
|
||||
export interface Preferences {
|
||||
default: {
|
||||
test1: string
|
||||
test2: number
|
||||
test3: boolean
|
||||
test4: string[]
|
||||
test5: {
|
||||
content1: string
|
||||
content2: number
|
||||
}
|
||||
}
|
||||
user: {
|
||||
test1: string
|
||||
test2: number
|
||||
test3: boolean
|
||||
}
|
||||
}
|
||||
|
||||
export const defaultPreferences: Preferences = {
|
||||
default: {
|
||||
test1: 'test1',
|
||||
test2: 1,
|
||||
test3: true,
|
||||
test4: ['test4-1', 'test4-2'],
|
||||
test5: {
|
||||
content1: 'test5-1',
|
||||
content2: 2
|
||||
}
|
||||
},
|
||||
user: {
|
||||
test1: 'test1',
|
||||
test2: 1,
|
||||
test3: false
|
||||
}
|
||||
}
|
||||
70
src/main/db/DbService.ts
Normal file
70
src/main/db/DbService.ts
Normal file
@ -0,0 +1,70 @@
|
||||
import { drizzle } from 'drizzle-orm/libsql'
|
||||
import { migrate } from 'drizzle-orm/libsql/migrator'
|
||||
import { app } from 'electron'
|
||||
import Logger from 'electron-log'
|
||||
import path from 'path'
|
||||
import { pathToFileURL } from 'url'
|
||||
|
||||
import Seeds from './seed'
|
||||
import type { DbType } from './types'
|
||||
|
||||
const DB_NAME = 'cherrystudio.sqlite'
|
||||
const MIGRATIONS_BASE_PATH = 'migrations/sqlite-drizzle'
|
||||
|
||||
class DbService {
|
||||
private static instance: DbService
|
||||
private db: DbType
|
||||
|
||||
private constructor() {
|
||||
this.db = drizzle({
|
||||
connection: { url: pathToFileURL(path.join(app.getPath('userData'), DB_NAME)).href },
|
||||
casing: 'snake_case'
|
||||
})
|
||||
}
|
||||
|
||||
public static getInstance(): DbService {
|
||||
if (!DbService.instance) {
|
||||
DbService.instance = new DbService()
|
||||
}
|
||||
return DbService.instance
|
||||
}
|
||||
|
||||
public async migrateDb() {
|
||||
const migrationsFolder = this.getMigrationsFolder()
|
||||
await migrate(this.db, { migrationsFolder })
|
||||
}
|
||||
|
||||
public getDb(): DbType {
|
||||
return this.db
|
||||
}
|
||||
|
||||
public async migrateSeed(seedName: keyof typeof Seeds): Promise<boolean> {
|
||||
try {
|
||||
const Seed = Seeds[seedName]
|
||||
await new Seed().migrate(this.db)
|
||||
return true
|
||||
} catch (error) {
|
||||
Logger.error(error)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the migrations folder based on the app's packaging status
|
||||
* @returns The path to the migrations folder
|
||||
*/
|
||||
private getMigrationsFolder() {
|
||||
if (app.isPackaged) {
|
||||
//see electron-builder.yml, extraResources from/to
|
||||
return path.join(process.resourcesPath, MIGRATIONS_BASE_PATH)
|
||||
} else {
|
||||
// in dev/preview, __dirname maybe /out/main
|
||||
return path.join(__dirname, '../../', MIGRATIONS_BASE_PATH)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Export a singleton instance
|
||||
const dbService = DbService.getInstance()
|
||||
|
||||
export default dbService
|
||||
2
src/main/db/README.md
Normal file
2
src/main/db/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
* All the database table names use **singular** form, snake_casing
|
||||
* Export table names use `xxxxTable`
|
||||
11
src/main/db/schema/columnHelpers.ts
Normal file
11
src/main/db/schema/columnHelpers.ts
Normal file
@ -0,0 +1,11 @@
|
||||
import { integer } from 'drizzle-orm/sqlite-core'
|
||||
|
||||
const createTimestamp = () => {
|
||||
return Date.now()
|
||||
}
|
||||
|
||||
export const crudTimestamps = {
|
||||
createdAt: integer().$defaultFn(createTimestamp),
|
||||
updatedAt: integer().$defaultFn(createTimestamp).$onUpdateFn(createTimestamp),
|
||||
deletedAt: integer()
|
||||
}
|
||||
14
src/main/db/schema/preference.ts
Normal file
14
src/main/db/schema/preference.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import { index, sqliteTable, text } from 'drizzle-orm/sqlite-core'
|
||||
|
||||
import { crudTimestamps } from './columnHelpers'
|
||||
|
||||
export const preferenceTable = sqliteTable(
|
||||
'preference',
|
||||
{
|
||||
scope: text().notNull(),
|
||||
key: text().notNull(),
|
||||
value: text({ mode: 'json' }),
|
||||
...crudTimestamps
|
||||
},
|
||||
(t) => [index('scope_name_idx').on(t.scope, t.key)]
|
||||
)
|
||||
7
src/main/db/seed/index.ts
Normal file
7
src/main/db/seed/index.ts
Normal file
@ -0,0 +1,7 @@
|
||||
import PreferenceSeed from './preferenceSeed'
|
||||
|
||||
const seedList = {
|
||||
preference: PreferenceSeed
|
||||
}
|
||||
|
||||
export default seedList
|
||||
47
src/main/db/seed/preferenceSeed.ts
Normal file
47
src/main/db/seed/preferenceSeed.ts
Normal file
@ -0,0 +1,47 @@
|
||||
import { preferenceTable } from '@main/db/schema/preference'
|
||||
import { defaultPreferences } from '@shared/preferences'
|
||||
|
||||
import type { DbType, ISeed } from '../types'
|
||||
|
||||
class PreferenceSeed implements ISeed {
|
||||
async migrate(db: DbType): Promise<void> {
|
||||
const preferences = await db.select().from(preferenceTable)
|
||||
|
||||
// Convert existing preferences to a Map for quick lookup
|
||||
const existingPrefs = new Map(preferences.map((p) => [`${p.scope}.${p.key}`, p]))
|
||||
|
||||
// Collect all new preferences to insert
|
||||
const newPreferences: Array<{
|
||||
scope: string
|
||||
key: string
|
||||
value: unknown
|
||||
}> = []
|
||||
|
||||
// Process each scope in defaultPreferences
|
||||
for (const [scope, scopeData] of Object.entries(defaultPreferences)) {
|
||||
// Process each key-value pair in the scope
|
||||
for (const [key, value] of Object.entries(scopeData)) {
|
||||
const prefKey = `${scope}.${key}`
|
||||
|
||||
// Skip if this preference already exists
|
||||
if (existingPrefs.has(prefKey)) {
|
||||
continue
|
||||
}
|
||||
|
||||
// Add to new preferences array
|
||||
newPreferences.push({
|
||||
scope,
|
||||
key,
|
||||
value
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// If there are new preferences to insert, do it in a transaction
|
||||
if (newPreferences.length > 0) {
|
||||
await db.insert(preferenceTable).values(newPreferences)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default PreferenceSeed
|
||||
7
src/main/db/types.d.ts
vendored
Normal file
7
src/main/db/types.d.ts
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import type { LibSQLDatabase } from 'drizzle-orm/libsql'
|
||||
|
||||
export type DbType = LibSQLDatabase
|
||||
|
||||
export interface ISeed {
|
||||
migrate(db: DbType): Promise<void>
|
||||
}
|
||||
@ -1,6 +1,7 @@
|
||||
import '@main/config'
|
||||
|
||||
import { electronApp, optimizer } from '@electron-toolkit/utils'
|
||||
import dbService from '@main/db/DbService'
|
||||
import { replaceDevtoolsFont } from '@main/utils/windowUtil'
|
||||
import { app } from 'electron'
|
||||
import installExtension, { REACT_DEVELOPER_TOOLS, REDUX_DEVTOOLS } from 'electron-devtools-installer'
|
||||
@ -20,7 +21,6 @@ import { registerShortcuts } from './services/ShortcutService'
|
||||
import { TrayService } from './services/TrayService'
|
||||
import { windowService } from './services/WindowService'
|
||||
import { setUserDataDir } from './utils/file'
|
||||
|
||||
Logger.initialize()
|
||||
|
||||
// in production mode, handle uncaught exception and unhandled rejection globally
|
||||
@ -44,10 +44,13 @@ if (!app.requestSingleInstanceLock()) {
|
||||
// Portable dir must be setup before app ready
|
||||
setUserDataDir()
|
||||
|
||||
dbService.migrateDb().then(async () => {
|
||||
await dbService.migrateSeed('preference')
|
||||
})
|
||||
|
||||
// This method will be called when Electron has finished
|
||||
// initialization and is ready to create browser windows.
|
||||
// Some APIs can only be used after this event occurs.
|
||||
|
||||
app.whenReady().then(async () => {
|
||||
// Set app user model id for windows
|
||||
electronApp.setAppUserModelId(import.meta.env.VITE_MAIN_BUNDLE_ID || 'com.kangfenmao.CherryStudio')
|
||||
|
||||
1
src/main/services/PrefService.ts
Normal file
1
src/main/services/PrefService.ts
Normal file
@ -0,0 +1 @@
|
||||
class PrefService {}
|
||||
@ -17,6 +17,7 @@
|
||||
"paths": {
|
||||
"@main/*": ["src/main/*"],
|
||||
"@types": ["src/renderer/src/types/index.ts"],
|
||||
"@storage/*": ["src/main/db/*"],
|
||||
"@shared/*": ["packages/shared/*"]
|
||||
}
|
||||
}
|
||||
|
||||
219
yarn.lock
219
yarn.lock
@ -3562,6 +3562,19 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/client@npm:^0.15.7":
|
||||
version: 0.15.7
|
||||
resolution: "@libsql/client@npm:0.15.7"
|
||||
dependencies:
|
||||
"@libsql/core": "npm:^0.15.7"
|
||||
"@libsql/hrana-client": "npm:^0.7.0"
|
||||
js-base64: "npm:^3.7.5"
|
||||
libsql: "npm:^0.5.11"
|
||||
promise-limit: "npm:^2.7.0"
|
||||
checksum: 10c0/07d5acb77410651e784edb7463ec0ceab99b614d17540ba3a462a810364253b54b4f8d93be659aab8a3351f15d78fe607c8d3359f250f043f50375e4b312ac69
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/core@npm:^0.14.0":
|
||||
version: 0.14.0
|
||||
resolution: "@libsql/core@npm:0.14.0"
|
||||
@ -3571,6 +3584,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/core@npm:^0.15.7":
|
||||
version: 0.15.7
|
||||
resolution: "@libsql/core@npm:0.15.7"
|
||||
dependencies:
|
||||
js-base64: "npm:^3.7.5"
|
||||
checksum: 10c0/b6c91467509b2c36bbae1562a6ebbec548a4564223b6315f629ee5665c763f5ad2e347d7d05a002d3b9bfc5f21bd31de04ec26fffa0eb4aff1f7fb67453a726e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/darwin-arm64@npm:0.4.7":
|
||||
version: 0.4.7
|
||||
resolution: "@libsql/darwin-arm64@npm:0.4.7"
|
||||
@ -3578,6 +3600,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/darwin-arm64@npm:0.5.11":
|
||||
version: 0.5.11
|
||||
resolution: "@libsql/darwin-arm64@npm:0.5.11"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/darwin-x64@npm:0.4.7":
|
||||
version: 0.4.7
|
||||
resolution: "@libsql/darwin-x64@npm:0.4.7"
|
||||
@ -3585,6 +3614,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/darwin-x64@npm:0.5.11":
|
||||
version: 0.5.11
|
||||
resolution: "@libsql/darwin-x64@npm:0.5.11"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/hrana-client@npm:^0.7.0":
|
||||
version: 0.7.0
|
||||
resolution: "@libsql/hrana-client@npm:0.7.0"
|
||||
@ -3614,6 +3650,20 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/linux-arm-gnueabihf@npm:0.5.11":
|
||||
version: 0.5.11
|
||||
resolution: "@libsql/linux-arm-gnueabihf@npm:0.5.11"
|
||||
conditions: os=linux & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/linux-arm-musleabihf@npm:0.5.11":
|
||||
version: 0.5.11
|
||||
resolution: "@libsql/linux-arm-musleabihf@npm:0.5.11"
|
||||
conditions: os=linux & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/linux-arm64-gnu@npm:0.4.7":
|
||||
version: 0.4.7
|
||||
resolution: "@libsql/linux-arm64-gnu@npm:0.4.7"
|
||||
@ -3621,6 +3671,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/linux-arm64-gnu@npm:0.5.11":
|
||||
version: 0.5.11
|
||||
resolution: "@libsql/linux-arm64-gnu@npm:0.5.11"
|
||||
conditions: os=linux & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/linux-arm64-musl@npm:0.4.7":
|
||||
version: 0.4.7
|
||||
resolution: "@libsql/linux-arm64-musl@npm:0.4.7"
|
||||
@ -3628,6 +3685,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/linux-arm64-musl@npm:0.5.11":
|
||||
version: 0.5.11
|
||||
resolution: "@libsql/linux-arm64-musl@npm:0.5.11"
|
||||
conditions: os=linux & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/linux-x64-gnu@npm:0.4.7":
|
||||
version: 0.4.7
|
||||
resolution: "@libsql/linux-x64-gnu@npm:0.4.7"
|
||||
@ -3635,6 +3699,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/linux-x64-gnu@npm:0.5.11":
|
||||
version: 0.5.11
|
||||
resolution: "@libsql/linux-x64-gnu@npm:0.5.11"
|
||||
conditions: os=linux & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/linux-x64-musl@npm:0.4.7":
|
||||
version: 0.4.7
|
||||
resolution: "@libsql/linux-x64-musl@npm:0.4.7"
|
||||
@ -3642,6 +3713,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/linux-x64-musl@npm:0.5.11":
|
||||
version: 0.5.11
|
||||
resolution: "@libsql/linux-x64-musl@npm:0.5.11"
|
||||
conditions: os=linux & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/win32-x64-msvc@npm:0.4.7":
|
||||
version: 0.4.7
|
||||
resolution: "@libsql/win32-x64-msvc@npm:0.4.7"
|
||||
@ -3649,6 +3727,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@libsql/win32-x64-msvc@npm:0.5.11":
|
||||
version: 0.5.11
|
||||
resolution: "@libsql/win32-x64-msvc@npm:0.5.11"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@malept/cross-spawn-promise@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "@malept/cross-spawn-promise@npm:2.0.0"
|
||||
@ -4665,15 +4750,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/better-sqlite3@npm:^7.6.13":
|
||||
version: 7.6.13
|
||||
resolution: "@types/better-sqlite3@npm:7.6.13"
|
||||
dependencies:
|
||||
"@types/node": "npm:*"
|
||||
checksum: 10c0/c4336e7b92343eb0e988ded007c53fa9887b98a38d61175226e86124a1a2c28b1a4e3892873c5041e350b7bfa2901f85c82db1542c4f0eed1d3a899682c92106
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/cacheable-request@npm:^6.0.1":
|
||||
version: 6.0.3
|
||||
resolution: "@types/cacheable-request@npm:6.0.3"
|
||||
@ -6126,6 +6202,7 @@ __metadata:
|
||||
"@hello-pangea/dnd": "npm:^16.6.0"
|
||||
"@kangfenmao/keyv-storage": "npm:^0.1.0"
|
||||
"@langchain/community": "npm:^0.3.36"
|
||||
"@libsql/client": "npm:^0.15.7"
|
||||
"@modelcontextprotocol/sdk": "npm:^1.11.4"
|
||||
"@mozilla/readability": "npm:^0.6.0"
|
||||
"@notionhq/client": "npm:^2.2.15"
|
||||
@ -6135,7 +6212,6 @@ __metadata:
|
||||
"@swc/plugin-styled-components": "npm:^7.1.5"
|
||||
"@tanstack/react-query": "npm:^5.27.0"
|
||||
"@tryfabric/martian": "npm:^1.2.4"
|
||||
"@types/better-sqlite3": "npm:^7.6.13"
|
||||
"@types/diff": "npm:^7"
|
||||
"@types/fs-extra": "npm:^11"
|
||||
"@types/lodash": "npm:^4.17.5"
|
||||
@ -6160,7 +6236,6 @@ __metadata:
|
||||
archiver: "npm:^7.0.1"
|
||||
async-mutex: "npm:^0.5.0"
|
||||
axios: "npm:^1.7.3"
|
||||
better-sqlite3: "npm:^11.10.0"
|
||||
browser-image-compression: "npm:^2.0.2"
|
||||
color: "npm:^5.0.0"
|
||||
dayjs: "npm:^1.11.11"
|
||||
@ -6888,17 +6963,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"better-sqlite3@npm:^11.10.0":
|
||||
version: 11.10.0
|
||||
resolution: "better-sqlite3@npm:11.10.0"
|
||||
dependencies:
|
||||
bindings: "npm:^1.5.0"
|
||||
node-gyp: "npm:latest"
|
||||
prebuild-install: "npm:^7.1.1"
|
||||
checksum: 10c0/1fffbf9e5fc9d24847a3ecf09491bceab1c294b46ba41df1c449dc20b6f5c5d9d94ff24becd0b1632ee282bd21278b7fea53a5a6215bb99209ded0ae05eda3b0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"bignumber.js@npm:^9.0.0":
|
||||
version: 9.2.1
|
||||
resolution: "bignumber.js@npm:9.2.1"
|
||||
@ -6913,15 +6977,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"bindings@npm:^1.5.0":
|
||||
version: 1.5.0
|
||||
resolution: "bindings@npm:1.5.0"
|
||||
dependencies:
|
||||
file-uri-to-path: "npm:1.0.0"
|
||||
checksum: 10c0/3dab2491b4bb24124252a91e656803eac24292473e56554e35bbfe3cc1875332cfa77600c3bac7564049dc95075bf6fcc63a4609920ff2d64d0fe405fcf0d4ba
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"birecord@npm:^0.1.1":
|
||||
version: 0.1.1
|
||||
resolution: "birecord@npm:0.1.1"
|
||||
@ -8880,13 +8935,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"detect-libc@npm:^2.0.0":
|
||||
version: 2.0.4
|
||||
resolution: "detect-libc@npm:2.0.4"
|
||||
checksum: 10c0/c15541f836eba4b1f521e4eecc28eefefdbc10a94d3b8cb4c507689f332cc111babb95deda66f2de050b22122113189986d5190be97d51b5a2b23b938415e67c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"detect-libc@npm:^2.0.1":
|
||||
version: 2.0.3
|
||||
resolution: "detect-libc@npm:2.0.3"
|
||||
@ -10837,13 +10885,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"file-uri-to-path@npm:1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "file-uri-to-path@npm:1.0.0"
|
||||
checksum: 10c0/3b545e3a341d322d368e880e1c204ef55f1d45cdea65f7efc6c6ce9e0c4d22d802d5629320eb779d006fe59624ac17b0e848d83cc5af7cd101f206cb704f5519
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"file-url@npm:^2.0.0":
|
||||
version: 2.0.2
|
||||
resolution: "file-url@npm:2.0.2"
|
||||
@ -13293,6 +13334,45 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"libsql@npm:^0.5.11":
|
||||
version: 0.5.11
|
||||
resolution: "libsql@npm:0.5.11"
|
||||
dependencies:
|
||||
"@libsql/darwin-arm64": "npm:0.5.11"
|
||||
"@libsql/darwin-x64": "npm:0.5.11"
|
||||
"@libsql/linux-arm-gnueabihf": "npm:0.5.11"
|
||||
"@libsql/linux-arm-musleabihf": "npm:0.5.11"
|
||||
"@libsql/linux-arm64-gnu": "npm:0.5.11"
|
||||
"@libsql/linux-arm64-musl": "npm:0.5.11"
|
||||
"@libsql/linux-x64-gnu": "npm:0.5.11"
|
||||
"@libsql/linux-x64-musl": "npm:0.5.11"
|
||||
"@libsql/win32-x64-msvc": "npm:0.5.11"
|
||||
"@neon-rs/load": "npm:^0.0.4"
|
||||
detect-libc: "npm:2.0.2"
|
||||
dependenciesMeta:
|
||||
"@libsql/darwin-arm64":
|
||||
optional: true
|
||||
"@libsql/darwin-x64":
|
||||
optional: true
|
||||
"@libsql/linux-arm-gnueabihf":
|
||||
optional: true
|
||||
"@libsql/linux-arm-musleabihf":
|
||||
optional: true
|
||||
"@libsql/linux-arm64-gnu":
|
||||
optional: true
|
||||
"@libsql/linux-arm64-musl":
|
||||
optional: true
|
||||
"@libsql/linux-x64-gnu":
|
||||
optional: true
|
||||
"@libsql/linux-x64-musl":
|
||||
optional: true
|
||||
"@libsql/win32-x64-msvc":
|
||||
optional: true
|
||||
checksum: 10c0/94a0b2032ca587dd4442df46dd66ec0e6071fd3289af0bd3a9914472c083f0b6944ba1502aaaa854aac7a0a549d0dcf0e15696d35b0267d8edd09c6fd06c1385
|
||||
conditions: (os=darwin | os=linux | os=win32) & (cpu=x64 | cpu=arm64 | cpu=wasm32 | cpu=arm)
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"libsql@patch:libsql@npm%3A0.4.7#~/.yarn/patches/libsql-npm-0.4.7-444e260fb1.patch":
|
||||
version: 0.4.7
|
||||
resolution: "libsql@patch:libsql@npm%3A0.4.7#~/.yarn/patches/libsql-npm-0.4.7-444e260fb1.patch::version=0.4.7&hash=972e11"
|
||||
@ -15097,13 +15177,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"napi-build-utils@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "napi-build-utils@npm:2.0.0"
|
||||
checksum: 10c0/5833aaeb5cc5c173da47a102efa4680a95842c13e0d9cc70428bd3ee8d96bb2172f8860d2811799b5daa5cbeda779933601492a2028a6a5351c6d0fcf6de83db
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"natural-compare@npm:^1.4.0":
|
||||
version: 1.4.0
|
||||
resolution: "natural-compare@npm:1.4.0"
|
||||
@ -15148,15 +15221,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"node-abi@npm:^3.3.0":
|
||||
version: 3.75.0
|
||||
resolution: "node-abi@npm:3.75.0"
|
||||
dependencies:
|
||||
semver: "npm:^7.3.5"
|
||||
checksum: 10c0/c43a2409407df3737848fd96202b0a49e15039994aecce963969e9ef7342a8fc544aba94e0bfd8155fb9de5f5fe9a4b6ccad8bf509e7c46caf096fc4491d63f2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"node-abi@npm:^3.45.0":
|
||||
version: 3.74.0
|
||||
resolution: "node-abi@npm:3.74.0"
|
||||
@ -16378,28 +16442,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"prebuild-install@npm:^7.1.1":
|
||||
version: 7.1.3
|
||||
resolution: "prebuild-install@npm:7.1.3"
|
||||
dependencies:
|
||||
detect-libc: "npm:^2.0.0"
|
||||
expand-template: "npm:^2.0.3"
|
||||
github-from-package: "npm:0.0.0"
|
||||
minimist: "npm:^1.2.3"
|
||||
mkdirp-classic: "npm:^0.5.3"
|
||||
napi-build-utils: "npm:^2.0.0"
|
||||
node-abi: "npm:^3.3.0"
|
||||
pump: "npm:^3.0.0"
|
||||
rc: "npm:^1.2.7"
|
||||
simple-get: "npm:^4.0.0"
|
||||
tar-fs: "npm:^2.0.0"
|
||||
tunnel-agent: "npm:^0.6.0"
|
||||
bin:
|
||||
prebuild-install: bin.js
|
||||
checksum: 10c0/25919a42b52734606a4036ab492d37cfe8b601273d8dfb1fa3c84e141a0a475e7bad3ab848c741d2f810cef892fcf6059b8c7fe5b29f98d30e0c29ad009bedff
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"prelude-ls@npm:^1.2.1":
|
||||
version: 1.2.1
|
||||
resolution: "prelude-ls@npm:1.2.1"
|
||||
@ -18440,17 +18482,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"simple-get@npm:^4.0.0":
|
||||
version: 4.0.1
|
||||
resolution: "simple-get@npm:4.0.1"
|
||||
dependencies:
|
||||
decompress-response: "npm:^6.0.0"
|
||||
once: "npm:^1.3.1"
|
||||
simple-concat: "npm:^1.0.0"
|
||||
checksum: 10c0/b0649a581dbca741babb960423248899203165769747142033479a7dc5e77d7b0fced0253c731cd57cf21e31e4d77c9157c3069f4448d558ebc96cf9e1eebcf0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"simple-update-notifier@npm:2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "simple-update-notifier@npm:2.0.0"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user