@rentman/rm-core 7.1.1 → 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.
Files changed (81) hide show
  1. package/changelog.md +10 -0
  2. package/dist/rm-core.js +1176 -917
  3. package/dist/rm-core.min.js +2 -2
  4. package/dist/types/classes/ApiFormatter.d.ts +16 -15
  5. package/dist/types/classes/ApiRequestService.d.ts +9 -8
  6. package/dist/types/classes/ApiResponseProcessor.d.ts +12 -13
  7. package/dist/types/classes/ChangesCompilation.d.ts +5 -3
  8. package/dist/types/classes/ChangesDelta.d.ts +5 -4
  9. package/dist/types/classes/ChangesDeltaBase.d.ts +5 -5
  10. package/dist/types/classes/CollectionEntryService.d.ts +5 -4
  11. package/dist/types/classes/CollectionMatcherBase.d.ts +5 -4
  12. package/dist/types/classes/CollectionMatcherCachedCollectionProcessor.d.ts +6 -5
  13. package/dist/types/classes/CollectionResourceService.d.ts +2 -2
  14. package/dist/types/classes/ColumnCache.d.ts +8 -7
  15. package/dist/types/classes/ColumnExpansion.d.ts +3 -2
  16. package/dist/types/classes/ColumnHandler.d.ts +9 -8
  17. package/dist/types/classes/ColumnInfo.d.ts +6 -6
  18. package/dist/types/classes/ColumnSet.d.ts +5 -4
  19. package/dist/types/classes/ColumnSubsetCache.d.ts +3 -2
  20. package/dist/types/classes/ColumnUtil.d.ts +12 -11
  21. package/dist/types/classes/ConversionMapService.d.ts +6 -5
  22. package/dist/types/classes/CreateRequest.d.ts +5 -4
  23. package/dist/types/classes/CreatedChangesDelta.d.ts +7 -6
  24. package/dist/types/classes/InternalChangesDelta.d.ts +4 -3
  25. package/dist/types/classes/ItemCache.d.ts +13 -12
  26. package/dist/types/classes/ItemCreateService.d.ts +5 -4
  27. package/dist/types/classes/ItemEntryService.d.ts +8 -7
  28. package/dist/types/classes/KeyService.d.ts +7 -6
  29. package/dist/types/classes/LockService.d.ts +11 -11
  30. package/dist/types/classes/ModuleChangesCompilation.d.ts +3 -2
  31. package/dist/types/classes/QueryColumnExtractor.d.ts +11 -11
  32. package/dist/types/classes/QueryContainsLocalIdParser.d.ts +10 -10
  33. package/dist/types/classes/QueryLinkedToParser.d.ts +11 -11
  34. package/dist/types/classes/QueryLocallyMatchableParser.d.ts +10 -10
  35. package/dist/types/classes/QueryMatcher.d.ts +4 -3
  36. package/dist/types/classes/QueryParser.d.ts +15 -13
  37. package/dist/types/classes/QueryParserBase.d.ts +14 -23
  38. package/dist/types/classes/QueryParserIdUpdater.d.ts +10 -10
  39. package/dist/types/classes/QueryService.d.ts +4 -9
  40. package/dist/types/classes/RequestBuffer.d.ts +5 -4
  41. package/dist/types/classes/RequestBufferManager.d.ts +5 -4
  42. package/dist/types/classes/RequestColumnExpansion.d.ts +4 -3
  43. package/dist/types/classes/SocketMessageHandler.d.ts +4 -3
  44. package/dist/types/classes/TemplateCache.d.ts +4 -3
  45. package/dist/types/classes/Util.d.ts +1 -1
  46. package/dist/types/classes/cache/AbstractCache.d.ts +8 -8
  47. package/dist/types/classes/cache/CachedQueryHandlerBase.d.ts +13 -12
  48. package/dist/types/classes/cache/CollectionMatcherCachedQueryProcessor.d.ts +6 -5
  49. package/dist/types/classes/cache/ItemHandlerBase.d.ts +14 -11
  50. package/dist/types/classes/cache/server/ServerCache.d.ts +8 -7
  51. package/dist/types/classes/cache/server/ServerCachedQueryHandler.d.ts +6 -6
  52. package/dist/types/classes/cache/server/ServerItemHandler.d.ts +10 -9
  53. package/dist/types/classes/cache/transaction/TransactionCache.d.ts +31 -30
  54. package/dist/types/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +6 -6
  55. package/dist/types/classes/cache/transaction/TransactionCollectionHandler.d.ts +3 -2
  56. package/dist/types/classes/cache/transaction/TransactionItemHandler.d.ts +23 -20
  57. package/dist/types/classes/cache/transaction/TransactionValidator.d.ts +3 -2
  58. package/dist/types/constants.d.ts +1 -1
  59. package/dist/types/factories/CollectionEntryFactory.d.ts +2 -2
  60. package/dist/types/factories/CollectionMatcherFactory.d.ts +4 -4
  61. package/dist/types/factories/CollectionResourceFactory.d.ts +2 -2
  62. package/dist/types/factories/ColumnExpansionFactory.d.ts +3 -2
  63. package/dist/types/factories/ColumnInfoFactory.d.ts +4 -3
  64. package/dist/types/factories/ColumnSetFactory.d.ts +6 -5
  65. package/dist/types/factories/ColumnSubsetCacheFactory.d.ts +3 -2
  66. package/dist/types/factories/CreateRequestFactory.d.ts +2 -2
  67. package/dist/types/factories/ItemEntryFactory.d.ts +2 -2
  68. package/dist/types/factories/ItemResourceFactory.d.ts +2 -2
  69. package/dist/types/factories/QueryMatcherFactory.d.ts +3 -2
  70. package/dist/types/factories/TemplateFactory.d.ts +3 -2
  71. package/dist/types/interfaces/ApiRequestServiceInterface.d.ts +9 -8
  72. package/dist/types/interfaces/AuthInterface.d.ts +2 -1
  73. package/dist/types/interfaces/LinkTreeServiceInterface.d.ts +1 -1
  74. package/dist/types/models/CollectionEntry.d.ts +5 -4
  75. package/dist/types/models/CollectionOptions.d.ts +14 -8
  76. package/dist/types/models/CollectionResource.d.ts +27 -26
  77. package/dist/types/models/ItemEntry.d.ts +2 -2
  78. package/dist/types/models/ItemResource.d.ts +18 -14
  79. package/dist/types/models/Template.d.ts +4 -3
  80. package/dist/types/types/ItemTypesCollection.d.ts +138 -55
  81. package/package.json +5 -3
@@ -1,7 +1,8 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { RmCore } from '../../core';
2
3
  import { AbstractCacheDependencyInterface } from '../../interfaces';
3
4
  import { ItemEntry } from '../../models';
4
- import { ApiRequestColumn, CollectionQuery, CollectionResourceParentIdMap, EntryParentNull, FieldMap, ItemIdConversionMap, ItemType, PromiseInterface } from '../../types';
5
+ import { ApiRequestColumn, CollectionQuery, CollectionResourceParentIdMap, EntryParentNull, FieldMap, ItemIdConversionMap, PromiseInterface } from '../../types';
5
6
  import { ChangesDelta } from '../ChangesDelta';
6
7
  import { ChangesDeltaResult } from '../ChangesDeltaBase';
7
8
  import { OnAfterCreateCallback } from '../ChangesProcessor';
