@rentman/rm-core 8.0.2 → 8.1.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.
Files changed (31) hide show
  1. package/changelog.md +13 -0
  2. package/dist/rm-core.js +6409 -6003
  3. package/dist/rm-core.min.js +2 -2
  4. package/dist/types/classes/ApiFormatter.d.ts +3 -3
  5. package/dist/types/classes/ChangesDelta.d.ts +8 -2
  6. package/dist/types/classes/ChangesDeltaBase.d.ts +35 -7
  7. package/dist/types/classes/ChangesProcessor.d.ts +3 -5
  8. package/dist/types/classes/CollectionMatcherBase.d.ts +2 -2
  9. package/dist/types/classes/ConversionMapService.d.ts +1 -1
  10. package/dist/types/classes/CreatedChangesDelta.d.ts +2 -1
  11. package/dist/types/classes/InternalChangesDelta.d.ts +12 -1
  12. package/dist/types/classes/ItemCreateService.d.ts +1 -1
  13. package/dist/types/classes/ParentChangesDelta.d.ts +47 -0
  14. package/dist/types/classes/QueryParserIdUpdater.d.ts +9 -9
  15. package/dist/types/classes/TemplateCache.d.ts +11 -8
  16. package/dist/types/classes/cache/AbstractCache.d.ts +16 -7
  17. package/dist/types/classes/cache/ItemHandlerBase.d.ts +4 -6
  18. package/dist/types/classes/cache/server/ServerCache.d.ts +19 -8
  19. package/dist/types/classes/cache/server/ServerItemHandler.d.ts +2 -2
  20. package/dist/types/classes/cache/transaction/TransactionCache.d.ts +14 -13
  21. package/dist/types/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +2 -1
  22. package/dist/types/classes/cache/transaction/TransactionCollectionHandler.d.ts +1 -0
  23. package/dist/types/classes/cache/transaction/TransactionItemHandler.d.ts +6 -7
  24. package/dist/types/factories/ChangesDeltaFactory.d.ts +8 -6
  25. package/dist/types/factories/ChangesProcessorFactory.d.ts +2 -5
  26. package/dist/types/factories/RequestColumnExpansionFactory.d.ts +4 -1
  27. package/dist/types/factories/TemplateFactory.d.ts +2 -2
  28. package/dist/types/interfaces/TransactionItemHandlerDependencyInterface.d.ts +2 -1
  29. package/dist/types/models/Template.d.ts +3 -2
  30. package/dist/types/types/ItemTypesCollection.d.ts +1 -1
  31. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { ApiEnumItemType, ApiFields, ItemId } from '@rentman/backend-types';
2
- import { ChangesDelta, InternalChangesDelta, ServerCache, TransactionCollectionHandler, TransactionItemEntryChanges, TransactionItemHandler, TransactionValidatorFactory } from '../..';
2
+ import { ChangesDelta, InternalChangesDelta, ServerCache, TransactionCollectionHandler, TransactionItemEntryChanges, TransactionItemHandler, TransactionOptions, TransactionValidatorFactory } from '../..';
3
3
  import { RmCore } from '../../../core';
4
4
  import { AbstractCacheDependencyInterface } from '../../../interfaces/AbstractCacheDependencyInterface';
5
5
  import { CollectionResource, ItemEntry, ItemEntryOptions, ItemResource } from '../../../models';
