@arcote.tech/arc 0.0.13 → 0.0.14

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.
Files changed (76) hide show
  1. package/dist/collection/collection-change.d.ts +1 -0
  2. package/dist/collection/collection.d.ts +35 -26
  3. package/dist/collection/db.d.ts +11 -12
  4. package/dist/collection/index.d.ts +1 -1
  5. package/dist/collection/queries/abstract-collection-query.d.ts +11 -14
  6. package/dist/collection/queries/abstract-many-items.d.ts +22 -13
  7. package/dist/collection/queries/all-items.d.ts +4 -3
  8. package/dist/collection/queries/indexed.d.ts +8 -8
  9. package/dist/collection/queries/one-item.d.ts +14 -6
  10. package/dist/collection/queries/util.d.ts +3 -6
  11. package/dist/collection/query-builders/abstract-many-items.d.ts +6 -6
  12. package/dist/collection/query-builders/all-items.d.ts +1 -0
  13. package/dist/collection/query-builders/indexed.d.ts +1 -0
  14. package/dist/collection/query-builders/one-item.d.ts +1 -0
  15. package/dist/context/commands.d.ts +3 -1
  16. package/dist/context/context.d.ts +13 -23
  17. package/dist/context/element.d.ts +7 -5
  18. package/dist/context/index.d.ts +4 -0
  19. package/dist/context/query-builders.d.ts +5 -2
  20. package/dist/context/query.d.ts +6 -2
  21. package/dist/data-storage/DataStorage.d.ts +11 -0
  22. package/dist/data-storage/ForkStoreState.d.ts +32 -0
  23. package/dist/data-storage/StoreState.d.ts +24 -0
  24. package/dist/data-storage/data-storage-forked.d.ts +16 -0
  25. package/dist/data-storage/data-storage-master.d.ts +20 -0
  26. package/dist/data-storage/data-storage.d.ts +2 -0
  27. package/dist/data-storage/data-storage.interface.d.ts +37 -0
  28. package/dist/data-storage/index.d.ts +7 -0
  29. package/dist/data-storage/master-store-state.d.ts +17 -0
  30. package/dist/data-storage/store-state-fork.d.ts +15 -0
  31. package/dist/data-storage/store-state-master.d.ts +14 -0
  32. package/dist/data-storage/store-state.abstract.d.ts +22 -0
  33. package/dist/data-storage/store-state.d.ts +24 -0
  34. package/dist/db/index.d.ts +2 -0
  35. package/dist/db/interface.d.ts +17 -0
  36. package/dist/elements/abstract-primitive.d.ts +1 -0
  37. package/dist/elements/abstract.d.ts +1 -0
  38. package/dist/elements/array.d.ts +1 -0
  39. package/dist/elements/boolean.d.ts +1 -0
  40. package/dist/elements/branded.d.ts +1 -0
  41. package/dist/elements/date.d.ts +1 -0
  42. package/dist/elements/default.d.ts +1 -0
  43. package/dist/elements/element.d.ts +1 -0
  44. package/dist/elements/id.d.ts +1 -0
  45. package/dist/elements/index.d.ts +1 -0
  46. package/dist/elements/number.d.ts +1 -0
  47. package/dist/elements/object.d.ts +1 -0
  48. package/dist/elements/optional.d.ts +1 -0
  49. package/dist/elements/string-enum.d.ts +1 -0
  50. package/dist/elements/string.d.ts +1 -0
  51. package/dist/elements/tests/object.test.d.ts +2 -0
  52. package/dist/index.d.ts +3 -1
  53. package/dist/index.js +429 -396
  54. package/dist/model/model.d.ts +18 -19
  55. package/dist/rtc/client.d.ts +2 -1
  56. package/dist/rtc/deserializeChanges.d.ts +1 -0
  57. package/dist/rtc/index.d.ts +1 -0
  58. package/dist/rtc/messages.d.ts +6 -5
  59. package/dist/rtc/rtc.d.ts +6 -0
  60. package/dist/state/db.d.ts +14 -0
  61. package/dist/state/index.d.ts +3 -0
  62. package/dist/state/query-builder.d.ts +8 -0
  63. package/dist/state/query.d.ts +22 -0
  64. package/dist/state/state-change.d.ts +13 -0
  65. package/dist/state/state.d.ts +28 -0
  66. package/dist/state/util.d.ts +2 -0
  67. package/dist/utils.d.ts +17 -14
  68. package/package.json +2 -2
  69. package/dist/collection/in-memory-db-proxy.d.ts +0 -10
  70. package/dist/elements/instanceOf.d.ts +0 -19
  71. package/dist/elements/or.d.ts +0 -11
  72. package/dist/elements/recurent.d.ts +0 -20
  73. package/dist/model/index.d.ts +0 -4
  74. package/dist/model/query-builder.d.ts +0 -3
  75. package/dist/model/rtc.d.ts +0 -6
  76. package/dist/model/submodel.d.ts +0 -23