@@ -32,12 +33,12 @@ export declare abstract class AbstractCache {
32
33
  *
33
34
  * todo[limit] move to TransactionCache ?
34
35
  */
35
- abstract expandCollectionResources<ItemTypeType extends ItemType>(itemType: ItemTypeType, collections: CollectionResourceParentIdMap<ItemTypeType>, newColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
36
+ abstract expandCollectionResources<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, collections: CollectionResourceParentIdMap<ItemTypeType>, newColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
36
37
  /**
37
38
  * @description
38
39
  * Returns {@link ItemEntry ItemEntries} that fit the collection's query, copies over the collectionChanges on all transactions in the chain.
39
40
  */
40
- abstract getCollectionChangesRecursively<ItemTypeType extends ItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery): CachedQueryItem<ItemTypeType> | undefined;
41
+ abstract getCollectionChangesRecursively<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery): CachedQueryItem<ItemTypeType> | undefined;
41
42
  /**
42
43
  * @description
43
44
  * Returns this transaction and all parents
@@ -50,7 +51,7 @@ export declare abstract class AbstractCache {
50
51
  getCurrentItemEntryCache(): ItemCache;
51
52
  abstract getServerCache(): ServerCache;
52
53
  abstract getLocalItemEntry(itemEntryId: ItemEntry['id']): ItemEntry | undefined;
53
- abstract getLocalItemEntryByItemId(itemType: ItemType, itemId: ItemEntry['itemId']): ItemEntry | undefined;
54
+ abstract getLocalItemEntryByItemId(itemType: ApiEnumItemType, itemId: ItemEntry['itemId']): ItemEntry | undefined;
54
55
  /**
55
56
  * @description
56
57
  * Applies changes from a child transaction to a parent
@@ -68,7 +69,7 @@ export declare abstract class AbstractCache {
68
69
  * @internal
69
70
  */
70
71
  abstract applyChangesFromParent(internalChangesDelta: InternalChangesDelta, isCalledAfterApiSave: boolean, isCalledAfterSocketUpdate: boolean): void;
71
- abstract getParent<ItemTypeType extends ItemType = any>(itemEntry: ItemEntry<ItemTypeType>, fromInitial?: boolean, providedFields?: FieldMap<ItemTypeType>): EntryParentNull;
72
+ abstract getParent<ItemTypeType extends ApiEnumItemType = any>(itemEntry: ItemEntry<ItemTypeType>, fromInitial?: boolean, providedFields?: FieldMap<ItemTypeType>): EntryParentNull;
72
73
  abstract getItemChangesRecursively(itemEntryId: ItemEntry['id'], copyFields?: boolean): FieldMap;
73
74
  abstract getLocalItemEntryChangesTuple(itemEntryId: ItemEntry['id']): any;
74
75
  /**
@@ -80,9 +81,9 @@ export declare abstract class AbstractCache {
80
81
  *
81
82
  * @internal
82
83
  */
83
- abstract getChangesFromItemChanges<ItemTypeType extends ItemType = any>(changesObject: ServerItemEntryChanges<ItemTypeType> | TransactionItemEntryChanges<ItemTypeType>): FieldMap<ItemTypeType>;
84
+ abstract getChangesFromItemChanges<ItemTypeType extends ApiEnumItemType = any>(changesObject: ServerItemEntryChanges<ItemTypeType> | TransactionItemEntryChanges<FieldMap<ItemTypeType>>): FieldMap<ItemTypeType>;
84
85
  abstract applyChangesDelta(changesDelta: ChangesDelta): PromiseInterface<ChangesDeltaResult>;
85
- protected getParentFromFields<ItemTypeType extends ItemType = any>(itemEntry: ItemEntry<ItemTypeType>, fields: FieldMap<ItemTypeType>): EntryParentNull;
86
+ protected getParentFromFields<ItemTypeType extends ApiEnumItemType = any>(itemEntry: ItemEntry<ItemTypeType>, fields: FieldMap<ItemTypeType>): EntryParentNull;
86
87
  /**
87
88
  * @description
88
89
  * Called by applyChangesDelta from ServerCache and TransactionCache. Applies creates, updates and moves, doesn't apply deletes
@@ -93,7 +94,6 @@ export declare abstract class AbstractCache {
93
94
  result: ChangesDeltaResult;
94
95
  internalChangesDelta: InternalChangesDelta;
95
96
  matchingDelta: InternalChangesDelta;
96
- rollbackFunctions: Array<(changesDelta: ChangesDelta) => void>;
97
97
  };
98
98
  /**
99
99
  * @description
@@ -1,13 +1,14 @@
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
1
2
  import { RequestColumnExpansionFactory } from '../../factories';
2
3
  import { PromiseLibraryInterface } from '../../interfaces';
3
4
  import { ItemEntry } from '../../models';
4
5
  import { CollectionOptions } from '../../models/CollectionOptions';
5
- import { ApiQuery, ApiRequestColumns, CollectionQuery, ItemId, ItemType, ParentIdMap, PromiseInterface } from '../../types';
6
+ import { ApiQuery, ApiRequestColumns, CollectionQuery, ParentIdMap, PromiseInterface } from '../../types';
6
7
  import { CollectionEntryService } from '../CollectionEntryService';
7
8
  import { ColumnSubsetCache } from '../ColumnSubsetCache';
8
9
  import { ColumnUtil } from '../ColumnUtil';
9
10
  import { AbstractCache } from './AbstractCache';
10
- export declare type CachedQueryItem<ItemTypeType extends ItemType = any> = {
11
+ export declare type CachedQueryItem<ItemTypeType extends ApiEnumItemType = any> = {
11
12
  itemType: ItemTypeType;
12
13
  query: CollectionQuery;
13
14
  items: Array<ItemEntry<ItemTypeType>>;
@@ -35,40 +36,40 @@ export declare abstract class CachedQueryHandlerBase {
35
36
  };
36
37
  };
37
38
  protected constructor(collectionEntryService: CollectionEntryService, columnUtil: ColumnUtil, requestColumnExpansionFactory: RequestColumnExpansionFactory, promiseService: PromiseLibraryInterface, transaction: AbstractCache);
38
- setCachedQuery<ItemTypeType extends ItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>, requestColumns: ApiRequestColumns): CachedQueryItem<ItemTypeType>;
39
- getCachedQueryItems<ItemTypeType extends ItemType>(itemType: ItemTypeType, queryString: string): undefined | Array<ItemEntry<ItemTypeType>>;
40
- getCachedQueryObjectsByItemType(itemType: ItemType): CachedQueryItem[];
41
- initCachedQuery<ItemTypeType extends ItemType = string>(itemType: ItemTypeType, parsedQuery: CollectionQuery, requestColumns: ApiRequestColumns): CachedQueryItem<ItemTypeType>;
39
+ setCachedQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>, requestColumns: ApiRequestColumns): CachedQueryItem<ItemTypeType>;
40
+ getCachedQueryItems<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, queryString: string): undefined | Array<ItemEntry<ItemTypeType>>;
41
+ getCachedQueryObjectsByItemType(itemType: ApiEnumItemType): CachedQueryItem[];
42
+ initCachedQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, requestColumns: ApiRequestColumns): CachedQueryItem<ItemTypeType>;
42
43
  /**
43
44
  * @description
44
45
  * Fetches a {@link CollectionEntry CollectionEntry} with the given options
45
46
  */
46
- abstract __fetchCachedQueryItem<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
47
+ abstract __fetchCachedQueryItem<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
47
48
  /**
48
49
  * @description
49
50
  * Fetches collections linked to the passed parents
50
51
  */
51
- abstract __fetchItemEntriesByQueryData<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptions<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, collectionQuery: CollectionQuery): PromiseInterface<CachedQueryItem<ItemTypeType>>;
52
+ abstract __fetchItemEntriesByQueryData<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, collectionQuery: CollectionQuery): PromiseInterface<CachedQueryItem<ItemTypeType>>;
52
53
  /**
53
54
  * @description
54
55
  * Fetches collections linked to the passed parents
55
56
  */
