@sema-agent/server 1.189.0 → 1.191.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 +2 -2
- package/deploy/sema-up/README.md +1 -1
- package/deploy/sema-up/chart/templates/server-v4pro.yaml +10 -0
- package/deploy/sema-up/chart/templates/server.yaml +11 -0
- package/deploy/sema-up/chart/values.yaml +10 -0
- package/deploy/sema-up/cluster-up.sh +1 -1
- package/deploy/sema-up/machines.example.yaml +2 -2
- package/deploy/sema-up/sema-up.sh +1 -1
- package/deploy/sema-up/stack/compose.yaml +7 -0
- package/dist/budget.d.ts.map +1 -1
- package/dist/budget.js +5 -0
- package/dist/budget.js.map +1 -1
- package/dist/capabilities/sandbox-file-send.d.ts +2 -1
- package/dist/capabilities/sandbox-file-send.d.ts.map +1 -1
- package/dist/capabilities/sandbox-file-send.js +1 -1
- package/dist/capabilities/sandbox-file-send.js.map +1 -1
- package/dist/capabilities/scenarios.d.ts +2 -1
- package/dist/capabilities/scenarios.d.ts.map +1 -1
- package/dist/capabilities/scenarios.js +5 -1
- package/dist/capabilities/scenarios.js.map +1 -1
- package/dist/capabilities/send-user-file-tool.d.ts +11 -1
- package/dist/capabilities/send-user-file-tool.d.ts.map +1 -1
- package/dist/capabilities/send-user-file-tool.js +14 -0
- package/dist/capabilities/send-user-file-tool.js.map +1 -1
- package/dist/capabilities/tool-defer.d.ts +4 -0
- package/dist/capabilities/tool-defer.d.ts.map +1 -0
- package/dist/capabilities/tool-defer.js +7 -0
- package/dist/capabilities/tool-defer.js.map +1 -0
- package/dist/config-provider.d.ts.map +1 -1
- package/dist/config-provider.js +3 -0
- package/dist/config-provider.js.map +1 -1
- package/dist/config.d.ts +11 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +63 -9
- package/dist/config.js.map +1 -1
- package/dist/env-facts.d.ts +5 -0
- package/dist/env-facts.d.ts.map +1 -1
- package/dist/env-facts.js +23 -0
- package/dist/env-facts.js.map +1 -1
- package/dist/http/server.d.ts +3 -0
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +96 -3
- package/dist/http/server.js.map +1 -1
- package/dist/main.js +62 -14
- package/dist/main.js.map +1 -1
- package/dist/plugins/pg-file-snapshot-store.d.ts +1 -0
- package/dist/plugins/pg-file-snapshot-store.d.ts.map +1 -1
- package/dist/plugins/pg-file-snapshot-store.js +7 -0
- package/dist/plugins/pg-file-snapshot-store.js.map +1 -1
- package/dist/plugins/pg-pool.d.ts.map +1 -1
- package/dist/plugins/pg-pool.js +15 -0
- package/dist/plugins/pg-pool.js.map +1 -1
- package/dist/plugins/send-file-ledger.d.ts +64 -0
- package/dist/plugins/send-file-ledger.d.ts.map +1 -0
- package/dist/plugins/send-file-ledger.js +142 -0
- package/dist/plugins/send-file-ledger.js.map +1 -0
- package/dist/plugins/send-user-file.d.ts +6 -2
- package/dist/plugins/send-user-file.d.ts.map +1 -1
- package/dist/plugins/send-user-file.js +38 -10
- package/dist/plugins/send-user-file.js.map +1 -1
- package/dist/plugins/store-backend.d.ts +3 -0
- package/dist/plugins/store-backend.d.ts.map +1 -1
- package/dist/plugins/store-backend.js +7 -0
- package/dist/plugins/store-backend.js.map +1 -1
- package/dist/plugins/tidb-file-snapshot-store.d.ts +1 -0
- package/dist/plugins/tidb-file-snapshot-store.d.ts.map +1 -1
- package/dist/plugins/tidb-file-snapshot-store.js +7 -0
- package/dist/plugins/tidb-file-snapshot-store.js.map +1 -1
- package/dist/plugins/tidb-pool.d.ts.map +1 -1
- package/dist/plugins/tidb-pool.js +15 -0
- package/dist/plugins/tidb-pool.js.map +1 -1
- package/dist/run-local.d.ts.map +1 -1
- package/dist/run-local.js +2 -1
- package/dist/run-local.js.map +1 -1
- package/dist/security.d.ts +2 -0
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +20 -3
- package/dist/security.js.map +1 -1
- package/dist/sema-registry.d.ts +1 -0
- package/dist/sema-registry.d.ts.map +1 -1
- package/dist/sema-registry.js +5 -2
- package/dist/sema-registry.js.map +1 -1
- package/dist/task-settings.d.ts +9 -4
- package/dist/task-settings.d.ts.map +1 -1
- package/dist/task-settings.js +29 -8
- package/dist/task-settings.js.map +1 -1
- package/dist/tool-approval.d.ts +41 -0
- package/dist/tool-approval.d.ts.map +1 -0
- package/dist/tool-approval.js +127 -0
- package/dist/tool-approval.js.map +1 -0
- package/dist/trace/project.d.ts +13 -0
- package/dist/trace/project.d.ts.map +1 -1
- package/dist/trace/project.js +21 -0
- package/dist/trace/project.js.map +1 -1
- package/package.json +2 -2
|
@@ -6,6 +6,7 @@ export declare class PgFileSnapshotStore implements FileSnapshotStore {
|
|
|
6
6
|
private readonly bounds;
|
|
7
7
|
private readonly inFlight;
|
|
8
8
|
private readonly blobs;
|
|
9
|
+
onSkippedVanished: ((count: number) => void | Promise<void>) | undefined;
|
|
9
10
|
constructor(pool: Pool, blobBackend?: BlobBackend, bounds?: FileSnapshotBounds);
|
|
10
11
|
private putBlobRow;
|
|
11
12
|
putBlob(hash: string, bytes: Uint8Array): Promise<FileSnapshotResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-file-snapshot-store.d.ts","sourceRoot":"","sources":["../../src/plugins/pg-file-snapshot-store.ts"],"names":[],"mappings":"AAOA,OAAO,EAA2D,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAExL,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErE,qBAAa,mBAAoB,YAAW,iBAAiB;
|
|
1
|
+
{"version":3,"file":"pg-file-snapshot-store.d.ts","sourceRoot":"","sources":["../../src/plugins/pg-file-snapshot-store.ts"],"names":[],"mappings":"AAOA,OAAO,EAA2D,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAExL,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErE,qBAAa,mBAAoB,YAAW,iBAAiB;IAW/C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAmC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAV3F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAI9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IAKpC,iBAAiB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAa;gBACxD,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,WAAW,EAAmB,MAAM,GAAE,kBAA4C;YAO3H,UAAU;IAWlB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiBrE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmDxH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmCrK,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAcvH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMjD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAO1C,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAQ/E,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAMtD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAOhD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAYxD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YASvC,aAAa;IAWrB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;YAI3B,EAAE;CAkBjB"}
|
|
@@ -6,6 +6,7 @@ export class PgFileSnapshotStore {
|
|
|
6
6
|
bounds;
|
|
7
7
|
inFlight = new Set();
|
|
8
8
|
blobs;
|
|
9
|
+
onSkippedVanished = undefined;
|
|
9
10
|
constructor(pool, blobBackend, bounds = DEFAULT_SNAPSHOT_BOUNDS) {
|
|
10
11
|
this.pool = pool;
|
|
11
12
|
this.bounds = bounds;
|
|
@@ -45,6 +46,12 @@ export class PgFileSnapshotStore {
|
|
|
45
46
|
}
|
|
46
47
|
if (!cap.ok)
|
|
47
48
|
return { ok: false, error: cap.error };
|
|
49
|
+
if (cap.skippedVanished > 0 && this.onSkippedVanished) {
|
|
50
|
+
try {
|
|
51
|
+
void Promise.resolve(this.onSkippedVanished(cap.skippedVanished)).catch(() => { });
|
|
52
|
+
}
|
|
53
|
+
catch { }
|
|
54
|
+
}
|
|
48
55
|
await this.tx(async (c) => {
|
|
49
56
|
const exists = await c.query("SELECT 1 FROM snapshot_manifest WHERE scope = $1 AND snap_key = $2 LIMIT 1", [scope, key]);
|
|
50
57
|
if (exists.rows[0])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-file-snapshot-store.js","sourceRoot":"","sources":["../../src/plugins/pg-file-snapshot-store.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,uBAAuB,EAA+F,MAAM,kBAAkB,CAAC;AACxL,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAoB,MAAM,mBAAmB,CAAC;AAErE,MAAM,OAAO,mBAAmB;
|
|
1
|
+
{"version":3,"file":"pg-file-snapshot-store.js","sourceRoot":"","sources":["../../src/plugins/pg-file-snapshot-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-pool.d.ts","sourceRoot":"","sources":["../../src/plugins/pg-pool.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAalD,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"pg-pool.d.ts","sourceRoot":"","sources":["../../src/plugins/pg-pool.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAalD,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EA0NjD,CAAC;AAaF,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAU/G;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAElE;AAiBD,wBAAsB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCjE"}
|
package/dist/plugins/pg-pool.js
CHANGED
|
@@ -93,6 +93,21 @@ export const PG_SCHEMA_STATEMENTS = [
|
|
|
93
93
|
created_at TIMESTAMPTZ(3) NOT NULL,
|
|
94
94
|
PRIMARY KEY (session_id, tool_name)
|
|
95
95
|
)`,
|
|
96
|
+
`CREATE TABLE IF NOT EXISTS sendfile_link (
|
|
97
|
+
id VARCHAR(64) NOT NULL,
|
|
98
|
+
scope VARCHAR(190) NOT NULL,
|
|
99
|
+
bucket VARCHAR(190) NOT NULL,
|
|
100
|
+
object_key VARCHAR(512) NOT NULL,
|
|
101
|
+
track VARCHAR(16) NOT NULL,
|
|
102
|
+
filename VARCHAR(190) NOT NULL,
|
|
103
|
+
byte_len BIGINT NOT NULL,
|
|
104
|
+
ttl_sec BIGINT NOT NULL,
|
|
105
|
+
task_id VARCHAR(64),
|
|
106
|
+
session_id VARCHAR(64),
|
|
107
|
+
created_at TIMESTAMPTZ(3) NOT NULL,
|
|
108
|
+
PRIMARY KEY (id)
|
|
109
|
+
)`,
|
|
110
|
+
`CREATE INDEX IF NOT EXISTS idx_sendfile_link_scope ON sendfile_link (scope, id)`,
|
|
96
111
|
`CREATE TABLE IF NOT EXISTS session_policy (
|
|
97
112
|
policy_key CHAR(64) NOT NULL,
|
|
98
113
|
session_id VARCHAR(64) NOT NULL,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg-pool.js","sourceRoot":"","sources":["../../src/plugins/pg-pool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pg-pool.js","sourceRoot":"","sources":["../../src/plugins/pg-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { Pool as MysqlPool } from "mysql2/promise";
|
|
2
|
+
import type { Pool as PgPool } from "pg";
|
|
3
|
+
import type { IssuedFileLink } from "./send-user-file.js";
|
|
4
|
+
export declare const SENDFILE_SINGLE_USER_SCOPE = "_";
|
|
5
|
+
export interface SendFileLedgerEntry {
|
|
6
|
+
id: string;
|
|
7
|
+
scope: string;
|
|
8
|
+
bucket: string;
|
|
9
|
+
objectKey: string;
|
|
10
|
+
track: "public" | "presigned";
|
|
11
|
+
filename: string;
|
|
12
|
+
size: number;
|
|
13
|
+
ttlSec: number;
|
|
14
|
+
taskId?: string;
|
|
15
|
+
sessionId?: string;
|
|
16
|
+
createdAt: number;
|
|
17
|
+
}
|
|
18
|
+
export interface SendFileLedger {
|
|
19
|
+
record(entry: SendFileLedgerEntry): Promise<void>;
|
|
20
|
+
listByScope(scope: string, limit: number, beforeId?: string): Promise<SendFileLedgerEntry[]>;
|
|
21
|
+
}
|
|
22
|
+
export declare class TiDBSendFileLedger implements SendFileLedger {
|
|
23
|
+
private readonly pool;
|
|
24
|
+
constructor(pool: MysqlPool);
|
|
25
|
+
record(entry: SendFileLedgerEntry): Promise<void>;
|
|
26
|
+
listByScope(scope: string, limit: number, beforeId?: string): Promise<SendFileLedgerEntry[]>;
|
|
27
|
+
}
|
|
28
|
+
export declare class PgSendFileLedger implements SendFileLedger {
|
|
29
|
+
private readonly pool;
|
|
30
|
+
constructor(pool: PgPool);
|
|
31
|
+
record(entry: SendFileLedgerEntry): Promise<void>;
|
|
32
|
+
listByScope(scope: string, limit: number, beforeId?: string): Promise<SendFileLedgerEntry[]>;
|
|
33
|
+
}
|
|
34
|
+
export declare class MemorySendFileLedger implements SendFileLedger {
|
|
35
|
+
private readonly byScope;
|
|
36
|
+
record(entry: SendFileLedgerEntry): Promise<void>;
|
|
37
|
+
listByScope(scope: string, limit: number, beforeId?: string): Promise<SendFileLedgerEntry[]>;
|
|
38
|
+
}
|
|
39
|
+
export declare class FileSendFileLedger implements SendFileLedger {
|
|
40
|
+
private readonly path;
|
|
41
|
+
private readonly mem;
|
|
42
|
+
private log;
|
|
43
|
+
constructor(root: string);
|
|
44
|
+
record(entry: SendFileLedgerEntry): Promise<void>;
|
|
45
|
+
listByScope(scope: string, limit: number, beforeId?: string): Promise<SendFileLedgerEntry[]>;
|
|
46
|
+
dispose(): void;
|
|
47
|
+
}
|
|
48
|
+
export interface LedgerRecordingDeps {
|
|
49
|
+
ledger: SendFileLedger;
|
|
50
|
+
deleteObject: (bucket: string, key: string) => Promise<void>;
|
|
51
|
+
warn?: (msg: string, meta?: Record<string, unknown>) => void;
|
|
52
|
+
now?: () => number;
|
|
53
|
+
newId?: () => string;
|
|
54
|
+
}
|
|
55
|
+
export declare function withLedgerRecording(send: (path: string, ctx: {
|
|
56
|
+
taskId?: string;
|
|
57
|
+
sessionId?: string;
|
|
58
|
+
principal?: string;
|
|
59
|
+
}) => Promise<IssuedFileLink>, deps: LedgerRecordingDeps): (path: string, ctx: {
|
|
60
|
+
taskId?: string;
|
|
61
|
+
sessionId?: string;
|
|
62
|
+
principal?: string;
|
|
63
|
+
}) => Promise<IssuedFileLink>;
|
|
64
|
+
//# sourceMappingURL=send-file-ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-file-ledger.d.ts","sourceRoot":"","sources":["../../src/plugins/send-file-ledger.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAiB,MAAM,gBAAgB,CAAC;AACvE,OAAO,KAAK,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,MAAM,WAAW,mBAAmB;IAElC,EAAE,EAAE,MAAM,CAAC;IAEX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAE7B,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGlD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;CAC9F;AAID,qBAAa,kBAAmB,YAAW,cAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,SAAS;IAEtC,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAQnG;AAID,qBAAa,gBAAiB,YAAW,cAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,MAAM;IAEnC,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAQnG;AAkCD,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuD;IAEzE,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IASjD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;CASnG;AAID,qBAAa,kBAAmB,YAAW,cAAc;IACvD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA8B;IAClD,OAAO,CAAC,GAAG,CAAwB;gBAEvB,IAAI,EAAE,MAAM;IAWlB,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAK5F,OAAO,IAAI,IAAI;CAQhB;AAID,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,cAAc,CAAC;IAEvB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAQD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,cAAc,CAAC,EACjH,IAAI,EAAE,mBAAmB,GACxB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,cAAc,CAAC,CA6C7G"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { AppendLog, ensureDir, readJsonlRecords, uuidv7 } from "@sema-agent/core";
|
|
3
|
+
export const SENDFILE_SINGLE_USER_SCOPE = "_";
|
|
4
|
+
export class TiDBSendFileLedger {
|
|
5
|
+
pool;
|
|
6
|
+
constructor(pool) {
|
|
7
|
+
this.pool = pool;
|
|
8
|
+
}
|
|
9
|
+
async record(entry) {
|
|
10
|
+
await this.pool.query("INSERT INTO sendfile_link (id, scope, bucket, object_key, track, filename, byte_len, ttl_sec, task_id, session_id, created_at) " +
|
|
11
|
+
"VALUES (?,?,?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE id = id", [entry.id, entry.scope, entry.bucket, entry.objectKey, entry.track, entry.filename, entry.size, entry.ttlSec, entry.taskId ?? null, entry.sessionId ?? null, new Date(entry.createdAt)]);
|
|
12
|
+
}
|
|
13
|
+
async listByScope(scope, limit, beforeId) {
|
|
14
|
+
const [rows] = await this.pool.query("SELECT id, scope, bucket, object_key, track, filename, byte_len, ttl_sec, task_id, session_id, created_at FROM sendfile_link " +
|
|
15
|
+
`WHERE scope = ?${beforeId !== undefined ? " AND id < ?" : ""} ORDER BY id DESC LIMIT ?`, beforeId !== undefined ? [scope, beforeId, limit] : [scope, limit]);
|
|
16
|
+
return rows.map((r) => rowToEntry(r));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export class PgSendFileLedger {
|
|
20
|
+
pool;
|
|
21
|
+
constructor(pool) {
|
|
22
|
+
this.pool = pool;
|
|
23
|
+
}
|
|
24
|
+
async record(entry) {
|
|
25
|
+
await this.pool.query("INSERT INTO sendfile_link (id, scope, bucket, object_key, track, filename, byte_len, ttl_sec, task_id, session_id, created_at) " +
|
|
26
|
+
"VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11) ON CONFLICT (id) DO NOTHING", [entry.id, entry.scope, entry.bucket, entry.objectKey, entry.track, entry.filename, entry.size, entry.ttlSec, entry.taskId ?? null, entry.sessionId ?? null, new Date(entry.createdAt)]);
|
|
27
|
+
}
|
|
28
|
+
async listByScope(scope, limit, beforeId) {
|
|
29
|
+
const res = await this.pool.query("SELECT id, scope, bucket, object_key, track, filename, byte_len, ttl_sec, task_id, session_id, created_at FROM sendfile_link " +
|
|
30
|
+
`WHERE scope = $1${beforeId !== undefined ? " AND id < $2" : ""} ORDER BY id DESC LIMIT ${beforeId !== undefined ? "$3" : "$2"}`, beforeId !== undefined ? [scope, beforeId, limit] : [scope, limit]);
|
|
31
|
+
return res.rows.map(rowToEntry);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function rowToEntry(r) {
|
|
35
|
+
return {
|
|
36
|
+
id: String(r.id),
|
|
37
|
+
scope: String(r.scope),
|
|
38
|
+
bucket: String(r.bucket),
|
|
39
|
+
objectKey: String(r.object_key),
|
|
40
|
+
track: r.track === "presigned" ? "presigned" : "public",
|
|
41
|
+
filename: String(r.filename),
|
|
42
|
+
size: Number(r.byte_len),
|
|
43
|
+
ttlSec: Number(r.ttl_sec),
|
|
44
|
+
...(r.task_id == null ? {} : { taskId: String(r.task_id) }),
|
|
45
|
+
...(r.session_id == null ? {} : { sessionId: String(r.session_id) }),
|
|
46
|
+
createdAt: new Date(r.created_at).getTime(),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export class MemorySendFileLedger {
|
|
50
|
+
byScope = new Map();
|
|
51
|
+
async record(entry) {
|
|
52
|
+
let m = this.byScope.get(entry.scope);
|
|
53
|
+
if (!m) {
|
|
54
|
+
m = new Map();
|
|
55
|
+
this.byScope.set(entry.scope, m);
|
|
56
|
+
}
|
|
57
|
+
if (!m.has(entry.id))
|
|
58
|
+
m.set(entry.id, { ...entry });
|
|
59
|
+
}
|
|
60
|
+
async listByScope(scope, limit, beforeId) {
|
|
61
|
+
const m = this.byScope.get(scope);
|
|
62
|
+
if (!m)
|
|
63
|
+
return [];
|
|
64
|
+
return [...m.values()]
|
|
65
|
+
.filter((e) => beforeId === undefined || e.id < beforeId)
|
|
66
|
+
.sort((a, b) => (a.id < b.id ? 1 : a.id > b.id ? -1 : 0))
|
|
67
|
+
.slice(0, Math.max(0, limit))
|
|
68
|
+
.map((e) => ({ ...e }));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export class FileSendFileLedger {
|
|
72
|
+
path;
|
|
73
|
+
mem = new MemorySendFileLedger();
|
|
74
|
+
log;
|
|
75
|
+
constructor(root) {
|
|
76
|
+
const dir = join(root, "sendfile-ledger");
|
|
77
|
+
ensureDir(dir);
|
|
78
|
+
this.path = join(dir, "links.jsonl");
|
|
79
|
+
for (const r of readJsonlRecords(this.path)) {
|
|
80
|
+
if (!r || typeof r.id !== "string" || typeof r.scope !== "string" || typeof r.objectKey !== "string")
|
|
81
|
+
continue;
|
|
82
|
+
void this.mem.record(r);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async record(entry) {
|
|
86
|
+
this.log ??= new AppendLog(this.path);
|
|
87
|
+
this.log.append(entry, true);
|
|
88
|
+
await this.mem.record(entry);
|
|
89
|
+
}
|
|
90
|
+
listByScope(scope, limit, beforeId) {
|
|
91
|
+
return this.mem.listByScope(scope, limit, beforeId);
|
|
92
|
+
}
|
|
93
|
+
dispose() {
|
|
94
|
+
try {
|
|
95
|
+
this.log?.close();
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
}
|
|
99
|
+
this.log = undefined;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
export function withLedgerRecording(send, deps) {
|
|
103
|
+
return async (path, ctx) => {
|
|
104
|
+
const link = await send(path, ctx);
|
|
105
|
+
try {
|
|
106
|
+
await deps.ledger.record({
|
|
107
|
+
id: deps.newId ? deps.newId() : uuidv7(),
|
|
108
|
+
scope: link.scope ?? SENDFILE_SINGLE_USER_SCOPE,
|
|
109
|
+
bucket: link.bucket,
|
|
110
|
+
objectKey: link.key,
|
|
111
|
+
track: link.track,
|
|
112
|
+
filename: link.filename,
|
|
113
|
+
size: link.size,
|
|
114
|
+
ttlSec: link.ttlSec,
|
|
115
|
+
...(ctx.taskId !== undefined ? { taskId: ctx.taskId } : {}),
|
|
116
|
+
...(ctx.sessionId !== undefined ? { sessionId: ctx.sessionId } : {}),
|
|
117
|
+
createdAt: deps.now ? deps.now() : Date.now(),
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
let reclaimed = true;
|
|
122
|
+
try {
|
|
123
|
+
try {
|
|
124
|
+
await deps.deleteObject(link.bucket, link.key);
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
await deps.deleteObject(link.bucket, link.key);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (de) {
|
|
131
|
+
reclaimed = false;
|
|
132
|
+
deps.warn?.("sendfile_ledger_reclaim_failed", { bucket: link.bucket, key: link.key, err: de instanceof Error ? de.message : String(de) });
|
|
133
|
+
}
|
|
134
|
+
const cause = e instanceof Error ? e.message : String(e);
|
|
135
|
+
throw new Error(reclaimed
|
|
136
|
+
? `SendUserFile ledger record failed — file not delivered (uploaded object reclaimed): ${cause}`
|
|
137
|
+
: `SendUserFile ledger record failed — file not delivered; reclaim FAILED — orphan object at ${link.bucket}/${link.key}, needs manual cleanup: ${cause}`);
|
|
138
|
+
}
|
|
139
|
+
return link;
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=send-file-ledger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-file-ledger.js","sourceRoot":"","sources":["../../src/plugins/send-file-ledger.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAMlF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AA6B9C,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,IAAe;QAAf,SAAI,GAAJ,IAAI,CAAW;IAAG,CAAC;IAEhD,KAAK,CAAC,MAAM,CAAC,KAA0B;QACrC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CACnB,iIAAiI;YAC/H,gEAAgE,EAClE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CACxL,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,KAAa,EAAE,QAAiB;QAC/D,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAClC,+HAA+H;YAC7H,kBAAkB,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,2BAA2B,EAC1F,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CACnE,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAW,CAAC,CAAC,CAAC;IAClD,CAAC;CACF;AAID,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;IAE7C,KAAK,CAAC,MAAM,CAAC,KAA0B;QACrC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CACnB,iIAAiI;YAC/H,yEAAyE,EAC3E,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CACxL,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,KAAa,EAAE,QAAiB;QAC/D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAC/B,+HAA+H;YAC7H,mBAAmB,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,2BAA2B,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAClI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CACnE,CAAC;QACF,OAAQ,GAAG,CAAC,IAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;CACF;AAgBD,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/B,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;QACvD,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5B,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QACzB,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QACpE,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;KAC5C,CAAC;AACJ,CAAC;AAID,MAAM,OAAO,oBAAoB;IACd,OAAO,GAAG,IAAI,GAAG,EAA4C,CAAC;IAE/E,KAAK,CAAC,MAAM,CAAC,KAA0B;QACrC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,KAAa,EAAE,QAAiB;QAC/D,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;aACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC;aACxD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACxD,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;CACF;AAID,MAAM,OAAO,kBAAkB;IACZ,IAAI,CAAS;IACb,GAAG,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC1C,GAAG,CAAwB;IAEnC,YAAY,IAAY;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAC1C,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,gBAAgB,CAAsB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAEjE,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;gBAAE,SAAS;YAC/G,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAA0B;QACrC,IAAI,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAA2C,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,KAAa,EAAE,QAAiB;QACzD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAGD,OAAO;QACL,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;IACvB,CAAC;CACF;AAmBD,MAAM,UAAU,mBAAmB,CACjC,IAAiH,EACjH,IAAyB;IAEzB,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACvB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;gBACxC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,0BAA0B;gBAC/C,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,GAAG;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;aAC9C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAQX,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjD,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,SAAS,GAAG,KAAK,CAAC;gBAClB,IAAI,CAAC,IAAI,EAAE,CAAC,gCAAgC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5I,CAAC;YACD,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,IAAI,KAAK,CACb,SAAS;gBACP,CAAC,CAAC,uFAAuF,KAAK,EAAE;gBAChG,CAAC,CAAC,6FAA6F,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,2BAA2B,KAAK,EAAE,CAC3J,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const PRESIGN_MAX_TTL_SEC = 604800;
|
|
2
|
+
export declare function scopeSegment(secretKey: string, scope: string | undefined): string;
|
|
2
3
|
export interface SendUserFileConfig {
|
|
3
4
|
endpoint: string;
|
|
4
5
|
publicEndpoint?: string;
|
|
@@ -19,6 +20,7 @@ export interface IssuedFileLink {
|
|
|
19
20
|
track: "public" | "presigned";
|
|
20
21
|
bucket: string;
|
|
21
22
|
key: string;
|
|
23
|
+
scope?: string;
|
|
22
24
|
}
|
|
23
25
|
export declare function sanitizeSendFileName(name: string | undefined): string;
|
|
24
26
|
export interface PreparedDirectUpload {
|
|
@@ -27,13 +29,15 @@ export interface PreparedDirectUpload {
|
|
|
27
29
|
finalize(size: number): IssuedFileLink;
|
|
28
30
|
}
|
|
29
31
|
export interface SendUserFileIssuer {
|
|
30
|
-
issue(bytes: Uint8Array, filename: string | undefined, ttlSec?: number): Promise<IssuedFileLink>;
|
|
31
|
-
prepareDirectUpload(filename: string | undefined, ttlSec?: number): PreparedDirectUpload;
|
|
32
|
+
issue(bytes: Uint8Array, filename: string | undefined, ttlSec?: number, scope?: string): Promise<IssuedFileLink>;
|
|
33
|
+
prepareDirectUpload(filename: string | undefined, ttlSec?: number, scope?: string): PreparedDirectUpload;
|
|
34
|
+
deleteObject(bucket: string, key: string): Promise<void>;
|
|
32
35
|
readonly publicEndpoint: string | undefined;
|
|
33
36
|
}
|
|
34
37
|
export declare function createSendUserFileIssuer(cfg: SendUserFileConfig, deps?: {
|
|
35
38
|
upload?: (bucket: string, key: string, bytes: Uint8Array) => Promise<void>;
|
|
36
39
|
verify?: (bucket: string, key: string, maxBytes: number) => Promise<number>;
|
|
40
|
+
remove?: (bucket: string, key: string) => Promise<void>;
|
|
37
41
|
now?: () => Date;
|
|
38
42
|
}): SendUserFileIssuer;
|
|
39
43
|
//# sourceMappingURL=send-user-file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-user-file.d.ts","sourceRoot":"","sources":["../../src/plugins/send-user-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"send-user-file.d.ts","sourceRoot":"","sources":["../../src/plugins/send-user-file.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAuB3C,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGjF;AAED,MAAM,WAAW,kBAAkB;IAEjC,QAAQ,EAAE,MAAM,CAAC;IAEjB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,YAAY,EAAE,MAAM,CAAC;IAErB,aAAa,EAAE,MAAM,CAAC;IAEtB,gBAAgB,EAAE,MAAM,CAAC;IAIzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IAGZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAiBrE;AAOD,MAAM,WAAW,oBAAoB;IAEnC,MAAM,EAAE,MAAM,CAAC;IAMf,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IAIjC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAGjH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAGzG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,kBAAkB,EACvB,IAAI,CAAC,EAAE;IAEL,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG3E,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5E,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,GACA,kBAAkB,CAqKpB"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
+
import { createHmac } from "node:crypto";
|
|
1
2
|
import { uuidv7 } from "@sema-agent/core";
|
|
2
3
|
import { presignS3Url } from "./s3-presign.js";
|
|
3
4
|
export const PRESIGN_MAX_TTL_SEC = 604_800;
|
|
5
|
+
export function scopeSegment(secretKey, scope) {
|
|
6
|
+
if (scope === undefined || scope === "")
|
|
7
|
+
return "_";
|
|
8
|
+
return createHmac("sha256", secretKey).update(`sendfile-scope:${scope}`).digest("hex").slice(0, 32);
|
|
9
|
+
}
|
|
4
10
|
export function sanitizeSendFileName(name) {
|
|
5
11
|
const base = (name ?? "").split(/[/\\]/).pop() ?? "";
|
|
6
12
|
let clean = base.replace(/[\u0000-\u001f\u007f\u200e\u200f\u202a-\u202e\u2066-\u2069]/g, "").replace(/^\.+/, "").trim();
|
|
@@ -36,7 +42,7 @@ export function createSendUserFileIssuer(cfg, deps) {
|
|
|
36
42
|
if (!res.ok)
|
|
37
43
|
throw new Error(`SendUserFile upload failed: ${res.status} ${res.statusText} (bucket=${bucket})`);
|
|
38
44
|
});
|
|
39
|
-
const issue = async (bytes, filename, ttlSec) => {
|
|
45
|
+
const issue = async (bytes, filename, ttlSec, scope) => {
|
|
40
46
|
if (cfg.publicEndpoint === undefined) {
|
|
41
47
|
throw new Error("SendUserFile is not configured for public links: set S3_PUBLIC_ENDPOINT (the S3/MinIO base URL users can reach; falls back to S3_ENDPOINT when that is already public)");
|
|
42
48
|
}
|
|
@@ -45,16 +51,18 @@ export function createSendUserFileIssuer(cfg, deps) {
|
|
|
45
51
|
throw new Error(`SendUserFile ttl must be a non-negative INTEGER of seconds (0 = permanent; SigV4 X-Amz-Expires is integer-only); got ${ttl}`);
|
|
46
52
|
const name = sanitizeSendFileName(filename);
|
|
47
53
|
const publicBase = cfg.publicEndpoint.replace(/\/+$/, "");
|
|
54
|
+
const seg = scopeSegment(cfg.secretKey, scope);
|
|
55
|
+
const scopeField = scope !== undefined && scope !== "" ? { scope } : {};
|
|
48
56
|
if (ttl === 0) {
|
|
49
|
-
const key = `${uuidv7()}/${name}`;
|
|
57
|
+
const key = `${seg}/${uuidv7()}/${name}`;
|
|
50
58
|
await upload(cfg.publicBucket, key, bytes);
|
|
51
59
|
const url = `${publicBase}/${cfg.publicBucket}/${key.split("/").map(encodeURIComponent).join("/")}`;
|
|
52
|
-
return { url, filename: name, size: bytes.byteLength, ttlSec: 0, track: "public", bucket: cfg.publicBucket, key };
|
|
60
|
+
return { url, filename: name, size: bytes.byteLength, ttlSec: 0, track: "public", bucket: cfg.publicBucket, key, ...scopeField };
|
|
53
61
|
}
|
|
54
62
|
if (ttl > PRESIGN_MAX_TTL_SEC) {
|
|
55
63
|
throw new Error(`SendUserFile ttl ${ttl}s exceeds the SigV4 presign ceiling (${PRESIGN_MAX_TTL_SEC}s = 7 days) — use ttl=0 for a permanent link`);
|
|
56
64
|
}
|
|
57
|
-
const key = `${cfg.privateKeyPrefix}${uuidv7()}/${name}`;
|
|
65
|
+
const key = `${cfg.privateKeyPrefix}${seg}/${uuidv7()}/${name}`;
|
|
58
66
|
await upload(cfg.privateBucket, key, bytes);
|
|
59
67
|
const url = presignS3Url({
|
|
60
68
|
endpoint: publicBase,
|
|
@@ -67,9 +75,9 @@ export function createSendUserFileIssuer(cfg, deps) {
|
|
|
67
75
|
expiresSec: ttl,
|
|
68
76
|
...(deps?.now !== undefined ? { now: deps.now() } : {}),
|
|
69
77
|
});
|
|
70
|
-
return { url, filename: name, size: bytes.byteLength, ttlSec: ttl, track: "presigned", bucket: cfg.privateBucket, key };
|
|
78
|
+
return { url, filename: name, size: bytes.byteLength, ttlSec: ttl, track: "presigned", bucket: cfg.privateBucket, key, ...scopeField };
|
|
71
79
|
};
|
|
72
|
-
const prepareDirectUpload = (filename, ttlSec) => {
|
|
80
|
+
const prepareDirectUpload = (filename, ttlSec, scope) => {
|
|
73
81
|
if (cfg.publicEndpoint === undefined) {
|
|
74
82
|
throw new Error("SendUserFile is not configured for public links: set S3_PUBLIC_ENDPOINT (the S3/MinIO base URL users can reach; falls back to S3_ENDPOINT when that is already public)");
|
|
75
83
|
}
|
|
@@ -83,7 +91,9 @@ export function createSendUserFileIssuer(cfg, deps) {
|
|
|
83
91
|
const publicBase = cfg.publicEndpoint.replace(/\/+$/, "");
|
|
84
92
|
const putBase = (cfg.sandboxPutEndpoint ?? cfg.publicEndpoint).replace(/\/+$/, "");
|
|
85
93
|
const bucket = ttl === 0 ? cfg.publicBucket : cfg.privateBucket;
|
|
86
|
-
const
|
|
94
|
+
const seg = scopeSegment(cfg.secretKey, scope);
|
|
95
|
+
const scopeField = scope !== undefined && scope !== "" ? { scope } : {};
|
|
96
|
+
const key = ttl === 0 ? `${seg}/${uuidv7()}/${name}` : `${cfg.privateKeyPrefix}${seg}/${uuidv7()}/${name}`;
|
|
87
97
|
const putUrl = presignS3Url({
|
|
88
98
|
endpoint: putBase,
|
|
89
99
|
bucket,
|
|
@@ -123,7 +133,7 @@ export function createSendUserFileIssuer(cfg, deps) {
|
|
|
123
133
|
const finalize = (size) => {
|
|
124
134
|
if (ttl === 0) {
|
|
125
135
|
const url = `${publicBase}/${bucket}/${key.split("/").map(encodeURIComponent).join("/")}`;
|
|
126
|
-
return { url, filename: name, size, ttlSec: 0, track: "public", bucket, key };
|
|
136
|
+
return { url, filename: name, size, ttlSec: 0, track: "public", bucket, key, ...scopeField };
|
|
127
137
|
}
|
|
128
138
|
const url = presignS3Url({
|
|
129
139
|
endpoint: publicBase,
|
|
@@ -136,10 +146,28 @@ export function createSendUserFileIssuer(cfg, deps) {
|
|
|
136
146
|
expiresSec: ttl,
|
|
137
147
|
...(deps?.now !== undefined ? { now: deps.now() } : {}),
|
|
138
148
|
});
|
|
139
|
-
return { url, filename: name, size, ttlSec: ttl, track: "presigned", bucket, key };
|
|
149
|
+
return { url, filename: name, size, ttlSec: ttl, track: "presigned", bucket, key, ...scopeField };
|
|
140
150
|
};
|
|
141
151
|
return { putUrl, verifySize, finalize };
|
|
142
152
|
};
|
|
143
|
-
|
|
153
|
+
const deleteObject = async (bucket, key) => {
|
|
154
|
+
if (deps?.remove)
|
|
155
|
+
return deps.remove(bucket, key);
|
|
156
|
+
const url = presignS3Url({
|
|
157
|
+
endpoint: cfg.endpoint,
|
|
158
|
+
bucket,
|
|
159
|
+
key,
|
|
160
|
+
method: "DELETE",
|
|
161
|
+
accessKey: cfg.accessKey,
|
|
162
|
+
secretKey: cfg.secretKey,
|
|
163
|
+
...(cfg.region !== undefined ? { region: cfg.region } : {}),
|
|
164
|
+
expiresSec: 60,
|
|
165
|
+
...(deps?.now !== undefined ? { now: deps.now() } : {}),
|
|
166
|
+
});
|
|
167
|
+
const res = await fetch(url, { method: "DELETE" });
|
|
168
|
+
if (!res.ok && res.status !== 404)
|
|
169
|
+
throw new Error(`SendUserFile object delete failed: ${res.status} ${res.statusText} (bucket=${bucket})`);
|
|
170
|
+
};
|
|
171
|
+
return { issue, prepareDirectUpload, deleteObject, publicEndpoint: cfg.publicEndpoint };
|
|
144
172
|
}
|
|
145
173
|
//# sourceMappingURL=send-user-file.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-user-file.js","sourceRoot":"","sources":["../../src/plugins/send-user-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"send-user-file.js","sourceRoot":"","sources":["../../src/plugins/send-user-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { FileRunStore } from "./file-run-store.js";
|
|
|
8
8
|
import { LocalCheckpointStore } from "./local-checkpoint-store.js";
|
|
9
9
|
import { FileResumeAnchorStore } from "./file-resume-anchor-store.js";
|
|
10
10
|
import { type ApprovalExemptionStore } from "./approval-exemption-store.js";
|
|
11
|
+
import { type SendFileLedger } from "./send-file-ledger.js";
|
|
11
12
|
import { TiDBResumeAnchorStore } from "./tidb-resume-anchor-store.js";
|
|
12
13
|
import { PgResumeAnchorStore } from "./pg-resume-anchor-store.js";
|
|
13
14
|
import type { ServiceConfig } from "../config.js";
|
|
@@ -35,6 +36,7 @@ export type ServiceSessionPolicyStore = SessionPolicyStore & {
|
|
|
35
36
|
deleteBySession?(sessionId: string): Promise<number>;
|
|
36
37
|
};
|
|
37
38
|
export type ServiceFileSnapshotStore = FileSnapshotStore & {
|
|
39
|
+
onSkippedVanished?: (count: number) => void | Promise<void>;
|
|
38
40
|
deleteBySession?(scope: string): Promise<number>;
|
|
39
41
|
sweepOrphanBlobs?(): Promise<number>;
|
|
40
42
|
hasBlobs?(hashes: string[]): Promise<Set<string>>;
|
|
@@ -61,6 +63,7 @@ export interface StoreBackend {
|
|
|
61
63
|
run(): RunStore;
|
|
62
64
|
resumeAnchor(): ResumeAnchorStore;
|
|
63
65
|
approvalExemption(): ApprovalExemptionStore;
|
|
66
|
+
sendFileLedger(): SendFileLedger;
|
|
64
67
|
sessionPolicy(): ServiceSessionPolicyStore;
|
|
65
68
|
fileSnapshot(): ServiceFileSnapshotStore;
|
|
66
69
|
workflowJournal(): ServiceWorkflowJournalStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-backend.d.ts","sourceRoot":"","sources":["../../src/plugins/store-backend.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnI,OAAO,EAAgE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAIzH,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAqF,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEjJ,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAoF,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC9J,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAQlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAMlD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQrD,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC;AAIhE,MAAM,MAAM,iBAAiB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AACpG,YAAY,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAI5E,MAAM,MAAM,yBAAyB,GAAG,kBAAkB,GAAG;IAAE,eAAe,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAKtH,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,GAAG;
|
|
1
|
+
{"version":3,"file":"store-backend.d.ts","sourceRoot":"","sources":["../../src/plugins/store-backend.ts"],"names":[],"mappings":"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"}
|