@powerhousedao/reactor 5.0.0-staging.8 → 5.0.1-staging.1
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/src/cache/buffer/ring-buffer.d.ts +37 -0
- package/dist/src/cache/buffer/ring-buffer.d.ts.map +1 -0
- package/dist/src/cache/buffer/ring-buffer.js +69 -0
- package/dist/src/cache/buffer/ring-buffer.js.map +1 -0
- package/dist/src/cache/kysely-write-cache.d.ts +133 -0
- package/dist/src/cache/kysely-write-cache.d.ts.map +1 -0
- package/dist/src/cache/kysely-write-cache.js +375 -0
- package/dist/src/cache/kysely-write-cache.js.map +1 -0
- package/dist/src/cache/lru/lru-tracker.d.ts +15 -0
- package/dist/src/cache/lru/lru-tracker.d.ts.map +1 -0
- package/dist/src/cache/lru/lru-tracker.js +96 -0
- package/dist/src/cache/lru/lru-tracker.js.map +1 -0
- package/dist/src/cache/types.d.ts +42 -0
- package/dist/src/cache/types.d.ts.map +1 -0
- package/dist/src/cache/types.js +2 -0
- package/dist/src/cache/types.js.map +1 -0
- package/dist/src/cache/write/interfaces.d.ts +83 -0
- package/dist/src/cache/write/interfaces.d.ts.map +1 -0
- package/dist/src/cache/write/interfaces.js +2 -0
- package/dist/src/cache/write/interfaces.js.map +1 -0
- package/dist/src/client/reactor-client.d.ts +103 -0
- package/dist/src/client/reactor-client.d.ts.map +1 -0
- package/dist/src/client/reactor-client.js +184 -0
- package/dist/src/client/reactor-client.js.map +1 -0
- package/dist/src/client/types.d.ts +213 -0
- package/dist/src/client/types.d.ts.map +1 -0
- package/dist/src/client/types.js +14 -0
- package/dist/src/client/types.js.map +1 -0
- package/dist/src/core/builder.d.ts +20 -0
- package/dist/src/core/builder.d.ts.map +1 -0
- package/dist/src/core/builder.js +47 -0
- package/dist/src/core/builder.js.map +1 -0
- package/dist/src/{reactor.d.ts → core/reactor.d.ts} +13 -30
- package/dist/src/core/reactor.d.ts.map +1 -0
- package/dist/src/{reactor.js → core/reactor.js} +147 -111
- package/dist/src/core/reactor.js.map +1 -0
- package/dist/src/{interfaces/reactor.d.ts → core/types.d.ts} +7 -7
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/core/types.js +2 -0
- package/dist/src/core/types.js.map +1 -0
- package/dist/src/{utils.d.ts → core/utils.d.ts} +2 -2
- package/dist/src/core/utils.d.ts.map +1 -0
- package/dist/src/core/utils.js.map +1 -0
- package/dist/src/events/event-bus.d.ts +2 -2
- package/dist/src/events/event-bus.d.ts.map +1 -1
- package/dist/src/events/event-bus.js +1 -1
- package/dist/src/events/event-bus.js.map +1 -1
- package/dist/src/events/interfaces.d.ts +1 -1
- package/dist/src/events/interfaces.d.ts.map +1 -1
- package/dist/src/events/types.d.ts +14 -0
- package/dist/src/events/types.d.ts.map +1 -1
- package/dist/src/events/types.js +6 -0
- package/dist/src/events/types.js.map +1 -1
- package/dist/src/executor/interfaces.d.ts +2 -2
- package/dist/src/executor/interfaces.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts +5 -1
- package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor-manager.js +98 -36
- package/dist/src/executor/simple-job-executor-manager.js.map +1 -1
- package/dist/src/executor/simple-job-executor.d.ts +32 -3
- package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
- package/dist/src/executor/simple-job-executor.js +436 -17
- package/dist/src/executor/simple-job-executor.js.map +1 -1
- package/dist/src/executor/types.d.ts +10 -3
- package/dist/src/executor/types.d.ts.map +1 -1
- package/dist/src/executor/types.js.map +1 -1
- package/dist/src/executor/util.d.ts +47 -0
- package/dist/src/executor/util.d.ts.map +1 -0
- package/dist/src/executor/util.js +113 -0
- package/dist/src/executor/util.js.map +1 -0
- package/dist/src/index.d.ts +23 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +30 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts +15 -0
- package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -0
- package/dist/src/job-tracker/in-memory-job-tracker.js +78 -0
- package/dist/src/job-tracker/in-memory-job-tracker.js.map +1 -0
- package/dist/src/job-tracker/index.d.ts +3 -0
- package/dist/src/job-tracker/index.d.ts.map +1 -0
- package/dist/src/job-tracker/index.js +2 -0
- package/dist/src/job-tracker/index.js.map +1 -0
- package/dist/src/job-tracker/interfaces.d.ts +41 -0
- package/dist/src/job-tracker/interfaces.d.ts.map +1 -0
- package/dist/src/job-tracker/interfaces.js +2 -0
- package/dist/src/job-tracker/interfaces.js.map +1 -0
- package/dist/src/queue/interfaces.d.ts +1 -1
- package/dist/src/queue/interfaces.d.ts.map +1 -1
- package/dist/src/queue/job-execution-handle.d.ts +2 -1
- package/dist/src/queue/job-execution-handle.d.ts.map +1 -1
- package/dist/src/queue/job-execution-handle.js.map +1 -1
- package/dist/src/queue/queue.d.ts +3 -3
- package/dist/src/queue/queue.d.ts.map +1 -1
- package/dist/src/queue/queue.js +47 -25
- package/dist/src/queue/queue.js.map +1 -1
- package/dist/src/queue/types.d.ts +7 -5
- package/dist/src/queue/types.d.ts.map +1 -1
- package/dist/src/queue/types.js.map +1 -1
- package/dist/src/read-models/coordinator.d.ts +38 -0
- package/dist/src/read-models/coordinator.d.ts.map +1 -0
- package/dist/src/read-models/coordinator.js +62 -0
- package/dist/src/read-models/coordinator.js.map +1 -0
- package/dist/src/read-models/document-view.d.ts +20 -0
- package/dist/src/read-models/document-view.d.ts.map +1 -0
- package/dist/src/read-models/document-view.js +365 -0
- package/dist/src/read-models/document-view.js.map +1 -0
- package/dist/src/read-models/interfaces.d.ts +29 -0
- package/dist/src/read-models/interfaces.d.ts.map +1 -0
- package/dist/src/read-models/interfaces.js +2 -0
- package/dist/src/read-models/interfaces.js.map +1 -0
- package/dist/src/read-models/types.d.ts +46 -0
- package/dist/src/read-models/types.d.ts.map +1 -0
- package/dist/src/read-models/types.js +2 -0
- package/dist/src/read-models/types.js.map +1 -0
- package/dist/src/registry/implementation.js +1 -1
- package/dist/src/registry/implementation.js.map +1 -1
- package/dist/src/shared/awaiter.d.ts +32 -0
- package/dist/src/shared/awaiter.d.ts.map +1 -0
- package/dist/src/shared/awaiter.js +132 -0
- package/dist/src/shared/awaiter.js.map +1 -0
- package/dist/src/shared/errors.d.ts +17 -0
- package/dist/src/shared/errors.d.ts.map +1 -0
- package/dist/src/shared/errors.js +33 -0
- package/dist/src/shared/errors.js.map +1 -0
- package/dist/src/shared/factories.d.ts +1 -1
- package/dist/src/shared/factories.d.ts.map +1 -1
- package/dist/src/shared/types.d.ts +8 -0
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/src/shared/types.js +5 -0
- package/dist/src/shared/types.js.map +1 -1
- package/dist/src/signer/passthrough-signer.d.ts +6 -0
- package/dist/src/signer/passthrough-signer.d.ts.map +1 -0
- package/dist/src/signer/passthrough-signer.js +6 -0
- package/dist/src/signer/passthrough-signer.js.map +1 -0
- package/dist/src/signer/types.d.ts +15 -0
- package/dist/src/signer/types.d.ts.map +1 -0
- package/dist/src/signer/types.js +2 -0
- package/dist/src/signer/types.js.map +1 -0
- package/dist/src/storage/interfaces.d.ts +121 -0
- package/dist/src/storage/interfaces.d.ts.map +1 -0
- package/dist/src/storage/interfaces.js +19 -0
- package/dist/src/storage/interfaces.js.map +1 -0
- package/dist/src/storage/kysely/keyframe-store.d.ts +15 -0
- package/dist/src/storage/kysely/keyframe-store.d.ts.map +1 -0
- package/dist/src/storage/kysely/keyframe-store.js +71 -0
- package/dist/src/storage/kysely/keyframe-store.js.map +1 -0
- package/dist/src/storage/kysely/store.d.ts +15 -0
- package/dist/src/storage/kysely/store.d.ts.map +1 -0
- package/dist/src/storage/kysely/store.js +196 -0
- package/dist/src/storage/kysely/store.js.map +1 -0
- package/dist/src/storage/kysely/types.d.ts +39 -0
- package/dist/src/storage/kysely/types.d.ts.map +1 -0
- package/dist/src/storage/kysely/types.js +2 -0
- package/dist/src/storage/kysely/types.js.map +1 -0
- package/dist/src/storage/txn.d.ts +15 -0
- package/dist/src/storage/txn.d.ts.map +1 -0
- package/dist/src/storage/txn.js +41 -0
- package/dist/src/storage/txn.js.map +1 -0
- package/dist/src/subs/default-error-handler.d.ts +13 -0
- package/dist/src/subs/default-error-handler.d.ts.map +1 -0
- package/dist/src/subs/default-error-handler.js +27 -0
- package/dist/src/subs/default-error-handler.js.map +1 -0
- package/dist/src/subs/react-subscription-manager.d.ts +45 -0
- package/dist/src/subs/react-subscription-manager.d.ts.map +1 -0
- package/dist/src/subs/react-subscription-manager.js +185 -0
- package/dist/src/subs/react-subscription-manager.js.map +1 -0
- package/dist/src/subs/types.d.ts +64 -0
- package/dist/src/subs/types.d.ts.map +1 -0
- package/dist/src/subs/types.js +2 -0
- package/dist/src/subs/types.js.map +1 -0
- package/dist/src/utils/reshuffle.d.ts +30 -0
- package/dist/src/utils/reshuffle.d.ts.map +1 -0
- package/dist/src/utils/reshuffle.js +47 -0
- package/dist/src/utils/reshuffle.js.map +1 -0
- package/package.json +15 -9
- package/dist/bench/event-bus.bench.d.ts +0 -2
- package/dist/bench/event-bus.bench.d.ts.map +0 -1
- package/dist/bench/event-bus.bench.js +0 -228
- package/dist/bench/event-bus.bench.js.map +0 -1
- package/dist/bench/queue-only.bench.d.ts +0 -2
- package/dist/bench/queue-only.bench.d.ts.map +0 -1
- package/dist/bench/queue-only.bench.js +0 -46
- package/dist/bench/queue-only.bench.js.map +0 -1
- package/dist/bench/reactor-throughput.bench.d.ts +0 -2
- package/dist/bench/reactor-throughput.bench.d.ts.map +0 -1
- package/dist/bench/reactor-throughput.bench.js +0 -144
- package/dist/bench/reactor-throughput.bench.js.map +0 -1
- package/dist/src/interfaces/reactor.d.ts.map +0 -1
- package/dist/src/interfaces/reactor.js +0 -2
- package/dist/src/interfaces/reactor.js.map +0 -1
- package/dist/src/reactor.d.ts.map +0 -1
- package/dist/src/reactor.js.map +0 -1
- package/dist/src/utils.d.ts.map +0 -1
- package/dist/src/utils.js.map +0 -1
- package/dist/test/event-bus.test.d.ts +0 -2
- package/dist/test/event-bus.test.d.ts.map +0 -1
- package/dist/test/event-bus.test.js +0 -541
- package/dist/test/event-bus.test.js.map +0 -1
- package/dist/test/executor/executor-integration.test.d.ts +0 -2
- package/dist/test/executor/executor-integration.test.d.ts.map +0 -1
- package/dist/test/executor/executor-integration.test.js +0 -287
- package/dist/test/executor/executor-integration.test.js.map +0 -1
- package/dist/test/executor/job-execution-handle.test.d.ts +0 -2
- package/dist/test/executor/job-execution-handle.test.d.ts.map +0 -1
- package/dist/test/executor/job-execution-handle.test.js +0 -272
- package/dist/test/executor/job-execution-handle.test.js.map +0 -1
- package/dist/test/executor/simple-job-executor-manager.test.d.ts +0 -2
- package/dist/test/executor/simple-job-executor-manager.test.d.ts.map +0 -1
- package/dist/test/executor/simple-job-executor-manager.test.js +0 -132
- package/dist/test/executor/simple-job-executor-manager.test.js.map +0 -1
- package/dist/test/executor/simple-job-executor.test.d.ts +0 -2
- package/dist/test/executor/simple-job-executor.test.d.ts.map +0 -1
- package/dist/test/executor/simple-job-executor.test.js +0 -139
- package/dist/test/executor/simple-job-executor.test.js.map +0 -1
- package/dist/test/factories.d.ts +0 -122
- package/dist/test/factories.d.ts.map +0 -1
- package/dist/test/factories.js +0 -319
- package/dist/test/factories.js.map +0 -1
- package/dist/test/integration/document-drive-integration.test.d.ts +0 -2
- package/dist/test/integration/document-drive-integration.test.d.ts.map +0 -1
- package/dist/test/integration/document-drive-integration.test.js +0 -1102
- package/dist/test/integration/document-drive-integration.test.js.map +0 -1
- package/dist/test/integration/reactor-read.test.d.ts +0 -2
- package/dist/test/integration/reactor-read.test.d.ts.map +0 -1
- package/dist/test/integration/reactor-read.test.js +0 -300
- package/dist/test/integration/reactor-read.test.js.map +0 -1
- package/dist/test/queue/queue-integration.test.d.ts +0 -2
- package/dist/test/queue/queue-integration.test.d.ts.map +0 -1
- package/dist/test/queue/queue-integration.test.js +0 -322
- package/dist/test/queue/queue-integration.test.js.map +0 -1
- package/dist/test/queue/queue.test.d.ts +0 -2
- package/dist/test/queue/queue.test.d.ts.map +0 -1
- package/dist/test/queue/queue.test.js +0 -770
- package/dist/test/queue/queue.test.js.map +0 -1
- package/dist/test/registry/registry.test.d.ts +0 -2
- package/dist/test/registry/registry.test.d.ts.map +0 -1
- package/dist/test/registry/registry.test.js +0 -182
- package/dist/test/registry/registry.test.js.map +0 -1
- package/dist/test/utils.test.d.ts +0 -2
- package/dist/test/utils.test.d.ts.map +0 -1
- package/dist/test/utils.test.js +0 -66
- package/dist/test/utils.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -11
- package/dist/vitest.config.js.map +0 -1
- /package/dist/src/{utils.js → core/utils.js} +0 -0
|
@@ -1,322 +0,0 @@
|
|
|
1
|
-
import { driveDocumentModelModule } from "document-drive";
|
|
2
|
-
import { documentModelDocumentModelModule } from "document-model";
|
|
3
|
-
import { v4 as uuidv4 } from "uuid";
|
|
4
|
-
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
5
|
-
import { JobStatus } from "../../src/shared/types.js";
|
|
6
|
-
import { createDocModelDocument, createDocumentModelAction, createTestActions, createTestReactorSetup, } from "../factories.js";
|
|
7
|
-
describe("Reactor <> Queue Integration", () => {
|
|
8
|
-
let reactor;
|
|
9
|
-
let driveServer;
|
|
10
|
-
let queue;
|
|
11
|
-
const documentModels = [
|
|
12
|
-
documentModelDocumentModelModule,
|
|
13
|
-
driveDocumentModelModule,
|
|
14
|
-
];
|
|
15
|
-
beforeEach(async () => {
|
|
16
|
-
const setup = await createTestReactorSetup(documentModels);
|
|
17
|
-
reactor = setup.reactor;
|
|
18
|
-
driveServer = setup.driveServer;
|
|
19
|
-
queue = setup.queue;
|
|
20
|
-
});
|
|
21
|
-
describe("mutate", () => {
|
|
22
|
-
it("should enqueue jobs for document mutations", async () => {
|
|
23
|
-
// Create a test document
|
|
24
|
-
const testDoc = createDocModelDocument({
|
|
25
|
-
id: "test-doc-1",
|
|
26
|
-
slug: "test-doc",
|
|
27
|
-
});
|
|
28
|
-
// Add the document to the drive server
|
|
29
|
-
await driveServer.addDocument(testDoc);
|
|
30
|
-
// Create a mock action for the documentmodel document type
|
|
31
|
-
const action = createDocumentModelAction("SET_NAME", {
|
|
32
|
-
input: { name: "Updated Document Model" },
|
|
33
|
-
});
|
|
34
|
-
// Spy on the queue's enqueue method
|
|
35
|
-
const enqueueSpy = vi.spyOn(queue, "enqueue");
|
|
36
|
-
const result = await reactor.mutate(testDoc.header.id, [action]);
|
|
37
|
-
// Verify that the queue's enqueue method was called
|
|
38
|
-
expect(enqueueSpy).toHaveBeenCalledTimes(1);
|
|
39
|
-
// Verify the job structure
|
|
40
|
-
const enqueuedJob = enqueueSpy.mock.calls[0][0];
|
|
41
|
-
expect(enqueuedJob.documentId).toBe(testDoc.header.id);
|
|
42
|
-
expect(enqueuedJob.operation.action).toEqual(action);
|
|
43
|
-
expect(enqueuedJob.scope).toBe(action.scope || "global");
|
|
44
|
-
expect(enqueuedJob.branch).toBe("main");
|
|
45
|
-
// Verify the result
|
|
46
|
-
expect(result).toBeDefined();
|
|
47
|
-
expect(result.id).toBeDefined();
|
|
48
|
-
expect(result.status).toBe(JobStatus.PENDING);
|
|
49
|
-
});
|
|
50
|
-
it("should create proper Job objects from actions", async () => {
|
|
51
|
-
// Create a test document
|
|
52
|
-
const testDoc = createDocModelDocument({
|
|
53
|
-
id: "test-doc-2",
|
|
54
|
-
slug: "test-doc-2",
|
|
55
|
-
});
|
|
56
|
-
// Add the document to the drive server
|
|
57
|
-
await driveServer.addDocument(testDoc);
|
|
58
|
-
// Create multiple actions
|
|
59
|
-
const actions = [
|
|
60
|
-
createDocumentModelAction("SET_NAME", {
|
|
61
|
-
input: { name: "First Update" },
|
|
62
|
-
}),
|
|
63
|
-
createDocumentModelAction("SET_DESCRIPTION", {
|
|
64
|
-
input: { description: "Test description" },
|
|
65
|
-
timestampUtcMs: String(Date.now() + 1000),
|
|
66
|
-
}),
|
|
67
|
-
];
|
|
68
|
-
// Capture the jobs that are enqueued
|
|
69
|
-
const enqueuedJobs = [];
|
|
70
|
-
vi.spyOn(queue, "enqueue").mockImplementation((job) => {
|
|
71
|
-
enqueuedJobs.push(job);
|
|
72
|
-
return Promise.resolve();
|
|
73
|
-
});
|
|
74
|
-
const result = await reactor.mutate(testDoc.header.id, actions);
|
|
75
|
-
// Verify jobs were enqueued
|
|
76
|
-
expect(enqueuedJobs).toHaveLength(actions.length);
|
|
77
|
-
enqueuedJobs.forEach((job, index) => {
|
|
78
|
-
expect(job.documentId).toBe(testDoc.header.id);
|
|
79
|
-
expect(job.operation.action).toEqual(actions[index]);
|
|
80
|
-
expect(job.scope).toBe(actions[index].scope || "global");
|
|
81
|
-
expect(job.branch).toBe("main");
|
|
82
|
-
expect(job.operation.index).toBe(index);
|
|
83
|
-
});
|
|
84
|
-
// Verify the result
|
|
85
|
-
expect(result.status).toBe(JobStatus.PENDING);
|
|
86
|
-
});
|
|
87
|
-
it("should start the job executor when jobs are enqueued", async () => {
|
|
88
|
-
// Create a test document
|
|
89
|
-
const testDoc = createDocModelDocument({
|
|
90
|
-
id: "test-doc-3",
|
|
91
|
-
slug: "test-doc-3",
|
|
92
|
-
});
|
|
93
|
-
// Add the document to the drive server
|
|
94
|
-
await driveServer.addDocument(testDoc);
|
|
95
|
-
const action = createDocumentModelAction("SET_NAME", {
|
|
96
|
-
input: { name: "Test Name" },
|
|
97
|
-
});
|
|
98
|
-
await reactor.mutate(testDoc.header.id, [action]);
|
|
99
|
-
// The executor's internal start should have been triggered
|
|
100
|
-
// In the shim, start is called automatically on first mutate
|
|
101
|
-
// We can't directly test this with the simplified design
|
|
102
|
-
});
|
|
103
|
-
it("should return JobInfo with pending status when jobs are enqueued", async () => {
|
|
104
|
-
// Create a test document
|
|
105
|
-
const testDoc = createDocModelDocument({
|
|
106
|
-
id: "test-doc-4",
|
|
107
|
-
slug: "test-doc-4",
|
|
108
|
-
});
|
|
109
|
-
// Add the document to the drive server
|
|
110
|
-
await driveServer.addDocument(testDoc);
|
|
111
|
-
const action = createDocumentModelAction("SET_NAME", {
|
|
112
|
-
input: { name: "Test Name" },
|
|
113
|
-
});
|
|
114
|
-
const result = await reactor.mutate(testDoc.header.id, [action]);
|
|
115
|
-
// Now that we use the queue, it should return PENDING
|
|
116
|
-
expect(result).toBeDefined();
|
|
117
|
-
expect(result.id).toBeDefined();
|
|
118
|
-
expect(result.status).toBe(JobStatus.PENDING);
|
|
119
|
-
});
|
|
120
|
-
it("should handle multiple actions in sequence", async () => {
|
|
121
|
-
// Create a test document
|
|
122
|
-
const testDoc = createDocModelDocument({
|
|
123
|
-
id: "test-doc-5",
|
|
124
|
-
slug: "test-doc-5",
|
|
125
|
-
});
|
|
126
|
-
// Add the document to the drive server
|
|
127
|
-
await driveServer.addDocument(testDoc);
|
|
128
|
-
const actions = createTestActions(3, "SET_NAME");
|
|
129
|
-
// Track enqueued jobs
|
|
130
|
-
const enqueuedJobs = [];
|
|
131
|
-
vi.spyOn(queue, "enqueue").mockImplementation((job) => {
|
|
132
|
-
enqueuedJobs.push(job);
|
|
133
|
-
return Promise.resolve();
|
|
134
|
-
});
|
|
135
|
-
const result = await reactor.mutate(testDoc.header.id, actions);
|
|
136
|
-
expect(result).toBeDefined();
|
|
137
|
-
expect(result.id).toBeDefined();
|
|
138
|
-
expect(result.status).toBe(JobStatus.PENDING);
|
|
139
|
-
// Verify all jobs were enqueued in order
|
|
140
|
-
expect(enqueuedJobs).toHaveLength(3);
|
|
141
|
-
// Verify jobs maintain order
|
|
142
|
-
enqueuedJobs.forEach((job, index) => {
|
|
143
|
-
expect(job.operation.index).toBe(index);
|
|
144
|
-
const actionInput = job.operation.action.input;
|
|
145
|
-
expect(actionInput.name).toBe(`Action ${index + 1}`);
|
|
146
|
-
});
|
|
147
|
-
});
|
|
148
|
-
describe("serial execution per document", () => {
|
|
149
|
-
it("should not dequeue jobs for a document that has executing jobs", async () => {
|
|
150
|
-
// Create two test documents
|
|
151
|
-
const testDoc1 = createDocModelDocument({
|
|
152
|
-
id: "test-doc-serial-1",
|
|
153
|
-
slug: "test-doc-serial-1",
|
|
154
|
-
});
|
|
155
|
-
const testDoc2 = createDocModelDocument({
|
|
156
|
-
id: "test-doc-serial-2",
|
|
157
|
-
slug: "test-doc-serial-2",
|
|
158
|
-
});
|
|
159
|
-
// Add documents to the drive server
|
|
160
|
-
await driveServer.addDocument(testDoc1);
|
|
161
|
-
await driveServer.addDocument(testDoc2);
|
|
162
|
-
// Create actions for both documents
|
|
163
|
-
const action1 = {
|
|
164
|
-
id: uuidv4(),
|
|
165
|
-
type: "SET_NAME",
|
|
166
|
-
scope: "global",
|
|
167
|
-
input: { name: "Doc 1 Action 1" },
|
|
168
|
-
timestampUtcMs: String(Date.now()),
|
|
169
|
-
};
|
|
170
|
-
const action2 = {
|
|
171
|
-
id: uuidv4(),
|
|
172
|
-
type: "SET_NAME",
|
|
173
|
-
scope: "global",
|
|
174
|
-
input: { name: "Doc 1 Action 2" },
|
|
175
|
-
timestampUtcMs: String(Date.now() + 1000),
|
|
176
|
-
};
|
|
177
|
-
const action3 = {
|
|
178
|
-
id: uuidv4(),
|
|
179
|
-
type: "SET_NAME",
|
|
180
|
-
scope: "global",
|
|
181
|
-
input: { name: "Doc 2 Action 1" },
|
|
182
|
-
timestampUtcMs: String(Date.now() + 2000),
|
|
183
|
-
};
|
|
184
|
-
// Enqueue jobs for both documents
|
|
185
|
-
await reactor.mutate(testDoc1.header.id, [action1, action2]);
|
|
186
|
-
await reactor.mutate(testDoc2.header.id, [action3]);
|
|
187
|
-
// First dequeue should get a job from document 1
|
|
188
|
-
const job1 = await queue.dequeueNext();
|
|
189
|
-
expect(job1).toBeDefined();
|
|
190
|
-
expect(job1?.job.documentId).toBe(testDoc1.header.id);
|
|
191
|
-
// Second dequeue should get the job from document 2 (not doc 1's second job)
|
|
192
|
-
const job2 = await queue.dequeueNext();
|
|
193
|
-
expect(job2).toBeDefined();
|
|
194
|
-
expect(job2?.job.documentId).toBe(testDoc2.header.id);
|
|
195
|
-
// Third dequeue should return null since doc 1 is still executing
|
|
196
|
-
const job3 = await queue.dequeueNext();
|
|
197
|
-
expect(job3).toBeNull();
|
|
198
|
-
// Complete the first job
|
|
199
|
-
if (job1) {
|
|
200
|
-
await queue.completeJob(job1.job.id);
|
|
201
|
-
}
|
|
202
|
-
// Now we should be able to dequeue the second job from document 1
|
|
203
|
-
const job4 = await queue.dequeueNext();
|
|
204
|
-
expect(job4).toBeDefined();
|
|
205
|
-
expect(job4?.job.documentId).toBe(testDoc1.header.id);
|
|
206
|
-
});
|
|
207
|
-
it("should allow concurrent execution of jobs from different documents", async () => {
|
|
208
|
-
// Create three test documents
|
|
209
|
-
const docs = await Promise.all([
|
|
210
|
-
createDocModelDocument({ id: "concurrent-1", slug: "concurrent-1" }),
|
|
211
|
-
createDocModelDocument({ id: "concurrent-2", slug: "concurrent-2" }),
|
|
212
|
-
createDocModelDocument({ id: "concurrent-3", slug: "concurrent-3" }),
|
|
213
|
-
]);
|
|
214
|
-
// Add documents to the drive server
|
|
215
|
-
for (const doc of docs) {
|
|
216
|
-
await driveServer.addDocument(doc);
|
|
217
|
-
}
|
|
218
|
-
// Create actions for each document
|
|
219
|
-
const actions = docs.map((doc, index) => ({
|
|
220
|
-
id: uuidv4(),
|
|
221
|
-
type: "SET_NAME",
|
|
222
|
-
scope: "global",
|
|
223
|
-
input: { name: `Doc ${index + 1} Action` },
|
|
224
|
-
timestampUtcMs: String(Date.now() + index * 1000),
|
|
225
|
-
}));
|
|
226
|
-
// Enqueue one job per document
|
|
227
|
-
for (let i = 0; i < docs.length; i++) {
|
|
228
|
-
await reactor.mutate(docs[i].header.id, [actions[i]]);
|
|
229
|
-
}
|
|
230
|
-
// Should be able to dequeue all three jobs since they're from different documents
|
|
231
|
-
const dequeuedJobs = [];
|
|
232
|
-
for (let i = 0; i < docs.length; i++) {
|
|
233
|
-
const job = await queue.dequeueNext();
|
|
234
|
-
expect(job).toBeDefined();
|
|
235
|
-
dequeuedJobs.push(job);
|
|
236
|
-
}
|
|
237
|
-
// Verify we got one job from each document
|
|
238
|
-
const documentIds = dequeuedJobs
|
|
239
|
-
.map((job) => job.job.documentId)
|
|
240
|
-
.sort();
|
|
241
|
-
const expectedIds = docs.map((doc) => doc.header.id).sort();
|
|
242
|
-
expect(documentIds).toEqual(expectedIds);
|
|
243
|
-
// Fourth dequeue should return null since all documents are executing
|
|
244
|
-
const noMoreJobs = await queue.dequeueNext();
|
|
245
|
-
expect(noMoreJobs).toBeNull();
|
|
246
|
-
});
|
|
247
|
-
it("should resume processing after job completion", async () => {
|
|
248
|
-
// Create a test document
|
|
249
|
-
const testDoc = createDocModelDocument({
|
|
250
|
-
id: "test-resume",
|
|
251
|
-
slug: "test-resume",
|
|
252
|
-
});
|
|
253
|
-
await driveServer.addDocument(testDoc);
|
|
254
|
-
// Create multiple actions for the same document
|
|
255
|
-
const actions = [1, 2, 3].map((i) => ({
|
|
256
|
-
id: uuidv4(),
|
|
257
|
-
type: "SET_NAME",
|
|
258
|
-
scope: "global",
|
|
259
|
-
input: { name: `Action ${i}` },
|
|
260
|
-
timestampUtcMs: String(Date.now() + i * 1000),
|
|
261
|
-
}));
|
|
262
|
-
// Enqueue all actions
|
|
263
|
-
await reactor.mutate(testDoc.header.id, actions);
|
|
264
|
-
// Dequeue first job
|
|
265
|
-
const job1 = await queue.dequeueNext();
|
|
266
|
-
expect(job1).toBeDefined();
|
|
267
|
-
expect(job1?.job.operation.index).toBe(0);
|
|
268
|
-
// Should not be able to dequeue another job for this document
|
|
269
|
-
const blockedJob = await queue.dequeueNext();
|
|
270
|
-
expect(blockedJob).toBeNull();
|
|
271
|
-
// Complete the first job
|
|
272
|
-
if (job1) {
|
|
273
|
-
await queue.completeJob(job1.job.id);
|
|
274
|
-
}
|
|
275
|
-
// Now should be able to dequeue the second job
|
|
276
|
-
const job2 = await queue.dequeueNext();
|
|
277
|
-
expect(job2).toBeDefined();
|
|
278
|
-
expect(job2?.job.operation.index).toBe(1);
|
|
279
|
-
// Complete second job and get third
|
|
280
|
-
if (job2) {
|
|
281
|
-
await queue.completeJob(job2.job.id);
|
|
282
|
-
}
|
|
283
|
-
const job3 = await queue.dequeueNext();
|
|
284
|
-
expect(job3).toBeDefined();
|
|
285
|
-
expect(job3?.job.operation.index).toBe(2);
|
|
286
|
-
});
|
|
287
|
-
it("should handle job failure and allow next job to proceed", async () => {
|
|
288
|
-
// Create a test document
|
|
289
|
-
const testDoc = createDocModelDocument({
|
|
290
|
-
id: "test-failure",
|
|
291
|
-
slug: "test-failure",
|
|
292
|
-
});
|
|
293
|
-
await driveServer.addDocument(testDoc);
|
|
294
|
-
// Create two actions
|
|
295
|
-
const actions = [1, 2].map((i) => ({
|
|
296
|
-
id: uuidv4(),
|
|
297
|
-
type: "SET_NAME",
|
|
298
|
-
scope: "global",
|
|
299
|
-
input: { name: `Action ${i}` },
|
|
300
|
-
timestampUtcMs: String(Date.now() + i * 1000),
|
|
301
|
-
}));
|
|
302
|
-
// Enqueue actions
|
|
303
|
-
await reactor.mutate(testDoc.header.id, actions);
|
|
304
|
-
// Dequeue first job
|
|
305
|
-
const job1 = await queue.dequeueNext();
|
|
306
|
-
expect(job1).toBeDefined();
|
|
307
|
-
// Should not be able to dequeue second job
|
|
308
|
-
const blockedJob = await queue.dequeueNext();
|
|
309
|
-
expect(blockedJob).toBeNull();
|
|
310
|
-
// Fail the first job
|
|
311
|
-
if (job1) {
|
|
312
|
-
await queue.failJob(job1.job.id, "Test failure");
|
|
313
|
-
}
|
|
314
|
-
// Now should be able to dequeue the second job
|
|
315
|
-
const job2 = await queue.dequeueNext();
|
|
316
|
-
expect(job2).toBeDefined();
|
|
317
|
-
expect(job2?.job.operation.index).toBe(1);
|
|
318
|
-
});
|
|
319
|
-
});
|
|
320
|
-
});
|
|
321
|
-
});
|
|
322
|
-
//# sourceMappingURL=queue-integration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queue-integration.test.js","sourceRoot":"","sources":["../../../test/queue/queue-integration.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAI9D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,IAAI,OAAgB,CAAC;IACrB,IAAI,WAAoC,CAAC;IACzC,IAAI,KAAa,CAAC;IAElB,MAAM,cAAc,GAAG;QACrB,gCAAgC;QAChC,wBAAwB;KACK,CAAC;IAEhC,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,cAAc,CAAC,CAAC;QAC3D,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QACxB,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAChC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,yBAAyB;YACzB,MAAM,OAAO,GAAG,sBAAsB,CAAC;gBACrC,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,UAAU;aACjB,CAAC,CAAC;YAEH,uCAAuC;YACvC,MAAM,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEvC,2DAA2D;YAC3D,MAAM,MAAM,GAAG,yBAAyB,CAAC,UAAU,EAAE;gBACnD,KAAK,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE;aAC1C,CAAC,CAAC;YAEH,oCAAoC;YACpC,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAE9C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAEjE,oDAAoD;YACpD,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAE5C,2BAA2B;YAC3B,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAQ,CAAC;YACvD,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC;YACzD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAExC,oBAAoB;YACpB,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,yBAAyB;YACzB,MAAM,OAAO,GAAG,sBAAsB,CAAC;gBACrC,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC;YAEH,uCAAuC;YACvC,MAAM,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEvC,0BAA0B;YAC1B,MAAM,OAAO,GAAG;gBACd,yBAAyB,CAAC,UAAU,EAAE;oBACpC,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;iBAChC,CAAC;gBACF,yBAAyB,CAAC,iBAAiB,EAAE;oBAC3C,KAAK,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE;oBAC1C,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;iBAC1C,CAAC;aACH,CAAC;YAEF,qCAAqC;YACrC,MAAM,YAAY,GAAU,EAAE,CAAC;YAC/B,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACzD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAEhE,4BAA4B;YAC5B,MAAM,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClD,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBAClC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC/C,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC;gBACzD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YAEH,oBAAoB;YACpB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,yBAAyB;YACzB,MAAM,OAAO,GAAG,sBAAsB,CAAC;gBACrC,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC;YAEH,uCAAuC;YACvC,MAAM,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEvC,MAAM,MAAM,GAAG,yBAAyB,CAAC,UAAU,EAAE;gBACnD,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;aAC7B,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAElD,2DAA2D;YAC3D,6DAA6D;YAC7D,yDAAyD;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,yBAAyB;YACzB,MAAM,OAAO,GAAG,sBAAsB,CAAC;gBACrC,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC;YAEH,uCAAuC;YACvC,MAAM,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEvC,MAAM,MAAM,GAAG,yBAAyB,CAAC,UAAU,EAAE;gBACnD,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;aAC7B,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YAEjE,sDAAsD;YACtD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,yBAAyB;YACzB,MAAM,OAAO,GAAG,sBAAsB,CAAC;gBACrC,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC;YAEH,uCAAuC;YACvC,MAAM,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEvC,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAEjD,sBAAsB;YACtB,MAAM,YAAY,GAAU,EAAE,CAAC;YAC/B,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACzD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAEhE,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAE9C,yCAAyC;YACzC,MAAM,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACrC,6BAA6B;YAC7B,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBAClC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxC,MAAM,WAAW,GAAI,GAAG,CAAC,SAAS,CAAC,MAAiB,CAAC,KAEpD,CAAC;gBACF,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC7C,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;gBAC9E,4BAA4B;gBAC5B,MAAM,QAAQ,GAAG,sBAAsB,CAAC;oBACtC,EAAE,EAAE,mBAAmB;oBACvB,IAAI,EAAE,mBAAmB;iBAC1B,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,sBAAsB,CAAC;oBACtC,EAAE,EAAE,mBAAmB;oBACvB,IAAI,EAAE,mBAAmB;iBAC1B,CAAC,CAAC;gBAEH,oCAAoC;gBACpC,MAAM,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACxC,MAAM,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAExC,oCAAoC;gBACpC,MAAM,OAAO,GAAW;oBACtB,EAAE,EAAE,MAAM,EAAE;oBACZ,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;oBACjC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;iBACzB,CAAC;gBAEZ,MAAM,OAAO,GAAW;oBACtB,EAAE,EAAE,MAAM,EAAE;oBACZ,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;oBACjC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;iBAChC,CAAC;gBAEZ,MAAM,OAAO,GAAW;oBACtB,EAAE,EAAE,MAAM,EAAE;oBACZ,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;oBACjC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;iBAChC,CAAC;gBAEZ,kCAAkC;gBAClC,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC7D,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;gBAEpD,iDAAiD;gBACjD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAEtD,6EAA6E;gBAC7E,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAEtD,kEAAkE;gBAClE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAExB,yBAAyB;gBACzB,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;gBAED,kEAAkE;gBAClE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;gBAClF,8BAA8B;gBAC9B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAC7B,sBAAsB,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;oBACpE,sBAAsB,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;oBACpE,sBAAsB,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;iBACrE,CAAC,CAAC;gBAEH,oCAAoC;gBACpC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,MAAM,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACrC,CAAC;gBAED,mCAAmC;gBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACb,CAAC;oBACC,EAAE,EAAE,MAAM,EAAE;oBACZ,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,KAAK,GAAG,CAAC,SAAS,EAAE;oBAC1C,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC;iBAClD,CAAW,CACf,CAAC;gBAEF,+BAA+B;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrC,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxD,CAAC;gBAED,kFAAkF;gBAClF,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;oBACtC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;oBAC1B,YAAY,CAAC,IAAI,CAAC,GAAI,CAAC,CAAC;gBAC1B,CAAC;gBAED,2CAA2C;gBAC3C,MAAM,WAAW,GAAG,YAAY;qBAC7B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;qBAChC,IAAI,EAAE,CAAC;gBACV,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5D,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAEzC,sEAAsE;gBACtE,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC7C,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;gBAC7D,yBAAyB;gBACzB,MAAM,OAAO,GAAG,sBAAsB,CAAC;oBACrC,EAAE,EAAE,aAAa;oBACjB,IAAI,EAAE,aAAa;iBACpB,CAAC,CAAC;gBAEH,MAAM,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAEvC,gDAAgD;gBAChD,MAAM,OAAO,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CACrC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;oBACC,EAAE,EAAE,MAAM,EAAE;oBACZ,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE;oBAC9B,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;iBAC9C,CAAW,CACf,CAAC;gBAEF,sBAAsB;gBACtB,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBAEjD,oBAAoB;gBACpB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAE1C,8DAA8D;gBAC9D,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC7C,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAE9B,yBAAyB;gBACzB,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;gBAED,+CAA+C;gBAC/C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAE1C,oCAAoC;gBACpC,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;gBACvE,yBAAyB;gBACzB,MAAM,OAAO,GAAG,sBAAsB,CAAC;oBACrC,EAAE,EAAE,cAAc;oBAClB,IAAI,EAAE,cAAc;iBACrB,CAAC,CAAC;gBAEH,MAAM,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAEvC,qBAAqB;gBACrB,MAAM,OAAO,GAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAClC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;oBACC,EAAE,EAAE,MAAM,EAAE;oBACZ,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE;oBAC9B,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;iBAC9C,CAAW,CACf,CAAC;gBAEF,kBAAkB;gBAClB,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBAEjD,oBAAoB;gBACpB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAE3B,2CAA2C;gBAC3C,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC7C,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAE9B,qBAAqB;gBACrB,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;gBACnD,CAAC;gBAED,+CAA+C;gBAC/C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queue.test.d.ts","sourceRoot":"","sources":["../../../test/queue/queue.test.ts"],"names":[],"mappings":""}
|