@rentman/rm-core 12.0.4 → 12.0.5-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 (145) hide show
  1. package/changelog.md +1491 -1476
  2. package/dist/rm-core.js +972 -941
  3. package/dist/rm-core.min.js +1 -1
  4. package/dist/types/src/FieldLookupProxy.d.ts +4 -4
  5. package/dist/types/src/classes/ApiFormatter.d.ts +76 -76
  6. package/dist/types/src/classes/ApiRequestService.d.ts +18 -18
  7. package/dist/types/src/classes/ApiResponseProcessor.d.ts +29 -29
  8. package/dist/types/src/classes/BusinessLogicManager/BusinessLogicManager.d.ts +98 -98
  9. package/dist/types/src/classes/BusinessLogicManager/BusinessLogicRule.d.ts +93 -93
  10. package/dist/types/src/classes/BusinessLogicManager/Customfield/CustomFieldTypeBusinessLogicRule.d.ts +17 -17
  11. package/dist/types/src/classes/BusinessLogicManager/Documents/DocumentTemplateBusinessLogicRule.d.ts +24 -24
  12. package/dist/types/src/classes/BusinessLogicManager/Exemplaar/ExemplaarAanschafdatumBusinessLogicRule.d.ts +13 -13
  13. package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurBetalingsconditieBusinessLogicRule.d.ts +19 -19
  14. package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurDatumBusinessLogicRule.d.ts +18 -18
  15. package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurNumberseriesBusinessLogicRule.d.ts +13 -13
  16. package/dist/types/src/classes/BusinessLogicManager/Functie/FunctieNaaminternBusinessLogicRule.d.ts +17 -17
  17. package/dist/types/src/classes/BusinessLogicManager/Functie/FunctieTwowayBusinessLogicRule.d.ts +13 -13
  18. package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalTelexemplarenBusinessLogicRule.d.ts +15 -15
  19. package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalTypeBusinessLogicRule.d.ts +17 -17
  20. package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalVerhuurBusinessLogicRule.d.ts +17 -17
  21. package/dist/types/src/classes/BusinessLogicManager/Materiaal/SurfaceArticleSizeBusinessLogicRule.d.ts +18 -18
  22. package/dist/types/src/classes/BusinessLogicManager/OfferteContract/OfferteContractDatumBusinessLogicRule.d.ts +25 -25
  23. package/dist/types/src/classes/BusinessLogicManager/PlanningPersoneelTransport/PlanningPersoneelTransportBusinessLogicRule.d.ts +28 -28
  24. package/dist/types/src/classes/BusinessLogicManager/Project/ProjectClientNoteBusinessLogicRule.d.ts +22 -22
  25. package/dist/types/src/classes/BusinessLogicManager/Reparatie/ReparatieExemplaarBusinessLogicRule.d.ts +13 -13
  26. package/dist/types/src/classes/BusinessLogicManager/Rol/RolDocumentAccessBusinessLogicRule.d.ts +17 -17
  27. package/dist/types/src/classes/BusinessLogicManager/Rol/RolEditOwnDataBusinessLogicRule.d.ts +17 -17
  28. package/dist/types/src/classes/BusinessLogicManager/Rol/RolFileAccessBusinessLogicRule.d.ts +17 -17
  29. package/dist/types/src/classes/BusinessLogicManager/Rol/RolPersoneelsplannerToegangBusinessLogicRule.d.ts +17 -17
  30. package/dist/types/src/classes/BusinessLogicManager/Rol/RolProjectenBewerkenBusinessLogicRule.d.ts +17 -17
  31. package/dist/types/src/classes/BusinessLogicManager/Rol/RolProjectenToegangBusinessLogicRule.d.ts +17 -17
  32. package/dist/types/src/classes/CacheSyncer.d.ts +71 -71
  33. package/dist/types/src/classes/ChangesCompilation.d.ts +33 -33
  34. package/dist/types/src/classes/ChangesDelta.d.ts +65 -65
  35. package/dist/types/src/classes/ChangesDeltaBase.d.ts +88 -86
  36. package/dist/types/src/classes/ChangesProcessor.d.ts +40 -40
  37. package/dist/types/src/classes/CollectionEntryService.d.ts +24 -24
  38. package/dist/types/src/classes/CollectionResourceService.d.ts +6 -6
  39. package/dist/types/src/classes/ColumnCache.d.ts +19 -19
  40. package/dist/types/src/classes/ColumnExpansion.d.ts +19 -19
  41. package/dist/types/src/classes/ColumnHandler.d.ts +20 -20
  42. package/dist/types/src/classes/ColumnInfo.d.ts +15 -15
  43. package/dist/types/src/classes/ColumnSet.d.ts +37 -37
  44. package/dist/types/src/classes/ColumnUtil.d.ts +108 -108
  45. package/dist/types/src/classes/ConversionMapService.d.ts +25 -25
  46. package/dist/types/src/classes/CreateRequest.d.ts +17 -17
  47. package/dist/types/src/classes/CreatedChangesDelta.d.ts +17 -17
  48. package/dist/types/src/classes/InternalChangesDelta.d.ts +44 -44
  49. package/dist/types/src/classes/ItemCache.d.ts +27 -27
  50. package/dist/types/src/classes/ItemCreateService.d.ts +18 -18
  51. package/dist/types/src/classes/ItemEntryService.d.ts +32 -32
  52. package/dist/types/src/classes/KeyService.d.ts +18 -18
  53. package/dist/types/src/classes/LockService.d.ts +28 -28
  54. package/dist/types/src/classes/ModuleChangesCompilation.d.ts +17 -17
  55. package/dist/types/src/classes/ParentChangesDelta.d.ts +41 -41
  56. package/dist/types/src/classes/QueryColumnExtractor.d.ts +18 -18
  57. package/dist/types/src/classes/QueryContainsLocalIdParser.d.ts +17 -17
  58. package/dist/types/src/classes/QueryLinkedToParser.d.ts +17 -17
  59. package/dist/types/src/classes/QueryLocallyMatchableParser.d.ts +20 -20
  60. package/dist/types/src/classes/QueryMatcher.d.ts +25 -25
  61. package/dist/types/src/classes/QueryParser.d.ts +25 -25
  62. package/dist/types/src/classes/QueryParserBase.d.ts +20 -20
  63. package/dist/types/src/classes/QueryParserIdUpdater.d.ts +17 -17
  64. package/dist/types/src/classes/QueryService.d.ts +12 -12
  65. package/dist/types/src/classes/RequestBuffer.d.ts +26 -26
  66. package/dist/types/src/classes/RequestBufferManager.d.ts +21 -21
  67. package/dist/types/src/classes/RequestColumnExpansion.d.ts +13 -13
  68. package/dist/types/src/classes/RequestColumnsOperationsCache.d.ts +46 -46
  69. package/dist/types/src/classes/SocketMessageHandler.d.ts +34 -34
  70. package/dist/types/src/classes/TemplateCache.d.ts +64 -64
  71. package/dist/types/src/classes/Util.d.ts +28 -28
  72. package/dist/types/src/classes/cache/AbstractCache.d.ts +85 -92
  73. package/dist/types/src/classes/cache/CachedQueryHandlerBase.d.ts +70 -70
  74. package/dist/types/src/classes/cache/ItemHandlerBase.d.ts +107 -107
  75. package/dist/types/src/classes/cache/server/ServerCache.d.ts +65 -77
  76. package/dist/types/src/classes/cache/server/ServerCachedQueryHandler.d.ts +27 -27
  77. package/dist/types/src/classes/cache/server/ServerItemHandler.d.ts +39 -39
  78. package/dist/types/src/classes/cache/transaction/TransactionCache.d.ts +298 -310
  79. package/dist/types/src/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +50 -50
  80. package/dist/types/src/classes/cache/transaction/TransactionCollectionHandler.d.ts +24 -24
  81. package/dist/types/src/classes/cache/transaction/TransactionEventHandler.d.ts +21 -21
  82. package/dist/types/src/classes/cache/transaction/TransactionItemHandler.d.ts +80 -80
  83. package/dist/types/src/classes/cache/transaction/TransactionValidator.d.ts +33 -33
  84. package/dist/types/src/constants.d.ts +7 -7
  85. package/dist/types/src/core.d.ts +48 -48
  86. package/dist/types/src/factories/ApiResponseProcessorFactory.d.ts +6 -6
  87. package/dist/types/src/factories/CacheSyncerFactory.d.ts +14 -14
  88. package/dist/types/src/factories/ChangesCompilationFactory.d.ts +5 -5
  89. package/dist/types/src/factories/ChangesDeltaFactory.d.ts +13 -13
  90. package/dist/types/src/factories/ChangesProcessorFactory.d.ts +13 -13
  91. package/dist/types/src/factories/CollectionEntryFactory.d.ts +11 -11
  92. package/dist/types/src/factories/CollectionResourceFactory.d.ts +18 -18
  93. package/dist/types/src/factories/ColumnExpansionFactory.d.ts +7 -7
  94. package/dist/types/src/factories/ColumnInfoFactory.d.ts +7 -7
  95. package/dist/types/src/factories/ColumnSetFactory.d.ts +18 -18
  96. package/dist/types/src/factories/CreateRequestFactory.d.ts +9 -9
  97. package/dist/types/src/factories/ItemCacheFactory.d.ts +6 -6
  98. package/dist/types/src/factories/ItemEntryFactory.d.ts +12 -12
  99. package/dist/types/src/factories/ItemResourceFactory.d.ts +11 -11
  100. package/dist/types/src/factories/ModuleChangesCompilationFactory.d.ts +6 -6
  101. package/dist/types/src/factories/QueryMatcherFactory.d.ts +8 -8
  102. package/dist/types/src/factories/QueryParserFactory.d.ts +5 -5
  103. package/dist/types/src/factories/RequestColumnExpansionFactory.d.ts +6 -6
  104. package/dist/types/src/factories/RequestColumnsOperationsCacheFactory.d.ts +8 -8
  105. package/dist/types/src/factories/TemplateFactory.d.ts +8 -8
  106. package/dist/types/src/factories/TransactionCacheFactory.d.ts +13 -13
  107. package/dist/types/src/index.d.ts +1 -1
  108. package/dist/types/src/interfaces/AbstractCacheDependencyInterface.d.ts +38 -38
  109. package/dist/types/src/interfaces/ApiRequestServiceInterface.d.ts +12 -12
  110. package/dist/types/src/interfaces/AuthInterface.d.ts +10 -10
  111. package/dist/types/src/interfaces/ErrorHandlerInterface.d.ts +6 -6
  112. package/dist/types/src/interfaces/ExceptionHandlerInterface.d.ts +3 -3
  113. package/dist/types/src/interfaces/LinkTreeServiceInterface.d.ts +4 -4
  114. package/dist/types/src/interfaces/PromiseLibraryInterface.d.ts +33 -33
  115. package/dist/types/src/interfaces/ServerCacheDependencyInterface.d.ts +5 -5
  116. package/dist/types/src/interfaces/SocketMessageInterface.d.ts +3 -3
  117. package/dist/types/src/interfaces/TransactionCollectionHandlerDependencyInterface.d.ts +17 -17
  118. package/dist/types/src/interfaces/TransactionItemHandlerDependencyInterface.d.ts +22 -22
  119. package/dist/types/src/internal.d.ts +128 -128
  120. package/dist/types/src/models/CachedQueryItem.d.ts +40 -40
  121. package/dist/types/src/models/CollectionEntry.d.ts +22 -22
  122. package/dist/types/src/models/CollectionOptions.d.ts +44 -44
  123. package/dist/types/src/models/CollectionResource.d.ts +87 -87
  124. package/dist/types/src/models/ItemEntry.d.ts +19 -19
  125. package/dist/types/src/models/ItemEntryOptions.d.ts +8 -8
  126. package/dist/types/src/models/ItemResource.d.ts +95 -90
  127. package/dist/types/src/models/Template.d.ts +11 -11
  128. package/dist/types/src/types/ItemTypesCollection.d.ts +361 -358
  129. package/dist/types/src/types/PromiseInterface.d.ts +2 -2
  130. package/dist/types/tests/integration/core.test.d.ts +1 -1
  131. package/dist/types/tests/integration/helpers/helpers.d.ts +32 -32
  132. package/dist/types/tests/integration/transactions/field_lookup.test.d.ts +1 -1
  133. package/dist/types/tests/integration/transactions/get_by.test.d.ts +1 -1
  134. package/dist/types/tests/integration/transactions/updates.test.d.ts +1 -1
  135. package/dist/types/tests/mocks/ApiMocked.d.ts +19 -19
  136. package/dist/types/tests/mocks/PromiseLibrary.mocked.d.ts +2 -2
  137. package/dist/types/tests/regression/RM4_17754.test.d.ts +1 -1
  138. package/dist/types/tests/regression/RM4_18216.test.d.ts +1 -1
  139. package/dist/types/tests/unit/query_contains_local_id_parser.test.d.ts +1 -1
  140. package/dist/types/tests/unit/query_linked_to_parser.test.d.ts +1 -1
  141. package/dist/types/tests/unit/query_matcher.test.d.ts +1 -1
  142. package/dist/types/tests/unit/query_parser_id_updater.test.d.ts +1 -1
  143. package/dist/types/tests/unit/query_service.test.d.ts +1 -1
  144. package/package.json +57 -57
  145. package/readme.md +16 -16