@@ -8,6 +8,7 @@ import { ApiQuery, ApiRequestColumn, ApiRequestColumns, CollectionDefinition, Co
8
8
  import { ChangesDeltaResult } from '../../ChangesDeltaBase';
9
9
  import { OnAfterCreateCallback } from '../../ChangesProcessor';
10
10
  import { ModuleChangesCompilationResult } from '../../ModuleChangesCompilation';
11
+ import { ParentChangesDelta } from '../../ParentChangesDelta';
11
12
  import { AbstractCache } from '../AbstractCache';
12
13
  import { CachedQueryItem } from '../CachedQueryHandlerBase';
13
14
  import { TransactionCachedQueryHandler } from './TransactionCachedQueryHandler';
@@ -20,6 +21,7 @@ export declare enum TransactionErrorLevel {
20
21
  warning = "warning",
21
22
  error = "error"
22
23
  }
24
+ export declare type UndoFunction = () => PromiseInterface<ChangesDeltaResult>;
23
25
  /**
24
26
  * @description
25
27
  * The {@link TransactionCache TransactionCache} is responsible for keeping track of newly created {@link ItemEntry ItemEntries}
@@ -91,14 +93,20 @@ export declare class TransactionCache extends AbstractCache {
91
93
  readonly collectionHandler: TransactionCollectionHandler;
92
94
  readonly eventHandler: TransactionEventHandler;
93
95
  private readonly validator?;
96
+ private readonly options;
94
97
  private _isValid;
98
+ private historyStep;
99
+ private undoDeltas;
100
+ private appliedDeltas;
95
101
  constructor(dependencies: AbstractCacheDependencyInterface, core: RmCore, parent: AbstractCache,
96
102
  /**
97
103
  * @description
98
104
  * For debugging purposes
99
105
  */
100
- id?: string | undefined, validatorFactory?: TransactionValidatorFactory);
101
- createChild(id?: string, validatorFactory?: TransactionValidatorFactory): TransactionCache;
106
+ id?: string | undefined, validatorFactory?: TransactionValidatorFactory, options?: Partial<TransactionOptions>);
107
+ undo(): ReturnType<UndoFunction>;
108
+ redo(): ReturnType<TransactionCache['applyChangesDelta']>;
109
+ createChild(id?: string, validatorFactory?: TransactionValidatorFactory, options?: TransactionOptions): TransactionCache;
102
110
  destroy(): void;
103
111
  expandCollectionResource(collectionResource: CollectionResource, newColumns: ApiRequestColumns): PromiseInterface<void>;
104
112
  /**
@@ -138,11 +146,8 @@ export declare class TransactionCache extends AbstractCache {
138
146
  *
139
147
  * ------------------
140
148
  * Use {@link TransactionCache.applyChangesDelta applyChangesDelta} if you want to apply changes from outside the core
141
- *
142
- * @param internalChangesDelta Changes to be applied
143
- * @param isCalledAfterApiSave If 'isCalledAfterApiSave' is true local changes will always be overwritten (instead of only when there are no changes)
144
149
  */
145
- applyChangesFromParent(internalChangesDelta: InternalChangesDelta, isCalledAfterApiSave?: boolean, isCalledAfterSocketUpdate?: boolean): PromiseInterface<void>;
150
+ applyChangesFromParent(parentChangesDelta: ParentChangesDelta, isCalledAfterSocketUpdate?: boolean, conversionMap?: ItemIdConversionMap): PromiseInterface<void>;
146
151
  /**
147
152
  * @description
148
153
  * Applies changes to this transaction and its children
@@ -151,12 +156,8 @@ export declare class TransactionCache extends AbstractCache {
151
156
  *
152
157
  * The difference between {@link TransactionCache.applyChangesFromParent} and {@link TransactionCache.applyChangesDelta} is that applyChangesFromParent assumes
153
158
  * the change has already been processed, and applyChangesDelta will process the changes itself (result vs cause)
154
- *
155
- * ------------------
156
- *
157
- * Differs from {@link ServerCache.applyChangesDelta ServerCache.applyChangesDelta} in the handling of deleted entries and the applyChangesFromParent call
158
159
  */
159
- applyChangesDelta(changesDelta: ChangesDelta): PromiseInterface<ChangesDeltaResult>;
160
+ applyChangesDelta(changesDelta: ChangesDelta | InternalChangesDelta): PromiseInterface<ChangesDeltaResult>;
160
161
  getServerCache(): ServerCache;
161
162
  /**
162
163
  * @description
@@ -309,7 +310,7 @@ export declare class TransactionCache extends AbstractCache {
309
310
  * won't be included
310
311
  */
311
312
  getDelta(): InternalChangesDelta;