56
- abstract __fetchLinkedCachedQueryItems<ItemTypeType extends ItemType>(parentType: ItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<ParentIdMap<CachedQueryItem<ItemTypeType>>>;
57
+ abstract __fetchLinkedCachedQueryItems<ItemTypeType extends ApiEnumItemType>(parentType: ApiEnumItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<ParentIdMap<CachedQueryItem<ItemTypeType>>>;
57
58
  /**
58
59
  * @description
59
60
  * Adds the passed {@link ItemEntry ItemEntries} to the Transaction's query cache,
60
61
  * will skip the ItemEntry if the `skipEntryFilterFn` callback returns `true`
61
62
  */
62
- protected __addItemEntriesToCachedQueries<ItemTypeType extends ItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>, skipEntryFilterFn: (temEntry: ItemEntry) => boolean): void;
63
+ protected __addItemEntriesToCachedQueries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>, skipEntryFilterFn: (temEntry: ItemEntry) => boolean): void;
63
64
  /**
64
65
  * @description
65
66
  * Removes the passed {@link ItemId ItemIds} from the Transaction's query cache
66
67
  */
67
- __removeItemEntriesFromCachedQueries<ItemTypeType extends ItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): Array<ItemEntry<ItemTypeType>>;
68
+ __removeItemEntriesFromCachedQueries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): Array<ItemEntry<ItemTypeType>>;
68
69
  /**
69
70
  * @description
70
71
  * Expands the option's {@link CollectionOptions.columns columns} with the columns required for the {@link CollectionMatcherCachedCollectionProcessor CollectionMatcher} to function.
71
72
  * Data fetched for a parent transaction might also fit in a child transaction, so those {@link CollectionOptions.queryColumns queryColumns} should also be taken into account
72
73
  */
73
- expandColumnsWithQueryColumns(itemType: ItemType, options: CollectionOptions, query: ApiQuery): void;
74
+ expandColumnsWithQueryColumns(itemType: ApiEnumItemType, options: CollectionOptions, query: ApiQuery): void;
74
75
  }
@@ -1,14 +1,15 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { QueryMatcherFactory } from '../../factories';
2
3
  import { PromiseLibraryInterface } from '../../interfaces';
3
4
  import { ItemEntry } from '../../models';
4
- import { CollectionQuery, ItemType, PromiseInterface } from '../../types';
5
+ import { CollectionQuery, PromiseInterface } from '../../types';
5
6
  import { ApiRequestService } from '../ApiRequestService';
6
7
  import { ChangesDeltaBase } from '../ChangesDeltaBase';
7
8
  import { CollectionMatcherBase, CollectionMatcherMatches } from '../CollectionMatcherBase';
8
9
  import { QueryService } from '../QueryService';
9
10
  import { AbstractCache } from './AbstractCache';
10
11
  import { CachedQueryItem } from './CachedQueryHandlerBase';
11
- export declare type GroupedCollectionMatcherResult<ItemTypeType extends ItemType> = {
12
+ export declare type GroupedCollectionMatcherResult<ItemTypeType extends ApiEnumItemType> = {
12
13
  fitting: Array<ItemEntry<ItemTypeType>>;
13
14
  notFitting: Array<ItemEntry<ItemTypeType>>;
14
15
  maybe: Array<ItemEntry<ItemTypeType>>;
@@ -23,13 +24,13 @@ export declare class CollectionMatcherCachedQueryProcessor extends CollectionMat
23
24
  private getQueries;
24
25
  protected map: {
25
26
  [itemTypeAndQueryString: string]: {
26
- itemType: ItemType;
27
+ itemType: ApiEnumItemType;
27
28
  query: CollectionQuery;
28
29
  matches: CollectionMatcherMatches;
29
30
  cachedQuery: CachedQueryItem;
30
31
  };
31
32
  };
32
- constructor(apiRequestService: ApiRequestService, promiseService: PromiseLibraryInterface, queryService: QueryService, queryMatcherFactory: QueryMatcherFactory, transaction: AbstractCache, getQueries: (itemType: ItemType) => CachedQueryItem[]);
33
+ constructor(apiRequestService: ApiRequestService, promiseService: PromiseLibraryInterface, queryService: QueryService, queryMatcherFactory: QueryMatcherFactory, transaction: AbstractCache, getQueries: <ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType) => Array<CachedQueryItem<ItemTypeType>>);
33
34
  __removeFromAndAddToCachedQueries(_isCalledAfterSocketUpdate?: boolean, changesDelta?: ChangesDeltaBase): PromiseInterface<void[]>;
34
- protected _expand<ItemTypeType extends ItemType = string>(itemEntry: ItemEntry<ItemTypeType>, matchFunction: (itemType: ItemTypeType, parsedQuery: CollectionQuery) => boolean | 'maybe'): this;
35
+ protected _expand<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, matchFunction: (itemType: ItemTypeType, parsedQuery: CollectionQuery) => boolean | 'maybe'): this;
35
36
  }
@@ -1,7 +1,8 @@
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
1
2
  import { ItemCacheFactory, ItemEntryFactory, RequestColumnExpansionFactory } from '../../factories';
2
3
  import { ErrorHandlerInterface, PromiseLibraryInterface } from '../../interfaces';
3
4
  import { ItemEntry, ItemEntryOptions } from '../../models';
4
- import { ApiQuery, ApiRequestColumns, FieldMap, ItemId, ItemType, PromiseInterface } from '../../types';
5
+ import { ApiQuery, ApiRequestColumns, FieldMap, PromiseInterface } from '../../types';
5
6
  import { ApiFormatter } from '../ApiFormatter';
6
7
  import { ChangesDeltaBase, ChangesDeltaItemUpdateDelta } from '../ChangesDeltaBase';
7
8
  import { ColumnInfo } from '../ColumnInfo';
@@ -16,7 +17,7 @@ export declare enum ItemCacheStatus {
16
17
  NOT_CACHED = "not_cached",
17
18
  NO_CHANGES = "no_changes"
18
19
  }
