@nicia-ai/typegraph 0.21.0 → 0.22.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 (43) hide show
  1. package/dist/backend/postgres/index.cjs +33 -33
  2. package/dist/backend/postgres/index.js +4 -4
  3. package/dist/backend/sqlite/index.cjs +14 -14
  4. package/dist/backend/sqlite/index.d.cts +11 -0
  5. package/dist/backend/sqlite/index.d.ts +11 -0
  6. package/dist/backend/sqlite/index.js +4 -4
  7. package/dist/backend/sqlite/libsql.cjs +7 -7
  8. package/dist/backend/sqlite/libsql.js +4 -4
  9. package/dist/backend/sqlite/local.cjs +26 -9
  10. package/dist/backend/sqlite/local.cjs.map +1 -1
  11. package/dist/backend/sqlite/local.js +21 -5
  12. package/dist/backend/sqlite/local.js.map +1 -1
  13. package/dist/{chunk-FQCQM3KG.cjs → chunk-3JK66E3I.cjs} +4 -2
  14. package/dist/chunk-3JK66E3I.cjs.map +1 -0
  15. package/dist/{chunk-SMMOAVJ5.js → chunk-3PPEHLGK.js} +3 -3
  16. package/dist/{chunk-SMMOAVJ5.js.map → chunk-3PPEHLGK.js.map} +1 -1
  17. package/dist/{chunk-UQVBVBVG.js → chunk-5ZMMHUWR.js} +53 -7
  18. package/dist/chunk-5ZMMHUWR.js.map +1 -0
  19. package/dist/{chunk-4XNE2JG3.js → chunk-753F33CV.js} +4 -2
  20. package/dist/chunk-753F33CV.js.map +1 -0
  21. package/dist/{chunk-CQL6FOTT.cjs → chunk-GUYI6VAS.cjs} +43 -24
  22. package/dist/chunk-GUYI6VAS.cjs.map +1 -0
  23. package/dist/{chunk-NRNJ52AA.js → chunk-NSLTDXVH.js} +26 -7
  24. package/dist/chunk-NSLTDXVH.js.map +1 -0
  25. package/dist/{chunk-2X7P7AD5.cjs → chunk-PEE4EWXZ.cjs} +22 -22
  26. package/dist/{chunk-2X7P7AD5.cjs.map → chunk-PEE4EWXZ.cjs.map} +1 -1
  27. package/dist/{chunk-Q73OWTJY.cjs → chunk-SCXOGKLD.cjs} +112 -66
  28. package/dist/chunk-SCXOGKLD.cjs.map +1 -0
  29. package/dist/index.cjs +135 -54
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.d.cts +45 -1
  32. package/dist/index.d.ts +45 -1
  33. package/dist/index.js +115 -36
  34. package/dist/index.js.map +1 -1
  35. package/dist/indexes/index.cjs +16 -16
  36. package/dist/indexes/index.js +2 -2
  37. package/package.json +1 -1
  38. package/dist/chunk-4XNE2JG3.js.map +0 -1
  39. package/dist/chunk-CQL6FOTT.cjs.map +0 -1
  40. package/dist/chunk-FQCQM3KG.cjs.map +0 -1
  41. package/dist/chunk-NRNJ52AA.js.map +0 -1
  42. package/dist/chunk-Q73OWTJY.cjs.map +0 -1
  43. package/dist/chunk-UQVBVBVG.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/backend/drizzle/execution/sqlite-execution.ts","../src/backend/drizzle/sqlite.ts"],"names":["executeCompiled","tables","sql"],"mappings":"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","file":"chunk-NSLTDXVH.js","sourcesContent":["import { type SQL, sql } from \"drizzle-orm\";\nimport { type BaseSQLiteDatabase } from \"drizzle-orm/sqlite-core\";\n\nimport {\n type CompiledSqlQuery,\n compileQueryWithDialect,\n type PreparedSqlStatement,\n type SqlExecutionAdapter,\n} from \"./types\";\n\nconst DEFAULT_PREPARED_STATEMENT_CACHE_MAX = 256;\n\ntype PreparedAllStatement = Readonly<{\n all: (...params: readonly unknown[]) => readonly unknown[];\n}>;\n\ntype SqliteClientWithPrepare = Readonly<{\n prepare: (sqlText: string) => PreparedAllStatement;\n}>;\n\ntype SqliteClientCarrier = Readonly<{\n $client?: SqliteClientWithPrepare;\n}>;\n\ntype SessionLike = Readonly<{\n constructor?: Readonly<{\n name?: string;\n }>;\n}>;\n\ntype DatabaseWithSession = Readonly<{\n _?: Readonly<{\n session?: SessionLike;\n }>;\n session?: SessionLike;\n}>;\n\n/**\n * Controls how the backend manages SQLite transactions.\n *\n * - `\"sql\"`: TypeGraph issues BEGIN / COMMIT / ROLLBACK SQL directly.\n * Default for sync drivers (better-sqlite3, bun:sqlite).\n * - `\"drizzle\"`: Delegates to Drizzle's `db.transaction()` method.\n * Default for async drivers (libsql, sql.js).\n * - `\"none\"`: Transactions disabled.\n * Default for Cloudflare D1 and Durable Objects.\n */\nexport type SqliteTransactionMode = \"sql\" | \"drizzle\" | \"none\";\n\nexport type SqliteExecutionProfileHints = Readonly<{\n isSync?: boolean;\n transactionMode?: SqliteTransactionMode;\n}>;\n\ntype SqliteExecutionAdapterOptions = Readonly<{\n profileHints?: SqliteExecutionProfileHints;\n statementCacheMax?: number;\n}>;\n\nexport type AnySqliteDatabase = BaseSQLiteDatabase<\"sync\" | \"async\", unknown>;\n\nexport type SqliteExecutionProfile = Readonly<{\n isSync: boolean;\n supportsCompiledExecution: boolean;\n transactionMode: SqliteTransactionMode;\n}>;\n\nexport type SqliteExecutionAdapter = Readonly<\n SqlExecutionAdapter & {\n clearStatementCache: () => void;\n profile: SqliteExecutionProfile;\n }\n>;\n\nfunction getSessionName(db: AnySqliteDatabase): string | undefined {\n const databaseWithSession = db as DatabaseWithSession;\n const primarySessionName = databaseWithSession.session?.constructor?.name;\n if (primarySessionName !== undefined) {\n return primarySessionName;\n }\n\n return databaseWithSession._?.session?.constructor?.name;\n}\n\nfunction isD1DatabaseBySessionName(db: AnySqliteDatabase): boolean {\n return getSessionName(db) === \"SQLiteD1Session\";\n}\n\nfunction isDurableObjectBySessionName(db: AnySqliteDatabase): boolean {\n const sessionName = getSessionName(db);\n return sessionName === \"SQLiteDurableObjectSession\";\n}\n\nfunction isSyncDatabaseBySessionName(db: AnySqliteDatabase): boolean {\n const sessionName = getSessionName(db);\n return (\n sessionName === \"BetterSQLiteSession\" || sessionName === \"BunSQLiteSession\"\n );\n}\n\nfunction detectSyncProfile(\n db: AnySqliteDatabase,\n profileHints: SqliteExecutionProfileHints,\n): boolean {\n if (profileHints.isSync !== undefined) {\n return profileHints.isSync;\n }\n\n const sessionName = getSessionName(db);\n if (sessionName === \"BetterSQLiteSession\" || sessionName === \"BunSQLiteSession\") {\n return true;\n }\n if (sessionName === \"SQLiteD1Session\") {\n return false;\n }\n\n try {\n const probeResult = db.get(sql`SELECT 1 AS __typegraph_sync_probe__`);\n return !(probeResult instanceof Promise);\n } catch {\n return isSyncDatabaseBySessionName(db);\n }\n}\n\nfunction detectTransactionMode(\n db: AnySqliteDatabase,\n profileHints: SqliteExecutionProfileHints,\n isSync: boolean,\n): SqliteTransactionMode {\n if (profileHints.transactionMode !== undefined) {\n return profileHints.transactionMode;\n }\n // D1 and Durable Object SQLite do not support raw BEGIN/COMMIT SQL\n // through Drizzle's db.run(). Default to \"none\" because async\n // transaction callbacks are not reliably supported across sync\n // Drizzle drivers. Users can opt in to \"drizzle\" mode explicitly if\n // their runtime's db.transaction() handles async callbacks.\n if (isD1DatabaseBySessionName(db) || isDurableObjectBySessionName(db)) {\n return \"none\";\n }\n if (isSync) return \"sql\";\n return \"drizzle\";\n}\n\nfunction resolveSqliteClient(\n db: AnySqliteDatabase,\n): SqliteClientWithPrepare | undefined {\n const databaseWithClient = db as SqliteClientCarrier;\n const sqliteClient = databaseWithClient.$client;\n if (sqliteClient?.prepare === undefined) {\n return undefined;\n }\n return sqliteClient;\n}\n\nfunction getOrCreatePreparedStatement(\n cache: Map<string, PreparedAllStatement>,\n sqliteClient: SqliteClientWithPrepare,\n sqlText: string,\n cacheMax: number,\n): PreparedAllStatement {\n const cachedStatement = cache.get(sqlText);\n if (cachedStatement !== undefined) {\n // Promote to most-recently-used position for LRU eviction\n cache.delete(sqlText);\n cache.set(sqlText, cachedStatement);\n return cachedStatement;\n }\n\n const preparedStatement = sqliteClient.prepare(sqlText);\n cache.set(sqlText, preparedStatement);\n\n if (cache.size > cacheMax) {\n const oldestSqlText = cache.keys().next().value;\n if (typeof oldestSqlText === \"string\") {\n cache.delete(oldestSqlText);\n }\n }\n\n return preparedStatement;\n}\n\n// Uses unconditional `await` because Drizzle returns SQLiteRaw thenables\n// that fail `instanceof Promise` checks (drizzle-team/drizzle-orm#2275).\nasync function executeDrizzleQuery<TRow>(\n db: AnySqliteDatabase,\n query: SQL,\n): Promise<readonly TRow[]> {\n return (await db.all(query));\n}\n\nfunction createPreparedStatementExecutor(\n sqliteClient: SqliteClientWithPrepare,\n cache: Map<string, PreparedAllStatement>,\n sqlText: string,\n cacheMax: number,\n): PreparedSqlStatement {\n return {\n execute<TRow>(params: readonly unknown[]): Promise<readonly TRow[]> {\n const preparedStatement = getOrCreatePreparedStatement(\n cache,\n sqliteClient,\n sqlText,\n cacheMax,\n );\n const rows = preparedStatement.all(...params);\n return Promise.resolve(rows as readonly TRow[]);\n },\n };\n}\n\nexport function createSqliteExecutionAdapter(\n db: AnySqliteDatabase,\n statementCacheMaxOrOptions: number | SqliteExecutionAdapterOptions = {},\n): SqliteExecutionAdapter {\n const options: SqliteExecutionAdapterOptions =\n typeof statementCacheMaxOrOptions === \"number\"\n ? { statementCacheMax: statementCacheMaxOrOptions }\n : statementCacheMaxOrOptions;\n const statementCacheMax =\n options.statementCacheMax ?? DEFAULT_PREPARED_STATEMENT_CACHE_MAX;\n const profileHints = options.profileHints ?? {};\n\n const isSync = detectSyncProfile(db, profileHints);\n const sqliteClient = isSync ? resolveSqliteClient(db) : undefined;\n const transactionMode = detectTransactionMode(db, profileHints, isSync);\n\n const profile: SqliteExecutionProfile = {\n isSync,\n supportsCompiledExecution: sqliteClient !== undefined,\n transactionMode,\n };\n\n const compile = (query: SQL): CompiledSqlQuery =>\n compileQueryWithDialect(db, query, \"SQLite\");\n\n if (sqliteClient !== undefined) {\n const client = sqliteClient;\n const statementCache = new Map<string, PreparedAllStatement>();\n\n function executeCompiled<TRow>(\n compiledQuery: CompiledSqlQuery,\n ): Promise<readonly TRow[]> {\n const preparedStatement = getOrCreatePreparedStatement(\n statementCache,\n client,\n compiledQuery.sql,\n statementCacheMax,\n );\n const rows = preparedStatement.all(...compiledQuery.params);\n return Promise.resolve(rows as readonly TRow[]);\n }\n\n return {\n clearStatementCache() {\n statementCache.clear();\n },\n compile,\n execute<TRow>(query: SQL): Promise<readonly TRow[]> {\n const compiledQuery = compile(query);\n return executeCompiled<TRow>(compiledQuery);\n },\n executeCompiled,\n prepare(sqlText: string): PreparedSqlStatement {\n return createPreparedStatementExecutor(\n client,\n statementCache,\n sqlText,\n statementCacheMax,\n );\n },\n profile,\n };\n }\n\n return {\n clearStatementCache() {\n // No-op: no statement cache in async/D1 mode\n },\n compile,\n execute<TRow>(query: SQL): Promise<readonly TRow[]> {\n return executeDrizzleQuery<TRow>(db, query);\n },\n profile,\n };\n}\n","/**\n * SQLite backend adapter for TypeGraph.\n *\n * Works with any Drizzle SQLite database instance:\n * - better-sqlite3\n * - libsql / Turso\n * - Cloudflare D1\n * - bun:sqlite\n * - sql.js\n *\n * @example\n * ```typescript\n * import { drizzle } from \"drizzle-orm/better-sqlite3\";\n * import Database from \"better-sqlite3\";\n * import { createSqliteBackend, tables } from \"@nicia-ai/typegraph/sqlite\";\n *\n * const sqlite = new Database(\"app.db\");\n * const db = drizzle(sqlite);\n * const backend = createSqliteBackend(db, { tables });\n * ```\n */\nimport { getTableName, type SQL, sql } from \"drizzle-orm\";\n\nimport { BackendDisposedError, ConfigurationError } from \"../../errors\";\nimport type { SqlTableNames } from \"../../query/compiler/schema\";\nimport {\n buildFulltextCapabilities,\n fts5Strategy,\n type FulltextStrategy,\n} from \"../../query/dialect/fulltext-strategy\";\nimport {\n type BackendCapabilities,\n type CreateVectorIndexParams,\n type DeleteEmbeddingParams,\n type DeleteFulltextBatchParams,\n type DeleteFulltextParams,\n type DropVectorIndexParams,\n type FulltextSearchParams,\n type FulltextSearchResult,\n type GraphBackend,\n SQLITE_CAPABILITIES,\n type TransactionBackend,\n type TransactionOptions,\n type UpsertEmbeddingParams,\n type UpsertFulltextBatchParams,\n type UpsertFulltextParams,\n} from \"../types\";\nimport {\n type AnySqliteDatabase,\n createSqliteExecutionAdapter,\n type SqliteExecutionAdapter,\n type SqliteExecutionProfileHints,\n} from \"./execution/sqlite-execution\";\nexport type { SqliteTransactionMode } from \"./execution/sqlite-execution\";\nimport { generateSqliteDDL } from \"./ddl\";\nimport { createCommonOperationBackend } from \"./operation-backend-core\";\nimport { createSqliteOperationStrategy } from \"./operations/strategy\";\nimport {\n createEdgeRowMapper,\n createNodeRowMapper,\n createSchemaVersionRowMapper,\n createUniqueRowMapper,\n nowIso,\n SQLITE_ROW_MAPPER_CONFIG,\n} from \"./row-mappers\";\nimport { type SqliteTables, tables as defaultTables } from \"./schema/sqlite\";\nimport {\n createSqliteVectorIndex,\n dropSqliteVectorIndex,\n type VectorIndexOptions,\n} from \"./vector-index\";\n\n// ============================================================\n// Types\n// ============================================================\n\n/**\n * Options for creating a SQLite backend.\n */\nexport type SqliteBackendOptions = Readonly<{\n /**\n * Custom table definitions. Use createSqliteTables() to customize table names.\n * Defaults to standard TypeGraph table names.\n */\n tables?: SqliteTables;\n /**\n * Optional execution profile hints used to avoid runtime driver reflection.\n * Set `transactionMode: \"none\"` for drivers that do not support transactions\n * (e.g. Cloudflare D1, Durable Objects).\n */\n executionProfile?: SqliteExecutionProfileHints;\n /**\n * Fulltext strategy override. Defaults to `fts5Strategy` (SQLite's\n * built-in FTS5 virtual table). Most users should leave this alone.\n */\n fulltext?: FulltextStrategy;\n /**\n * Set to `true` when sqlite-vec has been loaded on the connection.\n * Enables vector embedding persistence via `upsertEmbedding` /\n * `deleteEmbedding`, which the store's embedding-sync path relies on\n * whenever node schemas declare `embedding()` fields. When omitted the\n * backend does not expose those methods and embedding values pass\n * through writes without being indexed — matching existing behavior\n * for backends without sqlite-vec. `createLocalSqliteBackend` sets\n * this automatically when it loads the extension.\n */\n hasVectorEmbeddings?: boolean;\n}>;\n\nconst SQLITE_MAX_BIND_PARAMETERS = 999;\nconst NODE_INSERT_PARAM_COUNT = 9;\nconst EDGE_INSERT_PARAM_COUNT = 12;\nconst SQLITE_NODE_INSERT_BATCH_SIZE = Math.max(\n 1,\n Math.floor(SQLITE_MAX_BIND_PARAMETERS / NODE_INSERT_PARAM_COUNT),\n);\nconst SQLITE_EDGE_INSERT_BATCH_SIZE = Math.max(\n 1,\n Math.floor(SQLITE_MAX_BIND_PARAMETERS / EDGE_INSERT_PARAM_COUNT),\n);\nconst SQLITE_GET_NODES_ID_CHUNK_SIZE = Math.max(\n 1,\n SQLITE_MAX_BIND_PARAMETERS - 2,\n);\nconst SQLITE_GET_EDGES_ID_CHUNK_SIZE = Math.max(\n 1,\n SQLITE_MAX_BIND_PARAMETERS - 1,\n);\nconst CHECK_UNIQUE_BATCH_FIXED_PARAM_COUNT = 3;\nconst SQLITE_CHECK_UNIQUE_BATCH_CHUNK_SIZE = Math.max(\n 1,\n SQLITE_MAX_BIND_PARAMETERS - CHECK_UNIQUE_BATCH_FIXED_PARAM_COUNT,\n);\n\ntype SerializedExecutionQueue = Readonly<{\n dispose: () => void;\n runExclusive: <T>(task: () => Promise<T>) => Promise<T>;\n}>;\n\n// ============================================================\n// Utilities\n// ============================================================\n\nconst toNodeRow = createNodeRowMapper(SQLITE_ROW_MAPPER_CONFIG);\nconst toEdgeRow = createEdgeRowMapper(SQLITE_ROW_MAPPER_CONFIG);\nconst toUniqueRow = createUniqueRowMapper(SQLITE_ROW_MAPPER_CONFIG);\nconst toSchemaVersionRow = createSchemaVersionRowMapper(SQLITE_ROW_MAPPER_CONFIG);\n\n/** A shared promise that never settles — used to absorb post-dispose work. */\nconst PENDING_FOREVER: Promise<never> = new Promise<never>(noop);\n\nfunction pendingForever<T>(): Promise<T> {\n return PENDING_FOREVER;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop(): void {}\n\nfunction createSerializedExecutionQueue(): SerializedExecutionQueue {\n let tail: Promise<unknown> = Promise.resolve();\n let disposed = false;\n\n function isDisposed(): boolean {\n return disposed;\n }\n\n return {\n dispose() {\n disposed = true;\n },\n\n runExclusive<T>(task: () => Promise<T>): Promise<T> {\n if (isDisposed()) return Promise.reject(new BackendDisposedError());\n\n // When disposed, runTask returns a never-settling promise so that no\n // rejection propagates through the 7+ async wrappers between this\n // queue and the store-level caller. A rejection here would become an\n // unhandled rejection if the caller abandoned the promise during\n // teardown — and JavaScript offers no way to `.catch()` a rejection\n // at the bottom of a chain without every async wrapper above it also\n // creating an independently-unhandled rejected promise.\n //\n // The tradeoff: an active caller whose operation was queued before\n // dispose() will see a permanently-pending promise rather than a\n // BackendDisposedError. Post-dispose submissions (the check above)\n // still reject immediately since the caller actively holds that\n // promise.\n const runTask = async (): Promise<T> => {\n if (isDisposed()) return pendingForever<T>();\n try {\n return await task();\n } catch (error) {\n if (isDisposed()) return pendingForever<T>();\n throw error;\n }\n };\n const result = tail.then(runTask, runTask);\n tail = result.then(\n () => 0,\n () => 0,\n );\n return result;\n },\n };\n}\n\nfunction runWithSerializedQueue<T>(\n queue: SerializedExecutionQueue | undefined,\n task: () => Promise<T>,\n): Promise<T> {\n if (queue === undefined) return task();\n return queue.runExclusive(task);\n}\n\n// ============================================================\n// Backend Factory\n// ============================================================\n\n/**\n * Creates a TypeGraph backend for SQLite databases.\n *\n * Works with any Drizzle SQLite instance regardless of the underlying driver.\n *\n * @param db - A Drizzle SQLite database instance\n * @param options - Backend configuration\n * @returns A GraphBackend implementation\n */\ntype CreateSqliteOperationBackendOptions = Readonly<{\n capabilities: GraphBackend[\"capabilities\"];\n db: AnySqliteDatabase;\n executionAdapter: SqliteExecutionAdapter;\n operationStrategy: ReturnType<typeof createSqliteOperationStrategy>;\n serializedQueue?: SerializedExecutionQueue;\n tableNames: SqlTableNames;\n fulltextStrategy: FulltextStrategy;\n /** Wire up upsertEmbedding / deleteEmbedding. See transaction options for details. */\n hasVectorEmbeddings?: boolean;\n}>;\n\ntype CreateSqliteTransactionBackendOptions = Readonly<{\n capabilities: GraphBackend[\"capabilities\"];\n db: AnySqliteDatabase;\n executionAdapter?: SqliteExecutionAdapter;\n operationStrategy: ReturnType<typeof createSqliteOperationStrategy>;\n profileHints: SqliteExecutionProfileHints;\n tableNames: SqlTableNames;\n fulltextStrategy: FulltextStrategy;\n /**\n * When true, the backend exposes upsertEmbedding / deleteEmbedding —\n * detected by probing `vec_f32(...)` on the connection at boot so the\n * store's embedding-sync path persists vectors to the embeddings table.\n */\n hasVectorEmbeddings?: boolean;\n}>;\n\nfunction createSqliteOperationBackend(\n options: CreateSqliteOperationBackendOptions,\n): TransactionBackend {\n const {\n capabilities,\n db,\n executionAdapter,\n operationStrategy,\n serializedQueue,\n tableNames,\n fulltextStrategy,\n } = options;\n\n function execGet<T>(query: SQL): Promise<T | undefined> {\n // Workaround: drizzle-team/drizzle-orm#1049 — db.get() crashes with\n // the libsql driver when no rows match (normalizeRow receives undefined).\n // Using db.all()[0] avoids the crash for all drivers.\n //\n // All three exec helpers use `await` unconditionally rather than\n // `instanceof Promise` because Drizzle returns SQLiteRaw thenables\n // that are NOT Promise instances (drizzle-team/drizzle-orm#2275).\n return runWithSerializedQueue(serializedQueue, async () => {\n const rows = await db.all(query);\n return (rows as T[])[0];\n });\n }\n\n function execAll<T>(query: SQL): Promise<T[]> {\n return runWithSerializedQueue(serializedQueue, async () => {\n return await db.all(query);\n });\n }\n\n function execRun(query: SQL): Promise<void> {\n return runWithSerializedQueue(serializedQueue, async () => {\n await db.run(query);\n });\n }\n\n const commonBackend = createCommonOperationBackend({\n batchConfig: {\n checkUniqueBatchChunkSize: SQLITE_CHECK_UNIQUE_BATCH_CHUNK_SIZE,\n edgeInsertBatchSize: SQLITE_EDGE_INSERT_BATCH_SIZE,\n getEdgesChunkSize: SQLITE_GET_EDGES_ID_CHUNK_SIZE,\n getNodesChunkSize: SQLITE_GET_NODES_ID_CHUNK_SIZE,\n nodeInsertBatchSize: SQLITE_NODE_INSERT_BATCH_SIZE,\n },\n execution: {\n execAll,\n execGet,\n execRun,\n },\n nowIso,\n operationStrategy,\n rowMappers: {\n toEdgeRow,\n toNodeRow,\n toSchemaVersionRow,\n toUniqueRow,\n },\n });\n\n const executeCompiled = executionAdapter.executeCompiled;\n const executeRawMethod: Pick<TransactionBackend, \"executeRaw\"> =\n executeCompiled === undefined ?\n {}\n : {\n executeRaw<T>(\n sqlText: string,\n params: readonly unknown[],\n ): Promise<readonly T[]> {\n return runWithSerializedQueue(serializedQueue, async () =>\n executeCompiled<T>({ params, sql: sqlText }),\n );\n },\n };\n\n const vectorEmbeddingMethods =\n options.hasVectorEmbeddings\n ? {\n async upsertEmbedding(params: UpsertEmbeddingParams): Promise<void> {\n const query = operationStrategy.buildUpsertEmbedding(\n params,\n nowIso(),\n );\n await execRun(query);\n },\n async deleteEmbedding(params: DeleteEmbeddingParams): Promise<void> {\n const query = operationStrategy.buildDeleteEmbedding(params);\n await execRun(query);\n },\n }\n : {};\n\n const operationBackend: TransactionBackend = {\n ...commonBackend,\n ...executeRawMethod,\n ...vectorEmbeddingMethods,\n capabilities,\n dialect: \"sqlite\",\n tableNames,\n fulltextStrategy,\n\n createVectorIndex(params: CreateVectorIndexParams): Promise<void> {\n const indexOptions: VectorIndexOptions = {\n graphId: params.graphId,\n nodeKind: params.nodeKind,\n fieldPath: params.fieldPath,\n dimensions: params.dimensions,\n indexType: params.indexType,\n metric: params.metric,\n ...(params.indexParams?.m === undefined\n ? {}\n : { hnswM: params.indexParams.m }),\n ...(params.indexParams?.efConstruction === undefined\n ? {}\n : { hnswEfConstruction: params.indexParams.efConstruction }),\n ...(params.indexParams?.lists === undefined\n ? {}\n : { ivfflatLists: params.indexParams.lists }),\n };\n\n const result = createSqliteVectorIndex(indexOptions);\n\n if (!result.success) {\n throw new Error(result.message ?? \"Failed to create SQLite vector index\");\n }\n return Promise.resolve();\n },\n\n dropVectorIndex(params: DropVectorIndexParams): Promise<void> {\n const result = dropSqliteVectorIndex(\n params.graphId,\n params.nodeKind,\n params.fieldPath,\n );\n if (!result.success) {\n throw new Error(result.message ?? \"Failed to drop SQLite vector index\");\n }\n return Promise.resolve();\n },\n\n // === Fulltext Operations ===\n\n async upsertFulltext(params: UpsertFulltextParams): Promise<void> {\n const timestamp = nowIso();\n const statements = operationStrategy.buildUpsertFulltext(\n params,\n timestamp,\n );\n for (const stmt of statements) {\n await execRun(stmt);\n }\n },\n\n async deleteFulltext(params: DeleteFulltextParams): Promise<void> {\n const statements = operationStrategy.buildDeleteFulltext(params);\n for (const stmt of statements) {\n await execRun(stmt);\n }\n },\n\n async upsertFulltextBatch(\n params: UpsertFulltextBatchParams,\n ): Promise<void> {\n if (params.rows.length === 0) return;\n const timestamp = nowIso();\n const statements = operationStrategy.buildUpsertFulltextBatch(\n params,\n timestamp,\n );\n for (const stmt of statements) {\n await execRun(stmt);\n }\n },\n\n async deleteFulltextBatch(\n params: DeleteFulltextBatchParams,\n ): Promise<void> {\n if (params.nodeIds.length === 0) return;\n const statements = operationStrategy.buildDeleteFulltextBatch(params);\n for (const stmt of statements) {\n await execRun(stmt);\n }\n },\n\n async fulltextSearch(\n params: FulltextSearchParams,\n ): Promise<readonly FulltextSearchResult[]> {\n const query = operationStrategy.buildFulltextSearch(params);\n const rows = await execAll<{\n node_id: string;\n score: number;\n snippet: string | null;\n }>(query);\n return rows.map((row, index) => ({\n nodeId: row.node_id,\n score: row.score,\n rank: index + 1,\n ...(row.snippet === null ? {} : { snippet: row.snippet }),\n }));\n },\n\n // === Query Execution ===\n\n async execute<T>(query: SQL): Promise<readonly T[]> {\n return runWithSerializedQueue(serializedQueue, async () =>\n executionAdapter.execute<T>(query),\n );\n },\n\n compileSql(query: SQL): Readonly<{ sql: string; params: readonly unknown[] }> {\n return executionAdapter.compile(query);\n },\n };\n\n return operationBackend;\n}\n\nexport function createSqliteBackend(\n db: AnySqliteDatabase,\n options: SqliteBackendOptions = {},\n): GraphBackend {\n const tables = options.tables ?? defaultTables;\n const fulltextStrategy = options.fulltext ?? fts5Strategy;\n const profileHints = options.executionProfile ?? {};\n const executionAdapter = createSqliteExecutionAdapter(db, { profileHints });\n const { isSync, transactionMode } = executionAdapter.profile;\n const baseCapabilities: BackendCapabilities =\n transactionMode === \"none\"\n ? { ...SQLITE_CAPABILITIES, transactions: false }\n : SQLITE_CAPABILITIES;\n const capabilities: BackendCapabilities = {\n ...baseCapabilities,\n fulltext: buildFulltextCapabilities(fulltextStrategy),\n };\n\n const tableNames: SqlTableNames = {\n nodes: getTableName(tables.nodes),\n edges: getTableName(tables.edges),\n embeddings: getTableName(tables.embeddings),\n fulltext: tables.fulltextTableName,\n };\n const operationStrategy = createSqliteOperationStrategy(\n tables,\n fulltextStrategy,\n );\n const serializedQueue = isSync ? createSerializedExecutionQueue() : undefined;\n // Explicit opt-in: wire upsertEmbedding / deleteEmbedding only when\n // the caller confirms sqlite-vec is loaded. Probing synchronously\n // isn't portable across drizzle SQLite drivers (sync vs async), so\n // the gate lives with the caller that loaded the extension.\n const hasVectorEmbeddings = options.hasVectorEmbeddings === true;\n const operations = createSqliteOperationBackend({\n capabilities,\n db,\n executionAdapter,\n operationStrategy,\n tableNames,\n fulltextStrategy,\n hasVectorEmbeddings,\n ...(serializedQueue === undefined ? {} : { serializedQueue }),\n });\n\n const backend: GraphBackend = {\n ...operations,\n\n async bootstrapTables(): Promise<void> {\n const statements = generateSqliteDDL(tables, fulltextStrategy);\n for (const statement of statements) {\n await db.run(sql.raw(statement));\n }\n },\n\n async setActiveSchema(graphId: string, version: number): Promise<void> {\n await backend.transaction(async (txBackend) => {\n await txBackend.setActiveSchema(graphId, version);\n });\n },\n\n async transaction<T>(\n fn: (tx: TransactionBackend) => Promise<T>,\n _options?: TransactionOptions,\n ): Promise<T> {\n if (transactionMode === \"none\") {\n throw new ConfigurationError(\n \"This SQLite backend does not support atomic transactions. \" +\n \"Operations within a transaction are not rolled back on failure. \" +\n \"Use backend.capabilities.transactions to check for transaction support, \" +\n \"or use individual operations with manual error handling.\",\n {\n backend: \"sqlite\",\n capability: \"transactions\",\n supportsTransactions: false,\n },\n );\n }\n\n if (transactionMode === \"sql\") {\n return runWithSerializedQueue(serializedQueue, async () => {\n const txBackend = createTransactionBackend({\n capabilities,\n db,\n executionAdapter,\n operationStrategy,\n profileHints: { isSync: true },\n tableNames,\n fulltextStrategy,\n hasVectorEmbeddings,\n });\n db.run(sql`BEGIN`);\n\n try {\n const result = await fn(txBackend);\n db.run(sql`COMMIT`);\n return result;\n } catch (error) {\n db.run(sql`ROLLBACK`);\n throw error;\n }\n });\n }\n\n // transactionMode === \"drizzle\"\n return runWithSerializedQueue(serializedQueue, async () =>\n db.transaction(async (tx) => {\n const txBackend = createTransactionBackend({\n capabilities,\n db: tx,\n operationStrategy,\n profileHints: { isSync },\n tableNames,\n fulltextStrategy,\n hasVectorEmbeddings,\n });\n return fn(txBackend);\n }) as Promise<T>,\n );\n },\n\n close(): Promise<void> {\n serializedQueue?.dispose();\n return Promise.resolve();\n },\n };\n\n return backend;\n}\n\nfunction createTransactionBackend(\n options: CreateSqliteTransactionBackendOptions,\n): TransactionBackend {\n const txExecutionAdapter =\n options.executionAdapter ??\n createSqliteExecutionAdapter(options.db, {\n profileHints: options.profileHints,\n });\n\n return createSqliteOperationBackend({\n capabilities: options.capabilities,\n db: options.db,\n executionAdapter: txExecutionAdapter,\n operationStrategy: options.operationStrategy,\n tableNames: options.tableNames,\n fulltextStrategy: options.fulltextStrategy,\n ...(options.hasVectorEmbeddings === undefined\n ? {}\n : { hasVectorEmbeddings: options.hasVectorEmbeddings }),\n });\n}\n\n// Re-export schema utilities\nexport type { SqliteTableNames,SqliteTables } from \"./schema/sqlite\";\nexport { createSqliteTables, tables } from \"./schema/sqlite\";\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkFQCQM3KG_cjs = require('./chunk-FQCQM3KG.cjs');
