@khoralabs/chat 0.1.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.
- package/README.md +7 -0
- package/dist/domain.d.ts +10 -0
- package/dist/domain.d.ts.map +1 -0
- package/dist/errors.d.ts +20 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/events.d.ts +59 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/hash.d.ts +47 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/http/client.d.ts +21 -0
- package/dist/http/client.d.ts.map +1 -0
- package/dist/http/client.js +367 -0
- package/dist/http/config.d.ts +5 -0
- package/dist/http/config.d.ts.map +1 -0
- package/dist/http/index.d.ts +6 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +1084 -0
- package/dist/http/routes.d.ts +15 -0
- package/dist/http/routes.d.ts.map +1 -0
- package/dist/http/routes.js +645 -0
- package/dist/http/server.d.ts +19 -0
- package/dist/http/server.d.ts.map +1 -0
- package/dist/http/server.js +973 -0
- package/dist/http/service.d.ts +34 -0
- package/dist/http/service.d.ts.map +1 -0
- package/dist/http/service.js +501 -0
- package/dist/ids.d.ts +8 -0
- package/dist/ids.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +453 -0
- package/dist/lineage.d.ts +5 -0
- package/dist/lineage.d.ts.map +1 -0
- package/dist/persistence/core/index.d.ts +2 -0
- package/dist/persistence/core/index.d.ts.map +1 -0
- package/dist/persistence/core/persistence/base-persistence.d.ts +12 -0
- package/dist/persistence/core/persistence/base-persistence.d.ts.map +1 -0
- package/dist/persistence/core/persistence/helpers.d.ts +30 -0
- package/dist/persistence/core/persistence/helpers.d.ts.map +1 -0
- package/dist/persistence/core/persistence/index.d.ts +6 -0
- package/dist/persistence/core/persistence/index.d.ts.map +1 -0
- package/dist/persistence/core/persistence/index.js +1276 -0
- package/dist/persistence/core/persistence/memory-persistence.d.ts +55 -0
- package/dist/persistence/core/persistence/memory-persistence.d.ts.map +1 -0
- package/dist/persistence/core/persistence/signed-persistence.d.ts +18 -0
- package/dist/persistence/core/persistence/signed-persistence.d.ts.map +1 -0
- package/dist/persistence/core/persistence/types.d.ts +210 -0
- package/dist/persistence/core/persistence/types.d.ts.map +1 -0
- package/dist/persistence/sqlite/index.d.ts +3 -0
- package/dist/persistence/sqlite/index.d.ts.map +1 -0
- package/dist/persistence/sqlite/index.js +1544 -0
- package/dist/persistence/sqlite/persistence/persistence.d.ts +49 -0
- package/dist/persistence/sqlite/persistence/persistence.d.ts.map +1 -0
- package/dist/persistence/sqlite/persistence/schema.d.ts +4 -0
- package/dist/persistence/sqlite/persistence/schema.d.ts.map +1 -0
- package/dist/persistence/sqlite/persistence/streaming.d.ts +27 -0
- package/dist/persistence/sqlite/persistence/streaming.d.ts.map +1 -0
- package/dist/persistence/testing/index.d.ts +2 -0
- package/dist/persistence/testing/index.d.ts.map +1 -0
- package/dist/persistence/testing/index.js +689 -0
- package/dist/persistence/testing/persistence/contract.d.ts +3 -0
- package/dist/persistence/testing/persistence/contract.d.ts.map +1 -0
- package/dist/persistence/turso-serverless/index.d.ts +10 -0
- package/dist/persistence/turso-serverless/index.d.ts.map +1 -0
- package/dist/persistence/turso-serverless/index.js +1812 -0
- package/dist/persistence/turso-serverless/persistence/local-sqlite.d.ts +5 -0
- package/dist/persistence/turso-serverless/persistence/local-sqlite.d.ts.map +1 -0
- package/dist/persistence/turso-serverless/persistence/persistence.d.ts +49 -0
- package/dist/persistence/turso-serverless/persistence/persistence.d.ts.map +1 -0
- package/dist/persistence/turso-serverless/persistence/schema.d.ts +4 -0
- package/dist/persistence/turso-serverless/persistence/schema.d.ts.map +1 -0
- package/dist/persistence/turso-serverless/persistence/sql.d.ts +20 -0
- package/dist/persistence/turso-serverless/persistence/sql.d.ts.map +1 -0
- package/dist/persistence/turso-serverless/persistence/sql.js +53 -0
- package/dist/persistence/turso-serverless/persistence/streaming.d.ts +27 -0
- package/dist/persistence/turso-serverless/persistence/streaming.d.ts.map +1 -0
- package/dist/service.d.ts +49 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/stream.d.ts +32 -0
- package/dist/stream.d.ts.map +1 -0
- package/dist/types.d.ts +201 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/validation.d.ts +4 -0
- package/dist/validation.d.ts.map +1 -0
- package/package.json +104 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import { BaseChatPersistence } from "@khoralabs/chat/persistence";
|
|
3
|
+
import type { AddChannelMemberInput, AddThreadParticipantInput, AppendPostInput, AppendPostResult, Channel, ChatAclEvent, ChatPersistence, CreateChannelInput, CreateThreadInput, DeletePostInput, EditPostInput, EditPostResult, ListPostsInput, ListThreadsInput, Post, PostPage, PostVersion, RemoveChannelMemberInput, RemoveThreadParticipantInput, ScopeRef, Thread, ThreadHead, ThreadPage, ThreadTip } from "../../../domain.js";
|
|
4
|
+
export declare class SqliteChatPersistence extends BaseChatPersistence implements ChatPersistence {
|
|
5
|
+
private readonly db;
|
|
6
|
+
constructor(db: Database);
|
|
7
|
+
private getPostVersionSync;
|
|
8
|
+
createChannel(input: CreateChannelInput): Promise<Channel>;
|
|
9
|
+
createThread(input: CreateThreadInput): Promise<Thread>;
|
|
10
|
+
getChannel(id: string): Promise<Channel | null>;
|
|
11
|
+
getThread(id: string): Promise<Thread | null>;
|
|
12
|
+
getPost(id: string): Promise<Post | null>;
|
|
13
|
+
getPostVersion(id: string): Promise<PostVersion | null>;
|
|
14
|
+
getThreadHead(threadId: string, headId?: string): Promise<ThreadHead | null>;
|
|
15
|
+
getThreadTip(threadId: string): Promise<ThreadTip | null>;
|
|
16
|
+
listThreads(input: ListThreadsInput): Promise<ThreadPage>;
|
|
17
|
+
private listThreadRows;
|
|
18
|
+
listPosts(input: ListPostsInput): Promise<PostPage>;
|
|
19
|
+
appendPost(input: AppendPostInput): Promise<AppendPostResult>;
|
|
20
|
+
editPost(input: EditPostInput): Promise<EditPostResult>;
|
|
21
|
+
deletePost(input: DeletePostInput): Promise<Post>;
|
|
22
|
+
addChannelMember(input: AddChannelMemberInput): Promise<ChatAclEvent>;
|
|
23
|
+
removeChannelMember(input: RemoveChannelMemberInput): Promise<ChatAclEvent>;
|
|
24
|
+
addThreadParticipant(input: AddThreadParticipantInput): Promise<ChatAclEvent>;
|
|
25
|
+
removeThreadParticipant(input: RemoveThreadParticipantInput): Promise<ChatAclEvent>;
|
|
26
|
+
createThreadHead(input: {
|
|
27
|
+
threadId: string;
|
|
28
|
+
name: string;
|
|
29
|
+
headPostVersionId: string;
|
|
30
|
+
}): Promise<ThreadHead>;
|
|
31
|
+
listChannelMembers(channelId: string): Promise<ScopeRef[]>;
|
|
32
|
+
listThreadParticipants(threadId: string): Promise<ScopeRef[]>;
|
|
33
|
+
listAclEvents(input: {
|
|
34
|
+
channelId?: string;
|
|
35
|
+
threadId?: string;
|
|
36
|
+
limit?: number;
|
|
37
|
+
}): Promise<ChatAclEvent[]>;
|
|
38
|
+
private latestAclEventId;
|
|
39
|
+
private insertAclEvent;
|
|
40
|
+
listPostStreamEvents(postId: string): Promise<import("../../../types.js").PostStreamEvent[]>;
|
|
41
|
+
startStreamedPost(input: import("../../../domain.js").StartStreamedPostInput): Promise<import("@khoralabs/chat/persistence").StartStreamedPostResult>;
|
|
42
|
+
applyPostDelta(input: import("../../../domain.js").ApplyPostDeltaInput): Promise<import("@khoralabs/chat/persistence").ApplyPostDeltaResult>;
|
|
43
|
+
completeStreamedPost(input: import("../../../domain.js").CompleteStreamedPostInput): Promise<import("@khoralabs/chat/persistence").CompleteStreamedPostResult>;
|
|
44
|
+
abortStreamedPost(input: import("../../../domain.js").AbortStreamedPostInput): Promise<import("@khoralabs/chat/persistence").AbortStreamedPostResult>;
|
|
45
|
+
rebuildStreamedPostCache(postId: string): Promise<import("../../../types.js").StreamingPost>;
|
|
46
|
+
setPostVersionSignature(versionId: string, signature: import("../../../domain.js").SignedEnvelope): Promise<void>;
|
|
47
|
+
}
|
|
48
|
+
export declare function createSqliteChatPersistence(db: Database): SqliteChatPersistence;
|
|
49
|
+
//# sourceMappingURL=persistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../../src/persistence/sqlite/persistence/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type Database as DatabaseType } from "bun:sqlite";
|
|
2
|
+
export declare function ensureChatSqliteSchema(db: DatabaseType, busyTimeoutMs?: number): void;
|
|
3
|
+
export declare function createChatDatabase(path?: ":memory:" | string): DatabaseType;
|
|
4
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/persistence/sqlite/persistence/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,QAAQ,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AA0HrE,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,YAAY,EAAE,aAAa,SAAO,GAAG,IAAI,CAoBnF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,UAAU,GAAG,MAAmB,GAAG,YAAY,CAIvF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { AbortStreamedPostInput, AbortStreamedPostResult, ApplyPostDeltaInput, ApplyPostDeltaResult, CompleteStreamedPostInput, CompleteStreamedPostResult, Post, PostStatus, PostStreamEvent, PostVersion, StartStreamedPostInput, StartStreamedPostResult } from "../../../domain.js";
|
|
3
|
+
export type PostRow = {
|
|
4
|
+
id: string;
|
|
5
|
+
thread_id: string;
|
|
6
|
+
post_index: number;
|
|
7
|
+
status: PostStatus;
|
|
8
|
+
stream_message: string | null;
|
|
9
|
+
stream_mentions: string | null;
|
|
10
|
+
stream_model: string | null;
|
|
11
|
+
stream_usage: string | null;
|
|
12
|
+
stream_author_scope_type: string | null;
|
|
13
|
+
stream_author_scope_id: string | null;
|
|
14
|
+
stream_revision: number;
|
|
15
|
+
completed_version_id: string | null;
|
|
16
|
+
created_at_ms: number;
|
|
17
|
+
updated_at_ms: number | null;
|
|
18
|
+
deleted_at_ms: number | null;
|
|
19
|
+
};
|
|
20
|
+
export declare function postFromRow(row: PostRow, getVersion: (versionId: string) => PostVersion | null): Post | null;
|
|
21
|
+
export declare function sqliteListPostStreamEvents(db: Database, postId: string): PostStreamEvent[];
|
|
22
|
+
export declare function sqliteStartStreamedPost(db: Database, input: StartStreamedPostInput, getVersion: (versionId: string) => PostVersion | null): StartStreamedPostResult;
|
|
23
|
+
export declare function sqliteApplyPostDelta(db: Database, input: ApplyPostDeltaInput, getVersion: (versionId: string) => PostVersion | null): ApplyPostDeltaResult;
|
|
24
|
+
export declare function sqliteCompleteStreamedPost(db: Database, input: CompleteStreamedPostInput): CompleteStreamedPostResult;
|
|
25
|
+
export declare function sqliteAbortStreamedPost(db: Database, input: AbortStreamedPostInput, getVersion: (versionId: string) => PostVersion | null): AbortStreamedPostResult;
|
|
26
|
+
export declare function sqliteRebuildStreamedPostCache(db: Database, postId: string, _getVersion: (versionId: string) => PostVersion | null): import("../../../types.js").StreamingPost;
|
|
27
|
+
//# sourceMappingURL=streaming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../../../src/persistence/sqlite/persistence/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAE1B,IAAI,EAEJ,UAAU,EACV,eAAe,EAEf,WAAW,EAEX,sBAAsB,EACtB,uBAAuB,EAExB,MAAM,oBAAoB,CAAC;AAa5B,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAkBF,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,GACpD,IAAI,GAAG,IAAI,CA2Cb;AAiDD,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,CAkC1F;AAED,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,sBAAsB,EAC7B,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,GACpD,uBAAuB,CA+EzB;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,mBAAmB,EAC1B,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,GACpD,oBAAoB,CA+EtB;AAED,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,yBAAyB,GAC/B,0BAA0B,CA+K5B;AAED,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,sBAAsB,EAC7B,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,GACpD,uBAAuB,CA8BzB;AAED,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,6CAmCvD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/persistence/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC"}
|