312
- createItemResource<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, isRoot?: boolean, isNew?: boolean): ItemResource<ItemTypeType>;
313
+ createItemResource<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, isNew?: boolean): ItemResource<ItemTypeType>;
313
314
  createItemResources<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>>(itemEntries: Array<ItemEntry<ItemTypeType>>): Array<ItemResource<ItemTypeType, ColumnIds>>;
314
315
  processLinkedItems<ItemTypeType extends ApiEnumItemType>(linkedEntries: ItemTypeMap<ItemEntry[]>): ItemResourcesItemTypeMap<ItemResource<ItemTypeType>>;
315
316
  createCollectionResource<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>, initialEntries: Array<ItemEntry<ItemTypeType>>): CollectionResource<ItemTypeType>;
@@ -1,5 +1,5 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { ApiQuery, ApiRequestColumns, CollectionQuery, ColumnSubsetCache, ItemEntryOptions, ParentIdMap, PromiseInterface, TransactionCollectionHandlerDependencyInterface, TransactionItemHandler } from '../../../index';
2
+ import { ApiQuery, ApiRequestColumns, CollectionQuery, ColumnSubsetCache, ItemEntryOptions, ItemIdConversionMap, ParentIdMap, PromiseInterface, TransactionCollectionHandlerDependencyInterface, TransactionItemHandler } from '../../../index';
3
3
  import { ItemEntry } from '../../../models';
4
4
  import { CollectionOptions } from '../../../models/CollectionOptions';
5
5
  import { CachedQueryHandlerBase, CachedQueryItem } from '../CachedQueryHandlerBase';
@@ -9,6 +9,7 @@ export declare class TransactionCachedQueryHandler extends CachedQueryHandlerBas
9
9
  private itemHandler;
10
10
  protected transaction: TransactionCache;
11
11
  constructor(dependencies: TransactionCollectionHandlerDependencyInterface, itemHandler: TransactionItemHandler, transaction: TransactionCache);
12
+ updateLocalItemIdReferences(conversionMap: ItemIdConversionMap, isCalledAfterSave: boolean): void;
12
13
  __fetchCachedQueryItem<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
13
14
  __expandCachedQuery<ItemTypeType extends ApiEnumItemType>(cachedQuery: CachedQueryItem<ItemTypeType>, newColumns: ApiRequestColumns, force?: boolean): PromiseInterface<CachedQueryItem<ItemTypeType>>;
14
15
  __addItemEntriesToCachedQueries<ItemTypeType extends ApiEnumItemType = any>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): void;
@@ -17,6 +17,7 @@ export declare class TransactionCollectionHandler {
17
17
  };
18
18
  };
19
19
  constructor(itemHandler: TransactionItemHandler, cachedQueryHandler: TransactionCachedQueryHandler, dependencies: TransactionCollectionHandlerDependencyInterface, transaction: TransactionCache);
20
+ updateLocalItemIdReferences(conversionMap: ItemIdConversionMap): void;
20
21
  expandCollectionResource<ItemTypeType extends ApiEnumItemType = any>(collectionResource: CollectionResource<ItemTypeType>, newColumns: ApiRequestColumns): PromiseInterface<void>;
21
22
  addResource(resource: CollectionResource): void;
22
23
  clearResource(resource: CollectionResource): void;
@@ -35,6 +35,7 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
35
35
  };
36
36
  };
37
37
  constructor(dependencies: TransactionItemHandlerDependencyInterface, transaction: TransactionCache, validator?: TransactionValidator | undefined);
38
+ updateLocalItemIdReferences(itemType: ApiEnumItemType, oldItemId: ItemId, newItemId: ItemId, changesDelta?: ChangesDeltaBase, isCalledAfterSave?: boolean): void;
38
39
  registerFieldChangeCallback<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, callback: FieldChangeCallback<ItemTypeType>): DeregFunction;
39
40
  copyTransactionItemEntryChanges(itemEntryChanges: TransactionItemEntryChanges, entry: ItemEntry): TransactionItemEntryChanges;
40
41
  createItemEntry(createTuple: ChangesDeltaItemCreateDelta): ItemEntry;
@@ -57,27 +58,26 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
57
58
  detectEntryChanges(itemEntryId: ItemEntry['id']): boolean;
