@powerhousedao/reactor 6.2.2-dev.70 → 6.2.2-dev.71
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/{build-worker-executor-F755haxr.js → build-worker-executor-eOUlAYVK.js} +2 -2
- package/dist/{build-worker-executor-F755haxr.js.map → build-worker-executor-eOUlAYVK.js.map} +1 -1
- package/dist/{document-indexer-BL81knGJ.js → document-indexer-B1fwG9F-.js} +24 -4
- package/dist/document-indexer-B1fwG9F-.js.map +1 -0
- package/dist/{drive-container-types-yzXFiYNp.js → drive-container-types-KrIY8hW3.js} +104 -57
- package/dist/drive-container-types-KrIY8hW3.js.map +1 -0
- package/dist/entry.js +2 -2
- package/dist/index.d.ts +60 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -13
- package/dist/index.js.map +1 -1
- package/dist/projection-entry.js +3 -3
- package/dist/{worker-BVKRdUCq.js → worker-CEOppx56.js} +2 -2
- package/dist/{worker-BVKRdUCq.js.map → worker-CEOppx56.js.map} +1 -1
- package/package.json +4 -4
- package/dist/document-indexer-BL81knGJ.js.map +0 -1
- package/dist/drive-container-types-yzXFiYNp.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as selectDecisionModel, B as RevisionMismatchError, C as InvalidModuleError, D as createEmptyConsistencyToken, E as createConsistencyToken, F as AppendConditionFailedError, G as DocumentNotFoundError, H as AuthTimestampNotMonotonicError, I as DocumentAlreadyExistsError, J as UpgradePreconditionFailedError, K as ExcessiveReshuffleError, L as DocumentExistence, M as authDecisionModel, N as buildDecisionModel, O as targetDocumentId, P as APPEND_CONDITION_FAILED_PREFIX, R as DuplicateOperationError, S as DuplicateModuleError, T as GATED_DOCUMENT_ACTIONS, U as AuthorizationDeniedError, V as AuthEnforcementDisabledError, W as DocumentDeletedError, X as parsePagingOptions, Y as matchesScope, Z as throwIfAborted, _ as DocumentMetaCache, a as createForwardingPoolInstrumentation, b as JobExecutorEventTypes, c as KyselyKeyframeStore, d as DriveCollectionId, f as KyselyExecutionScope, g as KyselyOperationIndex, h as KyselyWriteCache, i as runMigrations, j as documentDecisionModel, k as decideAtHead, l as DocumentModelRegistry, m as EventBus, n as REACTOR_SCHEMA, o as instrumentPgPool, p as resolveFeatureFlags, q as InvalidOperationTimestampError, r as getMigrationStatus, s as KyselyOperationStore, t as DEFAULT_DRIVE_CONTAINER_TYPES, u as SimpleJobExecutor, v as CollectionMembershipCache, w as ModuleNotFoundError, x as DuplicateManifestError, y as DEFAULT_DEFERRED_JOB_TTL_MS, z as OptimisticLockError } from "./drive-container-types-KrIY8hW3.js";
|
|
2
2
|
import { n as ReactorEventTypes, t as EventBusAggregateError } from "./types-DMKLa0Ok.js";
|
|
3
3
|
import { i as WorkerInitFailedError, r as WorkerExitedError, t as WorkerAbortTimeoutError } from "./errors-D3S6Eysd.js";
|
|
4
|
-
import { a as DOCUMENT_INDEXER_READ_MODEL, c as BaseReadModel, i as KyselyDocumentView, n as ConsistencyTracker, o as DOCUMENT_VIEW_READ_MODEL, r as makeConsistencyKey, s as ReadModelCoordinator, t as KyselyDocumentIndexer } from "./document-indexer-
|
|
4
|
+
import { a as DOCUMENT_INDEXER_READ_MODEL, c as BaseReadModel, i as KyselyDocumentView, n as ConsistencyTracker, o as DOCUMENT_VIEW_READ_MODEL, r as makeConsistencyKey, s as ReadModelCoordinator, t as KyselyDocumentIndexer } from "./document-indexer-B1fwG9F-.js";
|
|
5
5
|
import { n as errorToInfo, r as sanitizeArg, t as createForwardingLogger } from "./forwarding-logger-BBkMSxuJ.js";
|
|
6
|
-
import { t as workerEntryPath } from "./worker-
|
|
6
|
+
import { t as workerEntryPath } from "./worker-CEOppx56.js";
|
|
7
7
|
import { DowngradeNotSupportedError, MAX_AUTH_GRANTS, UnsupportedDocumentModelVersionError, actions, actions as documentActions, createPresignedHeader, decide, deserializeSignature, garbageCollect, generateId, groupDocumentType, groupMembershipActionTypes, hashDocumentStateForScope, normalizeDocumentModelVersion, sortOperations, toTransportAction } from "@powerhousedao/shared/document-model";
|
|
8
8
|
import { addFile, addFolder, copyNode, deleteNode, driveCreateDocument, generateNodesCopy, getDescendants, handleTargetNameCollisions, isFileNode, isFolderNode, moveNode, updateNode } from "@powerhousedao/shared/document-drive";
|
|
9
9
|
import { v4 } from "uuid";
|
|
@@ -376,23 +376,22 @@ var DriveClient = class {
|
|
|
376
376
|
documentType: document.header.documentType,
|
|
377
377
|
parentFolder
|
|
378
378
|
})], this.signer, signal);
|
|
379
|
-
|
|
379
|
+
await this.runJobs([{
|
|
380
380
|
key: "document",
|
|
381
381
|
documentId,
|
|
382
382
|
scope: getSharedActionScope(documentActions),
|
|
383
383
|
branch: "main",
|
|
384
384
|
actions: documentActions,
|
|
385
385
|
dependsOn: []
|
|
386
|
-
},
|
|
386
|
+
}], signal);
|
|
387
|
+
await this.runJobs([{
|
|
387
388
|
key: "drive",
|
|
388
389
|
documentId: driveIdentifier,
|
|
389
390
|
scope: getSharedActionScope(driveActions),
|
|
390
391
|
branch: "main",
|
|
391
392
|
actions: driveActions,
|
|
392
|
-
dependsOn: [
|
|
393
|
-
}]
|
|
394
|
-
const completedJobs = await Promise.all(Object.values(batchResult.jobs).map((job) => this.client.waitForJob(job, signal)));
|
|
395
|
-
for (const job of completedJobs) if (job.status === JobStatus.FAILED) throw new Error(job.error?.message);
|
|
393
|
+
dependsOn: []
|
|
394
|
+
}], signal);
|
|
396
395
|
return this.client.get(documentId, void 0, signal);
|
|
397
396
|
}
|
|
398
397
|
async addFolder(driveIdentifier, name, parentFolder, signal) {
|
|
@@ -505,6 +504,22 @@ var DriveClient = class {
|
|
|
505
504
|
totalCount: filtered.length
|
|
506
505
|
};
|
|
507
506
|
}
|
|
507
|
+
/**
|
|
508
|
+
* Runs one batch to completion, throwing the first failure. The thrown error
|
|
509
|
+
* carries the job error's name, which is what callers classify on: an id
|
|
510
|
+
* collision has to be told apart from a transient failure.
|
|
511
|
+
*/
|
|
512
|
+
async runJobs(jobs, signal) {
|
|
513
|
+
const batchResult = await this.reactor.executeBatch({ jobs }, signal);
|
|
514
|
+
const completedJobs = await Promise.all(Object.values(batchResult.jobs).map((job) => this.client.waitForJob(job, signal)));
|
|
515
|
+
for (const job of completedJobs) if (job.status === JobStatus.FAILED) throw this.toError(job);
|
|
516
|
+
return completedJobs;
|
|
517
|
+
}
|
|
518
|
+
toError(job) {
|
|
519
|
+
const error = new Error(job.error?.message ?? "Job failed");
|
|
520
|
+
if (job.error?.name) error.name = job.error.name;
|
|
521
|
+
return error;
|
|
522
|
+
}
|
|
508
523
|
async documentExists(documentId, signal) {
|
|
509
524
|
try {
|
|
510
525
|
await this.client.get(documentId, void 0, signal);
|
|
@@ -797,7 +812,7 @@ var SeededStateReader = class {
|
|
|
797
812
|
if (DocumentNotFoundError.isError(error)) return;
|
|
798
813
|
let exists;
|
|
799
814
|
try {
|
|
800
|
-
exists = await this.documentView.exists([documentId], void 0, signal);
|
|
815
|
+
exists = await this.documentView.exists([documentId], DocumentExistence.LiveOnly, void 0, signal);
|
|
801
816
|
} catch {
|
|
802
817
|
throw error;
|
|
803
818
|
}
|
|
@@ -1132,6 +1147,11 @@ var ReactorClient = class {
|
|
|
1132
1147
|
async resolveIdOrSlug(identifier, view, signal) {
|
|
1133
1148
|
return this.documentView.resolveIdOrSlug(identifier, view, void 0, signal);
|
|
1134
1149
|
}
|
|
1150
|
+
/** True when the id is taken; a soft-deleted document's id is still taken. */
|
|
1151
|
+
async isDocumentIdTaken(documentId, signal) {
|
|
1152
|
+
this.logger.verbose("isDocumentIdTaken(@documentId)", documentId);
|
|
1153
|
+
return (await this.documentView.exists([documentId], DocumentExistence.IncludingDeleted, void 0, signal))[0];
|
|
1154
|
+
}
|
|
1135
1155
|
/**
|
|
1136
1156
|
* Retrieves operations for a document
|
|
1137
1157
|
*/
|
|
@@ -1758,7 +1778,7 @@ var JobResultHandler = class {
|
|
|
1758
1778
|
callbacks.deferJob(result.error.documentId, handle.job);
|
|
1759
1779
|
return;
|
|
1760
1780
|
}
|
|
1761
|
-
if (result.error && (DocumentDeletedError.isError(result.error) || DocumentNotFoundError.isError(result.error) || AuthorizationDeniedError.isError(result.error) || AuthTimestampNotMonotonicError.isError(result.error) || InvalidOperationTimestampError.isError(result.error) || ExcessiveReshuffleError.isError(result.error) || UpgradePreconditionFailedError.isError(result.error))) {
|
|
1781
|
+
if (result.error && (DocumentDeletedError.isError(result.error) || DocumentAlreadyExistsError.isError(result.error) || DocumentNotFoundError.isError(result.error) || AuthorizationDeniedError.isError(result.error) || AuthTimestampNotMonotonicError.isError(result.error) || InvalidOperationTimestampError.isError(result.error) || ExcessiveReshuffleError.isError(result.error) || UpgradePreconditionFailedError.isError(result.error))) {
|
|
1762
1782
|
const errorInfo = toErrorInfo(result.error);
|
|
1763
1783
|
this.jobTracker.markFailed(handle.job.id, errorInfo, handle.job);
|
|
1764
1784
|
this.eventBus.emit(ReactorEventTypes.JOB_FAILED, {
|
|
@@ -7981,7 +8001,7 @@ var ReactorBuilder = class {
|
|
|
7981
8001
|
const [{ WorkerHandle }, { createThreadTransport }, { workerEntryPath }] = await Promise.all([
|
|
7982
8002
|
import("./worker-handle-CrERzl8s.js"),
|
|
7983
8003
|
import("./transport-ByGviWdZ.js"),
|
|
7984
|
-
import("./worker-
|
|
8004
|
+
import("./worker-CEOppx56.js").then((n) => n.n)
|
|
7985
8005
|
]);
|
|
7986
8006
|
const poolConfig = {
|
|
7987
8007
|
enabled: true,
|
|
@@ -8513,6 +8533,6 @@ var DocumentIntegrityService = class {
|
|
|
8513
8533
|
}
|
|
8514
8534
|
};
|
|
8515
8535
|
//#endregion
|
|
8516
|
-
export { ALWAYS_READABLE_SCOPES, APPEND_CONDITION_FAILED_PREFIX, AppendConditionFailedError, AuthEnforcementDisabledError, BareReadGate, BaseReadModel, ChannelError, ChannelErrorSource, ChannelScheme, ConsistencyTracker, DEFAULT_DRIVE_CONTAINER_TYPES, DOCUMENT_INDEXER_READ_MODEL, DOCUMENT_VIEW_READ_MODEL, DRIVE_AUTH_ERROR_MESSAGES, DefaultSubscriptionErrorHandler, DocumentChangeType, DocumentIntegrityService, DocumentModelRegistry, DocumentModelResolver, DriveClient, DriveCollectionId, DuplicateManifestError, DuplicateModuleError, DuplicateOperationError, EventBus, EventBusAggregateError, GqlRequestChannel, GqlRequestChannelFactory, GqlResponseChannel, GqlResponseChannelFactory, SimpleJobExecutor as InMemoryJobExecutor, SimpleJobExecutor, InMemoryJobTracker, InMemoryQueue, IntervalPollTimer, InvalidModuleError, JobAwaiter, JobExecutorEventTypes, JobStatus, KyselyDocumentIndexer, KyselyDocumentView, KyselyKeyframeStore, KyselyOperationStore, KyselySyncCursorStorage, KyselySyncRemoteStorage, KyselyWriteCache, Mailbox, ModelReadGate, ModuleNotFoundError, NullDocumentModelResolver, OptimisticLockError, PollBehavior, PollingChannelError, ProcessorManager, PropagationMode, QueueEventTypes, REACTOR_SCHEMA, RECOVERABLE_GRAPHQL_ERROR_CODES, Reactor, ReactorBuilder, ReactorClient, ReactorClientBuilder, ReactorEventTypes, ReactorSubscriptionManager, ReadModelCoordinator, RelationalDbProcessor, RelationshipChangeType, RetryAccounting, RevisionMismatchError, SeededStateReader, SimpleJobExecutorManager, SyncBuilder, SyncEventTypes, SyncOperation, SyncOperationAggregateError, SyncOperationStatus, SyncScopeGate, SyncStatus, SyncStatusTracker, addRelationshipAction, authDecisionModel, batchOperationsByDocument, buildDecisionModel, classifyJobFailure, consolidateSyncOperations, createDocumentAction, createForwardingLogger, createMutableShutdownStatus, createReactorHostModuleBase, createRelationalDb, decideAtHead, deleteDocumentAction, documentActions, documentDecisionModel, driveIdFromUrl, envelopesToSyncOperations, errorToInfo, firstOutOfOrderPair, getMigrationStatus, instrumentPgPool, isDriveAuthError, isRecoverableGraphQLError, makeConsistencyKey, parseDriveUrl, parsePagingOptions, quarantinesDocument, readDecisionModel, removeRelationshipAction, runMigrations, sanitizeArg, selectDecisionModel, supportsLiveReadModelRegistration, syncOperationErrorType, trimMailboxFromAckOrdinal, updateRelationshipAction, upgradeDocumentAction, workerEntryPath };
|
|
8536
|
+
export { ALWAYS_READABLE_SCOPES, APPEND_CONDITION_FAILED_PREFIX, AppendConditionFailedError, AuthEnforcementDisabledError, BareReadGate, BaseReadModel, ChannelError, ChannelErrorSource, ChannelScheme, ConsistencyTracker, DEFAULT_DRIVE_CONTAINER_TYPES, DOCUMENT_INDEXER_READ_MODEL, DOCUMENT_VIEW_READ_MODEL, DRIVE_AUTH_ERROR_MESSAGES, DefaultSubscriptionErrorHandler, DocumentAlreadyExistsError, DocumentChangeType, DocumentExistence, DocumentIntegrityService, DocumentModelRegistry, DocumentModelResolver, DriveClient, DriveCollectionId, DuplicateManifestError, DuplicateModuleError, DuplicateOperationError, EventBus, EventBusAggregateError, GqlRequestChannel, GqlRequestChannelFactory, GqlResponseChannel, GqlResponseChannelFactory, SimpleJobExecutor as InMemoryJobExecutor, SimpleJobExecutor, InMemoryJobTracker, InMemoryQueue, IntervalPollTimer, InvalidModuleError, JobAwaiter, JobExecutorEventTypes, JobStatus, KyselyDocumentIndexer, KyselyDocumentView, KyselyKeyframeStore, KyselyOperationStore, KyselySyncCursorStorage, KyselySyncRemoteStorage, KyselyWriteCache, Mailbox, ModelReadGate, ModuleNotFoundError, NullDocumentModelResolver, OptimisticLockError, PollBehavior, PollingChannelError, ProcessorManager, PropagationMode, QueueEventTypes, REACTOR_SCHEMA, RECOVERABLE_GRAPHQL_ERROR_CODES, Reactor, ReactorBuilder, ReactorClient, ReactorClientBuilder, ReactorEventTypes, ReactorSubscriptionManager, ReadModelCoordinator, RelationalDbProcessor, RelationshipChangeType, RetryAccounting, RevisionMismatchError, SeededStateReader, SimpleJobExecutorManager, SyncBuilder, SyncEventTypes, SyncOperation, SyncOperationAggregateError, SyncOperationStatus, SyncScopeGate, SyncStatus, SyncStatusTracker, addRelationshipAction, authDecisionModel, batchOperationsByDocument, buildDecisionModel, classifyJobFailure, consolidateSyncOperations, createDocumentAction, createForwardingLogger, createMutableShutdownStatus, createReactorHostModuleBase, createRelationalDb, decideAtHead, deleteDocumentAction, documentActions, documentDecisionModel, driveIdFromUrl, envelopesToSyncOperations, errorToInfo, firstOutOfOrderPair, getMigrationStatus, instrumentPgPool, isDriveAuthError, isRecoverableGraphQLError, makeConsistencyKey, parseDriveUrl, parsePagingOptions, quarantinesDocument, readDecisionModel, removeRelationshipAction, runMigrations, sanitizeArg, selectDecisionModel, supportsLiveReadModelRegistration, syncOperationErrorType, trimMailboxFromAckOrdinal, updateRelationshipAction, upgradeDocumentAction, workerEntryPath };
|
|
8517
8537
|
|
|
8518
8538
|
//# sourceMappingURL=index.js.map
|