@rentman/rm-core 11.0.4 → 12.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 (65) hide show
  1. package/changelog.md +15 -0
  2. package/dist/rm-core.js +1902 -1798
  3. package/dist/rm-core.min.js +1 -1
  4. package/dist/types/src/FieldLookupProxy.d.ts +4 -0
  5. package/dist/types/src/classes/ApiFormatter.d.ts +1 -4
  6. package/dist/types/src/classes/BusinessLogicManager/BusinessLogicRule.d.ts +8 -9
  7. package/dist/types/src/classes/BusinessLogicManager/Customfield/CustomFieldTypeBusinessLogicRule.d.ts +1 -2
  8. package/dist/types/src/classes/BusinessLogicManager/Documents/DocumentTemplateBusinessLogicRule.d.ts +1 -2
  9. package/dist/types/src/classes/BusinessLogicManager/Exemplaar/ExemplaarAanschafdatumBusinessLogicRule.d.ts +1 -2
  10. package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurBetalingsconditieBusinessLogicRule.d.ts +1 -2
  11. package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurDatumBusinessLogicRule.d.ts +1 -2
  12. package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurNumberseriesBusinessLogicRule.d.ts +1 -2
  13. package/dist/types/src/classes/BusinessLogicManager/Functie/FunctieNaaminternBusinessLogicRule.d.ts +1 -2
  14. package/dist/types/src/classes/BusinessLogicManager/Functie/FunctieTwowayBusinessLogicRule.d.ts +1 -2
  15. package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalTypeBusinessLogicRule.d.ts +1 -2
  16. package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalVerhuurBusinessLogicRule.d.ts +1 -2
  17. package/dist/types/src/classes/BusinessLogicManager/Materiaal/SurfaceArticleSizeBusinessLogicRule.d.ts +1 -2
  18. package/dist/types/src/classes/BusinessLogicManager/OfferteContract/OfferteContractDatumBusinessLogicRule.d.ts +1 -2
  19. package/dist/types/src/classes/BusinessLogicManager/PlanningPersoneelTransport/PlanningPersoneelTransportBusinessLogicRule.d.ts +1 -2
  20. package/dist/types/src/classes/BusinessLogicManager/Project/ProjectClientNoteBusinessLogicRule.d.ts +1 -2
  21. package/dist/types/src/classes/BusinessLogicManager/Reparatie/ReparatieExemplaarBusinessLogicRule.d.ts +1 -2
  22. package/dist/types/src/classes/BusinessLogicManager/Rol/RolDocumentAccessBusinessLogicRule.d.ts +1 -2
  23. package/dist/types/src/classes/BusinessLogicManager/Rol/RolEditOwnDataBusinessLogicRule.d.ts +1 -2
  24. package/dist/types/src/classes/BusinessLogicManager/Rol/RolFileAccessBusinessLogicRule.d.ts +1 -2
  25. package/dist/types/src/classes/BusinessLogicManager/Rol/RolPersoneelsplannerToegangBusinessLogicRule.d.ts +1 -2
  26. package/dist/types/src/classes/BusinessLogicManager/Rol/RolProjectenBewerkenBusinessLogicRule.d.ts +1 -2
  27. package/dist/types/src/classes/BusinessLogicManager/Rol/RolProjectenToegangBusinessLogicRule.d.ts +1 -2
  28. package/dist/types/src/classes/CacheSyncer.d.ts +3 -2
  29. package/dist/types/src/classes/ChangesDelta.d.ts +3 -3
  30. package/dist/types/src/classes/ChangesDeltaBase.d.ts +20 -15
  31. package/dist/types/src/classes/ColumnUtil.d.ts +14 -14
  32. package/dist/types/src/classes/InternalChangesDelta.d.ts +5 -5
  33. package/dist/types/src/classes/QueryMatcher.d.ts +8 -7
  34. package/dist/types/src/classes/RequestBuffer.d.ts +2 -2
  35. package/dist/types/src/classes/RequestBufferManager.d.ts +2 -2
  36. package/dist/types/src/classes/RequestColumnExpansion.d.ts +6 -8
  37. package/dist/types/src/classes/RequestColumnsOperationsCache.d.ts +46 -0
  38. package/dist/types/src/classes/TemplateCache.d.ts +2 -2
  39. package/dist/types/src/classes/cache/AbstractCache.d.ts +2 -3
  40. package/dist/types/src/classes/cache/CachedQueryHandlerBase.d.ts +18 -17
  41. package/dist/types/src/classes/cache/ItemHandlerBase.d.ts +7 -8
  42. package/dist/types/src/classes/cache/server/ServerCache.d.ts +2 -3
  43. package/dist/types/src/classes/cache/server/ServerCachedQueryHandler.d.ts +10 -9
  44. package/dist/types/src/classes/cache/server/ServerItemHandler.d.ts +3 -7
  45. package/dist/types/src/classes/cache/transaction/TransactionCache.d.ts +3 -11
  46. package/dist/types/src/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +17 -6
  47. package/dist/types/src/classes/cache/transaction/TransactionItemHandler.d.ts +5 -15
  48. package/dist/types/src/core.d.ts +2 -2
  49. package/dist/types/src/factories/CacheSyncerFactory.d.ts +5 -1
  50. package/dist/types/src/factories/QueryMatcherFactory.d.ts +4 -3
  51. package/dist/types/src/factories/RequestColumnExpansionFactory.d.ts +1 -3
  52. package/dist/types/src/factories/RequestColumnsOperationsCacheFactory.d.ts +8 -0
  53. package/dist/types/src/interfaces/AbstractCacheDependencyInterface.d.ts +3 -3
  54. package/dist/types/src/interfaces/TransactionCollectionHandlerDependencyInterface.d.ts +7 -7
  55. package/dist/types/src/interfaces/TransactionItemHandlerDependencyInterface.d.ts +3 -3
  56. package/dist/types/src/internal.d.ts +2 -2
  57. package/dist/types/src/models/CachedQueryItem.d.ts +3 -3
  58. package/dist/types/src/models/CollectionOptions.d.ts +2 -2
  59. package/dist/types/src/models/CollectionResource.d.ts +2 -2
  60. package/dist/types/src/types/ItemTypesCollection.d.ts +19 -6
  61. package/dist/types/tests/integration/helpers/helpers.d.ts +1 -0
  62. package/dist/types/tests/integration/transactions/field_lookup.test.d.ts +1 -0
  63. package/package.json +1 -1
  64. package/dist/types/src/classes/ColumnSubsetCache.d.ts +0 -14
  65. package/dist/types/src/factories/ColumnSubsetCacheFactory.d.ts +0 -8
