@powerhousedao/reactor-hypercore 6.2.3-dev.23 → 6.2.3-dev.25
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/index.d.ts +32 -61
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -17
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { Operation, OperationWithContext } from "@powerhousedao/shared/document-model";
|
|
2
|
+
import "document-model";
|
|
3
|
+
import "@powerhousedao/shared/document-drive";
|
|
4
|
+
import "@powerhousedao/shared/processors";
|
|
2
5
|
import Hyperbee from "hyperbee";
|
|
3
|
-
|
|
6
|
+
import "node:worker_threads";
|
|
4
7
|
//#region ../../node_modules/.pnpm/kysely@0.28.16/node_modules/kysely/dist/esm/kysely.d.ts
|
|
5
8
|
declare global {
|
|
6
9
|
interface AsyncDisposable {}
|
|
@@ -8,39 +11,6 @@ declare global {
|
|
|
8
11
|
readonly asyncDispose: unique symbol;
|
|
9
12
|
}
|
|
10
13
|
}
|
|
11
|
-
/**
|
|
12
|
-
* The main Kysely class.
|
|
13
|
-
*
|
|
14
|
-
* You should create one instance of `Kysely` per database using the {@link Kysely}
|
|
15
|
-
* constructor. Each `Kysely` instance maintains its own connection pool.
|
|
16
|
-
*
|
|
17
|
-
* ### Examples
|
|
18
|
-
*
|
|
19
|
-
* This example assumes your database has a "person" table:
|
|
20
|
-
*
|
|
21
|
-
* ```ts
|
|
22
|
-
* import * as Sqlite from 'better-sqlite3'
|
|
23
|
-
* import { type Generated, Kysely, SqliteDialect } from 'kysely'
|
|
24
|
-
*
|
|
25
|
-
* interface Database {
|
|
26
|
-
* person: {
|
|
27
|
-
* id: Generated<number>
|
|
28
|
-
* first_name: string
|
|
29
|
-
* last_name: string | null
|
|
30
|
-
* }
|
|
31
|
-
* }
|
|
32
|
-
*
|
|
33
|
-
* const db = new Kysely<Database>({
|
|
34
|
-
* dialect: new SqliteDialect({
|
|
35
|
-
* database: new Sqlite(':memory:'),
|
|
36
|
-
* })
|
|
37
|
-
* })
|
|
38
|
-
* ```
|
|
39
|
-
*
|
|
40
|
-
* @typeParam DB - The database interface type. Keys of this type must be table names
|
|
41
|
-
* in the database and values must be interfaces that describe the rows in those
|
|
42
|
-
* tables. See the examples above.
|
|
43
|
-
*/
|
|
44
14
|
//#endregion
|
|
45
15
|
//#region ../reactor/dist/index.d.ts
|
|
46
16
|
/**
|
|
@@ -60,9 +30,6 @@ type PagedResults<T> = {
|
|
|
60
30
|
nextCursor?: string;
|
|
61
31
|
totalCount?: number;
|
|
62
32
|
};
|
|
63
|
-
/**
|
|
64
|
-
* A string key in the format `documentId:scope:branch` used to identify a consistency checkpoint.
|
|
65
|
-
*/
|
|
66
33
|
/**
|
|
67
34
|
* One read-set stream and the highest operation index observed on it, or -1
|
|
68
35
|
* if it was observed empty.
|
|
@@ -80,7 +47,6 @@ type AppendConditionStream = {
|
|
|
80
47
|
type AppendCondition = {
|
|
81
48
|
streams: AppendConditionStream[];
|
|
82
49
|
};
|
|
83
|
-
/** Error history keeps messages, not classes, so failures match by prefix. */
|
|
84
50
|
/**
|
|
85
51
|
* A write transaction passed to {@link IOperationStore.apply}. Accumulates
|
|
86
52
|
* operations that are committed atomically when the callback returns.
|
|
@@ -94,7 +60,9 @@ interface AtomicTxn {
|
|
|
94
60
|
* revision field and lastModified timestamp.
|
|
95
61
|
*/
|
|
96
62
|
type DocumentRevisions = {
|
|
97
|
-
/** Map of scope to operation index for that scope */
|
|
63
|
+
/** Map of scope to operation index for that scope */
|
|
64
|
+
revision: Record<string, number>;
|
|
65
|
+
/** The largest operation timestamp in the document, across every scope. */
|
|
98
66
|
latestTimestamp: string;
|
|
99
67
|
};
|
|
100
68
|
/**
|
|
@@ -208,11 +176,14 @@ interface IOperationStore {
|
|
|
208
176
|
* timestamp, so a later timestamp can sit behind the last row.
|
|
209
177
|
*/
|
|
210
178
|
getStreamLatestTimestamp(documentId: string, scope: string, branch: string, signal?: AbortSignal): Promise<string | undefined>;
|
|
179
|
+
/**
|
|
180
|
+
* The subset of `opIds` stored anywhere in one stream, retracted rows
|
|
181
|
+
* included.
|
|
182
|
+
*/
|
|
183
|
+
findOperationIds(documentId: string, scope: string, branch: string, opIds: string[], signal?: AbortSignal): Promise<Set<string>>;
|
|
184
|
+
/** The latest row of each of `opIds` stored in one stream. */
|
|
185
|
+
getOperationsByIds(documentId: string, scope: string, branch: string, opIds: string[], signal?: AbortSignal): Promise<Operation[]>;
|
|
211
186
|
}
|
|
212
|
-
/**
|
|
213
|
-
* Stores periodic document snapshots (keyframes) so that document state
|
|
214
|
-
* can be reconstructed without replaying the full operation history.
|
|
215
|
-
*/
|
|
216
187
|
/**
|
|
217
188
|
* Filter options for querying operations. When multiple filters are provided,
|
|
218
189
|
* they are combined with AND logic.
|
|
@@ -227,12 +198,9 @@ interface OperationFilter {
|
|
|
227
198
|
/** Filter operations with index >= this value */
|
|
228
199
|
sinceRevision?: number;
|
|
229
200
|
}
|
|
230
|
-
/**
|
|
231
|
-
* Which sense of "exists" a caller of {@link IDocumentView.exists} means.
|
|
232
|
-
*/
|
|
233
201
|
//#endregion
|
|
234
202
|
//#region src/hypercore-operation-store.d.ts
|
|
235
|
-
declare class HypercoreOperationStore implements IOperationStore {
|
|
203
|
+
export declare class HypercoreOperationStore implements IOperationStore {
|
|
236
204
|
private bee;
|
|
237
205
|
private applyLock;
|
|
238
206
|
constructor(bee: Hyperbee);
|
|
@@ -273,6 +241,8 @@ declare class HypercoreOperationStore implements IOperationStore {
|
|
|
273
241
|
* later one, so it would under-report and admit a backdated auth write.
|
|
274
242
|
*/
|
|
275
243
|
getStreamLatestTimestamp(documentId: string, scope: string, branch: string, signal?: AbortSignal): Promise<string | undefined>;
|
|
244
|
+
findOperationIds(documentId: string, scope: string, branch: string, opIds: string[], signal?: AbortSignal): Promise<Set<string>>;
|
|
245
|
+
getOperationsByIds(documentId: string, scope: string, branch: string, opIds: string[], signal?: AbortSignal): Promise<Operation[]>;
|
|
276
246
|
private serializeOperation;
|
|
277
247
|
private toOperation;
|
|
278
248
|
}
|
|
@@ -289,7 +259,7 @@ type HypercoreStoreOptions = {
|
|
|
289
259
|
};
|
|
290
260
|
//#endregion
|
|
291
261
|
//#region src/hypercore-atomic-transaction.d.ts
|
|
292
|
-
declare class HypercoreAtomicTransaction implements AtomicTxn {
|
|
262
|
+
export declare class HypercoreAtomicTransaction implements AtomicTxn {
|
|
293
263
|
private documentId;
|
|
294
264
|
private documentType;
|
|
295
265
|
private scope;
|
|
@@ -301,7 +271,7 @@ declare class HypercoreAtomicTransaction implements AtomicTxn {
|
|
|
301
271
|
}
|
|
302
272
|
//#endregion
|
|
303
273
|
//#region src/storage-manager.d.ts
|
|
304
|
-
declare class StorageManager {
|
|
274
|
+
export declare class StorageManager {
|
|
305
275
|
private store;
|
|
306
276
|
private bee;
|
|
307
277
|
constructor(storagePath: string);
|
|
@@ -311,23 +281,23 @@ declare class StorageManager {
|
|
|
311
281
|
}
|
|
312
282
|
//#endregion
|
|
313
283
|
//#region src/key-encoding.d.ts
|
|
314
|
-
declare const RANGE_UPPER_BOUND: string;
|
|
315
|
-
declare function pad(n: number): string;
|
|
316
|
-
declare function operationKey(documentId: string, scope: string, branch: string, index: number): string;
|
|
317
|
-
declare function operationPrefix(documentId: string, scope: string, branch: string): string;
|
|
318
|
-
declare function ordinalKey(ordinal: number): string;
|
|
319
|
-
declare function ordinalPrefix(): string;
|
|
320
|
-
declare function duplicateKey(opId: string, index: number, skip: number): string;
|
|
321
|
-
declare function headKey(documentId: string, scope: string, branch: string): string;
|
|
322
|
-
declare function headPrefix(documentId: string): string;
|
|
323
|
-
declare const ORDINAL_COUNTER_KEY = "_meta/ordinal";
|
|
284
|
+
export declare const RANGE_UPPER_BOUND: string;
|
|
285
|
+
export declare function pad(n: number): string;
|
|
286
|
+
export declare function operationKey(documentId: string, scope: string, branch: string, index: number): string;
|
|
287
|
+
export declare function operationPrefix(documentId: string, scope: string, branch: string): string;
|
|
288
|
+
export declare function ordinalKey(ordinal: number): string;
|
|
289
|
+
export declare function ordinalPrefix(): string;
|
|
290
|
+
export declare function duplicateKey(opId: string, index: number, skip: number): string;
|
|
291
|
+
export declare function headKey(documentId: string, scope: string, branch: string): string;
|
|
292
|
+
export declare function headPrefix(documentId: string): string;
|
|
293
|
+
export declare const ORDINAL_COUNTER_KEY = "_meta/ordinal";
|
|
324
294
|
type ParsedOperationKey = {
|
|
325
295
|
documentId: string;
|
|
326
296
|
scope: string;
|
|
327
297
|
branch: string;
|
|
328
298
|
index: number;
|
|
329
299
|
};
|
|
330
|
-
declare function parseOperationKey(key: string): ParsedOperationKey;
|
|
300
|
+
export declare function parseOperationKey(key: string): ParsedOperationKey;
|
|
331
301
|
type OrdinalEntry = {
|
|
332
302
|
documentId: string;
|
|
333
303
|
documentType: string;
|
|
@@ -341,5 +311,6 @@ type HeadEntryValue = {
|
|
|
341
311
|
latestTimestampUtcMs: string;
|
|
342
312
|
};
|
|
343
313
|
//#endregion
|
|
344
|
-
export {
|
|
314
|
+
export type { HeadEntryValue, HypercoreStoreOptions, OrdinalEntry, ParsedOperationKey, StoredOperation };
|
|
315
|
+
export {};
|
|
345
316
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["Dialect","SchemaModule","DynamicModule","QueryExecutor","QueryCreator","KyselyPlugin","DatabaseIntrospector","Driver","IsolationLevel","AccessMode","FunctionModule","LogConfig","QueryExecutorProvider","QueryResult","CompiledQuery","QueryId","Compilable","CaseBuilder","Expression","DrainOuterGeneric","ReleaseSavepoint","RollbackToSavepoint","ControlledConnection","_0","global","AsyncDisposable","SymbolConstructor","asyncDispose","sideEffect","Kysely","V","T","R","DB","KyselyConfig","KyselyProps","TransactionBuilder","ControlledTransactionBuilder","ConnectionBuilder","Record","Promise","Symbol","private","constructor","args","schema","dynamic","introspection","case","value","fn","transaction","startTransaction","connection","withPlugin","plugin","withoutPlugins","withSchema","withTables","destroy","isTransaction","getExecutor","executeQuery","query","queryId","Transaction","props","config","driver","executor","dialect","isKyselyProps","obj","plugins","log","ConnectionBuilderProps","execute","db","callback","TransactionBuilderProps","setAccessMode","accessMode","setIsolationLevel","isolationLevel","trx","ControlledTransaction","SN","S","ControlledTransactionProps","Command","isCommitted","isRolledBack","commit","rollback","savepoint","savepointName","rollbackToSavepoint","releaseSavepoint","cb","Action","AuthRequest","AuthSubject","CreateDocumentActionInput","DocumentModelModule","ISigner","Operation","OperationContext","OperationOutcome","OperationWithContext","OperationWithContext$1","PHAuthState","PHDocument","PHDocumentState","SignatureVerificationHandler","UpgradeDocumentActionInput","UpgradeManifest","UpgradeReducer","UpgradeTransition","actions","documentActions","DocumentDriveDocument","DriveInput","FolderNode","Node","ILogger","kysely","Generated","Insertable","Kysely","Transaction","IProcessor","IProcessorHostModuleBase","IProcessorHostModuleBase$1","IProcessorManager","IProcessorManager$1","IRelationalDb","ProcessorApp","ProcessorFactory","ProcessorFactory$1","ProcessorFactoryBuilder","ProcessorFilter","ProcessorRecord","ProcessorRecord$1","ProcessorStatus","RelationalDbProcessor","TrackedProcessor","TrackedProcessor$1","createRelationalDb","Pool","AttachmentHash","AttachmentRef","createDocumentAction","input","upgradeDocumentAction","deleteDocumentAction","documentId","addRelationshipAction","Record","sourceId","targetId","relationshipType","metadata","updateRelationshipAction","removeRelationshipAction","JobKind","JobQueueState","UNKNOWN","PREPROCESSING","PENDING","READY","RUNNING","RESOLVED","RetryAccounting","CountAgainstLimit","ExemptFromLimit","IJobExecutionHandle","Job","ErrorInfo$1","job","state","start","complete","fail","error","defer","JobMeta","id","kind","scope","branch","operations","createdAt","queueHint","retryCount","maxRetries","lastError","errorHistory","meta","QueueEventTypes","JOB_AVAILABLE","JobRoutingMeta","JobAvailableEvent","jobId","name","message","stack","ShutdownStatus","Promise","isShutdown","completed","PropagationMode","None","Cascade","RelationshipChangeType","Added","Removed","BatchMeta","batchId","batchJobIds","SubmittedActionResult","actionId","index","JobResultSummary","allApplied","JobInfo","JobStatus","ConsistencyToken","status","createdAtUtcIso","completedAtUtcIso","result","consistencyToken","WRITE_READY","READ_READY","FAILED","ViewFilter","scopes","revision","subject","SearchFilter","type","parentId","ids","slugs","PagingOptions","cursor","limit","PagedResults","T","results","options","next","nextCursor","totalCount","ConsistencyKey","ConsistencyCoordinate","operationIndex","version","coordinates","IReadModel","indexOperations","IReadModelCoordinator","readModels","stop","drain","getChainDepth","ReadModelRegistrationStage","ILiveReadModelCoordinator","addReadModel","readModel","stage","supportsLiveReadModelRegistration","coordinator","ChannelScheme","CONNECT","SWITCHBOARD","JwtHandler","url","PollBehavior","Auto","Manual","RemoteOptions","sinceTimestampUtcMs","pollBehavior","boundAddress","RemoteFilter","RemoteCursor","remoteName","cursorType","cursorOrdinal","lastSyncedAtUtcMs","ChannelMeta","SyncEnvelopeType","SyncEnvelope","channelMeta","key","dependsOn","SyncOperationStatus","Unknown","TransportPending","ExecutionPending","Applied","Error","ChannelErrorSource","Channel","Inbox","Outbox","SyncOperationErrorType","ChannelHealth","lastSuccessUtcMs","lastFailureUtcMs","failureCount","ConnectionState","ConnectionStateSnapshot","pushBlocked","pushFailureCount","receivingPages","requiresAuth","ConnectionStateChangedEvent","remoteId","previous","current","snapshot","RemoteStatus","push","pull","ChannelConfig","parameters","RemoteRecord","DriveCollectionId","collectionId","channelConfig","filter","SyncEventTypes","SYNC_PENDING","SYNC_SUCCEEDED","SYNC_FAILED","DEAD_LETTER_ADDED","CONNECTION_STATE_CHANGED","SyncPendingEvent","syncOperationCount","remoteNames","SyncSucceededEvent","SyncFailedEvent","Array","successCount","errors","DeadLetterAddedEvent","errorSource","errorType","SyncResultStatus","SyncResultError","SyncResult","DuplicateOperationError","constructor","description","OptimisticLockError","RevisionMismatchError","expected","actual","DocumentAlreadyExistsError","headRevision","isError","AppendConditionStream","AppendCondition","streams","APPEND_CONDITION_FAILED_PREFIX","AppendConditionFailedError","condition","isFailureMessage","AtomicTxn","addOperations","DocumentRevisions","latestTimestamp","IOperationStore","AbortSignal","OperationFilter","apply","documentType","txn","fn","signal","getSince","paging","getSinceId","getConflicting","minTimestamp","getRevisions","getStreamLatestTimestamp","IKeyframeStore","putKeyframe","document","findNearestKeyframe","targetRevision","listKeyframes","deleteKeyframes","ViewFilter$1","excludeSourceRemote","actionTypes","timestampFrom","timestampTo","sinceRevision","DocumentExistence","LiveOnly","IncludingDeleted","IDocumentView","TDocument","init","items","waitForConsistency","token","timeoutMs","exists","documentIds","existence","get","view","getMany","getByIdOrSlug","identifier","findByType","resolveSlug","slug","resolveSlugs","resolveIdOrSlug","DocumentRelationship","Date","updatedAt","DocumentGraphEdge","from","to","IDocumentGraph","nodes","edges","IDocumentIndexer","getOutgoing","types","getIncoming","hasRelationship","getUndirectedRelationships","a","b","getDirectedRelationships","findPath","findAncestors","getOrphanedChildren","parentIds","getRelationshipTypes","ISyncRemoteStorage","list","upsert","remote","remove","ISyncCursorStorage","DeadLetterRecord","jobDependencies","errorMessage","ISyncDeadLetterStorage","add","deadLetter","removeByRemote","listQuarantinedDocumentIds","OperationIndexEntry","ordinal","sourceRemote","IOperationIndexTxn","createCollection","addToCollection","removeFromCollection","recordGroupReferences","groupIds","write","getMembershipInvalidations","IOperationIndex","commit","find","getSinceOrdinal","getLatestTimestampForCollection","getCollectionsForDocuments","getGroupReferencers","groupId","driveId","forDrive","fromKey","toString","equals","other","WriteCacheConfig","maxDocuments","ringBufferSize","keyframeInterval","DocumentStreamKey","SnapshotPosition","Head","Historical","CachedSnapshot","position","KeyframeSnapshot","IWriteCache","getState","putState","putRun","run","invalidate","clear","startup","shutdown","Unsubscribe","Subscriber","data","EventBusAggregateError","ReactorEventTypes","JOB_PENDING","JOB_RUNNING","JOB_WRITE_READY","JOB_READ_READY","JOB_FAILED","READMODEL_BATCH_COMPLETED","READMODEL_INDEXED","MODEL_LOADED","ReadModelStage","ReadModelIndexingStage","ModelLoadedEvent","JobPendingEvent","jobMeta","JobRunningEvent","JobWriteReadyEvent","submittedActionIds","collectionMemberships","JobReadReadyEvent","JobFailedEvent$1","ReadModelBatchCompletedEvent","batchSize","chainWaitDurationMs","preReadyDurationMs","emitDurationMs","postReadyDurationMs","ReadModelIndexedEvent","readModelName","durationMs","operationCount","success","IEventBus","K","subscribe","event","subscriber","emit","IJobAwaiter","waitForJob","JobAwaiter","eventBus","getJobStatus","pendingJobs","unsubscribers","subscribeToEvents","handleWriteReady","handleReadReady","handleJobFailed","checkAndResolveWaiters","ISubscriptionErrorHandler","SubscriptionErrorContext","handleError","context","eventType","subscriptionId","eventData","IReactorSubscriptionManager","onDocumentCreated","callback","search","onDocumentDeleted","onDocumentStateUpdated","onRelationshipChanged","childId","changeType","StreamQuery","IStreamStateReader","DecisionTarget","DecisionContext","scopeState","actionInput","StreamHistory","Projection","M","Partial","query","model","queryOverHistory","reads","decidingActions","operation","Evaluation","decision","reason","DecisionModel","projections","foldEvaluatedScope","evaluatesScope","decide","request","ctx","BuiltDecisionModel","appendCondition","DocumentChangeType","Created","Deleted","Updated","ParentAdded","ParentRemoved","ChildAdded","ChildRemoved","DocumentChangeEvent","documents","CreateDocumentOptions","parentIdentifier","documentModelVersion","UpgradeDocumentOptions","maxConflictRetries","IDriveClient","create","addFile","driveIdentifier","parentFolder","addFolder","removeNode","nodeId","renameNode","setPreferredEditorOnNode","preferredEditor","moveNode","srcNodeId","targetParentFolderId","copyNode","getNode","listNodes","ActionCandidate","ActionEvaluations","evaluations","allAllowed","anyAllowed","allDenied","anyDenied","IReactorClient","BatchExecutionRequest","BatchExecutionResult","BatchLoadRequest","BatchLoadResult","drives","getDocumentModelModules","namespace","getDocumentModelModule","isDocumentIdTaken","getOperations","documentIdentifier","getOutgoingRelationships","sourceIdentifier","getIncomingRelationships","targetIdentifier","getOutgoingRelationshipEdges","getIncomingRelationshipEdges","evaluateActions","candidates","createEmpty","documentModelType","getDocumentModelModuleForDocument","upgradeDocument","toVersion","createDocumentInDrive","execute","executeAsync","executeBatch","rename","setPreferredEditor","addRelationship","updateRelationship","removeRelationship","moveRelationship","sourceParentIdentifier","targetParentIdentifier","source","target","deleteDocument","propagate","deleteDocuments","identifiers","loadBatch","ICollectionMembershipCache","CachedDocumentMeta","documentScopeRevision","IDocumentMetaCache","getDocumentMeta","rebuildAtRevision","putDocumentMeta","OperationTable","opId","prevOpId","writeTimestampUtcMs","timestampUtcMs","action","skip","deniedReason","hash","KeyframeTable","DocumentCollectionTable","joinedOrdinal","leftOrdinal","OperationIndexOperationTable","SyncRemoteTable","collection_id","channel_type","channel_id","remote_name","channel_parameters","filter_document_ids","filter_scopes","filter_branch","push_state","push_last_success_utc_ms","push_last_failure_utc_ms","push_failure_count","pull_state","pull_last_success_utc_ms","pull_last_failure_utc_ms","pull_failure_count","bound_address","created_at","updated_at","SyncCursorTable","cursor_type","cursor_ordinal","last_synced_at_utc_ms","SyncDeadLetterTable","job_id","job_dependencies","document_id","error_source","error_message","error_type","GroupReferenceTable","Database$1","Keyframe","document_collections","operation_index_operations","group_references","sync_remotes","sync_cursors","sync_dead_letters","DocumentTable","DocumentRelationshipTable","IndexerStateTable","lastOperationId","lastOperationTimestamp","DocumentIndexerDatabase","Document","IndexerState","SanitizedArg","ErrorInfo","cause","ModuleRef","packageName","exportName","filePath","FactorySpec","module","initArgs","SignatureVerifierSpec","DocumentModelSpec","ModelManifestEntry","spec","DbConfig","host","port","database","user","password","ssl","applicationName","poolSize","connectionTimeoutMillis","idleTimeoutMillis","WorkerPoolConfig","enabled","numWorkers","workerType","heartbeatMs","workerPgPoolSize","JobWriteReadyPayload","InitMessage","JobExecutorConfig","correlationId","workerId","poolConfig","db","signatureVerifier","models","executorConfig","ExecuteMessage","AbortMessage","targetCorrelationId","ShutdownMessage","graceMs","LoadModelMessage","ParentMessage","ReadyMessage","ResultMessage","JobResult","writeReady","ModelLoadedMessage","ModelLoadFailedMessage","LogMessage","level","args","timestamp","HeartbeatMessage","inFlightCorrelationIds","MetricsMessage","counters","gauges","PoolAcquireSamplesMessage","poolName","durations","size","idle","waiting","WorkerMessage","FileModelSource","PackageModelSource","subpath","DocumentModelSource","RegistrationResult","item","IDocumentModelLoader","load","IDocumentModelRegistry","registerModules","modules","unregisterModules","documentTypes","getModule","getAllModules","getSupportedVersions","getLatestVersion","registerUpgradeManifests","manifests","unregisterUpgradeManifests","getUpgradeManifest","computeUpgradePath","fromVersion","getUpgradeReducer","RingBuffer","buffer","head","capacity","getAll","length","DocumentStream","ringBuffer","KyselyWriteCache","lruTracker","keyframeStore","operationStore","registry","config","withScopedStores","store","persistKeyframe","getStream","coldMissRebuild","applyPendingUpgrades","applyTailPendingUpgrades","applyPendingUpgrade","stampRevisions","operationAt","resolveModuleVersionForOp","warmMissRebuild","findNearestOlderSnapshot","makeStreamKey","getOrCreateStream","isKeyframeRevision","KyselyOperationStore","trx","queryExecutor","withTransaction","resolveUniqueConstraint","executeApply","acquireStreamLocks","insertGuarded","findIdempotentReplay","isCreate","rowToOperation","rowToOperationWithContext","KyselyKeyframeStore","ExecutionStores","writeCache","documentMetaCache","collectionMembershipCache","IExecutionScope","stores","operationsWithContext","completedAt","duration","ReactorFeatureFlags","documentDecisions","authEnforcement","authGroups","authConditions","featureFlags","maxSkipThreshold","maxConcurrency","jobTimeoutMs","deferredJobTtlMs","retryBaseDelayMs","retryMaxDelayMs","yieldDeadlineMs","batchApplies","JobExecutorEventTypes","JOB_STARTED","JOB_COMPLETED","EXECUTOR_STARTED","EXECUTOR_STOPPED","JobStartedEvent","startedAt","JobCompletedEvent","JobFailedEvent","willRetry","ExecutorStartedEvent","ExecutorStoppedEvent","stoppedAt","graceful","ExecutorManagerStatus","isRunning","numExecutors","activeJobs","totalJobsProcessed","DocumentDecisionModel","documentDecisionModel","RegisteredDecisionModel","AdmissionDecision","evaluation","documentVersion","deletedAtUtcIso","AdmissionConditions","carriedDocument","decideAtHead","cache","conditions","selectDecisionModel","flags","ALWAYS_READABLE_SCOPES","ReadonlySet","ReadGateOptions","withholdUninitialized","IReadGate","scopePredicate","readDecisionModel","BareReadGate","SeededStateReader","documentView","seed","assertAbsent","ModelReadGate","servesGroups","logger","servesGroupTo","servesThrough","servesGroup","ownPolicyPredicate","ActionEvaluationConfig","ReactorClient","IReactor","reactor","signer","subscriptionManager","jobAwaiter","documentIndexer","readGate","actionEvaluation","readSubject","readableScopes","gateDocument","getOperationsWithCompositeCursor","gateEdges","readRelationshipEdge","buildEvaluationTarget","removeAllIncomingRelationships","WorkerInFlightSnapshot","WorkerExecutionOutcome","IExecutorWorker","abort","loadModel","entry","isIdle","getInFlight","IJobExecutor","executeJob","IJobExecutorManager","getExecutors","getStatus","IJobTracker","registerJob","jobInfo","markRunning","markFailed","IQueue","enqueue","dequeue","dequeueNext","dequeueNextMatching","predicate","totalSize","clearAll","hasJobs","completeJob","failJob","retryJob","accounting","isDrained","block","onDrained","unblock","GroupReevaluationTrigger","queue","unsubscribe","onWriteReady","ViewStateTable","readModelId","lastOrdinal","DocumentSnapshotTable","content","lastOperationIndex","lastOperationHash","lastOperationOrdinal","lastUpdatedAt","snapshotVersion","isDeleted","deletedAt","SlugMappingTable","ProcessorCursorTable","processorId","factoryId","processorIndex","lastErrorTimestamp","DocumentViewDatabase","ViewState","DocumentSnapshot","SlugMapping","ProcessorCursor","InsertableDocumentSnapshot","IConsistencyTracker","update","getLatest","waitFor","serialize","hydrate","entries","makeConsistencyKey","ConsistencyTracker","waiters","deduplicateCoordinates","areCoordinatesSatisfied","checkWaiters","removeWaiter","PoolStats","PoolInstrumentation","getStats","onAcquire","listener","instrumentPgPool","pool","ForwardingPoolInstrumentation","pushSamples","updateStats","stats","GraphQLRequestErrorCategory","GraphQLRequestError","statusCode","category","codes","RECOVERABLE_GRAPHQL_ERROR_CODES","malformedStoredOperation","isRecoverableGraphQLError","DRIVE_AUTH_ERROR_MESSAGES","forbidden","authenticationRequired","DriveRequestError","isDriveAuthError","PollingChannelError","ChannelError","SyncOperationStatusCallback","SyncOperation","syncOp","prev","SyncOperationAggregateError","deliveredCount","emittedCount","callbacks","on","started","transported","executed","failed","transition","MailboxCallback","IMailbox","ReadonlyArray","ackOrdinal","latestOrdinal","advanceOrdinal","onAdded","onRemoved","pause","resume","flush","isPaused","Mailbox","itemsMap","addedCallbacks","removedCallbacks","paused","addedBuffer","removedBuffer","_ack","_latestOrdinal","SyncStatus","Synced","Outgoing","Incoming","OutgoingAndIncoming","SyncStatusChangeCallback","ISyncStatusTracker","IChannel","onChange","trackRemote","channel","untrackRemote","SyncStatusTracker","remotes","seen","handleAdded","handleRemoved","getOrCreateCounts","notifyChange","ConnectionStateChangeCallback","inbox","outbox","getConnectionState","onConnectionStateChange","triggerPull","notePoll","lastHolderPollUtcMs","IChannelFactory","instance","cursorStorage","RemoteMeta","Remote","ISyncManager","getByName","getById","bindRemote","waitForSync","getSyncStatus","onSyncStatusChange","ExecutionJobPlan","jobs","LoadJobPlan","externalDeps","kill","getDocumentModels","getBySlug","docId","ReactorFeatures","Database","SyncModule","syncManager","InProcessSyncModule","remoteStorage","deadLetterStorage","channelFactory","ReactorModule","documentModelRegistry","syncModule","DegradedComponent","component","InProcessReactorModule","jobTracker","executorManager","documentViewConsistencyTracker","documentIndexerConsistencyTracker","readModelCoordinator","processorManager","processorManagerConsistencyTracker","groupReevaluationTrigger","pools","degradedComponents","ReactorClientModule","client","reactorModule","InProcessReactorClientModule","DriveClient","runJobs","toError","documentExists","removeFileNode","IDocumentModelResolver","ensureModelLoaded","ModelLoadedBroadcastHook","DocumentModelResolver","loader","loadingModels","failedModelTypes","broadcastHook","modelLoadedHook","setBroadcastHook","hook","setModelLoadedHook","loadRegisterAndBroadcast","notifyPeersModelLoaded","NullDocumentModelResolver","WorkerFactory","ReadModelIndexingConfig","commitChunkSize","DEFAULT_COMMIT_CHUNK_SIZE","DEFAULT_READ_MODEL_YIELD_DEADLINE_MS","defaultReadModelIndexingConfig","unchunkedReadModelIndexingConfig","BaseReadModelConfig","rebuildStateOnInit","indexing","BaseReadModel","consistencyTracker","uncommittedOrdinal","commitOperations","rebuildStateForOperations","loadState","initializeState","saveState","updateConsistencyTracker","recordCommittedPrefix","persistCursor","clampCursorToPark","park","liftParkIfCommitted","BuiltInReadModelKind","ChainDepthReport","shardId","depth","ProjectionInitMessage","shardIndex","shardCount","preReadyKinds","postReadyKinds","chainDepthReportIntervalMs","ProjectionWriteReadyMessage","ProjectionDrainMessage","ProjectionShutdownMessage","ProjectionParentMessage","ProjectionReadyMessage","ProjectionInitFailedMessage","ProjectionReadReadyMessage","ProjectionReadModelIndexedMessage","ProjectionBatchCompletedMessage","ProjectionChainDepthMessage","ProjectionPoolAcquireSamplesMessage","ProjectionDrainedMessage","ProjectionLogMessage","ProjectionWorkerMessage","HybridProjectionOptions","onFatal","initTimeoutMs","shutdownGraceMs","drainTimeoutMs","createHybridProjectionCoordinatorFactory","ReadModelCoordinatorFactory","ProjectionTransportEventMap","exit","ProjectionTransportEvent","ProjectionTransportListener","E","payload","IProjectionTransport","postMessage","off","terminate","ProjectionWorkerFactory","ProjectionShardHooks","onReadReady","onShardFatal","ProjectionShardManagerConfig","factory","hostBus","poolInstrumentations","consistencyTrackers","ProjectionShardManager","shards","initPromises","pendingDrains","trackersByReadModelName","hostSubscription","isShuttingDown","emitReadReady","getShardDepths","routeWriteReady","dropWriteReady","handleWorkerMessage","advanceConsistencyTrackers","handlePoolAcquireSamples","failPendingInit","handleReady","handleDrained","releaseDrain","handleLog","handleTransportError","handleTransportExit","relayReadReady","relayReadModelIndexed","relayBatchCompleted","HybridProjectionCoordinatorOptions","manager","preReady","postReady","lookupOnly","HybridProjectionCoordinator","chains","acceptReadReady","runHostChain","indexWithTiming","emitBatchCompleted","emitReadModelIndexed","queueKeyFor","SignerConfig","verifier","MigrationStrategy","MigrationResult","migrationsExecuted","SyncBuilder","withChannelFactory","withRemoteStorage","storage","withCursorStorage","withDeadLetterStorage","withMaxDeadLettersPerRemote","withMaxInboxBatchSize","withMaxHeldOperationsPerRemote","withStaleRemotePollWindowMs","windowMs","build","driveContainerTypes","buildModule","ReadModelFactoryDeps","ReadModelFactory","deps","ReadModelCoordinatorFactoryDeps","ProjectionShardBuilderConfig","subscriptionNotificationReadModel","createProjectionShardManager","registerShutdownHook","WorkerPoolBase","WorkerPoolOptions","ReactorBuilder","documentModelSources","upgradeManifests","features","readModelFactories","writeCacheConfig","migrationStrategy","syncBuilder","readModelCoordinatorFactory","kyselyInstance","signalHandlersEnabled","queueInstance","channelScheme","jwtHandler","documentModelLoader","shutdownHooks","workerPool","resolvedModelManifest","moduleOnlyModelKeys","projectionShardConfig","projectionWorkerFactory","instrumentedPools","withLogger","withDocumentModelSources","sources","withUpgradeManifests","withFeatures","withReadModel","withReadModelFactory","withReadModelCoordinator","withReadModelCoordinatorFactory","withExecutor","executor","withExecutorConfig","withWriteCacheConfig","withDriveContainerTypes","withMigrationStrategy","strategy","withSync","withEventBus","withSignatureVerifier","withKysely","withInstrumentedPool","instrumentation","withQueue","withChannelScheme","scheme","withJwtHandler","handler","withDocumentModelLoader","withSignalHandlers","withShutdownHook","withWorkerPool","withProjectionShards","withProjectionWorkerFactory","getResolvedModelManifest","resolveReactorDbConfig","createDefaultProjectionWorkerFactory","createDefaultWorkerFactory","createPostgresDatabase","attachSignalHandlers","ReactorClientBuilder","reactorBuilder","withReactorBuilder","withReactor","withSigner","withSubscriptionManager","withJobAwaiter","withReadGate","resolveReadGate","resolveActionEvaluation","DEFAULT_DRIVE_CONTAINER_TYPES","Reactor","shutdownStatus","setShutdown","setCompleted","findByIds","findBySlugs","findByParentId","emitJobPending","ParsedDriveUrl","graphqlEndpoint","parseDriveUrl","driveIdFromUrl","AuthEnforcementDisabledError","RelationshipNotFoundError","createMutableShutdownStatus","initialState","value","ParsedPaging","offset","parsePagingOptions","defaultLimit","DefaultSubscriptionErrorHandler","DocumentCreatedCallback","DocumentDeletedCallback","DocumentStateUpdatedCallback","RelationshipChangedCallback","ReactorSubscriptionManager","Map","createdSubscriptions","deletedSubscriptions","updatedSubscriptions","relationshipSubscriptions","subscriptionCounter","errorHandler","notifyDocumentsCreated","notifyDocumentsDeleted","notifyDocumentsUpdated","notifyRelationshipChanged","childType","filterDocumentIds","filterDocuments","matchesRelationshipFilter","EventBus","eventTypeToSubscribers","InMemoryQueue","Set","resolver","queues","jobIdToQueueKey","docIdToJobId","jobIdToDocId","completedJobs","jobIndex","isBlocked","onDrainedCallback","isPausedFlag","toErrorInfo","createQueueKey","getQueue","isDocumentExecuting","markJobExecuting","markJobComplete","areDependenciesMet","getNextJobWithMetDependencies","getCreateDocumentType","deferJob","checkDrained","getPendingJobs","getExecutingJobIds","getJob","InMemoryJobTracker","JobExecutorFactory","SimpleJobExecutorManager","executorFactory","executors","deferredJobs","resultHandler","processNextJob","checkForMoreJobs","processExistingJobs","SimpleJobExecutor","decisionModel","signatureVerifierModule","documentActionHandler","executionScope","executeInScope","evictTouchedStreams","getCollectionMembershipsForOperations","processActions","prepareRegularWrite","commitPreparedWrites","canBatch","executeRegularActionsBatched","conditionsAgree","executeRegularActionsSequentially","executeRegularAction","positionByTimestamp","evaluatePositioned","evaluationOrder","firstNonMonotonicTimestamp","appendedOperations","reevaluateIfCriteriaMet","reevaluateDocument","executeReevaluationJob","executeLoadJob","accumulateResultOrReturnError","createForwardingLogger","msg","post","tags","errorToInfo","err","sanitizeArg","WeakSet","workerEntryPath","ModuleNotFoundError","requestedVersion","DuplicateModuleError","InvalidModuleError","DuplicateManifestError","DocumentModelRegistry","manifestsToRegister","buildDecisionModel","reader","definition","AuthDecisionModel","auth","authDecisionModel","SyncScopeGate","gate","scopePredicateById","OutOfOrderPair","firstOutOfOrderPair","requireStrict","IndexerDatabase","KyselyDocumentIndexer","_db","handleAddRelationship","handleRemoveRelationship","handleUpdateRelationship","ReadModelCoordinator","emitEmptyReadReady","runChain","Database$2","DeletedDocumentRead","NotFound","StateAtDeletion","KyselyDocumentView","deletedDocumentRead","idsWithStreams","liveIds","DOCUMENT_VIEW_READ_MODEL","DOCUMENT_INDEXER_READ_MODEL","ReactorReadModels","REACTOR_SCHEMA","runMigrations","schema","upTo","getMigrationStatus","MigrationInfo","KyselySyncCursorStorage","KyselySyncRemoteStorage","GqlRequestChannelFactory","GqlResponseChannelFactory","IPollTimer","setDelegate","delegate","triggerNow","GqlChannelConfig","fetch","fetchFn","GqlRequestChannel","bufferedOutbox","channelId","pollTimer","abortController","lastPersistedInboxOrdinal","lastPersistedOutboxOrdinal","pushRetryTimer","isPushing","pendingDrain","peerServesDecisionFields","isRecovering","connectionState","connectionStateCallbacks","transitionConnectionState","poll","handleRemoteDeadLetters","handlePollError","recoverFromChannelNotFound","resumePushAfterRecovery","pollSyncEnvelopes","rejectsDecisionFields","pollQuery","touchRemoteChannel","attemptPush","schedulePushRetry","drainOutbox","classifyError","pushSyncOperations","getAuthorizationHeader","executeGraphQL","poller","GqlResponseChannel","evictedOutboxFloor","appliedOutboxOrdinal","lastPollUtcMs","rememberUnserved","persistOutboxCursor","forgetEvictedBelow","unservedFloor","PollTimerConfig","intervalMs","maxQueueDepth","backpressureCheckIntervalMs","startPaused","IntervalPollTimer","timer","running","consecutiveFailures","tick","scheduleNext","scheduleRetry","scheduleBackpressureRecheck","getIntervalMs","setIntervalMs","ms","envelopesToSyncOperations","envelope","OperationBatch","trimMailboxFromAckOrdinal","mailbox","batchOperationsByDocument","consolidateSyncOperations","syncOps","classifyJobFailure","errorName","syncOperationErrorType","quarantinesDocument","IReactorProcessorHostModuleBase","getReadModel","ReactorHostModuleBaseOptions","Pick","createReactorHostModuleBase","KeyframeValidationIssue","keyframeHash","replayedHash","SnapshotValidationIssue","snapshotHash","StreamOrderIssue","ValidationResult","isConsistent","keyframeIssues","snapshotIssues","streamOrderIssues","RebuildResult","keyframesDeleted","scopesInvalidated","IDocumentIntegrityService","validateDocument","rebuildKeyframes","rebuildSnapshots","DocumentIntegrityService","findStreamOrderIssues","discoverScopes","PendingSlot","reservedAt","lowestRoutedOrdinal","settled","FactoryRun","ProcessorManagerOptions","legacyProcessorIds","ProcessorManager","factoryRegistry","processorsByDrive","pendingSlots","knownDrives","highestRoutedOrdinal","cursorCache","cursorWrites","draining","registerFactory","unregisterFactory","detectNewDrives","runs","reserved","detectDeletedDrives","enqueueRouted","bind","slot","records","creationOrdinal","creationItems","persisted","delivered","removeFactory","reserveSlot","runFactory","track","discard","highWater","allBound","allTrackedProcessors","isDriveCreation","discoverExistingDrives","loadAllCursors","lane","writeCursor","deleteCursors","InMemoryJobExecutor","ReactorJobFailedEvent","StorageDatabase","WorkerErrorInfo"],"sources":["../../../node_modules/.pnpm/kysely@0.28.16/node_modules/kysely/dist/esm/kysely.d.ts","../../reactor/dist/index.d.ts","../src/hypercore-operation-store.ts","../src/types.ts","../src/hypercore-atomic-transaction.ts","../src/storage-manager.ts","../src/key-encoding.ts"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../node_modules/.pnpm/kysely@0.28.16/node_modules/kysely/dist/esm/kysely.d.ts","../../reactor/dist/index.d.ts","../src/hypercore-operation-store.ts","../src/types.ts","../src/hypercore-atomic-transaction.ts","../src/storage-manager.ts","../src/key-encoding.ts"],"x_google_ignoreList":[0],"mappings":";;;;;;;QAoBQ;YACM;YAEA;aACG;;;;;;;;KCsSZ;EACH;EACA;;;;;KAKG,aAAa;EAChB,SAAS;EACT,SAAS;EACT,aAAa,QAAQ,aAAa;EAClC;EACA;;;;;;KAoUG;EACH;EACA;EACA;EACA;;;;;;KAMG;EACH,SAAS;;;;;;UAmBD;;EAER,iBAAiB,YAAY;;;;;;KAM1B;;EAEH,UAAU;;EAEV;;;;;;UAMQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BR,MAAM,oBAAoB,sBAAsB,eAAe,gBAAgB,kBAAkB,KAAK,KAAK,qBAAqB,eAAe,SAAS,aAAa,YAAY,kBAAkB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;EAuB3M,SAAS,oBAAoB,eAAe,gBAAgB,kBAAkB,SAAS,iBAAiB,SAAS,eAAe,SAAS,cAAc,QAAQ,aAAa;;;;;;;;;;EAU5K,WAAW,YAAY,SAAS,eAAe,SAAS,cAAc,QAAQ,aAAa;;;;;;;;;;;;;;;;;;;;;;EAsB3F,eAAe,oBAAoB,eAAe,gBAAgB,sBAAsB,SAAS,eAAe,SAAS,cAAc,QAAQ,aAAa;;;;;;;;;;;EAW5J,aAAa,oBAAoB,gBAAgB,SAAS,cAAc,QAAQ;;;;;;;;;;EAUhF,yBAAyB,oBAAoB,eAAe,gBAAgB,SAAS,cAAc;;;;;EAKnG,iBAAiB,oBAAoB,eAAe,gBAAgB,iBAAiB,SAAS,cAAc,QAAQ;;EAEpH,mBAAmB,oBAAoB,eAAe,gBAAgB,iBAAiB,SAAS,cAAc,QAAQ;;;;;;UAyE9G;;EAER;;EAEA;;EAEA;;EAEA;;;;qBC51BW,mCAAmC;UAG1B;UAFZ;EAER,YAAoB,KAAK;EAEnB,MACJ,oBACA,sBACA,eACA,gBACA,kBACA,KAAK,KAAK,qBAAqB,eAC/B,SAAS,aACT,YAAY,kBACX,QAAQ;;UA8BG;UAoBA;UA6FN;;;;;;;;;EAYF,SACJ,oBACA,eACA,gBACA,kBACA,SAAS,iBACT,SAAS,eACT,SAAS,cACR,QAAQ,aAAa;;;;;;;;;EAiGlB,WACJ,YACA,SAAS,eACT,SAAS,cACR,QAAQ,aAAa;;;;;;;EA2ElB,eACJ,oBACA,eACA,gBACA,sBACA,SAAS,eACT,SAAS,cACR,QAAQ,aAAa;EAwElB,aACJ,oBACA,gBACA,SAAS,cACR,QAAQ;;;;;;EAuCL,yBACJ,oBACA,eACA,gBACA,SAAS,cACR;EAyBG,iBACJ,oBACA,eACA,gBACA,iBACA,SAAS,cACR,QAAQ;EA6BL,mBACJ,oBACA,eACA,gBACA,iBACA,SAAS,cACR,QAAQ;UA2BH;UAiBA;;;;KChnBE,kBAAkB;EAC5B;EACA;EACA;EACA;;KAGU;EACV;;;;qBCNW,sCAAsC;UAIvC;UACA;UACA;UACA;UANF;EAER,YACU,oBACA,sBACA,eACA;EAGV,iBAAiB,YAAY;EAY7B,iBAAiB;;;;qBCvBN;UACH;UACA;EAER,YAAY;EAIN,QAAQ;EAUR,SAAS;EAOf,UAAU;;;;qBCxBC;wBAEG,IAAI;wBAIJ,aACd,oBACA,eACA,gBACA;wBAKc,gBACd,oBACA,eACA;wBAKc,WAAW;wBAIX;wBAIA,aACd,cACA,eACA;wBAKc,QACd,oBACA,eACA;wBAKc,WAAW;qBAId;KAED;EACV;EACA;EACA;EACA;;wBAGc,kBAAkB,cAAc;KAUpC;EACV;EACA;EACA;EACA;EACA;EACA,WAAW;;KAGD;EACV;EACA"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import "@powerhousedao/shared/document-model";
|
|
1
|
+
import { DOCUMENT_SCOPE_ACTION_TYPES } from "@powerhousedao/shared/document-model";
|
|
2
2
|
import Corestore from "corestore";
|
|
3
3
|
import Hyperbee from "hyperbee";
|
|
4
|
-
//#region ../reactor/dist/
|
|
4
|
+
//#region ../reactor/dist/forwarding-logger-CSsCJ38f.js
|
|
5
5
|
/**
|
|
6
6
|
* Thrown when an operation with the same identity already exists in the store.
|
|
7
7
|
*/
|
|
@@ -43,6 +43,7 @@ const APPEND_CONDITION_FAILED_PREFIX = "Append condition failed: ";
|
|
|
43
43
|
* conflict, not a fault: the caller retries against the new stream heads.
|
|
44
44
|
*/
|
|
45
45
|
var AppendConditionFailedError = class extends Error {
|
|
46
|
+
condition;
|
|
46
47
|
constructor(condition) {
|
|
47
48
|
const streams = condition.streams.map((s) => `${s.documentId}:${s.scope}:${s.branch}@${s.revision}`).join(", ");
|
|
48
49
|
super(`${APPEND_CONDITION_FAILED_PREFIX}a read-set stream advanced [${streams}]`);
|
|
@@ -57,19 +58,14 @@ var AppendConditionFailedError = class extends Error {
|
|
|
57
58
|
return message.startsWith(APPEND_CONDITION_FAILED_PREFIX);
|
|
58
59
|
}
|
|
59
60
|
};
|
|
60
|
-
|
|
61
|
-
const DOCUMENT_SCOPE_ACTIONS = new Set([
|
|
62
|
-
"CREATE_DOCUMENT",
|
|
63
|
-
"DELETE_DOCUMENT",
|
|
64
|
-
"UPGRADE_DOCUMENT",
|
|
65
|
-
"ADD_RELATIONSHIP",
|
|
66
|
-
"REMOVE_RELATIONSHIP",
|
|
67
|
-
"UPDATE_RELATIONSHIP"
|
|
68
|
-
]);
|
|
69
|
-
new Set([...DOCUMENT_SCOPE_ACTIONS].filter((type) => type !== "CREATE_DOCUMENT"));
|
|
61
|
+
new Set([...DOCUMENT_SCOPE_ACTION_TYPES].filter((type) => type !== "CREATE_DOCUMENT"));
|
|
70
62
|
//#endregion
|
|
71
63
|
//#region src/hypercore-atomic-transaction.ts
|
|
72
64
|
var HypercoreAtomicTransaction = class {
|
|
65
|
+
documentId;
|
|
66
|
+
documentType;
|
|
67
|
+
scope;
|
|
68
|
+
branch;
|
|
73
69
|
operations = [];
|
|
74
70
|
constructor(documentId, documentType, scope, branch) {
|
|
75
71
|
this.documentId = documentId;
|
|
@@ -131,6 +127,7 @@ function parseOperationKey(key) {
|
|
|
131
127
|
//#endregion
|
|
132
128
|
//#region src/hypercore-operation-store.ts
|
|
133
129
|
var HypercoreOperationStore = class {
|
|
130
|
+
bee;
|
|
134
131
|
applyLock = Promise.resolve();
|
|
135
132
|
constructor(bee) {
|
|
136
133
|
this.bee = bee;
|
|
@@ -219,8 +216,7 @@ var HypercoreOperationStore = class {
|
|
|
219
216
|
const prefix = operationPrefix(documentId, scope, branch);
|
|
220
217
|
const startIndex = revision + 1;
|
|
221
218
|
const parsedCursor = paging?.cursor ? Number.parseInt(paging.cursor, 10) : NaN;
|
|
222
|
-
const
|
|
223
|
-
const gt = prefix + pad(Math.max(startIndex, cursorIndex) - 1);
|
|
219
|
+
const gt = prefix + pad(Math.max(startIndex, Number.isFinite(parsedCursor) && parsedCursor > 0 ? parsedCursor : startIndex) - 1);
|
|
224
220
|
const lt = prefix + RANGE_UPPER_BOUND;
|
|
225
221
|
const limit = paging?.limit ? paging.limit + 1 : void 0;
|
|
226
222
|
const items = [];
|
|
@@ -273,8 +269,7 @@ var HypercoreOperationStore = class {
|
|
|
273
269
|
if (signal?.aborted) throw new Error("Operation aborted");
|
|
274
270
|
const startId = id + 1;
|
|
275
271
|
const parsedCursor = paging?.cursor ? Number.parseInt(paging.cursor, 10) : NaN;
|
|
276
|
-
const
|
|
277
|
-
const effectiveStart = Math.max(startId, cursorId);
|
|
272
|
+
const effectiveStart = Math.max(startId, Number.isFinite(parsedCursor) && parsedCursor > 0 ? parsedCursor : startId);
|
|
278
273
|
const gt = ordinalPrefix() + pad(effectiveStart - 1);
|
|
279
274
|
const lt = ordinalPrefix() + RANGE_UPPER_BOUND;
|
|
280
275
|
const limit = paging?.limit ? paging.limit + 1 : void 0;
|
|
@@ -402,6 +397,24 @@ var HypercoreOperationStore = class {
|
|
|
402
397
|
for (const operation of stored.results) if (latest === void 0 || operation.timestampUtcMs > latest) latest = operation.timestampUtcMs;
|
|
403
398
|
return latest;
|
|
404
399
|
}
|
|
400
|
+
async findOperationIds(documentId, scope, branch, opIds, signal) {
|
|
401
|
+
if (signal?.aborted) throw new Error("Operation aborted");
|
|
402
|
+
const found = /* @__PURE__ */ new Set();
|
|
403
|
+
if (opIds.length === 0) return found;
|
|
404
|
+
const wanted = new Set(opIds);
|
|
405
|
+
const stored = await this.getSince(documentId, scope, branch, -1, void 0, void 0, signal);
|
|
406
|
+
for (const operation of stored.results) if (wanted.has(operation.id)) found.add(operation.id);
|
|
407
|
+
return found;
|
|
408
|
+
}
|
|
409
|
+
async getOperationsByIds(documentId, scope, branch, opIds, signal) {
|
|
410
|
+
if (signal?.aborted) throw new Error("Operation aborted");
|
|
411
|
+
if (opIds.length === 0) return [];
|
|
412
|
+
const wanted = new Set(opIds);
|
|
413
|
+
const stored = await this.getSince(documentId, scope, branch, -1, void 0, void 0, signal);
|
|
414
|
+
const latest = /* @__PURE__ */ new Map();
|
|
415
|
+
for (const operation of stored.results) if (wanted.has(operation.id)) latest.set(operation.id, operation);
|
|
416
|
+
return [...latest.values()];
|
|
417
|
+
}
|
|
405
418
|
serializeOperation(op) {
|
|
406
419
|
return {
|
|
407
420
|
id: op.id,
|
|
@@ -441,7 +454,8 @@ var StorageManager = class {
|
|
|
441
454
|
}
|
|
442
455
|
async open() {
|
|
443
456
|
await this.store.ready();
|
|
444
|
-
|
|
457
|
+
const core = this.store.get({ name: "operations" });
|
|
458
|
+
this.bee = new Hyperbee(core, {
|
|
445
459
|
keyEncoding: "utf-8",
|
|
446
460
|
valueEncoding: "json"
|
|
447
461
|
});
|