@powerhousedao/reactor-attachments 6.2.3-dev.5 → 6.2.3-dev.50
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/dist/client.d.ts +51 -36
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +20 -4
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +74 -85
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +100 -157
- package/dist/index.js.map +1 -1
- package/dist/{null-attachment-transport-CrsUafCi.js → null-attachment-transport-CUDNBfd5.js} +33 -14
- package/dist/null-attachment-transport-CUDNBfd5.js.map +1 -0
- package/dist/{null-attachment-transport-CMrO_ZKA.d.ts → null-attachment-transport-jZmzFncu.d.ts} +40 -18
- package/dist/null-attachment-transport-jZmzFncu.d.ts.map +1 -0
- package/package.json +9 -7
- package/dist/null-attachment-transport-CMrO_ZKA.d.ts.map +0 -1
- package/dist/null-attachment-transport-CrsUafCi.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
import
|
|
3
|
-
import { Kysely, Transaction } from "kysely";
|
|
1
|
+
import { $ as AttachmentMetadataField, A as IReservationStore, B as AttachmentStatOptions, C as IAttachmentReader, D as IAttachmentTransportFactory, E as IAttachmentTransport, F as AttachmentDownloadTargetOptions, G as AttachmentUploadTarget, H as AttachmentTargetHeaders, I as AttachmentHeader, J as ReserveAttachmentOptions, K as HashFirstReserveAttachmentOptions, L as AttachmentMetadata, M as AttachmentBackendKind, N as AttachmentDownloadOptions, O as IAttachmentUpload, P as AttachmentDownloadTarget, Q as AttachmentAlreadyExists, R as AttachmentResponse, S as IAttachmentBackend, T as IAttachmentStore, U as AttachmentTransportConfig, V as AttachmentStatus, W as AttachmentUploadResult, X as TransportResponse, Y as TransportFetchResult, Z as UploadFirstReserveAttachmentOptions, _ as createRef, a as RemoteAttachmentUpload, at as InvalidAttachmentMetadata, b as parseAttachmentDownloadTarget, c as XhrUploadTransportOptions, ct as SizeMismatch, d as AttachmentUploadResponse, et as AttachmentNotFound, f as AttachmentUploadTransport, g as ParsedRef, h as SwitchboardTransportConfig, i as RemoteAttachmentUploadFactory, it as HashMismatch, j as AttachmentBackendHealth, k as IAttachmentUploadFactory, l as createXhrUploadTransport, lt as UploadTooLarge, m as SwitchboardAttachmentTransport, n as createRemoteAttachmentService, nt as AttachmentTransferError, o as RemoteReservationStore, ot as InvalidAttachmentRef, p as createFetchUploadTransport, q as Reservation, r as RemoteAttachmentStore, rt as AttachmentTransferStage, s as SwitchboardClientConfig, st as ReservationNotFound, t as NullAttachmentTransport, tt as AttachmentPending, u as AttachmentUploadRequest, v as parseRef, w as IAttachmentService, x as parseAttachmentUploadTarget, y as AttachmentService, z as AttachmentSendOptions } from "./null-attachment-transport-jZmzFncu.js";
|
|
2
|
+
import { Kysely } from "kysely";
|
|
4
3
|
import { AttachmentHash, AttachmentRef, BaseReadModel, DocumentViewDatabase, IConsistencyTracker, IDocumentModelRegistry, IOperationIndex, IWriteCache } from "@powerhousedao/reactor";
|
|
5
4
|
import { Action, DocumentModelModule, OperationWithContext } from "@powerhousedao/shared/document-model";
|
|
6
|
-
|
|
5
|
+
//#region src/reserve-metadata.d.ts
|
|
6
|
+
/** The descriptive fields of a reservation, as a caller supplies them. */
|
|
7
|
+
type ReserveMetadata = {
|
|
8
|
+
mimeType: string;
|
|
9
|
+
fileName: string;
|
|
10
|
+
extension?: string | null;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Validates reserve metadata with the rules the switchboard reserve route
|
|
14
|
+
* applies.
|
|
15
|
+
*
|
|
16
|
+
* @throws InvalidAttachmentMetadata naming the first field that fails.
|
|
17
|
+
*/
|
|
18
|
+
export declare function validateReserveMetadata(meta: ReserveMetadata): void;
|
|
19
|
+
//#endregion
|
|
7
20
|
//#region src/storage/kysely/types.d.ts
|
|
8
21
|
interface AttachmentTable {
|
|
9
22
|
hash: string;
|
|
@@ -34,7 +47,7 @@ interface AttachmentDatabase {
|
|
|
34
47
|
}
|
|
35
48
|
//#endregion
|
|
36
49
|
//#region src/storage/kysely/attachment-store.d.ts
|
|
37
|
-
declare class KyselyAttachmentStore implements IAttachmentStore {
|
|
50
|
+
export declare class KyselyAttachmentStore implements IAttachmentStore {
|
|
38
51
|
private readonly db;
|
|
39
52
|
private readonly transport;
|
|
40
53
|
private readonly basePath;
|
|
@@ -42,10 +55,11 @@ declare class KyselyAttachmentStore implements IAttachmentStore {
|
|
|
42
55
|
constructor(db: Kysely<AttachmentDatabase>, transport: IAttachmentTransport, basePath: string);
|
|
43
56
|
stat(hash: AttachmentHash): Promise<AttachmentHeader>;
|
|
44
57
|
has(hash: AttachmentHash): Promise<boolean>;
|
|
45
|
-
get(hash: AttachmentHash, signal?: AbortSignal): Promise<AttachmentResponse>;
|
|
58
|
+
get(hash: AttachmentHash, signal?: AbortSignal, documentId?: string): Promise<AttachmentResponse>;
|
|
46
59
|
put(hash: AttachmentHash, metadata: AttachmentMetadata, data: ReadableStream<Uint8Array>): Promise<void>;
|
|
47
60
|
evict(hash: AttachmentHash): Promise<void>;
|
|
48
61
|
storageUsed(): Promise<number>;
|
|
62
|
+
private fetchRemote;
|
|
49
63
|
private findPendingReservation;
|
|
50
64
|
private acquireReader;
|
|
51
65
|
private releaseReader;
|
|
@@ -53,8 +67,8 @@ declare class KyselyAttachmentStore implements IAttachmentStore {
|
|
|
53
67
|
}
|
|
54
68
|
//#endregion
|
|
55
69
|
//#region src/storage/kysely/reservation-store.d.ts
|
|
56
|
-
declare const DEFAULT_RESERVATION_TTL_MS: number;
|
|
57
|
-
declare class KyselyReservationStore implements IReservationStore {
|
|
70
|
+
export declare const DEFAULT_RESERVATION_TTL_MS: number;
|
|
71
|
+
export declare class KyselyReservationStore implements IReservationStore {
|
|
58
72
|
private readonly db;
|
|
59
73
|
private readonly ttlMs;
|
|
60
74
|
constructor(db: Kysely<AttachmentDatabase>, ttlMs?: number);
|
|
@@ -65,16 +79,16 @@ declare class KyselyReservationStore implements IReservationStore {
|
|
|
65
79
|
}
|
|
66
80
|
//#endregion
|
|
67
81
|
//#region src/storage/migrations/migrator.d.ts
|
|
68
|
-
declare const ATTACHMENT_SCHEMA = "attachments";
|
|
82
|
+
export declare const ATTACHMENT_SCHEMA = "attachments";
|
|
69
83
|
interface MigrationResult {
|
|
70
84
|
success: boolean;
|
|
71
85
|
migrationsExecuted: string[];
|
|
72
86
|
error?: Error;
|
|
73
87
|
}
|
|
74
|
-
declare function runAttachmentMigrations(db: Kysely<any>, schema?: string): Promise<MigrationResult>;
|
|
88
|
+
export declare function runAttachmentMigrations(db: Kysely<any>, schema?: string): Promise<MigrationResult>;
|
|
75
89
|
//#endregion
|
|
76
90
|
//#region src/direct/direct-attachment-upload.d.ts
|
|
77
|
-
declare class DirectAttachmentUpload implements IAttachmentUpload {
|
|
91
|
+
export declare class DirectAttachmentUpload implements IAttachmentUpload {
|
|
78
92
|
private readonly reservation;
|
|
79
93
|
private readonly db;
|
|
80
94
|
private readonly basePath;
|
|
@@ -88,7 +102,7 @@ declare class DirectAttachmentUpload implements IAttachmentUpload {
|
|
|
88
102
|
}
|
|
89
103
|
//#endregion
|
|
90
104
|
//#region src/direct/direct-attachment-upload-factory.d.ts
|
|
91
|
-
declare class DirectAttachmentUploadFactory implements IAttachmentUploadFactory {
|
|
105
|
+
export declare class DirectAttachmentUploadFactory implements IAttachmentUploadFactory {
|
|
92
106
|
private readonly db;
|
|
93
107
|
private readonly basePath;
|
|
94
108
|
private readonly reservations;
|
|
@@ -108,7 +122,7 @@ type FilesystemAttachmentBackendConfig = {
|
|
|
108
122
|
* at the server edge, while this adapter validates that a filesystem backend
|
|
109
123
|
* can never accidentally return a direct-provider target.
|
|
110
124
|
*/
|
|
111
|
-
declare class FilesystemAttachmentBackend implements IAttachmentBackend {
|
|
125
|
+
export declare class FilesystemAttachmentBackend implements IAttachmentBackend {
|
|
112
126
|
private readonly store;
|
|
113
127
|
private readonly config;
|
|
114
128
|
readonly kind: "filesystem";
|
|
@@ -124,11 +138,13 @@ type AttachmentBuildResult = {
|
|
|
124
138
|
service: AttachmentService;
|
|
125
139
|
store: KyselyAttachmentStore;
|
|
126
140
|
reservations: KyselyReservationStore;
|
|
127
|
-
uploadFactory: IAttachmentUploadFactory;
|
|
128
|
-
|
|
141
|
+
uploadFactory: IAttachmentUploadFactory;
|
|
142
|
+
/** Selected direct-transfer backend, when startup configured one. */
|
|
143
|
+
backend?: IAttachmentBackend;
|
|
144
|
+
/** Stops the reservation sweep timer, if one was configured via withReservationSweepMs(). */
|
|
129
145
|
destroy: () => void;
|
|
130
146
|
};
|
|
131
|
-
declare class AttachmentBuilder {
|
|
147
|
+
export declare class AttachmentBuilder {
|
|
132
148
|
private readonly db;
|
|
133
149
|
private readonly storagePath;
|
|
134
150
|
private transport;
|
|
@@ -162,7 +178,7 @@ interface IAttachmentSchemaCompiler {
|
|
|
162
178
|
}
|
|
163
179
|
//#endregion
|
|
164
180
|
//#region src/reference-index/attachment-schema-compiler.d.ts
|
|
165
|
-
declare class AttachmentSchemaCompiler implements IAttachmentSchemaCompiler {
|
|
181
|
+
export declare class AttachmentSchemaCompiler implements IAttachmentSchemaCompiler {
|
|
166
182
|
private readonly cache;
|
|
167
183
|
forModuleAction(module: DocumentModelModule, actionType: string): CompiledAttachmentExtractor;
|
|
168
184
|
}
|
|
@@ -178,73 +194,43 @@ interface AttachmentReferenceInput {
|
|
|
178
194
|
}
|
|
179
195
|
interface IAttachmentReferenceReader {
|
|
180
196
|
hasReference(documentId: string, ref: AttachmentRef): Promise<boolean>;
|
|
197
|
+
/** The scopes whose operations reference the attachment; empty when none. */
|
|
198
|
+
referencingScopes(documentId: string, ref: AttachmentRef): Promise<string[]>;
|
|
181
199
|
}
|
|
182
200
|
interface IAttachmentReferenceWriter {
|
|
183
201
|
addReferences(references: readonly AttachmentReferenceInput[]): Promise<void>;
|
|
202
|
+
/** Deletes every reference of the documents; for a purged document. */
|
|
203
|
+
removeDocuments(documentIds: readonly string[]): Promise<void>;
|
|
184
204
|
}
|
|
185
205
|
//#endregion
|
|
186
206
|
//#region src/read-models/attachment-reference/index-builder.d.ts
|
|
187
207
|
type AttachmentReferenceIndexBuildResult = {
|
|
188
208
|
store: IAttachmentReferenceReader & IAttachmentReferenceWriter;
|
|
189
209
|
};
|
|
190
|
-
declare class AttachmentReferenceIndexBuilder {
|
|
210
|
+
export declare class AttachmentReferenceIndexBuilder {
|
|
191
211
|
private readonly db;
|
|
192
212
|
constructor(db: Kysely<unknown>);
|
|
193
213
|
build(): Promise<AttachmentReferenceIndexBuildResult>;
|
|
194
214
|
}
|
|
195
215
|
//#endregion
|
|
196
216
|
//#region src/read-models/attachment-reference/attachment-reference-read-model.d.ts
|
|
197
|
-
declare const ATTACHMENT_REFERENCE_READ_MODEL_ID = "attachment-reference-read-model";
|
|
198
|
-
|
|
217
|
+
export declare const ATTACHMENT_REFERENCE_READ_MODEL_ID = "attachment-reference-read-model";
|
|
218
|
+
/**
|
|
219
|
+
* Indexes attachment references in chunks.
|
|
220
|
+
*
|
|
221
|
+
* Each reference row stands on its own and is written insert-or-do-nothing, so
|
|
222
|
+
* a batch that commits in pieces exposes no partial structure, and re-indexing
|
|
223
|
+
* the same range writes nothing new: the catch-up sweep needs no stream suffix.
|
|
224
|
+
*
|
|
225
|
+
* The rows live on another handle, so the purge fence is "skip": a tombstoned
|
|
226
|
+
* id's operations are dropped at commit and its marker deletes its rows.
|
|
227
|
+
*/
|
|
228
|
+
export declare class AttachmentReferenceReadModel extends BaseReadModel {
|
|
199
229
|
private readonly documentModelRegistry;
|
|
200
230
|
private readonly schemaCompiler;
|
|
201
231
|
private readonly referenceWriter;
|
|
202
|
-
private indexingQueue;
|
|
203
|
-
private checkpointTarget;
|
|
204
|
-
/**
|
|
205
|
-
* How far a replay may skip ahead of the cursor: the highest ordinal already
|
|
206
|
-
* pulled from the index while the cursor was parked.
|
|
207
|
-
*
|
|
208
|
-
* NOT a claim that every ordinal below it committed -- the parked ordinal is
|
|
209
|
-
* precisely the one that did not -- so it is a hint, and {@link replayFrom}
|
|
210
|
-
* re-probes the gap before honouring it.
|
|
211
|
-
*/
|
|
212
|
-
private replayedThrough;
|
|
213
|
-
private warnedCheckpoint;
|
|
214
232
|
constructor(db: Kysely<DocumentViewDatabase>, operationIndex: IOperationIndex, writeCache: IWriteCache, consistencyTracker: IConsistencyTracker, documentModelRegistry: IDocumentModelRegistry, schemaCompiler: IAttachmentSchemaCompiler, referenceWriter: IAttachmentReferenceWriter);
|
|
215
|
-
indexOperations(items: OperationWithContext[]): Promise<void>;
|
|
216
|
-
init(): Promise<void>;
|
|
217
|
-
private enqueue;
|
|
218
233
|
protected commitOperations(items: OperationWithContext[]): Promise<void>;
|
|
219
|
-
private indexOperationsInOrdinalOrder;
|
|
220
|
-
/**
|
|
221
|
-
* Writes the cursor parked by indexOperationsInOrdinalOrder instead of the
|
|
222
|
-
* batch maximum, so indexing an operation above a gap never advances past it.
|
|
223
|
-
*/
|
|
224
|
-
protected saveState(trx: Transaction<DocumentViewDatabase>, items: OperationWithContext[]): Promise<void>;
|
|
225
|
-
/** Last ordinal of the contiguous run starting at lastOrdinal + 1. */
|
|
226
|
-
private contiguousEnd;
|
|
227
|
-
/**
|
|
228
|
-
* Opens a replay at the lowest ordinal still worth reading.
|
|
229
|
-
*
|
|
230
|
-
* {@link replayedThrough} is what keeps a permanently held hole -- a
|
|
231
|
-
* rolled-back insert, which never fills -- from re-reading the whole tail on
|
|
232
|
-
* every batch. It cannot be trusted on its own: a hole that fills without
|
|
233
|
-
* being delivered here is visible only in the index, and a mark that is
|
|
234
|
-
* never questioned would hide that operation for the life of the process.
|
|
235
|
-
* That happens whenever another writer commits the gap (a second reactor on
|
|
236
|
-
* the same database), and it leaves the cursor parked below an operation
|
|
237
|
-
* whose references were never written -- `hasReference` then answers false
|
|
238
|
-
* for an attachment that is genuinely referenced.
|
|
239
|
-
*
|
|
240
|
-
* So a parked batch spends one page probing the gap: the first row above the
|
|
241
|
-
* cursor is the missing ordinal itself once it commits. Finding it drops the
|
|
242
|
-
* mark and replays from the cursor; not finding it leaves the mark standing,
|
|
243
|
-
* which is the cheap path and the common one.
|
|
244
|
-
*/
|
|
245
|
-
private replayFrom;
|
|
246
|
-
private loadThroughOrdinal;
|
|
247
|
-
private sortAndDedupe;
|
|
248
234
|
}
|
|
249
235
|
//#endregion
|
|
250
236
|
//#region src/read-models/attachment-reference/storage/types.d.ts
|
|
@@ -263,31 +249,33 @@ interface AttachmentReferenceDatabase {
|
|
|
263
249
|
}
|
|
264
250
|
//#endregion
|
|
265
251
|
//#region src/read-models/attachment-reference/kysely-attachment-reference-store.d.ts
|
|
266
|
-
declare class KyselyAttachmentReferenceStore implements IAttachmentReferenceReader, IAttachmentReferenceWriter {
|
|
252
|
+
export declare class KyselyAttachmentReferenceStore implements IAttachmentReferenceReader, IAttachmentReferenceWriter {
|
|
267
253
|
private readonly db;
|
|
268
254
|
constructor(db: Kysely<AttachmentReferenceDatabase>);
|
|
269
255
|
hasReference(documentId: string, ref: AttachmentRef): Promise<boolean>;
|
|
256
|
+
referencingScopes(documentId: string, ref: AttachmentRef): Promise<string[]>;
|
|
270
257
|
addReferences(references: readonly AttachmentReferenceInput[]): Promise<void>;
|
|
258
|
+
removeDocuments(documentIds: readonly string[]): Promise<void>;
|
|
271
259
|
}
|
|
272
260
|
//#endregion
|
|
273
261
|
//#region src/read-models/attachment-reference/storage/migrations/migrator.d.ts
|
|
274
|
-
declare const ATTACHMENT_REFERENCE_SCHEMA = "attachment_reference_read_model";
|
|
275
|
-
declare const ATTACHMENT_REFERENCE_MIGRATION_TABLE = "kysely_migration_attachment_reference_read_model";
|
|
276
|
-
declare const ATTACHMENT_REFERENCE_MIGRATION_LOCK_TABLE = "kysely_migration_attachment_reference_read_model_lock";
|
|
262
|
+
export declare const ATTACHMENT_REFERENCE_SCHEMA = "attachment_reference_read_model";
|
|
263
|
+
export declare const ATTACHMENT_REFERENCE_MIGRATION_TABLE = "kysely_migration_attachment_reference_read_model";
|
|
264
|
+
export declare const ATTACHMENT_REFERENCE_MIGRATION_LOCK_TABLE = "kysely_migration_attachment_reference_read_model_lock";
|
|
277
265
|
interface AttachmentReferenceMigrationResult {
|
|
278
266
|
success: boolean;
|
|
279
267
|
migrationsExecuted: string[];
|
|
280
268
|
error?: Error;
|
|
281
269
|
}
|
|
282
|
-
declare function runAttachmentReferenceMigrations(db: Kysely<unknown>, schema?: string): Promise<AttachmentReferenceMigrationResult>;
|
|
283
|
-
declare function rollbackAttachmentReferenceMigration(db: Kysely<unknown>, schema?: string): Promise<AttachmentReferenceMigrationResult>;
|
|
284
|
-
declare function getAttachmentReferenceMigrationStatus(db: Kysely<unknown>, schema?: string): Promise<readonly kysely.MigrationInfo[]>;
|
|
270
|
+
export declare function runAttachmentReferenceMigrations(db: Kysely<unknown>, schema?: string): Promise<AttachmentReferenceMigrationResult>;
|
|
271
|
+
export declare function rollbackAttachmentReferenceMigration(db: Kysely<unknown>, schema?: string): Promise<AttachmentReferenceMigrationResult>;
|
|
272
|
+
export declare function getAttachmentReferenceMigrationStatus(db: Kysely<unknown>, schema?: string): Promise<readonly import("kysely").MigrationInfo[]>;
|
|
285
273
|
//#endregion
|
|
286
274
|
//#region src/storage/s3/config.d.ts
|
|
287
|
-
declare const DEFAULT_S3_ATTACHMENT_PREFIX = "attachments";
|
|
288
|
-
declare const DEFAULT_S3_UPLOAD_TTL_SECONDS = 900;
|
|
289
|
-
declare const DEFAULT_S3_DOWNLOAD_TTL_SECONDS = 300;
|
|
290
|
-
declare const MAX_S3_PRESIGN_TTL_SECONDS = 604800;
|
|
275
|
+
export declare const DEFAULT_S3_ATTACHMENT_PREFIX = "attachments";
|
|
276
|
+
export declare const DEFAULT_S3_UPLOAD_TTL_SECONDS = 900;
|
|
277
|
+
export declare const DEFAULT_S3_DOWNLOAD_TTL_SECONDS = 300;
|
|
278
|
+
export declare const MAX_S3_PRESIGN_TTL_SECONDS = 604800;
|
|
291
279
|
type S3AttachmentConfig = {
|
|
292
280
|
endpoint: string;
|
|
293
281
|
region: string;
|
|
@@ -306,12 +294,12 @@ type AttachmentStorageConfig = {
|
|
|
306
294
|
s3: S3AttachmentConfig;
|
|
307
295
|
};
|
|
308
296
|
type Environment = Readonly<Record<string, string | undefined>>;
|
|
309
|
-
declare function normalizeS3AttachmentPrefix(prefix: string): string;
|
|
310
|
-
declare function parseAttachmentStorageConfig(env?: Environment): AttachmentStorageConfig;
|
|
297
|
+
export declare function normalizeS3AttachmentPrefix(prefix: string): string;
|
|
298
|
+
export declare function parseAttachmentStorageConfig(env?: Environment): AttachmentStorageConfig;
|
|
311
299
|
//#endregion
|
|
312
300
|
//#region src/storage/s3/keying.d.ts
|
|
313
|
-
declare function deriveS3AttachmentKey(hash: string, prefix: string): string;
|
|
314
|
-
declare function sha256HexToBase64(hash: string): string;
|
|
301
|
+
export declare function deriveS3AttachmentKey(hash: string, prefix: string): string;
|
|
302
|
+
export declare function sha256HexToBase64(hash: string): string;
|
|
315
303
|
//#endregion
|
|
316
304
|
//#region src/storage/s3/primitives.d.ts
|
|
317
305
|
interface S3CommandClient {
|
|
@@ -323,7 +311,7 @@ type Dependencies = {
|
|
|
323
311
|
presign?: S3Presigner;
|
|
324
312
|
now?: () => Date;
|
|
325
313
|
};
|
|
326
|
-
declare class S3AttachmentPrimitives {
|
|
314
|
+
export declare class S3AttachmentPrimitives {
|
|
327
315
|
readonly config: S3AttachmentConfig;
|
|
328
316
|
readonly client: S3CommandClient;
|
|
329
317
|
readonly presign: S3Presigner;
|
|
@@ -336,7 +324,7 @@ declare class S3AttachmentPrimitives {
|
|
|
336
324
|
createUploadTarget(hash: string, mimeType: string, ttlSeconds?: number): Promise<AttachmentUploadTarget>;
|
|
337
325
|
createDownloadTarget(hash: string, ttlSeconds?: number): Promise<AttachmentDownloadTarget>;
|
|
338
326
|
}
|
|
339
|
-
declare function createS3AttachmentPrimitives(config: S3AttachmentConfig, dependencies?: Dependencies): S3AttachmentPrimitives;
|
|
327
|
+
export declare function createS3AttachmentPrimitives(config: S3AttachmentConfig, dependencies?: Dependencies): S3AttachmentPrimitives;
|
|
340
328
|
//#endregion
|
|
341
329
|
//#region src/storage/s3/backend.d.ts
|
|
342
330
|
type S3AttachmentBackendDependencies = {
|
|
@@ -347,7 +335,7 @@ type S3AttachmentBackendDependencies = {
|
|
|
347
335
|
downloadTtlSeconds?: number;
|
|
348
336
|
};
|
|
349
337
|
/** Server-only S3 capability. Callers complete authorization before download. */
|
|
350
|
-
declare class S3AttachmentBackend implements IAttachmentBackend {
|
|
338
|
+
export declare class S3AttachmentBackend implements IAttachmentBackend {
|
|
351
339
|
private readonly db;
|
|
352
340
|
readonly config: S3AttachmentConfig;
|
|
353
341
|
readonly kind: "s3";
|
|
@@ -361,12 +349,13 @@ declare class S3AttachmentBackend implements IAttachmentBackend {
|
|
|
361
349
|
exists(hash: AttachmentHash): Promise<boolean>;
|
|
362
350
|
health(): Promise<AttachmentBackendHealth>;
|
|
363
351
|
}
|
|
364
|
-
declare function createS3AttachmentBackend(db: Kysely<AttachmentDatabase>, config: S3AttachmentConfig, dependencies?: S3AttachmentBackendDependencies): S3AttachmentBackend;
|
|
352
|
+
export declare function createS3AttachmentBackend(db: Kysely<AttachmentDatabase>, config: S3AttachmentConfig, dependencies?: S3AttachmentBackendDependencies): S3AttachmentBackend;
|
|
365
353
|
//#endregion
|
|
366
354
|
//#region src/storage/s3/upload-factory.d.ts
|
|
367
|
-
declare class S3AttachmentUploadFactory implements IAttachmentUploadFactory {
|
|
355
|
+
export declare class S3AttachmentUploadFactory implements IAttachmentUploadFactory {
|
|
368
356
|
createUpload(reservation: Reservation): IAttachmentUpload;
|
|
369
357
|
}
|
|
370
358
|
//#endregion
|
|
371
|
-
export {
|
|
359
|
+
export { AttachmentAlreadyExists, type AttachmentBackendHealth, type AttachmentBackendKind, type AttachmentBuildResult, type AttachmentDatabase, type AttachmentDownloadOptions, type AttachmentDownloadTarget, type AttachmentDownloadTargetOptions, type AttachmentHeader, type AttachmentMetadata, type AttachmentMetadataField, AttachmentNotFound, AttachmentPending, type AttachmentReferenceIndexBuildResult, type AttachmentReferenceInput, type AttachmentReferenceMigrationResult, type AttachmentResponse, type AttachmentSendOptions, AttachmentService, type AttachmentStatOptions, type AttachmentStatus, type AttachmentStorageConfig, type AttachmentTargetHeaders, AttachmentTransferError, type AttachmentTransferStage, type AttachmentTransportConfig, type AttachmentUploadRequest, type AttachmentUploadResponse, type AttachmentUploadResult, type AttachmentUploadTarget, type AttachmentUploadTransport, type CompiledAttachmentExtractor, type FilesystemAttachmentBackendConfig, type HashFirstReserveAttachmentOptions, HashMismatch, type IAttachmentBackend, type IAttachmentReader, type IAttachmentReferenceReader, type IAttachmentReferenceWriter, type IAttachmentSchemaCompiler, type IAttachmentService, type IAttachmentStore, type IAttachmentTransport, type IAttachmentTransportFactory, type IAttachmentUpload, type IAttachmentUploadFactory, type IReservationStore, InvalidAttachmentMetadata, InvalidAttachmentRef, NullAttachmentTransport, type ParsedRef, RemoteAttachmentStore, RemoteAttachmentUpload, RemoteAttachmentUploadFactory, RemoteReservationStore, type Reservation, ReservationNotFound, type ReserveAttachmentOptions, type ReserveMetadata, type S3AttachmentBackendDependencies, type S3AttachmentConfig, type S3CommandClient, type S3Presigner, SizeMismatch, SwitchboardAttachmentTransport, type SwitchboardClientConfig, type SwitchboardTransportConfig, type TransportFetchResult, type TransportResponse, type UploadFirstReserveAttachmentOptions, UploadTooLarge, type XhrUploadTransportOptions, createFetchUploadTransport, createRef, createRemoteAttachmentService, createXhrUploadTransport, parseAttachmentDownloadTarget, parseAttachmentUploadTarget, parseRef };
|
|
360
|
+
export {};
|
|
372
361
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/storage/kysely/types.ts","../src/storage/kysely/attachment-store.ts","../src/storage/kysely/reservation-store.ts","../src/storage/migrations/migrator.ts","../src/direct/direct-attachment-upload.ts","../src/direct/direct-attachment-upload-factory.ts","../src/direct/filesystem-attachment-backend.ts","../src/attachment-builder.ts","../src/reference-index/types.ts","../src/reference-index/attachment-schema-compiler.ts","../src/read-models/attachment-reference/types.ts","../src/read-models/attachment-reference/index-builder.ts","../src/read-models/attachment-reference/attachment-reference-read-model.ts","../src/read-models/attachment-reference/storage/types.ts","../src/read-models/attachment-reference/kysely-attachment-reference-store.ts","../src/read-models/attachment-reference/storage/migrations/migrator.ts","../src/storage/s3/config.ts","../src/storage/s3/keying.ts","../src/storage/s3/primitives.ts","../src/storage/s3/backend.ts","../src/storage/s3/upload-factory.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/reserve-metadata.ts","../src/storage/kysely/types.ts","../src/storage/kysely/attachment-store.ts","../src/storage/kysely/reservation-store.ts","../src/storage/migrations/migrator.ts","../src/direct/direct-attachment-upload.ts","../src/direct/direct-attachment-upload-factory.ts","../src/direct/filesystem-attachment-backend.ts","../src/attachment-builder.ts","../src/reference-index/types.ts","../src/reference-index/attachment-schema-compiler.ts","../src/read-models/attachment-reference/types.ts","../src/read-models/attachment-reference/index-builder.ts","../src/read-models/attachment-reference/attachment-reference-read-model.ts","../src/read-models/attachment-reference/storage/types.ts","../src/read-models/attachment-reference/kysely-attachment-reference-store.ts","../src/read-models/attachment-reference/storage/migrations/migrator.ts","../src/storage/s3/config.ts","../src/storage/s3/keying.ts","../src/storage/s3/primitives.ts","../src/storage/s3/backend.ts","../src/storage/s3/upload-factory.ts"],"mappings":"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"}
|