@@ -1,11 +1,5 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { ApiQuery, ApiRequestColumns, ChangesDelta, ChangesDeltaBase, ChangesDeltaItemCreateDelta, ChangesDeltaItemUpdateDelta, ChangesDeltaResult, ColumnSubsetCache, DeregFunction, FieldChangeCallback, FieldMap, ItemEntry, ItemEntryChanges, ItemEntryChangesTuple, ItemEntryOptions, ItemHandlerBase, ItemIdConversionMap, ItemTypeMap, ModifyFieldsCallback, ProcessItemEntryChangesResult, PromiseInterface, ResponseColumnItemTypeMap, TransactionCache, TransactionItemHandlerDependencyInterface, TransactionValidator } from '../../../internal';
3
- export interface TransactionItemEntryChanges<ItemTypeType extends ApiEnumItemType> extends ItemEntryChanges<ItemTypeType> {
4
- initial: FieldMap<ItemTypeType>;
5
- }
6
- export interface TransactionItemEntryChangesTuple<ItemTypeType extends ApiEnumItemType> extends ItemEntryChangesTuple<ItemTypeType> {
7
- changes: TransactionItemEntryChanges<ItemTypeType>;
8
- }
2
+ import { ApiQuery, ApiRequestColumns, ChangesDelta, ChangesDeltaBase, ChangesDeltaItemCreateDelta, ChangesDeltaItemUpdateDelta, ChangesDeltaResult, DeregFunction, FieldChangeCallback, ItemEntry, ItemEntryOptions, ItemHandlerBase, ItemIdConversionMap, ItemTypeMap, ModifyFieldsCallback, ProcessItemEntryChangesResult, PromiseInterface, RequestColumnsOperationsCache, ResponseColumnItemTypeMap, TransactionCache, TransactionItemHandlerDependencyInterface, TransactionValidator } from '../../../internal';
9
3
  /**
10
4
  * @description
11
5
  * In a {@link TransactionCache Transaction} only local items can be stored, so all entries in {@link TransactionItemHandler.entries this.entries} are local
@@ -20,18 +14,14 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
20
14
  * Can contain both local and non-local {@link ItemEntry itemEntries}
21
15
  */
22
16
  deletedItems: ItemTypeMap<ItemEntry[]>;
23
- itemChanges: {
24
- [itemEntryId: string]: TransactionItemEntryChanges<any>;
25
- };
26
17
  fieldChangeCallbacks: {
27
18
  [itemType: string]: {
28
19
  [itemId: string]: FieldChangeCallback[];
29
20
  };
30
21
  };
31
22
  constructor(dependencies: TransactionItemHandlerDependencyInterface, transaction: TransactionCache, validator?: TransactionValidator | undefined);