3
+ var chunk3JK66E3I_cjs = require('./chunk-3JK66E3I.cjs');
4
4
  var chunkUVZHTBZ5_cjs = require('./chunk-UVZHTBZ5.cjs');
5
5
  var drizzleOrm = require('drizzle-orm');
6
6
  var casing = require('drizzle-orm/casing');
@@ -8,7 +8,7 @@ var pgCore = require('drizzle-orm/pg-core');
8
8
  var sqliteCore = require('drizzle-orm/sqlite-core');
9
9
 
10
10
  function compileNodeIndexKeys(index, dialect, propsColumn, systemColumn) {
11
- const adapter = chunkFQCQM3KG_cjs.getDialect(dialect);
11
+ const adapter = chunk3JK66E3I_cjs.getDialect(dialect);
12
12
  const keys = [];
13
13
  for (const column of getNodeScopeColumns(index.scope)) {
14
14
  keys.push(systemColumn(column));
@@ -31,7 +31,7 @@ function compileNodeIndexKeys(index, dialect, propsColumn, systemColumn) {
31
31
  return { keys };
32
32
  }
33
33
  function compileEdgeIndexKeys(index, dialect, propsColumn, systemColumn) {
34
- const adapter = chunkFQCQM3KG_cjs.getDialect(dialect);
34
+ const adapter = chunk3JK66E3I_cjs.getDialect(dialect);
35
35
  const keys = [];
36
36
  for (const column of getEdgeScopeColumns(index.scope, index.direction)) {
37
37
  keys.push(systemColumn(column));
@@ -153,7 +153,7 @@ function compileIndexWhereOperand(ctx, operand) {
153
153
  if (operand.__type === "index_operand_system") {
154
154
  return ctx.systemColumn(operand.column);
155
155
  }
156
- const adapter = chunkFQCQM3KG_cjs.getDialect(ctx.dialect);
156
+ const adapter = chunk3JK66E3I_cjs.getDialect(ctx.dialect);
157
157
  const pointer = chunkUVZHTBZ5_cjs.jsonPointer([operand.field]);
158
158
  switch (operand.valueType) {
159
159
  case "number": {
@@ -187,7 +187,7 @@ function compileIndexWhereLiteral(dialect, literal) {
187
187
  return drizzleOrm.sql.raw(literal.value.toString());
188
188
  }
189
189
  case "boolean": {
190
- return chunkFQCQM3KG_cjs.getDialect(dialect).booleanLiteral(literal.value);
190
+ return chunk3JK66E3I_cjs.getDialect(dialect).booleanLiteral(literal.value);
191
191
  }
192
192
  case "array":
193
193
  case "object":
@@ -225,7 +225,7 @@ function escapeStringLiteral(value) {
225
225
 
226
226
  // src/indexes/ddl.ts
227
227
  function generateIndexDDL(index, dialect, options = {}) {
228
- if (index.__type === chunkFQCQM3KG_cjs.NODE_INDEX_TYPE_MARKER) {
228
+ if (index.__type === chunk3JK66E3I_cjs.NODE_INDEX_TYPE_MARKER) {
229
229
  return generateNodeIndexDDL(index, dialect, options);
230
230
  }
231
231
  return generateEdgeIndexDDL(index, dialect, options);
@@ -242,7 +242,7 @@ function generateTableIndexDDL(index, dialect, tableName, options) {
242
242
  const ifNotExists = options.ifNotExists ?? true;
243
243
  const propsColumn = drizzleOrm.sql.raw('"props"');
244
244
  const systemColumn = (column) => drizzleOrm.sql.raw(quoteIdentifier(column));
245
- const keys = index.__type === chunkFQCQM3KG_cjs.NODE_INDEX_TYPE_MARKER ? compileNodeIndexKeys(index, dialect, propsColumn, systemColumn).keys : compileEdgeIndexKeys(index, dialect, propsColumn, systemColumn).keys;
245
+ const keys = index.__type === chunk3JK66E3I_cjs.NODE_INDEX_TYPE_MARKER ? compileNodeIndexKeys(index, dialect, propsColumn, systemColumn).keys : compileEdgeIndexKeys(index, dialect, propsColumn, systemColumn).keys;
246
246
  const whereSql = index.where ? sqlToInlineString(
247
247
  compileIndexWhere(
248
248
  {
@@ -293,7 +293,7 @@ function inlineParam(value, dialect) {
293
293
  return value.toString();
294
294
  }
295
295
  if (typeof value === "boolean") {
296
- return chunkFQCQM3KG_cjs.getDialect(dialect).booleanLiteralString(value);
296
+ return chunk3JK66E3I_cjs.getDialect(dialect).booleanLiteralString(value);
297
297
  }
298
298
  if (typeof value === "bigint") {
299
299
  return value.toString();
@@ -342,7 +342,7 @@ function defineNodeIndex(node, config) {
342
342
  coveringFields
343
343
  });
344
344
  return {
345
- __type: chunkFQCQM3KG_cjs.NODE_INDEX_TYPE_MARKER,
345
+ __type: chunk3JK66E3I_cjs.NODE_INDEX_TYPE_MARKER,
346
346
  node,
347
347
  nodeKind: node.kind,
348
348
  fields,
@@ -392,7 +392,7 @@ function defineEdgeIndex(edge, config) {
392
392
  coveringFields
393
393
  });
394
394
  return {
395
- __type: chunkFQCQM3KG_cjs.EDGE_INDEX_TYPE_MARKER,
395
+ __type: chunk3JK66E3I_cjs.EDGE_INDEX_TYPE_MARKER,
396
396
  edge,
397
397
  edgeKind: edge.kind,
398
398
  fields,
@@ -570,7 +570,7 @@ function createSystemColumnMapForNode() {
570
570
  ["kind", { column: "kind", valueType: "string" }],
571
571
  ["id", { column: "id", valueType: "string" }]
572
572
  ];
573
- for (const key of chunkFQCQM3KG_cjs.NODE_META_KEYS) {
573
+ for (const key of chunk3JK66E3I_cjs.NODE_META_KEYS) {
574
574
  if (key === "version") {
575
575
  entries.push([key, { column: "version", valueType: "number" }]);
576
576
  continue;
@@ -589,7 +589,7 @@ function createSystemColumnMapForEdge() {
589
589
  ["toKind", { column: "to_kind", valueType: "string" }],
590
590
  ["toId", { column: "to_id", valueType: "string" }]
591
591
  ];
592
- for (const key of chunkFQCQM3KG_cjs.EDGE_META_KEYS) {
592
+ for (const key of chunk3JK66E3I_cjs.EDGE_META_KEYS) {
593
593
  entries.push([key, { column: toSystemColumnName(key), valueType: "date" }]);
594
594
  }
595
595
  return new Map(entries);
@@ -755,7 +755,7 @@ function resolveEdgeFieldTypeInfoOrThrow(edgeKind, pointer, schemaIntrospector)
755
755
  return resolved;
756
756
  }
757
757
  function generateDefaultIndexName(parts) {
758
- const hash = chunkFQCQM3KG_cjs.fnv1aBase36(
758
+ const hash = chunk3JK66E3I_cjs.fnv1aBase36(
759
759
  JSON.stringify({
760
760
  kind: parts.kind,
761
761
  kindName: parts.kindName,
@@ -779,14 +779,14 @@ function generateDefaultIndexName(parts) {
779
779
  hash
780
780
  ].filter((part) => part !== void 0);
781
781
  const joined = nameParts.join("_");
782
- return joined.length <= chunkFQCQM3KG_cjs.MAX_PG_IDENTIFIER_LENGTH ? joined : `${joined.slice(0, chunkFQCQM3KG_cjs.TRUNCATED_IDENTIFIER_MAX_LENGTH)}_${hash}`;
782
+ return joined.length <= chunk3JK66E3I_cjs.MAX_PG_IDENTIFIER_LENGTH ? joined : `${joined.slice(0, chunk3JK66E3I_cjs.TRUNCATED_IDENTIFIER_MAX_LENGTH)}_${hash}`;
783
783
  }
784
784
  function sanitizeIdentifierComponent(value) {
785
- return value.toLowerCase().replaceAll(/[^a-z0-9_]+/g, "_").replaceAll(/^_+|_+$/g, "").slice(0, chunkFQCQM3KG_cjs.IDENTIFIER_COMPONENT_MAX_LENGTH);
785
+ return value.toLowerCase().replaceAll(/[^a-z0-9_]+/g, "_").replaceAll(/^_+|_+$/g, "").slice(0, chunk3JK66E3I_cjs.IDENTIFIER_COMPONENT_MAX_LENGTH);
786
786
  }
787
787
  function buildPostgresNodeIndexBuilders(table, indexes) {
788
788
  const nodeIndexes = indexes.filter(
789
- (index) => index.__type === chunkFQCQM3KG_cjs.NODE_INDEX_TYPE_MARKER
789
+ (index) => index.__type === chunk3JK66E3I_cjs.NODE_INDEX_TYPE_MARKER
790
790
  );
791
791
  return nodeIndexes.map((index) => {
792
792
  const propsColumn = drizzleOrm.sql`${table.props}`;
@@ -813,7 +813,7 @@ function buildPostgresNodeIndexBuilders(table, indexes) {
813
813
  }
814
814
  function buildPostgresEdgeIndexBuilders(table, indexes) {
815
815
  const edgeIndexes = indexes.filter(
816
- (index) => index.__type === chunkFQCQM3KG_cjs.EDGE_INDEX_TYPE_MARKER
816
+ (index) => index.__type === chunk3JK66E3I_cjs.EDGE_INDEX_TYPE_MARKER
817
817
  );
818
818
  return edgeIndexes.map((index) => {
819
819
  const propsColumn = drizzleOrm.sql`${table.props}`;
@@ -920,7 +920,7 @@ function getPostgresEdgeSystemColumn(table, column) {
920
920
  }
921
921
  function buildSqliteNodeIndexBuilders(table, indexes) {
922
922
  const nodeIndexes = indexes.filter(
923
- (index) => index.__type === chunkFQCQM3KG_cjs.NODE_INDEX_TYPE_MARKER
923
+ (index) => index.__type === chunk3JK66E3I_cjs.NODE_INDEX_TYPE_MARKER
924
924
  );
925
925
  return nodeIndexes.map((index) => {
926
926
  const propsColumn = drizzleOrm.sql`${table.props}`;
@@ -947,7 +947,7 @@ function buildSqliteNodeIndexBuilders(table, indexes) {
947
947
  }
948
948
  function buildSqliteEdgeIndexBuilders(table, indexes) {
949
949
  const edgeIndexes = indexes.filter(
950
- (index) => index.__type === chunkFQCQM3KG_cjs.EDGE_INDEX_TYPE_MARKER
950
+ (index) => index.__type === chunk3JK66E3I_cjs.EDGE_INDEX_TYPE_MARKER
951
951
  );
952
952
  return edgeIndexes.map((index) => {
953
953
  const propsColumn = drizzleOrm.sql`${table.props}`;
@@ -1060,7 +1060,7 @@ function assertNonEmpty2(values, label) {
1060
1060
 
1061
1061
  // src/indexes/profiler.ts
1062
1062
  function toDeclaredIndex(index) {
1063
- if (index.__type === chunkFQCQM3KG_cjs.NODE_INDEX_TYPE_MARKER) {
1063
+ if (index.__type === chunk3JK66E3I_cjs.NODE_INDEX_TYPE_MARKER) {
1064
1064
  return toDeclaredNodeIndex(index);
1065
1065
  }
1066
1066
  return toDeclaredEdgeIndex(index);
@@ -1127,5 +1127,5 @@ exports.notWhere = notWhere;
1127
1127
  exports.orWhere = orWhere;
1128
1128
  exports.toDeclaredIndex = toDeclaredIndex;
1129
1129
  exports.toDeclaredIndexes = toDeclaredIndexes;
1130
- //# sourceMappingURL=chunk-2X7P7AD5.cjs.map
1131
- //# sourceMappingURL=chunk-2X7P7AD5.cjs.map
1130
+ //# sourceMappingURL=chunk-PEE4EWXZ.cjs.map
1131
+ //# sourceMappingURL=chunk-PEE4EWXZ.cjs.map