@rentman/rm-core 1.9.0 → 2.0.1

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 (87) hide show
  1. package/changelog.md +7 -0
  2. package/dist/rm-core.js +7445 -6441
  3. package/dist/rm-core.min.js +1 -1
  4. package/dist/src/classes/ApiFormatter.d.ts +25 -8
  5. package/dist/src/classes/ApiResponseProcessor.d.ts +10 -20
  6. package/dist/src/classes/ChangesCompilation.d.ts +14 -31
  7. package/dist/src/classes/ChangesDelta.d.ts +42 -0
  8. package/dist/src/classes/ChangesDeltaBase.d.ts +33 -0
  9. package/dist/src/classes/ChangesProcessor.d.ts +30 -16
  10. package/dist/src/classes/CollectionCache.d.ts +7 -2
  11. package/dist/src/classes/CollectionEntryService.d.ts +3 -0
  12. package/dist/src/classes/CollectionMatcher.d.ts +8 -41
  13. package/dist/src/classes/CollectionMatcherBase.d.ts +26 -0
  14. package/dist/src/classes/ColumnExpansion.d.ts +4 -0
  15. package/dist/src/classes/ColumnHandler.d.ts +3 -3
  16. package/dist/src/classes/ColumnUtil.d.ts +12 -1
  17. package/dist/src/classes/CreateRequest.d.ts +7 -8
  18. package/dist/src/classes/InternalChangesDelta.d.ts +38 -0
  19. package/dist/src/classes/ItemCache.d.ts +7 -1
  20. package/dist/src/classes/ItemEntryService.d.ts +23 -5
  21. package/dist/src/classes/LockService.d.ts +9 -9
  22. package/dist/src/classes/ModuleChangesCompilation.d.ts +4 -7
  23. package/dist/src/classes/QueryColumnExtractor.d.ts +20 -0
  24. package/dist/src/classes/QueryParser.d.ts +18 -27
  25. package/dist/src/classes/QueryParserBase.d.ts +29 -0
  26. package/dist/src/classes/QueryService.d.ts +1 -1
  27. package/dist/src/classes/RequestBuffer.d.ts +25 -0
  28. package/dist/src/classes/RequestBufferManager.d.ts +31 -0
  29. package/dist/src/classes/RequestColumnExpansion.d.ts +1 -0
  30. package/dist/src/classes/SocketMessageHandler.d.ts +19 -30
  31. package/dist/src/classes/TemplateCache.d.ts +63 -0
  32. package/dist/src/classes/cache/AbstractCache.d.ts +122 -0
  33. package/dist/src/classes/cache/CollectionHandlerBase.d.ts +64 -0
  34. package/dist/src/classes/cache/CollectionMatcherCacheProcessor.d.ts +26 -0
  35. package/dist/src/classes/cache/ItemHandlerBase.d.ts +86 -0
  36. package/dist/src/classes/cache/server/ServerCache.d.ts +87 -0
  37. package/dist/src/classes/cache/server/ServerCollectionHandler.d.ts +43 -0
  38. package/dist/src/classes/cache/server/ServerItemHandler.d.ts +49 -0
  39. package/dist/src/classes/cache/transaction/TransactionCache.d.ts +423 -0
  40. package/dist/src/classes/cache/transaction/TransactionCollectionHandler.d.ts +72 -0
  41. package/dist/src/classes/cache/transaction/TransactionEventHandler.d.ts +19 -0
  42. package/dist/src/classes/cache/transaction/TransactionItemHandler.d.ts +113 -0
  43. package/dist/src/classes/index.d.ts +13 -7
  44. package/dist/src/constants.d.ts +0 -11
  45. package/dist/src/core.d.ts +12 -11
  46. package/dist/src/factories/ChangesCompilationFactory.d.ts +4 -8
  47. package/dist/src/factories/ChangesDeltaFactory.d.ts +9 -0
  48. package/dist/src/factories/ChangesProcessorFactory.d.ts +22 -0
  49. package/dist/src/factories/CollectionCacheFactory.d.ts +2 -1
  50. package/dist/src/factories/CollectionEntryFactory.d.ts +6 -18
  51. package/dist/src/factories/CollectionMatcherFactory.d.ts +3 -2
  52. package/dist/src/factories/CollectionResourceFactory.d.ts +11 -9
  53. package/dist/src/factories/ColumnSetFactory.d.ts +2 -0
  54. package/dist/src/factories/CreateRequestFactory.d.ts +7 -7
  55. package/dist/src/factories/ItemCacheFactory.d.ts +2 -1
  56. package/dist/src/factories/ItemEntryFactory.d.ts +3 -7
  57. package/dist/src/factories/ItemResourceFactory.d.ts +14 -10
  58. package/dist/src/factories/ModuleChangesCompilationFactory.d.ts +3 -4
  59. package/dist/src/factories/TransactionCacheFactory.d.ts +55 -0
  60. package/dist/src/factories/index.d.ts +3 -2
  61. package/dist/src/interfaces/LinkTreeServiceInterface.d.ts +4 -0
  62. package/dist/src/interfaces/index.d.ts +1 -1
  63. package/dist/src/models/CollectionEditResource.d.ts +34 -11
  64. package/dist/src/models/CollectionEntry.d.ts +10 -70
  65. package/dist/src/models/CollectionEntryOptions.d.ts +1 -0
  66. package/dist/src/models/CollectionResource.d.ts +14 -14
  67. package/dist/src/models/CollectionResourceOptions.d.ts +6 -2
  68. package/dist/src/models/CollectionViewResource.d.ts +2 -2
  69. package/dist/src/models/EditResource.d.ts +8 -10
  70. package/dist/src/models/ItemEntry.d.ts +1 -58
  71. package/dist/src/models/ItemEntryOptions.d.ts +0 -1
  72. package/dist/src/models/ItemResource.d.ts +49 -16
  73. package/dist/src/models/LocalViewResource.d.ts +2 -2
  74. package/dist/src/models/RemoteViewResource.d.ts +2 -2
  75. package/dist/src/models/ViewResource.d.ts +2 -2
  76. package/dist/src/types/ItemTypesCollection.d.ts +81 -22
  77. package/package.json +1 -1
  78. package/dist/src/classes/BatchStatus.d.ts +0 -28
  79. package/dist/src/classes/CollectionHandler.d.ts +0 -54
  80. package/dist/src/classes/ItemAdministrator.d.ts +0 -228
  81. package/dist/src/classes/ItemHandler.d.ts +0 -60
  82. package/dist/src/classes/ItemRequestService.d.ts +0 -23
  83. package/dist/src/classes/LocalCache.d.ts +0 -112
  84. package/dist/src/classes/LocalCacheEventHandler.d.ts +0 -19
  85. package/dist/src/factories/BatchStatusFactory.d.ts +0 -9
  86. package/dist/src/factories/LocalCacheFactory.d.ts +0 -16
  87. package/dist/src/interfaces/LocalCacheManagerInterface.d.ts +0 -5