19
- export declare type ProcessItemEntryChangesResult<ItemTypeType extends ItemType> = {
20
+ export declare type ProcessItemEntryChangesResult<ItemTypeType extends ApiEnumItemType> = {
20
21
  status: ItemCacheStatus.NO_CHANGES | ItemCacheStatus.NOT_CACHED;
21
22
  previous: null;
22
23
  } | {
@@ -32,7 +33,9 @@ export declare abstract class ItemHandlerBase {
32
33
  protected requestColumnExpansionFactory: RequestColumnExpansionFactory;
33
34
  protected transaction: AbstractCache;
34
35
  readonly entries: ItemCache;
35
- abstract itemChanges: ServerItemEntryChanges | TransactionItemEntryChanges;
36
+ abstract itemChanges: {
37
+ [itemEntryId: string]: ServerItemEntryChanges | TransactionItemEntryChanges;
38
+ };
36
39
  protected constructor(columnUtil: ColumnUtil, apiFormatter: ApiFormatter, itemEntryFactory: ItemEntryFactory, promiseService: PromiseLibraryInterface, errorHandler: ErrorHandlerInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory, itemCacheFactory: ItemCacheFactory, transaction: AbstractCache);
37
40
  /**
38
41
  * @description
@@ -45,22 +48,22 @@ export declare abstract class ItemHandlerBase {
45
48
  * @description
46
49
  * Fetches the ItemEntries for the given query, does not look in the cache, since we don't know which ItemIds belong to the query !
47
50
  */
48
- abstract fetchItemEntriesByQuery<ItemTypeType extends ItemType>(itemType: ItemTypeType, query: ApiQuery, entryOptions: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
51
+ abstract fetchItemEntriesByQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, query: ApiQuery, entryOptions: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
49
52
  /**
50
53
  * @description
51
54
  * Fetches the ItemEntries for the given ItemIds
52
55
  */
53
- abstract fetchItemEntries<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
56
+ abstract fetchItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
54
57
  /**
55
58
  * @description
56
59
  * Fetches an ItemEntry with the given itemId
57
60
  */
58
- abstract fetchItemEntry<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
61
+ abstract fetchItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
59
62
  /**
60
63
  * @description
61
64
  * Processes the passed {@link ChangesDeltaItemUpdateDelta update delta} on the transaction, if there are no {@link TransactionItemHandler.itemChanges itemChanges} the new values will not be processed
62
65
  */
63
- abstract processItemEntryChanges<ItemTypeType extends ItemType>(itemEntryChangesTuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, forceOverwrite: boolean, updateInitial: boolean, isCalledAfterSocketUpdate: boolean, createItemChangesIfNoneExist: boolean): ProcessItemEntryChangesResult<ItemTypeType>;
66
+ abstract processItemEntryChanges<ItemTypeType extends ApiEnumItemType>(itemEntryChangesTuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, forceOverwrite: boolean, updateInitial: boolean, isCalledAfterSocketUpdate: boolean, createItemChangesIfNoneExist: boolean): ProcessItemEntryChangesResult<ItemTypeType>;
64
67
  /**
65
68
  * @description
66
69
  * Traverses the column path and returns the fields of the derived item, returns undefined if the item isn't found
@@ -89,8 +92,8 @@ export declare abstract class ItemHandlerBase {
89
92
  * Recursively fetches derived values as separate requests, instead of as columns of a primary item
90
93
  * Can be used when derived values of a local item have to be fetched, since a local item can't be used as root item of a query
91
94
  */
92
- fetchDerivedValuesByColumn<ItemTypeType extends ItemType>(itemEntries: Array<ItemEntry<ItemTypeType>>, rootColumn: ColumnInfo<ItemTypeType>, changesDelta?: ChangesDeltaBase): PromiseInterface<void | Array<ItemEntry<ItemTypeType>>>;
93
- resolveDerivedValues<ItemTypeType extends ItemType>(itemEntries: Array<ItemEntry<ItemTypeType>>, columns: Array<ColumnInfo<ItemTypeType>>, changesDelta?: ChangesDeltaBase): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
95
+ fetchDerivedValuesByColumn<ItemTypeType extends ApiEnumItemType>(itemEntries: Array<ItemEntry<ItemTypeType>>, rootColumn: ColumnInfo<ItemTypeType>, changesDelta?: ChangesDeltaBase): PromiseInterface<void | Array<ItemEntry<ItemTypeType>>>;
96
+ resolveDerivedValues<ItemTypeType extends ApiEnumItemType>(itemEntries: Array<ItemEntry<ItemTypeType>>, columns: Array<ColumnInfo<ItemTypeType>>, changesDelta?: ChangesDeltaBase): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
94
97
  /**
95
98
  * @description
96
99
  * Creates a new {@link ItemEntry ItemEntry} from the passed {@link ChangesDeltaItemCreateDelta ChangesDeltaItemCreateDelta} and stores it in this transaction's {@link ItemCache ItemCache}
@@ -100,6 +103,6 @@ export declare abstract class ItemHandlerBase {
100
103
  * @description
101
104
  * Gets the value of the given column, will look into the current delta before attempting to read itemChanges
102
105
  */
103
- protected getItemIdByColumn<ItemTypeType extends ItemType>(itemEntry: ItemEntry<ItemTypeType>, column: ColumnInfo<ItemTypeType>, changesDelta?: ChangesDeltaBase): ItemId;
104
- expandColumnsWithCachedQueryColumns(itemType: ItemType, requestColumns?: ApiRequestColumns): ApiRequestColumns;
106
+ protected getItemIdByColumn<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, column: ColumnInfo<ItemTypeType>, changesDelta?: ChangesDeltaBase): ItemId;
107
+ expandColumnsWithCachedQueryColumns(itemType: ApiEnumItemType, requestColumns?: ApiRequestColumns): ApiRequestColumns;
105
108
  }
@@ -1,8 +1,9 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { ChangesDelta, InternalChangesDelta, TransactionCache, TransactionValidatorFactory } from '../..';
2
3
  import { RmCore } from '../../../core';
3
4
  import { ServerCacheDependencyInterface } from '../../../interfaces/ServerCacheDependencyInterface';
4
5
  import { ItemEntry } from '../../../models';
5
- import { ApiRequestColumn, ApiRequestColumnMap, CollectionQuery, CollectionResourceParentIdMap, EntryParent, EntryParentNull, FieldMap, ItemIdConversionMap, ItemType, PromiseInterface } from '../../../types';
6
+ import { ApiRequestColumn, ApiRequestColumnMap, CollectionQuery, CollectionResourceParentIdMap, EntryParent, EntryParentNull, FieldMap, ItemIdConversionMap, PromiseInterface } from '../../../types';
6
7
  import { ApiResponseProcessor } from '../../ApiResponseProcessor';
7
8
  import { ChangesDeltaResult } from '../../ChangesDeltaBase';
8
9
  import { OnAfterCreateCallback } from '../../ChangesProcessor';
@@ -25,7 +26,7 @@ export declare class ServerCache extends AbstractCache {
25
26
  constructor(dependencies: ServerCacheDependencyInterface, core: RmCore);
26
27
  getServerCache(): ServerCache;
27
28
  createChild(id?: string, validatorFactory?: TransactionValidatorFactory): TransactionCache;
28
- expandCollectionResources<ItemTypeType extends ItemType>(itemType: ItemTypeType, collections: CollectionResourceParentIdMap<ItemTypeType>, newRequestColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
29
+ expandCollectionResources<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, collections: CollectionResourceParentIdMap<ItemTypeType>, newRequestColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
29
30
  processResponse(response: ApiResponseProcessor, requestColumnMap: ApiRequestColumnMap, isCalledAfterApiSave?: boolean, isCalledAfterSocketUpdate?: boolean, changesDelta?: ChangesDelta): PromiseInterface<ChangesDeltaResult>;
30
31
  /**
31
32
  * @description
@@ -36,7 +37,7 @@ export declare class ServerCache extends AbstractCache {
36
37
  * @description
37
38
  * Gets the fields required to set the parent
38
39
  */
39
- getLinkFieldsByParent<ItemTypeType extends ItemType>(parent: EntryParent, itemType: ItemTypeType): Partial<FieldMap<ItemTypeType>>;
40
+ getLinkFieldsByParent<ItemTypeType extends ApiEnumItemType>(parent: EntryParent, itemType: ItemTypeType): Partial<FieldMap<ItemTypeType>>;
40
41
  /**
41
42
  * @description
42
43
  * Gets the entry's parent
@@ -48,7 +49,7 @@ export declare class ServerCache extends AbstractCache {
48
49
  * @remark
49
50
  * Use {@link CollectionResource.getParent CollectionResource.getParent} instead of {@link TransactionCache.getParent TransactionCache.getParent} if you're getting the parent in the onRemove callback
50
51
  */
51
- getParent<ItemTypeType extends ItemType = any>(itemEntry: ItemEntry<ItemTypeType>, _fromInitial?: boolean, _providedFields?: FieldMap<ItemTypeType>): EntryParentNull;
52
+ getParent<ItemTypeType extends ApiEnumItemType = any>(itemEntry: ItemEntry<ItemTypeType>, _fromInitial?: boolean, _providedFields?: FieldMap<ItemTypeType>): EntryParentNull;
52
53
  getItemChangesRecursively(itemEntryId: ItemEntry['id'], copyFields?: boolean): FieldMap;
53
54
  /**
54
55
  * @description
@@ -58,7 +59,7 @@ export declare class ServerCache extends AbstractCache {
58
59
  entry: ItemEntry;
59
60
  changes: ServerItemEntryChanges;
60
61
  };
61
- getCollectionChangesRecursively<ItemTypeType extends ItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery): CachedQueryItem<ItemTypeType> | undefined;
62
+ getCollectionChangesRecursively<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery): CachedQueryItem<ItemTypeType> | undefined;
62
63
  /**
63
64
  * @description
64
65
  * Invalidates the complete server cache, all items will be re-fetched whenever they are requested
@@ -77,6 +78,6 @@ export declare class ServerCache extends AbstractCache {
77
78
  */
78
79
  applyChangesDelta(changesDelta: ChangesDelta, isCalledAfterApiSave?: boolean, isCalledAfterSocketUpdate?: boolean): PromiseInterface<ChangesDeltaResult>;
79
80
  getLocalItemEntry(itemEntryId: ItemEntry['id']): ItemEntry | undefined;
80
- getLocalItemEntryByItemId(itemType: ItemType, itemId: ItemEntry['itemId']): ItemEntry | undefined;
81
- getChangesFromItemChanges<ItemTypeType extends ItemType = any>(changesObject: ServerItemEntryChanges<ItemTypeType>): FieldMap<ItemTypeType>;
81
+ getLocalItemEntryByItemId(itemType: ApiEnumItemType, itemId: ItemEntry['itemId']): ItemEntry | undefined;
82
+ getChangesFromItemChanges<ItemTypeType extends ApiEnumItemType = any>(changesObject: ServerItemEntryChanges<ItemTypeType>): FieldMap<ItemTypeType>;
82
83
  }
@@ -1,9 +1,9 @@
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
1
2
  import { ColumnSubsetCacheFactory, RequestColumnExpansionFactory } from '../../../factories';
2
3
  import { ApiRequestColumns, ApiRequestService, CollectionQuery, ColumnSubsetCache, ColumnUtil, ParentIdMap, PromiseInterface } from '../../../index';
3
4
  import { ErrorHandlerInterface, PromiseLibraryInterface } from '../../../interfaces';
4
5
  import { ItemEntry } from '../../../models';
5
6
  import { CollectionOptions } from '../../../models/CollectionOptions';
6
- import { ItemId, ItemType } from '../../../types';
7
7
  import { CollectionEntryService } from '../../index';
8
8
  import { RequestBufferManager } from '../../RequestBufferManager';
9
9
  import { CachedQueryHandlerBase, CachedQueryItem } from '../CachedQueryHandlerBase';
@@ -17,18 +17,18 @@ export declare class ServerCachedQueryHandler extends CachedQueryHandlerBase {
17
17
  private itemHandler;
18
18
  protected transaction: ServerCache;
19
19
  constructor(columnSubsetCacheFactory: ColumnSubsetCacheFactory, requestBufferManager: RequestBufferManager, requestColumnExpansionFactory: RequestColumnExpansionFactory, apiRequestService: ApiRequestService, collectionEntryService: CollectionEntryService, errorHandler: ErrorHandlerInterface, itemHandler: ServerItemHandler, promiseService: PromiseLibraryInterface, columnUtil: ColumnUtil, transaction: ServerCache);
20
- __fetchCachedQueryItem<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
21
- __fetchLinkedCachedQueryItems<ItemTypeType extends ItemType>(parentType: ItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<ParentIdMap<CachedQueryItem<ItemTypeType>>>;
22
- __addItemEntriesToCachedQueries<ItemTypeType extends ItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): void;
20
+ __fetchCachedQueryItem<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
21
+ __fetchLinkedCachedQueryItems<ItemTypeType extends ApiEnumItemType>(parentType: ApiEnumItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<ParentIdMap<CachedQueryItem<ItemTypeType>>>;
22
+ __addItemEntriesToCachedQueries<ItemTypeType extends ApiEnumItemType = any>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): void;
23
23
  /**
24
24
  * @description
25
25
  * Expands the columns of the items in the cached query
26
26
  */
27
- __expandCachedQuery<ItemTypeType extends ItemType = any>(cachedQuery: CachedQueryItem<ItemTypeType>, newColumns: ApiRequestColumns, force?: boolean): PromiseInterface<CachedQueryItem<ItemTypeType>>;
27
+ __expandCachedQuery<ItemTypeType extends ApiEnumItemType = any>(cachedQuery: CachedQueryItem<ItemTypeType>, newColumns: ApiRequestColumns, force?: boolean): PromiseInterface<CachedQueryItem<ItemTypeType>>;
28
28
  /**
29
29
  * @description
30
30
  * Fetches the data for the passed ItemType/options, will do nothing if the requested CollectionEntry/columns are already cached.
31
31
  * Will create a new {@link CollectionEntry CollectionEntry} if the CollectionEntry didn't exist yet
32
32
  */
33
- __fetchItemEntriesByQueryData<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptions<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, collectionQuery: CollectionQuery): PromiseInterface<CachedQueryItem<ItemTypeType>>;
33
+ __fetchItemEntriesByQueryData<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, collectionQuery: CollectionQuery): PromiseInterface<CachedQueryItem<ItemTypeType>>;
34
34
  }
@@ -1,14 +1,15 @@
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
1
2
  import { ColumnSubsetCacheFactory, ItemCacheFactory, ItemEntryFactory, QueryParserFactory, RequestColumnExpansionFactory } from '../../../factories';
2
3
  import { ErrorHandlerInterface, PromiseLibraryInterface } from '../../../interfaces';
3
4
  import { ItemEntry, ItemEntryOptions } from '../../../models';
4
- import { ApiQuery, ApiRequestColumns, FieldMap, ItemId, ItemType, PromiseInterface } from '../../../types';
5
+ import { ApiQuery, ApiRequestColumns, FieldMap, PromiseInterface } from '../../../types';
5
6
  import { ChangesDelta } from '../../ChangesDelta';
6
7
  import { ChangesDeltaItemUpdateDelta } from '../../ChangesDeltaBase';
7
8
  import { ChangesDeltaItemCreateDelta } from '../../CreatedChangesDelta';
8
9
  import { ApiFormatter, ApiResponseProcessor, ColumnExpansion, ColumnSet, ColumnUtil, QueryService, RequestBufferManager, RequestBufferResponse, TransactionItemEntryChanges } from '../../index';
9
10
  import { ItemHandlerBase, ProcessItemEntryChangesResult } from '../ItemHandlerBase';
10
11
  import { ServerCache } from './ServerCache';
11
- export declare type ServerItemEntryChanges<ItemTypeType extends ItemType = any> = FieldMap<ItemTypeType>;
12
+ export declare type ServerItemEntryChanges<ItemTypeType extends ApiEnumItemType = any> = FieldMap<ItemTypeType>;
12
13
  export declare class ServerItemHandler extends ItemHandlerBase {
13
14
  private requestBufferManager;
14
15
  private queryParserFactory;
@@ -24,25 +25,25 @@ export declare class ServerItemHandler extends ItemHandlerBase {
24
25
  * @description
25
26
  * Processes updates on a cached entry
26
27
  */
27
- processItemEntryChanges<ItemTypeType extends ItemType = any>(itemEntryChangesTuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, _forceOverwrite?: boolean, _updateInitial?: boolean, _isCalledAfterSocketUpdate?: boolean, _createItemChangesIfNoneExist?: boolean): ProcessItemEntryChangesResult<ItemTypeType>;
28
+ processItemEntryChanges<ItemTypeType extends ApiEnumItemType = any>(itemEntryChangesTuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, _forceOverwrite?: boolean, _updateInitial?: boolean, _isCalledAfterSocketUpdate?: boolean, _createItemChangesIfNoneExist?: boolean): ProcessItemEntryChangesResult<ItemTypeType>;
28
29
  copyTransactionItemEntryChanges(itemEntryChanges: TransactionItemEntryChanges, entry: ItemEntry): ServerItemEntryChanges;
29
- fetchItemEntry<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
30
- fetchItemEntriesByQuery<ItemTypeType extends ItemType>(itemType: ItemTypeType, query: ApiQuery, entryOptions: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
31
- extendItemEntries<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemEntries: Array<ItemEntry<ItemTypeType>>, newColumns: ApiRequestColumns): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
32
- fetchItemEntries<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
30
+ fetchItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
31
+ fetchItemEntriesByQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, query: ApiQuery, entryOptions: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
32
+ extendItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemEntries: Array<ItemEntry<ItemTypeType>>, newColumns: ApiRequestColumns): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
33
+ fetchItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
33
34
  /**
34
35
  * @description
35
36
  * Fetches the data for the ItemEntries linked to the parent Items
36
37
  *
37
38
  * @param columns should contain a derived column that refers to the parent
38
39
  */
39
- fetchLinkedItemEntriesData(parentType: ItemType, parentIdArray: ItemId[], itemType: ItemType, query: ApiQuery | null, columns: ApiRequestColumns): PromiseInterface<RequestBufferResponse>;
40
+ fetchLinkedItemEntriesData(parentType: ApiEnumItemType, parentIdArray: ItemId[], itemType: ApiEnumItemType, query: ApiQuery | null, columns: ApiRequestColumns): PromiseInterface<RequestBufferResponse>;
40
41
  /**
41
42
  * @description
42
43
  * General way to process an API response.
43
44
  * Will call {@link ChangesDelta.setItemCreated setItemCreated} if an entry doesn't exist yet, and otherwise {@link ChangesDelta.setItemUpdated setItemUpdated} if it does.
44
45
  */
45
- processApiResponse<ItemTypeType extends ItemType>(changesDelta: ChangesDelta, response: ApiResponseProcessor, itemType: ItemTypeType, itemIdOfExistingItem: ItemId, itemIdInResponse: ItemId, columnSet: ColumnSet<ItemTypeType>, columnExpansion: ColumnExpansion<ItemTypeType>): void;
46
+ processApiResponse<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, response: ApiResponseProcessor, itemType: ItemTypeType, itemIdOfExistingItem: ItemId, itemIdInResponse: ItemId, columnSet: ColumnSet<ItemTypeType>, columnExpansion: ColumnExpansion<ItemTypeType>): void;
46
47
  /**
47
48
  * @description
48
49
  * Fetches the data for the passed ItemType/ItemId/columns, will do nothing if the requested ItemEntry/columns are already cached.
@@ -1,9 +1,10 @@
1
+ import { ApiEnumItemType, ApiFields, ItemId } from '@rentman/backend-types';
1
2
  import { ChangesDelta, InternalChangesDelta, ServerCache, TransactionCollectionHandler, TransactionItemEntryChanges, TransactionItemHandler, TransactionValidatorFactory } from '../..';
2
3
  import { RmCore } from '../../../core';
3
4
  import { AbstractCacheDependencyInterface } from '../../../interfaces/AbstractCacheDependencyInterface';
4
5
  import { CollectionResource, ItemEntry, ItemEntryOptions, ItemResource } from '../../../models';
5
6
  import { CollectionOptionsInterface } from '../../../models/CollectionOptions';
6
- import { ApiQuery, ApiRequestColumn, ApiRequestColumns, CollectionDefinition, CollectionQuery, CollectionResourceParentIdMap, ColumnIdTypeMap, ConversionMap, CreateRequestParameterMap, DeregFunction, EntryParentNull, FieldChangeCallback, FieldMap, ItemId, ItemIdConversionMap, ItemOptionsInterface, ItemResourcesItemTypeMap, ItemType, ItemTypeMap, LinkCollectionDefinition, PromiseInterface } from '../../../types';
7
+ import { ApiQuery, ApiRequestColumn, ApiRequestColumns, CollectionDefinition, CollectionQuery, CollectionResourceParentIdMap, ConversionMap, CreateRequestParameterMap, DeregFunction, EntryParentNull, FieldChangeCallback, FieldMap, ItemIdConversionMap, ItemOptionsInterface, ItemResourcesItemTypeMap, ItemTypeMap, LinkCollectionDefinition, PromiseInterface } from '../../../types';
7
8
  import { ChangesDeltaResult } from '../../ChangesDeltaBase';
8
9
  import { OnAfterCreateCallback } from '../../ChangesProcessor';
9
10
  import { ModuleChangesCompilationResult } from '../../ModuleChangesCompilation';
@@ -11,7 +12,7 @@ import { AbstractCache } from '../AbstractCache';
11
12
  import { CachedQueryItem } from '../CachedQueryHandlerBase';
12
13
  import { TransactionCachedQueryHandler } from './TransactionCachedQueryHandler';
13
14
  import { TransactionCacheCallbackCondition, TransactionCacheCallbackType, TransactionEventHandler } from './TransactionEventHandler';
14
- declare type ItemResourceLinks<ItemTypeType extends ItemType> = {
15
+ declare type ItemResourceLinks<ItemTypeType extends ApiEnumItemType> = {
15
16
  main: ItemResource<ItemTypeType>;
16
17
  linked: ItemResourcesItemTypeMap;
17
18
  };
@@ -104,8 +105,8 @@ export declare class TransactionCache extends AbstractCache {
104
105
  * @description
105
106
  * Expands the collection with the new request columns, assumes that all collections have the same itemType
106
107
  */
107
- expandCollectionResources<ItemTypeType extends ItemType>(itemType: ItemTypeType, collections: CollectionResourceParentIdMap<ItemTypeType>, newColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
108
- registerFieldChangeCallback<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: ItemId, callback: FieldChangeCallback<ItemTypeType>): DeregFunction;
108
+ expandCollectionResources<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, collections: CollectionResourceParentIdMap<ItemTypeType>, newColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
109
+ registerFieldChangeCallback<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, callback: FieldChangeCallback<ItemTypeType>): DeregFunction;
109
110
  createChangesDelta(): ChangesDelta;
