@pluv/crdt 1.0.0 → 1.0.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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @pluv/crdt@1.0.0 build /home/runner/work/pluv/pluv/packages/crdt
2
+ > @pluv/crdt@1.0.1 build /home/runner/work/pluv/pluv/packages/crdt
3
3
  > tsup src/index.ts --format esm,cjs --dts
4
4
 
5
5
  CLI Building entry: src/index.ts
@@ -8,11 +8,11 @@
8
8
  CLI Target: es6
9
9
  ESM Build start
10
10
  CJS Build start
11
- ESM dist/index.mjs 1.26 KB
12
- ESM ⚡️ Build success in 53ms
13
- CJS dist/index.js 2.43 KB
14
- CJS ⚡️ Build success in 53ms
11
+ ESM dist/index.mjs 1.25 KB
12
+ ESM ⚡️ Build success in 35ms
13
+ CJS dist/index.js 2.42 KB
14
+ CJS ⚡️ Build success in 35ms
15
15
  DTS Build start
16
- DTS ⚡️ Build success in 505ms
17
- DTS dist/index.d.mts 3.32 KB
18
- DTS dist/index.d.ts 3.32 KB
16
+ DTS ⚡️ Build success in 466ms
17
+ DTS dist/index.d.mts 3.40 KB
18
+ DTS dist/index.d.ts 3.40 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @pluv/crdt
2
2
 
3
+ ## 1.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - @pluv/types@1.0.1
8
+
3
9
  ## 1.0.0
4
10
 
5
11
  ### Major Changes
package/dist/index.d.mts CHANGED
@@ -15,26 +15,27 @@ interface DocBatchApplyEncodedStateParams {
15
15
  origin?: string;
16
16
  updates?: Maybe<readonly Maybe<string | Uint8Array>[]>;
17
17
  }
