@rentman/rm-core 2.1.2 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,8 @@
1
1
  import { ItemEntry } from '../models';
2
- import { EntryParent, EntryParentNull, FieldMap, ItemId, ItemType } from '../types';
2
+ import { EntryParent, EntryParentNull, FieldMap, ItemId, ItemType, PromiseInterface } from '../types';
3
3
  import { ChangesDeltaBase } from './ChangesDeltaBase';
4
4
  import { ColumnSet } from './ColumnSet';
5
+ import { ItemCreateService } from './ItemCreateService';
5
6
  import { ItemEntryService } from './ItemEntryService';
6
7
  export declare type ChangesDeltaItemCreateDelta<ItemTypeType extends ItemType = any> = {
7
8
  itemId: ItemId;
@@ -20,20 +21,39 @@ export declare type ChangesDeltaItemCreateDelta<ItemTypeType extends ItemType =
20
21
  * Use this when calling {@link TransactionCache.applyChangesDelta applyChangesDelta}
21
22
  */
22
23
  export declare class ChangesDelta extends ChangesDeltaBase {
24
+ private itemCreateService;
23
25
  created: ChangesDeltaItemCreateDelta[];
24
- constructor(itemEntryService: ItemEntryService);
26
+ constructor(itemCreateService: ItemCreateService, itemEntryService: ItemEntryService);
27
+ /**
28
+ * @description
29
+ * Fetches a template for the passed itemType and processes the passed values and sets the item to be created when the delta is applied
30
+ *
31
+ * @remark
32
+ * - If the values don't contain an `id` a new one will be generated
33
+ * - If you want to set a parent set the proper field, you can't pass it as a separate object
34
+ */
35
+ setItemCreated<ItemTypeType extends ItemType>(itemType: ItemTypeType, values: FieldMap<ItemTypeType>): PromiseInterface<void>;
36
+ /**
37
+ * @description
38
+ * Fetches a template for the passed itemType and processes the passed values and sets the items to be created when the delta is applied
39
+ *
40
+ * @remark
41
+ * - If the values don't contain an `id` a new one will be generated
42
+ * - If you want to set a parent set the proper field, you can't pass it as a separate object
43
+ */
44
+ setItemsCreated<ItemTypeType extends ItemType>(itemType: ItemTypeType, valuesArray: Array<FieldMap<ItemTypeType>>): PromiseInterface<void>;
25
45
  /**
26
46
  * @description
27
47
  * Will create an {@link ItemEntry ItemEntry} when the delta is applied
28
48
  * Does not always mean the item is local, just that it isn't cached yet
29
49
  *
30
- * ------
31
- *
32
50
  * @remark
33
- * When the `parent` property is passed it will automatically set the proper fields to match the parent, this assumes the required parent columns are in the passed columns
34
- * You can easily get the required columns by also passing the `parent` to the {@link TemplateCache.fetchTemplate template fetchCollectionEntry} call
51
+ * 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
52
+ * If you don't, you have to make sure the values are all correct and all template items are processed
53
+ *
54
+ * @internal
35
55
  */
36
- setItemCreated<ItemTypeType extends ItemType>(itemId: ItemId, fields: FieldMap<ItemTypeType>, columns: ColumnSet<ItemTypeType>, parent?: EntryParentNull): void;
56
+ _setItemCreated<ItemTypeType extends ItemType>(itemId: ItemId, fields: FieldMap<ItemTypeType>, columns: ColumnSet<ItemTypeType>, parent?: EntryParentNull): void;
37
57
  /**
38
58
  * @description
39
59
  * Convenience function to assign the proper parent fields, will call {@link ChangesDeltaBase.setItemUpdated setItemUpdated} internally
@@ -0,0 +1,28 @@
1
+ import { ColumnSetFactory } from '../factories';
2
+ import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
3
+ import { Template } from '../models';
4
+ import { EntryParentNull, FieldMap, FilterItemEntryCallback, ItemId, ItemIdConversionMap, ItemType, ModifyFieldsCallback, PromiseInterface } from '../types';
5
+ import { ApiFormatter } from './ApiFormatter';
6
+ import { ChangesDelta } from './ChangesDelta';
7
+ import { ColumnInfo } from './ColumnInfo';
8
+ import { ItemEntryService } from './ItemEntryService';
9
+ import { KeyService } from './KeyService';
10
+ import { TemplateCache } from './TemplateCache';
11
+ export declare class ItemCreateService {
12
+ private keyService;
13
+ private templateCache;
14
+ private promiseService;
15
+ private errorHandler;
16
+ private itemEntryService;
17
+ private apiFormatter;
18
+ private columnSetFactory;
19
+ constructor(keyService: KeyService, templateCache: TemplateCache, promiseService: PromiseLibraryInterface, errorHandler: ErrorHandlerInterface, itemEntryService: ItemEntryService, apiFormatter: ApiFormatter, columnSetFactory: ColumnSetFactory);
20
+ /**
21
+ * @description
22
+ * Fetches a new {@link Template template} and sets the items created on the passed {@link ChangesDelta}
23
+ */
24
+ createItemsFromValues<ItemTypeType extends ItemType>(changesDelta: ChangesDelta, itemType: ItemTypeType, valuesArray: Array<FieldMap<ItemTypeType>>, parent?: EntryParentNull): PromiseInterface<void>;
25
+ processTemplate<ItemTypeType extends ItemType>(changesDelta: ChangesDelta, itemType: ItemTypeType, itemId: ItemId, parent: EntryParentNull, template: Template<ItemTypeType>, filterItemEntryCallback?: FilterItemEntryCallback, modifyFieldsCallback?: ModifyFieldsCallback): void;
26
+ processTemplateLinkItems<ParentItemType extends ItemType>(changesDelta: ChangesDelta, parentType: ParentItemType, localParentId: ItemId, template: Template<ParentItemType>, itemIdConversion: ItemIdConversionMap, filterItemEntryCallback?: FilterItemEntryCallback, modifyFieldsCallback?: ModifyFieldsCallback): void;
27
+ updateItemValues<ItemTypeType extends ItemType>(changes: FieldMap<ItemTypeType>, parent: EntryParentNull, itemColumns: Array<ColumnInfo<ItemTypeType>>, conversionMap: ItemIdConversionMap): FieldMap<ItemTypeType>;
28
+ }
@@ -1,8 +1,7 @@
1
1
  import { ChangesDeltaFactory, RequestColumnExpansionFactory } from '../factories';
2
- import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
2
+ import { PromiseLibraryInterface } from '../interfaces';
3
3
  import { ApiRequestColumns, ItemId, ItemType, PromiseInterface } from '../types';
4
4
  import { ApiRequestService } from './ApiRequestService';
5
- import { ApiResponseProcessor } from './ApiResponseProcessor';
6
5
  import { ServerCache } from './cache/server/ServerCache';
7
6
  import { KeyService } from './KeyService';
8
7
  import { RequestBufferResponse } from './RequestBuffer';
@@ -11,22 +10,15 @@ export declare class RequestBufferManager {
11
10
  private apiRequestService;
12
11
  private requestColumnExpansionFactory;
13
12
  private keyService;
14
- private errorHandler;
15
13
  private changesDeltaFactory;
16
14
  private pendingBufferMap;
17
15
  private pendingTrueBufferMap;
18
- private pendingQueryBufferMap;
19
- private pendingTemplateBufferMap;
20
16
  private serverCache;
21
- constructor(promiseLibrary: PromiseLibraryInterface, apiRequestService: ApiRequestService, requestColumnExpansionFactory: RequestColumnExpansionFactory, keyService: KeyService, errorHandler: ErrorHandlerInterface, changesDeltaFactory: ChangesDeltaFactory);
17
+ constructor(promiseLibrary: PromiseLibraryInterface, apiRequestService: ApiRequestService, requestColumnExpansionFactory: RequestColumnExpansionFactory, keyService: KeyService, changesDeltaFactory: ChangesDeltaFactory);
22
18
  setServerCache(serverCache: ServerCache): void;
23
- containsId(itemType: ItemType, itemId: ItemId): boolean;
24
- containsQuery(itemType: ItemType, queryString: string): boolean;
25
19
  fetchByIds(itemType: ItemType, itemIds: ItemId[], requestColumns: ApiRequestColumns): PromiseInterface<RequestBufferResponse>;
26
20
  fetchById(itemType: ItemType, itemId: ItemId, requestColumns: ApiRequestColumns): PromiseInterface<RequestBufferResponse>;
27
21
  fetchByQuery(itemType: ItemType, query: [object, string], // queryParser result
28
22
  requestColumns: ApiRequestColumns): PromiseInterface<RequestBufferResponse>;
29
- fetchByLocalId(itemType: ItemType, itemId?: ItemId | string, templateOptions?: any): PromiseInterface<ApiResponseProcessor>;
30
23
  private constructBuffer;
31
- private constructTemplateBuffer;
32
24
  }
@@ -2,21 +2,22 @@ import { RequestColumnExpansionFactory, TemplateFactory } from '../factories';
2
2
  import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
3
3
  import { Template } from '../models';
4
4
  import { EntryParentNull, ItemId, ItemType, PromiseInterface } from '../types';
5
+ import { ApiRequestService } from './ApiRequestService';
5
6
  import { ColumnHandler } from './ColumnHandler';
6
7
  import { ColumnUtil } from './ColumnUtil';
7
- import { RequestBufferManager } from './RequestBufferManager';
8
8
  export declare class TemplateCache {
9
9
  private columnUtil;
10
10
  private promiseService;
11
- private requestBufferFactory;
12
11
  private columnHandler;
13
12
  private templateFactory;
14
13
  private errorHandler;
15
14
  private requestColumnExpansionFactory;
15
+ private apiRequestService;
16
+ private pendingTemplateBufferMap;
16
17
  templates: {
17
18
  [itemType: string]: Template<any>;
18
19
  };
19
- constructor(columnUtil: ColumnUtil, promiseService: PromiseLibraryInterface, requestBufferFactory: RequestBufferManager, columnHandler: ColumnHandler, templateFactory: TemplateFactory, errorHandler: ErrorHandlerInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory);
20
+ constructor(columnUtil: ColumnUtil, promiseService: PromiseLibraryInterface, columnHandler: ColumnHandler, templateFactory: TemplateFactory, errorHandler: ErrorHandlerInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory, apiRequestService: ApiRequestService);
20
21
  /**
21
22
  * @description
22
23
  * Fetches a {@link Template template}, {@link TransactionItemHandler.createItems TransactionItemHandler.createItems} is a convenience function for this
@@ -60,4 +61,6 @@ export declare class TemplateCache {
60
61
  * ```
61
62
  */
62
63
  fetchTemplate<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId?: ItemId, templateOptions?: any, templateColumns?: any, entryParentOrParentItemType?: EntryParentNull | ItemType): PromiseInterface<Template<ItemTypeType>>;
64
+ private fetchTemplateById;
65
+ private constructTemplateBuffer;
63
66
  }