32
- updateLocalItemIdReferences(itemType: ApiEnumItemType, oldItemId: ItemId, newItemId: ItemId, changesDelta?: ChangesDeltaBase): void;
23
+ updateLocalItemIdReferences(itemType: ApiEnumItemType, oldItemId: ItemId, newItemId: ItemId): void;
33
24
  registerFieldChangeCallback<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, callback: FieldChangeCallback<ItemTypeType>): DeregFunction;
34
- copyTransactionItemEntryChanges<ItemTypeType extends ApiEnumItemType>(itemEntryChanges: TransactionItemEntryChanges<ItemTypeType>, entry: ItemEntry<ItemTypeType>): TransactionItemEntryChanges<ItemTypeType>;
35
25
  createItemEntry(createTuple: ChangesDeltaItemCreateDelta): ItemEntry;
36
26
  /**
37
27
  * @description
@@ -72,8 +62,8 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
72
62
  */
73
63
  fetchNewItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions, isRoot?: boolean): PromiseInterface<ChangesDeltaResult>;
74
64
  fetchItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>[]>;
75
- fetchTitle(itemType: ApiEnumItemType, itemId: ItemId): PromiseInterface<string>;
76
- resolveLocalItemEntry<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemEntry: ItemEntry<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
65
+ fetchTitle<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId): PromiseInterface<string>;
66
+ resolveLocalItemEntry<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemEntry: ItemEntry<ItemTypeType>, columnsOperationsCache: RequestColumnsOperationsCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
77
67
  expandLocalItemEntries<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDeltaBase, itemType: ItemTypeType, itemEntries: ItemEntry<ItemTypeType>[], requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): PromiseInterface<ItemEntry<ItemTypeType>[]>;
78
68
  /**
79
69
  * @description
@@ -82,7 +72,7 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
82
72
  * @remark
83
73
  * Assumes the the ItemEntry with the given ItemType-ItemId is already cached
84
74
  */
85
- fetchLocalItemEntryData<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemType: ItemTypeType, itemId: ItemId, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
75
+ fetchLocalItemEntryData<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemType: ItemTypeType, itemId: ItemId, columnsOperationsCache: RequestColumnsOperationsCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
86
76
  fetchLocalItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>[]>;
87
77
  private getColumnDifference;
88
78
  private expandLocalItemEntry;
@@ -1,6 +1,6 @@
1
1
  import { ApiModuleFunctionLocalsGetLocals } from '@rentman/backend-types';
2
2
  import { BusinessLogicManager } from './classes/BusinessLogicManager/BusinessLogicManager';