@@ -1,12 +1,10 @@
1
1
  export * from './ApiFormatter';
2
2
  export * from './ApiRequestService';
3
3
  export * from './ApiResponseProcessor';
4
- export * from './BatchStatus';
5
4
  export * from './ChangesCompilation';
6
5
  export * from './ChangesProcessor';
7
6
  export * from './CollectionCache';
8
7
  export * from './CollectionEntryService';
9
- export * from './CollectionHandler';
10
8
  export * from './CollectionMatcher';
11
9
  export * from './CollectionResourceService';
12
10
  export * from './ColumnCache';
@@ -17,14 +15,10 @@ export * from './ColumnSet';
17
15
  export * from './ColumnSubsetCache';
18
16
  export * from './ColumnUtil';
19
17
  export * from './CreateRequest';
20
- export * from './ItemAdministrator';
21
18
  export * from './ItemCache';
22
19
  export * from './ItemEntryService';
23
- export * from './ItemHandler';
24
- export * from './ItemRequestService';
25
20
  export * from './KeyService';
26
- export * from './LocalCache';
27
- export * from './LocalCacheEventHandler';
21
+ export * from './cache/transaction/TransactionEventHandler';
28
22
  export * from './LockService';
29
23
  export * from './ModuleChangesCompilation';
30
24
  export * from './QueryMatcher';
@@ -33,3 +27,15 @@ export * from './QueryService';
33
27
  export * from './RequestColumnExpansion';
34
28
  export * from './SocketMessageHandler';
35
29
  export * from './Util';
30
+ export * from './cache/AbstractCache';
31
+ export * from './cache/server/ServerCache';
32
+ export * from './cache/server/ServerItemHandler';
33
+ export * from './cache/server/ServerCollectionHandler';
34
+ export * from './cache/transaction/TransactionCache';
35
+ export * from './cache/transaction/TransactionItemHandler';
36
+ export * from './cache/transaction/TransactionCollectionHandler';
37
+ export * from './cache/transaction/TransactionEventHandler';
38
+ export * from './ChangesDelta';
39
+ export * from './InternalChangesDelta';
40
+ export * from './RequestBufferManager';
41
+ export * from './RequestBuffer';
@@ -1,14 +1,3 @@
1
- export declare enum ENTRY_STATUS {
2
- CACHED = "cached",
3
- LOCAL = "local",
4
- PROMISED = "promised",
5
- EXPAND = "expand",
6
- PROMISED_EXPAND = "promised-expand",
7
- EXPAND_LOCAL = "expand-local",
8
- PROMISED_EXPAND_LOCAL = "promised-expand-local",
9
- RESOLVE = "resolve",
10
- RESOLVE_VALUES = "resolve-values"
11
- }
12
1
  export declare const ALL_PERMISSIONS = "7";
13
2
  export declare const COLUMN_SEPERATOR = ">";
14
3
  export declare const RENDER_AS_SEPERATOR = ":";
