@pluv/crdt 2.1.0 → 2.2.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/.turbo/turbo-build.log +6 -6
- package/CHANGELOG.md +6 -0
- package/dist/index.d.mts +17 -20
- package/dist/index.d.ts +17 -20
- package/dist/index.js +3 -0
- package/dist/index.mjs +3 -0
- package/package.json +4 -4
- package/src/AbstractCrdtDocFactory.ts +8 -6
- package/src/NoopCrdtDoc.ts +4 -2
- package/src/NoopCrdtDocFactory.ts +1 -1
- package/src/index.ts +4 -2
- package/src/types.ts +9 -23
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @pluv/crdt@2.
|
|
2
|
+
> @pluv/crdt@2.2.0 build /home/runner/work/pluv/pluv/packages/crdt
|
|
3
3
|
> tsup src/index.ts --format esm,cjs --dts
|
|
4
4
|
|
|
5
5
|
[34mCLI[39m Building entry: src/index.ts
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
[34mCLI[39m Target: es6
|
|
9
9
|
[34mESM[39m Build start
|
|
10
10
|
[34mCJS[39m Build start
|
|
11
|
-
[32mESM[39m [1mdist/index.mjs [22m[32m1.
|
|
11
|
+
[32mESM[39m [1mdist/index.mjs [22m[32m1.55 KB[39m
|
|
12
12
|
[32mESM[39m ⚡️ Build success in 24ms
|
|
13
|
-
[32mCJS[39m [1mdist/index.js [22m[32m2.
|
|
13
|
+
[32mCJS[39m [1mdist/index.js [22m[32m2.68 KB[39m
|
|
14
14
|
[32mCJS[39m ⚡️ Build success in 24ms
|
|
15
15
|
[34mDTS[39m Build start
|
|
16
|
-
[32mDTS[39m ⚡️ Build success in
|
|
17
|
-
[32mDTS[39m [1mdist/index.d.mts [22m[32m2.
|
|
18
|
-
[32mDTS[39m [1mdist/index.d.ts [22m[32m2.
|
|
16
|
+
[32mDTS[39m ⚡️ Build success in 508ms
|
|
17
|
+
[32mDTS[39m [1mdist/index.d.mts [22m[32m2.64 KB[39m
|
|
18
|
+
[32mDTS[39m [1mdist/index.d.ts [22m[32m2.64 KB[39m
|
package/CHANGELOG.md
CHANGED
package/dist/index.d.mts
CHANGED
|
@@ -1,26 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { CrdtDocLike, DocApplyEncodedStateParams, DocBatchApplyEncodedStateParams, DocSubscribeCallbackParams } from '@pluv/types';
|
|
1
|
+
import { CrdtType, CrdtDocLike, DocApplyEncodedStateParams, DocBatchApplyEncodedStateParams, DocSubscribeCallbackParams } from '@pluv/types';
|
|
2
|
+
export { CrdtDocLike, CrdtType, DocApplyEncodedStateParams, DocBatchApplyEncodedStateParams, DocSubscribeCallbackParams, InferCrdtJson } from '@pluv/types';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
__pluvType: () => TJson;
|
|
6
|
-
};
|
|
7
|
-
type InferCrdtJson<T extends unknown> = T extends CrdtType<any, infer IJson> ? InferCrdtJson<IJson> : T extends Record<string, any> ? {
|
|
8
|
-
[P in keyof T]: InferCrdtJson<T[P]>;
|
|
9
|
-
} : T extends (infer IJson)[] ? InferCrdtJson<IJson>[] : T extends readonly (infer IJson)[] ? readonly InferCrdtJson<IJson>[] : T extends Json ? T : string;
|
|
10
|
-
type InferInitialStorageFn<TFactory extends AbstractCrdtDocFactory<any>> = TFactory["_initialStorage"];
|
|
11
|
-
type InferStorage<TFactory extends AbstractCrdtDocFactory<any>> = ReturnType<InferInitialStorageFn<TFactory>>;
|
|
12
|
-
type InferBuilder<TFactory extends AbstractCrdtDocFactory<any>> = Parameters<InferInitialStorageFn<TFactory>>[0];
|
|
13
|
-
|
|
14
|
-
declare abstract class AbstractCrdtDocFactory<TStorage extends Record<string, CrdtType<any, any>>> {
|
|
4
|
+
declare abstract class AbstractCrdtDocFactory<TDoc extends any, TStorage extends Record<string, CrdtType<any, any>>> {
|
|
15
5
|
_initialStorage: (builder: any) => TStorage;
|
|
16
6
|
constructor(initialStorage: (builder: any) => TStorage);
|
|
17
|
-
abstract getEmpty(): CrdtDocLike<TStorage>;
|
|
18
|
-
abstract getFactory(initialStorage?: (builder: any) => TStorage): AbstractCrdtDocFactory<TStorage>;
|
|
19
|
-
abstract getInitialized(initialStorage?: (builder: any) => TStorage): CrdtDocLike<TStorage>;
|
|
7
|
+
abstract getEmpty(): CrdtDocLike<TDoc, TStorage>;
|
|
8
|
+
abstract getFactory(initialStorage?: (builder: any) => TStorage): AbstractCrdtDocFactory<TDoc, TStorage>;
|
|
9
|
+
abstract getInitialized(initialStorage?: (builder: any) => TStorage): CrdtDocLike<TDoc, TStorage>;
|
|
20
10
|
resolveEncodedState(updates: string | string[] | readonly string[]): string | null;
|
|
21
11
|
}
|
|
22
12
|
|
|
23
|
-
declare class NoopCrdtDoc implements CrdtDocLike<any> {
|
|
13
|
+
declare class NoopCrdtDoc implements CrdtDocLike<any, any> {
|
|
14
|
+
value: any;
|
|
24
15
|
applyEncodedState(params: DocApplyEncodedStateParams): this;
|
|
25
16
|
batchApplyEncodedState(params: DocBatchApplyEncodedStateParams): this;
|
|
26
17
|
canRedo(): boolean;
|
|
@@ -32,14 +23,14 @@ declare class NoopCrdtDoc implements CrdtDocLike<any> {
|
|
|
32
23
|
isEmpty(): boolean;
|
|
33
24
|
rebuildStorage(): this;
|
|
34
25
|
redo(): this;
|
|
35
|
-
subscribe(listener: (params: DocSubscribeCallbackParams<any>) => void): () => void;
|
|
26
|
+
subscribe(listener: (params: DocSubscribeCallbackParams<any, any>) => void): () => void;
|
|
36
27
|
toJson(): any;
|
|
37
28
|
track(): this;
|
|
38
29
|
transact(fn: () => void, origin?: string | undefined): this;
|
|
39
30
|
undo(): this;
|
|
40
31
|
}
|
|
41
32
|
|
|
42
|
-
declare class NoopCrdtDocFactory extends AbstractCrdtDocFactory<any> {
|
|
33
|
+
declare class NoopCrdtDocFactory extends AbstractCrdtDocFactory<any, any> {
|
|
43
34
|
constructor(initialStorage?: () => {});
|
|
44
35
|
getEmpty(): NoopCrdtDoc;
|
|
45
36
|
getFactory(initialStorage?: ((builder: any) => any) | undefined): NoopCrdtDocFactory;
|
|
@@ -50,4 +41,10 @@ declare const noop: {
|
|
|
50
41
|
doc: (args?: any) => NoopCrdtDocFactory;
|
|
51
42
|
};
|
|
52
43
|
|
|
53
|
-
|
|
44
|
+
type InferDoc<TFactory extends AbstractCrdtDocFactory<any, any>> = InferDocLike<TFactory>["value"];
|
|
45
|
+
type InferDocLike<TFactory extends AbstractCrdtDocFactory<any, any>> = ReturnType<TFactory["getInitialized"]>;
|
|
46
|
+
type InferInitialStorageFn<TFactory extends AbstractCrdtDocFactory<any, any>> = TFactory["_initialStorage"];
|
|
47
|
+
type InferStorage<TFactory extends AbstractCrdtDocFactory<any, any>> = ReturnType<InferInitialStorageFn<TFactory>>;
|
|
48
|
+
type InferBuilder<TFactory extends AbstractCrdtDocFactory<any, any>> = Parameters<InferInitialStorageFn<TFactory>>[0];
|
|
49
|
+
|
|
50
|
+
export { AbstractCrdtDocFactory, type InferBuilder, type InferDoc, type InferDocLike, type InferInitialStorageFn, type InferStorage, NoopCrdtDoc, NoopCrdtDocFactory, noop };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,26 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { CrdtDocLike, DocApplyEncodedStateParams, DocBatchApplyEncodedStateParams, DocSubscribeCallbackParams } from '@pluv/types';
|
|
1
|
+
import { CrdtType, CrdtDocLike, DocApplyEncodedStateParams, DocBatchApplyEncodedStateParams, DocSubscribeCallbackParams } from '@pluv/types';
|
|
2
|
+
export { CrdtDocLike, CrdtType, DocApplyEncodedStateParams, DocBatchApplyEncodedStateParams, DocSubscribeCallbackParams, InferCrdtJson } from '@pluv/types';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
__pluvType: () => TJson;
|
|
6
|
-
};
|
|
7
|
-
type InferCrdtJson<T extends unknown> = T extends CrdtType<any, infer IJson> ? InferCrdtJson<IJson> : T extends Record<string, any> ? {
|
|
8
|
-
[P in keyof T]: InferCrdtJson<T[P]>;
|
|
9
|
-
} : T extends (infer IJson)[] ? InferCrdtJson<IJson>[] : T extends readonly (infer IJson)[] ? readonly InferCrdtJson<IJson>[] : T extends Json ? T : string;
|
|
10
|
-
type InferInitialStorageFn<TFactory extends AbstractCrdtDocFactory<any>> = TFactory["_initialStorage"];
|
|
11
|
-
type InferStorage<TFactory extends AbstractCrdtDocFactory<any>> = ReturnType<InferInitialStorageFn<TFactory>>;
|
|
12
|
-
type InferBuilder<TFactory extends AbstractCrdtDocFactory<any>> = Parameters<InferInitialStorageFn<TFactory>>[0];
|
|
13
|
-
|
|
14
|
-
declare abstract class AbstractCrdtDocFactory<TStorage extends Record<string, CrdtType<any, any>>> {
|
|
4
|
+
declare abstract class AbstractCrdtDocFactory<TDoc extends any, TStorage extends Record<string, CrdtType<any, any>>> {
|
|
15
5
|
_initialStorage: (builder: any) => TStorage;
|
|
16
6
|
constructor(initialStorage: (builder: any) => TStorage);
|
|
17
|
-
abstract getEmpty(): CrdtDocLike<TStorage>;
|
|
18
|
-
abstract getFactory(initialStorage?: (builder: any) => TStorage): AbstractCrdtDocFactory<TStorage>;
|
|
19
|
-
abstract getInitialized(initialStorage?: (builder: any) => TStorage): CrdtDocLike<TStorage>;
|
|
7
|
+
abstract getEmpty(): CrdtDocLike<TDoc, TStorage>;
|
|
8
|
+
abstract getFactory(initialStorage?: (builder: any) => TStorage): AbstractCrdtDocFactory<TDoc, TStorage>;
|
|
9
|
+
abstract getInitialized(initialStorage?: (builder: any) => TStorage): CrdtDocLike<TDoc, TStorage>;
|
|
20
10
|
resolveEncodedState(updates: string | string[] | readonly string[]): string | null;
|
|
21
11
|
}
|
|
22
12
|
|
|
23
|
-
declare class NoopCrdtDoc implements CrdtDocLike<any> {
|
|
13
|
+
declare class NoopCrdtDoc implements CrdtDocLike<any, any> {
|
|
14
|
+
value: any;
|
|
24
15
|
applyEncodedState(params: DocApplyEncodedStateParams): this;
|
|
25
16
|
batchApplyEncodedState(params: DocBatchApplyEncodedStateParams): this;
|
|
26
17
|
canRedo(): boolean;
|
|
@@ -32,14 +23,14 @@ declare class NoopCrdtDoc implements CrdtDocLike<any> {
|
|
|
32
23
|
isEmpty(): boolean;
|
|
33
24
|
rebuildStorage(): this;
|
|
34
25
|
redo(): this;
|
|
35
|
-
subscribe(listener: (params: DocSubscribeCallbackParams<any>) => void): () => void;
|
|
26
|
+
subscribe(listener: (params: DocSubscribeCallbackParams<any, any>) => void): () => void;
|
|
36
27
|
toJson(): any;
|
|
37
28
|
track(): this;
|
|
38
29
|
transact(fn: () => void, origin?: string | undefined): this;
|
|
39
30
|
undo(): this;
|
|
40
31
|
}
|
|
41
32
|
|
|
42
|
-
declare class NoopCrdtDocFactory extends AbstractCrdtDocFactory<any> {
|
|
33
|
+
declare class NoopCrdtDocFactory extends AbstractCrdtDocFactory<any, any> {
|
|
43
34
|
constructor(initialStorage?: () => {});
|
|
44
35
|
getEmpty(): NoopCrdtDoc;
|
|
45
36
|
getFactory(initialStorage?: ((builder: any) => any) | undefined): NoopCrdtDocFactory;
|
|
@@ -50,4 +41,10 @@ declare const noop: {
|
|
|
50
41
|
doc: (args?: any) => NoopCrdtDocFactory;
|
|
51
42
|
};
|
|
52
43
|
|
|
53
|
-
|
|
44
|
+
type InferDoc<TFactory extends AbstractCrdtDocFactory<any, any>> = InferDocLike<TFactory>["value"];
|
|
45
|
+
type InferDocLike<TFactory extends AbstractCrdtDocFactory<any, any>> = ReturnType<TFactory["getInitialized"]>;
|
|
46
|
+
type InferInitialStorageFn<TFactory extends AbstractCrdtDocFactory<any, any>> = TFactory["_initialStorage"];
|
|
47
|
+
type InferStorage<TFactory extends AbstractCrdtDocFactory<any, any>> = ReturnType<InferInitialStorageFn<TFactory>>;
|
|
48
|
+
type InferBuilder<TFactory extends AbstractCrdtDocFactory<any, any>> = Parameters<InferInitialStorageFn<TFactory>>[0];
|
|
49
|
+
|
|
50
|
+
export { AbstractCrdtDocFactory, type InferBuilder, type InferDoc, type InferDocLike, type InferInitialStorageFn, type InferStorage, NoopCrdtDoc, NoopCrdtDocFactory, noop };
|
package/dist/index.js
CHANGED
package/dist/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pluv/crdt",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "crdt base for @pluv/io",
|
|
5
5
|
"author": "leedavidcs",
|
|
6
6
|
"license": "MIT",
|
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
"access": "public"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@pluv/types": "^2.
|
|
20
|
+
"@pluv/types": "^2.2.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"eslint": "^9.26.0",
|
|
24
24
|
"tsup": "^8.4.0",
|
|
25
25
|
"typescript": "^5.8.3",
|
|
26
|
-
"@pluv/tsconfig": "^2.
|
|
27
|
-
"eslint-config-pluv": "^2.
|
|
26
|
+
"@pluv/tsconfig": "^2.2.0",
|
|
27
|
+
"eslint-config-pluv": "^2.2.0"
|
|
28
28
|
},
|
|
29
29
|
"scripts": {
|
|
30
30
|
"build": "tsup src/index.ts --format esm,cjs --dts",
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import type { CrdtDocLike } from "@pluv/types";
|
|
2
|
-
import type { CrdtType } from "./types";
|
|
1
|
+
import type { CrdtDocLike, CrdtType } from "@pluv/types";
|
|
3
2
|
|
|
4
|
-
export abstract class AbstractCrdtDocFactory<
|
|
3
|
+
export abstract class AbstractCrdtDocFactory<
|
|
4
|
+
TDoc extends any,
|
|
5
|
+
TStorage extends Record<string, CrdtType<any, any>>,
|
|
6
|
+
> {
|
|
5
7
|
public _initialStorage: (builder: any) => TStorage;
|
|
6
8
|
|
|
7
9
|
constructor(initialStorage: (builder: any) => TStorage) {
|
|
8
10
|
this._initialStorage = initialStorage;
|
|
9
11
|
}
|
|
10
12
|
|
|
11
|
-
public abstract getEmpty(): CrdtDocLike<TStorage>;
|
|
13
|
+
public abstract getEmpty(): CrdtDocLike<TDoc, TStorage>;
|
|
12
14
|
public abstract getFactory(
|
|
13
15
|
initialStorage?: (builder: any) => TStorage,
|
|
14
|
-
): AbstractCrdtDocFactory<TStorage>;
|
|
16
|
+
): AbstractCrdtDocFactory<TDoc, TStorage>;
|
|
15
17
|
public abstract getInitialized(
|
|
16
18
|
initialStorage?: (builder: any) => TStorage,
|
|
17
|
-
): CrdtDocLike<TStorage>;
|
|
19
|
+
): CrdtDocLike<TDoc, TStorage>;
|
|
18
20
|
|
|
19
21
|
public resolveEncodedState(updates: string | string[] | readonly string[]): string | null {
|
|
20
22
|
if (typeof updates === "string") return updates;
|
package/src/NoopCrdtDoc.ts
CHANGED
|
@@ -5,7 +5,9 @@ import {
|
|
|
5
5
|
DocSubscribeCallbackParams,
|
|
6
6
|
} from "@pluv/types";
|
|
7
7
|
|
|
8
|
-
export class NoopCrdtDoc implements CrdtDocLike<any> {
|
|
8
|
+
export class NoopCrdtDoc implements CrdtDocLike<any, any> {
|
|
9
|
+
public value: any = null;
|
|
10
|
+
|
|
9
11
|
public applyEncodedState(params: DocApplyEncodedStateParams): this {
|
|
10
12
|
return this;
|
|
11
13
|
}
|
|
@@ -48,7 +50,7 @@ export class NoopCrdtDoc implements CrdtDocLike<any> {
|
|
|
48
50
|
return this;
|
|
49
51
|
}
|
|
50
52
|
|
|
51
|
-
public subscribe(listener: (params: DocSubscribeCallbackParams<any>) => void): () => void {
|
|
53
|
+
public subscribe(listener: (params: DocSubscribeCallbackParams<any, any>) => void): () => void {
|
|
52
54
|
return () => undefined;
|
|
53
55
|
}
|
|
54
56
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AbstractCrdtDocFactory } from "./AbstractCrdtDocFactory";
|
|
2
2
|
import { NoopCrdtDoc } from "./NoopCrdtDoc";
|
|
3
3
|
|
|
4
|
-
export class NoopCrdtDocFactory extends AbstractCrdtDocFactory<any> {
|
|
4
|
+
export class NoopCrdtDocFactory extends AbstractCrdtDocFactory<any, any> {
|
|
5
5
|
constructor(initialStorage: () => {} = () => ({})) {
|
|
6
6
|
super(initialStorage);
|
|
7
7
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
export type {
|
|
2
2
|
CrdtDocLike,
|
|
3
|
+
CrdtType,
|
|
3
4
|
DocApplyEncodedStateParams,
|
|
4
5
|
DocBatchApplyEncodedStateParams,
|
|
5
6
|
DocSubscribeCallbackParams,
|
|
7
|
+
InferCrdtJson,
|
|
6
8
|
} from "@pluv/types";
|
|
7
9
|
export { AbstractCrdtDocFactory } from "./AbstractCrdtDocFactory";
|
|
8
10
|
export { noop } from "./noop";
|
|
9
11
|
export { NoopCrdtDoc } from "./NoopCrdtDoc";
|
|
10
12
|
export { NoopCrdtDocFactory } from "./NoopCrdtDocFactory";
|
|
11
13
|
export type {
|
|
12
|
-
CrdtType,
|
|
13
14
|
InferBuilder,
|
|
14
|
-
|
|
15
|
+
InferDoc,
|
|
16
|
+
InferDocLike,
|
|
15
17
|
InferInitialStorageFn,
|
|
16
18
|
InferStorage,
|
|
17
19
|
} from "./types";
|
package/src/types.ts
CHANGED
|
@@ -1,33 +1,19 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { AbstractCrdtDocFactory } from "./AbstractCrdtDocFactory";
|
|
1
|
+
import type { AbstractCrdtDocFactory } from "./AbstractCrdtDocFactory";
|
|
3
2
|
|
|
4
|
-
export type
|
|
5
|
-
|
|
6
|
-
"__pluvType"
|
|
7
|
-
> & {
|
|
8
|
-
__pluvType: () => TJson;
|
|
9
|
-
};
|
|
3
|
+
export type InferDoc<TFactory extends AbstractCrdtDocFactory<any, any>> =
|
|
4
|
+
InferDocLike<TFactory>["value"];
|
|
10
5
|
|
|
11
|
-
export type
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
: T extends Record<string, any>
|
|
15
|
-
? { [P in keyof T]: InferCrdtJson<T[P]> }
|
|
16
|
-
: T extends (infer IJson)[]
|
|
17
|
-
? InferCrdtJson<IJson>[]
|
|
18
|
-
: T extends readonly (infer IJson)[]
|
|
19
|
-
? readonly InferCrdtJson<IJson>[]
|
|
20
|
-
: T extends Json
|
|
21
|
-
? T
|
|
22
|
-
: string;
|
|
6
|
+
export type InferDocLike<TFactory extends AbstractCrdtDocFactory<any, any>> = ReturnType<
|
|
7
|
+
TFactory["getInitialized"]
|
|
8
|
+
>;
|
|
23
9
|
|
|
24
|
-
export type InferInitialStorageFn<TFactory extends AbstractCrdtDocFactory<any>> =
|
|
10
|
+
export type InferInitialStorageFn<TFactory extends AbstractCrdtDocFactory<any, any>> =
|
|
25
11
|
TFactory["_initialStorage"];
|
|
26
12
|
|
|
27
|
-
export type InferStorage<TFactory extends AbstractCrdtDocFactory<any>> = ReturnType<
|
|
13
|
+
export type InferStorage<TFactory extends AbstractCrdtDocFactory<any, any>> = ReturnType<
|
|
28
14
|
InferInitialStorageFn<TFactory>
|
|
29
15
|
>;
|
|
30
16
|
|
|
31
|
-
export type InferBuilder<TFactory extends AbstractCrdtDocFactory<any>> = Parameters<
|
|
17
|
+
export type InferBuilder<TFactory extends AbstractCrdtDocFactory<any, any>> = Parameters<
|
|
32
18
|
InferInitialStorageFn<TFactory>
|
|
33
19
|
>[0];
|