@vielzeug/postmaster 2.0.0
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 +87 -0
- package/dist/_json.cjs +2 -0
- package/dist/_json.cjs.map +1 -0
- package/dist/_json.d.ts +6 -0
- package/dist/_json.d.ts.map +1 -0
- package/dist/_json.js +33 -0
- package/dist/_json.js.map +1 -0
- package/dist/definitions.cjs +2 -0
- package/dist/definitions.cjs.map +1 -0
- package/dist/definitions.d.ts +3 -0
- package/dist/definitions.d.ts.map +1 -0
- package/dist/definitions.js +18 -0
- package/dist/definitions.js.map +1 -0
- package/dist/errors.cjs +2 -0
- package/dist/errors.cjs.map +1 -0
- package/dist/errors.d.ts +8 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +10 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/indexeddb.cjs +2 -0
- package/dist/indexeddb.cjs.map +1 -0
- package/dist/indexeddb.d.ts +7 -0
- package/dist/indexeddb.d.ts.map +1 -0
- package/dist/indexeddb.js +93 -0
- package/dist/indexeddb.js.map +1 -0
- package/dist/postmaster.cjs +2 -0
- package/dist/postmaster.cjs.map +1 -0
- package/dist/postmaster.d.ts +3 -0
- package/dist/postmaster.d.ts.map +1 -0
- package/dist/postmaster.iife.js +2 -0
- package/dist/postmaster.iife.js.map +1 -0
- package/dist/postmaster.js +2 -0
- package/dist/postmaster.js.map +1 -0
- package/dist/store-ops.cjs +2 -0
- package/dist/store-ops.cjs.map +1 -0
- package/dist/store-ops.d.ts +40 -0
- package/dist/store-ops.d.ts.map +1 -0
- package/dist/store-ops.js +106 -0
- package/dist/store-ops.js.map +1 -0
- package/dist/testing/memory-store.cjs +2 -0
- package/dist/testing/memory-store.cjs.map +1 -0
- package/dist/testing/memory-store.d.ts +3 -0
- package/dist/testing/memory-store.d.ts.map +1 -0
- package/dist/testing/memory-store.js +84 -0
- package/dist/testing/memory-store.js.map +1 -0
- package/dist/testing.cjs +1 -0
- package/dist/testing.d.ts +2 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +2 -0
- package/dist/types.d.ts +137 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +73 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
export type JsonPrimitive = boolean | null | number | string;
|
|
2
|
+
export type JsonValue = JsonPrimitive | JsonValue[] | {
|
|
3
|
+
readonly [key: string]: JsonValue;
|
|
4
|
+
};
|
|
5
|
+
export interface RetryPolicy {
|
|
6
|
+
readonly delay?: (attempt: number) => number;
|
|
7
|
+
readonly maxAttempts: number;
|
|
8
|
+
readonly shouldRetry: (error: unknown, attempt: number) => boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface JobContext {
|
|
11
|
+
readonly attempt: number;
|
|
12
|
+
readonly entryId: string;
|
|
13
|
+
readonly key: string;
|
|
14
|
+
readonly signal: AbortSignal;
|
|
15
|
+
}
|
|
16
|
+
export type Validate<T> = ((value: unknown) => T) | {
|
|
17
|
+
parse(value: unknown): T;
|
|
18
|
+
};
|
|
19
|
+
export interface JobDefinition<T> {
|
|
20
|
+
readonly execute: (payload: T, context: JobContext) => Promise<void>;
|
|
21
|
+
readonly key: (payload: T) => string;
|
|
22
|
+
readonly migrate?: (payload: unknown, fromVersion: number) => unknown;
|
|
23
|
+
readonly retry?: RetryPolicy;
|
|
24
|
+
readonly validate?: Validate<T>;
|
|
25
|
+
readonly version: number;
|
|
26
|
+
}
|
|
27
|
+
export type JobDefinitions = Record<string, JobDefinition<unknown>>;
|
|
28
|
+
export type InferJobPayload<J> = J extends JobDefinition<infer T> ? T : never;
|
|
29
|
+
export type EntryStatus = 'dead-letter' | 'queued' | 'running';
|
|
30
|
+
export interface StoredFailure {
|
|
31
|
+
readonly message: string;
|
|
32
|
+
readonly name: string;
|
|
33
|
+
readonly occurredAt: number;
|
|
34
|
+
}
|
|
35
|
+
export interface StoredJob {
|
|
36
|
+
readonly attempts: number;
|
|
37
|
+
readonly availableAt: number;
|
|
38
|
+
readonly createdAt: number;
|
|
39
|
+
readonly failure?: StoredFailure;
|
|
40
|
+
readonly id: string;
|
|
41
|
+
readonly key: string;
|
|
42
|
+
readonly leaseExpiresAt?: number;
|
|
43
|
+
readonly name: string;
|
|
44
|
+
readonly ownerId?: string;
|
|
45
|
+
readonly payload: JsonValue;
|
|
46
|
+
readonly status: EntryStatus;
|
|
47
|
+
readonly updatedAt: number;
|
|
48
|
+
readonly version: number;
|
|
49
|
+
}
|
|
50
|
+
export type PostmasterEntry = Pick<StoredJob, 'attempts' | 'availableAt' | 'createdAt' | 'failure' | 'id' | 'key' | 'name' | 'status' | 'updatedAt' | 'version'>;
|
|
51
|
+
export interface EntryFilter {
|
|
52
|
+
readonly status?: EntryStatus;
|
|
53
|
+
}
|
|
54
|
+
export interface PostmasterStats {
|
|
55
|
+
readonly deadLetter: number;
|
|
56
|
+
readonly queued: number;
|
|
57
|
+
readonly running: number;
|
|
58
|
+
}
|
|
59
|
+
export type RetryResult = {
|
|
60
|
+
readonly status: 'not-dead-letter' | 'not-found' | 'running';
|
|
61
|
+
} | {
|
|
62
|
+
readonly entry: PostmasterEntry;
|
|
63
|
+
readonly status: 'retried';
|
|
64
|
+
};
|
|
65
|
+
export type RemoveResult = {
|
|
66
|
+
readonly status: 'not-found' | 'running';
|
|
67
|
+
} | {
|
|
68
|
+
readonly id: string;
|
|
69
|
+
readonly status: 'removed';
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Transactional operations available inside `PostmasterStore.transact()`.
|
|
73
|
+
* Stores implement these primitives; the processor owns all ownership/transition logic.
|
|
74
|
+
*/
|
|
75
|
+
export interface StoreTx {
|
|
76
|
+
countByStatus(): Promise<PostmasterStats>;
|
|
77
|
+
delete(id: string): Promise<void>;
|
|
78
|
+
/** Earliest claimable job: queued with `availableAt <= now`, or running with expired lease. Ordered by availableAt then createdAt. */
|
|
79
|
+
findClaimable(now: number): Promise<StoredJob | undefined>;
|
|
80
|
+
/** Earliest future wake time across queued `availableAt > now` and running `leaseExpiresAt > now`, or undefined if none. */
|
|
81
|
+
findNextWake(now: number): Promise<number | undefined>;
|
|
82
|
+
get(id: string): Promise<StoredJob | undefined>;
|
|
83
|
+
put(entry: StoredJob): Promise<void>;
|
|
84
|
+
}
|
|
85
|
+
export interface PostmasterStore {
|
|
86
|
+
readonly disposalSignal: AbortSignal;
|
|
87
|
+
dispose(): Promise<void>;
|
|
88
|
+
readonly disposed: boolean;
|
|
89
|
+
list(filter?: EntryFilter): Promise<StoredJob[]>;
|
|
90
|
+
subscribe(listener: () => void): () => void;
|
|
91
|
+
transact<T>(fn: (tx: StoreTx) => Promise<T>): Promise<T>;
|
|
92
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
93
|
+
}
|
|
94
|
+
export type PostmasterEvent = {
|
|
95
|
+
readonly entry: PostmasterEntry;
|
|
96
|
+
readonly type: 'enqueued' | 'started' | 'completed' | 'retry-scheduled' | 'dead-lettered';
|
|
97
|
+
} | {
|
|
98
|
+
readonly id: string;
|
|
99
|
+
readonly type: 'removed' | 'lease-lost';
|
|
100
|
+
} | {
|
|
101
|
+
readonly error: Error;
|
|
102
|
+
readonly type: 'processor-error';
|
|
103
|
+
} | {
|
|
104
|
+
readonly type: 'dispose';
|
|
105
|
+
};
|
|
106
|
+
export interface FlushResult {
|
|
107
|
+
readonly completed: number;
|
|
108
|
+
readonly deadLettered: number;
|
|
109
|
+
readonly processed: number;
|
|
110
|
+
readonly retryScheduled: number;
|
|
111
|
+
}
|
|
112
|
+
export interface CreatePostmasterOptions<J extends JobDefinitions> {
|
|
113
|
+
readonly clock?: () => number;
|
|
114
|
+
readonly jobs: J;
|
|
115
|
+
readonly leaseDuration?: number;
|
|
116
|
+
readonly signal?: AbortSignal;
|
|
117
|
+
readonly store: PostmasterStore;
|
|
118
|
+
}
|
|
119
|
+
export interface Postmaster<J extends JobDefinitions> {
|
|
120
|
+
readonly disposalSignal: AbortSignal;
|
|
121
|
+
dispose(): Promise<void>;
|
|
122
|
+
readonly disposed: boolean;
|
|
123
|
+
enqueue<K extends keyof J & string>(name: K, payload: InferJobPayload<J[K]>): Promise<PostmasterEntry>;
|
|
124
|
+
flush(options?: {
|
|
125
|
+
signal?: AbortSignal;
|
|
126
|
+
}): Promise<FlushResult>;
|
|
127
|
+
list(filter?: EntryFilter): Promise<PostmasterEntry[]>;
|
|
128
|
+
remove(id: string): Promise<RemoveResult>;
|
|
129
|
+
retry(id: string): Promise<RetryResult>;
|
|
130
|
+
start(): Promise<void>;
|
|
131
|
+
stats(): Promise<PostmasterStats>;
|
|
132
|
+
tap(handler: (event: PostmasterEvent) => void, options?: {
|
|
133
|
+
readonly signal?: AbortSignal;
|
|
134
|
+
}): () => void;
|
|
135
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vielzeug/postmaster",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Typed durable job outbox with leased processing, retries, and dead-letter recovery",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/helmuthdu/vielzeug",
|
|
8
|
+
"directory": "packages/postmaster"
|
|
9
|
+
},
|
|
10
|
+
"type": "module",
|
|
11
|
+
"engines": {
|
|
12
|
+
"node": ">=22"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"main": "./dist/index.cjs",
|
|
18
|
+
"module": "./dist/index.js",
|
|
19
|
+
"types": "dist/index.d.ts",
|
|
20
|
+
"exports": {
|
|
21
|
+
".": {
|
|
22
|
+
"import": "./dist/index.js",
|
|
23
|
+
"require": "./dist/index.cjs",
|
|
24
|
+
"types": "./dist/index.d.ts"
|
|
25
|
+
},
|
|
26
|
+
"./indexeddb": {
|
|
27
|
+
"import": "./dist/indexeddb.js",
|
|
28
|
+
"require": "./dist/indexeddb.cjs",
|
|
29
|
+
"types": "./dist/indexeddb.d.ts"
|
|
30
|
+
},
|
|
31
|
+
"./testing": {
|
|
32
|
+
"import": "./dist/testing.js",
|
|
33
|
+
"require": "./dist/testing.cjs",
|
|
34
|
+
"types": "./dist/testing.d.ts"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"typesVersions": {
|
|
38
|
+
"*": {
|
|
39
|
+
"indexeddb": [
|
|
40
|
+
"dist/indexeddb.d.ts"
|
|
41
|
+
],
|
|
42
|
+
"testing": [
|
|
43
|
+
"dist/testing.d.ts"
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"sideEffects": false,
|
|
48
|
+
"publishConfig": {
|
|
49
|
+
"access": "public",
|
|
50
|
+
"registry": "https://registry.npmjs.org/"
|
|
51
|
+
},
|
|
52
|
+
"scripts": {
|
|
53
|
+
"build": "vite build && pnpm run build:bundle && pnpm run build:types",
|
|
54
|
+
"build:bundle": "vite build --config vite.bundle.config.ts",
|
|
55
|
+
"build:types": "tsc -p tsconfig.declarations.json",
|
|
56
|
+
"fix": "biome check --write src",
|
|
57
|
+
"lint": "biome ci src",
|
|
58
|
+
"prepublishOnly": "pnpm run build",
|
|
59
|
+
"preview": "vite preview",
|
|
60
|
+
"test": "vitest"
|
|
61
|
+
},
|
|
62
|
+
"dependencies": {
|
|
63
|
+
"@vielzeug/arsenal": "2.1.0",
|
|
64
|
+
"@vielzeug/vault": "2.4.0"
|
|
65
|
+
},
|
|
66
|
+
"devDependencies": {
|
|
67
|
+
"@types/node": "^26.2.0",
|
|
68
|
+
"fake-indexeddb": "^6.2.5",
|
|
69
|
+
"typescript": "^6.0.3",
|
|
70
|
+
"vite": "^8.2.1",
|
|
71
|
+
"vitest": "^4.1.10"
|
|
72
|
+
}
|
|
73
|
+
}
|