110
111
  getFirstErrorString(): undefined | string;
111
112
  /**
@@ -168,8 +169,8 @@ export declare class TransactionCache extends AbstractCache {
168
169
  * @remark
169
170
  * Use {@link CollectionResource.getParent CollectionResource.getParent} instead of {@link TransactionCache.getParent TransactionCache.getParent} if you're getting the parent in the onRemove callback
170
171
  */
171
- getParent<ItemTypeType extends ItemType = any>(itemEntry: ItemEntry<ItemTypeType>, fromInitial?: boolean, providedFields?: FieldMap<ItemTypeType>): EntryParentNull;
172
- getCollectionChangesRecursively<ItemTypeType extends ItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery): CachedQueryItem<ItemTypeType> | undefined;
172
+ getParent<ItemTypeType extends ApiEnumItemType = any>(itemEntry: ItemEntry<ItemTypeType>, fromInitial?: boolean, providedFields?: FieldMap<ItemTypeType>): EntryParentNull;
173
+ getCollectionChangesRecursively<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery): CachedQueryItem<ItemTypeType> | undefined;
173
174
  /**
174
175
  * @description
175
176
  * Traverses the transaction chain and returns the changes of the item on the first transaction
@@ -236,13 +237,13 @@ export declare class TransactionCache extends AbstractCache {
236
237
  updateItemIdMap(collectionMap: {
237
238
  [itemId: number]: any;
238
239
  }, conversionMap: ConversionMap): void;
239
- getAllLinkCollections<ItemTypeType extends ItemType>(linkType: ItemType, itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>): PromiseInterface<CollectionResourceParentIdMap<ItemTypeType>>;
240
- getLinkCollectionsFromDef<ItemTypeType extends ItemType>(linkType: ItemType, linkIdArray: ItemId[], definition: LinkCollectionDefinition<ItemTypeType>): PromiseInterface<CollectionResourceParentIdMap<ItemTypeType>>;
241
- getLinkCollections<ItemTypeType extends ItemType>(linkType: ItemType, linkIdArray: ItemId[], itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>): PromiseInterface<CollectionResourceParentIdMap<ItemTypeType>>;
242
- getCollectionFromDef<ItemTypeType extends ItemType>(definition: CollectionDefinition<ItemTypeType>): PromiseInterface<CollectionResource<ItemTypeType>>;
243
- getCollection<ItemTypeType extends ItemType, Fields extends FieldMap<ItemTypeType> = FieldMap<ItemTypeType>>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>): PromiseInterface<CollectionResource<ItemTypeType, Fields>>;
244
- getCollectionDef<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>): CollectionDefinition<ItemTypeType>;
245
- getLinkCollectionsDef<ItemTypeType extends ItemType>(itemType: ItemTypeType, linkField: string, options: CollectionOptionsInterface<ItemTypeType>): LinkCollectionDefinition<ItemTypeType>;
240
+ getAllLinkCollections<ItemTypeType extends ApiEnumItemType>(linkType: ApiEnumItemType, itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>): PromiseInterface<CollectionResourceParentIdMap<ItemTypeType>>;
241
+ getLinkCollectionsFromDef<ItemTypeType extends ApiEnumItemType>(linkType: ApiEnumItemType, linkIdArray: ItemId[], definition: LinkCollectionDefinition<ItemTypeType>): PromiseInterface<CollectionResourceParentIdMap<ItemTypeType>>;
242
+ getLinkCollections<ItemTypeType extends ApiEnumItemType>(linkType: ApiEnumItemType, linkIdArray: ItemId[], itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>): PromiseInterface<CollectionResourceParentIdMap<ItemTypeType>>;
243
+ getCollectionFromDef<ItemTypeType extends ApiEnumItemType>(definition: CollectionDefinition<ItemTypeType>): PromiseInterface<CollectionResource<ItemTypeType>>;
244
+ getCollection<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>): PromiseInterface<CollectionResource<ItemTypeType, ColumnIds>>;
245
+ getCollectionDef<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>): CollectionDefinition<ItemTypeType>;
246
+ getLinkCollectionsDef<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, linkField: string, options: CollectionOptionsInterface<ItemTypeType>): LinkCollectionDefinition<ItemTypeType>;
246
247
  /**
247
248
  * @deprecated
248
249
  * Use getItemById/getNewResourceWithId
@@ -250,35 +251,35 @@ export declare class TransactionCache extends AbstractCache {
250
251
  * @remarks
251
252
  * stateKey can be a keyword or a local id (in case of a refresh)
252
253
  */