@@ -1,19 +1,21 @@
1
- import { ApiFormatter, ApiRequestService, ChangesProcessor, CollectionEntryService, CollectionHandler, CollectionResourceService, ColumnCache, ColumnHandler, ColumnUtil, ItemAdministrator, ItemEntryService, ItemHandler, ItemRequestService, KeyService, LockService, QueryService, SocketMessageHandler } from './classes';
2
- import { ApiResponseProcessorFactory, BatchStatusFactory, ChangesCompilationFactory, CollectionCacheFactory, CollectionEntryFactory, CollectionMatcherFactory, CollectionResourceFactory, ColumnExpansionFactory, ColumnInfoFactory, ColumnSetFactory, ColumnSubsetCacheFactory, CreateRequestFactory, ItemCacheFactory, ItemEntryFactory, ItemResourceFactory, LocalCacheFactory, ModuleChangesCompilationFactory, QueryMatcherFactory, QueryParserFactory, RequestColumnExpansionFactory, TemplateFactory } from './factories';
3
- import { ApiRequestServiceInterface, AuthInterface, ErrorHandlerInterface, ExceptionHandlerInterface, LocalCacheManagerInterface, PromiseLibraryInterface } from './interfaces';
1
+ import { ApiFormatter, ApiRequestService, CollectionEntryService, CollectionResourceService, ColumnCache, ColumnHandler, ColumnUtil, ItemEntryService, KeyService, LockService, QueryService, SocketMessageHandler } from './classes';
2
+ import { TemplateCache } from './classes/TemplateCache';
3
+ import { ApiResponseProcessorFactory, ChangesCompilationFactory, CollectionCacheFactory, CollectionEntryFactory, CollectionMatcherFactory, CollectionResourceFactory, ColumnExpansionFactory, ColumnInfoFactory, ColumnSetFactory, ColumnSubsetCacheFactory, CreateRequestFactory, ItemCacheFactory, ItemEntryFactory, ItemResourceFactory, ModuleChangesCompilationFactory, QueryMatcherFactory, QueryParserFactory, RequestColumnExpansionFactory, TemplateFactory, TransactionCacheFactory } from './factories';
4
+ import { ChangesDeltaFactory } from './factories/ChangesDeltaFactory';
5
+ import { ChangesProcessorFactory } from './factories/ChangesProcessorFactory';
6
+ import { ApiRequestServiceInterface, AuthInterface, ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from './interfaces';
7
+ import { LinkTreeServiceInterface } from './interfaces/LinkTreeServiceInterface';
4
8
  export declare class RmCore {
5
9
  version: string;
6
10
  noop: typeof noop;
7
11
  apiFormatter: ApiFormatter;
8
12
  apiRequestService: ApiRequestService;
9
13
  apiResponseProcessorFactory: ApiResponseProcessorFactory;
10
- batchStatusFactory: BatchStatusFactory;
11
14
  changesCompilationFactory: ChangesCompilationFactory;
12
- changesProcessor: ChangesProcessor;
15
+ changesProcessorFactory: ChangesProcessorFactory;
13
16
  collectionCacheFactory: CollectionCacheFactory;
14
17
  collectionEntryFactory: CollectionEntryFactory;
15
18
  collectionEntryService: CollectionEntryService;
16
- collectionHandler: CollectionHandler;
17
19
  collectionMatcherFactory: CollectionMatcherFactory;
18
20
  collectionResourceFactory: CollectionResourceFactory;
19
21
  collectionResourceService: CollectionResourceService;
@@ -25,15 +27,12 @@ export declare class RmCore {
25
27
  columnSubsetCacheFactory: ColumnSubsetCacheFactory;
26
28
  columnUtil: ColumnUtil;
27
29
  createRequestFactory: CreateRequestFactory;
28
- itemAdministrator: ItemAdministrator;
29
30
  itemCacheFactory: ItemCacheFactory;
30
31
  itemEntryFactory: ItemEntryFactory;
31
32
  itemEntryService: ItemEntryService;
32
- itemHandler: ItemHandler;
33
- itemRequestService: ItemRequestService;
34
33
  itemResourceFactory: ItemResourceFactory;
35
34
  keyService: KeyService;
36
- localCacheFactory: LocalCacheFactory;
35
+ transactionCacheFactory: TransactionCacheFactory;
37
36
  lockService: LockService;
38
37
  moduleChangesCompilationFactory: ModuleChangesCompilationFactory;
39
38
  queryMatcherFactory: QueryMatcherFactory;
@@ -42,7 +41,9 @@ export declare class RmCore {
42
41
  requestColumnExpansionFactory: RequestColumnExpansionFactory;
43
42
  socketMessageHandler: SocketMessageHandler;
44
43
  templateFactory: TemplateFactory;
45
- constructor(apiRequestServiceInterface: ApiRequestServiceInterface, authInterface: AuthInterface, errorHandlerInterface: ErrorHandlerInterface, exceptionHandlerInterface: ExceptionHandlerInterface, localCacheManager: LocalCacheManagerInterface, promiseLibraryInterface: PromiseLibraryInterface);
44
+ changesDeltaFactory: ChangesDeltaFactory;
45
+ templateCache: TemplateCache;
46
+ constructor(_apiRequestService: ApiRequestServiceInterface, authInterface: AuthInterface, errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, promiseLibrary: PromiseLibraryInterface, linkTreeService: LinkTreeServiceInterface);
46
47
  }
47
48
  export declare function noop(): void;
48
49
  export declare function identity(value: any): any;
@@ -1,10 +1,6 @@
1
- import { ChangesCompilation, KeyService } from '../classes';
2
- import { CollectionEntry, ItemEntry } from '../models';
3
- import { ItemType } from '../types';
4
- import { CollectionCacheFactory } from './';
1
+ import { ChangesCompilation } from '../classes';
2
+ import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
5
3
  export declare class ChangesCompilationFactory {
6
- private collectionCacheFactory;
7
- private keyService;
8
- constructor(collectionCacheFactory: CollectionCacheFactory, keyService: KeyService);
9
- construct(singleItems: Array<ItemEntry<ItemType>>, collections: Array<CollectionEntry<ItemType>>): ChangesCompilation;
4
+ constructor();
5
+ construct(transaction: TransactionCache): ChangesCompilation;
10
6
  }
@@ -0,0 +1,9 @@
1
+ import { ItemEntryService } from '../classes';
2
+ import { ChangesDelta } from '../classes/ChangesDelta';
3
+ import { InternalChangesDelta } from '../classes/InternalChangesDelta';
4
+ export declare class ChangesDeltaFactory {
5
+ private itemEntryService;
6
+ constructor(itemEntryService: ItemEntryService);
7
+ construct(): ChangesDelta;
8
+ constructInternalDelta(): InternalChangesDelta;
9
+ }
@@ -0,0 +1,22 @@
1
+ import { ApiRequestService, ChangesProcessor, CollectionEntryService, ItemEntryService, OnAfterCreateCallback } from '../classes';
2
+ import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
3
+ import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
4
+ import { ChangesCompilationFactory } from './ChangesCompilationFactory';
5
+ import { ChangesDeltaFactory } from './ChangesDeltaFactory';
6
+ import { ColumnExpansionFactory } from './ColumnExpansionFactory';
7
+ import { CreateRequestFactory } from './CreateRequestFactory';
8
+ import { RequestColumnExpansionFactory } from './RequestColumnExpansionFactory';
9
+ export declare class ChangesProcessorFactory {
10
+ private changesDeltaFactory;
11
+ private apiRequestService;
12
+ private changesCompilationFactory;
13
+ private columnExpansionFactory;
14
+ private createRequestFactory;
15
+ private errorHandler;
16
+ private promiseService;
17
+ private requestColumnExpansionFactory;
18
+ private collectionEntryService;
19
+ private itemEntryService;
20
+ constructor(changesDeltaFactory: ChangesDeltaFactory, apiRequestService: ApiRequestService, changesCompilationFactory: ChangesCompilationFactory, columnExpansionFactory: ColumnExpansionFactory, createRequestFactory: CreateRequestFactory, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory, collectionEntryService: CollectionEntryService, itemEntryService: ItemEntryService);
21
+ construct(transaction: TransactionCache, breakUpByParent?: boolean, onAfterCreateCallback?: OnAfterCreateCallback): ChangesProcessor;
22
+ }
@@ -1,7 +1,8 @@
1
1
  import { CollectionCache } from '../classes';
2
+ import { AbstractCache } from '../classes/cache/AbstractCache';
2
3
  import { QueryMatcherFactory } from '../factories';
3
4
  export declare class CollectionCacheFactory {
4
5
  private queryMatcherFactory;
5
6
  constructor(queryMatcherFactory: QueryMatcherFactory);
6
- construct(): CollectionCache;
7
+ construct(transaction: AbstractCache): CollectionCache;
7
8
  }
@@ -1,23 +1,11 @@
1
- import { CollectionEntryService, ColumnHandler, ItemEntryService, ItemHandler, ItemRequestService, KeyService, QueryService } from '../classes/';
2
- import { CollectionResourceFactory, ColumnExpansionFactory, ColumnSetFactory, ItemEntryFactory } from '../factories/';
3
- import { ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from '../interfaces/';
1
+ import { CollectionEntryService, KeyService } from '../classes';
4
2
  import { CollectionEntry, CollectionEntryOptionsInterface } from '../models/';
5
3
  import { ItemType } from '../types/';
4
+ import { ColumnSetFactory } from './ColumnSetFactory';
6
5
  export declare class CollectionEntryFactory {
7
- collectionEntryService: CollectionEntryService;
8
- collectionResourceFactory: CollectionResourceFactory;
9
- columnExpansionFactory: ColumnExpansionFactory;
10
- columnHandler: ColumnHandler;
11
- columnSetFactory: ColumnSetFactory;
12
- errorHandler: ErrorHandlerInterface;
13
- exceptionHandler: ExceptionHandlerInterface;
14
- itemEntryFactory: ItemEntryFactory;
15
- itemEntryService: ItemEntryService;
16
- itemHandler: ItemHandler;
17
- itemRequestService: ItemRequestService;
18
- keyService: KeyService;
19
- promiseService: PromiseLibraryInterface;
20
- queryService: QueryService;
21
- constructor(collectionEntryService: CollectionEntryService, collectionResourceFactory: CollectionResourceFactory, columnExpansionFactory: ColumnExpansionFactory, columnHandler: ColumnHandler, columnSetFactory: ColumnSetFactory, errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, itemEntryFactory: ItemEntryFactory, itemEntryService: ItemEntryService, itemHandler: ItemHandler, itemRequestService: ItemRequestService, keyService: KeyService, promiseService: PromiseLibraryInterface, queryService: QueryService);
6
+ private collectionEntryService;
7
+ private columnSetFactory;
8
+ private keyService;
9
+ constructor(collectionEntryService: CollectionEntryService, columnSetFactory: ColumnSetFactory, keyService: KeyService);
22
10
  construct<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionEntryOptionsInterface): CollectionEntry<ItemTypeType>;
23
11
  }
@@ -1,8 +1,9 @@
1
- import { CollectionCache, CollectionMatcher } from '../classes';
1
+ import { CollectionMatcher, ServerCache, TransactionCache } from '../classes';
2
2
  import { QueryMatcherFactory } from '../factories';
3
+ import { CollectionEntry } from '../models';
3
4
  import { ItemType } from '../types';
4
5
  export declare class CollectionMatcherFactory {
5
6
  private queryMatcherFactory;
6
7
  constructor(queryMatcherFactory: QueryMatcherFactory);
7
- construct<ItemTypeType extends ItemType>(collectionCaches: CollectionCache[], updateInitial: boolean, callOnAdd: boolean, callOnActivate: boolean): CollectionMatcher<ItemTypeType>;
8
+ construct(transaction: TransactionCache | ServerCache, getCollectionEntries: <ItemTypeType extends ItemType>(itemType: ItemTypeType) => Array<CollectionEntry<ItemTypeType>>): CollectionMatcher;
8
9
  }
@@ -1,32 +1,34 @@
1
- import { ChangesProcessor, KeyService, LocalCache } from '../classes';
1
+ import { KeyService } from '../classes';
2
+ import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
2
3
  import { ItemResourceFactory } from '../factories';
3
4
  import { ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from '../interfaces';
4
5
  import { CollectionEditResource, CollectionEntry, CollectionResourceOptionsInterface, CollectionViewResource, EditResource, LocalViewResource, RemoteViewResource } from '../models';
5
6
  import { ItemType } from '../types';
7
+ import { ChangesDeltaFactory } from './ChangesDeltaFactory';
6
8
  export declare class CollectionResourceFactory {
7
9
  errorHandler: ErrorHandlerInterface;
8
10
  exceptionHandler: ExceptionHandlerInterface;
9
11
  itemResourceFactory: ItemResourceFactory;
10
12
  keyService: KeyService;
11
13
  promiseService: PromiseLibraryInterface;
12
- changesProcessor: ChangesProcessor;
13
- constructor(errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, itemResourceFactory: ItemResourceFactory, keyService: KeyService, promiseService: PromiseLibraryInterface);
14
+ changesDeltaFactory: ChangesDeltaFactory;
15
+ constructor(errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, itemResourceFactory: ItemResourceFactory, keyService: KeyService, promiseService: PromiseLibraryInterface, changesDeltaFactory: ChangesDeltaFactory);
14
16
  construct<ItemTypeType extends ItemType>(collectionEntry: CollectionEntry<ItemTypeType>, options: CollectionResourceOptionsInterface<ItemTypeType> & {
15
17
  editItems: true;
16
18
  editCollection: true;
17
- }, localCache: LocalCache | null): CollectionEditResource<ItemTypeType, EditResource<ItemTypeType>>;
19
+ }, transaction: TransactionCache): CollectionEditResource<ItemTypeType, EditResource<ItemTypeType>>;
18
20
  construct<ItemTypeType extends ItemType>(collectionEntry: CollectionEntry<ItemTypeType>, options: CollectionResourceOptionsInterface<ItemTypeType> & {
19
21
  remoteItems: true;
20
22
  editCollection: true;
21
- }, localCache: LocalCache | null): CollectionEditResource<ItemTypeType, RemoteViewResource<ItemTypeType>>;
23
+ }, transaction: TransactionCache): CollectionEditResource<ItemTypeType, RemoteViewResource<ItemTypeType>>;
22
24
  construct<ItemTypeType extends ItemType>(collectionEntry: CollectionEntry<ItemTypeType>, options: CollectionResourceOptionsInterface<ItemTypeType> & {
23
25
  editCollection: true;
24
- }, localCache: LocalCache | null): CollectionEditResource<ItemTypeType, LocalViewResource<ItemTypeType>>;
26
+ }, transaction: TransactionCache): CollectionEditResource<ItemTypeType, LocalViewResource<ItemTypeType>>;
25
27
  construct<ItemTypeType extends ItemType>(collectionEntry: CollectionEntry<ItemTypeType>, options: CollectionResourceOptionsInterface<ItemTypeType> & {
26
28
  editItems: true;
27
- }, localCache: LocalCache | null): CollectionViewResource<ItemTypeType, EditResource<ItemTypeType>>;
29
+ }, transaction: TransactionCache): CollectionViewResource<ItemTypeType, EditResource<ItemTypeType>>;
28
30
  construct<ItemTypeType extends ItemType>(collectionEntry: CollectionEntry<ItemTypeType>, options: CollectionResourceOptionsInterface<ItemTypeType> & {
29
31
  remoteItems: true;
30
- }, localCache: LocalCache | null): CollectionViewResource<ItemTypeType, RemoteViewResource<ItemTypeType>>;
31
- construct<ItemTypeType extends ItemType>(collectionEntry: CollectionEntry<ItemTypeType>, options: CollectionResourceOptionsInterface<ItemTypeType>, localCache: LocalCache | null): CollectionViewResource<ItemTypeType, LocalViewResource<ItemTypeType>>;
32
+ }, transaction: TransactionCache): CollectionViewResource<ItemTypeType, RemoteViewResource<ItemTypeType>>;
33
+ construct<ItemTypeType extends ItemType>(collectionEntry: CollectionEntry<ItemTypeType>, options: CollectionResourceOptionsInterface<ItemTypeType>, transaction: TransactionCache): CollectionViewResource<ItemTypeType, LocalViewResource<ItemTypeType>>;
32
34
  }