@@ -17,6 +17,7 @@ import { ColumnHandler } from '../ColumnHandler';
17
17
  import { ColumnUtil } from '../ColumnUtil';
18
18
  import { InternalChangesDelta } from '../InternalChangesDelta';
19
19
  import { ItemCache } from '../ItemCache';
20
+ import { ItemCreateService } from '../ItemCreateService';
20
21
  import { ItemEntryService } from '../ItemEntryService';
21
22
  import { KeyService } from '../KeyService';
22
23
  import { LockService } from '../LockService';
@@ -64,11 +65,12 @@ export declare abstract class AbstractCache {
64
65
  protected queryService: QueryService;
65
66
  protected apiFormatter: ApiFormatter;
66
67
  protected linkTreeService: LinkTreeServiceInterface;
68
+ protected changesDeltaService: ItemCreateService;
67
69
  children: TransactionCache[];
68
70
  readonly itemHandler: TransactionItemHandler | ServerItemHandler;
69
71
  readonly collectionHandler: TransactionCollectionHandler | ServerCollectionHandler;
70
72
  parent: AbstractCache | null;
71
- protected constructor(core: RmCore, columnCache: ColumnCache, requestBufferManager: RequestBufferManager, requestColumnExpansionFactory: RequestColumnExpansionFactory, queryMatcherFactory: QueryMatcherFactory, authInterface: AuthInterface, changesDeltaFactory: ChangesDeltaFactory, lockService: LockService, moduleChangesCompilationFactory: ModuleChangesCompilationFactory, collectionResourceFactory: CollectionResourceFactory, itemResourceFactory: ItemResourceFactory, templateCache: TemplateCache, itemCacheFactory: ItemCacheFactory, collectionCacheFactory: CollectionCacheFactory, errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, promiseService: PromiseLibraryInterface, 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, apiFormatter: ApiFormatter, linkTreeService: LinkTreeServiceInterface);
73
+ protected constructor(core: RmCore, columnCache: ColumnCache, requestBufferManager: RequestBufferManager, requestColumnExpansionFactory: RequestColumnExpansionFactory, queryMatcherFactory: QueryMatcherFactory, authInterface: AuthInterface, changesDeltaFactory: ChangesDeltaFactory, lockService: LockService, moduleChangesCompilationFactory: ModuleChangesCompilationFactory, collectionResourceFactory: CollectionResourceFactory, itemResourceFactory: ItemResourceFactory, templateCache: TemplateCache, itemCacheFactory: ItemCacheFactory, collectionCacheFactory: CollectionCacheFactory, errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, promiseService: PromiseLibraryInterface, 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, apiFormatter: ApiFormatter, linkTreeService: LinkTreeServiceInterface, changesDeltaService: ItemCreateService);
72
74
  createChild(id?: string, validatorFactory?: TransactionValidatorFactory): TransactionCache;
73
75
  onChildDestroy(cache: TransactionCache): void;
74
76
  abstract getLocalCollectionEntryByQueryString(itemType: ItemType, queryString: string): CollectionEntry | undefined;
@@ -17,6 +17,7 @@ import { ColumnCache } from '../../ColumnCache';
17
17
  import { ColumnHandler } from '../../ColumnHandler';
18
18
  import { ColumnUtil } from '../../ColumnUtil';
19
19
  import { InternalChangesDelta } from '../../InternalChangesDelta';
20
+ import { ItemCreateService } from '../../ItemCreateService';
20
21
  import { ItemEntryService } from '../../ItemEntryService';
21
22
  import { KeyService } from '../../KeyService';
22
23
  import { LockService } from '../../LockService';
@@ -39,7 +40,7 @@ export declare class ServerCache extends AbstractCache {
39
40
  readonly itemHandler: ServerItemHandler;
40
41
  readonly collectionHandler: ServerCollectionHandler;
41
42
  parent: null;
42
- constructor(changesProcessorFactory: ChangesProcessorFactory, core: RmCore, columnCache: ColumnCache, requestBufferManager: RequestBufferManager, requestColumnExpansionFactory: RequestColumnExpansionFactory, queryMatcherFactory: QueryMatcherFactory, authInterface: AuthInterface, changesDeltaFactory: ChangesDeltaFactory, 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);
43
+ constructor(changesProcessorFactory: ChangesProcessorFactory, core: RmCore, columnCache: ColumnCache, requestBufferManager: RequestBufferManager, requestColumnExpansionFactory: RequestColumnExpansionFactory, queryMatcherFactory: QueryMatcherFactory, authInterface: AuthInterface, changesDeltaFactory: ChangesDeltaFactory, 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, changesDeltaService: ItemCreateService);
43
44
  getServerCache(): ServerCache;
44
45
  processResponse(response: ApiResponseProcessor, requestColumnMap: ApiRequestColumnMap, isCalledAfterApiSave?: boolean, isCalledAfterSocketUpdate?: boolean, changesDelta?: ChangesDelta): PromiseInterface<ChangesDeltaResult>;
45
46
  /**
@@ -12,6 +12,7 @@ import { ColumnHandler } from '../../ColumnHandler';
12
12
  import { ColumnUtil } from '../../ColumnUtil';
13
13
  import { ApiFormatter, ApiRequestService, ColumnCache, LockService, ModuleChangesCompilationResult, OnAfterCreateCallback, RequestBufferManager, TransactionCacheCallbackCondition, TransactionCacheCallbackType, TransactionCollectionHandler, TransactionItemEntryChanges, TransactionItemHandler, TransactionValidatorFactory } from '../../index';
14
14
  import { InternalChangesDelta } from '../../InternalChangesDelta';
15
+ import { ItemCreateService } from '../../ItemCreateService';
15
16
  import { ItemEntryService } from '../../ItemEntryService';
16
17
  import { KeyService } from '../../KeyService';
17
18
  import { QueryService } from '../../QueryService';
@@ -96,7 +97,7 @@ export declare class TransactionCache extends AbstractCache {
96
97
  private readonly eventHandler;
97
98
  private changesInterval;
98
99
  private validator?;
99
- constructor(core: RmCore, columnCache: ColumnCache, requestBufferManager: RequestBufferManager, requestColumnExpansionFactory: RequestColumnExpansionFactory, queryMatcherFactory: QueryMatcherFactory, authInterface: AuthInterface, changesDeltaFactory: ChangesDeltaFactory, lockService: LockService, moduleChangesCompilationFactory: ModuleChangesCompilationFactory, collectionResourceFactory: CollectionResourceFactory, itemResourceFactory: ItemResourceFactory, templateCache: TemplateCache, itemCacheFactory: ItemCacheFactory, collectionCacheFactory: CollectionCacheFactory, errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, promiseService: PromiseLibraryInterface, 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, apiFormatter: ApiFormatter, linkTreeService: LinkTreeServiceInterface, parent: AbstractCache,
100
+ constructor(core: RmCore, columnCache: ColumnCache, requestBufferManager: RequestBufferManager, requestColumnExpansionFactory: RequestColumnExpansionFactory, queryMatcherFactory: QueryMatcherFactory, authInterface: AuthInterface, changesDeltaFactory: ChangesDeltaFactory, lockService: LockService, moduleChangesCompilationFactory: ModuleChangesCompilationFactory, collectionResourceFactory: CollectionResourceFactory, itemResourceFactory: ItemResourceFactory, templateCache: TemplateCache, itemCacheFactory: ItemCacheFactory, collectionCacheFactory: CollectionCacheFactory, errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, promiseService: PromiseLibraryInterface, 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, apiFormatter: ApiFormatter, linkTreeService: LinkTreeServiceInterface, changesDeltaService: ItemCreateService, parent: AbstractCache,
100
101
  /**
101
102
  * @description
102
103
  * For debugging purposes
@@ -1,10 +1,11 @@
1
- import { ChangesDeltaFactory, ColumnExpansionFactory, ColumnSetFactory, ColumnSubsetCacheFactory, ItemCacheFactory, ItemEntryFactory, RequestColumnExpansionFactory } from '../../../factories';
1
+ import { ChangesDeltaFactory, ColumnExpansionFactory, ColumnSubsetCacheFactory, ItemCacheFactory, ItemEntryFactory, RequestColumnExpansionFactory } from '../../../factories';
2
2
  import { ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from '../../../interfaces';
3
- import { ItemEntry, ItemEntryOptions, ItemResource, Template } from '../../../models';
4
- import { ApiQuery, ApiRequestColumns, EntryParentNull, FieldMap, FilterItemEntryCallback, ItemId, ItemIdConversionMap, ItemType, ItemTypeMap, ModifyFieldsCallback, PromiseInterface, ResponseColumnItemTypeMap } from '../../../types';
3
+ import { ItemEntry, ItemEntryOptions, ItemResource } from '../../../models';
4
+ import { ApiQuery, ApiRequestColumns, FieldMap, ItemId, ItemIdConversionMap, ItemType, ItemTypeMap, ModifyFieldsCallback, PromiseInterface, ResponseColumnItemTypeMap } from '../../../types';
5
5
  import { ChangesDelta, ChangesDeltaItemCreateDelta } from '../../ChangesDelta';
6
6
  import { ChangesDeltaBase, ChangesDeltaItemUpdateDelta, ChangesDeltaResult } from '../../ChangesDeltaBase';
7
- import { ApiFormatter, ColumnHandler, ColumnInfo, ColumnSubsetCache, ColumnUtil, ItemEntryService, KeyService } from '../../index';
7
+ import { ApiFormatter, ColumnHandler, ColumnSubsetCache, ColumnUtil, ItemEntryService, KeyService } from '../../index';
8
+ import { ItemCreateService } from '../../ItemCreateService';
8
9
  import { TemplateCache } from '../../TemplateCache';
9
10
  import { ItemHandlerBase } from '../ItemHandlerBase';
10
11
  import { TransactionCache } from './TransactionCache';
@@ -24,10 +25,10 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
24
25
  private templateCache;
25
26
  private columnExpansionFactory;
26
27
  private columnHandler;
27
- private columnSetFactory;
28
28
  private columnSubsetCacheFactory;
29
29
  private itemEntryService;
30
30
  private keyService;
31
+ private changesDeltaService;
31
32
  protected transaction: TransactionCache;
32
33
  private validator?;
33
34
  deletedItems: ItemTypeMap<ItemEntry[]>;
@@ -37,7 +38,7 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
37
38
  itemResources: {
38
39
  [itemEntryId: number]: ItemResource[];
39
40
  };
40
- constructor(changesDeltaFactory: ChangesDeltaFactory, exceptionHandler: ExceptionHandlerInterface, templateCache: TemplateCache, columnExpansionFactory: ColumnExpansionFactory, columnHandler: ColumnHandler, columnSetFactory: ColumnSetFactory, columnSubsetCacheFactory: ColumnSubsetCacheFactory, errorHandler: ErrorHandlerInterface, itemEntryService: ItemEntryService, keyService: KeyService, promiseService: PromiseLibraryInterface, columnUtil: ColumnUtil, apiFormatter: ApiFormatter, itemEntryFactory: ItemEntryFactory, itemCacheFactory: ItemCacheFactory, requestColumnExpansionFactory: RequestColumnExpansionFactory, transaction: TransactionCache, validator?: TransactionValidator | undefined);
41
+ constructor(changesDeltaFactory: ChangesDeltaFactory, exceptionHandler: ExceptionHandlerInterface, templateCache: TemplateCache, columnExpansionFactory: ColumnExpansionFactory, columnHandler: ColumnHandler, columnSubsetCacheFactory: ColumnSubsetCacheFactory, errorHandler: ErrorHandlerInterface, itemEntryService: ItemEntryService, keyService: KeyService, changesDeltaService: ItemCreateService, promiseService: PromiseLibraryInterface, columnUtil: ColumnUtil, apiFormatter: ApiFormatter, itemEntryFactory: ItemEntryFactory, itemCacheFactory: ItemCacheFactory, requestColumnExpansionFactory: RequestColumnExpansionFactory, transaction: TransactionCache, validator?: TransactionValidator | undefined);
41
42
  copyTransactionItemEntryChanges(itemEntryChanges: TransactionItemEntryChanges, entry: ItemEntry): TransactionItemEntryChanges;
42
43
  createItemEntry(createTuple: ChangesDeltaItemCreateDelta): ItemEntry;
43
44
  /**
@@ -45,11 +46,6 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
45
46
  * Gets the local {@link FieldMap changes} of the {@link ItemEntry entry} on the {@link TransactionCache transaction} in a formatted way the API accepts
46
47
  */
47
48
  formatRequest<ItemEntryType extends ItemEntry>(entry: ItemEntryType): FieldMap<ItemEntryType['itemType']>;
48
- /**
49
- * @description
50
- * Fetches a new {@link Template template} and creates new {@link ItemEntry itemEntries} with the passed values
51
- */
52
- createItems<ItemTypeType extends ItemType>(itemType: ItemTypeType, valuesArray: Array<FieldMap<ItemTypeType>>, parent: EntryParentNull): PromiseInterface<ChangesDeltaResult>;
53
49
  clearItemEntry(entry: ItemEntry): void;
54
50
  /**
55
51
  * @description
@@ -98,9 +94,7 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
98
94
  fetchItemEntries<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
99
95
  fetchTitle(itemType: ItemType, itemId: ItemId): PromiseInterface<string>;
100
96
  resolveLocalItemEntry<ItemTypeType extends ItemType>(changesDelta: ChangesDelta, itemEntry: ItemEntry<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
101
- createLocalEntries(changesDelta: ChangesDelta, parentType: ItemType, localParentId: ItemId, template: Template<ItemType>, itemIdConversion: ItemIdConversionMap, filterItemEntryCallback?: FilterItemEntryCallback, modifyFieldsCallback?: ModifyFieldsCallback): void;
102
97
  expandLocalItemEntries<ItemTypeType extends ItemType>(changesDelta: ChangesDeltaBase, itemType: ItemTypeType, itemEntries: Array<ItemEntry<ItemTypeType>>, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
103
- updateItemValues<ItemTypeType extends ItemType>(changes: FieldMap<ItemTypeType>, parent: EntryParentNull, itemColumns: Array<ColumnInfo<ItemTypeType>>, conversionMap: ItemIdConversionMap): FieldMap<ItemTypeType>;
104
98
  /**
105
99
  * @description
106
100
  * Fetches the data for the passed ItemType/ItemId/columns, is able to fetchCollectionEntry non-local derived values.
@@ -111,7 +105,6 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
111
105
  fetchLocalItemEntryData<ItemTypeType extends ItemType>(changesDelta: ChangesDelta, itemType: ItemTypeType, itemId: ItemId, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<any>;
112
106
  fetchLocalItemEntries<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
113
107
  private getColumnDifference;
114
- private resolveLocal;
115
108
  private expandLocalItemEntry;
116
109
  private getLocalValues;
117
110
  }
@@ -40,3 +40,4 @@ export * from './ChangesDelta';
40
40
  export * from './InternalChangesDelta';
41
41
  export * from './RequestBufferManager';
42
42
  export * from './RequestBuffer';
43
+ export * from './ItemCreateService';
@@ -1,4 +1,5 @@
1
1
  import { ApiFormatter, ApiRequestService, CollectionEntryService, CollectionResourceService, ColumnCache, ColumnHandler, ColumnUtil, ItemEntryService, KeyService, LockService, QueryService, SocketMessageHandler } from './classes';
2
+ import { ItemCreateService } from './classes/ItemCreateService';
2
3
  import { TemplateCache } from './classes/TemplateCache';
3
4
  import { ApiResponseProcessorFactory, ChangesCompilationFactory, CollectionCacheFactory, CollectionEntryFactory, CollectionMatcherFactory, CollectionResourceFactory, ColumnExpansionFactory, ColumnInfoFactory, ColumnSetFactory, ColumnSubsetCacheFactory, CreateRequestFactory, ItemCacheFactory, ItemEntryFactory, ItemResourceFactory, ModuleChangesCompilationFactory, QueryMatcherFactory, QueryParserFactory, RequestColumnExpansionFactory, TemplateFactory, TransactionCacheFactory } from './factories';
4
5
  import { ChangesDeltaFactory } from './factories/ChangesDeltaFactory';
@@ -28,6 +29,7 @@ export declare class RmCore {
28
29
  columnUtil: ColumnUtil;
29
30
  createRequestFactory: CreateRequestFactory;
30
31
  itemCacheFactory: ItemCacheFactory;
32
+ itemCreateService: ItemCreateService;
31
33
  itemEntryFactory: ItemEntryFactory;
32
34
  itemEntryService: ItemEntryService;
33
35
  itemResourceFactory: ItemResourceFactory;
@@ -1,9 +1,11 @@
1
1
  import { ItemEntryService } from '../classes';
2
2
  import { ChangesDelta } from '../classes/ChangesDelta';
3
3
  import { InternalChangesDelta } from '../classes/InternalChangesDelta';
4
+ import { ItemCreateService } from '../classes/ItemCreateService';
4
5
  export declare class ChangesDeltaFactory {
5
6
  private itemEntryService;
6
- constructor(itemEntryService: ItemEntryService);
7
+ private itemCreateService;
8
+ constructor(itemEntryService: ItemEntryService, itemCreateService: ItemCreateService);
7
9
  construct(): ChangesDelta;
8
10
  constructInternalDelta(): InternalChangesDelta;
9
11
  }
@@ -1,4 +1,4 @@
1
- import { KeyService } from '../classes';
1
+ import { ItemEntryService, KeyService } from '../classes';
2
2
  import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
3
3
  import { ItemResourceFactory } from '../factories';
4
4
  import { ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from '../interfaces';
@@ -12,7 +12,8 @@ export declare class CollectionResourceFactory {
12
12
  keyService: KeyService;
13
13
  promiseService: PromiseLibraryInterface;
14
14
  changesDeltaFactory: ChangesDeltaFactory;
15
- constructor(errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, itemResourceFactory: ItemResourceFactory, keyService: KeyService, promiseService: PromiseLibraryInterface, changesDeltaFactory: ChangesDeltaFactory);
15
+ itemEntryService: ItemEntryService;
16
+ constructor(errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, itemResourceFactory: ItemResourceFactory, keyService: KeyService, promiseService: PromiseLibraryInterface, changesDeltaFactory: ChangesDeltaFactory, itemEntryService: ItemEntryService);
16
17
  construct<ItemTypeType extends ItemType>(collectionEntry: CollectionEntry<ItemTypeType>, options: CollectionResourceOptionsInterface<ItemTypeType> & {
17
18
  editItems: true;
18
19
  editCollection: true;
@@ -2,6 +2,7 @@ import { ApiFormatter, ApiRequestService, CollectionEntryService, ColumnCache, C
2
2
  import { ServerCache } from '../classes/cache/server/ServerCache';
3
3
  import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
4
4
  import { TransactionValidatorFactory } from '../classes/cache/transaction/TransactionValidator';
5
+ import { ItemCreateService } from '../classes/ItemCreateService';
5
6
  import { RequestBufferManager } from '../classes/RequestBufferManager';
6
7
  import { TemplateCache } from '../classes/TemplateCache';
7
8
  import { RmCore } from '../core';
@@ -45,8 +46,9 @@ export declare class TransactionCacheFactory {
45
46
  private queryParserFactory;
46
47
  private queryService;
47
48
  private linkTreeService;
49
+ private changesDeltaService;
48
50
  private readonly serverCache;
49
- 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);
51
+ 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, changesDeltaService: ItemCreateService);
50
52
  /**
51
53
  * Todo[cache] Store a map of all transactions by transaction id ?
52
54
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rentman/rm-core",
3
- "version": "2.1.2",
3
+ "version": "2.2.0",
4
4
  "description": "Rentman core functionalities",
5
5
  "main": "./dist/rm-core.js",
6
6
  "types": "./dist/src/index.d.ts",