253
- getItemByState<ItemTypeType extends ItemType>(itemType: ItemTypeType, stateKey: ItemId | string, options?: ItemOptionsInterface, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType>>;
254
- getDuplicateById<ItemTypeType extends ItemType>(itemType: ItemTypeType, duplicateId: ItemId, options: ItemOptionsInterface, returnLinks: true, isRoot?: boolean): PromiseInterface<ItemResourceLinks<ItemTypeType>>;
255
- getDuplicateById<ItemTypeType extends ItemType>(itemType: ItemTypeType, duplicateId: ItemId, options: ItemOptionsInterface, returnLinks?: boolean, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType>>;
256
- getNewResourceWithId<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: ItemId, options: Partial<ItemEntryOptions>, returnLinks: true, isRoot?: boolean): PromiseInterface<ItemResourceLinks<ItemTypeType>>;
257
- getNewResourceWithId<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: ItemId, options: Partial<ItemEntryOptions>, returnLinks?: boolean, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType>>;
258
- getNewResource<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: ItemOptionsInterface, returnLinks: true, isRoot?: boolean): PromiseInterface<ItemResourceLinks<ItemTypeType>>;
259
- getNewResource<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: ItemOptionsInterface, returnLinks?: boolean, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType>>;
254
+ getItemByState<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, stateKey: ItemId | string, options?: ItemOptionsInterface, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType>>;
255
+ getDuplicateById<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, duplicateId: ItemId, options: ItemOptionsInterface, returnLinks: true, isRoot?: boolean): PromiseInterface<ItemResourceLinks<ItemTypeType>>;
256
+ getDuplicateById<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, duplicateId: ItemId, options: ItemOptionsInterface, returnLinks?: boolean, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType>>;
257
+ getNewResourceWithId<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: Partial<ItemEntryOptions>, returnLinks: true, isRoot?: boolean): PromiseInterface<ItemResourceLinks<ItemTypeType>>;
258
+ getNewResourceWithId<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: Partial<ItemEntryOptions>, returnLinks?: boolean, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType>>;
259
+ getNewResource<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: ItemOptionsInterface, returnLinks: true, isRoot?: boolean): PromiseInterface<ItemResourceLinks<ItemTypeType>>;
260
+ getNewResource<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: ItemOptionsInterface, returnLinks?: boolean, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType>>;
260
261
  /**
261
262
  * @description
262
263
  * Fetches multiple items with their respective changes of the current {@link TransactionCache transaction}
263
264
  */