@@ -0,0 +1,17 @@
1
+ import type { QueryListenerCallback, StoreStateChange } from "./data-storage";
2
+ import type { DataStorage } from "./data-storage.interface";
3
+ import { StoreState } from "./store-state.abstract";
4
+ export declare class MasterStoreState<Item extends {
5
+ _id: string;
6
+ }> extends StoreState<Item> {
7
+ protected items: Map<string, Item>;
8
+ protected isComplete: boolean;
9
+ constructor(storeName: string, dataStorage: DataStorage, deserialize?: (data: any) => Item);
10
+ applyChanges(changes: StoreStateChange<Item>[]): Promise<void>;
11
+ findById(id: string, listener?: QueryListenerCallback<Item>): Promise<Item | undefined>;
12
+ findByIndex(index: string, data: any, listener?: QueryListenerCallback<Item>): Promise<Item[]>;
13
+ findAll(listener?: QueryListenerCallback<Item>): Promise<Item[]>;
14
+ private mergeWithLocalModifications;
15
+ private matchesIndex;
16
+ }
17
+ //# sourceMappingURL=master-store-state.d.ts.map
@@ -0,0 +1,15 @@
1
+ import type { DataStorage, QueryListenerCallback, StoreStateChange } from "./data-storage.interface";
2
+ import { StoreState } from "./store-state.abstract";
3
+ export declare class ForkedStoreState<Item extends {
4
+ _id: string;
5
+ }> extends StoreState<Item> {
6
+ master: StoreState<Item>;
7
+ protected changedItems: Map<string, Item | null>;
8
+ changes: StoreStateChange<Item>[];
9
+ constructor(storeName: string, dataStorage: DataStorage, master: StoreState<Item>, deserialize?: (data: any) => Item);
10
+ applyChanges(changes: StoreStateChange<Item>[]): Promise<void>;
11
+ findById(id: string, listener?: QueryListenerCallback<Item>): Promise<Item | null | undefined>;
12
+ findByIndex(index: string, data: any, listener?: QueryListenerCallback<Item>): Promise<Item[]>;
13
+ findAll(listener?: QueryListenerCallback<Item>): Promise<Item[]>;
14
+ }
15
+ //# sourceMappingURL=store-state-fork.d.ts.map
@@ -0,0 +1,14 @@
1
+ import type { DataStorage, QueryListenerCallback, StoreStateChange } from "./data-storage.interface";
2
+ import { StoreState } from "./store-state.abstract";
3
+ export declare class MasterStoreState<Item extends {
4
+ _id: string;
5
+ }> extends StoreState<Item> {
6
+ private items;
7
+ private isComplete;
8
+ constructor(storeName: string, dataStorage: DataStorage, deserialize?: (data: any) => Item);
9
+ applyChanges(changes: StoreStateChange<Item>[]): Promise<void>;
10
+ findById(id: string, listener?: QueryListenerCallback<Item>): Promise<Item | null | undefined>;
11
+ findByIndex(index: string, data: any, listener?: QueryListenerCallback<Item>): Promise<Item[]>;
12
+ findAll(listener?: QueryListenerCallback<Item>): Promise<Item[]>;
13
+ }
14
+ //# sourceMappingURL=store-state-master.d.ts.map
@@ -0,0 +1,22 @@
1
+ import type { DataStorage, ListenerEvent, QueryListener, QueryListenerCallback, StoreStateChange } from "./data-storage.interface";
2
+ import { ForkedStoreState } from "./store-state-fork";
3
+ export declare abstract class StoreState<Item extends {
4
+ _id: string;
5
+ }> {
6
+ storeName: string;
7
+ protected dataStorage: DataStorage;
8
+ protected deserialize?: ((data: any) => Item) | undefined;
9
+ protected listeners: Set<QueryListener<Item>>;
10
+ constructor(storeName: string, dataStorage: DataStorage, deserialize?: ((data: any) => Item) | undefined);
11
+ abstract applyChanges(changes: StoreStateChange<Item>[]): Promise<void>;
12
+ abstract findById(id: string, listener?: QueryListenerCallback<Item>): Promise<Item | null | undefined>;
13
+ abstract findAll(listener?: QueryListenerCallback<Item>): Promise<Item[]>;
14
+ abstract findByIndex(index: string, data: any, listener?: QueryListenerCallback<Item>): Promise<Item[]>;
15
+ fork(): ForkedStoreState<Item>;
16
+ set(item: Item): Promise<void>;
17
+ remove(id: string): Promise<void>;
18
+ modify(id: string, data: Partial<Item>): Promise<void>;
19
+ unsubscribe(listener: QueryListener<Item>): void;
20
+ protected notifyListeners(events: ListenerEvent<Item>[]): void;
21
+ }
22
+ //# sourceMappingURL=store-state.abstract.d.ts.map
@@ -0,0 +1,24 @@
1
+ import { ForkStoreState, QueryListener, QueryListenerCallback, StoreStateChange } from "./data-storage";
2
+ import type { DataStorage } from "./data-storage.interface";
3
+ export declare abstract class StoreState<Item extends {
4
+ _id: string;
5
+ }> {
6
+ storeName: string;
7
+ protected dataStorage: DataStorage;
8
+ protected deserialize?: ((data: any) => Item) | undefined;
9
+ protected listeners: Set<QueryListener<Item>>;
10
+ protected indexQueryCache: Map<string, Item[]>;
11
+ constructor(storeName: string, dataStorage: DataStorage, deserialize?: ((data: any) => Item) | undefined);
12
+ abstract applyChanges(changes: StoreStateChange<Item>[]): Promise<void>;
13
+ fork(): ForkStoreState<Item>;
14
+ findByIndex(index: string, data: any, listener?: QueryListenerCallback<Item>): Promise<Item[]>;
15
+ set(item: Item): void;
16
+ remove(id: string): void;
17
+ modify(id: string, data: Partial<Item>): void;
18
+ unsubscribe(listener: QueryListener<Item>): void;
19
+ private notifyListeners;
20
+ private getAllLocalItems;
21
+ private mergeWithLocalModifications;
22
+ private matchesIndex;
23
+ }
24
+ //# sourceMappingURL=store-state.d.ts.map
@@ -0,0 +1,2 @@
1
+ export * from "./interface";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,17 @@
1
+ import type { ArcContextAny } from "../context";
2
+ export interface ReadTransaction {
3
+ findById(store: string, id: any): Promise<any | undefined>;
4
+ findByIndex(store: string, index: string, data: any): Promise<any[]>;
5
+ findAll(store: string): Promise<any[]>;
6
+ }
7
+ export interface ReadWriteTransaction extends ReadTransaction {
8
+ remove(store: string, id: any): Promise<void>;
9
+ set(store: string, data: any): Promise<void>;
10
+ commit(): Promise<void>;
11
+ }
12
+ export interface DatabaseAdapter {
13
+ readWriteTransaction(stores?: string[]): ReadWriteTransaction;
14
+ readTransaction(stores?: string[]): ReadTransaction;
15
+ }
16
+ export type DBAdapterFactory = (context: ArcContextAny) => Promise<DatabaseAdapter>;
17
+ //# sourceMappingURL=interface.d.ts.map
@@ -5,3 +5,4 @@ export declare abstract class ArcPrimitive<T> extends ArcAbstract {
5
5
  parse(value: T): T;
6
6
  deserialize(value: T): T;
7
7
  }