@@ -11,6 +11,8 @@ export declare class ColumnSetFactory {
11
11
  construct<ItemTypeType extends ItemType>(itemType: ItemTypeType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, enableCaching?: boolean, includeIdColumn?: boolean): ColumnSet<ItemTypeType>;
12
12
  constructFromResponse<ItemTypeType extends ItemType>(itemType: ItemType, responseColumns: ResponseColumnItemTypeMap, enableCaching?: boolean): ColumnSet<ItemTypeType>;
13
13
  private processResponseColumns;
14
+ private constructRequestColumnsFromRootColumnMap;
15
+ private expandRootColumnMapFromResponseColumns;
14
16
  private processRequestColumns;
15
17
  private processColumnInfo;
16
18
  private expandRootColumnMap;
@@ -1,11 +1,11 @@
1
- import { CollectionCache, CollectionHandler, CreateCompilation, CreateRequest, KeyService } from '../classes';
2
- import { CollectionMatcherFactory, RequestColumnExpansionFactory } from '../factories';
3
- import { CreateRequestParameterMap, ItemType } from '../types';
1
+ import { ApiFormatter, CreateCompilation, CreateRequest, KeyService } from '../classes';
2
+ import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
3
+ import { RequestColumnExpansionFactory } from '../factories';
4
+ import { ItemType } from '../types';
4
5
  export declare class CreateRequestFactory {
5
- private collectionHandler;
6
- private collectionMatcherFactory;
6
+ private apiFormatter;
7
7
  private keyService;
8
8
  private requestColumnExpansionFactory;
9
- constructor(collectionHandler: CollectionHandler, collectionMatcherFactory: CollectionMatcherFactory, keyService: KeyService, requestColumnExpansionFactory: RequestColumnExpansionFactory);
10
- construct<ItemTypeType extends ItemType>(compilation: CreateCompilation, localCollectionCache: CollectionCache, parameterMap: CreateRequestParameterMap, breakupByParent?: boolean): CreateRequest<ItemTypeType>;
9
+ constructor(apiFormatter: ApiFormatter, keyService: KeyService, requestColumnExpansionFactory: RequestColumnExpansionFactory);
10
+ construct<ItemTypeType extends ItemType>(compilation: CreateCompilation, transaction: TransactionCache, breakupByParent?: boolean): CreateRequest<ItemTypeType>;
11
11
  }
@@ -1,7 +1,8 @@
1
1
  import { ItemCache } from '../classes';
2
+ import { AbstractCache } from '../classes/cache/AbstractCache';
2
3
  import { QueryMatcherFactory } from '../factories';
3
4
  export declare class ItemCacheFactory {
4
5
  private queryMatcherFactory;
5
6
  constructor(queryMatcherFactory: QueryMatcherFactory);
6
- construct(): ItemCache;
7
+ construct(transaction: AbstractCache): ItemCache;
7
8
  }
@@ -1,8 +1,8 @@
1
1
  import { ApiFormatter, ColumnSet, ItemEntryService, KeyService } from '../classes';
2
2
  import { ColumnSetFactory, ItemResourceFactory } from '../factories';
3
3
  import { AuthInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from '../interfaces';
4
- import { ItemEntry, Template } from '../models';
5
- import { ApiRequestColumns, EntryParentNull, FieldMap, ItemId, ItemIdConversionMap, ItemType } from '../types';
4
+ import { ItemEntry } from '../models';
5
+ import { ItemId, ItemType } from '../types';
6
6
  export declare class ItemEntryFactory {
7
7
  authInterface: AuthInterface;
8
8
  apiFormatter: ApiFormatter;
@@ -13,9 +13,5 @@ export declare class ItemEntryFactory {
13
13
  keyService: KeyService;
14
14
  promiseService: PromiseLibraryInterface;
15
15
  constructor(authInterface: AuthInterface, apiFormatter: ApiFormatter, columnSetFactory: ColumnSetFactory, exceptionHandler: ExceptionHandlerInterface, itemEntryService: ItemEntryService, itemResourceFactory: ItemResourceFactory, keyService: KeyService, promiseService: PromiseLibraryInterface);
16
- constructStub<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: ItemId, columnSetStub: ColumnSet<ItemTypeType>): ItemEntry<ItemTypeType>;
17
- constructLocalLinked<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: ItemId, initial: FieldMap<ItemTypeType>, parent: EntryParentNull, columnSet: ColumnSet<ItemTypeType>, conversionMap: ItemIdConversionMap): ItemEntry<ItemTypeType>;
18
- constructLocal<ItemTypeType extends ItemType>(itemId: ItemId, template: Template<ItemTypeType>, modified: FieldMap<ItemTypeType>, derived: FieldMap, parent?: EntryParentNull, columnSet?: ColumnSet<ItemTypeType>, conversionMap?: ItemIdConversionMap): ItemEntry<ItemTypeType>;
19
- constructDeferred<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: ItemId, requestColumns: ApiRequestColumns, deferRequest: boolean): ItemEntry<ItemTypeType>;
20
- construct<ItemTypeType extends ItemType>(itemId: ItemId, initial: FieldMap<ItemTypeType>, derived: FieldMap, columnInfo: ColumnSet<ItemTypeType>): ItemEntry<ItemTypeType>;
16
+ construct<ItemTypeType extends ItemType>(itemId: ItemId, columnInfo: ColumnSet<ItemTypeType>): ItemEntry<ItemTypeType>;
21
17
  }