264
- getItemsByQuery<ItemTypeType extends ItemType>(itemType: ItemTypeType, query: ApiQuery, options?: Partial<ItemEntryOptions>): PromiseInterface<Array<ItemResource<ItemTypeType>>>;
265
+ getItemsByQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, query: ApiQuery, options?: Partial<ItemEntryOptions>): PromiseInterface<Array<ItemResource<ItemTypeType>>>;
265
266
  /**
266
267
  * @description
267
268
  * Fetches multiple items with their respective changes of the current {@link TransactionCache transaction}
268
269
  */
269
- getItemsById<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemIds: ItemId[], options?: Partial<ItemEntryOptions>): PromiseInterface<Array<ItemResource<ItemTypeType>>>;
270
+ getItemsById<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options?: Partial<ItemEntryOptions>): PromiseInterface<Array<ItemResource<ItemTypeType>>>;
270
271
  /**
271
272
  * @description
272
273
  * Fetches the item with the changes of the current {@link TransactionCache transaction}
273
274
  *
274
275
  * @param isRoot Sets the item as the root item of the transaction, new items will be linked to this item (if there's a connection in the LinkTree)
275
276
  */
276
- getItemById<ItemTypeType extends ItemType, Fields extends FieldMap<ItemTypeType> = FieldMap<ItemTypeType>>(itemType: ItemTypeType, itemId: ItemId, options?: Partial<ItemEntryOptions>, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType, Fields>>;
277
+ getItemById<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>>(itemType: ItemTypeType, itemId: ItemId, options?: Partial<ItemEntryOptions>, isRoot?: boolean): PromiseInterface<ItemResource<ItemTypeType, ColumnIds>>;
277
278
  /**
278
279
  * @description
279
280
  * Fetches the title of an item, does not create an {@link ItemResource ItemResource}
280
281
  */
281
- fetchTitle(itemType: ItemType, itemId: ItemId): PromiseInterface<string>;
282
+ fetchTitle(itemType: ApiEnumItemType, itemId: ItemId): PromiseInterface<string>;
282
283
  /**
283
284
  * @description
284
285
  * Merges the passed child Transaction into this transaction and then propagates them to the other child transactions
@@ -301,18 +302,18 @@ export declare class TransactionCache extends AbstractCache {
301
302
  * @description
302
303
  * Gets an ItemEntry from the cache by ItemId
303
304
  */
304
- getLocalItemEntryByItemId(itemType: ItemType, itemId: ItemEntry['itemId']): ItemEntry | undefined;
305
+ getLocalItemEntryByItemId(itemType: ApiEnumItemType, itemId: ItemEntry['itemId']): ItemEntry | undefined;
305
306
  /**
306
307
  * @description
307
308
  * Returns the complete {@link InternalChangesDelta InternalChangesDelta} of the TransactionCache, this only takes into account the end result (initial is compared to changes), so changing something and reverting it
308
309
  * won't be included
309
310
  */
310
311
  getDelta(): InternalChangesDelta;
311
- createItemResource<ItemTypeType extends ItemType>(itemEntry: ItemEntry<ItemTypeType>, isRoot?: boolean, isNew?: boolean): ItemResource<ItemTypeType>;
312
- createItemResources<ItemTypeType extends ItemType, Fields extends ColumnIdTypeMap = any>(itemEntries: Array<ItemEntry<ItemTypeType>>): Array<ItemResource<ItemTypeType, Fields>>;
313
- processLinkedItems<ItemTypeType extends ItemType>(linkedEntries: ItemTypeMap<ItemEntry[]>): ItemResourcesItemTypeMap<ItemResource<ItemTypeType>>;
314
- createCollectionResource<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>, initialEntries: Array<ItemEntry<ItemTypeType>>): CollectionResource<ItemTypeType>;
315
- getChangesFromItemChanges<ItemTypeType extends ItemType = any>(changesObject: TransactionItemEntryChanges<ItemTypeType>): FieldMap<ItemTypeType>;
312
+ createItemResource<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, isRoot?: boolean, isNew?: boolean): ItemResource<ItemTypeType>;
313
+ createItemResources<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>>(itemEntries: Array<ItemEntry<ItemTypeType>>): Array<ItemResource<ItemTypeType, ColumnIds>>;
314
+ processLinkedItems<ItemTypeType extends ApiEnumItemType>(linkedEntries: ItemTypeMap<ItemEntry[]>): ItemResourcesItemTypeMap<ItemResource<ItemTypeType>>;
315
+ createCollectionResource<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>, initialEntries: Array<ItemEntry<ItemTypeType>>): CollectionResource<ItemTypeType>;
316
+ getChangesFromItemChanges<ItemTypeType extends ApiEnumItemType = any>(changesObject: TransactionItemEntryChanges<FieldMap<ItemTypeType>>): FieldMap<ItemTypeType>;
316
317
  /**
317
318
  * @description
318
319
  * Fetches all required columns to match/fit in collections
@@ -1,7 +1,7 @@
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
1
2
  import { ApiQuery, ApiRequestColumns, CollectionQuery, ColumnSubsetCache, ItemEntryOptions, ParentIdMap, PromiseInterface, TransactionCollectionHandlerDependencyInterface, TransactionItemHandler } from '../../../index';
2
3
  import { ItemEntry } from '../../../models';
3
4
  import { CollectionOptions } from '../../../models/CollectionOptions';
4
- import { ItemId, ItemType } from '../../../types';
5
5
  import { CachedQueryHandlerBase, CachedQueryItem } from '../CachedQueryHandlerBase';
6
6
  import { TransactionCache } from './TransactionCache';
7
7
  export declare class TransactionCachedQueryHandler extends CachedQueryHandlerBase {
@@ -9,15 +9,15 @@ 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
- __fetchCachedQueryItem<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
13
- __expandCachedQuery<ItemTypeType extends ItemType = any>(cachedQuery: CachedQueryItem<ItemTypeType>, newColumns: ApiRequestColumns, force?: boolean): PromiseInterface<CachedQueryItem<ItemTypeType>>;
14
- __addItemEntriesToCachedQueries<ItemTypeType extends ItemType>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): void;
12
+ __fetchCachedQueryItem<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
13
+ __expandCachedQuery<ItemTypeType extends ApiEnumItemType>(cachedQuery: CachedQueryItem<ItemTypeType>, newColumns: ApiRequestColumns, force?: boolean): PromiseInterface<CachedQueryItem<ItemTypeType>>;
14
+ __addItemEntriesToCachedQueries<ItemTypeType extends ApiEnumItemType = any>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): void;
15
15
  /**
16
16
  * @remark
17
17
  * todo not only linkedTo should be checked, but it should check if there's a local ID anywhere in the query
18
18
  * ({<field>: <localId>}) is also a local query
19
19
  */