8
+ //# sourceMappingURL=abstract-primitive.d.ts.map
@@ -10,3 +10,4 @@ export declare abstract class ArcAbstract implements ArcElement {
10
10
  optional(): ArcOptional<this>;
11
11
  branded<Brand extends string | symbol>(name: Brand): ArcBranded<this, Brand>;
12
12
  }
13
+ //# sourceMappingURL=abstract.d.ts.map
@@ -11,3 +11,4 @@ export declare class ArcArray<E extends ArcElement> extends ArcAbstract {
11
11
  }
12
12
  export type ArcArrayAny = ArcArray<any>;
13
13
  export declare function array<E extends ArcElement>(element: E): ArcArray<E>;
14
+ //# sourceMappingURL=array.d.ts.map
@@ -2,3 +2,4 @@ import { ArcPrimitive } from "./abstract-primitive";
2
2
  export declare class ArcBoolean extends ArcPrimitive<boolean> {
3
3
  }
4
4
  export declare function boolean(): ArcBoolean;
5
+ //# sourceMappingURL=boolean.d.ts.map
@@ -18,3 +18,4 @@ export declare class ArcBranded<E extends ArcAbstract, Brand extends string | sy
18
18
  optional(): ArcOptional<this>;
19
19
  }
20
20
  export type ArcBrandedAny = ArcBranded<ArcAbstract, any>;