3
- import { ApiFormatter, ApiRequestService, ApiRequestServiceInterface, ApiResponseProcessorFactory, AuthInterface, CacheSyncerFactory, ChangesCompilationFactory, ChangesDeltaFactory, ChangesProcessorFactory, CollectionEntryFactory, CollectionEntryService, CollectionResourceFactory, CollectionResourceService, ColumnCache, ColumnExpansionFactory, ColumnHandler, ColumnInfoFactory, ColumnSetFactory, ColumnSubsetCacheFactory, ColumnUtil, ConversionMapService, CreateRequestFactory, ErrorHandlerInterface, ExceptionHandlerInterface, ItemCacheFactory, ItemCreateService, ItemEntryFactory, ItemEntryService, ItemResourceFactory, KeyService, LinkTreeServiceInterface, LockService, ModuleChangesCompilationFactory, PromiseLibraryInterface, QueryMatcherFactory, QueryParserFactory, QueryService, RequestColumnExpansionFactory, SocketMessageHandler, TemplateCache, TemplateFactory, TransactionCacheFactory } from './internal';
3
+ import { ApiFormatter, ApiRequestService, ApiRequestServiceInterface, ApiResponseProcessorFactory, AuthInterface, CacheSyncerFactory, ChangesCompilationFactory, ChangesDeltaFactory, ChangesProcessorFactory, CollectionEntryFactory, CollectionEntryService, CollectionResourceFactory, CollectionResourceService, ColumnCache, ColumnExpansionFactory, ColumnHandler, ColumnInfoFactory, ColumnSetFactory, ColumnUtil, ConversionMapService, CreateRequestFactory, ErrorHandlerInterface, ExceptionHandlerInterface, ItemCacheFactory, ItemCreateService, ItemEntryFactory, ItemEntryService, ItemResourceFactory, KeyService, LinkTreeServiceInterface, LockService, ModuleChangesCompilationFactory, PromiseLibraryInterface, QueryMatcherFactory, QueryParserFactory, QueryService, RequestColumnExpansionFactory, RequestColumnsOperationsCacheFactory, SocketMessageHandler, TemplateCache, TemplateFactory, TransactionCacheFactory } from './internal';
4
4
  export declare class RmCore {
5
5
  version: string;
6
6
  noop: typeof noop;
@@ -20,7 +20,7 @@ export declare class RmCore {
20
20
  columnHandler: ColumnHandler;
21
21
  columnInfoFactory: ColumnInfoFactory;
22
22
  columnSetFactory: ColumnSetFactory;
23
- columnSubsetCacheFactory: ColumnSubsetCacheFactory;
23
+ requestColumnOperationsCacheFactory: RequestColumnsOperationsCacheFactory;
24
24
  columnUtil: ColumnUtil;
25
25
  conversionMapService: ConversionMapService;
26
26
  createRequestFactory: CreateRequestFactory;
@@ -1,4 +1,5 @@
1
- import { AbstractCache, ApiRequestService, CacheSyncer, CacheSyncerQueryMap, PromiseLibraryInterface, QueryMatcherFactory, QueryService } from '../internal';
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { AbstractCache, ApiRequestService, CachedQueryItem, CacheSyncer, CacheSyncerQueryMap, PromiseLibraryInterface, QueryMatcherFactory, QueryService } from '../internal';
2
3
  export declare class CacheSyncerFactory {
3
4
  private queryMatcherFactory;
4
5
  private queryService;
@@ -6,5 +7,8 @@ export declare class CacheSyncerFactory {
6
7
  private promiseService;
7
8
  constructor(queryMatcherFactory: QueryMatcherFactory, queryService: QueryService, apiRequestService: ApiRequestService, promiseService: PromiseLibraryInterface);
8
9
  construct(transaction: AbstractCache, queryStringMap?: CacheSyncerQueryMap): CacheSyncer;
10
+ constructForItemType(transaction: AbstractCache, itemType: ApiEnumItemType): CacheSyncer;
11
+ constructForCachedQuery(transaction: AbstractCache, cachedQueryItem: CachedQueryItem): CacheSyncer;
9
12
  private collectQueries;
13
+ private createCacheSyncerQueryMapEntry;
10
14
  }
@@ -1,7 +1,8 @@
1
1
  import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ApiFormatter, EntryParentNull, FieldMap, QueryMatcher } from '../internal';
2
+ import { ApiFormatter, FieldMap, LinkTreeServiceInterface, QueryMatcher } from '../internal';
3
3
  export declare class QueryMatcherFactory {
4
4
  private apiFormatter;
5
- constructor(apiFormatter: ApiFormatter);
6
- construct(itemType: ApiEnumItemType, fields: FieldMap | [FieldMap, FieldMap], parent: EntryParentNull): QueryMatcher;
5
+ private linkTreeService;
6
+ constructor(apiFormatter: ApiFormatter, linkTreeService: LinkTreeServiceInterface);
7
+ construct<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, fields: FieldMap | [FieldMap, FieldMap]): QueryMatcher<ItemTypeType>;
7
8
  }
@@ -1,8 +1,6 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { AbstractCache, ApiRequestColumnMap, ApiRequestColumns, ColumnUtil, RequestColumnExpansion } from '../internal';
1
+ import { ColumnUtil, RequestColumnExpansion } from '../internal';
3
2
  export declare class RequestColumnExpansionFactory {
4
3
  private columnUtil;
5
4
  constructor(columnUtil: ColumnUtil);
6
5
  construct(): RequestColumnExpansion;
7
- expandColumnsWithCachedQueryColumns(transaction: AbstractCache, itemType: ApiEnumItemType, requestColumns?: ApiRequestColumns, requestColumnExpansion?: RequestColumnExpansion): ApiRequestColumnMap;
8
6
  }
@@ -0,0 +1,8 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { ApiRequestColumns, ColumnCache, ColumnUtil, RequestColumnsOperationsCache } from '../internal';
3
+ export declare class RequestColumnsOperationsCacheFactory {
4
+ private columnUtil;
5
+ private columnCache;
6
+ constructor(columnUtil: ColumnUtil, columnCache: ColumnCache);
7
+ construct<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, requestColumns: ApiRequestColumns): RequestColumnsOperationsCache<ItemTypeType>;
8
+ }
@@ -1,10 +1,10 @@
1
1
  import { BusinessLogicManager } from '../classes/BusinessLogicManager/BusinessLogicManager';
