@vielzeug/ledger 2.0.0 → 2.1.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 +22 -29
- package/dist/compose.cjs +1 -1
- package/dist/compose.cjs.map +1 -1
- package/dist/compose.d.ts +7 -8
- package/dist/compose.d.ts.map +1 -1
- package/dist/compose.js +31 -18
- package/dist/compose.js.map +1 -1
- package/dist/errors.cjs +1 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +5 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -2
- package/dist/errors.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/ledger.cjs +1 -1
- package/dist/ledger.cjs.map +1 -1
- package/dist/ledger.d.ts +8 -11
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.iife.js +1 -1
- package/dist/ledger.iife.js.map +1 -1
- package/dist/ledger.js +1 -1
- package/dist/ledger.js.map +1 -1
- package/dist/types.d.ts +23 -20
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -4
- package/dist/_dev.cjs +0 -2
- package/dist/_dev.cjs.map +0 -1
- package/dist/_dev.d.ts +0 -2
- package/dist/_dev.d.ts.map +0 -1
- package/dist/_dev.js +0 -6
- package/dist/_dev.js.map +0 -1
package/dist/types.d.ts
CHANGED
|
@@ -1,37 +1,40 @@
|
|
|
1
1
|
import type { Readable } from '@vielzeug/ripple';
|
|
2
|
-
export interface
|
|
3
|
-
|
|
4
|
-
execute: (signal?: AbortSignal) => Promise<void> | void;
|
|
5
|
-
label?: string;
|
|
6
|
-
rollback?: (signal?: AbortSignal) => Promise<void> | void;
|
|
2
|
+
export interface CommandContext {
|
|
3
|
+
readonly signal: AbortSignal;
|
|
7
4
|
}
|
|
8
|
-
export interface
|
|
9
|
-
|
|
10
|
-
label
|
|
5
|
+
export interface ReversibleCommand<TMeta = undefined> {
|
|
6
|
+
readonly apply: (context: CommandContext) => Promise<void> | void;
|
|
7
|
+
readonly label?: string;
|
|
8
|
+
readonly meta?: TMeta;
|
|
9
|
+
readonly revert: (context: CommandContext) => Promise<void> | void;
|
|
10
|
+
}
|
|
11
|
+
export interface HistoryEntry<TMeta = undefined> {
|
|
12
|
+
readonly label: string | undefined;
|
|
13
|
+
readonly meta: TMeta | undefined;
|
|
11
14
|
}
|
|
12
|
-
/** Options accepted by `do()`/`undo()`/`redo()`. */
|
|
13
15
|
export interface LedgerCallOptions {
|
|
14
|
-
/** Merged with the ledger's own `disposalSignal` and passed to `execute`/`rollback`. */
|
|
15
16
|
signal?: AbortSignal;
|
|
16
17
|
}
|
|
17
|
-
export interface LedgerOptions
|
|
18
|
+
export interface LedgerOptions {
|
|
18
19
|
maxHistory?: number;
|
|
19
|
-
onRollbackError?: (err: unknown, meta: CommandMeta<TData>) => void;
|
|
20
20
|
}
|
|
21
|
-
export interface
|
|
22
|
-
readonly
|
|
23
|
-
readonly
|
|
24
|
-
readonly
|
|
25
|
-
readonly
|
|
26
|
-
readonly
|
|
27
|
-
|
|
21
|
+
export interface LedgerState<TMeta = undefined> {
|
|
22
|
+
readonly accepting: boolean;
|
|
23
|
+
readonly queued: number;
|
|
24
|
+
readonly redo: readonly HistoryEntry<TMeta>[];
|
|
25
|
+
readonly running: number;
|
|
26
|
+
readonly undo: readonly HistoryEntry<TMeta>[];
|
|
27
|
+
}
|
|
28
|
+
export interface Ledger<TMeta = undefined> {
|
|
28
29
|
clear(): Promise<void>;
|
|
29
30
|
readonly disposalSignal: AbortSignal;
|
|
30
31
|
dispose(): void;
|
|
31
32
|
readonly disposed: boolean;
|
|
32
|
-
do(command:
|
|
33
|
+
do(command: ReversibleCommand<TMeta>, options?: LedgerCallOptions): Promise<void>;
|
|
33
34
|
redo(options?: LedgerCallOptions): Promise<void>;
|
|
35
|
+
readonly state: Readable<LedgerState<TMeta>>;
|
|
34
36
|
undo(options?: LedgerCallOptions): Promise<void>;
|
|
37
|
+
whenIdle(): Promise<void>;
|
|
35
38
|
[Symbol.dispose](): void;
|
|
36
39
|
}
|
|
37
40
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB,CAAC,KAAK,GAAG,SAAS;IAClD,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACpE;AAED,MAAM,WAAW,YAAY,CAAC,KAAK,GAAG,SAAS;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW,CAAC,KAAK,GAAG,SAAS;IAC5C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,MAAM,CAAC,KAAK,GAAG,SAAS;IACvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;CAC1B"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vielzeug/ledger",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.1.0",
|
|
4
|
+
"description": "Serialized reversible command history with atomic Ripple state and cancellation ownership",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist"
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
"types": "dist/index.d.ts",
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
14
|
-
"source": "./src/index.ts",
|
|
15
14
|
"types": "./dist/index.d.ts",
|
|
16
15
|
"import": "./dist/index.js",
|
|
17
16
|
"require": "./dist/index.cjs"
|
|
@@ -34,7 +33,7 @@
|
|
|
34
33
|
"node": ">=22"
|
|
35
34
|
},
|
|
36
35
|
"dependencies": {
|
|
37
|
-
"@vielzeug/ripple": "2.0.
|
|
36
|
+
"@vielzeug/ripple": "2.0.1"
|
|
38
37
|
},
|
|
39
38
|
"devDependencies": {
|
|
40
39
|
"@types/node": "^26.1.2",
|
package/dist/_dev.cjs
DELETED
package/dist/_dev.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_dev.cjs","names":[],"sources":["../src/_dev.ts"],"sourcesContent":["const isDev = !(globalThis as { __LEDGER_PROD__?: boolean }).__LEDGER_PROD__;\n\n/** @internal @security Messages may include user data. */\nexport function warn(msg: string): void {\n if (isDev) console.warn(`[@vielzeug/ledger] ${msg}`);\n}\n\n/** @internal — Run fn only in dev builds. Use when dev-only logic goes beyond a single warn() / error() call. */\nexport function devOnly(fn: () => void): void {\n if (isDev) fn();\n}\n"],"mappings":"AAGA,SAAgB,EAAK,EAAmB,CAExC"}
|
package/dist/_dev.d.ts
DELETED
package/dist/_dev.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_dev.d.ts","sourceRoot":"","sources":["../src/_dev.ts"],"names":[],"mappings":""}
|
package/dist/_dev.js
DELETED
package/dist/_dev.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_dev.js","names":[],"sources":["../src/_dev.ts"],"sourcesContent":["const isDev = !(globalThis as { __LEDGER_PROD__?: boolean }).__LEDGER_PROD__;\n\n/** @internal @security Messages may include user data. */\nexport function warn(msg: string): void {\n if (isDev) console.warn(`[@vielzeug/ledger] ${msg}`);\n}\n\n/** @internal — Run fn only in dev builds. Use when dev-only logic goes beyond a single warn() / error() call. */\nexport function devOnly(fn: () => void): void {\n if (isDev) fn();\n}\n"],"mappings":";AAGA,SAAgB,EAAK,GAAmB,CAExC"}
|