20
20
  isLocal(options: CollectionOptions | ItemEntryOptions, query: ApiQuery): boolean;
21
- __fetchItemEntriesByQueryData<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptions<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, collectionQuery: CollectionQuery): PromiseInterface<CachedQueryItem<ItemTypeType>>;
22
- __fetchLinkedCachedQueryItems<ItemTypeType extends ItemType>(parentType: ItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<ParentIdMap<CachedQueryItem<ItemTypeType>>>;
21
+ __fetchItemEntriesByQueryData<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, collectionQuery: CollectionQuery): PromiseInterface<CachedQueryItem<ItemTypeType>>;
22
+ __fetchLinkedCachedQueryItems<ItemTypeType extends ApiEnumItemType>(parentType: ApiEnumItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<ParentIdMap<CachedQueryItem<ItemTypeType>>>;
23
23
  }
@@ -1,6 +1,7 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { TransactionCollectionHandlerDependencyInterface } from '../../../interfaces/TransactionCollectionHandlerDependencyInterface';
2
3
  import { CollectionEntry, CollectionResource, ItemEntry } from '../../../models';
3
- import { ApiRequestColumns, ItemIdConversionMap, ItemType, ModifyFieldsCallback, PromiseInterface } from '../../../types';
4
+ import { ApiRequestColumns, ItemIdConversionMap, ModifyFieldsCallback, PromiseInterface } from '../../../types';
4
5
  import { ChangesDelta } from '../../ChangesDelta';
5
6
  import { TransactionCache } from './TransactionCache';
6
7
  import { TransactionCachedQueryHandler } from './TransactionCachedQueryHandler';
@@ -16,7 +17,7 @@ export declare class TransactionCollectionHandler {
16
17
  };
17
18
  };
18
19
  constructor(itemHandler: TransactionItemHandler, cachedQueryHandler: TransactionCachedQueryHandler, dependencies: TransactionCollectionHandlerDependencyInterface, transaction: TransactionCache);
19
- expandCollectionResource<ItemTypeType extends ItemType = any>(collectionResource: CollectionResource<ItemTypeType>, newColumns: ApiRequestColumns): PromiseInterface<void>;
20
+ expandCollectionResource<ItemTypeType extends ApiEnumItemType = any>(collectionResource: CollectionResource<ItemTypeType>, newColumns: ApiRequestColumns): PromiseInterface<void>;
20
21
  addResource(resource: CollectionResource): void;
21
22
  clearResource(resource: CollectionResource): void;
22
23
  /**