@rentman/rm-core 8.0.0 → 8.0.1-2

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 (110) hide show
  1. package/changelog.md +875 -865
  2. package/dist/rm-core.js +10027 -10055
  3. package/dist/rm-core.min.js +2 -2
  4. package/dist/types/classes/ApiFormatter.d.ts +66 -66
  5. package/dist/types/classes/ApiRequestService.d.ts +21 -21
  6. package/dist/types/classes/ApiResponseProcessor.d.ts +30 -30
  7. package/dist/types/classes/ChangesCompilation.d.ts +36 -36
  8. package/dist/types/classes/ChangesDelta.d.ts +62 -62
  9. package/dist/types/classes/ChangesDeltaBase.d.ts +51 -51
  10. package/dist/types/classes/ChangesProcessor.d.ts +47 -47
  11. package/dist/types/classes/CollectionEntryService.d.ts +27 -27
  12. package/dist/types/classes/CollectionMatcherBase.d.ts +22 -22
  13. package/dist/types/classes/CollectionMatcherCachedCollectionProcessor.d.ts +32 -32
  14. package/dist/types/classes/CollectionResourceService.d.ts +7 -7
  15. package/dist/types/classes/ColumnCache.d.ts +22 -22
  16. package/dist/types/classes/ColumnExpansion.d.ts +23 -23
  17. package/dist/types/classes/ColumnHandler.d.ts +22 -22
  18. package/dist/types/classes/ColumnInfo.d.ts +14 -14
  19. package/dist/types/classes/ColumnSet.d.ts +39 -39
  20. package/dist/types/classes/ColumnSubsetCache.d.ts +15 -15
  21. package/dist/types/classes/ColumnUtil.d.ts +101 -101
  22. package/dist/types/classes/ConversionMapService.d.ts +28 -28
  23. package/dist/types/classes/CreateRequest.d.ts +20 -20
  24. package/dist/types/classes/CreatedChangesDelta.d.ts +17 -17
  25. package/dist/types/classes/InternalChangesDelta.d.ts +40 -40
  26. package/dist/types/classes/ItemCache.d.ts +30 -30
  27. package/dist/types/classes/ItemCreateService.d.ts +25 -25
  28. package/dist/types/classes/ItemEntryService.d.ts +35 -35
  29. package/dist/types/classes/KeyService.d.ts +18 -18
  30. package/dist/types/classes/LockService.d.ts +32 -32
  31. package/dist/types/classes/ModuleChangesCompilation.d.ts +19 -19
  32. package/dist/types/classes/QueryColumnExtractor.d.ts +20 -20
  33. package/dist/types/classes/QueryContainsLocalIdParser.d.ts +17 -17
  34. package/dist/types/classes/QueryLinkedToParser.d.ts +16 -16
  35. package/dist/types/classes/QueryLocallyMatchableParser.d.ts +19 -19
  36. package/dist/types/classes/QueryMatcher.d.ts +19 -19
  37. package/dist/types/classes/QueryParser.d.ts +26 -26
  38. package/dist/types/classes/QueryParserBase.d.ts +20 -20
  39. package/dist/types/classes/QueryParserIdUpdater.d.ts +16 -16
  40. package/dist/types/classes/QueryService.d.ts +13 -13
  41. package/dist/types/classes/RequestBuffer.d.ts +29 -29
  42. package/dist/types/classes/RequestBufferManager.d.ts +26 -26
  43. package/dist/types/classes/RequestColumnExpansion.d.ts +16 -16
  44. package/dist/types/classes/SocketMessageHandler.d.ts +43 -43
  45. package/dist/types/classes/TemplateCache.d.ts +67 -67
  46. package/dist/types/classes/Util.d.ts +31 -31
  47. package/dist/types/classes/cache/AbstractCache.d.ts +103 -103
  48. package/dist/types/classes/cache/CachedQueryHandlerBase.d.ts +75 -75
  49. package/dist/types/classes/cache/CollectionMatcherCachedQueryProcessor.d.ts +36 -36
  50. package/dist/types/classes/cache/ItemHandlerBase.d.ts +108 -108
  51. package/dist/types/classes/cache/server/ServerCache.d.ts +83 -83
  52. package/dist/types/classes/cache/server/ServerCachedQueryHandler.d.ts +34 -34
  53. package/dist/types/classes/cache/server/ServerItemHandler.d.ts +53 -53
  54. package/dist/types/classes/cache/transaction/TransactionCache.d.ts +325 -325
  55. package/dist/types/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +23 -23
  56. package/dist/types/classes/cache/transaction/TransactionCollectionHandler.d.ts +29 -29
  57. package/dist/types/classes/cache/transaction/TransactionEventHandler.d.ts +24 -24
  58. package/dist/types/classes/cache/transaction/TransactionItemHandler.d.ts +94 -94
  59. package/dist/types/classes/cache/transaction/TransactionValidator.d.ts +35 -35
  60. package/dist/types/classes/index.d.ts +46 -46
  61. package/dist/types/constants.d.ts +7 -7
  62. package/dist/types/core.d.ts +51 -51
  63. package/dist/types/factories/ApiResponseProcessorFactory.d.ts +6 -6
  64. package/dist/types/factories/ChangesCompilationFactory.d.ts +6 -6
  65. package/dist/types/factories/ChangesDeltaFactory.d.ts +13 -13
  66. package/dist/types/factories/ChangesProcessorFactory.d.ts +22 -22
  67. package/dist/types/factories/CollectionEntryFactory.d.ts +14 -14
  68. package/dist/types/factories/CollectionMatcherFactory.d.ts +19 -19
  69. package/dist/types/factories/CollectionResourceFactory.d.ts +22 -22
  70. package/dist/types/factories/ColumnExpansionFactory.d.ts +9 -9
  71. package/dist/types/factories/ColumnInfoFactory.d.ts +8 -8
  72. package/dist/types/factories/ColumnSetFactory.d.ts +20 -20
  73. package/dist/types/factories/ColumnSubsetCacheFactory.d.ts +9 -9
  74. package/dist/types/factories/CreateRequestFactory.d.ts +11 -11
  75. package/dist/types/factories/ItemCacheFactory.d.ts +8 -8
  76. package/dist/types/factories/ItemEntryFactory.d.ts +15 -15
  77. package/dist/types/factories/ItemResourceFactory.d.ts +14 -14
  78. package/dist/types/factories/ModuleChangesCompilationFactory.d.ts +5 -5
  79. package/dist/types/factories/QueryMatcherFactory.d.ts +8 -8
  80. package/dist/types/factories/QueryParserFactory.d.ts +6 -6
  81. package/dist/types/factories/RequestColumnExpansionFactory.d.ts +6 -6
  82. package/dist/types/factories/TemplateFactory.d.ts +11 -11
  83. package/dist/types/factories/TransactionCacheFactory.d.ts +15 -15
  84. package/dist/types/factories/index.d.ts +21 -21
  85. package/dist/types/index.d.ts +7 -7
  86. package/dist/types/interfaces/AbstractCacheDependencyInterface.d.ts +43 -43
  87. package/dist/types/interfaces/ApiRequestServiceInterface.d.ts +12 -12
  88. package/dist/types/interfaces/AuthInterface.d.ts +10 -10
  89. package/dist/types/interfaces/ErrorHandlerInterface.d.ts +5 -5
  90. package/dist/types/interfaces/ExceptionHandlerInterface.d.ts +3 -3
  91. package/dist/types/interfaces/LinkTreeServiceInterface.d.ts +4 -4
  92. package/dist/types/interfaces/PromiseLibraryInterface.d.ts +25 -25
  93. package/dist/types/interfaces/ServerCacheDependencyInterface.d.ts +7 -7
  94. package/dist/types/interfaces/SocketMessageInterface.d.ts +3 -3
  95. package/dist/types/interfaces/TransactionCollectionHandlerDependencyInterface.d.ts +20 -20
  96. package/dist/types/interfaces/TransactionItemHandlerDependencyInterface.d.ts +26 -26
  97. package/dist/types/interfaces/index.d.ts +11 -11
  98. package/dist/types/models/CollectionEntry.d.ts +24 -24
  99. package/dist/types/models/CollectionOptions.d.ts +24 -24
  100. package/dist/types/models/CollectionResource.d.ts +78 -78
  101. package/dist/types/models/ItemEntry.d.ts +19 -19
  102. package/dist/types/models/ItemEntryOptions.d.ts +8 -8
  103. package/dist/types/models/ItemResource.d.ts +88 -88
  104. package/dist/types/models/Template.d.ts +12 -12
  105. package/dist/types/models/index.d.ts +7 -7
  106. package/dist/types/types/ItemTypesCollection.d.ts +345 -345
  107. package/dist/types/types/PromiseInterface.d.ts +2 -2
  108. package/dist/types/types/index.d.ts +2 -2
  109. package/package.json +38 -38
  110. package/readme.md +15 -15