18
- interface DocSubscribeCallbackParams<T extends Record<string, CrdtType<any, any>>> {
19
- doc: AbstractCrdtDoc<T>;
18
+ interface DocSubscribeCallbackParams<TStorage extends Record<string, CrdtType<any, any>>> {
19
+ doc: AbstractCrdtDoc<TStorage>;
20
20
  local: boolean;
21
21
  origin?: string | null;
22
22
  update: string;
23
23
  }
24
- declare abstract class AbstractCrdtDoc<T extends Record<string, CrdtType<any, any>>> {
24
+ declare abstract class AbstractCrdtDoc<TStorage extends Record<string, CrdtType<any, any>>> {
25
25
  abstract applyEncodedState(params: DocApplyEncodedStateParams): this;
26
26
  abstract batchApplyEncodedState(params: DocBatchApplyEncodedStateParams): this;
27
27
  abstract canRedo(): boolean;
28
28
  abstract canUndo(): boolean;
29
29
  abstract destroy(): void;
30
- abstract get(key?: undefined): T;
31
- abstract get<TKey extends keyof T>(key: TKey): T[TKey];
30
+ abstract get(key?: undefined): TStorage;
31
+ abstract get<TKey extends keyof TStorage>(key: TKey): TStorage[TKey];
32
32
  abstract getEncodedState(): string;
33
33
  abstract isEmpty(): boolean;
34
+ abstract rebuildStorage(reference: TStorage): this;
34
35
  abstract redo(): this;
35
- abstract subscribe(listener: (params: DocSubscribeCallbackParams<T>) => void): () => void;
36
- abstract toJson(): InferCrdtJson<T>;
37
- abstract toJson<TKey extends keyof T>(type: TKey): InferCrdtJson<T[TKey]>;
36
+ abstract subscribe(listener: (params: DocSubscribeCallbackParams<TStorage>) => void): () => void;
37
+ abstract toJson(): InferCrdtJson<TStorage>;
38
+ abstract toJson<TKey extends keyof TStorage>(type: TKey): InferCrdtJson<TStorage[TKey]>;
38
39
  abstract track(): this;
39
40
  abstract transact(fn: () => void, origin?: string): this;
40
41
  abstract undo(): this;
@@ -43,7 +44,6 @@ declare abstract class AbstractCrdtDoc<T extends Record<string, CrdtType<any, an
43
44
  declare abstract class AbstractCrdtDocFactory<TStorage extends Record<string, CrdtType<any, any>>> {
44
45
  abstract getEmpty(): AbstractCrdtDoc<TStorage>;
45
46
  abstract getFactory(initialStorage?: () => TStorage): AbstractCrdtDocFactory<TStorage>;
46
- abstract getFresh(): AbstractCrdtDoc<TStorage>;
47
47
  abstract getInitialized(initialStorage?: () => TStorage): AbstractCrdtDoc<TStorage>;
48
48
  }
49
49
 
@@ -57,9 +57,10 @@ declare class NoopCrdtDoc extends AbstractCrdtDoc<any> {
57
57
  get<TKey extends never>(key: TKey): {}[TKey];
58
58
  getEncodedState(): string;
59
59
  isEmpty(): boolean;
60
+ rebuildStorage(): this;
60
61
  redo(): this;
61
- subscribe(listener: (params: DocSubscribeCallbackParams<{}>) => void): () => void;
62
- toJson(): {};
62
+ subscribe(listener: (params: DocSubscribeCallbackParams<any>) => void): () => void;
63
+ toJson(): any;
63
64
  track(): this;
64
65
  transact(fn: () => void, origin?: string | undefined): this;
65
66
  undo(): this;
@@ -67,9 +68,8 @@ declare class NoopCrdtDoc extends AbstractCrdtDoc<any> {
67
68
 
68
69
  declare class NoopCrdtDocFactory extends AbstractCrdtDocFactory<any> {
69
70
  getEmpty(): NoopCrdtDoc;
70
- getFactory(initialStorage?: (() => {}) | undefined): NoopCrdtDocFactory;
71
- getFresh(): NoopCrdtDoc;
72
- getInitialized(initialStorage?: (() => {}) | undefined): NoopCrdtDoc;
71
+ getFactory(initialStorage?: (() => any) | undefined): NoopCrdtDocFactory;
72
+ getInitialized(initialStorage?: (() => any) | undefined): NoopCrdtDoc;
73
73
  }
74
74
 
75
75
  declare const noop: {
package/dist/index.d.ts CHANGED
@@ -15,26 +15,27 @@ interface DocBatchApplyEncodedStateParams {
15
15
  origin?: string;
16
16
  updates?: Maybe<readonly Maybe<string | Uint8Array>[]>;
17
17
  }
18
- interface DocSubscribeCallbackParams<T extends Record<string, CrdtType<any, any>>> {
19
- doc: AbstractCrdtDoc<T>;
18
+ interface DocSubscribeCallbackParams<TStorage extends Record<string, CrdtType<any, any>>> {
19
+ doc: AbstractCrdtDoc<TStorage>;
20
20
  local: boolean;
21
21
  origin?: string | null;
22
22
  update: string;
23
23
  }
24
- declare abstract class AbstractCrdtDoc<T extends Record<string, CrdtType<any, any>>> {
24
+ declare abstract class AbstractCrdtDoc<TStorage extends Record<string, CrdtType<any, any>>> {
25
25
  abstract applyEncodedState(params: DocApplyEncodedStateParams): this;
26
26
  abstract batchApplyEncodedState(params: DocBatchApplyEncodedStateParams): this;
27
27
  abstract canRedo(): boolean;
28
28
  abstract canUndo(): boolean;
29
29
  abstract destroy(): void;
30
- abstract get(key?: undefined): T;
31
- abstract get<TKey extends keyof T>(key: TKey): T[TKey];
30
+ abstract get(key?: undefined): TStorage;
31
+ abstract get<TKey extends keyof TStorage>(key: TKey): TStorage[TKey];
32
32
  abstract getEncodedState(): string;
33
33
  abstract isEmpty(): boolean;
34
+ abstract rebuildStorage(reference: TStorage): this;
34
35
  abstract redo(): this;
35
- abstract subscribe(listener: (params: DocSubscribeCallbackParams<T>) => void): () => void;
36
- abstract toJson(): InferCrdtJson<T>;
37
- abstract toJson<TKey extends keyof T>(type: TKey): InferCrdtJson<T[TKey]>;
36
+ abstract subscribe(listener: (params: DocSubscribeCallbackParams<TStorage>) => void): () => void;
37
+ abstract toJson(): InferCrdtJson<TStorage>;
38
+ abstract toJson<TKey extends keyof TStorage>(type: TKey): InferCrdtJson<TStorage[TKey]>;
38
39
  abstract track(): this;
39
40
  abstract transact(fn: () => void, origin?: string): this;
40
41
  abstract undo(): this;
@@ -43,7 +44,6 @@ declare abstract class AbstractCrdtDoc<T extends Record<string, CrdtType<any, an
43
44
  declare abstract class AbstractCrdtDocFactory<TStorage extends Record<string, CrdtType<any, any>>> {
44
45
  abstract getEmpty(): AbstractCrdtDoc<TStorage>;
45
46
  abstract getFactory(initialStorage?: () => TStorage): AbstractCrdtDocFactory<TStorage>;
46
- abstract getFresh(): AbstractCrdtDoc<TStorage>;
47
47
  abstract getInitialized(initialStorage?: () => TStorage): AbstractCrdtDoc<TStorage>;
48
48
  }
49
49
 
@@ -57,9 +57,10 @@ declare class NoopCrdtDoc extends AbstractCrdtDoc<any> {
57
57
  get<TKey extends never>(key: TKey): {}[TKey];
58
58
  getEncodedState(): string;
59
59
  isEmpty(): boolean;
60
+ rebuildStorage(): this;
60
61
  redo(): this;
61
- subscribe(listener: (params: DocSubscribeCallbackParams<{}>) => void): () => void;
62
- toJson(): {};
62
+ subscribe(listener: (params: DocSubscribeCallbackParams<any>) => void): () => void;
63
+ toJson(): any;
63
64
  track(): this;
64
65
  transact(fn: () => void, origin?: string | undefined): this;
65
66
  undo(): this;
@@ -67,9 +68,8 @@ declare class NoopCrdtDoc extends AbstractCrdtDoc<any> {
67
68
 
68
69
  declare class NoopCrdtDocFactory extends AbstractCrdtDocFactory<any> {
69
70
  getEmpty(): NoopCrdtDoc;
70
- getFactory(initialStorage?: (() => {}) | undefined): NoopCrdtDocFactory;
71
- getFresh(): NoopCrdtDoc;
72
- getInitialized(initialStorage?: (() => {}) | undefined): NoopCrdtDoc;
71
+ getFactory(initialStorage?: (() => any) | undefined): NoopCrdtDocFactory;
72
+ getInitialized(initialStorage?: (() => any) | undefined): NoopCrdtDoc;
73
73
  }
74
74
 
75
75
  declare const noop: {
package/dist/index.js CHANGED
@@ -62,6 +62,9 @@ var NoopCrdtDoc = class extends AbstractCrdtDoc {
62
62
  isEmpty() {
63
63
  return true;
64
64
  }
65
+ rebuildStorage() {
66
+ return this;
67
+ }
65
68
  redo() {
66
69
  return this;
67
70
  }
@@ -91,9 +94,6 @@ var NoopCrdtDocFactory = class extends AbstractCrdtDocFactory {
91
94
  getFactory(initialStorage) {
92
95
  return this;
93
96
  }
94
- getFresh() {
95
- return new NoopCrdtDoc();
96
- }
97
97
  getInitialized(initialStorage) {
98
98
  return new NoopCrdtDoc();
99
99
  }
package/dist/index.mjs CHANGED
@@ -32,6 +32,9 @@ var NoopCrdtDoc = class extends AbstractCrdtDoc {
32
32
  isEmpty() {
33
33
  return true;
34
34
  }
35
+ rebuildStorage() {
36
+ return this;
37
+ }
35
38
  redo() {
36
39
  return this;
37
40
  }
@@ -61,9 +64,6 @@ var NoopCrdtDocFactory = class extends AbstractCrdtDocFactory {
61
64
  getFactory(initialStorage) {
62
65
  return this;
63
66
  }
64
- getFresh() {
65
- return new NoopCrdtDoc();
66
- }
67
67
  getInitialized(initialStorage) {
68
68
  return new NoopCrdtDoc();
69
69
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pluv/crdt",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
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": "^1.0.0"
20
+ "@pluv/types": "^1.0.1"
21
21
  },
22
22
  "devDependencies": {
23
23
  "eslint": "^9.25.1",
24
24
  "tsup": "^8.4.0",
25
25
  "typescript": "^5.8.3",
26
- "@pluv/tsconfig": "^1.0.0",
27
- "eslint-config-pluv": "^1.0.0"
26
+ "@pluv/tsconfig": "^1.0.1",
27
+ "eslint-config-pluv": "^1.0.1"
28
28
  },
29
29
  "scripts": {
30
30
  "build": "tsup src/index.ts --format esm,cjs --dts",
@@ -11,27 +11,30 @@ export interface DocBatchApplyEncodedStateParams {
11
11
  updates?: Maybe<readonly Maybe<string | Uint8Array>[]>;
12
12
  }
13
13
 
14
- export interface DocSubscribeCallbackParams<T extends Record<string, CrdtType<any, any>>> {
15
- doc: AbstractCrdtDoc<T>;
14
+ export interface DocSubscribeCallbackParams<TStorage extends Record<string, CrdtType<any, any>>> {
15
+ doc: AbstractCrdtDoc<TStorage>;
16
16
  local: boolean;
17
17
  origin?: string | null;
18
18
  update: string;
19
19
  }
20
20
 
21
- export abstract class AbstractCrdtDoc<T extends Record<string, CrdtType<any, any>>> {
21
+ export abstract class AbstractCrdtDoc<TStorage extends Record<string, CrdtType<any, any>>> {
22
22
  public abstract applyEncodedState(params: DocApplyEncodedStateParams): this;
23
23
  public abstract batchApplyEncodedState(params: DocBatchApplyEncodedStateParams): this;
24
24
  public abstract canRedo(): boolean;
25
25
  public abstract canUndo(): boolean;
26
26
  public abstract destroy(): void;
27
- public abstract get(key?: undefined): T;
28
- public abstract get<TKey extends keyof T>(key: TKey): T[TKey];
27
+ public abstract get(key?: undefined): TStorage;
28
+ public abstract get<TKey extends keyof TStorage>(key: TKey): TStorage[TKey];
29
29
  public abstract getEncodedState(): string;
30
30
  public abstract isEmpty(): boolean;
31
+ public abstract rebuildStorage(reference: TStorage): this;
31
32
  public abstract redo(): this;
32
- public abstract subscribe(listener: (params: DocSubscribeCallbackParams<T>) => void): () => void;
33
- public abstract toJson(): InferCrdtJson<T>;
34
- public abstract toJson<TKey extends keyof T>(type: TKey): InferCrdtJson<T[TKey]>;
33
+ public abstract subscribe(
34
+ listener: (params: DocSubscribeCallbackParams<TStorage>) => void,
35
+ ): () => void;
36
+ public abstract toJson(): InferCrdtJson<TStorage>;
37
+ public abstract toJson<TKey extends keyof TStorage>(type: TKey): InferCrdtJson<TStorage[TKey]>;
35
38
  public abstract track(): this;
36
39
  public abstract transact(fn: () => void, origin?: string): this;
37
40
  public abstract undo(): this;
@@ -4,6 +4,5 @@ import type { CrdtType } from "./types";
4
4
  export abstract class AbstractCrdtDocFactory<TStorage extends Record<string, CrdtType<any, any>>> {
5
5
  public abstract getEmpty(): AbstractCrdtDoc<TStorage>;
6
6
  public abstract getFactory(initialStorage?: () => TStorage): AbstractCrdtDocFactory<TStorage>;
7
- public abstract getFresh(): AbstractCrdtDoc<TStorage>;
8
7
  public abstract getInitialized(initialStorage?: () => TStorage): AbstractCrdtDoc<TStorage>;
9
8
  }
@@ -40,15 +40,19 @@ export class NoopCrdtDoc extends AbstractCrdtDoc<any> {
40
40
  return true;
41
41
  }
42
42
 
43
+ public rebuildStorage(): this {
44
+ return this;
45
+ }
46
+
43
47
  public redo(): this {
44
48
  return this;
45
49
  }
46
50
 
47
- public subscribe(listener: (params: DocSubscribeCallbackParams<{}>) => void): () => void {
51
+ public subscribe(listener: (params: DocSubscribeCallbackParams<any>) => void): () => void {
48
52
  return () => undefined;
49
53
  }
50
54
 
51
- public toJson(): {} {
55
+ public toJson(): any {
52
56
  return {};
53
57
  }
54
58
 
@@ -6,15 +6,11 @@ export class NoopCrdtDocFactory extends AbstractCrdtDocFactory<any> {
6
6
  return new NoopCrdtDoc();
7
7
  }
8
8
 
9
- public getFactory(initialStorage?: (() => {}) | undefined): NoopCrdtDocFactory {
9
+ public getFactory(initialStorage?: (() => any) | undefined): NoopCrdtDocFactory {
10
10
  return this;
11
11
  }
12
12
 
13
- public getFresh(): NoopCrdtDoc {
14
- return new NoopCrdtDoc();
15
- }
16
-
17
- public getInitialized(initialStorage?: (() => {}) | undefined): NoopCrdtDoc {
13
+ public getInitialized(initialStorage?: (() => any) | undefined): NoopCrdtDoc {
18
14
  return new NoopCrdtDoc();
19
15
  }
20
16
  }
package/src/types.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import type { Json } from "@pluv/types";
2
2
 
3
- export type CrdtType<TValue extends unknown, TJson extends unknown = any> = Omit<TValue, "__pluvType"> & {
3
+ export type CrdtType<TValue extends unknown, TJson extends unknown = any> = Omit<
4
+ TValue,
5
+ "__pluvType"
6
+ > & {
4
7
  __pluvType: () => TJson;
5
8
  };
6
9