58
59
  /**
59
60
  * @description
60
- * Processes on a cached entry, if there are no {@link TransactionItemHandler.itemChanges itemChanges} the new values will not be processed, unless forceOverwrite is set
61
+ * Processes on a cached entry, if there are no {@link TransactionItemHandler.itemChanges itemChanges} the new values will not be processed unless `createItemChangesIfNoneExist` is set
61
62
  *
62
63
  * @param itemEntryChangesTuple The changes tuple
63
- * @param forceOverwrite Instead of calling {@link ApiFormatter.mergeCopyFields mergeCopyFields}, {@link ApiFormatter.copyFields copyFields} will be used (because API values are always right)
64
- * @param updateInitial Should be `true` if called by applyChangesFromParent
65
64
  * @param isCalledAfterSocketUpdate Indicates that the change is done by a different user
66
65
  * @param createItemChangesIfNoneExist Is `true` when called from `applyChangesDelta`, we can assume that when you call `applyChangesDelta` with updates that aren't on the transaction yet you want to add those
66
+ * @param changesDelta Will be used to check which items should/shouldn't be updated when updating local ID references
67
67
  *
68
68
  * @returns
69
69
  * The previous changes {@link FieldMap FieldMap}, returns `null` when the item was not cached or no fields were changed.
70
70
  */
71
- processItemEntryChanges<ItemTypeType extends ApiEnumItemType = any>(itemEntryChangesTuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, forceOverwrite?: boolean, updateInitial?: boolean, isCalledAfterSocketUpdate?: boolean, createItemChangesIfNoneExist?: boolean): ProcessItemEntryChangesResult<ItemTypeType>;
71
+ processItemEntryChanges<ItemTypeType extends ApiEnumItemType = any>(itemEntryChangesTuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, isCalledAfterSocketUpdate?: boolean, createItemChangesIfNoneExist?: boolean): ProcessItemEntryChangesResult<ItemTypeType>;
72
72
  cloneItemEntries<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemEntries: Array<ItemEntry<ItemTypeType>>, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): ItemId[];
73
73
  cloneItemEntry<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, sourceEntry: ItemEntry<ItemTypeType>, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): ItemId;
74
74
  fetchItemEntriesByQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, query: ApiQuery, entryOptions: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
75
- fetchItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
75
+ fetchItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions, isRoot?: boolean): PromiseInterface<ItemEntry<ItemTypeType>>;
76
76
  /**
77
77
  * @description
78
78
  * Fetches a template and creates a new {@link ItemEntry ItemEntry}, will error if the ItemEntry with the given ItemId already exists
79
79
  */
80
- fetchNewItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ChangesDeltaResult>;
80
+ fetchNewItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions, isRoot?: boolean): PromiseInterface<ChangesDeltaResult>;
81
81
  fetchItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
82
82
  fetchTitle(itemType: ApiEnumItemType, itemId: ItemId): PromiseInterface<string>;
83
83
  resolveLocalItemEntry<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemEntry: ItemEntry<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
@@ -94,5 +94,4 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
94
94
  private getColumnDifference;
95
95
  private expandLocalItemEntry;
96
96
  private getLocalValues;
97
- private updateLocalItemIdReferences;
98
97
  }
@@ -1,13 +1,15 @@
1
- import { ItemEntryService } from '../classes';
2
- import { ChangesDelta } from '../classes/ChangesDelta';
3
- import { InternalChangesDelta } from '../classes/InternalChangesDelta';
4
- import { ItemCreateService } from '../classes/ItemCreateService';
1
+ import { ApiFormatter, ChangesDelta, ConversionMapService, InternalChangesDelta, ItemCreateService, ItemEntryService } from '../classes';
2
+ import { ParentChangesDelta } from '../classes/ParentChangesDelta';
5
3
  import { ErrorHandlerInterface } from '../interfaces';
