@rljson/db 0.0.8 → 0.0.10
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/connector/connector.d.ts +30 -0
- package/dist/controller/base-controller.d.ts +49 -0
- package/dist/controller/cake-controller.d.ts +30 -0
- package/dist/controller/component-controller.d.ts +68 -0
- package/dist/controller/controller.d.ts +48 -0
- package/dist/controller/layer-controller.d.ts +26 -0
- package/dist/controller/slice-id-controller.d.ts +22 -0
- package/dist/db.d.ts +63 -6
- package/dist/db.js +2301 -20
- package/dist/db.js.map +1 -0
- package/dist/edit/edit-action.d.ts +53 -0
- package/dist/edit/edit.d.ts +23 -0
- package/dist/edit/multi-edit-manager.d.ts +30 -0
- package/dist/edit/multi-edit-processor.d.ts +75 -0
- package/dist/example-static/example-static.d.ts +45 -0
- package/dist/index.d.ts +7 -1
- package/dist/join/filter/boolean-filter-processor.d.ts +13 -0
- package/dist/join/filter/boolean-filter.d.ts +15 -0
- package/dist/join/filter/column-filter-processor.d.ts +9 -0
- package/dist/join/filter/column-filter.d.ts +18 -0
- package/dist/join/filter/number-filter-processor.d.ts +16 -0
- package/dist/join/filter/number-filter.d.ts +7 -0
- package/dist/join/filter/row-filter-processor.d.ts +19 -0
- package/dist/join/filter/row-filter.d.ts +19 -0
- package/dist/join/filter/string-filter-processor.d.ts +15 -0
- package/dist/join/filter/string-filter.d.ts +8 -0
- package/dist/join/join.d.ts +141 -0
- package/dist/join/selection/column-selection.d.ts +48 -0
- package/dist/join/set-value/set-value.d.ts +11 -0
- package/dist/join/sort/row-sort.d.ts +18 -0
- package/dist/notify.d.ts +6 -2
- package/dist/tools/inject.d.ts +1 -0
- package/dist/tools/isolate.d.ts +1 -0
- package/dist/tools/make-unique.d.ts +4 -0
- package/dist/tools/merge-trees.d.ts +5 -0
- package/package.json +13 -13
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Socket } from '@rljson/io';
|
|
2
|
+
import { Route } from '@rljson/rljson';
|
|
3
|
+
import { Db } from '../db.ts';
|
|
4
|
+
export type ConnectorPayload = {
|
|
5
|
+
o: string;
|
|
6
|
+
r: string;
|
|
7
|
+
};
|
|
8
|
+
export type ConnectorCallback = (ref: string) => Promise<any>;
|
|
9
|
+
export declare class Connector {
|
|
10
|
+
private readonly _db;
|
|
11
|
+
private readonly _route;
|
|
12
|
+
private readonly _socket;
|
|
13
|
+
private _origin;
|
|
14
|
+
private _callbacks;
|
|
15
|
+
private _isListening;
|
|
16
|
+
private _sentRefs;
|
|
17
|
+
private _receivedRefs;
|
|
18
|
+
constructor(_db: Db, _route: Route, _socket: Socket);
|
|
19
|
+
send(ref: string): void;
|
|
20
|
+
listen(callback: (editHistoryRef: string) => Promise<void>): void;
|
|
21
|
+
private _init;
|
|
22
|
+
teardown(): void;
|
|
23
|
+
private _notifyCallbacks;
|
|
24
|
+
private _registerSocketObserver;
|
|
25
|
+
private _registerDbObserver;
|
|
26
|
+
get socket(): Socket;
|
|
27
|
+
get route(): Route;
|
|
28
|
+
get origin(): string;
|
|
29
|
+
get isListening(): boolean;
|
|
30
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Json, JsonValue } from '@rljson/json';
|
|
2
|
+
import { ContentType, InsertHistoryRow, Ref, Rljson, TableCfg, TableKey, TableType } from '@rljson/rljson';
|
|
3
|
+
import { Core } from '../core.ts';
|
|
4
|
+
import { CakeControllerCommands } from './cake-controller.ts';
|
|
5
|
+
import { Controller, ControllerChildProperty, ControllerRefs } from './controller.ts';
|
|
6
|
+
export declare abstract class BaseController<T extends TableType, C extends JsonValue> implements Controller<T, C, string> {
|
|
7
|
+
protected readonly _core: Core;
|
|
8
|
+
protected readonly _tableKey: TableKey;
|
|
9
|
+
protected _contentType?: ContentType;
|
|
10
|
+
protected _tableCfg?: TableCfg;
|
|
11
|
+
constructor(_core: Core, _tableKey: TableKey);
|
|
12
|
+
abstract insert(command: CakeControllerCommands, value: C, origin?: Ref, refs?: ControllerRefs): Promise<InsertHistoryRow<any>[]>;
|
|
13
|
+
abstract init(): Promise<void>;
|
|
14
|
+
abstract getChildRefs(where: string | Json, filter?: Json): Promise<ControllerChildProperty[]>;
|
|
15
|
+
abstract filterRow(row: Json, key: string, value: JsonValue): Promise<boolean>;
|
|
16
|
+
/**
|
|
17
|
+
* Retrieves the current state of the table.
|
|
18
|
+
* @returns A promise that resolves to the current state of the table.
|
|
19
|
+
*/
|
|
20
|
+
table(): Promise<T>;
|
|
21
|
+
/**
|
|
22
|
+
* Fetches a specific entry from the table by its reference or by a partial match.
|
|
23
|
+
* @param where A string representing the reference of the entry to fetch, or an object representing a partial match.
|
|
24
|
+
* @returns A promise that resolves to an array of entries matching the criteria, or null if no entries are found.
|
|
25
|
+
*/
|
|
26
|
+
get(where: string | Json, filter?: Json): Promise<Rljson>;
|
|
27
|
+
/**
|
|
28
|
+
* Fetches a specific entry from the table by its reference.
|
|
29
|
+
* @param hash A string representing the reference of the entry to fetch.
|
|
30
|
+
* @returns A promise that resolves to the entry matching the reference, or null if no entry is found.
|
|
31
|
+
*/
|
|
32
|
+
protected _getByHash(hash: string, filter?: Json): Promise<Rljson>;
|
|
33
|
+
/**
|
|
34
|
+
* Fetches entries from the table that match the specified criteria.
|
|
35
|
+
* @param where An object representing the criteria to match.
|
|
36
|
+
* @returns A promise that resolves to an array of entries matching the criteria, or null if no entries are found.
|
|
37
|
+
*/
|
|
38
|
+
protected _getByWhere(where: Json, filter?: Json): Promise<Rljson>;
|
|
39
|
+
/**
|
|
40
|
+
* Gets the content type of the controller.
|
|
41
|
+
* @returns The content type managed by the controller.
|
|
42
|
+
*/
|
|
43
|
+
contentType(): ContentType;
|
|
44
|
+
/**
|
|
45
|
+
* Gets the table configuration of the controller.
|
|
46
|
+
* @returns The table configuration managed by the controller.
|
|
47
|
+
*/
|
|
48
|
+
tableCfg(): TableCfg;
|
|
49
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Json, JsonValue } from '@rljson/json';
|
|
2
|
+
import { Cake, CakesTable, InsertHistoryRow, LayerRef, Ref, Rljson, SliceIdsRef, TableKey } from '@rljson/rljson';
|
|
3
|
+
import { Core } from '../core.ts';
|
|
4
|
+
import { BaseController } from './base-controller.ts';
|
|
5
|
+
import { Controller, ControllerChildProperty, ControllerCommands, ControllerRefs } from './controller.ts';
|
|
6
|
+
export interface CakeValue extends Json {
|
|
7
|
+
layers: {
|
|
8
|
+
[layerTable: TableKey]: LayerRef;
|
|
9
|
+
};
|
|
10
|
+
id?: string;
|
|
11
|
+
}
|
|
12
|
+
export type CakeControllerCommands = ControllerCommands | `add@${string}`;
|
|
13
|
+
export interface CakeControllerRefs extends Partial<Cake> {
|
|
14
|
+
sliceIdsTable: TableKey;
|
|
15
|
+
sliceIdsRow: SliceIdsRef;
|
|
16
|
+
base?: Ref;
|
|
17
|
+
}
|
|
18
|
+
export declare class CakeController<N extends string, C extends Cake> extends BaseController<CakesTable, C> implements Controller<CakesTable, C, N> {
|
|
19
|
+
protected readonly _core: Core;
|
|
20
|
+
protected readonly _tableKey: TableKey;
|
|
21
|
+
private _refs?;
|
|
22
|
+
private _table;
|
|
23
|
+
constructor(_core: Core, _tableKey: TableKey, _refs?: CakeControllerRefs | undefined);
|
|
24
|
+
private _baseLayers;
|
|
25
|
+
init(): Promise<void>;
|
|
26
|
+
getChildRefs(where: string | Json, filter?: Json): Promise<ControllerChildProperty[]>;
|
|
27
|
+
insert(command: CakeControllerCommands, value: C, origin?: Ref, refs?: ControllerRefs): Promise<InsertHistoryRow<any>[]>;
|
|
28
|
+
get(where: string | Json, filter?: Json): Promise<Rljson>;
|
|
29
|
+
filterRow(row: Json, key: string, value: JsonValue): Promise<boolean>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Json, JsonValue } from '@rljson/json';
|
|
2
|
+
import { ComponentsTable, InsertHistoryRow, Ref, Rljson, TableKey } from '@rljson/rljson';
|
|
3
|
+
import { Core } from '../core.ts';
|
|
4
|
+
import { BaseController } from './base-controller.ts';
|
|
5
|
+
import { Controller, ControllerChildProperty, ControllerCommands, ControllerRefs } from './controller.ts';
|
|
6
|
+
export declare class ComponentController<N extends string, C extends Json, T extends Json> extends BaseController<ComponentsTable<T>, C> implements Controller<ComponentsTable<T>, C, N> {
|
|
7
|
+
protected readonly _core: Core;
|
|
8
|
+
protected readonly _tableKey: TableKey;
|
|
9
|
+
private _refs?;
|
|
10
|
+
private _allowedContentTypes;
|
|
11
|
+
private _resolvedColumns;
|
|
12
|
+
private _refTableKeyToColumnKeyMap;
|
|
13
|
+
constructor(_core: Core, _tableKey: TableKey, _refs?: ControllerRefs | undefined);
|
|
14
|
+
init(): Promise<void>;
|
|
15
|
+
insert(command: ControllerCommands, value: Json, origin?: Ref, refs?: ControllerRefs): Promise<InsertHistoryRow<N>[]>;
|
|
16
|
+
/**
|
|
17
|
+
* Retrieves references to child entries in related tables based on a condition.
|
|
18
|
+
* @param where - The condition to filter the data.
|
|
19
|
+
* @param filter - Optional filter to apply to the data.
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
getChildRefs(where: string | Json, filter?: Json): Promise<ControllerChildProperty[]>;
|
|
23
|
+
/**
|
|
24
|
+
* Fetches a specific entry from the table by a partial match. Resolves references as needed.
|
|
25
|
+
* @param where - An object representing a partial match.
|
|
26
|
+
* @returns A promise that resolves to an array of entries matching the criteria, or null if no entries are found.
|
|
27
|
+
*/
|
|
28
|
+
protected _getByWhere(where: Json, filter?: Json): Promise<Rljson>;
|
|
29
|
+
private _referencesToWhereClauses;
|
|
30
|
+
private _createRefTableKeyToColumnKeyMap;
|
|
31
|
+
/**
|
|
32
|
+
* Extracts reference columns from the where clause.
|
|
33
|
+
* @param where - The condition to filter the data.
|
|
34
|
+
* @returns An object representing only the reference columns in the where clause.
|
|
35
|
+
*/
|
|
36
|
+
private _getWhereReferences;
|
|
37
|
+
/**
|
|
38
|
+
* Removes reference columns from the where clause.
|
|
39
|
+
* @param where - The condition to filter the data.
|
|
40
|
+
* @returns An object representing the where clause without reference columns.
|
|
41
|
+
*/
|
|
42
|
+
private _getWhereBase;
|
|
43
|
+
/**
|
|
44
|
+
* Retrieves all reference columns from the resolved columns.
|
|
45
|
+
* @returns An array of ColumnCfg representing the reference columns.
|
|
46
|
+
*/
|
|
47
|
+
private get _referenceColumns();
|
|
48
|
+
/**
|
|
49
|
+
* Checks if the where clause contains any reference columns.
|
|
50
|
+
* @param where - The condition to filter the data.
|
|
51
|
+
* @returns A promise that resolves to true if reference columns are present, false otherwise.
|
|
52
|
+
*/
|
|
53
|
+
private _hasReferenceColumns;
|
|
54
|
+
/**
|
|
55
|
+
* Resolves reference columns in the where clause.
|
|
56
|
+
* @param columns - The columns to resolve.
|
|
57
|
+
* @returns A promise that resolves to an object containing base and reference columns.
|
|
58
|
+
*/
|
|
59
|
+
private _resolveReferenceColumns;
|
|
60
|
+
/**
|
|
61
|
+
* Resolves references based on the where clause.
|
|
62
|
+
* @param where - The condition to filter the data.
|
|
63
|
+
* @returns - A promise that resolves to an object containing resolved references.
|
|
64
|
+
*/
|
|
65
|
+
private _resolveReferences;
|
|
66
|
+
private _readRowsWithReferences;
|
|
67
|
+
filterRow(row: Json, key: string, value: JsonValue): Promise<boolean>;
|
|
68
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Json, JsonValue } from '@rljson/json';
|
|
2
|
+
import { ContentType, InsertCommand, InsertHistoryRow, Ref, Rljson, SliceId, TableCfg, TableKey, TableType } from '@rljson/rljson';
|
|
3
|
+
import { Core } from '../core.ts';
|
|
4
|
+
import { CakeControllerRefs } from './cake-controller.ts';
|
|
5
|
+
import { LayerControllerRefs } from './layer-controller.ts';
|
|
6
|
+
export type ControllerRefs = CakeControllerRefs | LayerControllerRefs;
|
|
7
|
+
export type ControllerCommands = InsertCommand;
|
|
8
|
+
export type ControllerRunFn<N extends string, C extends JsonValue> = (command: ControllerCommands, value: C, origin?: Ref, refs?: ControllerRefs) => Promise<InsertHistoryRow<N>[]>;
|
|
9
|
+
export type ControllerChildProperty = {
|
|
10
|
+
tableKey: TableKey;
|
|
11
|
+
columnKey?: string;
|
|
12
|
+
ref: Ref;
|
|
13
|
+
sliceIds?: SliceId[];
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Generic interface for a controller that manages a specific table in the database.
|
|
17
|
+
* @template T The type of the table being managed.
|
|
18
|
+
* @template C The type of the Insert.
|
|
19
|
+
* @template N The name of the table being managed.
|
|
20
|
+
* @property {ControllerRunFn<N>} insert - Function to execute a command on the table.
|
|
21
|
+
* @property {() => Promise<void>} init - Initializes the controller.
|
|
22
|
+
* @property {() => Promise<T>} table - Retrieves the current state of the table.
|
|
23
|
+
* @property {(where: string | { [column: string]: JsonValue }) => Promise<Rljson>} get - Fetches data from the table based on a condition.
|
|
24
|
+
* @property {(where: string | Json, filter?: Json) => Promise<Array<{ tableKey: TableKey; ref: Ref }>>} getChildRefs - Retrieves references to child entries in related tables based on a condition.
|
|
25
|
+
* @param {string | Json }} where - The condition to filter the data.
|
|
26
|
+
* @returns {Promise<Json[] | null>} A promise that resolves to an array of JSON objects or null if no data is found.
|
|
27
|
+
* @throws {Error} If the data is invalid.
|
|
28
|
+
*/
|
|
29
|
+
export interface Controller<T extends TableType, C extends JsonValue, N extends string> {
|
|
30
|
+
insert: ControllerRunFn<N, C>;
|
|
31
|
+
init(): Promise<void>;
|
|
32
|
+
table(): Promise<T>;
|
|
33
|
+
get(where: string | Json, filter?: Json): Promise<Rljson>;
|
|
34
|
+
getChildRefs(where: string | Json, filter?: Json): Promise<ControllerChildProperty[]>;
|
|
35
|
+
filterRow(row: Json, key: string, value: JsonValue): Promise<boolean>;
|
|
36
|
+
contentType(): ContentType;
|
|
37
|
+
tableCfg(): TableCfg;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Factory function to create a controller based on the content type.
|
|
41
|
+
* @param {ContentType} type - The type of content (e.g., 'layers', 'components', 'cakes').
|
|
42
|
+
* @param {Core} core - The core instance managing the database.
|
|
43
|
+
* @param {TableKey} tableKey - The key identifying the table to be managed.
|
|
44
|
+
* @param {ControllerRefs} [refs] - Optional references for the controller.
|
|
45
|
+
* @returns {Promise<Controller<any, string>>} A promise that resolves to the created controller.
|
|
46
|
+
* @throws {Error} If the controller for the specified type is not implemented.
|
|
47
|
+
*/
|
|
48
|
+
export declare const createController: (type: ContentType, core: Core, tableKey: TableKey, refs?: ControllerRefs) => Promise<Controller<TableType, any, string>>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Json, JsonValue } from '@rljson/json';
|
|
2
|
+
import { InsertCommand, InsertHistoryRow, Layer, LayerRef, LayersTable, Ref, Rljson, SliceId, SliceIdsRef, TableKey } from '@rljson/rljson';
|
|
3
|
+
import { Core } from '../core.ts';
|
|
4
|
+
import { BaseController } from './base-controller.ts';
|
|
5
|
+
import { Controller, ControllerChildProperty, ControllerRefs } from './controller.ts';
|
|
6
|
+
export interface LayerControllerRefs extends Partial<Layer> {
|
|
7
|
+
base?: LayerRef;
|
|
8
|
+
sliceIdsTable: TableKey;
|
|
9
|
+
sliceIdsTableRow: SliceIdsRef;
|
|
10
|
+
componentsTable: TableKey;
|
|
11
|
+
}
|
|
12
|
+
export declare class LayerController<N extends string, C extends Layer> extends BaseController<LayersTable, C> implements Controller<LayersTable, C, N> {
|
|
13
|
+
protected readonly _core: Core;
|
|
14
|
+
protected readonly _tableKey: TableKey;
|
|
15
|
+
private _refs?;
|
|
16
|
+
constructor(_core: Core, _tableKey: TableKey, _refs?: LayerControllerRefs | undefined);
|
|
17
|
+
init(): Promise<void>;
|
|
18
|
+
insert(command: InsertCommand, value: C, origin?: Ref, refs?: ControllerRefs): Promise<InsertHistoryRow<any>[]>;
|
|
19
|
+
get(where: string | Json, filter?: Json): Promise<Rljson>;
|
|
20
|
+
resolveBaseLayer(layer: Layer): Promise<{
|
|
21
|
+
add: Record<string, string>;
|
|
22
|
+
sliceIds: SliceId[];
|
|
23
|
+
}>;
|
|
24
|
+
getChildRefs(where: string | Json, filter?: Json): Promise<ControllerChildProperty[]>;
|
|
25
|
+
filterRow(row: Json, _: string, value: JsonValue): Promise<boolean>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Json, JsonValue } from '@rljson/json';
|
|
2
|
+
import { InsertCommand, InsertHistoryRow, Ref, Rljson, SliceId, SliceIds, SliceIdsRef, SliceIdsTable, TableKey } from '@rljson/rljson';
|
|
3
|
+
import { Core } from '../core.ts';
|
|
4
|
+
import { BaseController } from './base-controller.ts';
|
|
5
|
+
import { Controller, ControllerChildProperty, ControllerRefs } from './controller.ts';
|
|
6
|
+
export interface SliceIdControllerRefs extends Partial<SliceIds> {
|
|
7
|
+
base?: SliceIdsRef;
|
|
8
|
+
}
|
|
9
|
+
export declare class SliceIdController<N extends string, C extends SliceId[]> extends BaseController<SliceIdsTable, C> implements Controller<SliceIdsTable, C, N> {
|
|
10
|
+
protected readonly _core: Core;
|
|
11
|
+
protected readonly _tableKey: TableKey;
|
|
12
|
+
private _refs?;
|
|
13
|
+
constructor(_core: Core, _tableKey: TableKey, _refs?: SliceIdControllerRefs | undefined);
|
|
14
|
+
init(): Promise<void>;
|
|
15
|
+
insert(command: InsertCommand, value: SliceId[], origin?: Ref, refs?: ControllerRefs): Promise<InsertHistoryRow<any>[]>;
|
|
16
|
+
get(where: string | Json, filter?: Json): Promise<Rljson>;
|
|
17
|
+
resolveBaseSliceIds(sliceIds: SliceIds): Promise<{
|
|
18
|
+
add: SliceId[];
|
|
19
|
+
}>;
|
|
20
|
+
getChildRefs(): Promise<ControllerChildProperty[]>;
|
|
21
|
+
filterRow(row: Json, _: string, value: JsonValue): Promise<boolean>;
|
|
22
|
+
}
|
package/dist/db.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Io } from '@rljson/io';
|
|
2
2
|
import { Json, JsonValue } from '@rljson/json';
|
|
3
|
-
import { InsertHistoryRow, InsertHistoryTimeId, Ref, Rljson, Route, SliceId, TableType } from '@rljson/rljson';
|
|
3
|
+
import { Edit, EditHistory, InsertHistoryRow, InsertHistoryTimeId, MultiEdit, Ref, Rljson, Route, SliceId, TableType } from '@rljson/rljson';
|
|
4
4
|
import { Controller, ControllerChildProperty, ControllerRefs } from './controller/controller.ts';
|
|
5
5
|
import { Core } from './core.ts';
|
|
6
6
|
import { Join } from './join/join.ts';
|
|
7
7
|
import { ColumnSelection } from './join/selection/column-selection.ts';
|
|
8
|
-
import { Notify } from './notify.ts';
|
|
8
|
+
import { Notify, NotifyCallback } from './notify.ts';
|
|
9
9
|
export type Cell = {
|
|
10
10
|
route: Route;
|
|
11
|
-
value: JsonValue[] | null;
|
|
12
|
-
row: JsonValue[] | null;
|
|
11
|
+
value: JsonValue | JsonValue[] | null;
|
|
12
|
+
row: JsonValue | JsonValue[] | null;
|
|
13
13
|
path: Array<Array<string | number>>;
|
|
14
14
|
};
|
|
15
15
|
export type Container = {
|
|
@@ -97,13 +97,17 @@ export declare class Db {
|
|
|
97
97
|
* @param route - The route to register the callback on
|
|
98
98
|
* @param callback - The callback to be called when an Insert is made
|
|
99
99
|
*/
|
|
100
|
-
registerObserver(route: Route, callback:
|
|
100
|
+
registerObserver(route: Route, callback: NotifyCallback<any>): void;
|
|
101
101
|
/**
|
|
102
102
|
* Unregisters a callback from the given route
|
|
103
103
|
* @param route - The route to unregister the callback from
|
|
104
104
|
* @param callback - The callback to be unregistered
|
|
105
105
|
*/
|
|
106
|
-
unregisterObserver(route: Route, callback:
|
|
106
|
+
unregisterObserver(route: Route, callback: NotifyCallback<any>): void;
|
|
107
|
+
/**
|
|
108
|
+
* Unregisters all observers from all routes
|
|
109
|
+
*/
|
|
110
|
+
unregisterAllObservers(route: Route): void;
|
|
107
111
|
/**
|
|
108
112
|
* Get a controller for a specific table
|
|
109
113
|
* @param tableKey - The key of the table to get the controller for
|
|
@@ -120,6 +124,48 @@ export declare class Db {
|
|
|
120
124
|
* @throws {Error} If the InsertHistory table does not exist
|
|
121
125
|
*/
|
|
122
126
|
private _writeInsertHistory;
|
|
127
|
+
/**
|
|
128
|
+
* Add a head revision for a cake
|
|
129
|
+
* @param cakeKey - The cake table key
|
|
130
|
+
* @param cakeRef - The cake reference
|
|
131
|
+
*/
|
|
132
|
+
addHeadRevision(cakeKey: string, cakeRef: Ref): Promise<InsertHistoryRow<string>[]>;
|
|
133
|
+
/**
|
|
134
|
+
* Add a multiEdit
|
|
135
|
+
* @param cakeKey - The cake table key
|
|
136
|
+
* @param multiEdit - The multiEdit to add
|
|
137
|
+
*/
|
|
138
|
+
addMultiEdit(cakeKey: string, multiEdit: MultiEdit): Promise<InsertHistoryRow<any>[]>;
|
|
139
|
+
/**
|
|
140
|
+
* Get multiEdits
|
|
141
|
+
* @param cakeKey - The cake table key
|
|
142
|
+
* @param where - The where clause to filter multiEdits
|
|
143
|
+
*/
|
|
144
|
+
getMultiEdits(cakeKey: string, where: string | Json): Promise<MultiEdit[]>;
|
|
145
|
+
/**
|
|
146
|
+
* Add an edit
|
|
147
|
+
* @param cakeKey - The cake table key
|
|
148
|
+
* @param edit - The edit to add
|
|
149
|
+
*/
|
|
150
|
+
addEdit(cakeKey: string, edit: Edit): Promise<InsertHistoryRow<any>[]>;
|
|
151
|
+
/**
|
|
152
|
+
* Get edits
|
|
153
|
+
* @param cakeKey - The cake table key
|
|
154
|
+
* @param where - The where clause to filter edits
|
|
155
|
+
*/
|
|
156
|
+
getEdits(cakeKey: string, where: string | Json): Promise<Edit[]>;
|
|
157
|
+
/**
|
|
158
|
+
* Add an edit history entry
|
|
159
|
+
* @param cakeKey - The cake table key
|
|
160
|
+
* @param editHistory - The edit history entry to add
|
|
161
|
+
*/
|
|
162
|
+
addEditHistory(cakeKey: string, editHistory: EditHistory): Promise<InsertHistoryRow<any>[]>;
|
|
163
|
+
/**
|
|
164
|
+
* Get edit history entries
|
|
165
|
+
* @param cakeKey - The cake table key
|
|
166
|
+
* @param where - The where clause to filter edit history entries
|
|
167
|
+
*/
|
|
168
|
+
getEditHistories(cakeKey: string, where: string | Json): Promise<EditHistory[]>;
|
|
123
169
|
/**
|
|
124
170
|
* Get the InsertHistory of a table
|
|
125
171
|
* @param table - The table to get the InsertHistory for
|
|
@@ -174,8 +220,19 @@ export declare class Db {
|
|
|
174
220
|
* @returns A new Rljson with only the isolated property
|
|
175
221
|
*/
|
|
176
222
|
isolatePropertyFromComponents(rljson: Rljson, propertyKey: string): Rljson;
|
|
223
|
+
/**
|
|
224
|
+
* Clone the Db instance with a new Io instance
|
|
225
|
+
* @param io - The new Io instance
|
|
226
|
+
* @returns A new Db instance with the same cache as the current instance
|
|
227
|
+
*/
|
|
228
|
+
clone(io: Io): Db;
|
|
177
229
|
/**
|
|
178
230
|
* Get the current cache of the Db instance
|
|
179
231
|
*/
|
|
180
232
|
get cache(): Map<string, Container>;
|
|
233
|
+
/**
|
|
234
|
+
* Set the cache of the Db instance
|
|
235
|
+
* @param cache - The new cache to set
|
|
236
|
+
*/
|
|
237
|
+
setCache(cache: Map<string, Container>): void;
|
|
181
238
|
}
|