@@ -1,5 +1,7 @@
1
- import { ApiFormatter, ChangesProcessor, LocalCache, LockService } from '../classes';
2
- import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
1
+ import { ApiFormatter, ColumnUtil, LockService } from '../classes';
2
+ import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
3
+ import { ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from '../interfaces';
4
+ import { LinkTreeServiceInterface } from '../interfaces/LinkTreeServiceInterface';
3
5
  import { EditResource, ItemEntry, ItemResource, LocalViewResource, RemoteViewResource } from '../models';
4
6
  import { ItemOptionsInterface, ItemType } from '../types';
5
7
  export declare type ResourceConstructor<ItemTypeType extends ItemType, T extends ItemResource<ItemTypeType>> = (itemEntry: ItemEntry<ItemTypeType>) => T;
@@ -8,21 +10,23 @@ export declare class ItemResourceFactory {
8
10
  lockService: LockService;
9
11
  errorHandler: ErrorHandlerInterface;
10
12
  promiseService: PromiseLibraryInterface;
11
- changesProcessor: ChangesProcessor;
12
- constructor(apiFormatter: ApiFormatter, lockService: LockService, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface);
13
+ exceptionHandler: ExceptionHandlerInterface;
14
+ columnUtil: ColumnUtil;
15
+ linkTreeService: LinkTreeServiceInterface;
16
+ constructor(apiFormatter: ApiFormatter, lockService: LockService, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, exceptionHandler: ExceptionHandlerInterface, columnUtil: ColumnUtil, linkTreeService: LinkTreeServiceInterface);
13
17
  getConstructor<ItemTypeType extends ItemType>(options: ItemOptionsInterface & {
14
18
  edit: true;
15
- }, localCache: LocalCache | null): ResourceConstructor<ItemTypeType, EditResource<ItemTypeType>>;
19
+ }, transaction: TransactionCache): ResourceConstructor<ItemTypeType, EditResource<ItemTypeType>>;
16
20
  getConstructor<ItemTypeType extends ItemType>(options: ItemOptionsInterface & {
17
21
  remote: true;
18
- }, localCache: LocalCache | null): ResourceConstructor<ItemTypeType, RemoteViewResource<ItemTypeType>>;
19
- getConstructor<ItemTypeType extends ItemType>(options: ItemOptionsInterface, localCache: LocalCache | null): ResourceConstructor<ItemTypeType, LocalViewResource<ItemTypeType>>;
22
+ }, transaction: TransactionCache): ResourceConstructor<ItemTypeType, RemoteViewResource<ItemTypeType>>;
23
+ getConstructor<ItemTypeType extends ItemType>(options: ItemOptionsInterface, transaction: TransactionCache): ResourceConstructor<ItemTypeType, LocalViewResource<ItemTypeType>>;
20
24
  construct<ItemTypeType extends ItemType>(itemEntry: ItemEntry<ItemTypeType>, options: ItemOptionsInterface & {
21
25
  edit: true;
22
- }, localCache?: LocalCache | null, isNew?: boolean): EditResource<ItemTypeType>;
26
+ }, transaction: TransactionCache, isNew?: boolean): EditResource<ItemTypeType>;
23
27
  construct<ItemTypeType extends ItemType>(itemEntry: ItemEntry<ItemTypeType>, options: ItemOptionsInterface & {
24
28
  remote: true;
25
- }, localCache?: LocalCache | null, isNew?: boolean): LocalViewResource<ItemTypeType>;
26
- construct<ItemTypeType extends ItemType>(itemEntry: ItemEntry<ItemTypeType>, options: ItemOptionsInterface, localCache?: LocalCache | null, isNew?: boolean): RemoteViewResource<ItemTypeType>;
29
+ }, transaction: TransactionCache, isNew?: boolean): LocalViewResource<ItemTypeType>;
30
+ construct<ItemTypeType extends ItemType>(itemEntry: ItemEntry<ItemTypeType>, options: ItemOptionsInterface, transaction: TransactionCache, isNew?: boolean): RemoteViewResource<ItemTypeType>;
27
31
  private constructWithOptions;
