@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,23 +1,23 @@
1
- import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { ApiQuery, ApiRequestColumns, CollectionQuery, ColumnSubsetCache, ItemEntryOptions, ParentIdMap, PromiseInterface, TransactionCollectionHandlerDependencyInterface, TransactionItemHandler } from '../../../index';
3
- import { ItemEntry } from '../../../models';
4
- import { CollectionOptions } from '../../../models/CollectionOptions';
5
- import { CachedQueryHandlerBase, CachedQueryItem } from '../CachedQueryHandlerBase';
6
- import { TransactionCache } from './TransactionCache';
7
- export declare class TransactionCachedQueryHandler extends CachedQueryHandlerBase {
8
- private dependencies;
9
- private itemHandler;
10
- protected transaction: TransactionCache;
11
- constructor(dependencies: TransactionCollectionHandlerDependencyInterface, itemHandler: TransactionItemHandler, transaction: TransactionCache);
12
- __fetchCachedQueryItem<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
13
- __expandCachedQuery<ItemTypeType extends ApiEnumItemType>(cachedQuery: CachedQueryItem<ItemTypeType>, newColumns: ApiRequestColumns, force?: boolean): PromiseInterface<CachedQueryItem<ItemTypeType>>;
14
- __addItemEntriesToCachedQueries<ItemTypeType extends ApiEnumItemType = any>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): void;
15
- /**
16
- * @remark
17
- * todo not only linkedTo should be checked, but it should check if there's a local ID anywhere in the query
18
- * ({<field>: <localId>}) is also a local query
19
- */
20
- isLocal(options: CollectionOptions | ItemEntryOptions, query: ApiQuery): boolean;
21
- __fetchItemEntriesByQueryData<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, collectionQuery: CollectionQuery): PromiseInterface<CachedQueryItem<ItemTypeType>>;
22
- __fetchLinkedCachedQueryItems<ItemTypeType extends ApiEnumItemType>(parentType: ApiEnumItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<ParentIdMap<CachedQueryItem<ItemTypeType>>>;
23
- }
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
+ import { ApiQuery, ApiRequestColumns, CollectionQuery, ColumnSubsetCache, ItemEntryOptions, ParentIdMap, PromiseInterface, TransactionCollectionHandlerDependencyInterface, TransactionItemHandler } from '../../../index';
3
+ import { ItemEntry } from '../../../models';
4
+ import { CollectionOptions } from '../../../models/CollectionOptions';
5
+ import { CachedQueryHandlerBase, CachedQueryItem } from '../CachedQueryHandlerBase';
6
+ import { TransactionCache } from './TransactionCache';
7
+ export declare class TransactionCachedQueryHandler extends CachedQueryHandlerBase {
8
+ private dependencies;
9
+ private itemHandler;
10
+ protected transaction: TransactionCache;
11
+ constructor(dependencies: TransactionCollectionHandlerDependencyInterface, itemHandler: TransactionItemHandler, transaction: TransactionCache);
12
+ __fetchCachedQueryItem<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<CachedQueryItem<ItemTypeType>>;
13
+ __expandCachedQuery<ItemTypeType extends ApiEnumItemType>(cachedQuery: CachedQueryItem<ItemTypeType>, newColumns: ApiRequestColumns, force?: boolean): PromiseInterface<CachedQueryItem<ItemTypeType>>;
14
+ __addItemEntriesToCachedQueries<ItemTypeType extends ApiEnumItemType = any>(itemType: ItemTypeType, parsedQuery: CollectionQuery, itemEntries: Array<ItemEntry<ItemTypeType>>): void;
15
+ /**
16
+ * @remark
17
+ * todo not only linkedTo should be checked, but it should check if there's a local ID anywhere in the query
18
+ * ({<field>: <localId>}) is also a local query
19
+ */
20
+ isLocal(options: CollectionOptions | ItemEntryOptions, query: ApiQuery): boolean;
21
+ __fetchItemEntriesByQueryData<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptions<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, collectionQuery: CollectionQuery): PromiseInterface<CachedQueryItem<ItemTypeType>>;
22
+ __fetchLinkedCachedQueryItems<ItemTypeType extends ApiEnumItemType>(parentType: ApiEnumItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionOptions): PromiseInterface<ParentIdMap<CachedQueryItem<ItemTypeType>>>;
23
+ }
@@ -1,29 +1,29 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { TransactionCollectionHandlerDependencyInterface } from '../../../interfaces/TransactionCollectionHandlerDependencyInterface';
3
- import { CollectionEntry, CollectionResource, ItemEntry } from '../../../models';
4
- import { ApiRequestColumns, ItemIdConversionMap, ModifyFieldsCallback, PromiseInterface } from '../../../types';
5
- import { ChangesDelta } from '../../ChangesDelta';
6
- import { TransactionCache } from './TransactionCache';
7
- import { TransactionCachedQueryHandler } from './TransactionCachedQueryHandler';
8
- import { TransactionItemHandler } from './TransactionItemHandler';
9
- export declare class TransactionCollectionHandler {
10
- protected itemHandler: TransactionItemHandler;
11
- protected cachedQueryHandler: TransactionCachedQueryHandler;
12
- private dependencies;
13
- private transaction;
14
- collectionResources: {
15
- [itemType: string]: {
16
- [queryString: string]: CollectionResource[];
17
- };
18
- };
19
- constructor(itemHandler: TransactionItemHandler, cachedQueryHandler: TransactionCachedQueryHandler, dependencies: TransactionCollectionHandlerDependencyInterface, transaction: TransactionCache);
20
- expandCollectionResource<ItemTypeType extends ApiEnumItemType = any>(collectionResource: CollectionResource<ItemTypeType>, newColumns: ApiRequestColumns): PromiseInterface<void>;
21
- addResource(resource: CollectionResource): void;
22
- clearResource(resource: CollectionResource): void;
23
- /**
24
- * @description
25
- * Updates the parents of the passed {@link ItemEntry ItemEntries}, returns `void` because you should use the {@link CollectionResourceOptions.onAdd onAdd} and {@link CollectionResourceOptions.onRemove onRemove} callbacks
26
- */
27
- moveItems<CollectionEntryType extends CollectionEntry>(sourceCollectionEntry: CollectionEntryType, destinationCollectionEntry: CollectionEntryType, itemEntries: Array<ItemEntry<CollectionEntryType['itemType']>>): void;
28
- cloneCollectionEntry<CollectionEntryType extends CollectionEntry>(changesDelta: ChangesDelta, sourceEntry: CollectionEntryType, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): void;
29
- }
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { TransactionCollectionHandlerDependencyInterface } from '../../../interfaces/TransactionCollectionHandlerDependencyInterface';
3
+ import { CollectionEntry, CollectionResource, ItemEntry } from '../../../models';
4
+ import { ApiRequestColumns, ItemIdConversionMap, ModifyFieldsCallback, PromiseInterface } from '../../../types';
5
+ import { ChangesDelta } from '../../ChangesDelta';
6
+ import { TransactionCache } from './TransactionCache';
7
+ import { TransactionCachedQueryHandler } from './TransactionCachedQueryHandler';
8
+ import { TransactionItemHandler } from './TransactionItemHandler';
9
+ export declare class TransactionCollectionHandler {
10
+ protected itemHandler: TransactionItemHandler;
11
+ protected cachedQueryHandler: TransactionCachedQueryHandler;
12
+ private dependencies;
13
+ private transaction;
14
+ collectionResources: {
15
+ [itemType: string]: {
16
+ [queryString: string]: CollectionResource[];
17
+ };
18
+ };
19
+ constructor(itemHandler: TransactionItemHandler, cachedQueryHandler: TransactionCachedQueryHandler, dependencies: TransactionCollectionHandlerDependencyInterface, transaction: TransactionCache);
20
+ expandCollectionResource<ItemTypeType extends ApiEnumItemType = any>(collectionResource: CollectionResource<ItemTypeType>, newColumns: ApiRequestColumns): PromiseInterface<void>;
21
+ addResource(resource: CollectionResource): void;
22
+ clearResource(resource: CollectionResource): void;
23
+ /**
24
+ * @description
25
+ * Updates the parents of the passed {@link ItemEntry ItemEntries}, returns `void` because you should use the {@link CollectionResourceOptions.onAdd onAdd} and {@link CollectionResourceOptions.onRemove onRemove} callbacks
26
+ */
27
+ moveItems<CollectionEntryType extends CollectionEntry>(sourceCollectionEntry: CollectionEntryType, destinationCollectionEntry: CollectionEntryType, itemEntries: Array<ItemEntry<CollectionEntryType['itemType']>>): void;
28
+ cloneCollectionEntry<CollectionEntryType extends CollectionEntry>(changesDelta: ChangesDelta, sourceEntry: CollectionEntryType, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): void;
29
+ }
@@ -1,24 +1,24 @@
1
- import { ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from '../../../interfaces';
2
- import { ItemEntry } from '../../../models';
3
- import { ItemIdConversionMap, PromiseInterface } from '../../../types';
4
- import { TransactionCache, TransactionErrorLevel } from './TransactionCache';
5
- export declare type TransactionCacheCallbackCondition = 'always' | 'onClose' | 'skipOnClose';
6
- export declare type TransactionCacheCallbackType = {
7
- onBeforeSave: (transaction: TransactionCache) => any;
8
- onSaveSuccess: (transaction: TransactionCache, conversionMap: ItemIdConversionMap) => any;
9
- onSetItemError: (itemEntryId: ItemEntry['id'], columnId: string, key: string) => void;
10
- onClearItemError: (itemEntryId: ItemEntry['id'], columnId: string, key: string) => void;
11
- onSetGlobalError: (key: string, level: TransactionErrorLevel) => void;
12
- onClearGlobalError: (key: string) => void;
13
- };
14
- export declare class TransactionEventHandler {
15
- private errorHandler;
16
- private exceptionHandler;
17
- private promiseService;
18
- private callbacks;
19
- constructor(errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, promiseService: PromiseLibraryInterface);
20
- registerCallback<T extends keyof TransactionCacheCallbackType>(type: T, key: string, callback: TransactionCacheCallbackType[T], condition?: TransactionCacheCallbackCondition, priority?: number): () => void;
21
- executeCallbacks<T extends keyof TransactionCacheCallbackType>(type: T, execute: (callback: TransactionCacheCallbackType[T]) => any, closeTab: boolean): PromiseInterface<any>;
22
- private getPriorityLevel;
23
- private executeCallbacksPriorityLevel;
24
- }
1
+ import { ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from '../../../interfaces';
2
+ import { ItemEntry } from '../../../models';
3
+ import { ItemIdConversionMap, PromiseInterface } from '../../../types';
4
+ import { TransactionCache, TransactionErrorLevel } from './TransactionCache';
5
+ export declare type TransactionCacheCallbackCondition = 'always' | 'onClose' | 'skipOnClose';
6
+ export declare type TransactionCacheCallbackType = {
7
+ onBeforeSave: (transaction: TransactionCache) => any;
8
+ onSaveSuccess: (transaction: TransactionCache, conversionMap: ItemIdConversionMap) => any;
9
+ onSetItemError: (itemEntryId: ItemEntry['id'], columnId: string, key: string) => void;
10
+ onClearItemError: (itemEntryId: ItemEntry['id'], columnId: string, key: string) => void;
11
+ onSetGlobalError: (key: string, level: TransactionErrorLevel) => void;
12
+ onClearGlobalError: (key: string) => void;
13
+ };
14
+ export declare class TransactionEventHandler {
15
+ private errorHandler;
16
+ private exceptionHandler;
17
+ private promiseService;
18
+ private callbacks;
19
+ constructor(errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, promiseService: PromiseLibraryInterface);
20
+ registerCallback<T extends keyof TransactionCacheCallbackType>(type: T, key: string, callback: TransactionCacheCallbackType[T], condition?: TransactionCacheCallbackCondition, priority?: number): () => void;
21
+ executeCallbacks<T extends keyof TransactionCacheCallbackType>(type: T, execute: (callback: TransactionCacheCallbackType[T]) => any, closeTab: boolean): PromiseInterface<any>;
22
+ private getPriorityLevel;
23
+ private executeCallbacksPriorityLevel;
24
+ }
@@ -1,94 +1,94 @@
1
- import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { TransactionItemHandlerDependencyInterface } from '../../../interfaces';
3
- import { ItemEntry, ItemEntryOptions } from '../../../models';
4
- import { ApiQuery, ApiRequestColumns, DeregFunction, FieldChangeCallback, FieldMap, ItemIdConversionMap, ItemTypeMap, ModifyFieldsCallback, PromiseInterface, ResponseColumnItemTypeMap } from '../../../types';
5
- import { ChangesDelta } from '../../ChangesDelta';
6
- import { ChangesDeltaBase, ChangesDeltaItemUpdateDelta, ChangesDeltaResult } from '../../ChangesDeltaBase';
7
- import { ChangesDeltaItemCreateDelta, ColumnSubsetCache } from '../../index';
8
- import { ItemHandlerBase, ProcessItemEntryChangesResult } from '../ItemHandlerBase';
9
- import { TransactionCache } from './TransactionCache';
10
- import { TransactionValidator } from './TransactionValidator';
11
- export declare type TransactionItemEntryChanges<Fields extends FieldMap = FieldMap> = {
12
- initial: Fields;
13
- changes: Fields;
14
- };
15
- /**
16
- * @description
17
- * In a {@link TransactionCache Transaction} only local items can be stored, so all entries in {@link TransactionItemHandler.entries this.entries} are local
18
- * If a non-local entry is requested it should be passed on to the {@link ServerItemHandler ServerItemHandler} which will __fetchCachedQueryItem the entry from the server
19
- */
20
- export declare class TransactionItemHandler extends ItemHandlerBase {
21
- private dependencies;
22
- protected transaction: TransactionCache;
23
- private validator?;
24
- deletedItems: ItemTypeMap<ItemEntry[]>;
25
- itemChanges: {
26
- [itemEntryId: number]: TransactionItemEntryChanges;
27
- };
28
- fieldChangeCallbacks: {
29
- [itemType: string]: {
30
- [itemId: string]: FieldChangeCallback[];
31
- };
32
- };
33
- constructor(dependencies: TransactionItemHandlerDependencyInterface, transaction: TransactionCache, validator?: TransactionValidator | undefined);
34
- registerFieldChangeCallback<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, callback: FieldChangeCallback<ItemTypeType>): DeregFunction;
35
- copyTransactionItemEntryChanges(itemEntryChanges: TransactionItemEntryChanges, entry: ItemEntry): TransactionItemEntryChanges;
36
- createItemEntry(createTuple: ChangesDeltaItemCreateDelta): ItemEntry;
37
- /**
38
- * @description
39
- * Gets the local {@link FieldMap changes} of the {@link ItemEntry entry} on the {@link TransactionCache transaction} in a formatted way the API accepts
40
- */
41
- formatRequest<ItemEntryType extends ItemEntry>(entry: ItemEntryType): {
42
- [columnId: string]: any;
43
- };
44
- detectChanges(): boolean;
45
- /**
46
- * @description
47
- * Checks if the transaction has changes for the passed {@link ItemEntry.id ItemEntryId}
48
- *
49
- * -----
50
- * @remarks
51
- * Compares every field (of the entry) in {@link TransactionItemHandler.itemChanges itemChanges} with the initial fields, because fields are copied over when creating a resource having something in itemChanges doesn't actually mean that there are changes (just that a resource has been made)
52
- */
53
- detectEntryChanges(itemEntryId: ItemEntry['id']): boolean;
54
- /**
55
- * @description
56
- * Processes on a cached entry, if there are no {@link TransactionItemHandler.itemChanges itemChanges} the new values will not be processed, unless forceOverwrite is set
57
- *
58
- * @param itemEntryChangesTuple The changes tuple
59
- * @param forceOverwrite Instead of calling {@link ApiFormatter.mergeCopyFields mergeCopyFields}, {@link ApiFormatter.copyFields copyFields} will be used (because API values are always right)
60
- * @param updateInitial Should be `true` if called by applyChangesFromParent
61
- * @param isCalledAfterSocketUpdate Indicates that the change is done by a different user
62
- * @param createItemChangesIfNoneExist Is `true` when called from `applyChangesDelta`, we can assume that when you call `applyChangesDelta` with updates that aren't on the transaction yet you want to add those
63
- *
64
- * @returns
65
- * The previous changes {@link FieldMap FieldMap}, returns `null` when the item was not cached or no fields were changed.
66
- */
67
- processItemEntryChanges<ItemTypeType extends ApiEnumItemType = any>(itemEntryChangesTuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, forceOverwrite?: boolean, updateInitial?: boolean, isCalledAfterSocketUpdate?: boolean, createItemChangesIfNoneExist?: boolean): ProcessItemEntryChangesResult<ItemTypeType>;
68
- cloneItemEntries<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemEntries: Array<ItemEntry<ItemTypeType>>, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): ItemId[];
69
- cloneItemEntry<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, sourceEntry: ItemEntry<ItemTypeType>, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): ItemId;
70
- fetchItemEntriesByQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, query: ApiQuery, entryOptions: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
71
- fetchItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
72
- /**
73
- * @description
74
- * Fetches a template and creates a new {@link ItemEntry ItemEntry}, will error if the ItemEntry with the given ItemId already exists
75
- */
76
- fetchNewItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ChangesDeltaResult>;
77
- fetchItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
78
- fetchTitle(itemType: ApiEnumItemType, itemId: ItemId): PromiseInterface<string>;
79
- resolveLocalItemEntry<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemEntry: ItemEntry<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
80
- expandLocalItemEntries<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDeltaBase, itemType: ItemTypeType, itemEntries: Array<ItemEntry<ItemTypeType>>, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
81
- /**
82
- * @description
83
- * Fetches the data for the passed ItemType/ItemId/columns, is able to __fetchCachedQueryItem non-local derived values.
84
- *
85
- * @remark
86
- * Assumes the the ItemEntry with the given ItemType-ItemId is already cached
87
- */
88
- fetchLocalItemEntryData<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemType: ItemTypeType, itemId: ItemId, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<any>;
89
- fetchLocalItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
90
- private getColumnDifference;
91
- private expandLocalItemEntry;
92
- private getLocalValues;
93
- private updateLocalItemIdReferences;
94
- }
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
+ import { TransactionItemHandlerDependencyInterface } from '../../../interfaces';
3
+ import { ItemEntry, ItemEntryOptions } from '../../../models';
4
+ import { ApiQuery, ApiRequestColumns, DeregFunction, FieldChangeCallback, FieldMap, ItemIdConversionMap, ItemTypeMap, ModifyFieldsCallback, PromiseInterface, ResponseColumnItemTypeMap } from '../../../types';
5
+ import { ChangesDelta } from '../../ChangesDelta';
6
+ import { ChangesDeltaBase, ChangesDeltaItemUpdateDelta, ChangesDeltaResult } from '../../ChangesDeltaBase';
7
+ import { ChangesDeltaItemCreateDelta, ColumnSubsetCache } from '../../index';
8
+ import { ItemHandlerBase, ProcessItemEntryChangesResult } from '../ItemHandlerBase';
9
+ import { TransactionCache } from './TransactionCache';
10
+ import { TransactionValidator } from './TransactionValidator';
11
+ export declare type TransactionItemEntryChanges<Fields extends FieldMap = FieldMap> = {
12
+ initial: Fields;
13
+ changes: Fields;
14
+ };
15
+ /**
16
+ * @description
17
+ * In a {@link TransactionCache Transaction} only local items can be stored, so all entries in {@link TransactionItemHandler.entries this.entries} are local
18
+ * If a non-local entry is requested it should be passed on to the {@link ServerItemHandler ServerItemHandler} which will __fetchCachedQueryItem the entry from the server
19
+ */
20
+ export declare class TransactionItemHandler extends ItemHandlerBase {
21
+ private dependencies;
22
+ protected transaction: TransactionCache;
23
+ private validator?;
24
+ deletedItems: ItemTypeMap<ItemEntry[]>;
25
+ itemChanges: {
26
+ [itemEntryId: number]: TransactionItemEntryChanges;
27
+ };
28
+ fieldChangeCallbacks: {
29
+ [itemType: string]: {
30
+ [itemId: string]: FieldChangeCallback[];
31
+ };
32
+ };
33
+ constructor(dependencies: TransactionItemHandlerDependencyInterface, transaction: TransactionCache, validator?: TransactionValidator | undefined);
34
+ registerFieldChangeCallback<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, callback: FieldChangeCallback<ItemTypeType>): DeregFunction;
35
+ copyTransactionItemEntryChanges(itemEntryChanges: TransactionItemEntryChanges, entry: ItemEntry): TransactionItemEntryChanges;
36
+ createItemEntry(createTuple: ChangesDeltaItemCreateDelta): ItemEntry;
37
+ /**
38
+ * @description
39
+ * Gets the local {@link FieldMap changes} of the {@link ItemEntry entry} on the {@link TransactionCache transaction} in a formatted way the API accepts
40
+ */
41
+ formatRequest<ItemEntryType extends ItemEntry>(entry: ItemEntryType): {
42
+ [columnId: string]: any;
43
+ };
44
+ detectChanges(): boolean;
45
+ /**
46
+ * @description
47
+ * Checks if the transaction has changes for the passed {@link ItemEntry.id ItemEntryId}
48
+ *
49
+ * -----
50
+ * @remarks
51
+ * Compares every field (of the entry) in {@link TransactionItemHandler.itemChanges itemChanges} with the initial fields, because fields are copied over when creating a resource having something in itemChanges doesn't actually mean that there are changes (just that a resource has been made)
52
+ */
53
+ detectEntryChanges(itemEntryId: ItemEntry['id']): boolean;
54
+ /**
55
+ * @description
56
+ * Processes on a cached entry, if there are no {@link TransactionItemHandler.itemChanges itemChanges} the new values will not be processed, unless forceOverwrite is set
57
+ *
58
+ * @param itemEntryChangesTuple The changes tuple
59
+ * @param forceOverwrite Instead of calling {@link ApiFormatter.mergeCopyFields mergeCopyFields}, {@link ApiFormatter.copyFields copyFields} will be used (because API values are always right)
60
+ * @param updateInitial Should be `true` if called by applyChangesFromParent
61
+ * @param isCalledAfterSocketUpdate Indicates that the change is done by a different user
62
+ * @param createItemChangesIfNoneExist Is `true` when called from `applyChangesDelta`, we can assume that when you call `applyChangesDelta` with updates that aren't on the transaction yet you want to add those
63
+ *
64
+ * @returns
65
+ * The previous changes {@link FieldMap FieldMap}, returns `null` when the item was not cached or no fields were changed.
66
+ */
67
+ processItemEntryChanges<ItemTypeType extends ApiEnumItemType = any>(itemEntryChangesTuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, forceOverwrite?: boolean, updateInitial?: boolean, isCalledAfterSocketUpdate?: boolean, createItemChangesIfNoneExist?: boolean): ProcessItemEntryChangesResult<ItemTypeType>;
68
+ cloneItemEntries<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemEntries: Array<ItemEntry<ItemTypeType>>, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): ItemId[];
69
+ cloneItemEntry<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, sourceEntry: ItemEntry<ItemTypeType>, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): ItemId;
70
+ fetchItemEntriesByQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, query: ApiQuery, entryOptions: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
71
+ fetchItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
72
+ /**
73
+ * @description
74
+ * Fetches a template and creates a new {@link ItemEntry ItemEntry}, will error if the ItemEntry with the given ItemId already exists
75
+ */
76
+ fetchNewItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ChangesDeltaResult>;
77
+ fetchItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
78
+ fetchTitle(itemType: ApiEnumItemType, itemId: ItemId): PromiseInterface<string>;
79
+ resolveLocalItemEntry<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemEntry: ItemEntry<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
80
+ expandLocalItemEntries<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDeltaBase, itemType: ItemTypeType, itemEntries: Array<ItemEntry<ItemTypeType>>, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
81
+ /**
82
+ * @description
83
+ * Fetches the data for the passed ItemType/ItemId/columns, is able to __fetchCachedQueryItem non-local derived values.
84
+ *
85
+ * @remark
86
+ * Assumes the the ItemEntry with the given ItemType-ItemId is already cached
87
+ */
88
+ fetchLocalItemEntryData<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemType: ItemTypeType, itemId: ItemId, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<any>;
89
+ fetchLocalItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
90
+ private getColumnDifference;
91
+ private expandLocalItemEntry;
92
+ private getLocalValues;
93
+ private updateLocalItemIdReferences;
94
+ }
@@ -1,35 +1,35 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ItemEntry } from '../../../models/index';
3
- import { FieldMap, PromiseInterface } from '../../../types/index';
4
- import { TransactionCache, TransactionErrorLevel } from './TransactionCache';
5
- export interface TransactionValidatorFactory {
6
- construct(transaction: TransactionCache): TransactionValidator;
7
- }
8
- export declare abstract class TransactionValidator {
9
- protected transaction: TransactionCache;
10
- private lastCallIdMap;
11
- private _lastCallId;
12
- protected constructor(transaction: TransactionCache);
13
- /**
14
- * @description
15
- * Will return `true` if there are any validators pending
16
- */
17
- isPending(): boolean;
18
- /**
19
- * @description
20
- * Will be called after {@link TransactionCache.applyChangesFromParent applyChangesFromParent}, {@link TransactionCache.applyChangesFromChild applyChangesFromChild} or {@link TransactionCache.applyChangesDelta applyChangesDelta} is called
21
- * Allows you to set {@link TransactionCache.errors global errors}
22
- */
23
- abstract validateTransaction(): void;
24
- /**
25
- * @description
26
- * Will be called whenever an item is changed, allows you to set errors on the transaction
27
- * @param itemEntry
28
- * @param fields
29
- * @param previous
30
- */
31
- abstract validateItem<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, fields: FieldMap<ItemTypeType>, previous: FieldMap<ItemTypeType>): void;
32
- protected setGlobalError(key: string, isInvalid: boolean | PromiseInterface<boolean>, saveButtonErrorTranslationFn: () => string, level: TransactionErrorLevel): void;
33
- protected setItemError(itemEntryId: ItemEntry['id'], columnId: string, errorKey: string, isInvalid: boolean | PromiseInterface<boolean>, fieldErrorTranslationFn: () => string, saveButtonErrorTranslationFn: () => string, level: TransactionErrorLevel): void;
34
- private getHash;
35
- }
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { ItemEntry } from '../../../models/index';
3
+ import { FieldMap, PromiseInterface } from '../../../types/index';
4
+ import { TransactionCache, TransactionErrorLevel } from './TransactionCache';
5
+ export interface TransactionValidatorFactory {
6
+ construct(transaction: TransactionCache): TransactionValidator;
7
+ }
8
+ export declare abstract class TransactionValidator {
9
+ protected transaction: TransactionCache;
10
+ private lastCallIdMap;
11
+ private _lastCallId;
12
+ protected constructor(transaction: TransactionCache);
13
+ /**
14
+ * @description
15
+ * Will return `true` if there are any validators pending
16
+ */
17
+ isPending(): boolean;
18
+ /**
19
+ * @description
20
+ * Will be called after {@link TransactionCache.applyChangesFromParent applyChangesFromParent}, {@link TransactionCache.applyChangesFromChild applyChangesFromChild} or {@link TransactionCache.applyChangesDelta applyChangesDelta} is called
21
+ * Allows you to set {@link TransactionCache.errors global errors}
22
+ */
23
+ abstract validateTransaction(): void;
24
+ /**
25
+ * @description
26
+ * Will be called whenever an item is changed, allows you to set errors on the transaction
27
+ * @param itemEntry
28
+ * @param fields
29
+ * @param previous
30
+ */
31
+ abstract validateItem<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, fields: FieldMap<ItemTypeType>, previous: FieldMap<ItemTypeType>): void;
32
+ protected setGlobalError(key: string, isInvalid: boolean | PromiseInterface<boolean>, saveButtonErrorTranslationFn: () => string, level: TransactionErrorLevel): void;
33
+ protected setItemError(itemEntryId: ItemEntry['id'], columnId: string, errorKey: string, isInvalid: boolean | PromiseInterface<boolean>, fieldErrorTranslationFn: () => string, saveButtonErrorTranslationFn: () => string, level: TransactionErrorLevel): void;
34
+ private getHash;
35
+ }
@@ -1,46 +1,46 @@
1
- export * from './ApiFormatter';
2
- export * from './ApiRequestService';
3
- export * from './ApiResponseProcessor';
4
- export * from './ChangesCompilation';
5
- export * from './ChangesProcessor';
6
- export * from './CollectionEntryService';
7
- export * from './CollectionMatcherCachedCollectionProcessor';
8
- export * from './CollectionResourceService';
9
- export * from './ColumnCache';
10
- export * from './ColumnExpansion';
11
- export * from './ColumnHandler';
12
- export * from './ColumnInfo';
13
- export * from './ColumnSet';
14
- export * from './ColumnSubsetCache';
15
- export * from './ColumnUtil';
16
- export * from './ConversionMapService';
17
- export * from './CreateRequest';
18
- export * from './ItemCache';
19
- export * from './ItemEntryService';
20
- export * from './KeyService';
21
- export * from './cache/transaction/TransactionEventHandler';
22
- export * from './LockService';
23
- export * from './ModuleChangesCompilation';
24
- export * from './QueryMatcher';
25
- export * from './QueryParser';
26
- export * from './QueryService';
27
- export * from './RequestColumnExpansion';
28
- export * from './SocketMessageHandler';
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/ServerCachedQueryHandler';
34
- export * from './cache/transaction/TransactionCache';
35
- export * from './cache/transaction/TransactionItemHandler';
36
- export * from './cache/transaction/TransactionCachedQueryHandler';
37
- export * from './cache/transaction/TransactionCollectionHandler';
38
- export * from './cache/transaction/TransactionEventHandler';
39
- export * from './cache/transaction/TransactionValidator';
40
- export * from './ChangesDeltaBase';
41
- export * from './ChangesDelta';
42
- export * from './InternalChangesDelta';
43
- export * from './RequestBufferManager';
44
- export * from './RequestBuffer';
45
- export * from './ItemCreateService';
46
- export * from './CreatedChangesDelta';
1
+ export * from './ApiFormatter';
2
+ export * from './ApiRequestService';
3
+ export * from './ApiResponseProcessor';
4
+ export * from './ChangesCompilation';
5
+ export * from './ChangesProcessor';
6
+ export * from './CollectionEntryService';
7
+ export * from './CollectionMatcherCachedCollectionProcessor';
8
+ export * from './CollectionResourceService';
9
+ export * from './ColumnCache';
10
+ export * from './ColumnExpansion';
11
+ export * from './ColumnHandler';
12
+ export * from './ColumnInfo';
13
+ export * from './ColumnSet';
14
+ export * from './ColumnSubsetCache';
15
+ export * from './ColumnUtil';
16
+ export * from './ConversionMapService';
17
+ export * from './CreateRequest';
18
+ export * from './ItemCache';
19
+ export * from './ItemEntryService';
20
+ export * from './KeyService';
21
+ export * from './cache/transaction/TransactionEventHandler';
22
+ export * from './LockService';
23
+ export * from './ModuleChangesCompilation';
24
+ export * from './QueryMatcher';
25
+ export * from './QueryParser';
26
+ export * from './QueryService';
27
+ export * from './RequestColumnExpansion';
28
+ export * from './SocketMessageHandler';
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/ServerCachedQueryHandler';
34
+ export * from './cache/transaction/TransactionCache';
35
+ export * from './cache/transaction/TransactionItemHandler';
36
+ export * from './cache/transaction/TransactionCachedQueryHandler';
37
+ export * from './cache/transaction/TransactionCollectionHandler';
38
+ export * from './cache/transaction/TransactionEventHandler';
39
+ export * from './cache/transaction/TransactionValidator';
40
+ export * from './ChangesDeltaBase';
41
+ export * from './ChangesDelta';
42
+ export * from './InternalChangesDelta';
43
+ export * from './RequestBufferManager';
44
+ export * from './RequestBuffer';
45
+ export * from './ItemCreateService';
46
+ export * from './CreatedChangesDelta';
@@ -1,7 +1,7 @@
1
- export declare const ALL_PERMISSIONS = 7;
2
- export declare const COLUMN_SEPERATOR = ">";
3
- export declare const RENDER_AS_SEPERATOR = ":";
4
- export declare const NEW_PREFIX: string;
5
- export declare const DUPLICATE_PREFIX: string;
6
- export declare const NEW_KEYWORD: string;
7
- export declare const DUPLICATE_KEYWORD: string;
1
+ export declare const ALL_PERMISSIONS = 7;
2
+ export declare const COLUMN_SEPERATOR = ">";
3
+ export declare const RENDER_AS_SEPERATOR = ":";
4
+ export declare const NEW_PREFIX: string;
5
+ export declare const DUPLICATE_PREFIX: string;
6
+ export declare const NEW_KEYWORD: string;
7
+ export declare const DUPLICATE_KEYWORD: string;