@@ -1,66 +1,66 @@
1
- import { ApiEnumApiType, ApiEnumApiTypeTsTypeMapping, ApiEnumItemType, ApiFields, ResponseColumn } from '@rentman/backend-types';
2
- import moment from 'moment';
3
- import { ColumnInfo } from '../classes';
4
- import { FieldMap } from '../types';
5
- declare type GetChangesResult<ItemTypeType extends ApiEnumItemType = any, ColumnId extends keyof ApiFields[ItemTypeType] = any> = {
6
- oldValue: FieldMap<ItemTypeType, [ColumnId]>[ColumnId];
7
- newValue: FieldMap<ItemTypeType, [ColumnId]>[ColumnId];
8
- column: ResponseColumn<ItemTypeType, ColumnId>;
9
- };
10
- export declare class ApiFormatter {
11
- MOMENT_INVALID: string;
12
- SERVER_DATETIME_FORMAT: string;
13
- SERVER_TIME_FORMAT: string;
14
- SERVER_DATE_FORMAT: string;
15
- constructor();
16
- /**
17
- * @description
18
- * Returns if a column type is an 'expensive' type, meaning that the action to format the field takes significant CPU time
19
- *
20
- * ----
21
- * @remarks
22
- * Currently only used for Moment objects
23
- */
24
- isExpensiveFormat(columnType: ApiEnumApiType): boolean;
25
- /**
26
- * @description
27
- * Overwrites the values in 'changes' if the values in 'initial' and 'changes' are the same (leaving user changes intact)
28
- */
29
- mergeCopyFields<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any>(initial: FieldMap<ItemTypeType, ColumnIds>, changes: FieldMap<ItemTypeType, ColumnIds>, newInitial: FieldMap<ItemTypeType, ColumnIds>, columns: Array<ColumnInfo<ItemTypeType>>): FieldMap<ItemTypeType, ColumnIds>;
30
- formatRequest<Fields extends FieldMap>(initial: Fields, modified: Fields, columns: Array<ColumnInfo>): {
31
- [columnId: string]: any;
32
- };
33
- formatRequestLocal<Fields extends FieldMap>(fields: Fields, columns: ColumnInfo[]): {
34
- [columnId: string]: any;
35
- };
36
- hasChanges(initial: FieldMap, modified: FieldMap, columns: Array<ColumnInfo<any>>, includeReadOnlyColumns?: boolean, forceCompare?: boolean): boolean;
37
- getChanges<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any>(initial: FieldMap<ItemTypeType, ColumnIds>, modified: FieldMap<ItemTypeType, ColumnIds>, columns: Array<ColumnInfo<ItemTypeType, ColumnIds[number]>>): Array<GetChangesResult<ItemTypeType, ColumnIds[number]>>;
38
- copyFields<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any>(source: FieldMap<ItemTypeType, ColumnIds>, destination: Partial<FieldMap<ItemTypeType>>, columns: Array<ColumnInfo<ItemTypeType, ColumnIds[number]>>): FieldMap<ItemTypeType, ColumnIds>;
39
- shallowCopyFields<Fields extends FieldMap>(shallowSource: Fields, deepSource: Fields, destination: Fields, columns: Array<ColumnInfo<any>>): Fields;
40
- setDefaultValues<ItemTypeType extends ApiEnumItemType = any>(destination: FieldMap<ItemTypeType>, columns: Array<ColumnInfo<ItemTypeType>>): FieldMap<ItemTypeType>;
41
- /**
42
- * @description
43
- * Compares the given fields, returns `true` when the fields are equal
44
- */
45
- compareFields<ColumnType extends ApiEnumApiType>(columnType: ColumnType, first?: ApiEnumApiTypeTsTypeMapping[ColumnType], second?: ApiEnumApiTypeTsTypeMapping[ColumnType]): boolean;
46
- compareFloats(a: number, b: number): boolean;
47
- compareMomentObjects(first: moment.Moment, second: moment.Moment): boolean;
48
- compareDurations(first: moment.Duration, second: moment.Duration): boolean;
49
- formatResponseValue(columnType: string, value: any): any;
50
- formatRequestValue(columnType: string, value: any): any;
51
- formatResponseDate(value: null | any): moment.Moment;
52
- formatResponseDuration(value: null | number): moment.Duration;
53
- formatResponseColor(value: string): string;
54
- formatRequestDateTime(value: moment.Moment): string | null;
55
- formatRequestDate(value: moment.Moment): string | null;
56
- formatRequestDuration(value: moment.Duration): number;
57
- formatRequestColor(value: string): string;
58
- getDefaultValue(columnType: ApiEnumApiType): any;
59
- isDefaultValue(columnType: ApiEnumApiType, value: any): boolean;
60
- clone(columnType: string, value: any): any;
61
- getCloneFunction(columnType: string): ((duration: moment.Duration) => moment.Duration) | ((date: moment.Moment) => moment.Moment);
62
- cloneDuration(duration: moment.Duration): moment.Duration;
63
- cloneDate(date: moment.Moment): moment.Moment;
64
- identity<T>(input: T): T;
65
- }
66
- export {};
1
+ import { ApiEnumApiType, ApiEnumItemType, ApiFields, ResponseColumn } from '@rentman/backend-types';
2
+ import moment from 'moment';
3
+ import { ColumnInfo } from '../classes';
4
+ import { ApiEnumApiTypeToTsTypeMap, FieldMap } from '../types';
5
+ declare type GetChangesResult<ItemTypeType extends ApiEnumItemType = any, ColumnId extends keyof ApiFields[ItemTypeType] = any> = {
6
+ oldValue: FieldMap<ItemTypeType, [ColumnId]>[ColumnId];
7
+ newValue: FieldMap<ItemTypeType, [ColumnId]>[ColumnId];
8
+ column: ResponseColumn<ItemTypeType, ColumnId>;
9
+ };
10
+ export declare class ApiFormatter {
11
+ MOMENT_INVALID: string;
12
+ SERVER_DATETIME_FORMAT: string;
13
+ SERVER_TIME_FORMAT: string;
14
+ SERVER_DATE_FORMAT: string;
15
+ constructor();
16
+ /**
17
+ * @description
18
+ * Returns if a column type is an 'expensive' type, meaning that the action to format the field takes significant CPU time
19
+ *
20
+ * ----
21
+ * @remarks
22
+ * Currently only used for Moment objects
23
+ */
24
+ isExpensiveFormat(columnType: ApiEnumApiType): boolean;
25
+ /**
26
+ * @description
27
+ * Overwrites the values in 'changes' if the values in 'initial' and 'changes' are the same (leaving user changes intact)
28
+ */
29
+ mergeCopyFields<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any>(initial: FieldMap<ItemTypeType, ColumnIds>, changes: FieldMap<ItemTypeType, ColumnIds>, newInitial: FieldMap<ItemTypeType, ColumnIds>, columns: Array<ColumnInfo<ItemTypeType>>): FieldMap<ItemTypeType, ColumnIds>;
30
+ formatRequest<Fields extends FieldMap>(initial: Fields, modified: Fields, columns: Array<ColumnInfo>): {
31
+ [columnId: string]: any;
32
+ };
33
+ formatRequestLocal<Fields extends FieldMap>(fields: Fields, columns: ColumnInfo[]): {
34
+ [columnId: string]: any;
35
+ };
36
+ hasChanges(initial: FieldMap, modified: FieldMap, columns: Array<ColumnInfo<any>>, includeReadOnlyColumns?: boolean, forceCompare?: boolean): boolean;
37
+ getChanges<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any>(initial: FieldMap<ItemTypeType, ColumnIds>, modified: FieldMap<ItemTypeType, ColumnIds>, columns: Array<ColumnInfo<ItemTypeType, ColumnIds[number]>>): Array<GetChangesResult<ItemTypeType, ColumnIds[number]>>;
38
+ copyFields<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any>(source: FieldMap<ItemTypeType, ColumnIds>, destination: Partial<FieldMap<ItemTypeType>>, columns: Array<ColumnInfo<ItemTypeType, ColumnIds[number]>>): FieldMap<ItemTypeType, ColumnIds>;
39
+ shallowCopyFields<Fields extends FieldMap>(shallowSource: Fields, deepSource: Fields, destination: Fields, columns: Array<ColumnInfo<any>>): Fields;
40
+ setDefaultValues<ItemTypeType extends ApiEnumItemType = any>(destination: FieldMap<ItemTypeType>, columns: Array<ColumnInfo<ItemTypeType>>): FieldMap<ItemTypeType>;
41
+ /**
42
+ * @description
43
+ * Compares the given fields, returns `true` when the fields are equal
44
+ */
45
+ compareFields<ColumnType extends ApiEnumApiType>(columnType: ColumnType, first?: ApiEnumApiTypeToTsTypeMap[ColumnType], second?: ApiEnumApiTypeToTsTypeMap[ColumnType]): boolean;
46
+ compareFloats(a: number, b: number): boolean;
47
+ compareMomentObjects(first: moment.Moment, second: moment.Moment): boolean;
48
+ compareDurations(first: moment.Duration, second: moment.Duration): boolean;
49
+ formatResponseValue(columnType: string, value: any): any;
50
+ formatRequestValue(columnType: string, value: any): any;
51
+ formatResponseDate(value: null | any): moment.Moment;
52
+ formatResponseDuration(value: null | number): moment.Duration;
53
+ formatResponseColor(value: string): string;
54
+ formatRequestDateTime(value: moment.Moment): string | null;
55
+ formatRequestDate(value: moment.Moment): string | null;
56
+ formatRequestDuration(value: moment.Duration): number;
57
+ formatRequestColor(value: string): string;
58
+ getDefaultValue(columnType: ApiEnumApiType): any;
59
+ isDefaultValue(columnType: ApiEnumApiType, value: any): boolean;
60
+ clone(columnType: string, value: any): any;
61
+ getCloneFunction(columnType: string): ((duration: moment.Duration) => moment.Duration) | ((date: moment.Moment) => moment.Moment);
62
+ cloneDuration(duration: moment.Duration): moment.Duration;
63
+ cloneDate(date: moment.Moment): moment.Moment;
64
+ identity<T>(input: T): T;
65
+ }
66
+ export {};
@@ -1,21 +1,21 @@
1
- import { ApiEnumItemType, ApiQuery, ItemId } from '@rentman/backend-types';
2
- import { ApiResponseProcessor } from '../classes';
3
- import { ApiResponseProcessorFactory } from '../factories';
4
- import { ApiRequestServiceInterface } from '../interfaces';
5
- import { ApiRequestColumnMap, ApiRequestItemMap, ApiRequestLimit, PromiseInterface } from '../types';
6
- export declare class ApiRequestService {
7
- private externalApiRequestService;
8
- private apiResponseProcessorFactory;
9
- constructor(externalApiRequestService: ApiRequestServiceInterface, apiResponseProcessorFactory: ApiResponseProcessorFactory);
10
- template(itemType: ApiEnumItemType, params: any): PromiseInterface<ApiResponseProcessor>;
11
- create(itemType: ApiEnumItemType, itemId: ItemId, values: any, parentType?: ApiEnumItemType, parentId?: ItemId): PromiseInterface<ApiResponseProcessor>;
12
- delete(itemType: ApiEnumItemType, itemIds: ItemId[]): PromiseInterface<ApiResponseProcessor>;
13
- updateItems(itemType: ApiEnumItemType, items: ApiRequestItemMap, columns: any): PromiseInterface<ApiResponseProcessor>;
14
- requestSkeleton(params: any, requestCanceler?: PromiseInterface<any>): PromiseInterface<ApiResponseProcessor>;
15
- moveItems(parentType: ApiEnumItemType, parentId: ItemId, items: {
16
- [itemType: string]: ItemId[];
17
- }): PromiseInterface<ApiResponseProcessor>;
18
- columns(itemType: ApiEnumItemType, columns: ApiRequestColumnMap, params?: any): PromiseInterface<ApiResponseProcessor>;
19
- query<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, query: ApiQuery<ItemTypeType>, columns: ApiRequestColumnMap, limit?: ApiRequestLimit): PromiseInterface<ApiResponseProcessor>;
20
- processResponse(request: any): PromiseInterface<ApiResponseProcessor>;
21
- }
1
+ import { ApiEnumItemType, ApiQuery, ItemId } from '@rentman/backend-types';
2
+ import { ApiResponseProcessor } from '../classes';
3
+ import { ApiResponseProcessorFactory } from '../factories';
4
+ import { ApiRequestServiceInterface } from '../interfaces';
5
+ import { ApiRequestColumnMap, ApiRequestItemMap, ApiRequestLimit, PromiseInterface } from '../types';
6
+ export declare class ApiRequestService {
7
+ private externalApiRequestService;
8
+ private apiResponseProcessorFactory;
9
+ constructor(externalApiRequestService: ApiRequestServiceInterface, apiResponseProcessorFactory: ApiResponseProcessorFactory);
10
+ template(itemType: ApiEnumItemType, params: any): PromiseInterface<ApiResponseProcessor>;
11
+ create(itemType: ApiEnumItemType, itemId: ItemId, values: any, parentType?: ApiEnumItemType, parentId?: ItemId): PromiseInterface<ApiResponseProcessor>;
12
+ delete(itemType: ApiEnumItemType, itemIds: ItemId[]): PromiseInterface<ApiResponseProcessor>;
13
+ updateItems(itemType: ApiEnumItemType, items: ApiRequestItemMap, columns: any): PromiseInterface<ApiResponseProcessor>;
14
+ requestSkeleton(params: any, requestCanceler?: PromiseInterface<any>): PromiseInterface<ApiResponseProcessor>;
15
+ moveItems(parentType: ApiEnumItemType, parentId: ItemId, items: {
16
+ [itemType: string]: ItemId[];
17
+ }): PromiseInterface<ApiResponseProcessor>;
18
+ columns(itemType: ApiEnumItemType, columns: ApiRequestColumnMap, params?: any): PromiseInterface<ApiResponseProcessor>;
19
+ query<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, query: ApiQuery<ItemTypeType>, columns: ApiRequestColumnMap, limit?: ApiRequestLimit): PromiseInterface<ApiResponseProcessor>;
20
+ processResponse(request: any): PromiseInterface<ApiResponseProcessor>;
21
+ }
@@ -1,30 +1,30 @@
1
- import { ApiEnumItemType, ItemId, ResponseColumn } from '@rentman/backend-types';
2
- import { ApiFormatter, ColumnInfo } from '../classes';
3
- import { FieldMap, ItemTypeMap, ResponseColumnItemTypeMap, ResponseColumnMap } from '../types';
4
- export declare class ApiResponseProcessor<RequestItemType extends ApiEnumItemType = any> {
5
- apiFormatter: ApiFormatter;
6
- response: any;
7
- itemType: RequestItemType;
8
- columns: ItemTypeMap<ResponseColumn[]>;
9
- links: ItemTypeMap<ItemId[]>;
10
- cacheable: boolean;
11
- map: any;
12
- items: any;
13
- columnIndexMap: {
14
- [itemType: string]: {
15
- [columnId: string]: number;
16
- };
17
- };
18
- columnMap: any;
19
- constructor(apiFormatter: ApiFormatter, response: any);
20
- fetchColumnObject(itemType: ApiEnumItemType): ResponseColumnMap;
21
- fetchValue(itemType: ApiEnumItemType, itemId: ItemId, columnId: string): any;
22
- fetchColumnArray(itemType: ApiEnumItemType): ResponseColumn[];
23
- fetchDerivedObject(itemType: ApiEnumItemType, itemId: ItemId, rootColumns: ColumnInfo[]): {};
24
- fetchDerivedValues(value: any, column: ColumnInfo, destination: any): void;
25
- fetchObject<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: string | ItemId): FieldMap<ItemTypeType> | undefined;
26
- fetchObjectArray<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, idArray?: ItemId[] | null): Array<FieldMap<ItemTypeType>>;
27
- fetchColumnsObject(): ResponseColumnItemTypeMap;
28
- private addLazyFormattingFunction;
29
- private createColumnMaps;
30
- }
1
+ import { ApiEnumItemType, ItemId, ResponseColumn } from '@rentman/backend-types';
2
+ import { ApiFormatter, ColumnInfo } from '../classes';
3
+ import { FieldMap, ItemTypeMap, ResponseColumnItemTypeMap, ResponseColumnMap } from '../types';
4
+ export declare class ApiResponseProcessor<RequestItemType extends ApiEnumItemType = any> {
5
+ apiFormatter: ApiFormatter;
6
+ response: any;
7
+ itemType: RequestItemType;
8
+ columns: ItemTypeMap<ResponseColumn[]>;
9
+ links: ItemTypeMap<ItemId[]>;
10
+ cacheable: boolean;
11
+ map: any;
12
+ items: any;
13
+ columnIndexMap: {
14
+ [itemType: string]: {
15
+ [columnId: string]: number;
16
+ };
17
+ };
18
+ columnMap: any;
19
+ constructor(apiFormatter: ApiFormatter, response: any);
20
+ fetchColumnObject(itemType: ApiEnumItemType): ResponseColumnMap;
21
+ fetchValue(itemType: ApiEnumItemType, itemId: ItemId, columnId: string): any;
22
+ fetchColumnArray(itemType: ApiEnumItemType): ResponseColumn[];
23
+ fetchDerivedObject(itemType: ApiEnumItemType, itemId: ItemId, rootColumns: ColumnInfo[]): {};
24
+ fetchDerivedValues(value: any, column: ColumnInfo, destination: any): void;
25
+ fetchObject<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: string | ItemId): FieldMap<ItemTypeType> | undefined;
26
+ fetchObjectArray<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, idArray?: ItemId[] | null): Array<FieldMap<ItemTypeType>>;
27
+ fetchColumnsObject(): ResponseColumnItemTypeMap;
28
+ private addLazyFormattingFunction;
29
+ private createColumnMaps;
30
+ }
@@ -1,36 +1,36 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ItemEntry } from '../models';
3
- import { ItemEntryMap, ItemMap } from '../types';
4
- import { TransactionCache } from './cache/transaction/TransactionCache';
5
- import { InternalCreateDelta } from './InternalChangesDelta';
6
- export declare type CreateRequestCompilationParent = ApiEnumItemType | 'Void';
7
- export declare type CreateCompilation = {
8
- [parentType: string]: {
9
- [parentId: number]: ItemMap<InternalCreateDelta>;
10
- };
11
- };
12
- export declare type DeleteCompilation = {
13
- [itemType: string]: ItemEntry[];
14
- };
15
- export declare type UpdateCompilation = ItemEntryMap;
16
- export declare type MoveCompilation = {
17
- [parentType: string]: {
18
- [parentId: number]: ItemEntry[];
19
- };
20
- };
21
- export declare class ChangesCompilation {
22
- private transaction;
23
- compilation: {
24
- create: CreateCompilation;
25
- delete: DeleteCompilation;
26
- update: UpdateCompilation;
27
- move: MoveCompilation;
28
- };
29
- constructor(transaction: TransactionCache);
30
- private processDelta;
31
- private getDefaultParent;
32
- private addMoveEntry;
33
- private addDeleteEntry;
34
- private addUpdateEntry;
35
- private addCreateEntry;
36
- }
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { ItemEntry } from '../models';
3
+ import { ItemEntryMap, ItemMap } from '../types';
4
+ import { TransactionCache } from './cache/transaction/TransactionCache';
5
+ import { InternalCreateDelta } from './InternalChangesDelta';
6
+ export declare type CreateRequestCompilationParent = ApiEnumItemType | 'Void';
7
+ export declare type CreateCompilation = {
8
+ [parentType: string]: {
9
+ [parentId: number]: ItemMap<InternalCreateDelta>;
10
+ };
11
+ };
12
+ export declare type DeleteCompilation = {
13
+ [itemType: string]: ItemEntry[];
14
+ };
15
+ export declare type UpdateCompilation = ItemEntryMap;
16
+ export declare type MoveCompilation = {
17
+ [parentType: string]: {
18
+ [parentId: number]: ItemEntry[];
19
+ };
20
+ };
21
+ export declare class ChangesCompilation {
22
+ private transaction;
23
+ compilation: {
24
+ create: CreateCompilation;
25
+ delete: DeleteCompilation;
26
+ update: UpdateCompilation;
27
+ move: MoveCompilation;
28
+ };
29
+ constructor(transaction: TransactionCache);
30
+ private processDelta;
31
+ private getDefaultParent;
32
+ private addMoveEntry;
33
+ private addDeleteEntry;
34
+ private addUpdateEntry;
35
+ private addCreateEntry;
36
+ }
@@ -1,62 +1,62 @@
1
- import { ApiEnumItemType, ApiFields, ItemId } from '@rentman/backend-types';
2
- import { ErrorHandlerInterface } from '../interfaces';
3
- import { ItemEntry } from '../models';
4
- import { EntryParent, EntryParentNull, FieldMap, PromiseInterface } from '../types';
5
- import { ChangesDeltaBase } from './ChangesDeltaBase';
6
- import { ColumnSet } from './ColumnSet';
7
- import { CreatedChangesDelta } from './CreatedChangesDelta';
8
- import { ItemCreateService } from './ItemCreateService';
9
- import { ItemEntryService } from './ItemEntryService';
10
- /**
11
- * @description
12
- * ChangesDelta used to apply changes from outside of the core to a transaction
13
- *
14
- * ----------
15
- *
16
- * The difference between {@link InternalChangesDelta InternalChangesDelta} and {@link ChangesDelta ChangesDelta} is that the ChangesDelta
17
- * assumes 'created' values have no itemEntries yet.
18
- *
19
- * Use this when calling {@link TransactionCache.applyChangesDelta applyChangesDelta}
20
- */
21
- export declare class ChangesDelta extends ChangesDeltaBase {
22
- private errorHandler;
23
- private itemCreateService;
24
- created: CreatedChangesDelta;
25
- constructor(errorHandler: ErrorHandlerInterface, itemCreateService: ItemCreateService, itemEntryService: ItemEntryService);
26
- /**
27
- * @description
28
- * Fetches a template for the passed itemType and processes the passed values and sets the item to be created when the delta is applied
29
- *
30
- * @remark
31
- * - If the values don't contain an `id` a new one will be generated
32
- * - If you want to set a parent set the proper field, you can't pass it as a separate object
33
- */
34
- setItemCreated<ItemTypeType extends ApiEnumItemType, Fields extends Partial<FieldMap<ItemTypeType>>>(itemType: ItemTypeType, values: Fields): PromiseInterface<this>;
35
- /**
36
- * @description
37
- * Fetches a template for the passed itemType and processes the passed values and sets the items to be created when the delta is applied
38
- *
39
- * @remark
40
- * - If the values don't contain an `id` a new one will be generated
41
- * - If you want to set a parent set the proper field, you can't pass it as a separate object
42
- */
43
- setItemsCreated<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>>(itemType: ItemTypeType, valuesArray: Array<Partial<FieldMap<ItemTypeType, ColumnIds>>>): PromiseInterface<this>;
44
- /**
45
- * @description
46
- * Will create an {@link ItemEntry ItemEntry} when the delta is applied
47
- * Does not always mean the item is local, just that it isn't cached yet
48
- *
49
- * @remark
50
- * If you're calling this from the frontend you probably want to call `setItemCreated`, which will fetch a template and process the values for you
51
- * If you don't, you have to make sure the values are all correct and all template items are processed
52
- *
53
- * @internal
54
- */
55
- _setItemCreated<ItemTypeType extends ApiEnumItemType, Fields extends FieldMap<ItemTypeType>>(itemId: ItemId, fields: Fields, columns: ColumnSet<ItemTypeType>, parent?: EntryParentNull): this;
56
- /**
57
- * @description
58
- * Convenience function to assign the proper parent fields, will call {@link ChangesDeltaBase.setItemUpdated setItemUpdated} internally
59
- */
60
- setItemMoved(entry: ItemEntry, to: EntryParent): this;
61
- isEmpty(): boolean;
62
- }
1
+ import { ApiEnumItemType, ApiFields, ItemId } from '@rentman/backend-types';
2
+ import { ErrorHandlerInterface } from '../interfaces';
3
+ import { ItemEntry } from '../models';
4
+ import { EntryParent, EntryParentNull, FieldMap, PromiseInterface } from '../types';
5
+ import { ChangesDeltaBase } from './ChangesDeltaBase';
6
+ import { ColumnSet } from './ColumnSet';
7
+ import { CreatedChangesDelta } from './CreatedChangesDelta';
8
+ import { ItemCreateService } from './ItemCreateService';
9
+ import { ItemEntryService } from './ItemEntryService';
10
+ /**
11
+ * @description
12
+ * ChangesDelta used to apply changes from outside of the core to a transaction
13
+ *
14
+ * ----------
15
+ *
16
+ * The difference between {@link InternalChangesDelta InternalChangesDelta} and {@link ChangesDelta ChangesDelta} is that the ChangesDelta
17
+ * assumes 'created' values have no itemEntries yet.
18
+ *
19
+ * Use this when calling {@link TransactionCache.applyChangesDelta applyChangesDelta}
20
+ */
21
+ export declare class ChangesDelta extends ChangesDeltaBase {
22
+ private errorHandler;
23
+ private itemCreateService;
24
+ created: CreatedChangesDelta;
25
+ constructor(errorHandler: ErrorHandlerInterface, itemCreateService: ItemCreateService, itemEntryService: ItemEntryService);
26
+ /**
27
+ * @description
28
+ * Fetches a template for the passed itemType and processes the passed values and sets the item to be created when the delta is applied
29
+ *
30
+ * @remark
31
+ * - If the values don't contain an `id` a new one will be generated
32
+ * - If you want to set a parent set the proper field, you can't pass it as a separate object
33
+ */
34
+ setItemCreated<ItemTypeType extends ApiEnumItemType, Fields extends Partial<FieldMap<ItemTypeType>>>(itemType: ItemTypeType, values: Fields): PromiseInterface<this>;
35
+ /**
36
+ * @description
37
+ * Fetches a template for the passed itemType and processes the passed values and sets the items to be created when the delta is applied
38
+ *
39
+ * @remark
40
+ * - If the values don't contain an `id` a new one will be generated
41
+ * - If you want to set a parent set the proper field, you can't pass it as a separate object
42
+ */
43
+ setItemsCreated<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>>(itemType: ItemTypeType, valuesArray: Array<Partial<FieldMap<ItemTypeType, ColumnIds>>>): PromiseInterface<this>;
44
+ /**
45
+ * @description
46
+ * Will create an {@link ItemEntry ItemEntry} when the delta is applied
47
+ * Does not always mean the item is local, just that it isn't cached yet
48
+ *
49
+ * @remark
50
+ * If you're calling this from the frontend you probably want to call `setItemCreated`, which will fetch a template and process the values for you
51
+ * If you don't, you have to make sure the values are all correct and all template items are processed
52
+ *
53
+ * @internal
54
+ */
55
+ _setItemCreated<ItemTypeType extends ApiEnumItemType, Fields extends FieldMap<ItemTypeType>>(itemId: ItemId, fields: Fields, columns: ColumnSet<ItemTypeType>, parent?: EntryParentNull): this;
56
+ /**
57
+ * @description
58
+ * Convenience function to assign the proper parent fields, will call {@link ChangesDeltaBase.setItemUpdated setItemUpdated} internally
59
+ */
60
+ setItemMoved(entry: ItemEntry, to: EntryParent): this;
61
+ isEmpty(): boolean;
62
+ }
@@ -1,51 +1,51 @@
1
- import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { ItemEntry } from '../models';
3
- import { ColumnExpansionResult, EntryParentNull, FieldMap, ItemIdConversionMap } from '../types';
4
- import { ItemEntryService } from './ItemEntryService';
5
- export declare type ChangesDeltaResult = {
6
- created: ItemEntry[];
7
- };
8
- /**
9
- * @remark
10
- * We explicitly keep track of the new parent, so we can set an item to moved if it isn't null (Needed for linkTo request)
11
- */
12
- export declare type ChangesDeltaItemUpdateDelta<ItemTypeType extends ApiEnumItemType = any> = {
13
- entry: ItemEntry<ItemTypeType>;
14
- changes: {
15
- expandedColumns: ColumnExpansionResult<ItemTypeType> | null;
16
- fields: FieldMap<ItemTypeType>;
17
- parent: EntryParentNull;
18
- };
19
- };
20
- export declare type ChangesDeltaItemDeleteDelta = ItemEntry[];
21
- export declare abstract class ChangesDeltaBase {
22
- protected itemEntryService: ItemEntryService;
23
- updated: {
24
- [itemEntryId: number]: ChangesDeltaItemUpdateDelta;
25
- };
26
- deleted: {
27
- [itemType: string]: ChangesDeltaItemDeleteDelta;
28
- };
29
- itemIdConversionMap: ItemIdConversionMap;
30
- /**
31
- * @private
32
- */
33
- _queryResults: {
34
- [itemType: string]: {
35
- [queryString: string]: ItemId[];
36
- };
37
- };
38
- protected constructor(itemEntryService: ItemEntryService);
39
- /**
40
- * @description
41
- * Adds a hint for the {@link CollectionMatcherBase CollectionMatcherBase] to the ChangesDelta, when the CollectionMatcher encounters a collection
42
- * with the exact query, it will use the hint instead of running the matcher
43
- *
44
- * @private
45
- */
46
- _setQueryResult(itemType: ApiEnumItemType, queryString: string, itemIds: ItemId[]): void;
47
- setItemUpdated<ItemTypeType extends ApiEnumItemType>(entry: ItemEntry<ItemTypeType>, fields: Partial<FieldMap<ItemTypeType>>, columnExpansionResult?: ColumnExpansionResult<ItemTypeType> | null, parent?: EntryParentNull): this;
48
- setItemDeleted(deleted: ItemEntry): this;
49
- setItemsDeleted(deleted: ItemEntry[]): this;
50
- isEmpty(): boolean;
51
- }
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
+ import { ItemEntry } from '../models';
3
+ import { ColumnExpansionResult, EntryParentNull, FieldMap, ItemIdConversionMap } from '../types';
4
+ import { ItemEntryService } from './ItemEntryService';
5
+ export declare type ChangesDeltaResult = {
6
+ created: ItemEntry[];
7
+ };
8
+ /**
9
+ * @remark
10
+ * We explicitly keep track of the new parent, so we can set an item to moved if it isn't null (Needed for linkTo request)
11
+ */
12
+ export declare type ChangesDeltaItemUpdateDelta<ItemTypeType extends ApiEnumItemType = any> = {
13
+ entry: ItemEntry<ItemTypeType>;
14
+ changes: {
15
+ expandedColumns: ColumnExpansionResult<ItemTypeType> | null;
16
+ fields: FieldMap<ItemTypeType>;
17
+ parent: EntryParentNull;
18
+ };
19
+ };
20
+ export declare type ChangesDeltaItemDeleteDelta = ItemEntry[];
21
+ export declare abstract class ChangesDeltaBase {
22
+ protected itemEntryService: ItemEntryService;
23
+ updated: {
24
+ [itemEntryId: number]: ChangesDeltaItemUpdateDelta;
25
+ };
26
+ deleted: {
27
+ [itemType: string]: ChangesDeltaItemDeleteDelta;
28
+ };
29
+ itemIdConversionMap: ItemIdConversionMap;
30
+ /**
31
+ * @private
32
+ */
33
+ _queryResults: {
34
+ [itemType: string]: {
35
+ [queryString: string]: ItemId[];
36
+ };
37
+ };
38
+ protected constructor(itemEntryService: ItemEntryService);
39
+ /**
40
+ * @description
41
+ * Adds a hint for the {@link CollectionMatcherBase CollectionMatcherBase] to the ChangesDelta, when the CollectionMatcher encounters a collection
42
+ * with the exact query, it will use the hint instead of running the matcher
43
+ *
44
+ * @private
45
+ */
46
+ _setQueryResult(itemType: ApiEnumItemType, queryString: string, itemIds: ItemId[]): void;
47
+ setItemUpdated<ItemTypeType extends ApiEnumItemType>(entry: ItemEntry<ItemTypeType>, fields: Partial<FieldMap<ItemTypeType>>, columnExpansionResult?: ColumnExpansionResult<ItemTypeType> | null, parent?: EntryParentNull): this;
48
+ setItemDeleted(deleted: ItemEntry): this;
49
+ setItemsDeleted(deleted: ItemEntry[]): this;
50
+ isEmpty(): boolean;
51
+ }
@@ -1,47 +1,47 @@
1
- import { ApiRequestService, CollectionEntryService, ItemEntryService } from '../classes';
2
- import { ChangesCompilationFactory, ColumnExpansionFactory, CreateRequestFactory, RequestColumnExpansionFactory } from '../factories';
3
- import { ChangesDeltaFactory } from '../factories/ChangesDeltaFactory';
4
- import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
5
- import { ItemIdConversionMap, PromiseInterface } from '../types';
6
- import { TransactionCache } from './cache/transaction/TransactionCache';
7
- export declare type OnAfterCreateCallback = (conversionMap: ItemIdConversionMap) => void;
8
- /**
9
- * @description
10
- * Executes the changes from a specific {@link TransactionCache transaction} and returns a {@link ChangesDelta ChangesDelta}
11
- */
12
- export declare class ChangesProcessor {
13
- private changesDeltaFactory;
14
- private apiRequestService;
15
- private changesCompilationFactory;
16
- private columnExpansionFactory;
17
- private createRequestFactory;
18
- private errorHandler;
19
- private promiseService;
20
- private requestColumnExpansionFactory;
21
- private collectionEntryService;
22
- private itemEntryService;
23
- private transaction;
24
- private breakUpByParent?;
25
- private onAfterCreateCallback?;
26
- private itemIdConversionMap;
27
- private serverCache;
28
- constructor(changesDeltaFactory: ChangesDeltaFactory, apiRequestService: ApiRequestService, changesCompilationFactory: ChangesCompilationFactory, columnExpansionFactory: ColumnExpansionFactory, createRequestFactory: CreateRequestFactory, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory, collectionEntryService: CollectionEntryService, itemEntryService: ItemEntryService, transaction: TransactionCache, breakUpByParent?: boolean | undefined, onAfterCreateCallback?: OnAfterCreateCallback | undefined);
29
- /**
30
- * @description
31
- * Executes the requests in the order of:
32
- * 1. create
33
- * 2. move
34
- * 3. delete
35
- * 4. update
36
- */
37
- execute(): PromiseInterface<ItemIdConversionMap>;
38
- private buildMoveRequest;
39
- private getMapValue;
40
- private executeCreateRequests;
41
- private executeCreateRequest;
42
- private executeUpdateRequests;
43
- private executeUpdateRequest;
44
- private executeDeleteRequests;
45
- private executeDeleteRequest;
46
- private executeMoveRequests;
47
- }
1
+ import { ApiRequestService, CollectionEntryService, ItemEntryService } from '../classes';
2
+ import { ChangesCompilationFactory, ColumnExpansionFactory, CreateRequestFactory, RequestColumnExpansionFactory } from '../factories';
3
+ import { ChangesDeltaFactory } from '../factories/ChangesDeltaFactory';
4
+ import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
5
+ import { ItemIdConversionMap, PromiseInterface } from '../types';
6
+ import { TransactionCache } from './cache/transaction/TransactionCache';
7
+ export declare type OnAfterCreateCallback = (conversionMap: ItemIdConversionMap) => void;
8
+ /**
9
+ * @description
10
+ * Executes the changes from a specific {@link TransactionCache transaction} and returns a {@link ChangesDelta ChangesDelta}
11
+ */
12
+ export declare class ChangesProcessor {
13
+ private changesDeltaFactory;
14
+ private apiRequestService;
15
+ private changesCompilationFactory;
16
+ private columnExpansionFactory;
17
+ private createRequestFactory;
18
+ private errorHandler;
19
+ private promiseService;
20
+ private requestColumnExpansionFactory;
21
+ private collectionEntryService;
22
+ private itemEntryService;
23
+ private transaction;
24
+ private breakUpByParent?;
25
+ private onAfterCreateCallback?;
26
+ private itemIdConversionMap;
27
+ private serverCache;
28
+ constructor(changesDeltaFactory: ChangesDeltaFactory, apiRequestService: ApiRequestService, changesCompilationFactory: ChangesCompilationFactory, columnExpansionFactory: ColumnExpansionFactory, createRequestFactory: CreateRequestFactory, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory, collectionEntryService: CollectionEntryService, itemEntryService: ItemEntryService, transaction: TransactionCache, breakUpByParent?: boolean | undefined, onAfterCreateCallback?: OnAfterCreateCallback | undefined);
29
+ /**
30
+ * @description
31
+ * Executes the requests in the order of:
32
+ * 1. create
33
+ * 2. move
34
+ * 3. delete
35
+ * 4. update
36
+ */
37
+ execute(): PromiseInterface<ItemIdConversionMap>;
38
+ private buildMoveRequest;
39
+ private getMapValue;
40
+ private executeCreateRequests;
41
+ private executeCreateRequest;
42
+ private executeUpdateRequests;
43
+ private executeUpdateRequest;
44
+ private executeDeleteRequests;
45
+ private executeDeleteRequest;
46
+ private executeMoveRequests;
47
+ }