21
+ //# sourceMappingURL=branded.d.ts.map
@@ -6,3 +6,4 @@ export declare class ArcDate extends ArcAbstract {
6
6
  deserialize(value: string): Date;
7
7
  }
8
8
  export declare function date(): ArcDate;
9
+ //# sourceMappingURL=date.d.ts.map
@@ -8,3 +8,4 @@ export declare class ArcDefault<E extends ArcElement> implements ArcElement {
8
8
  serialize(value: util.FirstArgument<E["serialize"]> | undefined): ReturnType<E["serialize"]>;
9
9
  deserialize(value: util.FirstArgument<E["deserialize"]> | undefined): ReturnType<E["deserialize"]>;
10
10
  }
11
+ //# sourceMappingURL=default.d.ts.map
@@ -3,3 +3,4 @@ export interface ArcElement {
3
3
  deserialize(value: unknown): unknown;
4
4
  parse(value: unknown): unknown;
5
5
  }
6
+ //# sourceMappingURL=element.d.ts.map
@@ -7,3 +7,4 @@ export declare class ArcId<Brand extends string | symbol> extends ArcBranded<Arc
7
7
  }
8
8
  export type ArcIdAny = ArcId<any>;
9
9
  export declare function id<Brand extends string | symbol>(name: Brand): ArcId<Brand>;
10
+ //# sourceMappingURL=id.d.ts.map
@@ -8,3 +8,4 @@ export * from "./object";
8
8
  export * from "./optional";
9
9
  export * from "./string";
10
10
  export * from "./string-enum";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -2,3 +2,4 @@ import { ArcPrimitive } from "./abstract-primitive";
2
2
  export declare class ArcNumber extends ArcPrimitive<number> {
3
3
  }
4
4
  export declare function number(): ArcNumber;
5
+ //# sourceMappingURL=number.d.ts.map
@@ -26,3 +26,4 @@ export declare class ArcObject<E extends ArcRawShape> extends ArcAbstract {
26
26
  }
27
27
  export type ArcObjectAny = ArcObject<any>;
28
28
  export declare function object<E extends ArcRawShape>(element: E): ArcObject<E>;
29
+ //# sourceMappingURL=object.d.ts.map
@@ -9,3 +9,4 @@ export declare class ArcOptional<E extends ArcElement> implements ArcElement {
9
9
  deserialize(value: util.FirstArgument<E["deserialize"]> | undefined): ReturnType<E["deserialize"]> | undefined;
10
10
  }
11
11
  export type ArcOptionalAny = ArcOptional<ArcAbstract>;
12
+ //# sourceMappingURL=optional.d.ts.map
@@ -9,3 +9,4 @@ export declare class ArcStringEnum<const T extends string[]> extends ArcAbstract
9
9
  }
10
10
  export type ArcStringEnumAny = ArcStringEnum<any>;
11
11
  export declare function stringEnum<const T extends string[]>(...values: T): ArcStringEnum<T>;
12
+ //# sourceMappingURL=string-enum.d.ts.map
@@ -2,3 +2,4 @@ import { ArcPrimitive } from "./abstract-primitive";
2
2
  export declare class ArcString extends ArcPrimitive<string> {
3
3
  }
4
4
  export declare function string(): ArcString;
5
+ //# sourceMappingURL=string.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=object.test.d.ts.map
package/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export * from "./collection";
2
2
  export * from "./context";
3
+ export * from "./data-storage";
4
+ export * from "./db";
3
5
  export * from "./elements";
4
- export * from "./model";
5
6
  export * from "./rtc";
6
7
  export * from "./utils";
8
+ //# sourceMappingURL=index.d.ts.map