@rentman/rm-core 7.2.0 → 8.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/changelog.md +6 -0
- package/dist/rm-core.js +1167 -915
- package/dist/rm-core.min.js +2 -2
- package/dist/types/classes/ApiFormatter.d.ts +16 -15
- package/dist/types/classes/ApiRequestService.d.ts +9 -8
- package/dist/types/classes/ApiResponseProcessor.d.ts +12 -13
- package/dist/types/classes/ChangesCompilation.d.ts +5 -3
- package/dist/types/classes/ChangesDelta.d.ts +5 -4
- package/dist/types/classes/ChangesDeltaBase.d.ts +5 -5
- package/dist/types/classes/CollectionEntryService.d.ts +5 -4
- package/dist/types/classes/CollectionMatcherBase.d.ts +5 -4
- package/dist/types/classes/CollectionMatcherCachedCollectionProcessor.d.ts +6 -5
- package/dist/types/classes/CollectionResourceService.d.ts +2 -2
- package/dist/types/classes/ColumnCache.d.ts +8 -7
- package/dist/types/classes/ColumnExpansion.d.ts +3 -2
- package/dist/types/classes/ColumnHandler.d.ts +9 -8
- package/dist/types/classes/ColumnInfo.d.ts +6 -6
- package/dist/types/classes/ColumnSet.d.ts +5 -4
- package/dist/types/classes/ColumnSubsetCache.d.ts +3 -2
- package/dist/types/classes/ColumnUtil.d.ts +12 -11
- package/dist/types/classes/ConversionMapService.d.ts +6 -5
- package/dist/types/classes/CreateRequest.d.ts +5 -4
- package/dist/types/classes/CreatedChangesDelta.d.ts +7 -6
- package/dist/types/classes/InternalChangesDelta.d.ts +4 -3
- package/dist/types/classes/ItemCache.d.ts +13 -12
- package/dist/types/classes/ItemCreateService.d.ts +5 -4
- package/dist/types/classes/ItemEntryService.d.ts +8 -7
- package/dist/types/classes/KeyService.d.ts +7 -6
- package/dist/types/classes/LockService.d.ts +11 -11
- package/dist/types/classes/ModuleChangesCompilation.d.ts +3 -2
- package/dist/types/classes/QueryColumnExtractor.d.ts +11 -11
- package/dist/types/classes/QueryContainsLocalIdParser.d.ts +10 -10
- package/dist/types/classes/QueryLinkedToParser.d.ts +11 -11
- package/dist/types/classes/QueryLocallyMatchableParser.d.ts +10 -10
- package/dist/types/classes/QueryMatcher.d.ts +4 -3
- package/dist/types/classes/QueryParser.d.ts +15 -13
- package/dist/types/classes/QueryParserBase.d.ts +14 -23
- package/dist/types/classes/QueryParserIdUpdater.d.ts +10 -10
- package/dist/types/classes/QueryService.d.ts +4 -9
- package/dist/types/classes/RequestBuffer.d.ts +5 -4
- package/dist/types/classes/RequestBufferManager.d.ts +5 -4
- package/dist/types/classes/RequestColumnExpansion.d.ts +4 -3
- package/dist/types/classes/SocketMessageHandler.d.ts +4 -3
- package/dist/types/classes/TemplateCache.d.ts +4 -3
- package/dist/types/classes/Util.d.ts +1 -1
- package/dist/types/classes/cache/AbstractCache.d.ts +8 -8
- package/dist/types/classes/cache/CachedQueryHandlerBase.d.ts +13 -12
- package/dist/types/classes/cache/CollectionMatcherCachedQueryProcessor.d.ts +6 -5
- package/dist/types/classes/cache/ItemHandlerBase.d.ts +14 -11
- package/dist/types/classes/cache/server/ServerCache.d.ts +8 -7
- package/dist/types/classes/cache/server/ServerCachedQueryHandler.d.ts +6 -6
- package/dist/types/classes/cache/server/ServerItemHandler.d.ts +10 -9
- package/dist/types/classes/cache/transaction/TransactionCache.d.ts +31 -30
- package/dist/types/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +6 -6
- package/dist/types/classes/cache/transaction/TransactionCollectionHandler.d.ts +3 -2
- package/dist/types/classes/cache/transaction/TransactionItemHandler.d.ts +23 -20
- package/dist/types/classes/cache/transaction/TransactionValidator.d.ts +3 -2
- package/dist/types/constants.d.ts +1 -1
- package/dist/types/factories/CollectionEntryFactory.d.ts +2 -2
- package/dist/types/factories/CollectionMatcherFactory.d.ts +4 -4
- package/dist/types/factories/CollectionResourceFactory.d.ts +2 -2
- package/dist/types/factories/ColumnExpansionFactory.d.ts +3 -2
- package/dist/types/factories/ColumnInfoFactory.d.ts +4 -3
- package/dist/types/factories/ColumnSetFactory.d.ts +6 -5
- package/dist/types/factories/ColumnSubsetCacheFactory.d.ts +3 -2
- package/dist/types/factories/CreateRequestFactory.d.ts +2 -2
- package/dist/types/factories/ItemEntryFactory.d.ts +2 -2
- package/dist/types/factories/ItemResourceFactory.d.ts +2 -2
- package/dist/types/factories/QueryMatcherFactory.d.ts +3 -2
- package/dist/types/factories/TemplateFactory.d.ts +3 -2
- package/dist/types/interfaces/ApiRequestServiceInterface.d.ts +9 -8
- package/dist/types/interfaces/AuthInterface.d.ts +2 -1
- package/dist/types/interfaces/LinkTreeServiceInterface.d.ts +1 -1
- package/dist/types/models/CollectionEntry.d.ts +5 -4
- package/dist/types/models/CollectionOptions.d.ts +9 -8
- package/dist/types/models/CollectionResource.d.ts +27 -26
- package/dist/types/models/ItemEntry.d.ts +2 -2
- package/dist/types/models/ItemResource.d.ts +18 -14
- package/dist/types/models/Template.d.ts +4 -3
- package/dist/types/types/ItemTypesCollection.d.ts +138 -55
- package/package.json +5 -3
|
@@ -1,25 +1,24 @@
|
|
|
1
|
+
import { ApiEnumItemType, ApiFields } from '@rentman/backend-types';
|
|
1
2
|
import { TransactionCache } from '../classes';
|
|
2
3
|
import { ItemResourceFactory } from '../factories';
|
|
3
4
|
import { ItemEntry } from '../models';
|
|
4
|
-
import {
|
|
5
|
-
export declare class ItemResource<ItemTypeType extends
|
|
5
|
+
import { EntryParentNull, ExtractApiItemType, FieldMap, PromiseInterface, ResponseColumnMap } from '../types';
|
|
6
|
+
export declare class ItemResource<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> {
|
|
6
7
|
protected readonly factory: ItemResourceFactory;
|
|
7
8
|
readonly entry: ItemEntry<ItemTypeType>;
|
|
8
9
|
protected readonly _isNew: boolean;
|
|
9
10
|
protected readonly transaction: TransactionCache;
|
|
10
|
-
columns:
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
fields: FieldMap<ItemTypeType, Fields>;
|
|
14
|
-
initial: Readonly<FieldMap<ItemTypeType, Fields>>;
|
|
11
|
+
columns: ResponseColumnMap<ItemTypeType, ColumnIds>;
|
|
12
|
+
fields: FieldMap<ItemTypeType, ColumnIds>;
|
|
13
|
+
initial: Readonly<FieldMap<ItemTypeType, ColumnIds>>;
|
|
15
14
|
constructor(factory: ItemResourceFactory, entry: ItemEntry<ItemTypeType>, _isNew: boolean, transaction: TransactionCache);
|
|
16
15
|
onConstruct(): void;
|
|
17
16
|
/**
|
|
18
17
|
* @description
|
|
19
18
|
* Updates the fields of the item and calls onChange, when updating many fields of many items it's better to create a {@link ChangesDelta ChangesDelta} yourself so all changes can be applied at once
|
|
20
19
|
*/
|
|
21
|
-
setFields(values: Partial<
|
|
22
|
-
copyFields(destination?: FieldMap<ItemTypeType>):
|
|
20
|
+
setFields(values: Partial<FieldMap<ItemTypeType, ColumnIds>>): PromiseInterface<this>;
|
|
21
|
+
copyFields(destination?: FieldMap<ItemTypeType, []>): FieldMap<ItemTypeType, ColumnIds>;
|
|
23
22
|
/**
|
|
24
23
|
* Fetches the ItemResource's parent with the current fields
|
|
25
24
|
*
|
|
@@ -33,7 +32,7 @@ export declare class ItemResource<ItemTypeType extends ItemType = any, Fields ex
|
|
|
33
32
|
* @deprecated
|
|
34
33
|
* Use {@link TransactionCache.applyChangesDelta transaction.applyChangesDelta} instead
|
|
35
34
|
*/
|
|
36
|
-
callOnChange(previous:
|
|
35
|
+
callOnChange(previous: FieldMap<ItemTypeType, ColumnIds>): void;
|
|
37
36
|
/**
|
|
38
37
|
* @description
|
|
39
38
|
* Utility function to easily check if a field is changed.
|
|
@@ -50,7 +49,7 @@ export declare class ItemResource<ItemTypeType extends ItemType = any, Fields ex
|
|
|
50
49
|
* }
|
|
51
50
|
* }
|
|
52
51
|
*/
|
|
53
|
-
compareItemField(columnId:
|
|
52
|
+
compareItemField(columnId: ColumnIds[number], previous: FieldMap<ItemTypeType, ColumnIds>): boolean;
|
|
54
53
|
hasChanges(): boolean;
|
|
55
54
|
setTransactionParameters(parameters: any): void;
|
|
56
55
|
/**
|
|
@@ -61,7 +60,7 @@ export declare class ItemResource<ItemTypeType extends ItemType = any, Fields ex
|
|
|
61
60
|
isLocal(): boolean;
|
|
62
61
|
toJSON(): {
|
|
63
62
|
columns: string[];
|
|
64
|
-
fields:
|
|
63
|
+
fields: FieldMap<ItemTypeType, ColumnIds>;
|
|
65
64
|
entry: ItemEntry<ItemTypeType>;
|
|
66
65
|
};
|
|
67
66
|
/**
|
|
@@ -70,7 +69,10 @@ export declare class ItemResource<ItemTypeType extends ItemType = any, Fields ex
|
|
|
70
69
|
*
|
|
71
70
|
* @param columnPath Can either be an array of columnIds (['column', 'column2']) or a config column string ('column>column2')
|
|
72
71
|
*/
|
|
73
|
-
getDerivedValue<
|
|
72
|
+
getDerivedValue<T1 extends string>(columnPath: T1): any | undefined;
|
|
73
|
+
getDerivedValue<T1 extends ColumnIds[number]>(columnPath: [T1]): FieldMap<ItemTypeType>[T1] | undefined;
|
|
74
|
+
getDerivedValue<T1 extends ColumnIds[number], T2 extends keyof ApiFields[ExtractApiItemType<ApiFields[ItemTypeType][T1]>]>(columnPath: [T1, T2]): FieldMap<ExtractApiItemType<ApiFields[ItemTypeType][T1]>>[T2] | undefined;
|
|
75
|
+
getDerivedValue<T1 extends ColumnIds[number], T2 extends keyof ApiFields[ExtractApiItemType<ApiFields[ItemTypeType][T1]>], T3 extends keyof ApiFields[ExtractApiItemType<ApiFields[ExtractApiItemType<ApiFields[ItemTypeType][T1]>][T2]>]>(columnPath: [T1, T2, T3]): FieldMap<ExtractApiItemType<ApiFields[ExtractApiItemType<ApiFields[ItemTypeType][T1]>][T2]>>[T3] | undefined;
|
|
74
76
|
/**
|
|
75
77
|
* @description
|
|
76
78
|
* Traverses the column path and returns the fields of the derived item, returns undefined if the item isn't found
|
|
@@ -80,5 +82,7 @@ export declare class ItemResource<ItemTypeType extends ItemType = any, Fields ex
|
|
|
80
82
|
* @remark
|
|
81
83
|
* Assumes the derived item's values are already cached
|
|
82
84
|
*/
|
|
83
|
-
getDerivedValues<
|
|
85
|
+
getDerivedValues<T1 extends ColumnIds[number]>(columnPath: [T1]): FieldMap<ExtractApiItemType<ApiFields[ItemTypeType][T1]>> | undefined;
|
|
86
|
+
getDerivedValues<T1 extends ColumnIds[number], T2 extends keyof ApiFields[ExtractApiItemType<ApiFields[ItemTypeType][T1]>]>(columnPath: [T1, T2]): FieldMap<ExtractApiItemType<ApiFields[ExtractApiItemType<ApiFields[ItemTypeType][T1]>][T2]>> | undefined;
|
|
87
|
+
getDerivedValues<T1 extends ColumnIds[number], T2 extends keyof ApiFields[ExtractApiItemType<ApiFields[ItemTypeType][T1]>], T3 extends keyof ApiFields[ExtractApiItemType<ApiFields[ExtractApiItemType<ApiFields[ItemTypeType][T1]>][T2]>]>(columnPath: [T1, T2, T3]): FieldMap<ExtractApiItemType<ApiFields[ExtractApiItemType<ApiFields[ExtractApiItemType<ApiFields[ItemTypeType][T1]>][T2]>]>> | undefined;
|
|
84
88
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { ApiEnumItemType, ApiFields } from '@rentman/backend-types';
|
|
1
2
|
import { ColumnSet } from '../classes';
|
|
2
3
|
import { TemplateFactory } from '../factories';
|
|
3
|
-
import { ApiRequestColumnMap, ApiResponse,
|
|
4
|
-
export declare class Template<ItemTypeType extends
|
|
4
|
+
import { ApiRequestColumnMap, ApiResponse, FieldMap, ResponseColumnItemTypeMap } from '../types';
|
|
5
|
+
export declare class Template<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any> {
|
|
5
6
|
itemType: ItemTypeType;
|
|
6
7
|
response: ApiResponse;
|
|
7
8
|
responseColumns: ResponseColumnItemTypeMap;
|
|
8
9
|
columns: ColumnSet<ItemTypeType>;
|
|
9
10
|
constructor(factory: TemplateFactory, itemType: ItemTypeType, response: ApiResponse, additionalRequestColumns: ApiRequestColumnMap, additionalResponseColumns: ResponseColumnItemTypeMap);
|
|
10
|
-
getFields(): FieldMap<ItemTypeType,
|
|
11
|
+
getFields(): FieldMap<ItemTypeType, ColumnIds>;
|
|
11
12
|
}
|
|
@@ -1,26 +1,89 @@
|
|
|
1
|
+
import { ApiEnumApiType, ApiEnumApiTypeTsTypeMapping, ApiEnumItemType, ApiFields, ApiQuery as BackendApiQuery, ApiQueryConditionComparator as BackendTypesApiQueryConditionComparator, ApiQueryConditionComparatorShort as BackendApiQueryConditionComparatorShort, ApiQueryConditionCustom, ApiQueryConditionIn, ApiQueryConditionInShort, ApiQueryConditionLinkedTo, ApiQueryConditionSearch, ApiQueryConditionSubQuery, GetColumnType, ItemId } from '@rentman/backend-types';
|
|
2
|
+
import moment from 'moment';
|
|
1
3
|
import { ApiResponseProcessor, ColumnSet, RequestColumnExpansion } from '../classes';
|
|
2
4
|
import { CollectionResource, ItemEntry, ItemEntryOptionsInterface, ItemResource } from '../models';
|
|
3
5
|
import { CollectionOptions } from '../models/CollectionOptions';
|
|
6
|
+
export declare type ApiEnumApiTypeToTsTypeMap = {
|
|
7
|
+
[ApiEnumApiType.TYPE_TOKEN]: string;
|
|
8
|
+
[ApiEnumApiType.TYPE_ID]: number;
|
|
9
|
+
[ApiEnumApiType.TYPE_ORDER]: number;
|
|
10
|
+
[ApiEnumApiType.TYPE_PARENTID]: number;
|
|
11
|
+
[ApiEnumApiType.TYPE_PARENTTYPE]: ApiEnumItemType;
|
|
12
|
+
[ApiEnumApiType.TYPE_ITEMID]: number;
|
|
13
|
+
[ApiEnumApiType.TYPE_ITEMTYPE]: ApiEnumItemType;
|
|
14
|
+
[ApiEnumApiType.TYPE_PASSWORD]: string;
|
|
15
|
+
[ApiEnumApiType.TYPE_IP]: string;
|
|
16
|
+
[ApiEnumApiType.TYPE_COORDINATE]: number;
|
|
17
|
+
[ApiEnumApiType.TYPE_BLOB]: string;
|
|
18
|
+
[ApiEnumApiType.TYPE_BITFLAG]: number;
|
|
19
|
+
[ApiEnumApiType.TYPE_NUMBER]: number;
|
|
20
|
+
[ApiEnumApiType.TYPE_VOLUME]: number;
|
|
21
|
+
[ApiEnumApiType.TYPE_WEIGHT]: number;
|
|
22
|
+
[ApiEnumApiType.TYPE_DISTANCE]: number;
|
|
23
|
+
[ApiEnumApiType.TYPE_DIMENSION]: number;
|
|
24
|
+
[ApiEnumApiType.TYPE_QUANTITY]: number;
|
|
25
|
+
[ApiEnumApiType.TYPE_POWER]: number;
|
|
26
|
+
[ApiEnumApiType.TYPE_CURRENT]: number;
|
|
27
|
+
[ApiEnumApiType.TYPE_DOUBLE]: number;
|
|
28
|
+
[ApiEnumApiType.TYPE_PRICE]: number;
|
|
29
|
+
[ApiEnumApiType.TYPE_BOOL]: boolean;
|
|
30
|
+
[ApiEnumApiType.TYPE_INT]: number;
|
|
31
|
+
[ApiEnumApiType.TYPE_EMAIL]: string;
|
|
32
|
+
[ApiEnumApiType.TYPE_PHONE]: string;
|
|
33
|
+
[ApiEnumApiType.TYPE_URL]: string;
|
|
34
|
+
[ApiEnumApiType.TYPE_PERCENTAGE]: number;
|
|
35
|
+
[ApiEnumApiType.TYPE_TEXT]: string;
|
|
36
|
+
[ApiEnumApiType.TYPE_LONGTEXT]: string;
|
|
37
|
+
[ApiEnumApiType.TYPE_HTML]: string;
|
|
38
|
+
[ApiEnumApiType.TYPE_DATE]: moment.Moment;
|
|
39
|
+
[ApiEnumApiType.TYPE_DATETIME]: moment.Moment;
|
|
40
|
+
[ApiEnumApiType.TYPE_DURATION]: moment.Duration;
|
|
41
|
+
[ApiEnumApiType.TYPE_ITEM]: number;
|
|
42
|
+
[ApiEnumApiType.TYPE_LINK]: number;
|
|
43
|
+
[ApiEnumApiType.TYPE_CHILD]: number;
|
|
44
|
+
[ApiEnumApiType.TYPE_SIBLING]: number;
|
|
45
|
+
[ApiEnumApiType.TYPE_JSON]: any;
|
|
46
|
+
[ApiEnumApiType.TYPE_ENUM]: string;
|
|
47
|
+
[ApiEnumApiType.TYPE_COUNTRY]: string;
|
|
48
|
+
[ApiEnumApiType.TYPE_COLOR]: string;
|
|
49
|
+
[ApiEnumApiType.TYPE_TEXTREPLACE]: string;
|
|
50
|
+
[ApiEnumApiType.TYPE_FILESIZE]: number;
|
|
51
|
+
[ApiEnumApiType.TYPE_ICON]: string;
|
|
52
|
+
};
|
|
4
53
|
export declare type ParentIdMap<T> = {
|
|
5
54
|
[parentId: number]: T;
|
|
6
55
|
};
|
|
7
|
-
export declare type EntryParent = {
|
|
8
|
-
itemType:
|
|
9
|
-
itemId:
|
|
56
|
+
export declare type EntryParent<ItemTypeType extends ApiEnumItemType = any> = {
|
|
57
|
+
itemType: ItemTypeType;
|
|
58
|
+
itemId: ItemId;
|
|
10
59
|
};
|
|
11
|
-
export declare type EntryParentNull = EntryParent | null;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
60
|
+
export declare type EntryParentNull<ItemTypeType extends ApiEnumItemType = any> = EntryParent<ItemTypeType> | null;
|
|
61
|
+
export declare type FieldMap<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> = {
|
|
62
|
+
[ColumnId in ColumnIds[number]]: GetFieldValueType<ItemTypeType, ColumnId>;
|
|
63
|
+
};
|
|
64
|
+
export declare type ExtractApiType<T> = T extends {
|
|
65
|
+
type: any;
|
|
66
|
+
} ? T['type'] : never;
|
|
67
|
+
export declare type ExtractApiEnum<T> = T extends {
|
|
68
|
+
enum: any;
|
|
69
|
+
} ? T['enum'] : never;
|
|
70
|
+
export declare type ExtractApiItemType<T> = T extends {
|
|
71
|
+
itemType: any;
|
|
72
|
+
} ? T['itemType'] : never;
|
|
73
|
+
export declare type ExtractApiNullable<T> = T extends {
|
|
74
|
+
nullable: any;
|
|
75
|
+
} ? T['nullable'] : never;
|
|
76
|
+
export declare type ExtractApiFieldType<T> = T extends {
|
|
77
|
+
type: keyof ApiEnumApiTypeToTsTypeMap;
|
|
78
|
+
} ? ApiEnumApiTypeToTsTypeMap[T['type']] : never;
|
|
79
|
+
export declare type GetFieldValueType<ItemTypeType extends ApiEnumItemType, ColumnId extends keyof ApiFields[ItemTypeType]> = ExtractApiType<ApiFields[ItemTypeType][ColumnId]> extends ApiEnumApiType.TYPE_ENUM ? keyof ExtractApiEnum<ApiFields[ItemTypeType][ColumnId]> : GetNullableValueType<ItemTypeType, ColumnId>;
|
|
80
|
+
declare type GetNullableValueType<ItemTypeType extends ApiEnumItemType, ColumnId extends keyof ApiFields[ItemTypeType]> = ExtractApiNullable<ApiFields[ItemTypeType][ColumnId]> extends false ? ExtractApiFieldType<ApiFields[ItemTypeType][ColumnId]> : ExtractApiType<ApiFields[ItemTypeType][ColumnId]> extends ApiEnumApiType.TYPE_DATETIME ? ExtractApiFieldType<ApiFields[ItemTypeType][ColumnId]> : ExtractApiType<ApiFields[ItemTypeType][ColumnId]> extends ApiEnumApiType.TYPE_DATE ? ExtractApiFieldType<ApiFields[ItemTypeType][ColumnId]> : ExtractApiType<ApiFields[ItemTypeType][ColumnId]> extends ApiEnumApiType.TYPE_DURATION ? ExtractApiFieldType<ApiFields[ItemTypeType][ColumnId]> : null | ExtractApiFieldType<ApiFields[ItemTypeType][ColumnId]>;
|
|
18
81
|
export declare type ItemOptionsInterface = ItemEntryOptionsInterface;
|
|
19
|
-
export interface CollectionDefinition<ItemTypeType extends
|
|
82
|
+
export interface CollectionDefinition<ItemTypeType extends ApiEnumItemType = any> {
|
|
20
83
|
itemType: ItemTypeType;
|
|
21
84
|
options: CollectionOptions;
|
|
22
85
|
}
|
|
23
|
-
export interface LinkCollectionDefinition<ItemTypeType extends
|
|
86
|
+
export interface LinkCollectionDefinition<ItemTypeType extends ApiEnumItemType = any> extends CollectionDefinition<ItemTypeType> {
|
|
24
87
|
linkField: string;
|
|
25
88
|
}
|
|
26
89
|
export declare enum StateKeyType {
|
|
@@ -30,7 +93,7 @@ export declare enum StateKeyType {
|
|
|
30
93
|
export declare type StateKey = {
|
|
31
94
|
type: StateKeyType;
|
|
32
95
|
template?: string;
|
|
33
|
-
itemId?:
|
|
96
|
+
itemId?: ItemId;
|
|
34
97
|
};
|
|
35
98
|
export declare type SocketMessageType = 'event' | 'notification';
|
|
36
99
|
export interface SocketMessage {
|
|
@@ -53,14 +116,19 @@ export interface SocketMessage {
|
|
|
53
116
|
sent: string;
|
|
54
117
|
forceEvaluate: boolean;
|
|
55
118
|
};
|
|
56
|
-
body:
|
|
119
|
+
body: {
|
|
120
|
+
itemType: ApiEnumItemType;
|
|
121
|
+
eventType: string;
|
|
122
|
+
} & {
|
|
123
|
+
[key: string]: any;
|
|
124
|
+
};
|
|
57
125
|
messageType: SocketMessageType;
|
|
58
126
|
}
|
|
59
127
|
export interface SocketMessageCreate extends SocketMessage {
|
|
60
128
|
body: {
|
|
61
129
|
eventType: 'create';
|
|
62
130
|
columns: ResponseColumnItemTypeMap;
|
|
63
|
-
itemType:
|
|
131
|
+
itemType: ApiEnumItemType;
|
|
64
132
|
items: {
|
|
65
133
|
[itemType: string]: {
|
|
66
134
|
[itemId: number]: {
|
|
@@ -75,7 +143,7 @@ export interface SocketMessageUpdate extends SocketMessage {
|
|
|
75
143
|
body: {
|
|
76
144
|
eventType: 'update';
|
|
77
145
|
columns: ResponseColumnItemTypeMap;
|
|
78
|
-
itemType:
|
|
146
|
+
itemType: ApiEnumItemType;
|
|
79
147
|
items: {
|
|
80
148
|
[itemType: string]: {
|
|
81
149
|
[itemId: number]: {
|
|
@@ -90,7 +158,7 @@ export interface SocketMessageLinkTo extends SocketMessage {
|
|
|
90
158
|
body: {
|
|
91
159
|
eventType: 'linkto';
|
|
92
160
|
columns: ResponseColumnItemTypeMap;
|
|
93
|
-
itemType:
|
|
161
|
+
itemType: ApiEnumItemType;
|
|
94
162
|
items: {
|
|
95
163
|
[itemType: string]: {
|
|
96
164
|
[itemId: number]: {
|
|
@@ -104,13 +172,15 @@ export interface SocketMessageLinkTo extends SocketMessage {
|
|
|
104
172
|
export interface SocketMessageDelete extends SocketMessage {
|
|
105
173
|
body: {
|
|
106
174
|
eventType: 'delete';
|
|
107
|
-
itemType:
|
|
175
|
+
itemType: ApiEnumItemType;
|
|
108
176
|
items: ItemId[];
|
|
109
177
|
};
|
|
110
178
|
}
|
|
111
179
|
export interface FunctionChangesResolveSocketMessage extends SocketMessage {
|
|
112
180
|
body: {
|
|
113
|
-
itemType:
|
|
181
|
+
itemType: ApiEnumItemType.FunctionChangesResolve;
|
|
182
|
+
eventType: 'update';
|
|
183
|
+
} & {
|
|
114
184
|
[key: string]: any;
|
|
115
185
|
};
|
|
116
186
|
}
|
|
@@ -120,15 +190,13 @@ export declare type ItemResourceItemIdMap<T extends ItemResource = ItemResource>
|
|
|
120
190
|
export declare type ItemResourcesItemTypeMap<T extends ItemResource = ItemResource> = {
|
|
121
191
|
[itemType: string]: T[];
|
|
122
192
|
};
|
|
123
|
-
export declare type ItemId = number;
|
|
124
|
-
export declare type ItemType = string;
|
|
125
193
|
export declare type ItemMap<T> = {
|
|
126
194
|
[itemType: string]: {
|
|
127
195
|
[itemId: string]: T;
|
|
128
196
|
};
|
|
129
197
|
};
|
|
130
|
-
export declare type ItemEntryMap<ItemTypeType extends
|
|
131
|
-
export declare type ItemEntryParentIdMap<ItemTypeType extends
|
|
198
|
+
export declare type ItemEntryMap<ItemTypeType extends ApiEnumItemType = any> = ItemMap<ItemEntry<ItemTypeType>>;
|
|
199
|
+
export declare type ItemEntryParentIdMap<ItemTypeType extends ApiEnumItemType> = ParentIdMap<Array<ItemEntry<ItemTypeType>>>;
|
|
132
200
|
export declare type ConversionMap = {
|
|
133
201
|
[itemId: number]: number;
|
|
134
202
|
};
|
|
@@ -140,24 +208,23 @@ export declare type ItemError = {
|
|
|
140
208
|
message: string;
|
|
141
209
|
};
|
|
142
210
|
export declare type CollectionQuery = {
|
|
143
|
-
object:
|
|
211
|
+
object: BackendApiQuery;
|
|
144
212
|
string: string;
|
|
145
213
|
};
|
|
146
|
-
export declare type CollectionResourceParentIdMap<ItemTypeType extends
|
|
147
|
-
export declare type
|
|
148
|
-
|
|
149
|
-
[columnId: string]: ResponseColumn;
|
|
214
|
+
export declare type CollectionResourceParentIdMap<ItemTypeType extends ApiEnumItemType = any> = ParentIdMap<CollectionResource<ItemTypeType>>;
|
|
215
|
+
export declare type ResponseColumnMap<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any> = {
|
|
216
|
+
[ColumnId in ColumnIds[number]]: GetColumnType<ItemTypeType, ColumnId>;
|
|
150
217
|
};
|
|
151
218
|
export declare type ResponseColumnItemTypeMap = {
|
|
152
219
|
[itemType: string]: ResponseColumnMap;
|
|
153
220
|
};
|
|
154
|
-
export declare type ColumnExpansionResult<ItemTypeType extends
|
|
221
|
+
export declare type ColumnExpansionResult<ItemTypeType extends ApiEnumItemType = any> = {
|
|
155
222
|
merged: ColumnSet<ItemTypeType>;
|
|
156
223
|
difference: ColumnSet<ItemTypeType>;
|
|
157
224
|
};
|
|
158
|
-
export declare type RootColumnMap = {
|
|
159
|
-
[
|
|
160
|
-
apiColumn:
|
|
225
|
+
export declare type RootColumnMap<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any> = {
|
|
226
|
+
[ColumnId in ColumnIds[number]]: {
|
|
227
|
+
apiColumn: GetColumnType<ItemTypeType, ColumnId>;
|
|
161
228
|
children: RootColumnMap;
|
|
162
229
|
};
|
|
163
230
|
};
|
|
@@ -169,7 +236,6 @@ export declare type TemplateItemResourceMap<T extends ItemResource<any>> = {
|
|
|
169
236
|
export declare type ItemTypeMap<T = any> = {
|
|
170
237
|
[itemType: string]: T;
|
|
171
238
|
};
|
|
172
|
-
export declare type ApiQuery = any;
|
|
173
239
|
export declare type ApiRequestItemValues = {
|
|
174
240
|
values?: any;
|
|
175
241
|
links?: {
|
|
@@ -196,11 +262,11 @@ export declare type ApiRequestLimit = {
|
|
|
196
262
|
export declare type ApiRequestMoveItems = {
|
|
197
263
|
[itemType: string]: ItemId[];
|
|
198
264
|
};
|
|
199
|
-
export declare type CreateRequestEntry<ItemTypeType extends
|
|
265
|
+
export declare type CreateRequestEntry<ItemTypeType extends ApiEnumItemType> = {
|
|
200
266
|
request: {
|
|
201
267
|
requestType: 'create';
|
|
202
268
|
itemType?: ItemTypeType;
|
|
203
|
-
parentType?:
|
|
269
|
+
parentType?: ApiEnumItemType;
|
|
204
270
|
parentId?: {
|
|
205
271
|
[itemId: string]: ItemId;
|
|
206
272
|
};
|
|
@@ -214,12 +280,14 @@ export declare enum ApiLinkTreeType {
|
|
|
214
280
|
ITEMTABLE = "itemtable",
|
|
215
281
|
DIRECT = "direct"
|
|
216
282
|
}
|
|
217
|
-
export declare type
|
|
283
|
+
export declare type ApiLinkTreeEntryItemTable = {
|
|
218
284
|
type: ApiLinkTreeType.ITEMTABLE;
|
|
219
|
-
}
|
|
285
|
+
};
|
|
286
|
+
export declare type ApiLinkTreeEntryDirect = {
|
|
220
287
|
type: ApiLinkTreeType.DIRECT;
|
|
221
288
|
field: string;
|
|
222
289
|
};
|
|
290
|
+
export declare type ApiLinkTreeEntry = ApiLinkTreeEntryItemTable | ApiLinkTreeEntryDirect;
|
|
223
291
|
export declare type ApiLinkTree = {
|
|
224
292
|
[itemType: string]: {
|
|
225
293
|
[childType: string]: ApiLinkTreeEntry;
|
|
@@ -229,34 +297,49 @@ export declare type ApiLinkTree = {
|
|
|
229
297
|
* @description
|
|
230
298
|
* Callback to determine if an item should be included in the create delta, return `false` to exclude the item
|
|
231
299
|
*/
|
|
232
|
-
export declare type FilterItemEntryCallback
|
|
233
|
-
export declare type ModifyFieldsCallback
|
|
300
|
+
export declare type FilterItemEntryCallback<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> = (itemType: ItemTypeType, fields: FieldMap<ItemTypeType, ColumnIds>) => boolean;
|
|
301
|
+
export declare type ModifyFieldsCallback<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> = (itemType: ItemTypeType, fields: FieldMap<ItemTypeType, ColumnIds>, itemIdConversionMap?: ItemIdConversionMap) => void;
|
|
234
302
|
/**
|
|
235
303
|
* @description
|
|
236
304
|
* Returns 'false' if the field changed
|
|
237
305
|
*/
|
|
238
|
-
export declare type CompareFieldCallback<Fields extends
|
|
239
|
-
export declare type FieldChangeCallbackArgs<ItemTypeType extends
|
|
306
|
+
export declare type CompareFieldCallback<Fields extends FieldMap, T extends keyof Fields = string> = (field: T) => boolean;
|
|
307
|
+
export declare type FieldChangeCallbackArgs<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> = {
|
|
240
308
|
itemEntry: ItemEntry<ItemTypeType>;
|
|
241
|
-
compareField: CompareFieldCallback<
|
|
242
|
-
fields: FieldMap<ItemTypeType,
|
|
309
|
+
compareField: CompareFieldCallback<ColumnIds>;
|
|
310
|
+
fields: FieldMap<ItemTypeType, ColumnIds>;
|
|
243
311
|
isCalledAfterSocketUpdate: boolean;
|
|
244
|
-
previous: FieldMap<ItemTypeType,
|
|
312
|
+
previous: FieldMap<ItemTypeType, ColumnIds>;
|
|
245
313
|
};
|
|
246
|
-
export declare type FieldChangeCallback<ItemTypeType extends
|
|
314
|
+
export declare type FieldChangeCallback<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> = (args: FieldChangeCallbackArgs<ItemTypeType, ColumnIds>) => void;
|
|
247
315
|
export declare type DeregFunction = () => void;
|
|
248
|
-
export declare type OnChangeCallbackArgs<ItemTypeType extends
|
|
249
|
-
export declare type OnChangeCallback<ItemTypeType extends
|
|
250
|
-
export declare type OnAddCallbackArgs<ItemTypeType extends
|
|
251
|
-
itemResources: Array<ItemResource<ItemTypeType,
|
|
252
|
-
collectionResource: CollectionResource<ItemTypeType,
|
|
316
|
+
export declare type OnChangeCallbackArgs<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> = FieldChangeCallbackArgs<ItemTypeType, ColumnIds>;
|
|
317
|
+
export declare type OnChangeCallback<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> = FieldChangeCallback<ItemTypeType, ColumnIds>;
|
|
318
|
+
export declare type OnAddCallbackArgs<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> = {
|
|
319
|
+
itemResources: Array<ItemResource<ItemTypeType, ColumnIds>>;
|
|
320
|
+
collectionResource: CollectionResource<ItemTypeType, ColumnIds>;
|
|
253
321
|
isInitialCall: boolean;
|
|
254
322
|
isCalledAfterSocketUpdate: boolean;
|
|
255
323
|
};
|
|
256
|
-
export declare type OnAddCallback<ItemTypeType extends
|
|
257
|
-
export declare type OnRemoveCallbackArgs<ItemTypeType extends
|
|
258
|
-
itemResources: Array<ItemResource<ItemTypeType,
|
|
259
|
-
collectionResource: CollectionResource<ItemTypeType,
|
|
324
|
+
export declare type OnAddCallback<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> = (args: OnAddCallbackArgs<ItemTypeType, ColumnIds>) => void;
|
|
325
|
+
export declare type OnRemoveCallbackArgs<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> = {
|
|
326
|
+
itemResources: Array<ItemResource<ItemTypeType, ColumnIds>>;
|
|
327
|
+
collectionResource: CollectionResource<ItemTypeType, ColumnIds>;
|
|
260
328
|
isCalledAfterSocketUpdate: boolean;
|
|
261
329
|
};
|
|
262
|
-
export declare type OnRemoveCallback<ItemTypeType extends
|
|
330
|
+
export declare type OnRemoveCallback<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> = (args: OnRemoveCallbackArgs<ItemTypeType, ColumnIds>) => void;
|
|
331
|
+
/************************************/
|
|
332
|
+
export declare type ApiQueryConditionComparatorShort<ItemTypeType extends ApiEnumItemType = any, ColumnId extends keyof ApiFields[ItemTypeType] = any> = BackendApiQueryConditionComparatorShort<ItemTypeType, ColumnId> & {
|
|
333
|
+
[_T in ColumnId]: 'NOW' | ApiEnumApiTypeTsTypeMapping[ExtractApiType<ApiFields[ItemTypeType][ColumnId]>];
|
|
334
|
+
};
|
|
335
|
+
export interface ApiQueryConditionComparator<ItemTypeType extends ApiEnumItemType = any, ColumnId extends keyof ApiFields[ItemTypeType] = keyof ApiFields[ItemTypeType]> extends BackendTypesApiQueryConditionComparator {
|
|
336
|
+
value: 'NOW' | ApiEnumApiTypeTsTypeMapping[ExtractApiType<ApiFields[ItemTypeType][ColumnId]>];
|
|
337
|
+
}
|
|
338
|
+
declare type ApiQueryCondition<ItemTypeType extends ApiEnumItemType, ColumnId extends keyof ApiFields[ItemTypeType]> = ApiQueryConditionComparatorShort<ItemTypeType, ColumnId> | ApiQueryConditionComparator<ItemTypeType, ColumnId> | ApiQueryConditionIn<ItemTypeType, ColumnId> | ApiQueryConditionInShort<ItemTypeType, ColumnId> | ApiQueryConditionLinkedTo | ApiQueryConditionSubQuery<ItemTypeType> | ApiQueryConditionSearch | ApiQueryConditionCustom;
|
|
339
|
+
export declare type ApiQueryWithConditions<ItemTypeType extends ApiEnumItemType = any> = {
|
|
340
|
+
operator?: 'and' | 'AND' | 'or' | 'OR';
|
|
341
|
+
conditions: Array<ApiQuery<ItemTypeType>>;
|
|
342
|
+
not?: boolean;
|
|
343
|
+
};
|
|
344
|
+
export declare type ApiQuery<ItemTypeType extends ApiEnumItemType = any, ColumnId extends keyof ApiFields[ItemTypeType] = any> = ApiQueryWithConditions<ItemTypeType> | ApiQueryCondition<ItemTypeType, ColumnId>;
|
|
345
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rentman/rm-core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"description": "Rentman core functionalities",
|
|
5
5
|
"main": "./dist/rm-core.js",
|
|
6
6
|
"types": "./dist/types/index.d.ts",
|
|
7
|
-
"dependencies": {
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"@rentman/backend-types": "0.0.7"
|
|
9
|
+
},
|
|
8
10
|
"repository": {
|
|
9
11
|
"type": "git",
|
|
10
12
|
"url": "https://github.com/rentmanpublic/frontend-core"
|
|
@@ -15,7 +17,7 @@
|
|
|
15
17
|
"clean-webpack-plugin": "^0.1.19",
|
|
16
18
|
"ts-loader": "^6.2.1",
|
|
17
19
|
"tslint": "5.19.0",
|
|
18
|
-
"typescript": "^3.
|
|
20
|
+
"typescript": "^3.9.2",
|
|
19
21
|
"typescript-tslint-plugin": "^0.5.5",
|
|
20
22
|
"uglifyjs-webpack-plugin": "^1.2.5",
|
|
21
23
|
"webpack": "4.41.2",
|