28
32
  }
@@ -1,6 +1,5 @@
1
- import { CollectionCache, ItemCache, ModuleChangesCompilation } from '../classes';
2
- import { ItemEntry } from '../models';
3
- import { ItemType } from '../types';
1
+ import { ModuleChangesCompilation } from '../classes';
2
+ import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
4
3
  export declare class ModuleChangesCompilationFactory {
5
- construct<ItemTypeType extends ItemType>(rootItem: ItemEntry<ItemTypeType>, singleItemCache: ItemCache, collectionCache: CollectionCache): ModuleChangesCompilation<ItemTypeType>;
4
+ construct(transaction: TransactionCache): ModuleChangesCompilation;
6
5
  }
@@ -0,0 +1,55 @@
1
+ import { ApiFormatter, ApiRequestService, CollectionEntryService, ColumnCache, ColumnHandler, ColumnUtil, ItemEntryService, KeyService, LockService, QueryService } from '../classes';
2
+ import { ServerCache } from '../classes/cache/server/ServerCache';
3
+ import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
4
+ import { RequestBufferManager } from '../classes/RequestBufferManager';
5
+ import { TemplateCache } from '../classes/TemplateCache';
6
+ import { RmCore } from '../core';
7
+ import { CollectionCacheFactory, CollectionEntryFactory, CollectionMatcherFactory, CollectionResourceFactory, ColumnExpansionFactory, ColumnSetFactory, ColumnSubsetCacheFactory, ItemCacheFactory, ItemEntryFactory, ItemResourceFactory, ModuleChangesCompilationFactory, QueryMatcherFactory, QueryParserFactory, RequestColumnExpansionFactory } from '../factories';
8
+ import { AuthInterface, ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from '../interfaces';
9
+ import { LinkTreeServiceInterface } from '../interfaces/LinkTreeServiceInterface';
10
+ import { ChangesDeltaFactory } from './ChangesDeltaFactory';
11
+ import { ChangesProcessorFactory } from './ChangesProcessorFactory';
12
+ export declare class TransactionCacheFactory {
13
+ private core;
14
+ private columnCache;
15
+ private requestBufferManager;
16
+ private requestColumnExpansionFactory;
17
+ private queryMatcherFactory;
18
+ private authInterface;
19
+ private changesDeltaFactory;
20
+ private changesProcessorFactory;
21
+ private lockService;
22
+ private moduleChangesCompilationFactory;
23
+ private collectionResourceFactory;
24
+ private itemResourceFactory;
25
+ private templateCache;
26
+ private itemCacheFactory;
27
+ private collectionCacheFactory;
28
+ private errorHandler;
29
+ private exceptionHandler;
30
+ private promiseService;
31
+ private apiFormatter;
32
+ private apiRequestService;
33
+ private columnExpansionFactory;
34
+ private columnHandler;
35
+ private columnSetFactory;
36
+ private columnSubsetCacheFactory;
37
+ private columnUtil;
38
+ private itemEntryFactory;
39
+ private itemEntryService;
40
+ private keyService;
41
+ private collectionEntryFactory;
42
+ private collectionEntryService;
43
+ private collectionMatcherFactory;
44
+ private queryParserFactory;
45
+ private queryService;
46
+ private linkTreeService;
47
+ private readonly serverCache;
48
+ constructor(core: RmCore, columnCache: ColumnCache, requestBufferManager: RequestBufferManager, requestColumnExpansionFactory: RequestColumnExpansionFactory, queryMatcherFactory: QueryMatcherFactory, authInterface: AuthInterface, changesDeltaFactory: ChangesDeltaFactory, changesProcessorFactory: ChangesProcessorFactory, lockService: LockService, moduleChangesCompilationFactory: ModuleChangesCompilationFactory, collectionResourceFactory: CollectionResourceFactory, itemResourceFactory: ItemResourceFactory, templateCache: TemplateCache, itemCacheFactory: ItemCacheFactory, collectionCacheFactory: CollectionCacheFactory, errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, promiseService: PromiseLibraryInterface, apiFormatter: ApiFormatter, apiRequestService: ApiRequestService, columnExpansionFactory: ColumnExpansionFactory, columnHandler: ColumnHandler, columnSetFactory: ColumnSetFactory, columnSubsetCacheFactory: ColumnSubsetCacheFactory, columnUtil: ColumnUtil, itemEntryFactory: ItemEntryFactory, itemEntryService: ItemEntryService, keyService: KeyService, collectionEntryFactory: CollectionEntryFactory, collectionEntryService: CollectionEntryService, collectionMatcherFactory: CollectionMatcherFactory, queryParserFactory: QueryParserFactory, queryService: QueryService, linkTreeService: LinkTreeServiceInterface);
49
+ /**
50
+ * Todo[cache] Store a map of all transactions by transaction id ?
51
+ */
52
+ getById(id: string): TransactionCache | undefined;
53
+ construct(id?: string): TransactionCache;
54
+ getServerCache(): ServerCache;
55
+ }
@@ -1,5 +1,4 @@
1
1
  export * from './ApiResponseProcessorFactory';
2
- export * from './BatchStatusFactory';
3
2
  export * from './ChangesCompilationFactory';
4
3
  export * from './CollectionCacheFactory';
5
4
  export * from './CollectionEntryFactory';
@@ -13,9 +12,11 @@ export * from './CreateRequestFactory';
13
12
  export * from './ItemCacheFactory';
14
13
  export * from './ItemEntryFactory';
15
14
  export * from './ItemResourceFactory';
16
- export * from './LocalCacheFactory';
15
+ export * from './TransactionCacheFactory';
17
16
  export * from './ModuleChangesCompilationFactory';
18
17
  export * from './QueryMatcherFactory';
19
18
  export * from './QueryParserFactory';
20
19
  export * from './RequestColumnExpansionFactory';
21
20
  export * from './TemplateFactory';
21
+ export * from './ChangesDeltaFactory';
22
+ export * from './ChangesProcessorFactory';
@@ -0,0 +1,4 @@
1
+ import { ApiLinkTree } from '../types';
2
+ export interface LinkTreeServiceInterface {
3
+ get: () => ApiLinkTree;
4
+ }
@@ -1,7 +1,7 @@
1
1
  export * from './PromiseLibraryInterface';
2
- export * from './LocalCacheManagerInterface';
3
2
  export * from './ErrorHandlerInterface';
4
3
  export * from './ExceptionHandlerInterface';
5
4
  export * from './AuthInterface';
6
5
  export * from './ApiRequestServiceInterface';
7
6
  export * from './SocketMessageInterface';
7
+ export * from './LinkTreeServiceInterface';
@@ -1,14 +1,37 @@
1
- import { LocalCache } from '../classes';
1
+ import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
2
+ import { ChangesDeltaResult } from '../classes/ChangesDeltaBase';
2
3
  import { CollectionResourceFactory } from '../factories';
3
- import { CollectionEntry, CollectionResource, CollectionResourceOptions, ItemResource, LocalViewResource } from '../models';
4
- import { FieldMap, ItemId, ItemIdConversionMap, ItemType, PromiseInterface } from '../types';
4
+ import { CollectionEntry, CollectionResource, CollectionResourceOptions, ItemEntry, ItemResource, LocalViewResource } from '../models';
5
+ import { FieldMap, ItemId, ItemType, PromiseInterface } from '../types';
5
6
  export declare class CollectionEditResource<ItemTypeType extends ItemType = any, T extends ItemResource<ItemTypeType> = LocalViewResource<ItemTypeType>> extends CollectionResource<ItemTypeType, T> {
6
- constructor(factory: CollectionResourceFactory, collectionEntry: CollectionEntry<ItemTypeType>, options: CollectionResourceOptions<ItemTypeType>, localCache: LocalCache | null);
7
- save(): PromiseInterface<ItemIdConversionMap>;
8
- moveItems(idArray: ItemId[], destination: CollectionResource<ItemTypeType>, enableCallbacks?: boolean): T[];
9
- removeItems(idArray: ItemId[], callOnRemove?: boolean): PromiseInterface<T[]>;
10
- removeItem(itemId: ItemId, callOnRemove?: boolean): PromiseInterface<T>;
11
- addItems(valuesArray: Array<FieldMap<ItemTypeType>>, callOnAdd?: boolean, callOnActivate?: boolean): PromiseInterface<T[]>;
12
- addItem(values: FieldMap<ItemTypeType>, callOnAdd?: boolean, callOnActivate?: boolean): PromiseInterface<T>;
13
- clear(enableCallbacks: boolean): this["items"];
7
+ constructor(factory: CollectionResourceFactory, collectionEntry: CollectionEntry<ItemTypeType>, options: CollectionResourceOptions<ItemTypeType>, transactionCache: TransactionCache);
8
+ /**
9
+ * @deprecated
10
+ * Use {@link ChangesDelta.setItemMoved ChangesDelta.setItemMoved}
11
+ */
12
+ moveItems(itemEntries: Array<ItemEntry<ItemTypeType>>, destinationResource: CollectionResource<ItemTypeType>): void;
13
+ /**
14
+ * @deprecated
15
+ * Use {@link ChangesDelta.setItemDeleted ChangesDelta.setItemDeleted}
16
+ */
17
+ removeItems(idArray: ItemId[]): void;
18
+ /**
19
+ * @deprecated
20
+ * Use {@link ChangesDelta.setItemDeleted ChangesDelta.setItemDeleted}
21
+ */
22
+ removeItem(itemId: ItemId): void;
23
+ /**
24
+ * @deprecated
25
+ * Use {@link ChangesDelta.setItemCreated ChangesDelta.setItemCreated}
26
+ *
27
+ * todo[cache] this will fetchCollectionEntry a template for you, make a convenience function ?
28
+ */
29
+ addItems(valuesArray: Array<FieldMap<ItemTypeType>>): PromiseInterface<ChangesDeltaResult>;
30
+ /**
31
+ * @deprecated
32
+ * Use {@link ChangesDelta.setItemCreated ChangesDelta.setItemCreated}
33
+ *
34
+ * todo[cache] this will fetchCollectionEntry a template for you, make a convenience function ?
35
+ */
36
+ addItem(values: FieldMap<ItemTypeType>): PromiseInterface<ChangesDeltaResult>;
14
37
  }