@pluv/crdt 5.1.2 → 5.2.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.
package/dist/index.d.mts CHANGED
@@ -21,6 +21,7 @@ export declare class NoopCrdtDoc implements CrdtDocLike$1<any, any> {
21
21
  get(key?: undefined): {};
22
22
  get<TKey extends never>(key: TKey): {}[TKey];
23
23
  getEncodedState(): string;
24
+ isDirty(): boolean;
24
25
  isEmpty(): boolean;
25
26
  rebuildStorage(): this;
26
27
  redo(): this;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/AbstractCrdtDocFactory.ts","../src/NoopCrdtDoc.ts","../src/NoopCrdtDocFactory.ts","../src/noop.ts","../src/types.ts"],"mappings":";;8BAEsB,uBAClB,kBACA,iBAAiB,eAAe,kCACvB,iBAAe,MAAM;EACvB,kBAAkB,iBAAiB;EAE1C,YAAY,iBAAiB,iBAAiB;WAI9B,YAAY,cAAY,MAAM;WAC9B,WACZ,kBAAkB,iBAAiB,WACpC,uBAAuB,MAAM;WAChB,eACZ,kBAAkB,iBAAiB,WACpC,cAAY,MAAM;EAEd,QAAQ,cAAc;EAQtB,oBAAoB;;;;qBCrBlB,uBAAuB;EACzB;EAEA,kBAAkB,QAAQ;EAI1B,uBAAuB,QAAQ;EAI/B;EAIA;EAIA;EAIA,IAAI;EACJ,IAAI,oBAAoB,KAAK,UAAU;EAKvC;EAIA;EAIA;EAIA;EAIA,UAAU,WAAW,QAAQ;EAI7B;EAIA;EAIA,SAAS,gBAAgB;EAMzB;;;;qBCnEE,2BAA2B;EACpC,YAAY;EAIL,YAAY;EAIZ,WAAW,kBAAkB,uBAAuB;EAIpD,eAAe,kBAAkB,uBAAuB;;;;qBCdtD;EACT,MAAG,eAAa;;;;KCCR,SAAS,iBAAiB,oCAClC,aAAa;KAEL,aAAa,iBAAiB,oCAAoC,WAC1E;KAGQ,sBAAsB,iBAAiB,oCAC/C;KAEQ,aAAa,iBAAiB,oCAAoC,WAC1E,sBAAsB;KAGd,aAAa,iBAAiB,oCAAoC,WAC1E,sBAAsB"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/AbstractCrdtDocFactory.ts","../src/NoopCrdtDoc.ts","../src/NoopCrdtDocFactory.ts","../src/noop.ts","../src/types.ts"],"mappings":";;8BAEsB,uBAClB,kBACA,iBAAiB,eAAe,kCACvB,iBAAe,MAAM;EACvB,kBAAkB,iBAAiB;EAE1C,YAAY,iBAAiB,iBAAiB;WAI9B,YAAY,cAAY,MAAM;WAC9B,WACZ,kBAAkB,iBAAiB,WACpC,uBAAuB,MAAM;WAChB,eACZ,kBAAkB,iBAAiB,WACpC,cAAY,MAAM;EAEd,QAAQ,cAAc;EAQtB,oBAAoB;;;;qBCrBlB,uBAAuB;EACzB;EAEA,kBAAkB,QAAQ;EAI1B,uBAAuB,QAAQ;EAI/B;EAIA;EAIA;EAIA,IAAI;EACJ,IAAI,oBAAoB,KAAK,UAAU;EAKvC;EAIA;EAIA;EAIA;EAIA;EAIA,UAAU,WAAW,QAAQ;EAI7B;EAIA;EAIA,SAAS,gBAAgB;EAMzB;;;;qBCvEE,2BAA2B;EACpC,YAAY;EAIL,YAAY;EAIZ,WAAW,kBAAkB,uBAAuB;EAIpD,eAAe,kBAAkB,uBAAuB;;;;qBCdtD;EACT,MAAG,eAAa;;;;KCCR,SAAS,iBAAiB,oCAClC,aAAa;KAEL,aAAa,iBAAiB,oCAAoC,WAC1E;KAGQ,sBAAsB,iBAAiB,oCAC/C;KAEQ,aAAa,iBAAiB,oCAAoC,WAC1E,sBAAsB;KAGd,aAAa,iBAAiB,oCAAoC,WAC1E,sBAAsB"}
