@powerhousedao/reactor 6.2.0-dev.3 → 6.2.0-dev.31
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-DDVXB921.js → build-worker-executor-DeJ2DW16.js} +2 -2
- package/dist/{build-worker-executor-DDVXB921.js.map → build-worker-executor-DeJ2DW16.js.map} +1 -1
- package/dist/{drive-container-types-BNpMlgT_.js → drive-container-types-BxnXaOAp.js} +128 -104
- package/dist/drive-container-types-BxnXaOAp.js.map +1 -0
- package/dist/entry.js +2 -2
- package/dist/index.d.ts +84 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +104 -26
- package/dist/index.js.map +1 -1
- package/dist/projection-entry.js +2 -2
- package/dist/{worker-SUoDhurA.js → worker-XYrQaEmt.js} +2 -2
- package/dist/{worker-SUoDhurA.js.map → worker-XYrQaEmt.js.map} +1 -1
- package/package.json +19 -7
- package/dist/drive-container-types-BNpMlgT_.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { A as parsePagingOptions, C as DuplicateManifestError, D as DocumentDeletedError, E as ModuleNotFoundError, O as DocumentNotFoundError, S as CollectionMembershipCache, T as InvalidModuleError, _ as KyselyWriteCache, a as createForwardingPoolInstrumentation, b as createConsistencyToken, c as DuplicateOperationError, d as KyselyKeyframeStore, f as DocumentModelRegistry, g as EventBus, h as KyselyExecutionScope, i as runMigrations, j as throwIfAborted, k as matchesScope, l as OptimisticLockError, m as
|
|
1
|
+
import { A as parsePagingOptions, C as DuplicateManifestError, D as DocumentDeletedError, E as ModuleNotFoundError, O as DocumentNotFoundError, S as CollectionMembershipCache, T as InvalidModuleError, _ as KyselyWriteCache, a as createForwardingPoolInstrumentation, b as createConsistencyToken, c as DuplicateOperationError, d as KyselyKeyframeStore, f as DocumentModelRegistry, g as EventBus, h as KyselyExecutionScope, i as runMigrations, j as throwIfAborted, k as matchesScope, l as OptimisticLockError, m as DriveCollectionId, n as REACTOR_SCHEMA, o as instrumentPgPool, p as SimpleJobExecutor, r as getMigrationStatus, s as KyselyOperationStore, t as DEFAULT_DRIVE_CONTAINER_TYPES, u as RevisionMismatchError, v as KyselyOperationIndex, w as DuplicateModuleError, x as createEmptyConsistencyToken, y as DocumentMetaCache } from "./drive-container-types-BxnXaOAp.js";
|
|
2
2
|
import { n as ReactorEventTypes, t as EventBusAggregateError } from "./types-CxSpmNGK.js";
|
|
3
3
|
import { i as WorkerInitFailedError, r as WorkerExitedError, t as WorkerAbortTimeoutError } from "./errors-D3S6Eysd.js";
|
|
4
4
|
import { a as ReadModelCoordinator, i as KyselyDocumentView, n as ConsistencyTracker, o as BaseReadModel, r as makeConsistencyKey, t as KyselyDocumentIndexer } from "./document-indexer-B2iLRB0o.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-XYrQaEmt.js";
|
|
7
7
|
import { actions, actions as documentActions, createPresignedHeader, generateId, hashDocumentStateForScope, replayDocument } 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";
|
|
@@ -737,6 +737,14 @@ var ReactorClient = class {
|
|
|
737
737
|
return await this.reactor.getByIdOrSlug(identifier, view, void 0, signal);
|
|
738
738
|
}
|
|
739
739
|
/**
|
|
740
|
+
* Resolves an identifier (id or slug) to the canonical document id, using the
|
|
741
|
+
* same lookup as the data path. Resolves against the "main" branch. Throws if
|
|
742
|
+
* the identifier cannot be resolved or is ambiguous.
|
|
743
|
+
*/
|
|
744
|
+
async resolveIdOrSlug(identifier, signal) {
|
|
745
|
+
return this.documentView.resolveIdOrSlug(identifier, void 0, void 0, signal);
|
|
746
|
+
}
|
|
747
|
+
/**
|
|
740
748
|
* Retrieves operations for a document
|
|
741
749
|
*/
|
|
742
750
|
async getOperations(documentIdentifier, view, filter, paging, signal) {
|
|
@@ -1858,6 +1866,7 @@ var InMemoryJobTracker = class {
|
|
|
1858
1866
|
if (!job) {
|
|
1859
1867
|
this.jobs.set(jobId, {
|
|
1860
1868
|
id: jobId,
|
|
1869
|
+
documentId: "",
|
|
1861
1870
|
status: JobStatus.RUNNING,
|
|
1862
1871
|
createdAtUtcIso: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1863
1872
|
consistencyToken: createEmptyConsistencyToken(),
|
|
@@ -1878,6 +1887,7 @@ var InMemoryJobTracker = class {
|
|
|
1878
1887
|
if (!existing) {
|
|
1879
1888
|
this.jobs.set(jobId, {
|
|
1880
1889
|
id: jobId,
|
|
1890
|
+
documentId: job?.documentId ?? "",
|
|
1881
1891
|
status: JobStatus.FAILED,
|
|
1882
1892
|
createdAtUtcIso: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1883
1893
|
completedAtUtcIso: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -3295,6 +3305,20 @@ var GraphQLRequestError = class extends Error {
|
|
|
3295
3305
|
this.statusCode = statusCode;
|
|
3296
3306
|
}
|
|
3297
3307
|
};
|
|
3308
|
+
/** Auth-rejection message fragments the switchboard emits. Shared with
|
|
3309
|
+
* reactor-api so server throws and this client check can't drift. */
|
|
3310
|
+
const DRIVE_AUTH_ERROR_MESSAGES = {
|
|
3311
|
+
forbidden: "Forbidden: insufficient permissions",
|
|
3312
|
+
authenticationRequired: "Forbidden: authentication required"
|
|
3313
|
+
};
|
|
3314
|
+
/** True when the remote rejected the caller as unauthenticated/unauthorized:
|
|
3315
|
+
* an HTTP 401/403, or a Forbidden/Unauthorized GraphQL error. */
|
|
3316
|
+
function isDriveAuthError(error) {
|
|
3317
|
+
if (!(error instanceof GraphQLRequestError)) return false;
|
|
3318
|
+
if (error.category === "http") return error.statusCode === 401 || error.statusCode === 403;
|
|
3319
|
+
if (error.category === "graphql") return Object.values(DRIVE_AUTH_ERROR_MESSAGES).some((m) => error.message.includes(m));
|
|
3320
|
+
return false;
|
|
3321
|
+
}
|
|
3298
3322
|
var PollingChannelError = class extends Error {
|
|
3299
3323
|
constructor(message) {
|
|
3300
3324
|
super(message);
|
|
@@ -3792,12 +3816,27 @@ var IntervalPollTimer = class {
|
|
|
3792
3816
|
let syncOpCounter = 0;
|
|
3793
3817
|
/**
|
|
3794
3818
|
* Serializes an action for GraphQL transport, converting signature tuples to strings.
|
|
3819
|
+
*
|
|
3820
|
+
* Only the fields declared by the GraphQL `ActionInput` type are forwarded. This
|
|
3821
|
+
* guards against stale runtime-only fields (e.g. a legacy `attachments` array on
|
|
3822
|
+
* operations persisted before the attachment-system removal) leaking into the
|
|
3823
|
+
* mutation variables, where the tightened schema would reject them.
|
|
3795
3824
|
*/
|
|
3796
3825
|
function serializeAction(action) {
|
|
3826
|
+
const base = {
|
|
3827
|
+
id: action.id,
|
|
3828
|
+
type: action.type,
|
|
3829
|
+
timestampUtcMs: action.timestampUtcMs,
|
|
3830
|
+
input: action.input,
|
|
3831
|
+
scope: action.scope
|
|
3832
|
+
};
|
|
3797
3833
|
const signer = action.context?.signer;
|
|
3798
|
-
if (!signer?.signatures) return action
|
|
3834
|
+
if (!signer?.signatures) return action.context ? {
|
|
3835
|
+
...base,
|
|
3836
|
+
context: action.context
|
|
3837
|
+
} : base;
|
|
3799
3838
|
return {
|
|
3800
|
-
...
|
|
3839
|
+
...base,
|
|
3801
3840
|
context: {
|
|
3802
3841
|
...action.context,
|
|
3803
3842
|
signer: {
|
|
@@ -3931,7 +3970,10 @@ var GqlRequestChannel = class {
|
|
|
3931
3970
|
isPushing = false;
|
|
3932
3971
|
pendingDrain = false;
|
|
3933
3972
|
receivingPages = false;
|
|
3973
|
+
isRecovering = false;
|
|
3934
3974
|
connectionState = "connecting";
|
|
3975
|
+
/** Latest unrecoverable error was an auth rejection; cleared on connect. */
|
|
3976
|
+
requiresAuth = false;
|
|
3935
3977
|
connectionStateCallbacks = /* @__PURE__ */ new Set();
|
|
3936
3978
|
constructor(logger, channelId, remoteName, cursorStorage, config, operationIndex, pollTimer) {
|
|
3937
3979
|
this.logger = logger;
|
|
@@ -4023,7 +4065,8 @@ var GqlRequestChannel = class {
|
|
|
4023
4065
|
lastFailureUtcMs: this.lastFailureUtcMs ?? 0,
|
|
4024
4066
|
pushBlocked: this.pushBlocked,
|
|
4025
4067
|
pushFailureCount: this.pushFailureCount,
|
|
4026
|
-
receivingPages: this.receivingPages
|
|
4068
|
+
receivingPages: this.receivingPages,
|
|
4069
|
+
requiresAuth: this.requiresAuth
|
|
4027
4070
|
};
|
|
4028
4071
|
}
|
|
4029
4072
|
onConnectionStateChange(callback) {
|
|
@@ -4054,6 +4097,7 @@ var GqlRequestChannel = class {
|
|
|
4054
4097
|
this.transitionConnectionState("connected");
|
|
4055
4098
|
}
|
|
4056
4099
|
transitionConnectionState(next) {
|
|
4100
|
+
if (next === "connected") this.requiresAuth = false;
|
|
4057
4101
|
if (this.connectionState === next) return;
|
|
4058
4102
|
this.connectionState = next;
|
|
4059
4103
|
const snapshot = this.getConnectionState();
|
|
@@ -4128,6 +4172,7 @@ var GqlRequestChannel = class {
|
|
|
4128
4172
|
this.logger.error("GqlChannel poll error (@FailureCount, @Classification): @Error", this.failureCount, classification, channelError);
|
|
4129
4173
|
if (classification === "unrecoverable") {
|
|
4130
4174
|
this.pollTimer.stop();
|
|
4175
|
+
this.requiresAuth = isDriveAuthError(err);
|
|
4131
4176
|
this.transitionConnectionState("error");
|
|
4132
4177
|
return true;
|
|
4133
4178
|
}
|
|
@@ -4139,16 +4184,23 @@ var GqlRequestChannel = class {
|
|
|
4139
4184
|
* Self-retries with backoff instead of restarting the poll timer on failure.
|
|
4140
4185
|
*/
|
|
4141
4186
|
recoverFromChannelNotFound() {
|
|
4187
|
+
if (this.isRecovering) return;
|
|
4188
|
+
this.isRecovering = true;
|
|
4142
4189
|
this.logger.info("GqlChannel @ChannelId not found on remote, re-registering...", this.channelId);
|
|
4143
4190
|
this.pollTimer.stop();
|
|
4144
4191
|
const attemptRecovery = (attempt) => {
|
|
4145
|
-
if (this.isShutdown)
|
|
4192
|
+
if (this.isShutdown) {
|
|
4193
|
+
this.isRecovering = false;
|
|
4194
|
+
return;
|
|
4195
|
+
}
|
|
4146
4196
|
this.touchRemoteChannel().then(({ ackOrdinal }) => {
|
|
4147
4197
|
this.logger.info("GqlChannel @ChannelId re-registered successfully", this.channelId);
|
|
4198
|
+
this.isRecovering = false;
|
|
4148
4199
|
this.failureCount = 0;
|
|
4149
4200
|
if (ackOrdinal > 0) trimMailboxFromAckOrdinal(this.outbox, ackOrdinal);
|
|
4150
4201
|
this.pollTimer.start();
|
|
4151
4202
|
this.transitionConnectionState("connected");
|
|
4203
|
+
this.resumePushAfterRecovery();
|
|
4152
4204
|
}).catch((recoveryError) => {
|
|
4153
4205
|
const err = recoveryError instanceof Error ? recoveryError : new Error(String(recoveryError));
|
|
4154
4206
|
const classification = this.classifyError(err);
|
|
@@ -4156,6 +4208,8 @@ var GqlRequestChannel = class {
|
|
|
4156
4208
|
this.failureCount++;
|
|
4157
4209
|
this.lastFailureUtcMs = Date.now();
|
|
4158
4210
|
if (classification === "unrecoverable") {
|
|
4211
|
+
this.isRecovering = false;
|
|
4212
|
+
this.requiresAuth = isDriveAuthError(err);
|
|
4159
4213
|
this.transitionConnectionState("error");
|
|
4160
4214
|
return;
|
|
4161
4215
|
}
|
|
@@ -4167,6 +4221,22 @@ var GqlRequestChannel = class {
|
|
|
4167
4221
|
attemptRecovery(1);
|
|
4168
4222
|
}
|
|
4169
4223
|
/**
|
|
4224
|
+
* Resumes pushing outbox items that were blocked while the channel was being
|
|
4225
|
+
* recreated. Called after a successful re-registration.
|
|
4226
|
+
*/
|
|
4227
|
+
resumePushAfterRecovery() {
|
|
4228
|
+
if (this.isShutdown) return;
|
|
4229
|
+
if (!this.pushBlocked) return;
|
|
4230
|
+
if (this.pushRetryTimer) {
|
|
4231
|
+
clearTimeout(this.pushRetryTimer);
|
|
4232
|
+
this.pushRetryTimer = null;
|
|
4233
|
+
}
|
|
4234
|
+
this.pushBlocked = false;
|
|
4235
|
+
this.pushFailureCount = 0;
|
|
4236
|
+
const items = this.outbox.items;
|
|
4237
|
+
if (items.length > 0) this.attemptPush([...items]);
|
|
4238
|
+
}
|
|
4239
|
+
/**
|
|
4170
4240
|
* Queries the remote GraphQL endpoint for sync envelopes.
|
|
4171
4241
|
*/
|
|
4172
4242
|
async pollSyncEnvelopes(ackOrdinal, latestOrdinal) {
|
|
@@ -4192,13 +4262,6 @@ var GqlRequestChannel = class {
|
|
|
4192
4262
|
timestampUtcMs
|
|
4193
4263
|
input
|
|
4194
4264
|
scope
|
|
4195
|
-
attachments {
|
|
4196
|
-
data
|
|
4197
|
-
mimeType
|
|
4198
|
-
hash
|
|
4199
|
-
extension
|
|
4200
|
-
fileName
|
|
4201
|
-
}
|
|
4202
4265
|
context {
|
|
4203
4266
|
signer {
|
|
4204
4267
|
user {
|
|
@@ -4264,7 +4327,7 @@ var GqlRequestChannel = class {
|
|
|
4264
4327
|
async touchRemoteChannel() {
|
|
4265
4328
|
let sinceTimestampUtcMs = "0";
|
|
4266
4329
|
try {
|
|
4267
|
-
const result = await this.operationIndex.getLatestTimestampForCollection(this.config.collectionId);
|
|
4330
|
+
const result = await this.operationIndex.getLatestTimestampForCollection(this.config.collectionId.key);
|
|
4268
4331
|
if (result) sinceTimestampUtcMs = result;
|
|
4269
4332
|
} catch {}
|
|
4270
4333
|
const mutation = `
|
|
@@ -4278,7 +4341,7 @@ var GqlRequestChannel = class {
|
|
|
4278
4341
|
const variables = { input: {
|
|
4279
4342
|
id: this.channelId,
|
|
4280
4343
|
name: this.channelId,
|
|
4281
|
-
collectionId: this.config.collectionId,
|
|
4344
|
+
collectionId: this.config.collectionId.key,
|
|
4282
4345
|
filter: {
|
|
4283
4346
|
documentId: this.config.filter.documentId,
|
|
4284
4347
|
scope: this.config.filter.scope,
|
|
@@ -4309,6 +4372,12 @@ var GqlRequestChannel = class {
|
|
|
4309
4372
|
this.pendingDrain = false;
|
|
4310
4373
|
if (this.isShutdown) return;
|
|
4311
4374
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
4375
|
+
if (err.message.includes("Channel not found")) {
|
|
4376
|
+
this.pushBlocked = true;
|
|
4377
|
+
this.transitionConnectionState("reconnecting");
|
|
4378
|
+
this.recoverFromChannelNotFound();
|
|
4379
|
+
return;
|
|
4380
|
+
}
|
|
4312
4381
|
if (this.classifyError(err) === "recoverable") {
|
|
4313
4382
|
this.pushFailureCount++;
|
|
4314
4383
|
this.pushBlocked = true;
|
|
@@ -4320,6 +4389,7 @@ var GqlRequestChannel = class {
|
|
|
4320
4389
|
for (const syncOp of syncOps) syncOp.failed(channelError);
|
|
4321
4390
|
this.deadLetter.add(...syncOps);
|
|
4322
4391
|
this.outbox.remove(...syncOps);
|
|
4392
|
+
this.requiresAuth = isDriveAuthError(err);
|
|
4323
4393
|
this.transitionConnectionState("error");
|
|
4324
4394
|
}
|
|
4325
4395
|
});
|
|
@@ -4612,7 +4682,8 @@ var GqlResponseChannel = class {
|
|
|
4612
4682
|
lastFailureUtcMs: 0,
|
|
4613
4683
|
pushBlocked: false,
|
|
4614
4684
|
pushFailureCount: 0,
|
|
4615
|
-
receivingPages: false
|
|
4685
|
+
receivingPages: false,
|
|
4686
|
+
requiresAuth: false
|
|
4616
4687
|
};
|
|
4617
4688
|
}
|
|
4618
4689
|
onConnectionStateChange(callback) {
|
|
@@ -4811,7 +4882,7 @@ function rowToRemoteRecord(row) {
|
|
|
4811
4882
|
return {
|
|
4812
4883
|
id: row.channel_id,
|
|
4813
4884
|
name: row.name,
|
|
4814
|
-
collectionId: row.collection_id,
|
|
4885
|
+
collectionId: DriveCollectionId.fromKey(row.collection_id),
|
|
4815
4886
|
channelConfig: {
|
|
4816
4887
|
type: row.channel_type,
|
|
4817
4888
|
parameters: row.channel_parameters ?? {}
|
|
@@ -4841,13 +4912,13 @@ function rowToRemoteRecord(row) {
|
|
|
4841
4912
|
function remoteRecordToRow(remote) {
|
|
4842
4913
|
return {
|
|
4843
4914
|
name: remote.name,
|
|
4844
|
-
collection_id: remote.collectionId,
|
|
4915
|
+
collection_id: remote.collectionId.key,
|
|
4845
4916
|
channel_type: remote.channelConfig.type,
|
|
4846
4917
|
channel_id: remote.id,
|
|
4847
4918
|
remote_name: remote.name,
|
|
4848
4919
|
channel_parameters: remote.channelConfig.parameters,
|
|
4849
|
-
filter_document_ids: remote.filter.documentId.length > 0 ? remote.filter.documentId : null,
|
|
4850
|
-
filter_scopes: remote.filter.scope.length > 0 ? remote.filter.scope : null,
|
|
4920
|
+
filter_document_ids: remote.filter.documentId.length > 0 ? JSON.stringify(remote.filter.documentId) : null,
|
|
4921
|
+
filter_scopes: remote.filter.scope.length > 0 ? JSON.stringify(remote.filter.scope) : null,
|
|
4851
4922
|
filter_branch: remote.filter.branch,
|
|
4852
4923
|
push_state: remote.status.push.state,
|
|
4853
4924
|
push_last_success_utc_ms: remote.status.push.lastSuccessUtcMs ? new Date(remote.status.push.lastSuccessUtcMs).toISOString() : null,
|
|
@@ -4994,7 +5065,7 @@ var BatchAggregator = class {
|
|
|
4994
5065
|
if (!this.driveContainerTypes.has(op.context.documentType)) continue;
|
|
4995
5066
|
const input = action.input;
|
|
4996
5067
|
if (!input?.sourceId || !input.targetId) continue;
|
|
4997
|
-
const collectionId =
|
|
5068
|
+
const collectionId = DriveCollectionId.forDrive(input.sourceId, op.context.branch).key;
|
|
4998
5069
|
if (!(input.targetId in mergedMemberships)) mergedMemberships[input.targetId] = [];
|
|
4999
5070
|
if (!mergedMemberships[input.targetId].includes(collectionId)) mergedMemberships[input.targetId].push(collectionId);
|
|
5000
5071
|
}
|
|
@@ -5361,7 +5432,7 @@ var SyncManager = class {
|
|
|
5361
5432
|
}, options = { sinceTimestampUtcMs: "0" }, id) {
|
|
5362
5433
|
if (this.isShutdown) throw new Error("SyncManager is shutdown and cannot add remotes");
|
|
5363
5434
|
if (this.remotes.has(name)) throw new Error(`Remote with name '${name}' already exists`);
|
|
5364
|
-
this.logger.debug("Adding remote (@name, @collectionId, @channelConfig, @filter, @options, @id)", name, collectionId, channelConfig, filter, options, id);
|
|
5435
|
+
this.logger.debug("Adding remote (@name, @collectionId, @channelConfig, @filter, @options, @id)", name, collectionId.key, channelConfig, filter, options, id);
|
|
5365
5436
|
const remoteId = id ?? crypto.randomUUID();
|
|
5366
5437
|
const remoteRecord = {
|
|
5367
5438
|
id: remoteId,
|
|
@@ -5519,7 +5590,7 @@ var SyncManager = class {
|
|
|
5519
5590
|
this.logger.debug("Loaded @count persisted dead letters for remote @name", records.length, remote.name);
|
|
5520
5591
|
}
|
|
5521
5592
|
getRemotesForCollection(collectionId) {
|
|
5522
|
-
return Array.from(this.remotes.values()).filter((remote) => remote.collectionId === collectionId);
|
|
5593
|
+
return Array.from(this.remotes.values()).filter((remote) => remote.collectionId.key === collectionId);
|
|
5523
5594
|
}
|
|
5524
5595
|
async processCompleteBatch(batch) {
|
|
5525
5596
|
if (this.isShutdown) return;
|
|
@@ -5702,7 +5773,7 @@ var SyncManager = class {
|
|
|
5702
5773
|
}
|
|
5703
5774
|
remote.channel.outbox.add(...syncOps);
|
|
5704
5775
|
};
|
|
5705
|
-
let page = await this.operationIndex.find(remote.collectionId, ackOrdinal, { excludeSourceRemote: remote.name }, void 0, composedSignal);
|
|
5776
|
+
let page = await this.operationIndex.find(remote.collectionId.key, ackOrdinal, { excludeSourceRemote: remote.name }, void 0, composedSignal);
|
|
5706
5777
|
let carry = [];
|
|
5707
5778
|
let hasMore;
|
|
5708
5779
|
do {
|
|
@@ -6021,6 +6092,7 @@ var Reactor = class {
|
|
|
6021
6092
|
};
|
|
6022
6093
|
const jobInfo = {
|
|
6023
6094
|
id: jobId,
|
|
6095
|
+
documentId: job.documentId,
|
|
6024
6096
|
status: JobStatus.PENDING,
|
|
6025
6097
|
createdAtUtcIso,
|
|
6026
6098
|
consistencyToken: {
|
|
@@ -6059,6 +6131,7 @@ var Reactor = class {
|
|
|
6059
6131
|
};
|
|
6060
6132
|
const jobInfo = {
|
|
6061
6133
|
id: jobId,
|
|
6134
|
+
documentId: job.documentId,
|
|
6062
6135
|
status: JobStatus.PENDING,
|
|
6063
6136
|
createdAtUtcIso,
|
|
6064
6137
|
consistencyToken: {
|
|
@@ -6096,6 +6169,7 @@ var Reactor = class {
|
|
|
6096
6169
|
};
|
|
6097
6170
|
const jobInfo = {
|
|
6098
6171
|
id: jobId,
|
|
6172
|
+
documentId: job.documentId,
|
|
6099
6173
|
status: JobStatus.PENDING,
|
|
6100
6174
|
createdAtUtcIso,
|
|
6101
6175
|
consistencyToken: {
|
|
@@ -6135,6 +6209,7 @@ var Reactor = class {
|
|
|
6135
6209
|
};
|
|
6136
6210
|
const jobInfo = {
|
|
6137
6211
|
id: jobId,
|
|
6212
|
+
documentId: job.documentId,
|
|
6138
6213
|
status: JobStatus.PENDING,
|
|
6139
6214
|
createdAtUtcIso,
|
|
6140
6215
|
consistencyToken: {
|
|
@@ -6169,6 +6244,7 @@ var Reactor = class {
|
|
|
6169
6244
|
for (const jobPlan of request.jobs) {
|
|
6170
6245
|
const jobInfo = {
|
|
6171
6246
|
id: planKeyToJobId.get(jobPlan.key),
|
|
6247
|
+
documentId: jobPlan.documentId,
|
|
6172
6248
|
status: JobStatus.PENDING,
|
|
6173
6249
|
createdAtUtcIso,
|
|
6174
6250
|
consistencyToken: {
|
|
@@ -6238,6 +6314,7 @@ var Reactor = class {
|
|
|
6238
6314
|
for (const jobPlan of request.jobs) {
|
|
6239
6315
|
const jobInfo = {
|
|
6240
6316
|
id: planKeyToJobId.get(jobPlan.key),
|
|
6317
|
+
documentId: jobPlan.documentId,
|
|
6241
6318
|
status: JobStatus.PENDING,
|
|
6242
6319
|
createdAtUtcIso,
|
|
6243
6320
|
consistencyToken: {
|
|
@@ -6310,6 +6387,7 @@ var Reactor = class {
|
|
|
6310
6387
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
6311
6388
|
return Promise.resolve({
|
|
6312
6389
|
id: jobId,
|
|
6390
|
+
documentId: "",
|
|
6313
6391
|
status: JobStatus.FAILED,
|
|
6314
6392
|
createdAtUtcIso: now,
|
|
6315
6393
|
completedAtUtcIso: now,
|
|
@@ -6785,7 +6863,7 @@ var ReactorBuilder = class {
|
|
|
6785
6863
|
const [{ WorkerHandle }, { createThreadTransport }, { workerEntryPath }] = await Promise.all([
|
|
6786
6864
|
import("./worker-handle-B1w03nRA.js"),
|
|
6787
6865
|
import("./transport-ByGviWdZ.js"),
|
|
6788
|
-
import("./worker-
|
|
6866
|
+
import("./worker-XYrQaEmt.js").then((n) => n.n)
|
|
6789
6867
|
]);
|
|
6790
6868
|
const db = this.workerDbConfig;
|
|
6791
6869
|
const signatureVerifier = this.workerSignatureVerifierSpec;
|
|
@@ -7152,6 +7230,6 @@ var DocumentIntegrityService = class {
|
|
|
7152
7230
|
}
|
|
7153
7231
|
};
|
|
7154
7232
|
//#endregion
|
|
7155
|
-
export { BaseReadModel, ChannelError, ChannelErrorSource, ChannelScheme, ConsistencyTracker, DEFAULT_DRIVE_CONTAINER_TYPES, DefaultSubscriptionErrorHandler, DocumentChangeType, DocumentIntegrityService, DocumentModelRegistry, DocumentModelResolver, DriveClient, 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, ModuleNotFoundError, NullDocumentModelResolver, OptimisticLockError, PollBehavior, PollingChannelError, ProcessorManager, PropagationMode, QueueEventTypes, REACTOR_SCHEMA, Reactor, ReactorBuilder, ReactorClient, ReactorClientBuilder, ReactorEventTypes, ReactorSubscriptionManager, ReadModelCoordinator, RelationalDbProcessor, RelationshipChangeType, RevisionMismatchError, SimpleJobExecutorManager, SyncBuilder, SyncEventTypes, SyncOperation, SyncOperationAggregateError, SyncOperationStatus, SyncStatus, SyncStatusTracker, addRelationshipAction, batchOperationsByDocument, consolidateSyncOperations, createDocumentAction, createForwardingLogger, createMutableShutdownStatus, createRelationalDb, deleteDocumentAction, documentActions,
|
|
7233
|
+
export { BaseReadModel, ChannelError, ChannelErrorSource, ChannelScheme, ConsistencyTracker, DEFAULT_DRIVE_CONTAINER_TYPES, 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, ModuleNotFoundError, NullDocumentModelResolver, OptimisticLockError, PollBehavior, PollingChannelError, ProcessorManager, PropagationMode, QueueEventTypes, REACTOR_SCHEMA, Reactor, ReactorBuilder, ReactorClient, ReactorClientBuilder, ReactorEventTypes, ReactorSubscriptionManager, ReadModelCoordinator, RelationalDbProcessor, RelationshipChangeType, RevisionMismatchError, SimpleJobExecutorManager, SyncBuilder, SyncEventTypes, SyncOperation, SyncOperationAggregateError, SyncOperationStatus, SyncStatus, SyncStatusTracker, addRelationshipAction, batchOperationsByDocument, consolidateSyncOperations, createDocumentAction, createForwardingLogger, createMutableShutdownStatus, createRelationalDb, deleteDocumentAction, documentActions, driveIdFromUrl, envelopesToSyncOperations, errorToInfo, getMigrationStatus, instrumentPgPool, isDriveAuthError, makeConsistencyKey, parseDriveUrl, parsePagingOptions, removeRelationshipAction, runMigrations, sanitizeArg, trimMailboxFromAckOrdinal, updateRelationshipAction, upgradeDocumentAction, workerEntryPath };
|
|
7156
7234
|
|
|
7157
7235
|
//# sourceMappingURL=index.js.map
|