oak-domain 3.0.4 → 4.0.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/lib/actions/action.d.ts +16 -16
- package/lib/actions/action.js +17 -17
- package/lib/actions/relation.d.ts +5 -5
- package/lib/actions/relation.js +25 -25
- package/lib/base-app-domain/ActionAuth/Schema.d.ts +186 -186
- package/lib/base-app-domain/ActionAuth/Storage.js +39 -39
- package/lib/base-app-domain/ActionDefDict.d.ts +8 -8
- package/lib/base-app-domain/ActionDefDict.js +9 -9
- package/lib/base-app-domain/EntityDict.d.ts +28 -28
- package/lib/base-app-domain/I18n/Schema.d.ts +129 -129
- package/lib/base-app-domain/I18n/Schema.js +2 -2
- package/lib/base-app-domain/I18n/Storage.d.ts +3 -3
- package/lib/base-app-domain/I18n/Storage.js +59 -59
- package/lib/base-app-domain/Modi/Action.d.ts +10 -10
- package/lib/base-app-domain/Modi/Action.js +14 -14
- package/lib/base-app-domain/Modi/Schema.d.ts +136 -136
- package/lib/base-app-domain/Modi/Storage.js +63 -63
- package/lib/base-app-domain/ModiEntity/Schema.d.ts +384 -384
- package/lib/base-app-domain/ModiEntity/Storage.js +30 -30
- package/lib/base-app-domain/Oper/Schema.d.ts +153 -153
- package/lib/base-app-domain/Oper/Storage.js +38 -38
- package/lib/base-app-domain/OperEntity/Schema.d.ts +373 -373
- package/lib/base-app-domain/OperEntity/Storage.js +30 -30
- package/lib/base-app-domain/Path/Schema.d.ts +149 -149
- package/lib/base-app-domain/Path/Schema.js +2 -2
- package/lib/base-app-domain/Path/Storage.d.ts +3 -3
- package/lib/base-app-domain/Path/Storage.js +54 -54
- package/lib/base-app-domain/Relation/Schema.d.ts +188 -188
- package/lib/base-app-domain/Relation/Storage.js +54 -54
- package/lib/base-app-domain/Relation.d.ts +2 -2
- package/lib/base-app-domain/Relation.js +4 -4
- package/lib/base-app-domain/RelationAuth/Schema.d.ts +214 -214
- package/lib/base-app-domain/RelationAuth/Storage.js +44 -44
- package/lib/base-app-domain/Storage.js +31 -31
- package/lib/base-app-domain/User/Action.d.ts +10 -10
- package/lib/base-app-domain/User/Action.js +12 -12
- package/lib/base-app-domain/User/Schema.d.ts +210 -210
- package/lib/base-app-domain/User/Storage.js +33 -33
- package/lib/base-app-domain/UserEntityClaim/Schema.d.ts +264 -264
- package/lib/base-app-domain/UserEntityClaim/Schema.js +2 -2
- package/lib/base-app-domain/UserEntityClaim/Storage.d.ts +3 -3
- package/lib/base-app-domain/UserEntityClaim/Storage.js +37 -37
- package/lib/base-app-domain/UserEntityGrant/Action.d.ts +5 -5
- package/lib/base-app-domain/UserEntityGrant/Action.js +5 -5
- package/lib/base-app-domain/UserEntityGrant/Schema.d.ts +131 -131
- package/lib/base-app-domain/UserEntityGrant/Storage.js +25 -25
- package/lib/base-app-domain/UserRelation/Schema.d.ts +208 -208
- package/lib/base-app-domain/UserRelation/Storage.js +56 -56
- package/lib/base-app-domain/_SubQuery.d.ts +142 -142
- package/lib/base-app-domain/index.d.ts +4 -4
- package/lib/base-app-domain/index.js +7 -7
- package/lib/checkers/index.d.ts +5 -5
- package/lib/checkers/index.js +13 -13
- package/lib/compiler/entities.d.ts +2 -0
- package/lib/compiler/entities.js +7 -0
- package/lib/compiler/env.d.ts +13 -14
- package/lib/compiler/env.js +45 -48
- package/lib/compiler/localeBuilder.d.ts +27 -22
- package/lib/compiler/localeBuilder.js +184 -173
- package/lib/compiler/schemalBuilder.d.ts +27 -27
- package/lib/compiler/schemalBuilder.js +3569 -3569
- package/lib/entities/ActionAuth.d.ts +10 -10
- package/lib/entities/ActionAuth.js +31 -31
- package/lib/entities/I18n.d.ts +9 -9
- package/lib/entities/I18n.js +36 -37
- package/lib/entities/Modi.js +49 -49
- package/lib/entities/ModiEntity.js +18 -18
- package/lib/entities/Oper.js +21 -21
- package/lib/entities/OperEntity.js +18 -18
- package/lib/entities/Path.d.ts +8 -8
- package/lib/entities/Path.js +35 -35
- package/lib/entities/Relation.d.ts +8 -8
- package/lib/entities/Relation.js +35 -35
- package/lib/entities/RelationAuth.d.ts +8 -8
- package/lib/entities/RelationAuth.js +34 -34
- package/lib/entities/User.js +31 -31
- package/lib/entities/UserEntityClaim.d.ts +13 -13
- package/lib/entities/UserEntityClaim.js +17 -17
- package/lib/entities/UserEntityGrant.d.ts +9 -9
- package/lib/entities/UserEntityGrant.js +15 -15
- package/lib/entities/UserRelation.d.ts +10 -10
- package/lib/entities/UserRelation.js +38 -38
- package/lib/index.d.ts +23 -23
- package/lib/index.js +37 -37
- package/lib/store/AsyncRowStore.d.ts +60 -59
- package/lib/store/AsyncRowStore.js +118 -116
- package/lib/store/CascadeStore.d.ts +104 -103
- package/lib/store/CascadeStore.js +1688 -1662
- package/lib/store/RelationAuth.d.ts +96 -96
- package/lib/store/RelationAuth.js +1336 -1334
- package/lib/store/SyncRowStore.d.ts +29 -29
- package/lib/store/SyncRowStore.js +50 -50
- package/lib/store/TriggerExecutor.d.ts +38 -38
- package/lib/store/TriggerExecutor.js +459 -459
- package/lib/store/actionAuth.d.ts +4 -4
- package/lib/store/actionAuth.js +25 -25
- package/lib/store/actionDef.d.ts +10 -10
- package/lib/store/actionDef.js +278 -278
- package/lib/store/checker.d.ts +26 -26
- package/lib/store/checker.js +487 -487
- package/lib/store/filter.d.ts +85 -122
- package/lib/store/filter.js +1651 -1623
- package/lib/store/modi.d.ts +13 -13
- package/lib/store/modi.js +254 -254
- package/lib/store/relation.d.ts +12 -12
- package/lib/store/relation.js +67 -67
- package/lib/timers/oper.d.ts +18 -18
- package/lib/timers/oper.js +57 -57
- package/lib/timers/vaccum.d.ts +20 -20
- package/lib/timers/vaccum.js +111 -111
- package/lib/triggers/index.d.ts +5 -5
- package/lib/triggers/index.js +8 -8
- package/lib/types/Action.d.ts +20 -20
- package/lib/types/AppLoader.d.ts +17 -17
- package/lib/types/AppLoader.js +10 -10
- package/lib/types/Auth.d.ts +70 -70
- package/lib/types/Cluster.d.ts +5 -0
- package/lib/types/Cluster.js +2 -0
- package/lib/types/Connector.d.ts +38 -38
- package/lib/types/Connector.js +2 -2
- package/lib/types/DataType.d.ts +25 -25
- package/lib/types/DataType.js +6 -6
- package/lib/types/Demand.d.ts +88 -88
- package/lib/types/Demand.js +10 -10
- package/lib/types/Endpoint.d.ts +11 -11
- package/lib/types/Entity.d.ts +203 -202
- package/lib/types/Entity.js +15 -15
- package/lib/types/EntityDesc.d.ts +9 -9
- package/lib/types/EntityDesc.js +2 -2
- package/lib/types/Environment.d.ts +88 -57
- package/lib/types/Environment.js +2 -2
- package/lib/types/Exception.d.ts +147 -147
- package/lib/types/Exception.js +406 -406
- package/lib/types/Expression.d.ts +163 -163
- package/lib/types/Expression.js +397 -394
- package/lib/types/Geo.d.ts +18 -18
- package/lib/types/Locale.d.ts +25 -25
- package/lib/types/Logger.d.ts +6 -6
- package/lib/types/Polyfill.d.ts +24 -24
- package/lib/types/Port.d.ts +18 -18
- package/lib/types/RowStore.d.ts +18 -18
- package/lib/types/RowStore.js +33 -33
- package/lib/types/Storage.d.ts +58 -58
- package/lib/types/Style.d.ts +11 -11
- package/lib/types/Timer.d.ts +14 -14
- package/lib/types/Trigger.d.ts +124 -124
- package/lib/types/Trigger.js +58 -58
- package/lib/types/Watcher.d.ts +19 -19
- package/lib/types/index.d.ts +26 -25
- package/lib/types/index.js +29 -28
- package/lib/types/schema/DataTypes.d.ts +34 -34
- package/lib/utils/SimpleConnector.d.ts +64 -64
- package/lib/utils/SimpleConnector.js +206 -206
- package/lib/utils/assert.d.ts +5 -5
- package/lib/utils/assert.js +9 -9
- package/lib/utils/concurrent.d.ts +15 -15
- package/lib/utils/concurrent.js +63 -63
- package/lib/utils/date.js +18 -18
- package/lib/utils/{url.d.ts → domain.d.ts} +1 -1
- package/lib/utils/{url.js → domain.js} +11 -13
- package/lib/utils/geo.js +24 -24
- package/lib/utils/lodash.d.ts +24 -22
- package/lib/utils/lodash.js +46 -42
- package/lib/utils/mask.js +34 -34
- package/lib/utils/money.d.ts +6 -6
- package/lib/utils/money.js +51 -51
- package/lib/utils/projection.d.ts +4 -4
- package/lib/utils/projection.js +15 -15
- package/lib/utils/random/random.js +19 -19
- package/lib/utils/random/random.mp.js +14 -14
- package/lib/utils/random/random.native.d.ts +1 -0
- package/lib/utils/random/random.native.js +14 -0
- package/lib/utils/random/random.web.js +11 -11
- package/lib/utils/string.d.ts +28 -28
- package/lib/utils/string.js +69 -69
- package/lib/utils/url/index.d.ts +7 -0
- package/lib/utils/url/index.js +8 -0
- package/lib/utils/url/index.mp.d.ts +4 -0
- package/lib/utils/url/index.mp.js +8 -0
- package/lib/utils/url/index.native.d.ts +12 -0
- package/lib/utils/url/index.native.js +7 -0
- package/lib/utils/url/index.web.d.ts +12 -0
- package/lib/utils/url/index.web.js +7 -0
- package/lib/utils/uuid.d.ts +17 -17
- package/lib/utils/uuid.js +218 -218
- package/lib/utils/validator.d.ts +26 -26
- package/lib/utils/validator.js +131 -131
- package/lib/utils/version.js +21 -21
- package/package.json +51 -49
- package/src/entities/ActionAuth.ts +41 -41
- package/src/entities/I18n.ts +45 -46
- package/src/entities/Modi.ts +69 -69
- package/src/entities/ModiEntity.ts +26 -26
- package/src/entities/Oper.ts +32 -32
- package/src/entities/OperEntity.ts +27 -27
- package/src/entities/Path.ts +43 -43
- package/src/entities/Relation.ts +43 -43
- package/src/entities/RelationAuth.ts +44 -44
- package/src/entities/User.ts +48 -48
- package/src/entities/UserEntityClaim.ts +29 -29
- package/src/entities/UserEntityGrant.ts +24 -24
- package/src/entities/UserRelation.ts +50 -50
package/lib/types/Geo.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export type Point = [number, number];
|
|
2
|
-
export type Path = Array<Point>;
|
|
3
|
-
export type Polygon = Array<Path>;
|
|
4
|
-
export type Circle = [Point, number];
|
|
5
|
-
export type SingleGeo = {
|
|
6
|
-
type: 'point';
|
|
7
|
-
coordinate: Point;
|
|
8
|
-
} | {
|
|
9
|
-
type: 'path';
|
|
10
|
-
coordinate: Path;
|
|
11
|
-
} | {
|
|
12
|
-
type: 'polygon';
|
|
13
|
-
coordinate: Polygon;
|
|
14
|
-
} | {
|
|
15
|
-
type: 'circle';
|
|
16
|
-
coordinate: Circle;
|
|
17
|
-
};
|
|
18
|
-
export type Geo = SingleGeo | SingleGeo[];
|
|
1
|
+
export type Point = [number, number];
|
|
2
|
+
export type Path = Array<Point>;
|
|
3
|
+
export type Polygon = Array<Path>;
|
|
4
|
+
export type Circle = [Point, number];
|
|
5
|
+
export type SingleGeo = {
|
|
6
|
+
type: 'point';
|
|
7
|
+
coordinate: Point;
|
|
8
|
+
} | {
|
|
9
|
+
type: 'path';
|
|
10
|
+
coordinate: Path;
|
|
11
|
+
} | {
|
|
12
|
+
type: 'polygon';
|
|
13
|
+
coordinate: Polygon;
|
|
14
|
+
} | {
|
|
15
|
+
type: 'circle';
|
|
16
|
+
coordinate: Circle;
|
|
17
|
+
};
|
|
18
|
+
export type Geo = SingleGeo | SingleGeo[];
|
package/lib/types/Locale.d.ts
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { EntityShape } from "./Entity";
|
|
2
|
-
type Language = 'zh_CN' | 'en_US';
|
|
3
|
-
type LocaleOfSchema<S extends Record<string, any>> = {
|
|
4
|
-
[A in keyof Required<Omit<S, keyof EntityShape>>]: string;
|
|
5
|
-
};
|
|
6
|
-
type LocaleOfStringEnum<A extends string> = {
|
|
7
|
-
[K in A]: string;
|
|
8
|
-
};
|
|
9
|
-
type LocaleOfValue<V extends Record<string, string>> = {
|
|
10
|
-
[K in keyof V]: {
|
|
11
|
-
[K2 in V[K]]: string;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
export type LocaleDef<Sc extends Record<string, any>, Ac extends string, R extends string, V extends Record<string, string>> = {
|
|
15
|
-
[L in Language]?: {
|
|
16
|
-
name: string;
|
|
17
|
-
attr: LocaleOfSchema<Sc> & {
|
|
18
|
-
[A in keyof V]: string;
|
|
19
|
-
};
|
|
20
|
-
action?: LocaleOfStringEnum<Ac>;
|
|
21
|
-
r?: LocaleOfStringEnum<R>;
|
|
22
|
-
v?: LocaleOfValue<V>;
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
export {};
|
|
1
|
+
import { EntityShape } from "./Entity";
|
|
2
|
+
type Language = 'zh_CN' | 'en_US';
|
|
3
|
+
type LocaleOfSchema<S extends Record<string, any>> = {
|
|
4
|
+
[A in keyof Required<Omit<S, keyof EntityShape>>]: string;
|
|
5
|
+
};
|
|
6
|
+
type LocaleOfStringEnum<A extends string> = {
|
|
7
|
+
[K in A]: string;
|
|
8
|
+
};
|
|
9
|
+
type LocaleOfValue<V extends Record<string, string>> = {
|
|
10
|
+
[K in keyof V]: {
|
|
11
|
+
[K2 in V[K]]: string;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export type LocaleDef<Sc extends Record<string, any>, Ac extends string, R extends string, V extends Record<string, string>> = {
|
|
15
|
+
[L in Language]?: {
|
|
16
|
+
name: string;
|
|
17
|
+
attr: LocaleOfSchema<Sc> & {
|
|
18
|
+
[A in keyof V]: string;
|
|
19
|
+
};
|
|
20
|
+
action?: LocaleOfStringEnum<Ac>;
|
|
21
|
+
r?: LocaleOfStringEnum<R>;
|
|
22
|
+
v?: LocaleOfValue<V>;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export {};
|
package/lib/types/Logger.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export interface Logger {
|
|
2
|
-
error(...data: any[]): void;
|
|
3
|
-
info(...data: any[]): void;
|
|
4
|
-
log(...data: any[]): void;
|
|
5
|
-
warn(...data: any[]): void;
|
|
6
|
-
}
|
|
1
|
+
export interface Logger {
|
|
2
|
+
error(...data: any[]): void;
|
|
3
|
+
info(...data: any[]): void;
|
|
4
|
+
log(...data: any[]): void;
|
|
5
|
+
warn(...data: any[]): void;
|
|
6
|
+
}
|
package/lib/types/Polyfill.d.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
export type OmitInferKey<T, R> = {
|
|
2
|
-
[K in keyof T as T extends R ? never : K]: T[K];
|
|
3
|
-
};
|
|
4
|
-
export type OmitInferValue<T, R> = {
|
|
5
|
-
[K in keyof T as T extends R ? never : K]: T[K];
|
|
6
|
-
};
|
|
7
|
-
export type ValueOf<Obj> = Obj[keyof Obj];
|
|
8
|
-
export type OneOnly<Obj, Key extends keyof Obj> = {
|
|
9
|
-
[key in Exclude<keyof Obj, Key>]?: undefined;
|
|
10
|
-
} & Pick<Obj, Key>;
|
|
11
|
-
export type OneOfByKey<Obj> = {
|
|
12
|
-
[key in keyof Obj]: OneOnly<Obj, key>;
|
|
13
|
-
};
|
|
14
|
-
export type OneOf<Obj> = ValueOf<OneOfByKey<Obj>>;
|
|
15
|
-
type IsOptional<T, K extends keyof T> = {
|
|
16
|
-
[K1 in Exclude<keyof T, K>]: T[K1];
|
|
17
|
-
} & {
|
|
18
|
-
K?: T[K];
|
|
19
|
-
} extends T ? K : never;
|
|
20
|
-
export type OptionalKeys<T> = {
|
|
21
|
-
[K in keyof T]: IsOptional<T, K>;
|
|
22
|
-
}[keyof T];
|
|
23
|
-
export type SyncOrAsync<T> = T | Promise<T>;
|
|
24
|
-
export {};
|
|
1
|
+
export type OmitInferKey<T, R> = {
|
|
2
|
+
[K in keyof T as T extends R ? never : K]: T[K];
|
|
3
|
+
};
|
|
4
|
+
export type OmitInferValue<T, R> = {
|
|
5
|
+
[K in keyof T as T extends R ? never : K]: T[K];
|
|
6
|
+
};
|
|
7
|
+
export type ValueOf<Obj> = Obj[keyof Obj];
|
|
8
|
+
export type OneOnly<Obj, Key extends keyof Obj> = {
|
|
9
|
+
[key in Exclude<keyof Obj, Key>]?: undefined;
|
|
10
|
+
} & Pick<Obj, Key>;
|
|
11
|
+
export type OneOfByKey<Obj> = {
|
|
12
|
+
[key in keyof Obj]: OneOnly<Obj, key>;
|
|
13
|
+
};
|
|
14
|
+
export type OneOf<Obj> = ValueOf<OneOfByKey<Obj>>;
|
|
15
|
+
type IsOptional<T, K extends keyof T> = {
|
|
16
|
+
[K1 in Exclude<keyof T, K>]: T[K1];
|
|
17
|
+
} & {
|
|
18
|
+
K?: T[K];
|
|
19
|
+
} extends T ? K : never;
|
|
20
|
+
export type OptionalKeys<T> = {
|
|
21
|
+
[K in keyof T]: IsOptional<T, K>;
|
|
22
|
+
}[keyof T];
|
|
23
|
+
export type SyncOrAsync<T> = T | Promise<T>;
|
|
24
|
+
export {};
|
package/lib/types/Port.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { AsyncContext } from "../store/AsyncRowStore";
|
|
2
|
-
import { EntityDict } from "./Entity";
|
|
3
|
-
export type Exportation<ED extends EntityDict, T extends keyof ED, K extends string, Cxt extends AsyncContext<ED>> = {
|
|
4
|
-
name: string;
|
|
5
|
-
id: string;
|
|
6
|
-
entity: T;
|
|
7
|
-
projection: ED[T]['Selection']['data'];
|
|
8
|
-
headers?: K[];
|
|
9
|
-
makeHeaders?: (dataList: Partial<ED[T]['Schema']>[]) => string[];
|
|
10
|
-
fn: (data: ED[T]['Schema'], context?: Cxt, properties?: Record<string, any>) => Promise<Partial<Record<string, string | number | boolean | null>>> | Partial<Record<string, string | number | boolean | null>>;
|
|
11
|
-
};
|
|
12
|
-
export type Importation<ED extends EntityDict, T extends keyof ED, K extends string, Cxt extends AsyncContext<ED>> = {
|
|
13
|
-
name: string;
|
|
14
|
-
id: string;
|
|
15
|
-
entity: T;
|
|
16
|
-
headers: K[];
|
|
17
|
-
fn: (data: Partial<Record<K, string | number | boolean>>[], context: Cxt, option?: Record<string, any>) => Promise<ED[T]['CreateMulti']['data']>;
|
|
18
|
-
};
|
|
1
|
+
import { AsyncContext } from "../store/AsyncRowStore";
|
|
2
|
+
import { EntityDict } from "./Entity";
|
|
3
|
+
export type Exportation<ED extends EntityDict, T extends keyof ED, K extends string, Cxt extends AsyncContext<ED>> = {
|
|
4
|
+
name: string;
|
|
5
|
+
id: string;
|
|
6
|
+
entity: T;
|
|
7
|
+
projection: ED[T]['Selection']['data'];
|
|
8
|
+
headers?: K[];
|
|
9
|
+
makeHeaders?: (dataList: Partial<ED[T]['Schema']>[]) => string[];
|
|
10
|
+
fn: (data: ED[T]['Schema'], context?: Cxt, properties?: Record<string, any>) => Promise<Partial<Record<string, string | number | boolean | null>>> | Partial<Record<string, string | number | boolean | null>>;
|
|
11
|
+
};
|
|
12
|
+
export type Importation<ED extends EntityDict, T extends keyof ED, K extends string, Cxt extends AsyncContext<ED>> = {
|
|
13
|
+
name: string;
|
|
14
|
+
id: string;
|
|
15
|
+
entity: T;
|
|
16
|
+
headers: K[];
|
|
17
|
+
fn: (data: Partial<Record<K, string | number | boolean>>[], context: Cxt, option?: Record<string, any>) => Promise<ED[T]['CreateMulti']['data']>;
|
|
18
|
+
};
|
package/lib/types/RowStore.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { OperationResult, EntityDict } from './Entity';
|
|
2
|
-
import { StorageSchema } from './Storage';
|
|
3
|
-
import { AsyncContext } from '../store/AsyncRowStore';
|
|
4
|
-
import { SyncContext } from '../store/SyncRowStore';
|
|
5
|
-
export type TxnOption = {
|
|
6
|
-
isolationLevel: 'repeatable read' | 'serializable';
|
|
7
|
-
};
|
|
8
|
-
export type SelectionRewriter<ED extends EntityDict, Cxt extends AsyncContext<ED> | SyncContext<ED>> = (schema: StorageSchema<ED>, entity: keyof ED, selection: ED[keyof ED]['Selection'], context: Cxt) => void | Promise<void>;
|
|
9
|
-
export type OperationRewriter<ED extends EntityDict, Cxt extends AsyncContext<ED> | SyncContext<ED>> = (schema: StorageSchema<ED>, entity: keyof ED, operate: ED[keyof ED]['Operation'], context: Cxt) => void | Promise<void>;
|
|
10
|
-
export declare abstract class RowStore<ED extends EntityDict> {
|
|
11
|
-
protected storageSchema: StorageSchema<ED>;
|
|
12
|
-
constructor(storageSchema: StorageSchema<ED>);
|
|
13
|
-
abstract registerOperationRewriter(rewriter: OperationRewriter<ED, AsyncContext<ED> | SyncContext<ED>>): void;
|
|
14
|
-
abstract registerSelectionRewriter(rewriter: SelectionRewriter<ED, AsyncContext<ED> | SyncContext<ED>>): void;
|
|
15
|
-
getSchema(): StorageSchema<ED>;
|
|
16
|
-
mergeOperationResult(result: OperationResult<ED>, toBeMerged: OperationResult<ED>): void;
|
|
17
|
-
mergeMultipleResults(toBeMerged: OperationResult<ED>[]): OperationResult<ED>;
|
|
18
|
-
}
|
|
1
|
+
import { OperationResult, EntityDict } from './Entity';
|
|
2
|
+
import { StorageSchema } from './Storage';
|
|
3
|
+
import { AsyncContext } from '../store/AsyncRowStore';
|
|
4
|
+
import { SyncContext } from '../store/SyncRowStore';
|
|
5
|
+
export type TxnOption = {
|
|
6
|
+
isolationLevel: 'repeatable read' | 'serializable';
|
|
7
|
+
};
|
|
8
|
+
export type SelectionRewriter<ED extends EntityDict, Cxt extends AsyncContext<ED> | SyncContext<ED>> = (schema: StorageSchema<ED>, entity: keyof ED, selection: ED[keyof ED]['Selection'], context: Cxt) => void | Promise<void>;
|
|
9
|
+
export type OperationRewriter<ED extends EntityDict, Cxt extends AsyncContext<ED> | SyncContext<ED>> = (schema: StorageSchema<ED>, entity: keyof ED, operate: ED[keyof ED]['Operation'], context: Cxt) => void | Promise<void>;
|
|
10
|
+
export declare abstract class RowStore<ED extends EntityDict> {
|
|
11
|
+
protected storageSchema: StorageSchema<ED>;
|
|
12
|
+
constructor(storageSchema: StorageSchema<ED>);
|
|
13
|
+
abstract registerOperationRewriter(rewriter: OperationRewriter<ED, AsyncContext<ED> | SyncContext<ED>>): void;
|
|
14
|
+
abstract registerSelectionRewriter(rewriter: SelectionRewriter<ED, AsyncContext<ED> | SyncContext<ED>>): void;
|
|
15
|
+
getSchema(): StorageSchema<ED>;
|
|
16
|
+
mergeOperationResult(result: OperationResult<ED>, toBeMerged: OperationResult<ED>): void;
|
|
17
|
+
mergeMultipleResults(toBeMerged: OperationResult<ED>[]): OperationResult<ED>;
|
|
18
|
+
}
|
package/lib/types/RowStore.js
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RowStore = void 0;
|
|
4
|
-
const lodash_1 = require("../utils/lodash");
|
|
5
|
-
class RowStore {
|
|
6
|
-
storageSchema;
|
|
7
|
-
constructor(storageSchema) {
|
|
8
|
-
this.storageSchema = storageSchema;
|
|
9
|
-
}
|
|
10
|
-
getSchema() {
|
|
11
|
-
return this.storageSchema;
|
|
12
|
-
}
|
|
13
|
-
mergeOperationResult(result, toBeMerged) {
|
|
14
|
-
for (const entity in toBeMerged) {
|
|
15
|
-
for (const action in toBeMerged[entity]) {
|
|
16
|
-
const value = (0, lodash_1.get)(result, `${entity}.${action}`);
|
|
17
|
-
if (typeof value === 'number') {
|
|
18
|
-
(0, lodash_1.set)(result, `${entity}.${action}`, value + toBeMerged[entity][action]);
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
(0, lodash_1.set)(result, `${entity}.${action}`, toBeMerged[entity][action]);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
mergeMultipleResults(toBeMerged) {
|
|
27
|
-
const result = {};
|
|
28
|
-
toBeMerged.forEach(ele => this.mergeOperationResult(result, ele));
|
|
29
|
-
return result;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
exports.RowStore = RowStore;
|
|
33
|
-
;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RowStore = void 0;
|
|
4
|
+
const lodash_1 = require("../utils/lodash");
|
|
5
|
+
class RowStore {
|
|
6
|
+
storageSchema;
|
|
7
|
+
constructor(storageSchema) {
|
|
8
|
+
this.storageSchema = storageSchema;
|
|
9
|
+
}
|
|
10
|
+
getSchema() {
|
|
11
|
+
return this.storageSchema;
|
|
12
|
+
}
|
|
13
|
+
mergeOperationResult(result, toBeMerged) {
|
|
14
|
+
for (const entity in toBeMerged) {
|
|
15
|
+
for (const action in toBeMerged[entity]) {
|
|
16
|
+
const value = (0, lodash_1.get)(result, `${entity}.${action}`);
|
|
17
|
+
if (typeof value === 'number') {
|
|
18
|
+
(0, lodash_1.set)(result, `${entity}.${action}`, value + toBeMerged[entity][action]);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
(0, lodash_1.set)(result, `${entity}.${action}`, toBeMerged[entity][action]);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
mergeMultipleResults(toBeMerged) {
|
|
27
|
+
const result = {};
|
|
28
|
+
toBeMerged.forEach(ele => this.mergeOperationResult(result, ele));
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.RowStore = RowStore;
|
|
33
|
+
;
|
package/lib/types/Storage.d.ts
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import { ActionType } from '.';
|
|
2
|
-
import { EntityDict, EntityShape, InstinctiveAttributes } from './Entity';
|
|
3
|
-
import { DataType, DataTypeParams } from './schema/DataTypes';
|
|
4
|
-
export type Ref = 'ref';
|
|
5
|
-
export interface Column<SH extends EntityShape> {
|
|
6
|
-
name: keyof SH | `${string}State`;
|
|
7
|
-
size?: number;
|
|
8
|
-
direction?: 'ASC' | 'DESC';
|
|
9
|
-
}
|
|
10
|
-
export interface IndexConfig {
|
|
11
|
-
unique?: boolean;
|
|
12
|
-
type?: 'fulltext' | 'btree' | 'hash' | 'spatial';
|
|
13
|
-
parser?: 'ngram';
|
|
14
|
-
}
|
|
15
|
-
export interface Index<SH extends EntityShape> {
|
|
16
|
-
name: string;
|
|
17
|
-
attributes: Column<SH>[];
|
|
18
|
-
config?: IndexConfig;
|
|
19
|
-
}
|
|
20
|
-
export interface Attribute {
|
|
21
|
-
type: DataType | Ref;
|
|
22
|
-
params?: DataTypeParams;
|
|
23
|
-
ref?: string | string[];
|
|
24
|
-
onRefDelete?: 'delete' | 'setNull' | 'ignore';
|
|
25
|
-
default?: string | number | boolean;
|
|
26
|
-
notNull?: boolean;
|
|
27
|
-
unique?: boolean;
|
|
28
|
-
sequenceStart?: number;
|
|
29
|
-
enumeration?: string[];
|
|
30
|
-
}
|
|
31
|
-
export type Attributes<SH extends EntityShape> = Omit<{
|
|
32
|
-
[attrName in keyof SH]: Attribute;
|
|
33
|
-
}, InstinctiveAttributes>;
|
|
34
|
-
export interface EntityConfig {
|
|
35
|
-
}
|
|
36
|
-
export type UniqConstraint<SH extends EntityShape> = {
|
|
37
|
-
attributes: Array<keyof SH>;
|
|
38
|
-
type?: string;
|
|
39
|
-
};
|
|
40
|
-
export interface StorageDesc<SH extends EntityShape> {
|
|
41
|
-
storageName?: string;
|
|
42
|
-
comment?: string;
|
|
43
|
-
attributes: Attributes<SH>;
|
|
44
|
-
uniqueConstraints?: UniqConstraint<SH>[];
|
|
45
|
-
indexes?: Index<SH>[];
|
|
46
|
-
config?: EntityConfig;
|
|
47
|
-
toModi?: true;
|
|
48
|
-
inModi?: true;
|
|
49
|
-
static?: true;
|
|
50
|
-
actions: string[];
|
|
51
|
-
actionType: ActionType;
|
|
52
|
-
relation?: string[];
|
|
53
|
-
view?: true;
|
|
54
|
-
recursiveDepth?: number;
|
|
55
|
-
}
|
|
56
|
-
export type StorageSchema<ED extends EntityDict> = {
|
|
57
|
-
[K in keyof ED]: StorageDesc<ED[K]['OpSchema']>;
|
|
58
|
-
};
|
|
1
|
+
import { ActionType } from '.';
|
|
2
|
+
import { EntityDict, EntityShape, InstinctiveAttributes } from './Entity';
|
|
3
|
+
import { DataType, DataTypeParams } from './schema/DataTypes';
|
|
4
|
+
export type Ref = 'ref';
|
|
5
|
+
export interface Column<SH extends EntityShape> {
|
|
6
|
+
name: keyof SH | `${string}State`;
|
|
7
|
+
size?: number;
|
|
8
|
+
direction?: 'ASC' | 'DESC';
|
|
9
|
+
}
|
|
10
|
+
export interface IndexConfig {
|
|
11
|
+
unique?: boolean;
|
|
12
|
+
type?: 'fulltext' | 'btree' | 'hash' | 'spatial';
|
|
13
|
+
parser?: 'ngram';
|
|
14
|
+
}
|
|
15
|
+
export interface Index<SH extends EntityShape> {
|
|
16
|
+
name: string;
|
|
17
|
+
attributes: Column<SH>[];
|
|
18
|
+
config?: IndexConfig;
|
|
19
|
+
}
|
|
20
|
+
export interface Attribute {
|
|
21
|
+
type: DataType | Ref;
|
|
22
|
+
params?: DataTypeParams;
|
|
23
|
+
ref?: string | string[];
|
|
24
|
+
onRefDelete?: 'delete' | 'setNull' | 'ignore';
|
|
25
|
+
default?: string | number | boolean;
|
|
26
|
+
notNull?: boolean;
|
|
27
|
+
unique?: boolean;
|
|
28
|
+
sequenceStart?: number;
|
|
29
|
+
enumeration?: string[];
|
|
30
|
+
}
|
|
31
|
+
export type Attributes<SH extends EntityShape> = Omit<{
|
|
32
|
+
[attrName in keyof SH]: Attribute;
|
|
33
|
+
}, InstinctiveAttributes>;
|
|
34
|
+
export interface EntityConfig {
|
|
35
|
+
}
|
|
36
|
+
export type UniqConstraint<SH extends EntityShape> = {
|
|
37
|
+
attributes: Array<keyof SH>;
|
|
38
|
+
type?: string;
|
|
39
|
+
};
|
|
40
|
+
export interface StorageDesc<SH extends EntityShape> {
|
|
41
|
+
storageName?: string;
|
|
42
|
+
comment?: string;
|
|
43
|
+
attributes: Attributes<SH>;
|
|
44
|
+
uniqueConstraints?: UniqConstraint<SH>[];
|
|
45
|
+
indexes?: Index<SH>[];
|
|
46
|
+
config?: EntityConfig;
|
|
47
|
+
toModi?: true;
|
|
48
|
+
inModi?: true;
|
|
49
|
+
static?: true;
|
|
50
|
+
actions: string[];
|
|
51
|
+
actionType: ActionType;
|
|
52
|
+
relation?: string[];
|
|
53
|
+
view?: true;
|
|
54
|
+
recursiveDepth?: number;
|
|
55
|
+
}
|
|
56
|
+
export type StorageSchema<ED extends EntityDict> = {
|
|
57
|
+
[K in keyof ED]: StorageDesc<ED[K]['OpSchema']>;
|
|
58
|
+
};
|
package/lib/types/Style.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { EntityDict } from './Entity';
|
|
2
|
-
import { EntityDict as BaseEntityDict } from '../base-app-domain';
|
|
3
|
-
type ThemeColor = 'default' | 'success' | 'warning' | 'error' | 'primary' | 'danger';
|
|
4
|
-
export type ColorDict<ED extends BaseEntityDict & EntityDict> = {
|
|
5
|
-
[T in keyof ED]?: {
|
|
6
|
-
[A in keyof ED[T]['OpSchema']]?: {
|
|
7
|
-
[E in ED[T]['OpSchema'][A]]?: ThemeColor | `#${string}`;
|
|
8
|
-
};
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
export {};
|
|
1
|
+
import { EntityDict } from './Entity';
|
|
2
|
+
import { EntityDict as BaseEntityDict } from '../base-app-domain';
|
|
3
|
+
type ThemeColor = 'default' | 'success' | 'warning' | 'error' | 'primary' | 'danger';
|
|
4
|
+
export type ColorDict<ED extends BaseEntityDict & EntityDict> = {
|
|
5
|
+
[T in keyof ED]?: {
|
|
6
|
+
[A in keyof ED[T]['OpSchema']]?: {
|
|
7
|
+
[E in ED[T]['OpSchema'][A]]?: ThemeColor | `#${string}`;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export {};
|
package/lib/types/Timer.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { RecurrenceRule, RecurrenceSpecDateRange, RecurrenceSpecObjLit } from 'node-schedule';
|
|
2
|
-
import { EntityDict } from './Entity';
|
|
3
|
-
import { AsyncContext } from '../store/AsyncRowStore';
|
|
4
|
-
type RoutineFn<ED extends EntityDict, Cxt extends AsyncContext<ED>> = (context: Cxt) => Promise<string>;
|
|
5
|
-
export type Routine<ED extends EntityDict, Cxt extends AsyncContext<ED>> = {
|
|
6
|
-
name: string;
|
|
7
|
-
fn: RoutineFn<ED, Cxt>;
|
|
8
|
-
};
|
|
9
|
-
export type Timer<ED extends EntityDict, Cxt extends AsyncContext<ED>> = {
|
|
10
|
-
name: string;
|
|
11
|
-
cron: RecurrenceRule | RecurrenceSpecDateRange | RecurrenceSpecObjLit | Date | string | number;
|
|
12
|
-
fn: RoutineFn<ED, Cxt>;
|
|
13
|
-
};
|
|
14
|
-
export {};
|
|
1
|
+
import { RecurrenceRule, RecurrenceSpecDateRange, RecurrenceSpecObjLit } from 'node-schedule';
|
|
2
|
+
import { EntityDict } from './Entity';
|
|
3
|
+
import { AsyncContext } from '../store/AsyncRowStore';
|
|
4
|
+
type RoutineFn<ED extends EntityDict, Cxt extends AsyncContext<ED>> = (context: Cxt) => Promise<string>;
|
|
5
|
+
export type Routine<ED extends EntityDict, Cxt extends AsyncContext<ED>> = {
|
|
6
|
+
name: string;
|
|
7
|
+
fn: RoutineFn<ED, Cxt>;
|
|
8
|
+
};
|
|
9
|
+
export type Timer<ED extends EntityDict, Cxt extends AsyncContext<ED>> = {
|
|
10
|
+
name: string;
|
|
11
|
+
cron: RecurrenceRule | RecurrenceSpecDateRange | RecurrenceSpecObjLit | Date | string | number;
|
|
12
|
+
fn: RoutineFn<ED, Cxt>;
|
|
13
|
+
};
|
|
14
|
+
export {};
|