@workflow/world-postgres 4.1.0-beta.45 → 4.1.0-beta.47
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/README.md +14 -7
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +7 -6
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +10 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/drizzle/index.d.ts +3 -3
- package/dist/drizzle/index.d.ts.map +1 -1
- package/dist/drizzle/index.js +3 -3
- package/dist/drizzle/index.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -16
- package/dist/index.js.map +1 -1
- package/dist/queue.d.ts +2 -2
- package/dist/queue.d.ts.map +1 -1
- package/dist/queue.js +112 -41
- package/dist/queue.js.map +1 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +127 -75
- package/dist/storage.js.map +1 -1
- package/dist/streamer.d.ts +9 -2
- package/dist/streamer.d.ts.map +1 -1
- package/dist/streamer.js +140 -9
- package/dist/streamer.js.map +1 -1
- package/package.json +10 -8
package/README.md
CHANGED
|
@@ -50,15 +50,21 @@ const world = createWorld({
|
|
|
50
50
|
jobPrefix: "myapp", // optional
|
|
51
51
|
queueConcurrency: 10, // optional
|
|
52
52
|
});
|
|
53
|
+
|
|
54
|
+
// Or pass an existing pg.Pool (shared with your app Drizzle, etc.); `world.close()` will not end it.
|
|
55
|
+
import { Pool } from "pg";
|
|
56
|
+
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
|
|
57
|
+
const worldFromPool = createWorld({ pool });
|
|
53
58
|
```
|
|
54
59
|
|
|
55
60
|
## Configuration Options
|
|
56
61
|
|
|
57
|
-
| Option | Type
|
|
58
|
-
| ------------------ |
|
|
59
|
-
| `connectionString` | `string`
|
|
60
|
-
| `
|
|
61
|
-
| `
|
|
62
|
+
| Option | Type | Default | Description |
|
|
63
|
+
| ------------------ | --------- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
|
64
|
+
| `connectionString` | `string` | `process.env.WORKFLOW_POSTGRES_URL` or `'postgres://world:world@localhost:5432/world'` | Used only when `pool` is omitted, to construct an internal pool |
|
|
65
|
+
| `pool` | `pg.Pool` | — | Optional. When set, used for Drizzle, Graphile Worker, and stream writes. `world.close()` does not end it. |
|
|
66
|
+
| `jobPrefix` | `string` | `process.env.WORKFLOW_POSTGRES_JOB_PREFIX` | Optional prefix for queue job names |
|
|
67
|
+
| `queueConcurrency` | `number` | `10` | Number of concurrent active step executions per process |
|
|
62
68
|
|
|
63
69
|
## Environment Variables
|
|
64
70
|
|
|
@@ -75,7 +81,7 @@ This package uses PostgreSQL with the following components:
|
|
|
75
81
|
|
|
76
82
|
- **graphile-worker**: For queue processing and job management
|
|
77
83
|
- **Drizzle ORM**: For database operations and schema management
|
|
78
|
-
- **postgres
|
|
84
|
+
- **pg** (node-postgres): For PostgreSQL client connections. Drizzle and Graphile Worker share a `pg.Pool`, while LISTEN uses a dedicated `pg.Client` created from the same connection options.
|
|
79
85
|
|
|
80
86
|
### Quick Setup with CLI
|
|
81
87
|
|
|
@@ -115,7 +121,7 @@ Make sure your PostgreSQL database is accessible and the user has sufficient per
|
|
|
115
121
|
## Features
|
|
116
122
|
|
|
117
123
|
- **Durable Storage**: Stores workflow runs, events, steps, hooks, and webhooks in PostgreSQL
|
|
118
|
-
- **Queue Processing**: Uses graphile-worker as the durable queue and executes jobs
|
|
124
|
+
- **Queue Processing**: Uses graphile-worker as the durable queue and executes jobs over the workflow HTTP routes
|
|
119
125
|
- **Durable Delays**: Re-schedules waits and retries in PostgreSQL
|
|
120
126
|
- **Streaming**: Real-time event streaming capabilities
|
|
121
127
|
- **Health Checks**: Built-in connection health monitoring
|
|
@@ -127,6 +133,7 @@ Make sure your PostgreSQL database is accessible and the user has sufficient per
|
|
|
127
133
|
- Graphile jobs are acknowledged only after the workflow or step execution finishes, or after the worker durably schedules a delayed follow-up job
|
|
128
134
|
- Backlog stays in PostgreSQL when all execution slots are busy
|
|
129
135
|
- Retry and sleep-style delays use Graphile `runAt` scheduling
|
|
136
|
+
- Workflow and step execution is sent through `/.well-known/workflow/v1/flow` and `/.well-known/workflow/v1/step`
|
|
130
137
|
|
|
131
138
|
## Development
|
|
132
139
|
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AASA,iBAAe,aAAa,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AASA,iBAAe,aAAa,kBA8C3B;AAOD,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { dirname, join } from 'node:path';
|
|
2
2
|
import { fileURLToPath } from 'node:url';
|
|
3
3
|
import { config } from 'dotenv';
|
|
4
|
-
import { drizzle } from 'drizzle-orm/postgres
|
|
5
|
-
import { migrate } from 'drizzle-orm/postgres
|
|
6
|
-
import
|
|
4
|
+
import { drizzle } from 'drizzle-orm/node-postgres';
|
|
5
|
+
import { migrate } from 'drizzle-orm/node-postgres/migrator';
|
|
6
|
+
import { Pool } from 'pg';
|
|
7
7
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
8
8
|
async function setupDatabase() {
|
|
9
9
|
// Load .env file if it exists
|
|
@@ -13,9 +13,9 @@ async function setupDatabase() {
|
|
|
13
13
|
'postgres://world:world@localhost:5432/world';
|
|
14
14
|
console.log('🔧 Setting up database schema...');
|
|
15
15
|
console.log(`📍 Connection: ${connectionString.replace(/^(\w+:\/\/)([^@]+)@/, '$1[redacted]@')}`);
|
|
16
|
+
const pool = new Pool({ connectionString, max: 1 });
|
|
17
|
+
const db = drizzle(pool);
|
|
16
18
|
try {
|
|
17
|
-
const pgClient = postgres(connectionString, { max: 1 });
|
|
18
|
-
const db = drizzle(pgClient);
|
|
19
19
|
// Read the migration SQL file
|
|
20
20
|
// The migrations are in src/drizzle/migrations, and this CLI is in dist/
|
|
21
21
|
// So we need to go up one level from dist/ to reach src/
|
|
@@ -28,10 +28,11 @@ async function setupDatabase() {
|
|
|
28
28
|
migrationsSchema: 'workflow_drizzle',
|
|
29
29
|
});
|
|
30
30
|
console.log('✅ Database schema created successfully!');
|
|
31
|
-
await
|
|
31
|
+
await pool.end();
|
|
32
32
|
process.exit(0);
|
|
33
33
|
}
|
|
34
34
|
catch (error) {
|
|
35
|
+
await pool.end().catch(() => { });
|
|
35
36
|
console.error('❌ Failed to setup database:', error);
|
|
36
37
|
process.exit(1);
|
|
37
38
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE1B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,KAAK,UAAU,aAAa;IAC1B,8BAA8B;IAC9B,MAAM,EAAE,CAAC;IAET,MAAM,gBAAgB,GACpB,OAAO,CAAC,GAAG,CAAC,qBAAqB;QACjC,OAAO,CAAC,GAAG,CAAC,YAAY;QACxB,6CAA6C,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CACT,kBAAkB,gBAAgB,CAAC,OAAO,CAAC,qBAAqB,EAAE,eAAe,CAAC,EAAE,CACrF,CAAC;IAEF,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB,IAAI,CAAC;QACH,8BAA8B;QAC9B,yEAAyE;QACzE,yDAAyD;QACzD,MAAM,gBAAgB,GAAG,IAAI,CAC3B,SAAS,EACT,IAAI,EACJ,KAAK,EACL,SAAS,EACT,YAAY,CACb,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,+BAA+B,gBAAgB,EAAE,CAAC,CAAC;QAE/D,wBAAwB;QACxB,MAAM,OAAO,CAAC,EAAE,EAAE;YAChB,gBAAgB;YAChB,eAAe,EAAE,qBAAqB;YACtC,gBAAgB,EAAE,kBAAkB;SACrC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QAEvD,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,kCAAkC;AAClC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,aAAa,EAAE,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Pool } from 'pg';
|
|
2
|
+
type PgConnectionConfig = {
|
|
2
3
|
connectionString: string;
|
|
4
|
+
pool?: undefined;
|
|
5
|
+
} | {
|
|
6
|
+
pool: Pool;
|
|
7
|
+
connectionString?: undefined;
|
|
8
|
+
};
|
|
9
|
+
export type PostgresWorldConfig = PgConnectionConfig & {
|
|
3
10
|
jobPrefix?: string;
|
|
4
11
|
queueConcurrency?: number;
|
|
5
|
-
}
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
6
14
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B,KAAK,kBAAkB,GACnB;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,gBAAgB,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAEjD,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC"}
|
package/dist/drizzle/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { Pool } from 'pg';
|
|
2
2
|
import * as Schema from './schema.js';
|
|
3
3
|
export { Schema };
|
|
4
4
|
export type Drizzle = ReturnType<typeof createClient>;
|
|
5
|
-
export declare function createClient(
|
|
6
|
-
$client:
|
|
5
|
+
export declare function createClient(pool: Pool): import("drizzle-orm/node-postgres").NodePgDatabase<typeof Schema> & {
|
|
6
|
+
$client: Pool;
|
|
7
7
|
};
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AAEtD,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI;;EAEtC"}
|
package/dist/drizzle/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { drizzle } from 'drizzle-orm/postgres
|
|
1
|
+
import { drizzle } from 'drizzle-orm/node-postgres';
|
|
2
2
|
import * as Schema from './schema.js';
|
|
3
3
|
export { Schema };
|
|
4
|
-
export function createClient(
|
|
5
|
-
return drizzle(
|
|
4
|
+
export function createClient(pool) {
|
|
5
|
+
return drizzle(pool, { schema: Schema });
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEpD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,CAAC;AAIlB,MAAM,UAAU,YAAY,CAAC,IAAU;IACrC,OAAO,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3C,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAoBvD,wBAAgB,WAAW,CACzB,MAAM,GAAE,mBAQP,GACA,KAAK,GAAG;IAAE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CA6BpC;AAGD,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,cAAc,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Pool } from 'pg';
|
|
2
2
|
import { createClient } from './drizzle/index.js';
|
|
3
3
|
import { createQueue } from './queue.js';
|
|
4
4
|
import { createEventsStorage, createHooksStorage, createRunsStorage, createStepsStorage, } from './storage.js';
|
|
@@ -18,11 +18,15 @@ export function createWorld(config = {
|
|
|
18
18
|
queueConcurrency: parseInt(process.env.WORKFLOW_POSTGRES_WORKER_CONCURRENCY || '10', 10) ||
|
|
19
19
|
10,
|
|
20
20
|
}) {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
const pool = config.pool ||
|
|
22
|
+
new Pool({
|
|
23
|
+
connectionString: config.connectionString ||
|
|
24
|
+
'postgres://world:world@localhost:5432/world',
|
|
25
|
+
});
|
|
26
|
+
const drizzle = createClient(pool);
|
|
27
|
+
const queue = createQueue(config, pool);
|
|
24
28
|
const storage = createStorage(drizzle);
|
|
25
|
-
const streamer = createStreamer(
|
|
29
|
+
const streamer = createStreamer(pool, drizzle);
|
|
26
30
|
return {
|
|
27
31
|
...storage,
|
|
28
32
|
...streamer,
|
|
@@ -33,17 +37,8 @@ export function createWorld(config = {
|
|
|
33
37
|
async close() {
|
|
34
38
|
await streamer.close();
|
|
35
39
|
await queue.close();
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
// postgres.js's terminate() calls socket.end() (graceful TCP FIN)
|
|
39
|
-
// rather than socket.destroy(), leaving sockets in FIN_WAIT state
|
|
40
|
-
// that prevent the process from exiting on slower networks (e.g.
|
|
41
|
-
// CI Docker containers).
|
|
42
|
-
// See: https://github.com/porsager/postgres/issues/1022
|
|
43
|
-
for (const h of process._getActiveHandles?.() ?? []) {
|
|
44
|
-
if (h?.constructor?.name === 'Socket' && !h._type && !h.destroyed) {
|
|
45
|
-
h.destroy();
|
|
46
|
-
}
|
|
40
|
+
if (pool !== config.pool) {
|
|
41
|
+
await pool.end();
|
|
47
42
|
}
|
|
48
43
|
},
|
|
49
44
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAgB,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,SAAS,aAAa,CAAC,OAAgB;IACrC,OAAO;QACL,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC;QACpC,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC;QAClC,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,SAA8B;IAC5B,gBAAgB,EACd,OAAO,CAAC,GAAG,CAAC,qBAAqB;QACjC,6CAA6C;IAC/C,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B;IACnD,gBAAgB,EACd,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAI,IAAI,EAAE,EAAE,CAAC;QACtE,EAAE;CACL;IAED,MAAM,IAAI,GACR,MAAM,CAAC,IAAI;QACX,IAAI,IAAI,CAAC;YACP,gBAAgB,EACd,MAAM,CAAC,gBAAgB;gBACvB,6CAA6C;SAChD,CAAC,CAAC;IAEL,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE/C,OAAO;QACL,GAAG,OAAO;QACV,GAAG,QAAQ;QACX,GAAG,KAAK;QACR,KAAK,CAAC,KAAK;YACT,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QACD,KAAK,CAAC,KAAK;YACT,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAID,cAAc,qBAAqB,CAAC"}
|
package/dist/queue.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Queue } from '@workflow/world';
|
|
2
|
-
import type
|
|
2
|
+
import type { Pool } from 'pg';
|
|
3
3
|
import type { PostgresWorldConfig } from './config.js';
|
|
4
4
|
/**
|
|
5
5
|
* The Postgres queue works by creating two job types in graphile-worker:
|
|
@@ -15,5 +15,5 @@ export type PostgresQueue = Queue & {
|
|
|
15
15
|
start(): Promise<void>;
|
|
16
16
|
close(): Promise<void>;
|
|
17
17
|
};
|
|
18
|
-
export declare function createQueue(config: PostgresWorldConfig,
|
|
18
|
+
export declare function createQueue(config: PostgresWorldConfig, pool: Pool): PostgresQueue;
|
|
19
19
|
//# sourceMappingURL=queue.d.ts.map
|
package/dist/queue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,KAAK,EAKX,MAAM,iBAAiB,CAAC;AASzB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAG/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAuCvD;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAEF,wBAAgB,WAAW,CACzB,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,IAAI,GACT,aAAa,CA2Zf"}
|
package/dist/queue.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as Stream from 'node:stream';
|
|
2
2
|
import { JsonTransport } from '@vercel/queue';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { getWorkflowPort } from '@workflow/utils/get-port';
|
|
4
|
+
import { MessageId, QueuePayloadSchema, WorkflowInvokePayloadSchema, } from '@workflow/world';
|
|
5
|
+
import { createLocalWorld } from '@workflow/world-local';
|
|
5
6
|
import { Logger, makeWorkerUtils, run, } from 'graphile-worker';
|
|
6
7
|
import { monotonicFactory } from 'ulid';
|
|
7
8
|
import z from 'zod';
|
|
@@ -30,10 +31,9 @@ const GraphileHelpers = z.object({
|
|
|
30
31
|
attempts: z.number().int().positive(),
|
|
31
32
|
}),
|
|
32
33
|
});
|
|
33
|
-
export function createQueue(config,
|
|
34
|
+
export function createQueue(config, pool) {
|
|
34
35
|
const port = process.env.PORT ? Number(process.env.PORT) : undefined;
|
|
35
36
|
const localWorld = createLocalWorld({ dataDir: undefined, port });
|
|
36
|
-
const executor = createQueueExecutor({ port });
|
|
37
37
|
const transport = new JsonTransport();
|
|
38
38
|
const generateMessageId = monotonicFactory();
|
|
39
39
|
const prefix = config.jobPrefix || 'workflow_';
|
|
@@ -41,18 +41,13 @@ export function createQueue(config, postgres) {
|
|
|
41
41
|
__wkf_workflow_: `${prefix}flows`,
|
|
42
42
|
__wkf_step_: `${prefix}steps`,
|
|
43
43
|
};
|
|
44
|
-
const createQueueHandler =
|
|
45
|
-
const wrappedHandler = localWorld.createQueueHandler(prefix, handler);
|
|
46
|
-
// Register the HTTP-compatible handler so Graphile workers can execute it
|
|
47
|
-
// directly in-process when the route module has been loaded.
|
|
48
|
-
executor.registerHandler(prefix, wrappedHandler);
|
|
49
|
-
return wrappedHandler;
|
|
50
|
-
};
|
|
44
|
+
const createQueueHandler = localWorld.createQueueHandler;
|
|
51
45
|
const getDeploymentId = async () => {
|
|
52
46
|
return 'postgres';
|
|
53
47
|
};
|
|
54
48
|
const completedMessages = new Set();
|
|
55
49
|
const inflightMessages = new Map();
|
|
50
|
+
const inflightWorkflowRuns = new Map();
|
|
56
51
|
let workerUtils = null;
|
|
57
52
|
let runner = null;
|
|
58
53
|
let startPromise = null;
|
|
@@ -87,49 +82,100 @@ export function createQueue(config, postgres) {
|
|
|
87
82
|
maxAttempts: 3,
|
|
88
83
|
});
|
|
89
84
|
}
|
|
85
|
+
async function resolveExecutionBaseUrl() {
|
|
86
|
+
if (process.env.WORKFLOW_LOCAL_BASE_URL) {
|
|
87
|
+
return process.env.WORKFLOW_LOCAL_BASE_URL;
|
|
88
|
+
}
|
|
89
|
+
if (typeof port === 'number') {
|
|
90
|
+
return `http://localhost:${port}`;
|
|
91
|
+
}
|
|
92
|
+
if (process.env.PORT) {
|
|
93
|
+
return `http://localhost:${process.env.PORT}`;
|
|
94
|
+
}
|
|
95
|
+
const detectedPort = await getWorkflowPort();
|
|
96
|
+
if (typeof detectedPort === 'number') {
|
|
97
|
+
return `http://localhost:${detectedPort}`;
|
|
98
|
+
}
|
|
99
|
+
throw new Error('Unable to resolve base URL for workflow queue.');
|
|
100
|
+
}
|
|
101
|
+
function getQueueRoute(queueName) {
|
|
102
|
+
if (queueName.startsWith('__wkf_step_')) {
|
|
103
|
+
return 'step';
|
|
104
|
+
}
|
|
105
|
+
if (queueName.startsWith('__wkf_workflow_')) {
|
|
106
|
+
return 'flow';
|
|
107
|
+
}
|
|
108
|
+
throw new Error('Unknown queue name prefix');
|
|
109
|
+
}
|
|
110
|
+
async function executeMessageOverHttp({ queueName, messageId, attempt, body, headers: extraHeaders, }) {
|
|
111
|
+
const headers = {
|
|
112
|
+
...extraHeaders,
|
|
113
|
+
'content-type': 'application/json',
|
|
114
|
+
'x-vqs-queue-name': queueName,
|
|
115
|
+
'x-vqs-message-id': messageId,
|
|
116
|
+
'x-vqs-message-attempt': String(attempt),
|
|
117
|
+
};
|
|
118
|
+
const baseUrl = await resolveExecutionBaseUrl();
|
|
119
|
+
const pathname = getQueueRoute(queueName);
|
|
120
|
+
const response = await fetch(`${baseUrl}/.well-known/workflow/v1/${pathname}`, {
|
|
121
|
+
method: 'POST',
|
|
122
|
+
duplex: 'half',
|
|
123
|
+
headers,
|
|
124
|
+
body,
|
|
125
|
+
});
|
|
126
|
+
const text = await response.text();
|
|
127
|
+
if (!response.ok) {
|
|
128
|
+
return {
|
|
129
|
+
type: 'error',
|
|
130
|
+
status: response.status,
|
|
131
|
+
text,
|
|
132
|
+
headers: Object.fromEntries(response.headers.entries()),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
try {
|
|
136
|
+
const timeoutSeconds = Number(JSON.parse(text).timeoutSeconds);
|
|
137
|
+
if (Number.isFinite(timeoutSeconds) && timeoutSeconds >= 0) {
|
|
138
|
+
return { type: 'reschedule', timeoutSeconds };
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch { }
|
|
142
|
+
return { type: 'completed' };
|
|
143
|
+
}
|
|
90
144
|
async function migratePgBossJobs(utils) {
|
|
91
145
|
// Scenario A: Drizzle migration already ran — staging table exists
|
|
92
|
-
const hasStaging = await
|
|
93
|
-
SELECT EXISTS (
|
|
146
|
+
const hasStaging = await pool.query(`SELECT EXISTS (
|
|
94
147
|
SELECT 1 FROM information_schema.tables
|
|
95
148
|
WHERE table_schema = 'workflow'
|
|
96
149
|
AND table_name = '_pgboss_pending_jobs'
|
|
97
|
-
) AS exists
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
FROM "workflow"."_pgboss_pending_jobs"
|
|
103
|
-
`;
|
|
104
|
-
for (const job of jobs) {
|
|
150
|
+
) AS exists`);
|
|
151
|
+
if (hasStaging.rows[0]?.exists) {
|
|
152
|
+
const jobs = await pool.query(`SELECT name, data, singleton_key, retry_limit
|
|
153
|
+
FROM "workflow"."_pgboss_pending_jobs"`);
|
|
154
|
+
for (const job of jobs.rows) {
|
|
105
155
|
await utils.addJob(job.name, job.data, {
|
|
106
156
|
jobKey: job.singleton_key ?? undefined,
|
|
107
157
|
maxAttempts: job.retry_limit ?? 3,
|
|
108
158
|
});
|
|
109
159
|
}
|
|
110
|
-
await
|
|
160
|
+
await pool.query(`DROP TABLE "workflow"."_pgboss_pending_jobs"`);
|
|
111
161
|
return;
|
|
112
162
|
}
|
|
113
163
|
// Scenario B: Drizzle migration didn't run — pgboss schema still exists
|
|
114
|
-
const hasPgBoss = await
|
|
115
|
-
SELECT EXISTS (
|
|
164
|
+
const hasPgBoss = await pool.query(`SELECT EXISTS (
|
|
116
165
|
SELECT 1 FROM information_schema.schemata
|
|
117
166
|
WHERE schema_name = 'pgboss'
|
|
118
|
-
) AS exists
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
const jobs = await postgres `
|
|
122
|
-
SELECT name, data, singleton_key, retry_limit
|
|
167
|
+
) AS exists`);
|
|
168
|
+
if (hasPgBoss.rows[0]?.exists) {
|
|
169
|
+
const jobs = await pool.query(`SELECT name, data, singleton_key, retry_limit
|
|
123
170
|
FROM pgboss.job
|
|
124
|
-
WHERE state IN ('created', 'retry')
|
|
125
|
-
|
|
126
|
-
for (const job of jobs) {
|
|
171
|
+
WHERE state IN ('created', 'retry')`);
|
|
172
|
+
for (const job of jobs.rows) {
|
|
127
173
|
await utils.addJob(job.name, job.data, {
|
|
128
174
|
jobKey: job.singleton_key ?? undefined,
|
|
129
175
|
maxAttempts: job.retry_limit ?? 3,
|
|
130
176
|
});
|
|
131
177
|
}
|
|
132
|
-
await
|
|
178
|
+
await pool.query(`DROP SCHEMA pgboss CASCADE`);
|
|
133
179
|
}
|
|
134
180
|
}
|
|
135
181
|
async function start() {
|
|
@@ -137,7 +183,7 @@ export function createQueue(config, postgres) {
|
|
|
137
183
|
startPromise = (async () => {
|
|
138
184
|
try {
|
|
139
185
|
workerUtils = await makeWorkerUtils({
|
|
140
|
-
|
|
186
|
+
pgPool: pool,
|
|
141
187
|
logger: graphileLogger,
|
|
142
188
|
});
|
|
143
189
|
await workerUtils.migrate();
|
|
@@ -177,12 +223,21 @@ export function createQueue(config, postgres) {
|
|
|
177
223
|
const attempt = graphileAttempt.success
|
|
178
224
|
? graphileAttempt.data.job.attempts
|
|
179
225
|
: messageData.attempt;
|
|
226
|
+
const queueName = `${queue}${messageData.id}`;
|
|
227
|
+
const bodyStream = Stream.Readable.toWeb(Stream.Readable.from([messageData.data]));
|
|
228
|
+
const body = await transport.deserialize(bodyStream);
|
|
229
|
+
QueuePayloadSchema.parse(body);
|
|
230
|
+
const workflowRunSerializationKey = queue === '__wkf_workflow_'
|
|
231
|
+
? (() => {
|
|
232
|
+
const workflowInvoke = WorkflowInvokePayloadSchema.safeParse(body);
|
|
233
|
+
if (!workflowInvoke.success) {
|
|
234
|
+
return undefined;
|
|
235
|
+
}
|
|
236
|
+
return `workflow:${workflowInvoke.data.runId}`;
|
|
237
|
+
})()
|
|
238
|
+
: undefined;
|
|
180
239
|
const executeTask = async () => {
|
|
181
|
-
const
|
|
182
|
-
const body = await transport.deserialize(bodyStream);
|
|
183
|
-
QueuePayloadSchema.parse(body);
|
|
184
|
-
const queueName = `${queue}${messageData.id}`;
|
|
185
|
-
const result = await executor.executeMessage({
|
|
240
|
+
const result = await executeMessageOverHttp({
|
|
186
241
|
queueName,
|
|
187
242
|
messageId: messageData.messageId,
|
|
188
243
|
attempt,
|
|
@@ -212,6 +267,23 @@ export function createQueue(config, postgres) {
|
|
|
212
267
|
};
|
|
213
268
|
const idempotencyKey = messageData.idempotencyKey;
|
|
214
269
|
if (!idempotencyKey) {
|
|
270
|
+
if (workflowRunSerializationKey) {
|
|
271
|
+
// Preserve step fan-out while preventing two workflow replays from
|
|
272
|
+
// mutating the same run's event log at the same time.
|
|
273
|
+
const previous = inflightWorkflowRuns.get(workflowRunSerializationKey);
|
|
274
|
+
const execution = (previous ?? Promise.resolve())
|
|
275
|
+
.catch(() => { })
|
|
276
|
+
.then(() => executeTask())
|
|
277
|
+
.finally(() => {
|
|
278
|
+
if (inflightWorkflowRuns.get(workflowRunSerializationKey) ===
|
|
279
|
+
execution) {
|
|
280
|
+
inflightWorkflowRuns.delete(workflowRunSerializationKey);
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
inflightWorkflowRuns.set(workflowRunSerializationKey, execution);
|
|
284
|
+
await execution;
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
215
287
|
await executeTask();
|
|
216
288
|
return;
|
|
217
289
|
}
|
|
@@ -242,7 +314,7 @@ export function createQueue(config, postgres) {
|
|
|
242
314
|
taskList[jobName] = createTaskHandler(prefix);
|
|
243
315
|
}
|
|
244
316
|
runner = await run({
|
|
245
|
-
|
|
317
|
+
pgPool: pool,
|
|
246
318
|
concurrency: config.queueConcurrency || 10,
|
|
247
319
|
logger: graphileLogger,
|
|
248
320
|
pollInterval: 500, // 500ms = 0.5s (graphile-worker uses LISTEN/NOTIFY when available)
|
|
@@ -264,7 +336,6 @@ export function createQueue(config, postgres) {
|
|
|
264
336
|
workerUtils = null;
|
|
265
337
|
}
|
|
266
338
|
startPromise = null;
|
|
267
|
-
await executor.close();
|
|
268
339
|
await localWorld.close?.();
|
|
269
340
|
},
|
|
270
341
|
};
|
package/dist/queue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,SAAS,EAET,kBAAkB,GAGnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EACL,MAAM,EACN,eAAe,EAEf,GAAG,GAEJ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,SAAS,oBAAoB;IAC3B,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG,CAAC;IAChE,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEnD,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,KAAa,EAAE,OAAe,EAAE,IAAc,EAAE,EAAE;QACzE,IAAI,UAAU,EAAE;YAAE,OAAO;QACzB,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;YAAE,OAAO;QACpE,MAAM,IAAI,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACjE,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,KAAK,CACR,qBAAqB,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAClE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,qBAAqB,OAAO,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;AAC9C,MAAM,iCAAiC,GAAG,MAAM,CAAC;AACjD,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;QACZ,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACtC,CAAC;CACH,CAAC,CAAC;AAiBH,MAAM,UAAU,WAAW,CACzB,MAA2B,EAC3B,QAAsB;IAEtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,MAAM,UAAU,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;IACtC,MAAM,iBAAiB,GAAG,gBAAgB,EAAE,CAAC;IAE7C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,IAAI,WAAW,CAAC;IAC/C,MAAM,MAAM,GAAG;QACb,eAAe,EAAE,GAAG,MAAM,OAAO;QACjC,WAAW,EAAE,GAAG,MAAM,OAAO;KACiB,CAAC;IAEjD,MAAM,kBAAkB,GAAgC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QAC1E,MAAM,cAAc,GAAG,UAAU,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtE,0EAA0E;QAC1E,6DAA6D;QAC7D,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACjD,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,eAAe,GAA6B,KAAK,IAAI,EAAE;QAC3D,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC1D,IAAI,WAAW,GAAuB,IAAI,CAAC;IAC3C,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,YAAY,GAAyB,IAAI,CAAC;IAE9C,SAAS,oBAAoB,CAAC,cAAsB;QAClD,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACtC,IAAI,iBAAiB,CAAC,IAAI,GAAG,iCAAiC,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC1D,IAAI,SAAS,EAAE,CAAC;gBACd,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,UAAU,cAAc,CAAC,EAC5B,WAAW,EACX,OAAO,EACP,IAAI,EACJ,SAAS,EACT,OAAO,EACP,cAAc,EACd,OAAO,EACP,YAAY,EACZ,MAAM,GAWP;QACC,MAAM,KAAK,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,KAAK,GACT,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,GAAG,CAAC;YAClD,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,GAAG,IAAI,CAAC;YAC5C,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,KAAK,CAAC,MAAM,CAChB,MAAM,CAAC,WAAW,CAAC,EACnB,WAAW,CAAC,MAAM,CAAC;YACjB,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACvB,OAAO;YACP,SAAS;YACT,cAAc;YACd,OAAO;SACR,CAAC,EACF;YACE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,WAAW,EAAE,CAAC;SACf,CACF,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,iBAAiB,CAAC,KAAkB;QACjD,mEAAmE;QACnE,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAA;;;;;;KAMhC,CAAC;QACF,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAA;;;OAG1B,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAA+B,EAAE;oBAChE,MAAM,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS;oBACtC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC;iBAClC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,QAAQ,CAAA,8CAA8C,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAA;;;;;KAK/B,CAAC;QACF,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAA;;;;OAI1B,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAA+B,EAAE;oBAChE,MAAM,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS;oBACtC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC;iBAClC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,QAAQ,CAAA,4BAA4B,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,KAAK,UAAU,KAAK;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE;gBACzB,IAAI,CAAC;oBACH,WAAW,GAAG,MAAM,eAAe,CAAC;wBAClC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;wBACzC,MAAM,EAAE,cAAc;qBACvB,CAAC,CAAC;oBACH,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;oBAC5B,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBACrC,MAAM,cAAc,EAAE,CAAC;gBACzB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,YAAY,GAAG,IAAI,CAAC;oBACpB,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;QACD,MAAM,YAAY,CAAC;IACrB,CAAC;IAED,MAAM,KAAK,GAAmB,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC3D,MAAM,KAAK,EAAE,CAAC;QACd,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,cAAc,CAAC;YACnB,WAAW;YACX,OAAO;YACP,IAAI;YACJ,SAAS;YACT,OAAO,EAAE,CAAC;YACV,cAAc,EAAE,IAAI,EAAE,cAAc;YACpC,OAAO,EAAE,IAAI,EAAE,OAAO;YACtB,YAAY,EAAE,IAAI,EAAE,YAAY;YAChC,MAAM,EAAE,IAAI,EAAE,cAAc,IAAI,SAAS;SAC1C,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,SAAS,iBAAiB,CAAC,KAAkB;QAC3C,OAAO,KAAK,EAAE,OAAgB,EAAE,OAAgB,EAAE,EAAE;YAClD,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO;gBACrC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ;gBACnC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;YACxB,MAAM,WAAW,GAAG,KAAK,IAA0C,EAAE;gBACnE,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CACzC,CAAC;gBACF,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,WAAW,CACtC,UAAwC,CACzC,CAAC;gBACF,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,SAAS,GAAG,GAAG,KAAK,GAAG,WAAW,CAAC,EAAE,EAAW,CAAC;gBACvD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC;oBAC3C,SAAS;oBACT,SAAS,EAAE,WAAW,CAAC,SAAS;oBAChC,OAAO;oBACP,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,OAAO,EAAE,WAAW,CAAC,OAAO;iBAC7B,CAAC,CAAC;gBAEH,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChC,OAAO,WAAW,CAAC;gBACrB,CAAC;gBAED,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACjC,gEAAgE;oBAChE,4BAA4B;oBAC5B,MAAM,cAAc,CAAC;wBACnB,WAAW,EAAE,KAAK;wBAClB,OAAO,EAAE,WAAW,CAAC,EAAE;wBACvB,IAAI,EAAE,WAAW,CAAC,IAAI;wBACtB,SAAS,EAAE,WAAW,CAAC,SAAS;wBAChC,OAAO,EAAE,OAAO,GAAG,CAAC;wBACpB,cAAc,EAAE,WAAW,CAAC,cAAc;wBAC1C,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,YAAY,EAAE,MAAM,CAAC,cAAc;wBACnC,MAAM,EAAE,WAAW,CAAC,cAAc,IAAI,WAAW,CAAC,SAAS;qBAC5D,CAAC,CAAC;oBACH,OAAO,aAAa,CAAC;gBACvB,CAAC;gBAED,MAAM,IAAI,KAAK,CACb,4CAA4C,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,IAAI,EAAE,CAC7E,CAAC;YACJ,CAAC,CAAC;YAEF,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;YAClD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,WAAW,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC1C,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACtD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,CAAC;gBACf,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,WAAW,EAAE;iBAC5B,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC3B,oBAAoB,CAAC,cAAc,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YACL,gBAAgB,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YAChD,MAAM,SAAS,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,cAAc;QAC3B,MAAM,QAAQ,GAGV,EAAE,CAAC;QACP,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAGlD,EAAE,CAAC;YACJ,QAAQ,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,GAAG,MAAM,GAAG,CAAC;YACjB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,WAAW,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE;YAC1C,MAAM,EAAE,cAAc;YACtB,YAAY,EAAE,GAAG,EAAE,mEAAmE;YACtF,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,kBAAkB;QAClB,eAAe;QACf,KAAK;QACL,KAAK;QACL,KAAK,CAAC,KAAK;YACT,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpB,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC5B,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YACD,YAAY,GAAG,IAAI,CAAC;YACpB,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,IAAoB,EAAyB,EAAE;IACrE,MAAM,QAAQ,GAAkB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IACnE,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
|
package/dist/storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAWV,OAAO,EAKR,MAAM,iBAAiB,CAAC;AAczB,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,oBAAoB,CAAC;AAiE1D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA2DnE;AAmGD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAq9BvE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAiErE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CA4DrE"}
|