@rentman/rm-core 8.0.0 → 8.0.1-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/changelog.md +875 -865
  2. package/dist/rm-core.js +10027 -10055
  3. package/dist/rm-core.min.js +2 -2
  4. package/dist/types/classes/ApiFormatter.d.ts +66 -66
  5. package/dist/types/classes/ApiRequestService.d.ts +21 -21
  6. package/dist/types/classes/ApiResponseProcessor.d.ts +30 -30
  7. package/dist/types/classes/ChangesCompilation.d.ts +36 -36
  8. package/dist/types/classes/ChangesDelta.d.ts +62 -62
  9. package/dist/types/classes/ChangesDeltaBase.d.ts +51 -51
  10. package/dist/types/classes/ChangesProcessor.d.ts +47 -47
  11. package/dist/types/classes/CollectionEntryService.d.ts +27 -27
  12. package/dist/types/classes/CollectionMatcherBase.d.ts +22 -22
  13. package/dist/types/classes/CollectionMatcherCachedCollectionProcessor.d.ts +32 -32
  14. package/dist/types/classes/CollectionResourceService.d.ts +7 -7
  15. package/dist/types/classes/ColumnCache.d.ts +22 -22
  16. package/dist/types/classes/ColumnExpansion.d.ts +23 -23
  17. package/dist/types/classes/ColumnHandler.d.ts +22 -22
  18. package/dist/types/classes/ColumnInfo.d.ts +14 -14
  19. package/dist/types/classes/ColumnSet.d.ts +39 -39
  20. package/dist/types/classes/ColumnSubsetCache.d.ts +15 -15
  21. package/dist/types/classes/ColumnUtil.d.ts +101 -101
  22. package/dist/types/classes/ConversionMapService.d.ts +28 -28
  23. package/dist/types/classes/CreateRequest.d.ts +20 -20
  24. package/dist/types/classes/CreatedChangesDelta.d.ts +17 -17
  25. package/dist/types/classes/InternalChangesDelta.d.ts +40 -40
  26. package/dist/types/classes/ItemCache.d.ts +30 -30
  27. package/dist/types/classes/ItemCreateService.d.ts +25 -25
  28. package/dist/types/classes/ItemEntryService.d.ts +35 -35
  29. package/dist/types/classes/KeyService.d.ts +18 -18
  30. package/dist/types/classes/LockService.d.ts +32 -32
  31. package/dist/types/classes/ModuleChangesCompilation.d.ts +19 -19
  32. package/dist/types/classes/QueryColumnExtractor.d.ts +20 -20
  33. package/dist/types/classes/QueryContainsLocalIdParser.d.ts +17 -17
  34. package/dist/types/classes/QueryLinkedToParser.d.ts +16 -16
  35. package/dist/types/classes/QueryLocallyMatchableParser.d.ts +19 -19
  36. package/dist/types/classes/QueryMatcher.d.ts +19 -19
  37. package/dist/types/classes/QueryParser.d.ts +26 -26
  38. package/dist/types/classes/QueryParserBase.d.ts +20 -20
  39. package/dist/types/classes/QueryParserIdUpdater.d.ts +16 -16
  40. package/dist/types/classes/QueryService.d.ts +13 -13
  41. package/dist/types/classes/RequestBuffer.d.ts +29 -29
  42. package/dist/types/classes/RequestBufferManager.d.ts +26 -26
  43. package/dist/types/classes/RequestColumnExpansion.d.ts +16 -16
  44. package/dist/types/classes/SocketMessageHandler.d.ts +43 -43
  45. package/dist/types/classes/TemplateCache.d.ts +67 -67
  46. package/dist/types/classes/Util.d.ts +31 -31
  47. package/dist/types/classes/cache/AbstractCache.d.ts +103 -103
  48. package/dist/types/classes/cache/CachedQueryHandlerBase.d.ts +75 -75
  49. package/dist/types/classes/cache/CollectionMatcherCachedQueryProcessor.d.ts +36 -36
  50. package/dist/types/classes/cache/ItemHandlerBase.d.ts +108 -108
  51. package/dist/types/classes/cache/server/ServerCache.d.ts +83 -83
  52. package/dist/types/classes/cache/server/ServerCachedQueryHandler.d.ts +34 -34
  53. package/dist/types/classes/cache/server/ServerItemHandler.d.ts +53 -53
  54. package/dist/types/classes/cache/transaction/TransactionCache.d.ts +325 -325
  55. package/dist/types/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +23 -23
  56. package/dist/types/classes/cache/transaction/TransactionCollectionHandler.d.ts +29 -29
  57. package/dist/types/classes/cache/transaction/TransactionEventHandler.d.ts +24 -24
  58. package/dist/types/classes/cache/transaction/TransactionItemHandler.d.ts +94 -94
  59. package/dist/types/classes/cache/transaction/TransactionValidator.d.ts +35 -35
  60. package/dist/types/classes/index.d.ts +46 -46
  61. package/dist/types/constants.d.ts +7 -7
  62. package/dist/types/core.d.ts +51 -51
  63. package/dist/types/factories/ApiResponseProcessorFactory.d.ts +6 -6
  64. package/dist/types/factories/ChangesCompilationFactory.d.ts +6 -6
  65. package/dist/types/factories/ChangesDeltaFactory.d.ts +13 -13
  66. package/dist/types/factories/ChangesProcessorFactory.d.ts +22 -22
  67. package/dist/types/factories/CollectionEntryFactory.d.ts +14 -14
  68. package/dist/types/factories/CollectionMatcherFactory.d.ts +19 -19
  69. package/dist/types/factories/CollectionResourceFactory.d.ts +22 -22
  70. package/dist/types/factories/ColumnExpansionFactory.d.ts +9 -9
  71. package/dist/types/factories/ColumnInfoFactory.d.ts +8 -8
  72. package/dist/types/factories/ColumnSetFactory.d.ts +20 -20
  73. package/dist/types/factories/ColumnSubsetCacheFactory.d.ts +9 -9
  74. package/dist/types/factories/CreateRequestFactory.d.ts +11 -11
  75. package/dist/types/factories/ItemCacheFactory.d.ts +8 -8
  76. package/dist/types/factories/ItemEntryFactory.d.ts +15 -15
  77. package/dist/types/factories/ItemResourceFactory.d.ts +14 -14
  78. package/dist/types/factories/ModuleChangesCompilationFactory.d.ts +5 -5
  79. package/dist/types/factories/QueryMatcherFactory.d.ts +8 -8
  80. package/dist/types/factories/QueryParserFactory.d.ts +6 -6
  81. package/dist/types/factories/RequestColumnExpansionFactory.d.ts +6 -6
  82. package/dist/types/factories/TemplateFactory.d.ts +11 -11
  83. package/dist/types/factories/TransactionCacheFactory.d.ts +15 -15
  84. package/dist/types/factories/index.d.ts +21 -21
  85. package/dist/types/index.d.ts +7 -7
  86. package/dist/types/interfaces/AbstractCacheDependencyInterface.d.ts +43 -43
  87. package/dist/types/interfaces/ApiRequestServiceInterface.d.ts +12 -12
  88. package/dist/types/interfaces/AuthInterface.d.ts +10 -10
  89. package/dist/types/interfaces/ErrorHandlerInterface.d.ts +5 -5
  90. package/dist/types/interfaces/ExceptionHandlerInterface.d.ts +3 -3
  91. package/dist/types/interfaces/LinkTreeServiceInterface.d.ts +4 -4
  92. package/dist/types/interfaces/PromiseLibraryInterface.d.ts +25 -25
  93. package/dist/types/interfaces/ServerCacheDependencyInterface.d.ts +7 -7
  94. package/dist/types/interfaces/SocketMessageInterface.d.ts +3 -3
  95. package/dist/types/interfaces/TransactionCollectionHandlerDependencyInterface.d.ts +20 -20
  96. package/dist/types/interfaces/TransactionItemHandlerDependencyInterface.d.ts +26 -26
  97. package/dist/types/interfaces/index.d.ts +11 -11
  98. package/dist/types/models/CollectionEntry.d.ts +24 -24
  99. package/dist/types/models/CollectionOptions.d.ts +24 -24
  100. package/dist/types/models/CollectionResource.d.ts +78 -78
  101. package/dist/types/models/ItemEntry.d.ts +19 -19
  102. package/dist/types/models/ItemEntryOptions.d.ts +8 -8
  103. package/dist/types/models/ItemResource.d.ts +88 -88
  104. package/dist/types/models/Template.d.ts +12 -12
  105. package/dist/types/models/index.d.ts +7 -7
  106. package/dist/types/types/ItemTypesCollection.d.ts +345 -345
  107. package/dist/types/types/PromiseInterface.d.ts +2 -2
  108. package/dist/types/types/index.d.ts +2 -2
  109. package/package.json +38 -38
  110. package/readme.md +15 -15