package/dist/index.mjs CHANGED
@@ -46,6 +46,9 @@ var NoopCrdtDoc = class {
46
46
  getEncodedState() {
47
47
  return "";
48
48
  }
49
+ isDirty() {
50
+ return false;
51
+ }
49
52
  isEmpty() {
50
53
  return true;
51
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/AbstractCrdtDocFactory.ts","../src/NoopCrdtDoc.ts","../src/NoopCrdtDocFactory.ts","../src/noop.ts"],"sourcesContent":["import type { CrdtDocFactory, CrdtDocLike, CrdtType, Maybe } from \"@pluv/types\";\n\nexport abstract class AbstractCrdtDocFactory<\n TDoc extends any,\n TStorage extends Record<string, CrdtType<any, any>>,\n> implements CrdtDocFactory<TDoc, TStorage> {\n public _initialStorage: (builder: any) => TStorage;\n\n constructor(initialStorage: (builder: any) => TStorage) {\n this._initialStorage = initialStorage;\n }\n\n public abstract getEmpty(): CrdtDocLike<TDoc, TStorage>;\n public abstract getFactory(\n initialStorage?: (builder: any) => TStorage,\n ): AbstractCrdtDocFactory<TDoc, TStorage>;\n public abstract getInitialized(\n initialStorage?: (builder: any) => TStorage,\n ): CrdtDocLike<TDoc, TStorage>;\n\n public isEmpty(initialState: Maybe<string>): boolean {\n const doc = this.getEmpty().applyEncodedState({ update: initialState });\n const isEmpty = doc.isEmpty();\n doc.destroy();\n\n return isEmpty;\n }\n\n public resolveEncodedState(updates: string | string[] | readonly string[]): string | null {\n if (typeof updates === \"string\") return updates;\n if (Array.isArray(updates) && !updates.length) return null;\n\n const applied = this.getEmpty().batchApplyEncodedState({ updates });\n\n if (applied.isEmpty()) {\n applied.destroy();\n return null;\n }\n\n const encodedState = applied.getEncodedState();\n applied.destroy();\n\n return encodedState;\n }\n}\n","import {\n CrdtDocLike,\n DocApplyEncodedStateParams,\n DocBatchApplyEncodedStateParams,\n DocSubscribeCallbackParams,\n} from \"@pluv/types\";\n\nexport class NoopCrdtDoc implements CrdtDocLike<any, any> {\n public value: any = null;\n\n public applyEncodedState(params: DocApplyEncodedStateParams): this {\n return this;\n }\n\n public batchApplyEncodedState(params: DocBatchApplyEncodedStateParams): this {\n return this;\n }\n\n public canRedo(): boolean {\n return false;\n }\n\n public canUndo(): boolean {\n return false;\n }\n\n public destroy(): void {\n return;\n }\n\n public get(key?: undefined): {};\n public get<TKey extends never>(key: TKey): {}[TKey];\n public get(key?: string): {} | undefined {\n return typeof key === \"string\" ? undefined : {};\n }\n\n public getEncodedState(): string {\n return \"\";\n }\n\n public isEmpty(): boolean {\n return true;\n }\n\n public rebuildStorage(): this {\n return this;\n }\n\n public redo(): this {\n return this;\n }\n\n public subscribe(listener: (params: DocSubscribeCallbackParams<any, any>) => void): () => void {\n return () => undefined;\n }\n\n public toJson(): any {\n return {};\n }\n\n public track(): this {\n return this;\n }\n\n public transact(fn: () => void, origin?: string): this {\n fn();\n\n return this;\n }\n\n public undo(): this {\n return this;\n }\n}\n","import { AbstractCrdtDocFactory } from \"./AbstractCrdtDocFactory\";\nimport { NoopCrdtDoc } from \"./NoopCrdtDoc\";\n\nexport class NoopCrdtDocFactory extends AbstractCrdtDocFactory<any, any> {\n constructor(initialStorage: () => {} = () => ({})) {\n super(initialStorage);\n }\n\n public getEmpty(): NoopCrdtDoc {\n return new NoopCrdtDoc();\n }\n\n public getFactory(initialStorage?: (builder: any) => any): NoopCrdtDocFactory {\n return this;\n }\n\n public getInitialized(initialStorage?: (builder: any) => any): NoopCrdtDoc {\n return new NoopCrdtDoc();\n }\n}\n","import { NoopCrdtDocFactory } from \"./NoopCrdtDocFactory\";\n\nexport const noop = {\n doc: (args?: any) => new NoopCrdtDocFactory(),\n};\n"],"mappings":";AAEA,IAAsB,yBAAtB,MAG4C;CACxC;CAEA,YAAY,gBAA4C;EACpD,KAAK,kBAAkB;CAC3B;CAUA,QAAe,cAAsC;EACjD,MAAM,MAAM,KAAK,SAAS,CAAC,CAAC,kBAAkB,EAAE,QAAQ,aAAa,CAAC;EACtE,MAAM,UAAU,IAAI,QAAQ;EAC5B,IAAI,QAAQ;EAEZ,OAAO;CACX;CAEA,oBAA2B,SAA+D;EACtF,IAAI,OAAO,YAAY,UAAU,OAAO;EACxC,IAAI,MAAM,QAAQ,OAAO,KAAK,CAAC,QAAQ,QAAQ,OAAO;EAEtD,MAAM,UAAU,KAAK,SAAS,CAAC,CAAC,uBAAuB,EAAE,QAAQ,CAAC;EAElE,IAAI,QAAQ,QAAQ,GAAG;GACnB,QAAQ,QAAQ;GAChB,OAAO;EACX;EAEA,MAAM,eAAe,QAAQ,gBAAgB;EAC7C,QAAQ,QAAQ;EAEhB,OAAO;CACX;AACJ;;;ACrCA,IAAa,cAAb,MAA0D;CACtD,QAAoB;CAEpB,kBAAyB,QAA0C;EAC/D,OAAO;CACX;CAEA,uBAA8B,QAA+C;EACzE,OAAO;CACX;CAEA,UAA0B;EACtB,OAAO;CACX;CAEA,UAA0B;EACtB,OAAO;CACX;CAEA,UAAuB,CAEvB;CAIA,IAAW,KAA8B;EACrC,OAAO,OAAO,QAAQ,WAAW,KAAA,IAAY,CAAC;CAClD;CAEA,kBAAiC;EAC7B,OAAO;CACX;CAEA,UAA0B;EACtB,OAAO;CACX;CAEA,iBAA8B;EAC1B,OAAO;CACX;CAEA,OAAoB;EAChB,OAAO;CACX;CAEA,UAAiB,UAA8E;EAC3F,aAAa,KAAA;CACjB;CAEA,SAAqB;EACjB,OAAO,CAAC;CACZ;CAEA,QAAqB;EACjB,OAAO;CACX;CAEA,SAAgB,IAAgB,QAAuB;EACnD,GAAG;EAEH,OAAO;CACX;CAEA,OAAoB;EAChB,OAAO;CACX;AACJ;;;ACtEA,IAAa,qBAAb,cAAwC,uBAAiC;CACrE,YAAY,wBAAkC,CAAC,IAAI;EAC/C,MAAM,cAAc;CACxB;CAEA,WAA+B;EAC3B,OAAO,IAAI,YAAY;CAC3B;CAEA,WAAkB,gBAA4D;EAC1E,OAAO;CACX;CAEA,eAAsB,gBAAqD;EACvE,OAAO,IAAI,YAAY;CAC3B;AACJ;;;ACjBA,MAAa,OAAO,EAChB,MAAM,SAAe,IAAI,mBAAmB,EAChD"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/AbstractCrdtDocFactory.ts","../src/NoopCrdtDoc.ts","../src/NoopCrdtDocFactory.ts","../src/noop.ts"],"sourcesContent":["import type { CrdtDocFactory, CrdtDocLike, CrdtType, Maybe } from \"@pluv/types\";\n\nexport abstract class AbstractCrdtDocFactory<\n TDoc extends any,\n TStorage extends Record<string, CrdtType<any, any>>,\n> implements CrdtDocFactory<TDoc, TStorage> {\n public _initialStorage: (builder: any) => TStorage;\n\n constructor(initialStorage: (builder: any) => TStorage) {\n this._initialStorage = initialStorage;\n }\n\n public abstract getEmpty(): CrdtDocLike<TDoc, TStorage>;\n public abstract getFactory(\n initialStorage?: (builder: any) => TStorage,\n ): AbstractCrdtDocFactory<TDoc, TStorage>;\n public abstract getInitialized(\n initialStorage?: (builder: any) => TStorage,\n ): CrdtDocLike<TDoc, TStorage>;\n\n public isEmpty(initialState: Maybe<string>): boolean {\n const doc = this.getEmpty().applyEncodedState({ update: initialState });\n const isEmpty = doc.isEmpty();\n doc.destroy();\n\n return isEmpty;\n }\n\n public resolveEncodedState(updates: string | string[] | readonly string[]): string | null {\n if (typeof updates === \"string\") return updates;\n if (Array.isArray(updates) && !updates.length) return null;\n\n const applied = this.getEmpty().batchApplyEncodedState({ updates });\n\n if (applied.isEmpty()) {\n applied.destroy();\n return null;\n }\n\n const encodedState = applied.getEncodedState();\n applied.destroy();\n\n return encodedState;\n }\n}\n","import {\n CrdtDocLike,\n DocApplyEncodedStateParams,\n DocBatchApplyEncodedStateParams,\n DocSubscribeCallbackParams,\n} from \"@pluv/types\";\n\nexport class NoopCrdtDoc implements CrdtDocLike<any, any> {\n public value: any = null;\n\n public applyEncodedState(params: DocApplyEncodedStateParams): this {\n return this;\n }\n\n public batchApplyEncodedState(params: DocBatchApplyEncodedStateParams): this {\n return this;\n }\n\n public canRedo(): boolean {\n return false;\n }\n\n public canUndo(): boolean {\n return false;\n }\n\n public destroy(): void {\n return;\n }\n\n public get(key?: undefined): {};\n public get<TKey extends never>(key: TKey): {}[TKey];\n public get(key?: string): {} | undefined {\n return typeof key === \"string\" ? undefined : {};\n }\n\n public getEncodedState(): string {\n return \"\";\n }\n\n public isDirty(): boolean {\n return false;\n }\n\n public isEmpty(): boolean {\n return true;\n }\n\n public rebuildStorage(): this {\n return this;\n }\n\n public redo(): this {\n return this;\n }\n\n public subscribe(listener: (params: DocSubscribeCallbackParams<any, any>) => void): () => void {\n return () => undefined;\n }\n\n public toJson(): any {\n return {};\n }\n\n public track(): this {\n return this;\n }\n\n public transact(fn: () => void, origin?: string): this {\n fn();\n\n return this;\n }\n\n public undo(): this {\n return this;\n }\n}\n","import { AbstractCrdtDocFactory } from \"./AbstractCrdtDocFactory\";\nimport { NoopCrdtDoc } from \"./NoopCrdtDoc\";\n\nexport class NoopCrdtDocFactory extends AbstractCrdtDocFactory<any, any> {\n constructor(initialStorage: () => {} = () => ({})) {\n super(initialStorage);\n }\n\n public getEmpty(): NoopCrdtDoc {\n return new NoopCrdtDoc();\n }\n\n public getFactory(initialStorage?: (builder: any) => any): NoopCrdtDocFactory {\n return this;\n }\n\n public getInitialized(initialStorage?: (builder: any) => any): NoopCrdtDoc {\n return new NoopCrdtDoc();\n }\n}\n","import { NoopCrdtDocFactory } from \"./NoopCrdtDocFactory\";\n\nexport const noop = {\n doc: (args?: any) => new NoopCrdtDocFactory(),\n};\n"],"mappings":";AAEA,IAAsB,yBAAtB,MAG4C;CACxC;CAEA,YAAY,gBAA4C;EACpD,KAAK,kBAAkB;CAC3B;CAUA,QAAe,cAAsC;EACjD,MAAM,MAAM,KAAK,SAAS,CAAC,CAAC,kBAAkB,EAAE,QAAQ,aAAa,CAAC;EACtE,MAAM,UAAU,IAAI,QAAQ;EAC5B,IAAI,QAAQ;EAEZ,OAAO;CACX;CAEA,oBAA2B,SAA+D;EACtF,IAAI,OAAO,YAAY,UAAU,OAAO;EACxC,IAAI,MAAM,QAAQ,OAAO,KAAK,CAAC,QAAQ,QAAQ,OAAO;EAEtD,MAAM,UAAU,KAAK,SAAS,CAAC,CAAC,uBAAuB,EAAE,QAAQ,CAAC;EAElE,IAAI,QAAQ,QAAQ,GAAG;GACnB,QAAQ,QAAQ;GAChB,OAAO;EACX;EAEA,MAAM,eAAe,QAAQ,gBAAgB;EAC7C,QAAQ,QAAQ;EAEhB,OAAO;CACX;AACJ;;;ACrCA,IAAa,cAAb,MAA0D;CACtD,QAAoB;CAEpB,kBAAyB,QAA0C;EAC/D,OAAO;CACX;CAEA,uBAA8B,QAA+C;EACzE,OAAO;CACX;CAEA,UAA0B;EACtB,OAAO;CACX;CAEA,UAA0B;EACtB,OAAO;CACX;CAEA,UAAuB,CAEvB;CAIA,IAAW,KAA8B;EACrC,OAAO,OAAO,QAAQ,WAAW,KAAA,IAAY,CAAC;CAClD;CAEA,kBAAiC;EAC7B,OAAO;CACX;CAEA,UAA0B;EACtB,OAAO;CACX;CAEA,UAA0B;EACtB,OAAO;CACX;CAEA,iBAA8B;EAC1B,OAAO;CACX;CAEA,OAAoB;EAChB,OAAO;CACX;CAEA,UAAiB,UAA8E;EAC3F,aAAa,KAAA;CACjB;CAEA,SAAqB;EACjB,OAAO,CAAC;CACZ;CAEA,QAAqB;EACjB,OAAO;CACX;CAEA,SAAgB,IAAgB,QAAuB;EACnD,GAAG;EAEH,OAAO;CACX;CAEA,OAAoB;EAChB,OAAO;CACX;AACJ;;;AC1EA,IAAa,qBAAb,cAAwC,uBAAiC;CACrE,YAAY,wBAAkC,CAAC,IAAI;EAC/C,MAAM,cAAc;CACxB;CAEA,WAA+B;EAC3B,OAAO,IAAI,YAAY;CAC3B;CAEA,WAAkB,gBAA4D;EAC1E,OAAO;CACX;CAEA,eAAsB,gBAAqD;EACvE,OAAO,IAAI,YAAY;CAC3B;AACJ;;;ACjBA,MAAa,OAAO,EAChB,MAAM,SAAe,IAAI,mBAAmB,EAChD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pluv/crdt",
3
- "version": "5.1.2",
3
+ "version": "5.2.1",
4
4
  "description": "crdt base for @pluv/io",
5
5
  "author": {
6
6
  "email": "david@pluv.io",
@@ -23,10 +23,10 @@
23
23
  "access": "public"
24
24
  },
25
25
  "dependencies": {
26
- "@pluv/types": "^5.1.2"
26
+ "@pluv/types": "^5.2.1"
27
27
  },
28
28
  "devDependencies": {
29
- "@pluv/tsconfig": "^5.1.2",
29
+ "@pluv/tsconfig": "^5.2.1",
30
30
  "tsdown": "^0.23.0",
31
31
  "typescript": "^7.0.2"
32
32
  },