6
4
  export declare class ChangesDeltaFactory {
5
+ private apiFormatter;
6
+ private conversionMapService;
7
7
  private errorHandler;
8
- private itemEntryService;
9
8
  private itemCreateService;
10
- constructor(errorHandler: ErrorHandlerInterface, itemEntryService: ItemEntryService, itemCreateService: ItemCreateService);
9
+ private itemEntryService;
10
+ constructor(apiFormatter: ApiFormatter, conversionMapService: ConversionMapService, errorHandler: ErrorHandlerInterface, itemCreateService: ItemCreateService, itemEntryService: ItemEntryService);
11
11
  construct(): ChangesDelta;
12
+ cloneCreatedChanges(sourceChangesDelta: ChangesDelta, destinationChangesDelta?: ChangesDelta): ChangesDelta;
12
13
  constructInternalDelta(): InternalChangesDelta;
14
+ constructParentDelta(): ParentChangesDelta;
13
15
  }
@@ -1,22 +1,19 @@
1
- import { ApiRequestService, ChangesProcessor, CollectionEntryService, ItemEntryService, OnAfterCreateCallback } from '../classes';
1
+ import { ApiRequestService, ChangesProcessor, ItemEntryService, OnAfterCreateCallback } from '../classes';
2
2
  import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
3
3
  import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
4
4
  import { ChangesCompilationFactory } from './ChangesCompilationFactory';
5
5
  import { ChangesDeltaFactory } from './ChangesDeltaFactory';
6
- import { ColumnExpansionFactory } from './ColumnExpansionFactory';
7
6
  import { CreateRequestFactory } from './CreateRequestFactory';
8
7
  import { RequestColumnExpansionFactory } from './RequestColumnExpansionFactory';
9
8
  export declare class ChangesProcessorFactory {
10
9
  private changesDeltaFactory;
11
10
  private apiRequestService;
12
11
  private changesCompilationFactory;
13
- private columnExpansionFactory;
14
12
  private createRequestFactory;
15
13
  private errorHandler;
16
14
  private promiseService;
17
15
  private requestColumnExpansionFactory;
18
- private collectionEntryService;
19
16
  private itemEntryService;
20
- constructor(changesDeltaFactory: ChangesDeltaFactory, apiRequestService: ApiRequestService, changesCompilationFactory: ChangesCompilationFactory, columnExpansionFactory: ColumnExpansionFactory, createRequestFactory: CreateRequestFactory, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory, collectionEntryService: CollectionEntryService, itemEntryService: ItemEntryService);
17
+ constructor(changesDeltaFactory: ChangesDeltaFactory, apiRequestService: ApiRequestService, changesCompilationFactory: ChangesCompilationFactory, createRequestFactory: CreateRequestFactory, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory, itemEntryService: ItemEntryService);
21
18
  construct(transaction: TransactionCache, breakUpByParent?: boolean, onAfterCreateCallback?: OnAfterCreateCallback): ChangesProcessor;
22
19
  }
@@ -1,6 +1,9 @@
1
- import { ColumnUtil, RequestColumnExpansion } from '../classes';
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { AbstractCache, ColumnUtil, RequestColumnExpansion } from '../classes';
3
+ import { ApiRequestColumnMap, ApiRequestColumns } from '../types';
2
4
  export declare class RequestColumnExpansionFactory {
3
5
  private columnUtil;
4
6
  constructor(columnUtil: ColumnUtil);
5
7
  construct(): RequestColumnExpansion;
8
+ expandColumnsWithCachedQueryColumns(transaction: AbstractCache, itemType: ApiEnumItemType, requestColumns?: ApiRequestColumns, requestColumnExpansion?: RequestColumnExpansion): ApiRequestColumnMap;
6
9
  }
@@ -2,10 +2,10 @@ import { ApiEnumItemType } from '@rentman/backend-types';
2
2
  import { ColumnUtil } from '../classes';
3
3
  import { ColumnSetFactory } from '../factories';
4
4
  import { Template } from '../models';