@@ -1,33 +1,33 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { InternalCreateDelta, ItemEntry, ItemEntryMap, ItemMap, TransactionCache } from '../internal';
3
- export declare type CreateRequestCompilationParent = ApiEnumItemType | 'Void';
4
- export declare type CreateCompilation = {
5
- [parentType: string]: {
6
- [parentId: number]: ItemMap<InternalCreateDelta>;
7
- };
8
- };
9
- export declare type DeleteCompilation = {
10
- [itemType: string]: ItemEntry[];
11
- };
12
- export declare type UpdateCompilation = ItemEntryMap;
13
- export declare type MoveCompilation = {
14
- [parentType: string]: {
15
- [parentId: number]: ItemEntry[];
16
- };
17
- };
18
- export declare class ChangesCompilation {
19
- private transaction;
20
- compilation: {
21
- create: CreateCompilation;
22
- delete: DeleteCompilation;
23
- update: UpdateCompilation;
24
- move: MoveCompilation;
25
- };
26
- constructor(transaction: TransactionCache);
27
- private processDelta;
28
- private getDefaultParent;
29
- private addMoveEntry;
30
- private addDeleteEntry;
31
- private addUpdateEntry;
32
- private addCreateEntry;
33
- }
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { InternalCreateDelta, ItemEntry, ItemEntryMap, ItemMap, TransactionCache } from '../internal';
3
+ export declare type CreateRequestCompilationParent = ApiEnumItemType | 'Void';
4
+ export declare type CreateCompilation = {
5
+ [parentType: string]: {
6
+ [parentId: number]: ItemMap<InternalCreateDelta>;
7
+ };
8
+ };
9
+ export declare type DeleteCompilation = {
10
+ [itemType: string]: ItemEntry[];
11
+ };
12
+ export declare type UpdateCompilation = ItemEntryMap;
13
+ export declare type MoveCompilation = {
14
+ [parentType: string]: {
15
+ [parentId: number]: ItemEntry[];
16
+ };
17
+ };
18
+ export declare class ChangesCompilation {
19
+ private transaction;
20
+ compilation: {
21
+ create: CreateCompilation;
22
+ delete: DeleteCompilation;
23
+ update: UpdateCompilation;
24
+ move: MoveCompilation;
25
+ };
26
+ constructor(transaction: TransactionCache);
27
+ private processDelta;
28
+ private getDefaultParent;
29
+ private addMoveEntry;
30
+ private addDeleteEntry;
31
+ private addUpdateEntry;
32
+ private addCreateEntry;
33
+ }
@@ -1,65 +1,65 @@
1
- import { ApiEnumItemType, ApiFields, ItemId } from '@rentman/backend-types';
2
- import { ApiFormatter, ChangesDeltaBase, ChangesDeltaItemUpdateMode, ColumnExpansionResult, ColumnSet, CreatedChangesDelta, EntryParent, EntryParentNull, ErrorHandlerInterface, FieldMap, ItemCreateService, ItemEntry, ItemEntryService, PromiseInterface } from '../internal';
3
- export declare type ChangesDeltaItemDeleteDelta = ItemEntry;
4
- /**
5
- * @description
6
- * ChangesDelta used to apply changes from outside of the core to a transaction
7
- *
8
- * ----------
9
- *
10
- * The difference between {@link InternalChangesDelta InternalChangesDelta} and {@link ChangesDelta ChangesDelta} is that the ChangesDelta
11
- * assumes 'created' values have no itemEntries yet.
12
- *
13
- * Use this when calling {@link TransactionCache.applyChangesDelta applyChangesDelta}
14
- */
15
- export declare class ChangesDelta extends ChangesDeltaBase {
16
- private errorHandler;
17
- private itemCreateService;
18
- created: CreatedChangesDelta;
19
- deleted: {
20
- [itemType: string]: {
21
- [entryId: string]: ChangesDeltaItemDeleteDelta;
22
- };
23
- };
24
- constructor(errorHandler: ErrorHandlerInterface, itemCreateService: ItemCreateService, itemEntryService: ItemEntryService, apiFormatter: ApiFormatter);
25
- merge(otherChangesDelta: ChangesDelta): ChangesDelta;
26
- /**
27
- * @description
28
- * Fetches a template for the passed itemType and processes the passed values and sets the item to be created when the delta is applied
29
- *
30
- * @remark
31
- * - If the values don't contain an `id` a new one will be generated
32
- * - If you want to set a parent set the proper field, you can't pass it as a separate object
33
- */
34
- setItemCreated<ItemTypeType extends ApiEnumItemType, Fields extends Partial<FieldMap<ItemTypeType>>>(itemType: ItemTypeType, values: Fields): PromiseInterface<this>;
35
- setItemUpdated<ItemTypeType extends ApiEnumItemType>(entry: ItemEntry<ItemTypeType>, fields: Partial<FieldMap<ItemTypeType>>, columnExpansionResult?: ColumnExpansionResult<ItemTypeType> | null, parent?: EntryParentNull, mode?: ChangesDeltaItemUpdateMode, didChangeAnyFieldOnParentTransaction?: boolean, previous?: FieldMap<ItemTypeType> | null): this;
36
- setItemDeleted(deleted: ChangesDeltaItemDeleteDelta): this;
37
- setItemsDeleted(deleted: ChangesDeltaItemDeleteDelta[]): this;
38
- /**
39
- * @description
40
- * Fetches a template for the passed itemType and processes the passed values and sets the items to be created when the delta is applied
41
- *
42
- * @remark
43
- * - If the values don't contain an `id` a new one will be generated
44
- * - If you want to set a parent set the proper field, you can't pass it as a separate object
45
- */
46
- setItemsCreated<ItemTypeType extends ApiEnumItemType, ColumnIds extends (keyof ApiFields[ItemTypeType])[] = (keyof ApiFields[ItemTypeType])[]>(itemType: ItemTypeType, valuesArray: Partial<FieldMap<ItemTypeType, ColumnIds>>[]): PromiseInterface<this>;
47
- /**
48
- * @description
49
- * Will create an {@link ItemEntry ItemEntry} when the delta is applied
50
- * Does not always mean the item is local, just that it isn't cached yet
51
- *
52
- * @remark
53
- * If you're calling this from the frontend you probably want to call `setItemCreated`, which will fetch a template and process the values for you
54
- * If you don't, you have to make sure the values are all correct and all template items are processed
55
- *
56
- * @internal
57
- */
58
- _setItemCreated<ItemTypeType extends ApiEnumItemType, Fields extends FieldMap<ItemTypeType>>(itemId: ItemId, fields: Fields, columns: ColumnSet<ItemTypeType>, parent?: EntryParentNull, isRoot?: boolean, isApiResponse?: boolean): this;
59
- /**
60
- * @description
61
- * Convenience function to assign the proper parent fields, will call {@link ChangesDeltaBase.setItemUpdated setItemUpdated} internally
62
- */
63
- setItemMoved(entry: ItemEntry, to: EntryParent, mode?: ChangesDeltaItemUpdateMode): this;
64
- isEmpty(): boolean;
65
- }
1
+ import { ApiEnumItemType, ApiFields, ItemId } from '@rentman/backend-types';
2
+ import { ApiFormatter, ChangesDeltaBase, ChangesDeltaItemUpdateMode, ColumnExpansionResult, ColumnSet, CreatedChangesDelta, EntryParent, EntryParentNull, ErrorHandlerInterface, FieldMap, ItemCreateService, ItemEntry, ItemEntryService, PromiseInterface } from '../internal';
3
+ export declare type ChangesDeltaItemDeleteDelta = ItemEntry;
4
+ /**
5
+ * @description
6
+ * ChangesDelta used to apply changes from outside of the core to a transaction
7
+ *
8
+ * ----------
9
+ *
10
+ * The difference between {@link InternalChangesDelta InternalChangesDelta} and {@link ChangesDelta ChangesDelta} is that the ChangesDelta
11
+ * assumes 'created' values have no itemEntries yet.
12
+ *
13
+ * Use this when calling {@link TransactionCache.applyChangesDelta applyChangesDelta}
14
+ */
15
+ export declare class ChangesDelta extends ChangesDeltaBase {
16
+ private errorHandler;
17
+ private itemCreateService;
18
+ created: CreatedChangesDelta;
19
+ deleted: {
20
+ [itemType: string]: {
21
+ [entryId: string]: ChangesDeltaItemDeleteDelta;
22
+ };
23
+ };
24
+ constructor(errorHandler: ErrorHandlerInterface, itemCreateService: ItemCreateService, itemEntryService: ItemEntryService, apiFormatter: ApiFormatter);
25
+ merge(otherChangesDelta: ChangesDelta): ChangesDelta;
26
+ /**
27
+ * @description
28
+ * Fetches a template for the passed itemType and processes the passed values and sets the item to be created when the delta is applied
29
+ *
30
+ * @remark
31
+ * - If the values don't contain an `id` a new one will be generated
32
+ * - If you want to set a parent set the proper field, you can't pass it as a separate object
33
+ */
34
+ setItemCreated<ItemTypeType extends ApiEnumItemType, Fields extends Partial<FieldMap<ItemTypeType>>>(itemType: ItemTypeType, values: Fields): PromiseInterface<this>;
35
+ setItemUpdated<ItemTypeType extends ApiEnumItemType>(entry: ItemEntry<ItemTypeType>, fields: Partial<FieldMap<ItemTypeType>>, columnExpansionResult?: ColumnExpansionResult<ItemTypeType> | null, parent?: EntryParentNull, mode?: ChangesDeltaItemUpdateMode, didChangeAnyFieldOnParentTransaction?: boolean, previous?: FieldMap<ItemTypeType> | null): this;
36
+ setItemDeleted(deleted: ChangesDeltaItemDeleteDelta): this;
37
+ setItemsDeleted(deleted: ChangesDeltaItemDeleteDelta[]): this;
38
+ /**
39
+ * @description
40
+ * Fetches a template for the passed itemType and processes the passed values and sets the items to be created when the delta is applied
41
+ *
42
+ * @remark
43
+ * - If the values don't contain an `id` a new one will be generated
44
+ * - If you want to set a parent set the proper field, you can't pass it as a separate object
45
+ */
46
+ setItemsCreated<ItemTypeType extends ApiEnumItemType, ColumnIds extends (keyof ApiFields[ItemTypeType])[] = (keyof ApiFields[ItemTypeType])[]>(itemType: ItemTypeType, valuesArray: Partial<FieldMap<ItemTypeType, ColumnIds>>[]): PromiseInterface<this>;
47
+ /**
48
+ * @description
49
+ * Will create an {@link ItemEntry ItemEntry} when the delta is applied
50
+ * Does not always mean the item is local, just that it isn't cached yet
51
+ *
52
+ * @remark
53
+ * If you're calling this from the frontend you probably want to call `setItemCreated`, which will fetch a template and process the values for you
54
+ * If you don't, you have to make sure the values are all correct and all template items are processed
55
+ *
56
+ * @internal
57
+ */
58
+ _setItemCreated<ItemTypeType extends ApiEnumItemType, Fields extends FieldMap<ItemTypeType>>(itemId: ItemId, fields: Fields, columns: ColumnSet<ItemTypeType>, parent?: EntryParentNull, isRoot?: boolean, isApiResponse?: boolean): this;
59
+ /**
60
+ * @description
61
+ * Convenience function to assign the proper parent fields, will call {@link ChangesDeltaBase.setItemUpdated setItemUpdated} internally
62
+ */
63
+ setItemMoved(entry: ItemEntry, to: EntryParent, mode?: ChangesDeltaItemUpdateMode): this;
64
+ isEmpty(): boolean;
65
+ }
@@ -1,86 +1,88 @@
1
- import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { ApiFormatter, ColumnExpansionResult, EntryParentNull, FieldMap, ItemEntry, ItemEntryChangesTuple, ItemEntryService, ItemIdConversionMap, ItemTypeColumnId } from '../internal';
3
- export declare type ChangesDeltaResult = {
4
- itemIdConversionMap: ItemIdConversionMap;
5
- created: ItemEntry[];
6
- };
7
- export declare enum ChangesDeltaItemUpdateMode {
8
- USER_CHANGE = "user",
9
- QUERY_RESULT = "query",
10
- SERVER_UPDATE = "update"
11
- }
12
- /**
13
- * @remark
14
- * We explicitly keep track of the new parent, so we can set an item to moved if it isn't null (Needed for linkTo request)
15
- */
16
- export declare type ChangesDeltaItemUpdateDelta<ItemTypeType extends ApiEnumItemType = any> = {
17
- entry: ItemEntry<ItemTypeType>;
18
- changes: {
19
- expandedColumns: ColumnExpansionResult<ItemTypeType> | null;
20
- fields: FieldMap<ItemTypeType>;
21
- parent: EntryParentNull;
22
- };
23
- previous: FieldMap<ItemTypeType> | null;
24
- mode: ChangesDeltaItemUpdateMode;
25
- didChangeAnyField: boolean;
26
- };
27
- export declare abstract class ChangesDeltaBase {
28
- protected itemEntryService: ItemEntryService;
29
- protected apiFormatter: ApiFormatter;
30
- updated: {
31
- [itemEntryId: number]: ChangesDeltaItemUpdateDelta;
32
- };
33
- itemIdConversionMap: ItemIdConversionMap;
34
- /**
35
- * Only contains remote items, when rolling back local items the whole entries are deleted.
36
- */
37
- restored: {
38
- [itemEntryId: number]: ItemEntryChangesTuple<any>;
39
- };
40
- /**
41
- * @private
42
- * @warning
43
- * Do not set in frontend
44
- */
45
- __isUndo: boolean;
46
- /**
47
- * @private
48
- * @warning
49
- * Do not set in frontend
50
- */
51
- __isRedo: boolean;
52
- /**
53
- * @private
54
- */
55
- _queryResults: {
56
- [itemType: string]: {
57
- [queryString: string]: {
58
- [itemId: string]: true;
59
- };
60
- };
61
- };
62
- /**
63
- * @private
64
- * When set, only collections of this item type will be matched.
65
- */
66
- _queryItemType?: ApiEnumItemType;
67
- protected constructor(itemEntryService: ItemEntryService, apiFormatter: ApiFormatter);
68
- getUpdatedValue<ItemTypeType extends ApiEnumItemType, ColumnId extends ItemTypeColumnId<ItemTypeType> = any>(itemEntry: ItemEntry<ItemTypeType>, columnId: ColumnId): FieldMap<ItemTypeType>[ColumnId] | undefined;
69
- /**
70
- * @private
71
- */
72
- _setQueryItemType(itemType?: ApiEnumItemType): this;
73
- /**
74
- * @description
75
- * Adds a hint for the {@link CollectionMatcherBase CacheSyncer] to the ChangesDelta, when the CollectionMatcher encounters a collection
76
- * with the exact query, it will use the hint instead of running the matcher
77
- *
78
- * @private
79
- */
80
- _setQueryResult(itemType: ApiEnumItemType, queryString: string, itemIds: ItemId[] | {
81
- [itemId: string]: true;
82
- }): this;
83
- setItemUpdated<ItemTypeType extends ApiEnumItemType>(entry: ItemEntry<ItemTypeType>, fields: Partial<FieldMap<ItemTypeType>>, columnExpansionResult?: ColumnExpansionResult<ItemTypeType> | null, parent?: EntryParentNull, mode?: ChangesDeltaItemUpdateMode, didChangeAnyFieldOnParentTransaction?: boolean, previous?: FieldMap<ItemTypeType> | null): this;
84
- setItemRestored<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, transactionItemEntryChanges: FieldMap<ItemTypeType>): void;
85
- isEmpty(): boolean;
86
- }
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
+ import { ApiFormatter, ColumnExpansionResult, EntryParentNull, FieldMap, ItemEntry, ItemEntryChangesTuple, ItemEntryService, ItemIdConversionMap, ItemTypeColumnId } from '../internal';
3
+ export declare type ChangesDeltaResult = {
4
+ itemIdConversionMap: ItemIdConversionMap;
5
+ created: ItemEntry[];
6
+ };
7
+ export declare enum ChangesDeltaItemUpdateMode {
8
+ CLEAR_ALWAYS = "overwrite",
9
+ CLEAR_WHEN_SAME = "same",
10
+ KEEP_WHEN_DIFFERENT = "different",
11
+ APPEND = "append",
12
+ QUERY = "query"
13
+ }
14
+ /**
15
+ * @remark
16
+ * We explicitly keep track of the new parent, so we can set an item to moved if it isn't null (Needed for linkTo request)
17
+ */
18
+ export declare type ChangesDeltaItemUpdateDelta<ItemTypeType extends ApiEnumItemType = any> = {
19
+ entry: ItemEntry<ItemTypeType>;
20
+ changes: {
21
+ expandedColumns: ColumnExpansionResult<ItemTypeType> | null;
22
+ fields: FieldMap<ItemTypeType>;
23
+ parent: EntryParentNull;
24
+ };
25
+ previous: FieldMap<ItemTypeType> | null;
26
+ mode: ChangesDeltaItemUpdateMode;
27
+ didChangeAnyField: boolean;
28
+ };
29
+ export declare abstract class ChangesDeltaBase {
30
+ protected itemEntryService: ItemEntryService;
31
+ protected apiFormatter: ApiFormatter;
32
+ updated: {
33
+ [itemEntryId: number]: ChangesDeltaItemUpdateDelta;
34
+ };
35
+ itemIdConversionMap: ItemIdConversionMap;
36
+ /**
37
+ * Only contains remote items, when rolling back local items the whole entries are deleted.
38
+ */
39
+ restored: {
40
+ [itemEntryId: number]: ItemEntryChangesTuple<any>;
41
+ };
42
+ /**
43
+ * @private
44
+ * @warning
45
+ * Do not set in frontend
46
+ */
47
+ __isUndo: boolean;
48
+ /**
49
+ * @private
50
+ * @warning
51
+ * Do not set in frontend
52
+ */
53
+ __isRedo: boolean;
54
+ /**
55
+ * @private
56
+ */
57
+ _queryResults: {
58
+ [itemType: string]: {
59
+ [queryString: string]: {
60
+ [itemId: string]: true;
61
+ };
62
+ };
63
+ };
64
+ /**
65
+ * @private
66
+ * When set, only collections of this item type will be matched.
67
+ */
68
+ _queryItemType?: ApiEnumItemType;
69
+ protected constructor(itemEntryService: ItemEntryService, apiFormatter: ApiFormatter);
70
+ getUpdatedValue<ItemTypeType extends ApiEnumItemType, ColumnId extends ItemTypeColumnId<ItemTypeType> = any>(itemEntry: ItemEntry<ItemTypeType>, columnId: ColumnId): FieldMap<ItemTypeType>[ColumnId] | undefined;
71
+ /**
72
+ * @private
73
+ */
74
+ _setQueryItemType(itemType?: ApiEnumItemType): this;
75
+ /**
76
+ * @description
77
+ * Adds a hint for the {@link CollectionMatcherBase CacheSyncer] to the ChangesDelta, when the CollectionMatcher encounters a collection
78
+ * with the exact query, it will use the hint instead of running the matcher
79
+ *
80
+ * @private
81
+ */
82
+ _setQueryResult(itemType: ApiEnumItemType, queryString: string, itemIds: ItemId[] | {
83
+ [itemId: string]: true;
84
+ }): this;
85
+ setItemUpdated<ItemTypeType extends ApiEnumItemType>(entry: ItemEntry<ItemTypeType>, fields: Partial<FieldMap<ItemTypeType>>, columnExpansionResult?: ColumnExpansionResult<ItemTypeType> | null, parent?: EntryParentNull, mode?: ChangesDeltaItemUpdateMode, didChangeAnyFieldOnParentTransaction?: boolean, previous?: FieldMap<ItemTypeType> | null): this;
86
+ setItemRestored<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, transactionItemEntryChanges: FieldMap<ItemTypeType>): void;
87
+ isEmpty(): boolean;
88
+ }
@@ -1,40 +1,40 @@
1
- import { ApiRequestService, ChangesCompilationFactory, ChangesDeltaFactory, CreateRequestFactory, ErrorHandlerInterface, ItemEntryService, ItemIdConversionMap, PromiseInterface, PromiseLibraryInterface, RequestColumnExpansionFactory, TransactionCache } from '../internal';
2
- export declare type OnAfterCreateCallback = (conversionMap: ItemIdConversionMap) => void;
3
- /**
4
- * @description
5
- * Executes the changes from a specific {@link TransactionCache transaction} and returns a {@link ChangesDelta ChangesDelta}
6
- */
7
- export declare class ChangesProcessor {
8
- private changesDeltaFactory;
9
- private apiRequestService;
10
- private changesCompilationFactory;
11
- private createRequestFactory;
12
- private errorHandler;
13
- private promiseService;
14
- private requestColumnExpansionFactory;
15
- private itemEntryService;
16
- private transaction;
17
- private breakUpByParent?;
18
- private onAfterCreateCallback?;
19
- private itemIdConversionMap;
20
- private serverCache;
21
- constructor(changesDeltaFactory: ChangesDeltaFactory, apiRequestService: ApiRequestService, changesCompilationFactory: ChangesCompilationFactory, createRequestFactory: CreateRequestFactory, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory, itemEntryService: ItemEntryService, transaction: TransactionCache, breakUpByParent?: boolean | undefined, onAfterCreateCallback?: OnAfterCreateCallback | undefined);
22
- /**
23
- * @description
24
- * Executes the requests in the order of:
25
- * 1. create
26
- * 2. move
27
- * 3. delete
28
- * 4. update
29
- */
30
- execute(): PromiseInterface<ItemIdConversionMap>;
31
- private buildMoveRequest;
32
- private getMapValue;
33
- private executeCreateRequests;
34
- private executeCreateRequest;
35
- private executeUpdateRequests;
36
- private executeUpdateRequest;
37
- private executeDeleteRequests;
38
- private executeDeleteRequest;
39
- private executeMoveRequests;
40
- }
1
+ import { ApiRequestService, ChangesCompilationFactory, ChangesDeltaFactory, CreateRequestFactory, ErrorHandlerInterface, ItemEntryService, ItemIdConversionMap, PromiseInterface, PromiseLibraryInterface, RequestColumnExpansionFactory, TransactionCache } from '../internal';
2
+ export declare type OnAfterCreateCallback = (conversionMap: ItemIdConversionMap) => void;
3
+ /**
4
+ * @description
5
+ * Executes the changes from a specific {@link TransactionCache transaction} and returns a {@link ChangesDelta ChangesDelta}
6
+ */
7
+ export declare class ChangesProcessor {
8
+ private changesDeltaFactory;
9
+ private apiRequestService;
10
+ private changesCompilationFactory;
11
+ private createRequestFactory;
12
+ private errorHandler;
13
+ private promiseService;
14
+ private requestColumnExpansionFactory;
15
+ private itemEntryService;
16
+ private transaction;
17
+ private breakUpByParent?;
18
+ private onAfterCreateCallback?;
19
+ private itemIdConversionMap;
20
+ private serverCache;
21
+ constructor(changesDeltaFactory: ChangesDeltaFactory, apiRequestService: ApiRequestService, changesCompilationFactory: ChangesCompilationFactory, createRequestFactory: CreateRequestFactory, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory, itemEntryService: ItemEntryService, transaction: TransactionCache, breakUpByParent?: boolean | undefined, onAfterCreateCallback?: OnAfterCreateCallback | undefined);
22
+ /**
23
+ * @description
24
+ * Executes the requests in the order of:
25
+ * 1. create
26
+ * 2. move
27
+ * 3. delete
28
+ * 4. update
29
+ */
30
+ execute(): PromiseInterface<ItemIdConversionMap>;
31
+ private buildMoveRequest;
32
+ private getMapValue;
33
+ private executeCreateRequests;
34
+ private executeCreateRequest;
35
+ private executeUpdateRequests;
36
+ private executeUpdateRequest;
37
+ private executeDeleteRequests;
38
+ private executeDeleteRequest;
39
+ private executeMoveRequests;
40
+ }
@@ -1,24 +1,24 @@
1
- import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { ApiQuery, CollectionOptions, CollectionOptionsInterface, CollectionQuery, EntryParentNull, ItemEntry, QueryParserFactory, QueryService } from '../internal';
3
- export declare class CollectionEntryService {
4
- private queryParserFactory;
5
- private queryService;
6
- constructor(queryParserFactory: QueryParserFactory, queryService: QueryService);
7
- createUnfoundLocalCollectionError(itemType: ApiEnumItemType): {
8
- message: string;
9
- };
10
- cloneOptions(options: CollectionOptions, parent: EntryParentNull): CollectionOptions<any, import("../internal").ItemTypeColumnIds<any>>;
11
- processOptions<ItemTypeType extends ApiEnumItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions;
12
- createQuery(query: ApiQuery): CollectionQuery;
13
- createQueryFromOptions(options: CollectionOptions): CollectionQuery;
14
- createBatchedLinkToQuery(parentType: ApiEnumItemType, parentIdArray: ItemId[], options: CollectionOptions): CollectionQuery;
15
- getIdArray(itemEntries: ItemEntry[], accumulator?: ItemId[]): ItemId[];
16
- /**
17
- * @description
18
- * Filters an array of {@link ItemEntry ItemEntries} according to the callback function.
19
- * Does an in-place replacement of the items in the array that do match the condition (keeping the array reference)
20
- *
21
- * @returns {@link ItemEntry ItemEntries} that failed the condition
22
- */
23
- filterArray<T extends ItemEntry = ItemEntry>(itemEntries: T[], callback: (itemEntry: T) => boolean): T[];
24
- }
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
+ import { ApiQuery, CollectionOptions, CollectionOptionsInterface, CollectionQuery, EntryParentNull, ItemEntry, QueryParserFactory, QueryService } from '../internal';
3
+ export declare class CollectionEntryService {
4
+ private queryParserFactory;
5
+ private queryService;
6
+ constructor(queryParserFactory: QueryParserFactory, queryService: QueryService);
7
+ createUnfoundLocalCollectionError(itemType: ApiEnumItemType): {
8
+ message: string;
9
+ };
10
+ cloneOptions(options: CollectionOptions, parent: EntryParentNull): CollectionOptions<any, import("../internal").ItemTypeColumnIds<any>>;
11
+ processOptions<ItemTypeType extends ApiEnumItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions;
12
+ createQuery(query: ApiQuery): CollectionQuery;
13
+ createQueryFromOptions(options: CollectionOptions): CollectionQuery;
14
+ createBatchedLinkToQuery(parentType: ApiEnumItemType, parentIdArray: ItemId[], options: CollectionOptions): CollectionQuery;
15
+ getIdArray(itemEntries: ItemEntry[], accumulator?: ItemId[]): ItemId[];
16
+ /**
17
+ * @description
18
+ * Filters an array of {@link ItemEntry ItemEntries} according to the callback function.
19
+ * Does an in-place replacement of the items in the array that do match the condition (keeping the array reference)
20
+ *
21
+ * @returns {@link ItemEntry ItemEntries} that failed the condition
22
+ */
23
+ filterArray<T extends ItemEntry = ItemEntry>(itemEntries: T[], callback: (itemEntry: T) => boolean): T[];
24
+ }
@@ -1,6 +1,6 @@
1
- import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { CollectionOptions, CollectionOptionsInterface, ItemResource } from '../internal';
3
- export declare class CollectionResourceService {
4
- processOptions<ItemTypeType extends ApiEnumItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions<ItemTypeType>;
5
- getIdArray(itemResources: ItemResource[]): ItemId[];
6
- }
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
+ import { CollectionOptions, CollectionOptionsInterface, ItemResource } from '../internal';
3
+ export declare class CollectionResourceService {
4
+ processOptions<ItemTypeType extends ApiEnumItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions<ItemTypeType>;
5
+ getIdArray(itemResources: ItemResource[]): ItemId[];
6
+ }
@@ -1,19 +1,19 @@
1
- import { ApiEnumItemType, ResponseColumn } from '@rentman/backend-types';
2
- import { ApiRequestColumns, ColumnUtil, ResponseColumnItemTypeMap } from '../internal';
3
- export declare class ColumnCache {
4
- private columnUtil;
5
- private cache;
6
- private allColumns;
7
- constructor(columnUtil: ColumnUtil);
8
- setColumn(itemType: ApiEnumItemType, responseColumn: ResponseColumn): ResponseColumn;
9
- setColumns(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, columnFilter: string | false): ResponseColumnItemTypeMap;
10
- retrieve(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns): {
11
- cached: ResponseColumnItemTypeMap;
12
- missing: ApiRequestColumns;
13
- };
14
- containsAll(itemType: ApiEnumItemType): boolean;
15
- getColumns(itemType: ApiEnumItemType): ResponseColumnItemTypeMap;
16
- getColumn(itemType: ApiEnumItemType, columnId: string): ResponseColumn | undefined;
17
- private retrieveColumns;
18
- private retrieveColumn;
19
- }
1
+ import { ApiEnumItemType, ResponseColumn } from '@rentman/backend-types';
2
+ import { ApiRequestColumns, ColumnUtil, ResponseColumnItemTypeMap } from '../internal';
3
+ export declare class ColumnCache {
4
+ private columnUtil;
5
+ private cache;
6
+ private allColumns;
7
+ constructor(columnUtil: ColumnUtil);
8
+ setColumn(itemType: ApiEnumItemType, responseColumn: ResponseColumn): ResponseColumn;
9
+ setColumns(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, columnFilter: string | false): ResponseColumnItemTypeMap;
10
+ retrieve(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns): {
11
+ cached: ResponseColumnItemTypeMap;
12
+ missing: ApiRequestColumns;
13
+ };
14
+ containsAll(itemType: ApiEnumItemType): boolean;
15
+ getColumns(itemType: ApiEnumItemType): ResponseColumnItemTypeMap;
16
+ getColumn(itemType: ApiEnumItemType, columnId: string): ResponseColumn | undefined;
17
+ private retrieveColumns;
18
+ private retrieveColumn;
19
+ }
@@ -1,19 +1,19 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ApiRequestColumns, ColumnExpansionResult, ColumnInfo, ColumnInfoFactory, ColumnSet, ResponseColumnItemTypeMap } from '../internal';
3
- /**
4
- * @description
5
- * 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
6
- */
7
- export declare class ColumnExpansion<ItemTypeType extends ApiEnumItemType> {
8
- private columnInfoFactory;
9
- itemType: ItemTypeType;
10
- responseColumns: ResponseColumnItemTypeMap;
11
- private expansionMap;
12
- private expansionMapSize;
13
- private requestColumnsTrue;
14
- private requestColumns;
15
- constructor(columnInfoFactory: ColumnInfoFactory, itemType: ItemTypeType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap);
16
- run(columnSet: ColumnSet<ItemTypeType>): ColumnExpansionResult<ItemTypeType> | null;
17
- aggregateRootColumns(): ColumnInfo<ItemTypeType>[];
18
- private expandRootColumnMap;
19
- }
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { ApiRequestColumns, ColumnExpansionResult, ColumnInfo, ColumnInfoFactory, ColumnSet, ResponseColumnItemTypeMap } from '../internal';
3
+ /**
4
+ * @description
5
+ * 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
6
+ */
7
+ export declare class ColumnExpansion<ItemTypeType extends ApiEnumItemType> {
8
+ private columnInfoFactory;
9
+ itemType: ItemTypeType;
10
+ responseColumns: ResponseColumnItemTypeMap;
11
+ private expansionMap;
12
+ private expansionMapSize;
13
+ private requestColumnsTrue;
14
+ private requestColumns;
15
+ constructor(columnInfoFactory: ColumnInfoFactory, itemType: ItemTypeType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap);
16
+ run(columnSet: ColumnSet<ItemTypeType>): ColumnExpansionResult<ItemTypeType> | null;
17
+ aggregateRootColumns(): ColumnInfo<ItemTypeType>[];
18
+ private expandRootColumnMap;
19
+ }