@@ -1,27 +1,27 @@
1
- import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { QueryService } from '../classes';
3
- import { QueryParserFactory } from '../factories';
4
- import { ItemEntry } from '../models';
5
- import { CollectionOptions, CollectionOptionsInterface } from '../models/CollectionOptions';
6
- import { ApiQuery, CollectionQuery, EntryParentNull } from '../types';
7
- export declare class CollectionEntryService {
8
- private queryParserFactory;
9
- private queryService;
10
- constructor(queryParserFactory: QueryParserFactory, queryService: QueryService);
11
- createUnfoundLocalCollectionError(itemType: ApiEnumItemType): {
12
- message: string;
13
- };
14
- cloneOptions(options: CollectionOptions, parent: EntryParentNull): CollectionOptions<any, (string | number | symbol)[]>;
15
- processOptions<ItemTypeType extends ApiEnumItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions;
16
- createQuery(query: ApiQuery): CollectionQuery;
17
- createQueryFromOptions(options: CollectionOptions): CollectionQuery;
18
- getIdArray(itemEntries: Array<ItemEntry<any>>, accumulator?: ItemId[]): ItemId[];
19
- /**
20
- * @description
21
- * Filters an array of {@link ItemEntry ItemEntries} according to the callback function.
22
- * Does an in-place replacement of the items in the array that do match the condition (keeping the array reference)
23
- *
24
- * @returns {@link ItemEntry ItemEntries} that failed the condition
25
- */
26
- filterArray<T extends ItemEntry<any> = ItemEntry<any>>(itemEntries: T[], callback: (itemEntry: T) => boolean): T[];
27
- }
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
+ import { QueryService } from '../classes';
3
+ import { QueryParserFactory } from '../factories';
4
+ import { ItemEntry } from '../models';
5
+ import { CollectionOptions, CollectionOptionsInterface } from '../models/CollectionOptions';
6
+ import { ApiQuery, CollectionQuery, EntryParentNull } from '../types';
7
+ export declare class CollectionEntryService {
8
+ private queryParserFactory;
9
+ private queryService;
10
+ constructor(queryParserFactory: QueryParserFactory, queryService: QueryService);
11
+ createUnfoundLocalCollectionError(itemType: ApiEnumItemType): {
12
+ message: string;
13
+ };
14
+ cloneOptions(options: CollectionOptions, parent: EntryParentNull): CollectionOptions<any, (string | number | symbol)[]>;
15
+ processOptions<ItemTypeType extends ApiEnumItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions;
16
+ createQuery(query: ApiQuery): CollectionQuery;
17
+ createQueryFromOptions(options: CollectionOptions): CollectionQuery;
18
+ getIdArray(itemEntries: Array<ItemEntry<any>>, accumulator?: ItemId[]): ItemId[];
19
+ /**
20
+ * @description
21
+ * Filters an array of {@link ItemEntry ItemEntries} according to the callback function.
22
+ * Does an in-place replacement of the items in the array that do match the condition (keeping the array reference)
23
+ *
24
+ * @returns {@link ItemEntry ItemEntries} that failed the condition
25
+ */
26
+ filterArray<T extends ItemEntry<any> = ItemEntry<any>>(itemEntries: T[], callback: (itemEntry: T) => boolean): T[];
27
+ }
@@ -1,22 +1,22 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { AbstractCache, CollectionQuery, FieldMap, QueryService } from '../';
3
- import { QueryMatcherFactory } from '../factories/';
4
- import { ItemEntry } from '../models';
5
- import { GroupedCollectionMatcherResult } from './cache/CollectionMatcherCachedQueryProcessor';
6
- import { InternalChangesDelta } from './InternalChangesDelta';
7
- export declare type CollectionMatcherMatches<ItemTypeType extends ApiEnumItemType = any> = {
8
- [itemId: number]: {
9
- item: ItemEntry<ItemTypeType>;
10
- isMatch: boolean | 'maybe';
11
- };
12
- };
13
- export declare abstract class CollectionMatcherBase {
14
- protected queryService: QueryService;
15
- protected queryMatcherFactory: QueryMatcherFactory;
16
- protected transaction: AbstractCache;
17
- protected constructor(queryService: QueryService, queryMatcherFactory: QueryMatcherFactory, transaction: AbstractCache);
18
- expand<ItemEntryType extends ItemEntry>(itemEntry: ItemEntryType, fields: FieldMap<ItemEntryType['itemType']>): this;
19
- processDelta(internalChangesDelta: InternalChangesDelta): this;
20
- protected groupItemEntries<ItemTypeType extends ApiEnumItemType>(matches: CollectionMatcherMatches<ItemTypeType>): GroupedCollectionMatcherResult<ItemTypeType>;
21
- protected abstract _expand<ItemTypeType extends ApiEnumItemType = any>(itemEntry: ItemEntry<ItemTypeType>, matchFunction: (itemType: ItemTypeType, parsedQuery: CollectionQuery) => boolean | 'maybe'): this;
22
- }
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { AbstractCache, CollectionQuery, FieldMap, QueryService } from '../';
3
+ import { QueryMatcherFactory } from '../factories/';
4
+ import { ItemEntry } from '../models';
5
+ import { GroupedCollectionMatcherResult } from './cache/CollectionMatcherCachedQueryProcessor';
6
+ import { InternalChangesDelta } from './InternalChangesDelta';
7
+ export declare type CollectionMatcherMatches<ItemTypeType extends ApiEnumItemType = any> = {
8
+ [itemId: number]: {
9
+ item: ItemEntry<ItemTypeType>;
10
+ isMatch: boolean | 'maybe';
11
+ };
12
+ };
13
+ export declare abstract class CollectionMatcherBase {
14
+ protected queryService: QueryService;
15
+ protected queryMatcherFactory: QueryMatcherFactory;
16
+ protected transaction: AbstractCache;
17
+ protected constructor(queryService: QueryService, queryMatcherFactory: QueryMatcherFactory, transaction: AbstractCache);
18
+ expand<ItemEntryType extends ItemEntry>(itemEntry: ItemEntryType, fields: FieldMap<ItemEntryType['itemType']>): this;
19
+ processDelta(internalChangesDelta: InternalChangesDelta): this;
20
+ protected groupItemEntries<ItemTypeType extends ApiEnumItemType>(matches: CollectionMatcherMatches<ItemTypeType>): GroupedCollectionMatcherResult<ItemTypeType>;
21
+ protected abstract _expand<ItemTypeType extends ApiEnumItemType = any>(itemEntry: ItemEntry<ItemTypeType>, matchFunction: (itemType: ItemTypeType, parsedQuery: CollectionQuery) => boolean | 'maybe'): this;
22
+ }
@@ -1,32 +1,32 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { QueryMatcherFactory } from '../factories';
3
- import { PromiseLibraryInterface } from '../interfaces';
4
- import { CollectionResource, ItemEntry } from '../models';
5
- import { CollectionQuery, PromiseInterface } from '../types';
6
- import { ApiRequestService } from './ApiRequestService';
7
- import { AbstractCache } from './cache/AbstractCache';
8
- import { ChangesDeltaBase } from './ChangesDeltaBase';
9
- import { CollectionMatcherBase, CollectionMatcherMatches } from './CollectionMatcherBase';
10
- import { QueryService } from './QueryService';
11
- /**
12
- * @description
13
- * Processes all {@link CollectionResource CollectionResources} and adds/removes item entries that do/don't fit the query
14
- */
15
- export declare class CollectionMatcherCachedCollectionProcessor extends CollectionMatcherBase {
16
- private apiRequestService;
17
- private promiseService;
18
- private getCollections;
19
- protected map: {
20
- [itemTypeAndQueryString: string]: {
21
- itemType: ApiEnumItemType;
22
- query: CollectionQuery;
23
- collectionResources: CollectionResource[];
24
- matches: CollectionMatcherMatches;
25
- };
26
- };
27
- constructor(apiRequestService: ApiRequestService, promiseService: PromiseLibraryInterface, queryService: QueryService, queryMatcherFactory: QueryMatcherFactory, transaction: AbstractCache, getCollections: <ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType) => {
28
- [queryString: string]: Array<CollectionResource<ItemTypeType>>;
29
- });
30
- __removeFromAndAddToCollections(isCalledAfterSocketUpdate?: boolean, changesDelta?: ChangesDeltaBase): PromiseInterface<void[]>;
31
- protected _expand<ItemTypeType extends ApiEnumItemType = any>(itemEntry: ItemEntry<ItemTypeType>, matchFunction: (itemType: ItemTypeType, parsedQuery: CollectionQuery) => boolean | 'maybe'): this;
32
- }
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { QueryMatcherFactory } from '../factories';
3
+ import { PromiseLibraryInterface } from '../interfaces';
4
+ import { CollectionResource, ItemEntry } from '../models';
5
+ import { CollectionQuery, PromiseInterface } from '../types';
6
+ import { ApiRequestService } from './ApiRequestService';
7
+ import { AbstractCache } from './cache/AbstractCache';
8
+ import { ChangesDeltaBase } from './ChangesDeltaBase';
9
+ import { CollectionMatcherBase, CollectionMatcherMatches } from './CollectionMatcherBase';
10
+ import { QueryService } from './QueryService';
11
+ /**
12
+ * @description
13
+ * Processes all {@link CollectionResource CollectionResources} and adds/removes item entries that do/don't fit the query
14
+ */
15
+ export declare class CollectionMatcherCachedCollectionProcessor extends CollectionMatcherBase {
16
+ private apiRequestService;
17
+ private promiseService;
18
+ private getCollections;
19
+ protected map: {
20
+ [itemTypeAndQueryString: string]: {
21
+ itemType: ApiEnumItemType;
22
+ query: CollectionQuery;
23
+ collectionResources: CollectionResource[];
24
+ matches: CollectionMatcherMatches;
25
+ };
26
+ };
27
+ constructor(apiRequestService: ApiRequestService, promiseService: PromiseLibraryInterface, queryService: QueryService, queryMatcherFactory: QueryMatcherFactory, transaction: AbstractCache, getCollections: <ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType) => {
28
+ [queryString: string]: Array<CollectionResource<ItemTypeType>>;
29
+ });
30
+ __removeFromAndAddToCollections(isCalledAfterSocketUpdate?: boolean, changesDelta?: ChangesDeltaBase): PromiseInterface<void[]>;
31
+ protected _expand<ItemTypeType extends ApiEnumItemType = any>(itemEntry: ItemEntry<ItemTypeType>, matchFunction: (itemType: ItemTypeType, parsedQuery: CollectionQuery) => boolean | 'maybe'): this;
32
+ }
@@ -1,7 +1,7 @@
1
- import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { CollectionOptions, ItemResource } from '../models';
3
- import { CollectionOptionsInterface } from '../models/CollectionOptions';
4
- export declare class CollectionResourceService {
5
- processOptions<ItemTypeType extends ApiEnumItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions<ItemTypeType>;
6
- getIdArray(itemResources: ItemResource[]): ItemId[];
7
- }
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
+ import { CollectionOptions, ItemResource } from '../models';
3
+ import { CollectionOptionsInterface } from '../models/CollectionOptions';
4
+ export declare class CollectionResourceService {
5
+ processOptions<ItemTypeType extends ApiEnumItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions<ItemTypeType>;
6
+ getIdArray(itemResources: ItemResource[]): ItemId[];
7
+ }
@@ -1,22 +1,22 @@
1
- import { ApiEnumItemType, ResponseColumn } from '@rentman/backend-types';
2
- import { ColumnUtil } from '../classes';
3
- import { ApiRequestColumns, ResponseColumnItemTypeMap } from '../types';
4
- export declare class ColumnCache {
5
- private columnUtil;
6
- cache: ResponseColumnItemTypeMap;
7
- allColumns: {
8
- [itemType: string]: boolean;
9
- };
10
- constructor(columnUtil: ColumnUtil);
11
- setColumn(itemType: ApiEnumItemType, responseColumn: ResponseColumn): ResponseColumn;
12
- setColumns(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, columnFilter: string | false): ResponseColumnItemTypeMap;
13
- retrieve(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns): {
14
- cached: ResponseColumnItemTypeMap;
15
- missing: ApiRequestColumns;
16
- };
17
- containsAll(itemType: ApiEnumItemType): boolean;
18
- getColumns(itemType: ApiEnumItemType): ResponseColumnItemTypeMap;
19
- getColumn(itemType: ApiEnumItemType, columnId: string): ResponseColumn | undefined;
20
- private retrieveColumns;
21
- private retrieveColumn;
22
- }
1
+ import { ApiEnumItemType, ResponseColumn } from '@rentman/backend-types';
2
+ import { ColumnUtil } from '../classes';
3
+ import { ApiRequestColumns, ResponseColumnItemTypeMap } from '../types';
4
+ export declare class ColumnCache {
5
+ private columnUtil;
6
+ cache: ResponseColumnItemTypeMap;
7
+ allColumns: {
8
+ [itemType: string]: boolean;
9
+ };
10
+ constructor(columnUtil: ColumnUtil);
11
+ setColumn(itemType: ApiEnumItemType, responseColumn: ResponseColumn): ResponseColumn;
12
+ setColumns(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, columnFilter: string | false): ResponseColumnItemTypeMap;
13
+ retrieve(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns): {
14
+ cached: ResponseColumnItemTypeMap;
15
+ missing: ApiRequestColumns;
16
+ };
17
+ containsAll(itemType: ApiEnumItemType): boolean;
18
+ getColumns(itemType: ApiEnumItemType): ResponseColumnItemTypeMap;
19
+ getColumn(itemType: ApiEnumItemType, columnId: string): ResponseColumn | undefined;
20
+ private retrieveColumns;
21
+ private retrieveColumn;
22
+ }
@@ -1,23 +1,23 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ColumnInfo, ColumnSet } from '../classes';
3
- import { ColumnInfoFactory } from '../factories';
4
- import { ApiRequestColumn, ApiRequestColumns, ColumnExpansionResult, ResponseColumnItemTypeMap } from '../types';
5
- /**
6
- * @description
7
- * A ColumnExpansion is used to make sure {@link ItemEntry ItemEntries} that have the same {@link ColumnSet ColumnSet} (matched on {@link ColumnSet.id ColumnSet.id}) will all get the same new expanded ColumnSet
8
- */
9
- export declare class ColumnExpansion<ItemTypeType extends ApiEnumItemType> {
10
- private columnInfoFactory;
11
- itemType: ItemTypeType;
12
- responseColumns: ResponseColumnItemTypeMap;
13
- expansionMap: {
14
- [columnSetId: string]: ColumnExpansionResult<ItemTypeType> | null;
15
- };
16
- expansionMapSize: number;
17
- requestColumnsTrue: boolean;
18
- requestColumns: ApiRequestColumn[];
19
- constructor(columnInfoFactory: ColumnInfoFactory, itemType: ItemTypeType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap);
20
- run(columnSet: ColumnSet<ItemTypeType>): ColumnExpansionResult<ItemTypeType> | null;
21
- aggregateRootColumns(): Array<ColumnInfo<ItemTypeType>>;
22
- private expandRootColumnMap;
23
- }
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { ColumnInfo, ColumnSet } from '../classes';
3
+ import { ColumnInfoFactory } from '../factories';
4
+ import { ApiRequestColumn, ApiRequestColumns, ColumnExpansionResult, ResponseColumnItemTypeMap } from '../types';
5
+ /**
6
+ * @description
7
+ * A ColumnExpansion is used to make sure {@link ItemEntry ItemEntries} that have the same {@link ColumnSet ColumnSet} (matched on {@link ColumnSet.id ColumnSet.id}) will all get the same new expanded ColumnSet
8
+ */
9
+ export declare class ColumnExpansion<ItemTypeType extends ApiEnumItemType> {
10
+ private columnInfoFactory;
11
+ itemType: ItemTypeType;
12
+ responseColumns: ResponseColumnItemTypeMap;
13
+ expansionMap: {
14
+ [columnSetId: string]: ColumnExpansionResult<ItemTypeType> | null;
15
+ };
16
+ expansionMapSize: number;
17
+ requestColumnsTrue: boolean;
18
+ requestColumns: ApiRequestColumn[];
19
+ constructor(columnInfoFactory: ColumnInfoFactory, itemType: ItemTypeType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap);
20
+ run(columnSet: ColumnSet<ItemTypeType>): ColumnExpansionResult<ItemTypeType> | null;
21
+ aggregateRootColumns(): Array<ColumnInfo<ItemTypeType>>;
22
+ private expandRootColumnMap;
23
+ }
@@ -1,22 +1,22 @@
1
- import { ApiEnumItemType, ResponseColumn } from '@rentman/backend-types';
2
- import { ApiRequestService, ColumnCache, ColumnUtil } from '../classes';
3
- import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
4
- import { ApiRequestColumns, PromiseInterface, ResponseColumnItemTypeMap } from '../types';
5
- export declare class ColumnHandler {
6
- private apiRequestService;
7
- private errorHandler;
8
- private promiseService;
9
- private cache;
10
- private columnUtil;
11
- constructor(apiRequestService: ApiRequestService, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, cache: ColumnCache, columnUtil: ColumnUtil);
12
- setColumn(itemType: ApiEnumItemType, responseColumn: ResponseColumn): ResponseColumn;
13
- setColumns(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, filter?: string | false): ResponseColumnItemTypeMap;
14
- fetchItemTypeTranslations(itemTypes: ApiEnumItemType[]): PromiseInterface<{
15
- [itemType: string]: string;
16
- }>;
17
- request(itemType: ApiEnumItemType, columns: ApiRequestColumns, params?: {
18
- filter: string | false;
19
- }): PromiseInterface<ResponseColumnItemTypeMap>;
20
- fetch(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, params?: any): PromiseInterface<ResponseColumnItemTypeMap>;
21
- fetchAll(itemType: ApiEnumItemType): PromiseInterface<ResponseColumnItemTypeMap>;
22
- }
1
+ import { ApiEnumItemType, ResponseColumn } from '@rentman/backend-types';
2
+ import { ApiRequestService, ColumnCache, ColumnUtil } from '../classes';
3
+ import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
4
+ import { ApiRequestColumns, PromiseInterface, ResponseColumnItemTypeMap } from '../types';
5
+ export declare class ColumnHandler {
6
+ private apiRequestService;
7
+ private errorHandler;
8
+ private promiseService;
9
+ private cache;
10
+ private columnUtil;
11
+ constructor(apiRequestService: ApiRequestService, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, cache: ColumnCache, columnUtil: ColumnUtil);
12
+ setColumn(itemType: ApiEnumItemType, responseColumn: ResponseColumn): ResponseColumn;
13
+ setColumns(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, filter?: string | false): ResponseColumnItemTypeMap;
14
+ fetchItemTypeTranslations(itemTypes: ApiEnumItemType[]): PromiseInterface<{
15
+ [itemType: string]: string;
16
+ }>;
17
+ request(itemType: ApiEnumItemType, columns: ApiRequestColumns, params?: {
18
+ filter: string | false;
19
+ }): PromiseInterface<ResponseColumnItemTypeMap>;
20
+ fetch(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, params?: any): PromiseInterface<ResponseColumnItemTypeMap>;
21
+ fetchAll(itemType: ApiEnumItemType): PromiseInterface<ResponseColumnItemTypeMap>;
22
+ }
@@ -1,14 +1,14 @@
1
- import { ApiEnumItemType, ApiFields, GetColumnType } from '@rentman/backend-types';
2
- export declare class ColumnInfo<ItemTypeType extends ApiEnumItemType = any, ColumnId extends keyof ApiFields[ItemTypeType] = any> {
3
- readonly apiColumn: GetColumnType<ItemTypeType, ColumnId>;
4
- readonly parent: ColumnInfo | null;
5
- id: ColumnId;
6
- level: number;
7
- path: string;
8
- tailPath: string;
9
- itemType: ItemTypeType | null;
10
- children: Array<ColumnInfo<ItemTypeType>>;
11
- isLeaf: boolean;
12
- constructor(apiColumn: GetColumnType<ItemTypeType, ColumnId>, parent?: ColumnInfo | null);
13
- setChildren(itemType: ItemTypeType, children: Array<ColumnInfo<ItemTypeType>>): this;
14
- }
1
+ import { ApiEnumItemType, ApiFields, GetColumnType } from '@rentman/backend-types';
2
+ export declare class ColumnInfo<ItemTypeType extends ApiEnumItemType = any, ColumnId extends keyof ApiFields[ItemTypeType] = any> {
3
+ readonly apiColumn: GetColumnType<ItemTypeType, ColumnId>;
4
+ readonly parent: ColumnInfo | null;
5
+ id: ColumnId;
6
+ level: number;
7
+ path: string;
8
+ tailPath: string;
9
+ itemType: ItemTypeType | null;
10
+ children: Array<ColumnInfo<ItemTypeType>>;
11
+ isLeaf: boolean;
12
+ constructor(apiColumn: GetColumnType<ItemTypeType, ColumnId>, parent?: ColumnInfo | null);
13
+ setChildren(itemType: ItemTypeType, children: Array<ColumnInfo<ItemTypeType>>): this;
14
+ }
@@ -1,39 +1,39 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ColumnInfo, ColumnUtil, RequestColumnMergeResult } from '../classes';
3
- import { ColumnSetFactory } from '../factories';
4
- import { ApiRequestColumns, ColumnExpansionResult, ResponseColumnItemTypeMap } from '../types';
5
- export declare class ColumnSet<ItemTypeType extends ApiEnumItemType = any> {
6
- private columnUtil;
7
- private columnSetFactory;
8
- itemType: ItemTypeType;
9
- id: number;
10
- request: ApiRequestColumns;
11
- requestColumnsTrue: boolean;
12
- response: ResponseColumnItemTypeMap;
13
- link: ColumnInfo<ItemTypeType> | null;
14
- main: Array<ColumnInfo<ItemTypeType>>;
15
- derived: Array<ColumnInfo<ItemTypeType>>;
16
- root: Array<ColumnInfo<ItemTypeType>>;
17
- leaf: Array<ColumnInfo<ItemTypeType>>;
18
- formatted: {
19
- main: Array<ColumnInfo<ItemTypeType>>;
20
- derived: Array<ColumnInfo<ItemTypeType>>;
21
- };
22
- filtered: Array<ColumnInfo<ItemTypeType>>;
23
- custom: Array<ColumnInfo<ItemTypeType>>;
24
- searchable: Array<ColumnInfo<ItemTypeType>>;
25
- item: Array<ColumnInfo<ItemTypeType>>;
26
- notItem: Array<ColumnInfo<ItemTypeType>>;
27
- constructor(columnUtil: ColumnUtil, columnSetFactory: ColumnSetFactory, itemType: ItemTypeType);
28
- groupColumnInfo(columnInfo: ColumnInfo): void;
29
- toJSON(): {
30
- main: any[];
31
- derived: any[];
32
- };
33
- isSupersetOf(columnsToCompare: ApiRequestColumns): boolean;
34
- private getMergedColumnSet;
35
- mergeRequestColumns(requestColumns: ApiRequestColumns): RequestColumnMergeResult;
36
- mergeResponseColumns(responseColumns: ResponseColumnItemTypeMap): ResponseColumnItemTypeMap;
37
- merge(columnSet: ColumnSet<ItemTypeType>): ColumnSet<ItemTypeType>;
38
- expand(requestColumns: ApiRequestColumns, requestColumnsTrue: boolean, responseColumns: ResponseColumnItemTypeMap): ColumnExpansionResult<ItemTypeType>;
39
- }
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { ColumnInfo, ColumnUtil, RequestColumnMergeResult } from '../classes';
3
+ import { ColumnSetFactory } from '../factories';
4
+ import { ApiRequestColumns, ColumnExpansionResult, ResponseColumnItemTypeMap } from '../types';
5
+ export declare class ColumnSet<ItemTypeType extends ApiEnumItemType = any> {
6
+ private columnUtil;
7
+ private columnSetFactory;
8
+ itemType: ItemTypeType;
9
+ id: number;
10
+ request: ApiRequestColumns;
11
+ requestColumnsTrue: boolean;
12
+ response: ResponseColumnItemTypeMap;
13
+ link: ColumnInfo<ItemTypeType> | null;
14
+ main: Array<ColumnInfo<ItemTypeType>>;
15
+ derived: Array<ColumnInfo<ItemTypeType>>;
16
+ root: Array<ColumnInfo<ItemTypeType>>;
17
+ leaf: Array<ColumnInfo<ItemTypeType>>;
18
+ formatted: {
19
+ main: Array<ColumnInfo<ItemTypeType>>;
20
+ derived: Array<ColumnInfo<ItemTypeType>>;
21
+ };
22
+ filtered: Array<ColumnInfo<ItemTypeType>>;
23
+ custom: Array<ColumnInfo<ItemTypeType>>;
24
+ searchable: Array<ColumnInfo<ItemTypeType>>;
25
+ item: Array<ColumnInfo<ItemTypeType>>;
26
+ notItem: Array<ColumnInfo<ItemTypeType>>;
27
+ constructor(columnUtil: ColumnUtil, columnSetFactory: ColumnSetFactory, itemType: ItemTypeType);
28
+ groupColumnInfo(columnInfo: ColumnInfo): void;
29
+ toJSON(): {
30
+ main: any[];
31
+ derived: any[];
32
+ };
33
+ isSupersetOf(columnsToCompare: ApiRequestColumns): boolean;
34
+ private getMergedColumnSet;
35
+ mergeRequestColumns(requestColumns: ApiRequestColumns): RequestColumnMergeResult;
36
+ mergeResponseColumns(responseColumns: ResponseColumnItemTypeMap): ResponseColumnItemTypeMap;
37
+ merge(columnSet: ColumnSet<ItemTypeType>): ColumnSet<ItemTypeType>;
38
+ expand(requestColumns: ApiRequestColumns, requestColumnsTrue: boolean, responseColumns: ResponseColumnItemTypeMap): ColumnExpansionResult<ItemTypeType>;
39
+ }
@@ -1,15 +1,15 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ColumnCache, ColumnSet, ColumnUtil } from '../classes';
3
- import { ApiRequestColumn, ApiRequestColumns } from '../types';
4
- export declare class ColumnSubsetCache<ItemTypeType extends ApiEnumItemType> {
5
- private columnUtil;
6
- private columnCache;
7
- itemType: ItemTypeType;
8
- requestColumns: ApiRequestColumns;
9
- aggregateColumns: ApiRequestColumn[];
10
- private cache;
11
- constructor(columnUtil: ColumnUtil, columnCache: ColumnCache, itemType: ItemTypeType, requestColumns: ApiRequestColumns);
12
- run(columnSet: ColumnSet<ItemTypeType>): boolean;
13
- runWithRequestColumns(cachedRequestColumns: ApiRequestColumns): boolean;
14
- private extractAggregateColumns;
15
- }
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { ColumnCache, ColumnSet, ColumnUtil } from '../classes';
3
+ import { ApiRequestColumn, ApiRequestColumns } from '../types';
4
+ export declare class ColumnSubsetCache<ItemTypeType extends ApiEnumItemType> {
5
+ private columnUtil;
6
+ private columnCache;
7
+ itemType: ItemTypeType;
8
+ requestColumns: ApiRequestColumns;
9
+ aggregateColumns: ApiRequestColumn[];
10
+ private cache;
11
+ constructor(columnUtil: ColumnUtil, columnCache: ColumnCache, itemType: ItemTypeType, requestColumns: ApiRequestColumns);
12
+ run(columnSet: ColumnSet<ItemTypeType>): boolean;
13
+ runWithRequestColumns(cachedRequestColumns: ApiRequestColumns): boolean;
14
+ private extractAggregateColumns;
15
+ }