5
- import { ApiRequestColumnMap, ApiResponse, ResponseColumnItemTypeMap } from '../types';
5
+ import { ApiRequestColumnMap, ApiResponse, ItemTypeMap, ResponseColumnItemTypeMap } from '../types';
6
6
  export declare class TemplateFactory {
7
7
  columnSetFactory: ColumnSetFactory;
8
8
  columnUtil: ColumnUtil;
9
9
  constructor(columnSetFactory: ColumnSetFactory, columnUtil: ColumnUtil);
10
- construct<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, response: ApiResponse, additionalRequestColumns: ApiRequestColumnMap, additionalResponseColumns: ResponseColumnItemTypeMap): Template<ItemTypeType>;
10
+ construct<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, response: ApiResponse, additionalRequestColumns: ApiRequestColumnMap, additionalResponseColumns: ItemTypeMap<ResponseColumnItemTypeMap>): Template<ItemTypeType>;
11
11
  }
@@ -1,4 +1,4 @@
1
- import { ApiFormatter, ColumnHandler, ColumnUtil, ConversionMapService, ItemCreateService, ItemEntryService, KeyService } from '../classes';
1
+ import { ApiFormatter, CollectionEntryService, ColumnHandler, ColumnUtil, ConversionMapService, ItemCreateService, ItemEntryService, KeyService } from '../classes';
2
2
  import { TemplateCache } from '../classes/TemplateCache';
3
3
  import { ChangesDeltaFactory, ColumnExpansionFactory, ColumnSetFactory, ColumnSubsetCacheFactory, ItemCacheFactory, ItemEntryFactory, RequestColumnExpansionFactory } from '../factories';
4
4
  import { ErrorHandlerInterface } from './ErrorHandlerInterface';
@@ -23,4 +23,5 @@ export interface TransactionItemHandlerDependencyInterface {
23
23
  promiseService: PromiseLibraryInterface;
24
24
  requestColumnExpansionFactory: RequestColumnExpansionFactory;
25
25
  templateCache: TemplateCache;
26
+ collectionEntryService: CollectionEntryService;
26
27
  }
@@ -1,12 +1,13 @@
1
1
  import { ApiEnumItemType, ApiFields } from '@rentman/backend-types';
2
2
  import { ColumnSet } from '../classes';
3
3
  import { TemplateFactory } from '../factories';
4
- import { ApiRequestColumnMap, ApiResponse, FieldMap, ResponseColumnItemTypeMap } from '../types';
4
+ import { ApiRequestColumnMap, ApiResponse, FieldMap, ItemTypeMap, ResponseColumnItemTypeMap } from '../types';
5
5
  export declare class Template<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any> {
6
6
  itemType: ItemTypeType;
7
7
  response: ApiResponse;
8
+ additionalRequestColumns: ApiRequestColumnMap;
8
9
  responseColumns: ResponseColumnItemTypeMap;
9
10
  columns: ColumnSet<ItemTypeType>;
10
- constructor(factory: TemplateFactory, itemType: ItemTypeType, response: ApiResponse, additionalRequestColumns: ApiRequestColumnMap, additionalResponseColumns: ResponseColumnItemTypeMap);
11
+ constructor(factory: TemplateFactory, itemType: ItemTypeType, response: ApiResponse, additionalRequestColumns: ApiRequestColumnMap, additionalResponseColumns: ItemTypeMap<ResponseColumnItemTypeMap>);
11
12
  getFields(): FieldMap<ItemTypeType, ColumnIds>;
12
13
  }
@@ -211,7 +211,7 @@ export declare type CollectionQuery = {
211
211
  object: BackendApiQuery;
212
212
  string: string;
213
213
  };
214
- export declare type CollectionResourceParentIdMap<ItemTypeType extends ApiEnumItemType = any> = ParentIdMap<CollectionResource<ItemTypeType>>;
214
+ export declare type CollectionResourceParentIdMap<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any> = ParentIdMap<CollectionResource<ItemTypeType, ColumnIds>>;
215
215
  export declare type ResponseColumnMap<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any> = {
216
216
  [ColumnId in ColumnIds[number]]: GetColumnType<ItemTypeType, ColumnId>;
217
217
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rentman/rm-core",
3
- "version": "8.0.2",
3
+ "version": "8.1.0",
4
4
  "description": "Rentman core functionalities",
5
5
  "main": "./dist/rm-core.js",
6
6
  "types": "./dist/types/index.d.ts",