2
- import { ApiFormatter, ApiRequestService, AuthInterface, CacheSyncerFactory, ChangesDeltaFactory, CollectionEntryFactory, CollectionEntryService, CollectionResourceFactory, ColumnCache, ColumnExpansionFactory, ColumnHandler, ColumnSetFactory, ColumnSubsetCacheFactory, ColumnUtil, ConversionMapService, ErrorHandlerInterface, ExceptionHandlerInterface, ItemCacheFactory, ItemCreateService, ItemEntryFactory, ItemEntryService, ItemResourceFactory, KeyService, LinkTreeServiceInterface, LockService, ModuleChangesCompilationFactory, PromiseLibraryInterface, QueryMatcherFactory, QueryParserFactory, QueryService, RequestBufferManager, RequestColumnExpansionFactory, TemplateCache } from '../internal';
2
+ import { ApiFormatter, ApiRequestService, AuthInterface, CacheSyncerFactory, ChangesDeltaFactory, CollectionEntryFactory, CollectionEntryService, CollectionResourceFactory, ColumnCache, ColumnExpansionFactory, ColumnHandler, ColumnSetFactory, ColumnUtil, ConversionMapService, ErrorHandlerInterface, ExceptionHandlerInterface, ItemCacheFactory, ItemCreateService, ItemEntryFactory, ItemEntryService, ItemResourceFactory, KeyService, LinkTreeServiceInterface, LockService, ModuleChangesCompilationFactory, PromiseLibraryInterface, QueryMatcherFactory, QueryParserFactory, QueryService, RequestBufferManager, RequestColumnExpansionFactory, RequestColumnsOperationsCacheFactory, TemplateCache } from '../internal';
3
3
  export interface AbstractCacheDependencyInterface {
4
- businessLogicManager: BusinessLogicManager;
5
4
  apiFormatter: ApiFormatter;
6
5
  apiRequestService: ApiRequestService;
7
6
  authInterface: AuthInterface;
7
+ businessLogicManager: BusinessLogicManager;
8
8
  changesDeltaFactory: ChangesDeltaFactory;
9
9
  collectionEntryFactory: CollectionEntryFactory;
10
10
  collectionEntryService: CollectionEntryService;
@@ -14,7 +14,6 @@ export interface AbstractCacheDependencyInterface {
14
14
  columnExpansionFactory: ColumnExpansionFactory;
15
15
  columnHandler: ColumnHandler;
16
16
  columnSetFactory: ColumnSetFactory;
17
- columnSubsetCacheFactory: ColumnSubsetCacheFactory;
18
17
  columnUtil: ColumnUtil;
19
18
  conversionMapService: ConversionMapService;
20
19
  errorHandler: ErrorHandlerInterface;
@@ -34,5 +33,6 @@ export interface AbstractCacheDependencyInterface {
34
33
  queryService: QueryService;
35
34
  requestBufferManager: RequestBufferManager;
36
35
  requestColumnExpansionFactory: RequestColumnExpansionFactory;
36
+ requestColumnsOperationsCacheFactory: RequestColumnsOperationsCacheFactory;
37
37
  templateCache: TemplateCache;
38
38
  }
@@ -1,17 +1,17 @@
1
- import { CacheSyncerFactory, ChangesDeltaFactory, CollectionEntryService, ColumnCache, ColumnExpansionFactory, ColumnHandler, ColumnSubsetCacheFactory, ColumnUtil, ErrorHandlerInterface, ExceptionHandlerInterface, KeyService, PromiseLibraryInterface, QueryService, RequestColumnExpansionFactory } from '../internal';
1
+ import { CacheSyncerFactory, ChangesDeltaFactory, CollectionEntryService, ColumnCache, ColumnExpansionFactory, ColumnHandler, ColumnUtil, ErrorHandlerInterface, ExceptionHandlerInterface, KeyService, PromiseLibraryInterface, QueryService, RequestColumnExpansionFactory, RequestColumnsOperationsCacheFactory } from '../internal';
2
2
  export interface TransactionCollectionHandlerDependencyInterface {
3
- requestColumnExpansionFactory: RequestColumnExpansionFactory;
4
- columnUtil: ColumnUtil;
5
- columnSubsetCacheFactory: ColumnSubsetCacheFactory;
6
- columnExpansionFactory: ColumnExpansionFactory;
7
3
  changesDeltaFactory: ChangesDeltaFactory;
8
4
  collectionEntryService: CollectionEntryService;
9
5
  collectionMatcherFactory: CacheSyncerFactory;
6
+ columnCache: ColumnCache;
7
+ columnExpansionFactory: ColumnExpansionFactory;
10
8
  columnHandler: ColumnHandler;
9
+ columnUtil: ColumnUtil;
11
10
  errorHandler: ErrorHandlerInterface;
11
+ exceptionHandler: ExceptionHandlerInterface;
12
12
  keyService: KeyService;
13
13
  promiseService: PromiseLibraryInterface;
14
- exceptionHandler: ExceptionHandlerInterface;
15
14
  queryService: QueryService;
16
- columnCache: ColumnCache;
15
+ requestColumnExpansionFactory: RequestColumnExpansionFactory;
16
+ requestColumnsOperationsCacheFactory: RequestColumnsOperationsCacheFactory;
17
17
  }
@@ -1,11 +1,11 @@
1
- import { ApiFormatter, ChangesDeltaFactory, CollectionEntryService, ColumnExpansionFactory, ColumnHandler, ColumnSetFactory, ColumnSubsetCacheFactory, ColumnUtil, ConversionMapService, ErrorHandlerInterface, ExceptionHandlerInterface, ItemCacheFactory, ItemCreateService, ItemEntryFactory, ItemEntryService, KeyService, PromiseLibraryInterface, RequestColumnExpansionFactory, TemplateCache } from '../internal';
1
+ import { ApiFormatter, ChangesDeltaFactory, CollectionEntryService, ColumnExpansionFactory, ColumnHandler, ColumnSetFactory, ColumnUtil, ConversionMapService, ErrorHandlerInterface, ExceptionHandlerInterface, ItemCacheFactory, ItemCreateService, ItemEntryFactory, ItemEntryService, KeyService, PromiseLibraryInterface, RequestColumnExpansionFactory, RequestColumnsOperationsCacheFactory, TemplateCache } from '../internal';
2
2
  export interface TransactionItemHandlerDependencyInterface {
3
3
  apiFormatter: ApiFormatter;
4
4
  changesDeltaFactory: ChangesDeltaFactory;
5
+ collectionEntryService: CollectionEntryService;
5
6
  columnExpansionFactory: ColumnExpansionFactory;
6
7
  columnHandler: ColumnHandler;
7
8
  columnSetFactory: ColumnSetFactory;
8
- columnSubsetCacheFactory: ColumnSubsetCacheFactory;
9
9
  columnUtil: ColumnUtil;
10
10
  conversionMapService: ConversionMapService;
11
11
  errorHandler: ErrorHandlerInterface;
@@ -17,6 +17,6 @@ export interface TransactionItemHandlerDependencyInterface {
17
17
  keyService: KeyService;
18
18
  promiseService: PromiseLibraryInterface;
19
19
  requestColumnExpansionFactory: RequestColumnExpansionFactory;
20
+ requestColumnsOperationsCacheFactory: RequestColumnsOperationsCacheFactory;
20
21
  templateCache: TemplateCache;
21
- collectionEntryService: CollectionEntryService;
22
22
  }
@@ -34,7 +34,7 @@ export * from './classes/ColumnExpansion';
34
34
  export * from './classes/ColumnHandler';
35
35
  export * from './classes/ColumnInfo';
36
36
  export * from './classes/ColumnSet';
37
- export * from './classes/ColumnSubsetCache';
37
+ export * from './classes/RequestColumnsOperationsCache';
38
38
  export * from './classes/ColumnUtil';
39
39
  export * from './classes/ConversionMapService';
40
40
  export * from './classes/CreateRequest';
@@ -108,7 +108,7 @@ export * from './factories/CollectionResourceFactory';
108
108
  export * from './factories/ColumnExpansionFactory';
109
109
  export * from './factories/ColumnInfoFactory';
110
110
  export * from './factories/ColumnSetFactory';
111
- export * from './factories/ColumnSubsetCacheFactory';
111
+ export * from './factories/RequestColumnsOperationsCacheFactory';
112
112
  export * from './factories/CreateRequestFactory';
113
113
  export * from './factories/ItemCacheFactory';
114
114
  export * from './factories/ItemEntryFactory';
@@ -1,10 +1,10 @@
1
1
  import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ApiRequestColumns, CollectionQuery, ItemEntry, PromiseInterface, PromiseLibraryInterface } from '../internal';
2
+ import { CollectionQuery, ItemEntry, PromiseInterface, PromiseLibraryInterface, RequestColumnsTuple } from '../internal';
3
3
  export declare class CachedQueryItem<ItemTypeType extends ApiEnumItemType = any> {
4
4
  readonly itemType: ItemTypeType;
5
5
  query: CollectionQuery;
6
6
  items: ItemEntry<ItemTypeType>[];
7
- requestColumns: ApiRequestColumns;
7
+ requestColumnsTuple: RequestColumnsTuple;
8
8
  private promiseService;
9
9
  promise: PromiseInterface<this>;
10
10
  /**
@@ -29,7 +29,7 @@ export declare class CachedQueryItem<ItemTypeType extends ApiEnumItemType = any>
29
29
  get matches(): number;
30
30
  creation: Date;
31
31
  private deferred;
32
- constructor(itemType: ItemTypeType, query: CollectionQuery, items: ItemEntry<ItemTypeType>[], requestColumns: ApiRequestColumns, promiseService: PromiseLibraryInterface);
32
+ constructor(itemType: ItemTypeType, query: CollectionQuery, items: ItemEntry<ItemTypeType>[], requestColumnsTuple: RequestColumnsTuple, promiseService: PromiseLibraryInterface);
33
33
  itemsResolved(): boolean;
34
34
  /**
35
35
  * Resolve can be called on items that are already resolved. The request buffer might or might not combine
@@ -1,6 +1,6 @@
1
1
  import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ApiQuery, ApiRequestColumns, ApiRequestLimit, ChildCollectionResourcesNull, CollectionResource, EntryParentNull, FieldChangeCallback, ItemResource, ItemTypeColumnIds } from '../internal';
3
- export declare type CollectionResourceOnRemoveCallback<ItemTypeType extends ApiEnumItemType, ColumnIds extends ItemTypeColumnIds<ItemTypeType> = ItemTypeColumnIds<ItemTypeType>, Children extends ChildCollectionResourcesNull = any> = (itemResources: ItemResource<ItemTypeType, ColumnIds, Children>[], collectionResource: CollectionResource<ItemTypeType, ColumnIds, Children>, isCalledAfterSocketUpdate: boolean) => void;
2
+ import { ApiQuery, ApiRequestColumns, ApiRequestLimit, ChildCollectionResourcesNull, CollectionResource, EntryParentNull, FieldChangeCallback, ItemEntry, ItemResource, ItemTypeColumnIds } from '../internal';
3
+ export declare type CollectionResourceOnRemoveCallback<ItemTypeType extends ApiEnumItemType, ColumnIds extends ItemTypeColumnIds<ItemTypeType> = ItemTypeColumnIds<ItemTypeType>, Children extends ChildCollectionResourcesNull = any> = (itemEntries: ItemEntry<ItemTypeType>[], collectionResource: CollectionResource<ItemTypeType, ColumnIds, Children>, isCalledAfterSocketUpdate: boolean) => void;
4
4
  export declare type CollectionResourceOnAddCallback<ItemTypeType extends ApiEnumItemType, ColumnIds extends ItemTypeColumnIds<ItemTypeType> = ItemTypeColumnIds<ItemTypeType>, Children extends ChildCollectionResourcesNull = any> = (itemResources: ItemResource<ItemTypeType, ColumnIds, Children>[], collectionResource: CollectionResource<ItemTypeType, ColumnIds, Children>, isInitialCall: boolean, isCalledAfterSocketUpdate: boolean) => void;
5
5
  export declare type ChildCollectionOptions = {
6
6
  [ChildItemType in ApiEnumItemType]?: CollectionOptions<ChildItemType>;
@@ -52,10 +52,10 @@ export declare class CollectionResource<ItemTypeType extends ApiEnumItemType = a
52
52
  * Returns the {@link ItemResource ItemResources} that where removed from the {@link CollectionResource collection}.
53
53
  * Filters on {@link ItemResource ItemResource}.{@link ItemEntry entry} === {@link ItemEntry entry}
54
54
  */
55
- removeItemResources(itemEntries: ItemEntry<ItemTypeType>[], isCalledAfterSocketUpdate: boolean): ItemResource<ItemTypeType, ColumnIds, Children>[];
55
+ removeItemResources(itemEntries: ItemEntry<ItemTypeType>[], isCalledAfterSocketUpdate: boolean): ItemEntry<ItemTypeType>[];
56
56
  callOnAdd(itemResources: ItemResource<ItemTypeType, ColumnIds, Children>[], isInitialCall?: boolean, isCalledAfterSocketUpdate?: boolean): void;
57
57
  callOnChange(itemEntry: ItemEntry<ItemTypeType>, compareField: CompareFieldCallback<FieldMap<ItemTypeType, ColumnIds>>, fields: FieldMap<ItemTypeType, ColumnIds>, isCalledAfterSocketUpdate: boolean, previous: FieldMap<ItemTypeType, ColumnIds>): void;
58
- callOnRemove(itemResources: ItemResource<ItemTypeType, ColumnIds, Children>[], isCalledAfterSocketUpdate: boolean): void;
58
+ callOnRemove(itemEntries: ItemEntry<ItemTypeType>[], isCalledAfterSocketUpdate: boolean): void;
59
59
  forEach(callback: (itemResource: ItemResource<ItemTypeType, ColumnIds, Children>) => void): void;
60
60
  filter(callback: (itemResource: ItemResource<ItemTypeType, ColumnIds, Children>) => boolean): ItemResource<ItemTypeType, ColumnIds, Children>[];
61
61
  first(callback: (itemResource: ItemResource<ItemTypeType, ColumnIds, Children>) => boolean): ItemResource<ItemTypeType, ColumnIds, Children> | null;
@@ -250,9 +250,22 @@ export declare type ApiRequestItemMap = {
250
250
  };
251
251
  };
252
252
  export declare type ApiRequestColumn = string | {
253
- [columnId: string]: ApiRequestColumn[];
253
+ readonly [columnId: string]: ApiRequestColumnArray;
254
+ };
255
+ export declare type ApiRequestColumnArray = readonly ApiRequestColumn[];
256
+ export declare type ApiRequestColumns = ApiRequestColumnArray | true;
257
+ export declare type MutableApiRequestColumnArray = ApiRequestColumn[];
258
+ /**
259
+ * Both the array and string representation are read-only, because whenever the object changes, the string representation
260
+ * should change too.
261
+ */
262
+ export declare type RequestColumnsTuple = {
263
+ readonly object: true;
264
+ readonly string: 'true';
265
+ } | {
266
+ readonly object: ApiRequestColumns;
267
+ readonly string: string;
254
268
  };
255
- export declare type ApiRequestColumns = ApiRequestColumn[] | true;
256
269
  export declare type ApiRequestColumnMap = {
257
270
  [itemType: string]: ApiRequestColumns;
258
271
  };
@@ -285,11 +298,11 @@ export declare enum ApiLinkTreeType {
285
298
  export declare type ApiLinkTreeEntryItemTable = {
286
299
  type: ApiLinkTreeType.ITEMTABLE;
287
300
  };
288
- export declare type ApiLinkTreeEntryDirect = {
301
+ export declare type ApiLinkTreeEntryDirect<ItemTypeType extends ApiEnumItemType = any> = {
289
302
  type: ApiLinkTreeType.DIRECT;
290
- field: string;
303
+ field: ItemTypeColumnId<ItemTypeType>;
291
304
  };
292
- export declare type ApiLinkTreeEntry = ApiLinkTreeEntryItemTable | ApiLinkTreeEntryDirect;
305
+ export declare type ApiLinkTreeEntry<ItemTypeType extends ApiEnumItemType = any> = ApiLinkTreeEntryItemTable | ApiLinkTreeEntryDirect<ItemTypeType>;
293
306
  export declare type ApiLinkTree = {
294
307
  [itemType: string]: {
295
308
  [childType: string]: ApiLinkTreeEntry;
@@ -324,7 +337,7 @@ export declare type OnAddCallback<ItemTypeType extends ApiEnumItemType, ColumnId
324
337
  isCalledAfterSocketUpdate: boolean;
325
338
  }) => void;
326
339
  export declare type OnRemoveCallback<ItemTypeType extends ApiEnumItemType, ColumnIds extends ItemTypeColumnIds<ItemTypeType>, Children extends ChildCollectionResourcesNull> = (args: {
327
- itemResources: ItemResource<ItemTypeType, ColumnIds, Children>[];
340
+ itemEntries: ItemEntry<ItemTypeType>[];
328
341
  collectionResource: CollectionResource<ItemTypeType, ColumnIds, Children>;
329
342
  isCalledAfterSocketUpdate: boolean;
330
343
  }) => void;
@@ -1,5 +1,6 @@
1
1
  import { ApiRequestServiceInterface, AuthInterface, ErrorHandlerInterface, LinkTreeServiceInterface, RmCore } from '../../../src';
2
2
  import { ApiMocked } from '../../mocks/ApiMocked';
3
+ export declare function sleep(time: number): Promise<unknown>;
3
4
  export declare const defaultMockAuthInterface: {
4
5
  getUserId: () => number;
5
6
  getUniqueUserId(): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rentman/rm-core",
3
- "version": "11.0.4",
3
+ "version": "12.0.0",
4
4
  "description": "Rentman core functionalities",
5
5
  "main": "./dist/rm-core.js",
6
6
  "types": "./dist/types/src/index.d.ts",
@@ -1,14 +0,0 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ApiRequestColumn, ApiRequestColumns, ColumnCache, ColumnSet, ColumnUtil } from '../internal';
3
- export declare class ColumnSubsetCache<ItemTypeType extends ApiEnumItemType> {
4
- private columnUtil;
5
- private columnCache;
6
- itemType: ItemTypeType;
7
- requestColumns: ApiRequestColumns;
8
- aggregateColumns: ApiRequestColumn[];
9
- private cache;
10
- constructor(columnUtil: ColumnUtil, columnCache: ColumnCache, itemType: ItemTypeType, requestColumns: ApiRequestColumns);
11
- run(columnSet: ColumnSet<ItemTypeType>): boolean;
12
- runWithRequestColumns(cachedRequestColumns: ApiRequestColumns): boolean;
13
- private extractAggregateColumns;
14
- }
@@ -1,8 +0,0 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ApiRequestColumns, ColumnCache, ColumnSubsetCache, ColumnUtil } from '../internal';
3
- export declare class ColumnSubsetCacheFactory {
4
- private columnUtil;
5
- private columnCache;
6
- constructor(columnUtil: ColumnUtil, columnCache: ColumnCache);
7
- construct<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, requestColumns: ApiRequestColumns): ColumnSubsetCache<ItemTypeType>;
8
- }