@aristid/leav-types 0.0.7-4e6e650 → 0.0.7-4e7841b3

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 (77) hide show
  1. package/apps/core/config/default.d.ts +1 -0
  2. package/apps/core/src/__tests__/e2e/api/getConditionPart/getConditionPart.test.d.ts +1 -0
  3. package/apps/core/src/__tests__/e2e/api/joinLibraries/joinLibraries.test.d.ts +1 -0
  4. package/apps/core/src/__tests__/mockers/amqp.d.ts +1 -1
  5. package/apps/core/src/__tests__/mockers/logger.d.ts +4 -4
  6. package/apps/core/src/_types/config.d.ts +1 -0
  7. package/apps/core/src/_types/dbProfiler.d.ts +20 -1
  8. package/apps/core/src/_types/forms.d.ts +11 -7
  9. package/apps/core/src/_types/permissions.d.ts +2 -1
  10. package/apps/core/src/_types/queryInfos.d.ts +5 -0
  11. package/apps/core/src/_types/record.d.ts +4 -4
  12. package/apps/core/src/_types/tree.d.ts +1 -1
  13. package/apps/core/src/_types/value.d.ts +64 -5
  14. package/apps/core/src/app/application/applicationApp.d.ts +3 -7
  15. package/apps/core/src/app/auth/authApp.d.ts +4 -5
  16. package/apps/core/src/app/core/actionListApp.d.ts +2 -4
  17. package/apps/core/src/app/core/apiKeyApp/apiKeyApp.d.ts +2 -4
  18. package/apps/core/src/app/core/attributeApp/attributeApp.d.ts +2 -5
  19. package/apps/core/src/app/core/coreApp.d.ts +2 -4
  20. package/apps/core/src/app/core/exportApp.d.ts +2 -4
  21. package/apps/core/src/app/core/filesManagerApp.d.ts +3 -5
  22. package/apps/core/src/app/core/formApp/_types.d.ts +10 -0
  23. package/apps/core/src/app/core/formApp/formApp.d.ts +4 -5
  24. package/apps/core/src/app/core/globalSettingsApp.d.ts +3 -6
  25. package/apps/core/src/app/core/importApp.d.ts +2 -4
  26. package/apps/core/src/app/core/libraryApp/libraryApp.d.ts +2 -5
  27. package/apps/core/src/app/core/logApp.d.ts +2 -4
  28. package/apps/core/src/app/core/permissionApp/permissionApp.d.ts +2 -4
  29. package/apps/core/src/app/core/pluginsApp.d.ts +2 -3
  30. package/apps/core/src/app/core/recordApp/recordApp.d.ts +2 -5
  31. package/apps/core/src/app/core/tasksManagerApp.d.ts +2 -3
  32. package/apps/core/src/app/core/treeApp/treeApp.d.ts +5 -6
  33. package/apps/core/src/app/core/userDataApp.d.ts +2 -4
  34. package/apps/core/src/app/core/valueApp.d.ts +2 -4
  35. package/apps/core/src/app/core/versionProfileApp/versionProfileApp.d.ts +2 -4
  36. package/apps/core/src/app/core/viewApp.d.ts +2 -4
  37. package/apps/core/src/app/endpoint/endpointApp.d.ts +3 -8
  38. package/apps/core/src/app/graphql/graphqlApp.d.ts +8 -0
  39. package/apps/core/src/domain/attribute/helpers/ifLibraryJoinLinkAttribute.d.ts +11 -0
  40. package/apps/core/src/domain/attribute/helpers/ifLibraryJoinLinkAttribute.spec.d.ts +1 -0
  41. package/apps/core/src/domain/attribute/helpers/index.d.ts +1 -0
  42. package/apps/core/src/domain/filesManager/helpers/handleFileSystemEvent/handleMoveEvent.d.ts +1 -1
  43. package/apps/core/src/domain/form/formDomain.d.ts +9 -1
  44. package/apps/core/src/domain/import/importDomain.d.ts +1 -1
  45. package/apps/core/src/domain/indexationManager/indexationManagerDomain.d.ts +4 -2
  46. package/apps/core/src/domain/permission/_types.d.ts +10 -2
  47. package/apps/core/src/domain/permission/helpers/globalPermission.d.ts +1 -10
  48. package/apps/core/src/domain/permission/helpers/permissionByUserGroups.d.ts +7 -7
  49. package/apps/core/src/domain/permission/helpers/treeBasedPermissions.d.ts +0 -4
  50. package/apps/core/src/domain/permission/recordPermissionDomain.d.ts +4 -1
  51. package/apps/core/src/domain/record/_types.d.ts +1 -0
  52. package/apps/core/src/domain/record/helpers/createRecord.d.ts +21 -0
  53. package/apps/core/src/domain/record/helpers/deleteRecord.d.ts +19 -0
  54. package/apps/core/src/domain/record/helpers/getAccessPermissionFilters.d.ts +1 -1
  55. package/apps/core/src/domain/record/helpers/index.d.ts +2 -0
  56. package/apps/core/src/domain/record/recordDomain.d.ts +10 -4
  57. package/apps/core/src/domain/tree/treeDomain.d.ts +2 -2
  58. package/apps/core/src/domain/value/helpers/prepareValue.d.ts +3 -3
  59. package/apps/core/src/domain/value/helpers/saveOneValue.d.ts +2 -2
  60. package/apps/core/src/domain/value/helpers/validateValue.d.ts +3 -3
  61. package/apps/core/src/domain/value/valueDomain.d.ts +10 -4
  62. package/apps/core/src/infra/attributeTypes/attributeAdvancedLinkRepo.d.ts +5 -2
  63. package/apps/core/src/infra/attributeTypes/attributeAdvancedRepo.d.ts +3 -1
  64. package/apps/core/src/infra/attributeTypes/attributeSimpleLinkRepo.d.ts +5 -2
  65. package/apps/core/src/infra/attributeTypes/attributeSimpleRepo.d.ts +3 -1
  66. package/apps/core/src/infra/attributeTypes/attributeTreeRepo.d.ts +3 -1
  67. package/apps/core/src/infra/attributeTypes/attributeTypesRepo.d.ts +27 -21
  68. package/apps/core/src/infra/db/migrations/011-moveSkeletonApptoAppStudio.d.ts +7 -0
  69. package/apps/core/src/infra/record/helpers/getSearchVariableName.d.ts +1 -1
  70. package/apps/core/src/infra/tree/treeRepo.d.ts +2 -2
  71. package/apps/core/src/infra/value/valueRepo.d.ts +3 -3
  72. package/apps/core/src/interface/server.d.ts +7 -0
  73. package/apps/core/src/utils/dataloader.d.ts +8 -0
  74. package/apps/core/src/utils/helpers/getSystemQueryContext.d.ts +8 -0
  75. package/apps/core/src/utils/index.d.ts +1 -0
  76. package/libs/utils/src/types/forms.d.ts +2 -1
  77. package/package.json +5 -2
@@ -1,8 +1,6 @@
1
1
  import { IUserDomain } from '../../domain/user/userDomain';
2
- import { IAppGraphQLSchema } from '_types/graphql';
3
- export interface ICoreImportApp {
4
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
5
- }
2
+ import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
3
+ export type ICoreImportApp = IGraphqlAppModule;
6
4
  interface IDeps {
7
5
  'core.domain.user': IUserDomain;
8
6
  }
@@ -3,10 +3,8 @@ import { IAttributeDomain } from 'domain/attribute/attributeDomain';
3
3
  import { IRecordDomain } from 'domain/record/recordDomain';
4
4
  import { IValueDomain } from 'domain/value/valueDomain';
5
5
  import { IUtils } from 'utils/utils';
6
- import { IAppGraphQLSchema } from '_types/graphql';
7
- export interface ICoreValueApp {
8
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
9
- }
6
+ import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
7
+ export type ICoreValueApp = IGraphqlAppModule;
10
8
  interface IDeps {
11
9
  'core.domain.value': IValueDomain;
12
10
  'core.domain.attribute': IAttributeDomain;
@@ -1,9 +1,7 @@
1
1
  import { ITreeDomain } from 'domain/tree/treeDomain';
2
2
  import { IVersionProfileDomain } from 'domain/versionProfile/versionProfileDomain';
3
- import { IAppGraphQLSchema } from '_types/graphql';
4
- export interface ICoreVersionProfileApp {
5
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
6
- }
3
+ import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
4
+ export type ICoreVersionProfileApp = IGraphqlAppModule;
7
5
  interface IDeps {
8
6
  'core.domain.versionProfile'?: IVersionProfileDomain;
9
7
  'core.domain.tree'?: ITreeDomain;
@@ -1,16 +1,14 @@
1
1
  import { IRecordDomain } from 'domain/record/recordDomain';
2
2
  import { IViewDomain } from 'domain/view/viewDomain';
3
3
  import { IUtils } from 'utils/utils';
4
- import { IAppGraphQLSchema } from '_types/graphql';
5
4
  import { IAttributeDomain } from 'domain/attribute/attributeDomain';
5
+ import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
6
6
  interface IDeps {
7
7
  'core.domain.record': IRecordDomain;
8
8
  'core.domain.view': IViewDomain;
9
9
  'core.domain.attribute': IAttributeDomain;
10
10
  'core.utils': IUtils;
11
11
  }
12
- export interface IViewApp {
13
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
14
- }
12
+ export type IViewApp = IGraphqlAppModule;
15
13
  export default function ({ 'core.domain.view': viewDomain, 'core.domain.record': recordDomain, 'core.domain.attribute': attributeDomain, 'core.utils': utils }: IDeps): IViewApp;
16
14
  export {};
@@ -1,17 +1,12 @@
1
- import type { Express, RequestHandler } from 'express';
1
+ import type { RequestHandler } from 'express';
2
2
  import type { IAppModule } from '../../_types/shared';
3
3
  import type { ExpressAppMethod } from '../../_types/endpoint';
4
4
  import type { InitQueryContextFunc } from '../helpers/initQueryContext';
5
5
  import type { ValidateRequestTokenFunc } from '../helpers/validateRequestToken';
6
6
  import { IConfig } from '_types/config';
7
7
  import { IValueDomain } from 'domain/value/valueDomain';
8
- interface IEndpointApp extends IAppModule {
9
- /**
10
- * Method call automatically by the LEAV Core: server.ts
11
- * @param app Express instance, can be used to extend the app
12
- */
13
- registerRoute(app: Express): void;
14
- }
8
+ import { IServerRouteAppModule } from 'interface/server';
9
+ type IEndpointApp = IAppModule & IServerRouteAppModule;
15
10
  export interface IPluginRoute {
16
11
  path: string;
17
12
  method: ExpressAppMethod;
@@ -1,12 +1,20 @@
1
1
  import { AwilixContainer } from 'awilix';
2
2
  import { GraphQLResolveInfo, GraphQLSchema } from 'graphql';
3
3
  import { IUtils } from 'utils/utils';
4
+ import { IAppGraphQLSchema } from '_types/graphql';
4
5
  import { IAppModule } from '_types/shared';
5
6
  import { IQueryField } from '../../_types/record';
6
7
  export interface IGraphqlApp extends IAppModule {
8
+ /**
9
+ * Parse all registered GraphQL schemas and return a single schema
10
+ * Very costly operation, should be called only once at application startup
11
+ */
7
12
  getSchema(): Promise<GraphQLSchema>;
8
13
  getQueryFields(info: GraphQLResolveInfo): IQueryField[];
9
14
  }
15
+ export interface IGraphqlAppModule {
16
+ getGraphQLSchema(): Promise<IAppGraphQLSchema>;
17
+ }
10
18
  interface IDeps {
11
19
  'core.depsManager'?: AwilixContainer;
12
20
  'core.utils'?: IUtils;
@@ -0,0 +1,11 @@
1
+ import { IAttribute } from '../../../_types/attribute';
2
+ import { IQueryInfos } from '../../../_types/queryInfos';
3
+ import { IAttributeDomain } from 'domain/attribute/attributeDomain';
4
+ import { GetCoreEntityByIdFunc } from 'domain/helpers/getCoreEntityById';
5
+ export type IfLibraryJoinLinkAttributeCallback<R> = (joinLibId: string, joinAttributeProps: IAttribute) => Promise<R>;
6
+ export type IfLibraryJoinLinkAttribute = <R = unknown>(attributeProps: IAttribute, callback: IfLibraryJoinLinkAttributeCallback<R>, ctx: IQueryInfos) => Promise<R | void>;
7
+ export interface IIfLibraryJoinLinkDeps {
8
+ 'core.domain.helpers.getCoreEntityById': GetCoreEntityByIdFunc;
9
+ 'core.domain.attribute': IAttributeDomain;
10
+ }
11
+ export default function ({ 'core.domain.helpers.getCoreEntityById': getCoreEntityById, 'core.domain.attribute': attributeDomain }: IIfLibraryJoinLinkDeps): IfLibraryJoinLinkAttribute;
@@ -0,0 +1 @@
1
+ export { default as ifLibraryJoinLinkAttribute } from './ifLibraryJoinLinkAttribute';
@@ -1,4 +1,4 @@
1
1
  import { IQueryInfos } from '_types/queryInfos';
2
2
  import { IFileEventData } from '../../../../_types/filesManager';
3
3
  import { IHandleFileSystemEventDeps, IHandleFileSystemEventResources } from './_types';
4
- export declare const handleMoveEvent: (scanMsg: IFileEventData, { library }: IHandleFileSystemEventResources, deps: IHandleFileSystemEventDeps, ctx: IQueryInfos) => Promise<boolean>;
4
+ export declare const handleMoveEvent: (scanMsg: IFileEventData, { library }: IHandleFileSystemEventResources, deps: IHandleFileSystemEventDeps, ctx: IQueryInfos) => Promise<boolean | void>;
@@ -13,7 +13,7 @@ import winston from 'winston';
13
13
  import { IQueryInfos } from '_types/queryInfos';
14
14
  import { IGetCoreEntitiesParams } from '_types/shared';
15
15
  import { IValueVersion } from '_types/value';
16
- import { IForm, IRecordForm } from '../../_types/forms';
16
+ import { IForm, IFormElementValues, IRecordForm } from '../../_types/forms';
17
17
  import { IList } from '../../_types/list';
18
18
  export interface IFormDomain {
19
19
  getFormsByLib({ library, params, ctx }: {
@@ -28,6 +28,14 @@ export interface IFormDomain {
28
28
  version?: IValueVersion;
29
29
  ctx: IQueryInfos;
30
30
  }): Promise<IRecordForm>;
31
+ getRecordFormElementsValues(params: {
32
+ recordId: string;
33
+ libraryId: string;
34
+ formId: string;
35
+ version?: IValueVersion;
36
+ ctx: IQueryInfos;
37
+ elementIds: string[];
38
+ }): Promise<IFormElementValues[]>;
31
39
  getFormProperties({ library, id, ctx }: {
32
40
  library: string;
33
41
  id: string;
@@ -42,7 +42,7 @@ interface IImportConfigParams {
42
42
  forceNoTask?: boolean;
43
43
  }
44
44
  export interface IImportDomain {
45
- importConfig(params: IImportConfigParams, task?: ITaskFuncParams): Promise<string>;
45
+ importConfig(params: IImportConfigParams, task?: ITaskFuncParams): Promise<string | undefined>;
46
46
  importData(params: IImportDataParams, task?: ITaskFuncParams): Promise<string>;
47
47
  importExcel({ filename, sheets, startAt }: IImportExcelParams, ctx: IQueryInfos): Promise<string>;
48
48
  }
@@ -11,6 +11,7 @@ import * as Config from '_types/config';
11
11
  import { IQueryInfos } from '_types/queryInfos';
12
12
  import { IIndexationService } from '../../infra/indexation/indexationService';
13
13
  import { ITaskFuncParams } from '../../_types/tasksManager';
14
+ import { GetSystemQueryContext } from '../../utils/helpers/getSystemQueryContext';
14
15
  interface IIndexDatabaseParams {
15
16
  findRecordParams: IFindRecordParams | IFindRecordParams[];
16
17
  attributes?: {
@@ -22,7 +23,7 @@ interface IIndexDatabaseParams {
22
23
  }
23
24
  export interface IIndexationManagerDomain {
24
25
  init(): Promise<void>;
25
- indexDatabase(params: IIndexDatabaseParams, task?: ITaskFuncParams): Promise<string>;
26
+ indexDatabase(params: IIndexDatabaseParams, task?: ITaskFuncParams): Promise<void>;
26
27
  }
27
28
  export interface IIndexationManagerDomainDeps {
28
29
  config: Config.IConfig;
@@ -34,7 +35,8 @@ export interface IIndexationManagerDomainDeps {
34
35
  'core.domain.tasksManager': ITasksManagerDomain;
35
36
  'core.domain.eventsManager': IEventsManagerDomain;
36
37
  'core.utils.logger': winston.Winston;
38
+ 'core.utils.getSystemQueryContext': GetSystemQueryContext;
37
39
  translator: i18n;
38
40
  }
39
- export default function ({ config, 'core.infra.amqpService': amqpService, 'core.domain.record': recordDomain, 'core.domain.library': libraryDomain, 'core.domain.attribute': attributeDomain, 'core.domain.tasksManager': tasksManagerDomain, 'core.infra.indexation.indexationService': indexationService, 'core.domain.eventsManager': eventsManager, 'core.utils.logger': logger, translator }: IIndexationManagerDomainDeps): IIndexationManagerDomain;
41
+ export default function ({ config, 'core.infra.amqpService': amqpService, 'core.domain.record': recordDomain, 'core.domain.library': libraryDomain, 'core.domain.attribute': attributeDomain, 'core.domain.tasksManager': tasksManagerDomain, 'core.infra.indexation.indexationService': indexationService, 'core.domain.eventsManager': eventsManager, 'core.utils.logger': logger, 'core.utils.getSystemQueryContext': getSystemQueryContext, translator }: IIndexationManagerDomainDeps): IIndexationManagerDomain;
40
42
  export {};
@@ -1,6 +1,6 @@
1
1
  import { AdminPermissionsActions, ApplicationPermissionsActions, AttributePermissionsActions, IPermissionsTreeTarget, ITreePermissionsConf, LibraryPermissionsActions, PermissionsActions, PermissionTypes, RecordAttributePermissionsActions, RecordPermissionsActions, TreeNodePermissionsActions, TreePermissionsActions } from '_types/permissions';
2
2
  import { IQueryInfos } from '_types/queryInfos';
3
- import { TreePaths } from '_types/tree';
3
+ import { TreePath } from '_types/tree';
4
4
  export declare const PERMISSIONS_CACHE_HEADER = "permissions";
5
5
  export declare const PERMISSIONS_NULL_PLACEHOLDER = "__null__";
6
6
  export interface IPermissionTarget {
@@ -163,7 +163,7 @@ export interface IGetDefaultPermissionParams {
163
163
  action?: any;
164
164
  applyTo?: string;
165
165
  userId?: string;
166
- userGroups?: TreePaths[];
166
+ userGroups?: TreePath[];
167
167
  }
168
168
  export interface IGetTreeBasedPermissionParams {
169
169
  type: PermissionTypes;
@@ -199,3 +199,11 @@ export interface IGetInheritedRecordPermissionParams {
199
199
  permTreeNode: string;
200
200
  ctx: IQueryInfos;
201
201
  }
202
+ export interface IEstimateTreeValueRecordPermissionParams {
203
+ action: RecordPermissionsActions;
204
+ userId: string;
205
+ libraryId: string;
206
+ attributeId: string;
207
+ nodeId: string;
208
+ ctx: IQueryInfos;
209
+ }
@@ -1,16 +1,11 @@
1
- import { IAttributeRepo } from 'infra/attribute/attributeRepo';
2
- import { IPermissionRepo } from 'infra/permission/permissionRepo';
3
1
  import { ITreeRepo } from 'infra/tree/treeRepo';
4
- import { IValueRepo } from 'infra/value/valueRepo';
5
2
  import { IQueryInfos } from '_types/queryInfos';
6
- import { ICachesService } from '../../../infra/cache/cacheService';
7
3
  import { PermissionsActions, PermissionTypes } from '../../../_types/permissions';
8
4
  import { IDefaultPermissionHelper } from './defaultPermission';
9
5
  import { IPermissionByUserGroupsHelper } from './permissionByUserGroups';
10
6
  interface IGetGlobalPermissionParams {
11
7
  type: PermissionTypes;
12
8
  applyTo?: string;
13
- userId: string;
14
9
  action: PermissionsActions;
15
10
  getDefaultPermission?: (params?: IGetDefaultGlobalPermissionParams) => Promise<boolean> | boolean;
16
11
  }
@@ -35,11 +30,7 @@ export interface IGlobalPermissionHelper {
35
30
  export interface IGlobalPermissionDeps {
36
31
  'core.domain.permission.helpers.permissionByUserGroups': IPermissionByUserGroupsHelper;
37
32
  'core.domain.permission.helpers.defaultPermission': IDefaultPermissionHelper;
38
- 'core.infra.permission': IPermissionRepo;
39
- 'core.infra.attribute': IAttributeRepo;
40
33
  'core.infra.tree': ITreeRepo;
41
- 'core.infra.value': IValueRepo;
42
- 'core.infra.cache.cacheService': ICachesService;
43
34
  }
44
- export default function ({ 'core.domain.permission.helpers.permissionByUserGroups': permByUserGroupsHelper, 'core.domain.permission.helpers.defaultPermission': defaultPermHelper, 'core.infra.attribute': attributeRepo, 'core.infra.value': valueRepo, 'core.infra.tree': treeRepo, 'core.infra.cache.cacheService': cacheService }: IGlobalPermissionDeps): IGlobalPermissionHelper;
35
+ export default function ({ 'core.domain.permission.helpers.permissionByUserGroups': permByUserGroupsHelper, 'core.domain.permission.helpers.defaultPermission': defaultPermHelper, 'core.infra.tree': treeRepo }: IGlobalPermissionDeps): IGlobalPermissionHelper;
45
36
  export {};
@@ -1,26 +1,26 @@
1
- import { IPermissionRepo } from 'infra/permission/permissionRepo';
2
1
  import { IReducePermissionsArrayHelper } from './reducePermissionsArray';
3
2
  import { ISimplePermissionHelper } from './simplePermission';
4
3
  import { IDefaultPermissionHelper } from './defaultPermission';
5
- import { IElementAncestorsHelper } from 'domain/tree/helpers/elementAncestors';
6
- import { ITreeNode, TreePaths } from '../../../_types/tree';
4
+ import { TreePath } from '../../../_types/tree';
7
5
  import { PermissionsActions, PermissionTypes } from '../../../_types/permissions';
8
6
  import { IQueryInfos } from '../../../_types/queryInfos';
7
+ import { ICachesService } from '../../../infra/cache/cacheService';
8
+ import { IConfig } from '_types/config';
9
9
  export interface IPermissionByUserGroupsHelperDeps {
10
10
  'core.domain.permission.helpers.simplePermission': ISimplePermissionHelper;
11
11
  'core.domain.permission.helpers.reducePermissionsArray': IReducePermissionsArrayHelper;
12
12
  'core.domain.permission.helpers.defaultPermission': IDefaultPermissionHelper;
13
- 'core.domain.tree.helpers.elementAncestors': IElementAncestorsHelper;
14
- 'core.infra.permission'?: IPermissionRepo;
13
+ 'core.infra.cache.cacheService': ICachesService;
14
+ config: IConfig;
15
15
  }
16
16
  interface IGetPermissionByUserGroupsParams {
17
17
  type: PermissionTypes;
18
18
  action: PermissionsActions;
19
- userGroupsPaths: TreePaths[];
19
+ userGroupsPaths: TreePath[];
20
20
  applyTo?: string;
21
21
  treeTarget?: {
22
22
  tree: string;
23
- path: ITreeNode[];
23
+ path: TreePath;
24
24
  };
25
25
  getDefaultPermission?: () => Promise<boolean> | boolean;
26
26
  ctx: IQueryInfos;
@@ -2,19 +2,15 @@ import { IAttributeDomain } from 'domain/attribute/attributeDomain';
2
2
  import { IElementAncestorsHelper } from 'domain/tree/helpers/elementAncestors';
3
3
  import { IPermissionRepo } from 'infra/permission/permissionRepo';
4
4
  import { IQueryInfos } from '_types/queryInfos';
5
- import { ICachesService } from '../../../infra/cache/cacheService';
6
5
  import { IGetInheritedTreeBasedPermissionParams, IGetTreeBasedPermissionParams } from '../_types';
7
- import { IDefaultPermissionHelper } from './defaultPermission';
8
6
  import { IPermissionByUserGroupsHelper } from './permissionByUserGroups';
9
7
  import { IReducePermissionsArrayHelper } from './reducePermissionsArray';
10
8
  export interface ITreeBasedPermissionsDeps {
11
9
  'core.domain.attribute': IAttributeDomain;
12
10
  'core.domain.permission.helpers.permissionByUserGroups': IPermissionByUserGroupsHelper;
13
- 'core.domain.permission.helpers.defaultPermission': IDefaultPermissionHelper;
14
11
  'core.domain.permission.helpers.reducePermissionsArray': IReducePermissionsArrayHelper;
15
12
  'core.domain.tree.helpers.elementAncestors': IElementAncestorsHelper;
16
13
  'core.infra.permission': IPermissionRepo;
17
- 'core.infra.cache.cacheService': ICachesService;
18
14
  }
19
15
  export interface ITreeBasedPermissionHelper {
20
16
  getTreeBasedPermission(params: IGetTreeBasedPermissionParams, ctx: IQueryInfos): Promise<boolean>;
@@ -5,10 +5,12 @@ import { IDefaultPermissionHelper } from './helpers/defaultPermission';
5
5
  import { IPermissionByUserGroupsHelper } from './helpers/permissionByUserGroups';
6
6
  import { ITreeBasedPermissionHelper } from './helpers/treeBasedPermissions';
7
7
  import { ILibraryPermissionDomain } from './libraryPermissionDomain';
8
- import { IGetInheritedRecordPermissionParams, IGetRecordPermissionParams } from './_types';
8
+ import { IGetInheritedRecordPermissionParams, IGetRecordPermissionParams, IEstimateTreeValueRecordPermissionParams } from './_types';
9
+ import { ITreeRepo } from '../../infra/tree/treeRepo';
9
10
  export interface IRecordPermissionDomain {
10
11
  getRecordPermission(params: IGetRecordPermissionParams): Promise<boolean>;
11
12
  getInheritedRecordPermission(params: IGetInheritedRecordPermissionParams): Promise<boolean>;
13
+ evaluateTreeValueRecordPermission(params: IEstimateTreeValueRecordPermissionParams): Promise<boolean>;
12
14
  }
13
15
  export interface IRecordPermissionDomainDeps {
14
16
  'core.domain.permission.library': ILibraryPermissionDomain;
@@ -18,5 +20,6 @@ export interface IRecordPermissionDomainDeps {
18
20
  'core.domain.attribute': IAttributeDomain;
19
21
  'core.domain.helpers.getCoreEntityById': GetCoreEntityByIdFunc;
20
22
  'core.infra.value': IValueRepo;
23
+ 'core.infra.tree': ITreeRepo;
21
24
  }
22
25
  export default function (deps: IRecordPermissionDomainDeps): IRecordPermissionDomain;
@@ -12,6 +12,7 @@ export interface IFindRecordParams {
12
12
  withCount?: boolean;
13
13
  retrieveInactive?: boolean;
14
14
  fulltextSearch?: string;
15
+ ignorePermissions?: boolean;
15
16
  }
16
17
  export interface ICreateRecordParams {
17
18
  library: string;
@@ -0,0 +1,21 @@
1
+ import { IEventsManagerDomain } from 'domain/eventsManager/eventsManagerDomain';
2
+ import { ILibraryPermissionDomain } from 'domain/permission/libraryPermissionDomain';
3
+ import { IRecordRepo } from 'infra/record/recordRepo';
4
+ import { IQueryInfos } from '../../../_types/queryInfos';
5
+ import { ICreateRecordResult, ICreateRecordValueError } from '../_types';
6
+ export type IPreCreateRecordCallback = () => Promise<ICreateRecordValueError[]>;
7
+ export type CreateRecordHelper = (params: {
8
+ library: string;
9
+ /**
10
+ * Can be use to validate potential values to post create insert to record
11
+ */
12
+ preCreateCallback?: IPreCreateRecordCallback;
13
+ ctx: IQueryInfos;
14
+ }) => Promise<ICreateRecordResult>;
15
+ interface IDeps {
16
+ 'core.domain.eventsManager': IEventsManagerDomain;
17
+ 'core.domain.permission.library': ILibraryPermissionDomain;
18
+ 'core.infra.record': IRecordRepo;
19
+ }
20
+ export default function ({ 'core.domain.eventsManager': eventsManager, 'core.domain.permission.library': libraryPermissionDomain, 'core.infra.record': recordRepo }: IDeps): CreateRecordHelper;
21
+ export {};
@@ -0,0 +1,19 @@
1
+ import { IEventsManagerDomain } from 'domain/eventsManager/eventsManagerDomain';
2
+ import { IQueryInfos } from '../../../_types/queryInfos';
3
+ import { IRecordPermissionDomain } from 'domain/permission/recordPermissionDomain';
4
+ import { IValidateHelper } from 'domain/helpers/validate';
5
+ import { IRecordRepo } from 'infra/record/recordRepo';
6
+ import { ITreeRepo } from 'infra/tree/treeRepo';
7
+ import { IValueRepo } from 'infra/value/valueRepo';
8
+ import { IRecord } from '../../../_types/record';
9
+ export type DeleteRecordHelper = (library: string, id: string, ctx: IQueryInfos) => Promise<IRecord>;
10
+ interface IDeps {
11
+ 'core.domain.helpers.validate': IValidateHelper;
12
+ 'core.domain.eventsManager': IEventsManagerDomain;
13
+ 'core.domain.permission.record': IRecordPermissionDomain;
14
+ 'core.infra.record': IRecordRepo;
15
+ 'core.infra.tree': ITreeRepo;
16
+ 'core.infra.value': IValueRepo;
17
+ }
18
+ export default function ({ 'core.domain.eventsManager': eventsManager, 'core.domain.helpers.validate': validateHelper, 'core.domain.permission.record': recordPermissionDomain, 'core.infra.record': recordRepo, 'core.infra.tree': treeRepo, 'core.infra.value': valueRepo }: IDeps): DeleteRecordHelper;
19
+ export {};
@@ -19,6 +19,6 @@ export interface IGetAccessPermissionsValue {
19
19
  false: Array<ITreeNode['id']>;
20
20
  };
21
21
  }
22
- export type IGetAccessPermissions = (groupsIds: string[], library: string, deps: IAccessPermissionFilterDeps, ctx: IQueryInfos) => Promise<IGetAccessPermissionsValue[]>;
22
+ export type IGetAccessPermissions = (groupsIds: string[][], library: string, deps: IAccessPermissionFilterDeps, ctx: IQueryInfos) => Promise<IGetAccessPermissionsValue[]>;
23
23
  declare const getAccessPermissionsFilters: IGetAccessPermissions;
24
24
  export default getAccessPermissionsFilters;
@@ -1,2 +1,4 @@
1
+ export { default as createRecord } from './createRecord';
2
+ export { default as deleteRecord } from './deleteRecord';
1
3
  export { default as sendRecordUpdateEvent } from './sendRecordUpdateEvent';
2
4
  export { default as getAccessPermissionFilters } from './getAccessPermissionFilters';
@@ -11,7 +11,7 @@ import { IValueRepo } from 'infra/value/valueRepo';
11
11
  import { IUtils } from 'utils/utils';
12
12
  import * as Config from '_types/config';
13
13
  import { IListWithCursor } from '_types/list';
14
- import { IValue, IValuesOptions } from '_types/value';
14
+ import { ISaveValue, IValue, IValuesOptions } from '_types/value';
15
15
  import { ICachesService } from '../../infra/cache/cacheService';
16
16
  import { IQueryInfos } from '../../_types/queryInfos';
17
17
  import { IRecord, IRecordFilterLight, IRecordIdentity } from '../../_types/record';
@@ -22,12 +22,15 @@ import { ICreateRecordResult, IFindRecordParams } from './_types';
22
22
  import { IFormRepo } from 'infra/form/formRepo';
23
23
  import { IRecordAttributePermissionDomain } from '../permission/recordAttributePermissionDomain';
24
24
  import { IAttributePermissionDomain } from '../permission/attributePermissionDomain';
25
- import { IPermissionRepo } from 'infra/permission/permissionRepo';
25
+ import { IPermissionRepo } from '../../infra/permission/permissionRepo';
26
26
  import { IDefaultPermissionHelper } from 'domain/permission/helpers/defaultPermission';
27
+ import { DeleteRecordHelper } from './helpers/deleteRecord';
28
+ import { CreateRecordHelper } from './helpers/createRecord';
29
+ import { IElementAncestorsHelper } from 'domain/tree/helpers/elementAncestors';
27
30
  export interface IRecordDomain {
28
31
  createRecord(params: {
29
32
  library: string;
30
- values?: IValue[];
33
+ values?: ISaveValue[];
31
34
  verifyRequiredAttributes?: boolean;
32
35
  ctx: IQueryInfos;
33
36
  }): Promise<ICreateRecordResult>;
@@ -105,9 +108,12 @@ export interface IRecordDomainDeps {
105
108
  'core.domain.permission.helpers.defaultPermission': IDefaultPermissionHelper;
106
109
  'core.domain.helpers.getCoreEntityById': GetCoreEntityByIdFunc;
107
110
  'core.domain.helpers.validate': IValidateHelper;
111
+ 'core.domain.record.helpers.createRecord': CreateRecordHelper;
112
+ 'core.domain.record.helpers.deleteRecord': DeleteRecordHelper;
108
113
  'core.domain.record.helpers.sendRecordUpdateEvent': SendRecordUpdateEventHelper;
109
114
  'core.infra.library': ILibraryRepo;
110
115
  'core.infra.tree': ITreeRepo;
116
+ 'core.domain.tree.helpers.elementAncestors': IElementAncestorsHelper;
111
117
  'core.infra.value': IValueRepo;
112
118
  'core.infra.form': IFormRepo;
113
119
  'core.infra.permission': IPermissionRepo;
@@ -116,4 +122,4 @@ export interface IRecordDomainDeps {
116
122
  'core.utils': IUtils;
117
123
  translator: i18n;
118
124
  }
119
- export default function ({ config, 'core.infra.record': recordRepo, 'core.domain.attribute': attributeDomain, 'core.domain.value': valueDomain, 'core.domain.permission.record': recordPermissionDomain, 'core.domain.permission.library': libraryPermissionDomain, 'core.domain.permission.attribute': attrPermissionDomain, 'core.domain.permission.recordAttribute': recordAttributePermissionDomain, 'core.domain.permission.helpers.defaultPermission': defaultPermHelper, 'core.domain.helpers.getCoreEntityById': getCoreEntityById, 'core.domain.helpers.validate': validateHelper, 'core.domain.record.helpers.sendRecordUpdateEvent': sendRecordUpdateEvent, 'core.infra.library': libraryRepo, 'core.infra.tree': treeRepo, 'core.infra.value': valueRepo, 'core.infra.form': formRepo, 'core.infra.permission': permissionRepo, 'core.domain.eventsManager': eventsManager, 'core.infra.cache.cacheService': cacheService, 'core.utils': utils, translator }: IRecordDomainDeps): IRecordDomain;
125
+ export default function ({ config, 'core.infra.record': recordRepo, 'core.domain.attribute': attributeDomain, 'core.domain.value': valueDomain, 'core.domain.permission.record': recordPermissionDomain, 'core.domain.permission.library': libraryPermissionDomain, 'core.domain.permission.attribute': attrPermissionDomain, 'core.domain.permission.recordAttribute': recordAttributePermissionDomain, 'core.domain.permission.helpers.defaultPermission': defaultPermHelper, 'core.domain.helpers.getCoreEntityById': getCoreEntityById, 'core.domain.helpers.validate': validateHelper, 'core.domain.record.helpers.createRecord': createRecordHelper, 'core.domain.record.helpers.deleteRecord': deleteRecordHelper, 'core.domain.record.helpers.sendRecordUpdateEvent': sendRecordUpdateEvent, 'core.infra.library': libraryRepo, 'core.infra.tree': treeRepo, 'core.domain.tree.helpers.elementAncestors': elementAncestorsHelper, 'core.infra.value': valueRepo, 'core.infra.form': formRepo, 'core.infra.permission': permissionRepo, 'core.domain.eventsManager': eventsManager, 'core.infra.cache.cacheService': cacheService, 'core.utils': utils, translator }: IRecordDomainDeps): IRecordDomain;
@@ -11,7 +11,7 @@ import { IQueryInfos } from '_types/queryInfos';
11
11
  import { ICachesService } from '../../infra/cache/cacheService';
12
12
  import { IList, IPaginationParams } from '../../_types/list';
13
13
  import { IRecord } from '../../_types/record';
14
- import { IGetCoreTreesParams, ITree, ITreeElement, ITreeNode, ITreeNodeLight, TreePaths } from '../../_types/tree';
14
+ import { IGetCoreTreesParams, ITree, ITreeElement, ITreeNode, ITreeNodeLight, TreePath } from '../../_types/tree';
15
15
  import { IAttributeDomain } from '../attribute/attributeDomain';
16
16
  import { IRecordDomain } from '../record/recordDomain';
17
17
  import { IElementAncestorsHelper } from './helpers/elementAncestors';
@@ -112,7 +112,7 @@ export interface ITreeDomain {
112
112
  treeId: string;
113
113
  nodeId: string;
114
114
  ctx: IQueryInfos;
115
- }): Promise<TreePaths>;
115
+ }): Promise<TreePath>;
116
116
  /**
117
117
  * Retrieve all records linked to an element via given attribute
118
118
  */
@@ -3,10 +3,10 @@ import { IAttributeDomain } from 'domain/attribute/attributeDomain';
3
3
  import { IUtils } from 'utils/utils';
4
4
  import { IAttribute } from '_types/attribute';
5
5
  import { IQueryInfos } from '_types/queryInfos';
6
- import { IValue } from '_types/value';
6
+ import { ISaveValue } from '_types/value';
7
7
  interface IPrepareValueParams {
8
8
  attributeProps: IAttribute;
9
- value: IValue;
9
+ value: ISaveValue;
10
10
  library: string;
11
11
  recordId: string;
12
12
  infos?: IQueryInfos;
@@ -18,5 +18,5 @@ interface IPrepareValueParams {
18
18
  };
19
19
  ctx: IQueryInfos;
20
20
  }
21
- declare const _default: (params: IPrepareValueParams) => Promise<IValue[]>;
21
+ declare const _default: (params: IPrepareValueParams) => Promise<ISaveValue[]>;
22
22
  export default _default;
@@ -7,7 +7,7 @@ import { ITreeRepo } from 'infra/tree/treeRepo';
7
7
  import { IValueRepo } from 'infra/value/valueRepo';
8
8
  import { IQueryInfos } from '_types/queryInfos';
9
9
  import { IAttribute } from '../../../_types/attribute';
10
- import { IValue } from '../../../_types/value';
10
+ import { ISaveValue, IValue } from '../../../_types/value';
11
11
  interface ISaveOneValueDeps {
12
12
  valueRepo: IValueRepo;
13
13
  recordRepo: IRecordRepo;
@@ -17,5 +17,5 @@ interface ISaveOneValueDeps {
17
17
  attributeDomain: IAttributeDomain;
18
18
  versionProfileDomain: IVersionProfileDomain;
19
19
  }
20
- declare const _default: (library: string, recordId: string, attribute: IAttribute, value: IValue, deps: ISaveOneValueDeps, ctx: IQueryInfos) => Promise<IValue>;
20
+ declare const _default: (library: string, recordId: string, attribute: IAttribute, value: ISaveValue, deps: ISaveOneValueDeps, ctx: IQueryInfos) => Promise<IValue>;
21
21
  export default _default;
@@ -5,10 +5,10 @@ import { IValueRepo } from 'infra/value/valueRepo';
5
5
  import { IAttribute } from '../../../_types/attribute';
6
6
  import { ErrorFieldDetail } from '../../../_types/errors';
7
7
  import { IQueryInfos } from '../../../_types/queryInfos';
8
- import { IValue } from '../../../_types/value';
8
+ import { ISaveValue } from '../../../_types/value';
9
9
  interface IValidateValueParams {
10
10
  attributeProps: IAttribute;
11
- value: IValue;
11
+ value: ISaveValue;
12
12
  library: string;
13
13
  recordId?: string;
14
14
  infos?: IQueryInfos;
@@ -21,5 +21,5 @@ interface IValidateValueParams {
21
21
  };
22
22
  ctx: IQueryInfos;
23
23
  }
24
- declare const _default: (params: IValidateValueParams) => Promise<ErrorFieldDetail<IValue>>;
24
+ declare const _default: (params: IValidateValueParams) => Promise<ErrorFieldDetail<ISaveValue>>;
25
25
  export default _default;
@@ -14,13 +14,16 @@ import * as Config from '_types/config';
14
14
  import { IRecord } from '_types/record';
15
15
  import { IAttribute } from '../../_types/attribute';
16
16
  import { IQueryInfos } from '../../_types/queryInfos';
17
- import { IValue, IValuesOptions } from '../../_types/value';
17
+ import { ISaveValue, IValue, IValuesOptions } from '../../_types/value';
18
18
  import { IActionsListDomain } from '../actionsList/actionsListDomain';
19
19
  import { IAttributeDomain } from '../attribute/attributeDomain';
20
20
  import { IValidateHelper } from '../helpers/validate';
21
21
  import { IRecordAttributePermissionDomain } from '../permission/recordAttributePermissionDomain';
22
22
  import { IRecordPermissionDomain } from '../permission/recordPermissionDomain';
23
23
  import { IDeleteValueParams, IRunActionListParams } from './_types';
24
+ import { DeleteRecordHelper } from 'domain/record/helpers/deleteRecord';
25
+ import { CreateRecordHelper } from 'domain/record/helpers/createRecord';
26
+ import { IfLibraryJoinLinkAttribute } from '../attribute/helpers/ifLibraryJoinLinkAttribute';
24
27
  export interface ISaveBatchValueError {
25
28
  type: string;
26
29
  message: string;
@@ -58,7 +61,7 @@ export interface IValueDomain {
58
61
  library: string;
59
62
  recordId: string;
60
63
  attribute: string;
61
- value: IValue;
64
+ value: ISaveValue;
62
65
  ctx: IQueryInfos;
63
66
  }): Promise<IValue[]>;
64
67
  /**
@@ -70,7 +73,7 @@ export interface IValueDomain {
70
73
  saveValueBatch(params: {
71
74
  library: string;
72
75
  recordId: string;
73
- values: IValue[];
76
+ values: ISaveValue[];
74
77
  ctx: IQueryInfos;
75
78
  keepEmpty?: boolean;
76
79
  skipPermission?: boolean;
@@ -102,6 +105,9 @@ export interface IValueDomainDeps {
102
105
  'core.domain.tree.helpers.elementAncestors': IElementAncestorsHelper;
103
106
  'core.domain.tree.helpers.getDefaultElement': IGetDefaultElementHelper;
104
107
  'core.domain.record.helpers.sendRecordUpdateEvent': SendRecordUpdateEventHelper;
108
+ 'core.domain.record.helpers.createRecord': CreateRecordHelper;
109
+ 'core.domain.record.helpers.deleteRecord': DeleteRecordHelper;
110
+ 'core.domain.attribute.helpers.ifLibraryJoinLinkAttribute': IfLibraryJoinLinkAttribute;
105
111
  'core.domain.versionProfile': IVersionProfileDomain;
106
112
  'core.infra.record': IRecordRepo;
107
113
  'core.infra.tree': ITreeRepo;
@@ -110,5 +116,5 @@ export interface IValueDomainDeps {
110
116
  'core.utils.logger': winston.Winston;
111
117
  'core.domain.tree': ITreeDomain;
112
118
  }
113
- declare const valueDomain: ({ config, "core.domain.actionsList": actionsListDomain, "core.domain.attribute": attributeDomain, "core.domain.permission.recordAttribute": recordAttributePermissionDomain, "core.domain.permission.record": recordPermissionDomain, "core.domain.eventsManager": eventsManager, "core.domain.helpers.validate": validate, "core.domain.helpers.updateRecordLastModif": updateRecordLastModif, "core.domain.tree.helpers.elementAncestors": elementAncestors, "core.domain.tree.helpers.getDefaultElement": getDefaultElementHelper, "core.domain.record.helpers.sendRecordUpdateEvent": sendRecordUpdateEvent, "core.domain.versionProfile": versionProfileDomain, "core.infra.record": recordRepo, "core.infra.tree": treeRepo, "core.infra.value": valueRepo, "core.utils": utils, "core.utils.logger": logger }: IValueDomainDeps) => IValueDomain;
119
+ declare const valueDomain: ({ config, "core.domain.actionsList": actionsListDomain, "core.domain.attribute": attributeDomain, "core.domain.permission.recordAttribute": recordAttributePermissionDomain, "core.domain.permission.record": recordPermissionDomain, "core.domain.eventsManager": eventsManager, "core.domain.helpers.validate": validate, "core.domain.helpers.updateRecordLastModif": updateRecordLastModif, "core.domain.tree.helpers.elementAncestors": elementAncestors, "core.domain.tree.helpers.getDefaultElement": getDefaultElementHelper, "core.domain.record.helpers.sendRecordUpdateEvent": sendRecordUpdateEvent, "core.domain.record.helpers.createRecord": createRecordHelper, "core.domain.record.helpers.deleteRecord": deleteRecordHelper, "core.domain.attribute.helpers.ifLibraryJoinLinkAttribute": ifLibraryJoinLinkAttribute, "core.domain.versionProfile": versionProfileDomain, "core.infra.record": recordRepo, "core.infra.tree": treeRepo, "core.infra.value": valueRepo, "core.utils": utils, "core.utils.logger": logger }: IValueDomainDeps) => IValueDomain;
114
120
  export default valueDomain;
@@ -1,16 +1,19 @@
1
1
  import { IFilterTypesHelper } from 'infra/record/helpers/filterTypes';
2
2
  import { IUtils } from 'utils/utils';
3
+ import { AttributeTypes } from '../../_types/attribute';
3
4
  import { IDbService } from '../db/dbService';
4
5
  import { IDbUtils } from '../db/dbUtils';
5
6
  import { IAttributeTypeRepo } from './attributeTypesRepo';
6
7
  import { GetConditionPart } from './helpers/getConditionPart';
8
+ import { IAttributeSimpleLinkRepo } from './attributeSimpleLinkRepo';
9
+ export type IAttributeAdvancedLinkRepo = IAttributeTypeRepo<AttributeTypes.ADVANCED_LINK>;
7
10
  interface IDeps {
8
11
  'core.infra.db.dbService'?: IDbService;
9
12
  'core.infra.db.dbUtils'?: IDbUtils;
10
- 'core.infra.attributeTypes.attributeSimpleLink'?: IAttributeTypeRepo;
13
+ 'core.infra.attributeTypes.attributeSimpleLink'?: IAttributeSimpleLinkRepo;
11
14
  'core.infra.attributeTypes.helpers.getConditionPart'?: GetConditionPart;
12
15
  'core.infra.record.helpers.filterTypes'?: IFilterTypesHelper;
13
16
  'core.utils'?: IUtils;
14
17
  }
15
- export default function ({ 'core.infra.db.dbService': dbService, 'core.infra.db.dbUtils': dbUtils, 'core.infra.attributeTypes.attributeSimpleLink': attributeSimpleLinkRepo, 'core.infra.attributeTypes.helpers.getConditionPart': getConditionPart, 'core.infra.record.helpers.filterTypes': filterTypes, 'core.utils': utils }?: IDeps): IAttributeTypeRepo;
18
+ export default function ({ 'core.infra.db.dbService': dbService, 'core.infra.db.dbUtils': dbUtils, 'core.infra.attributeTypes.attributeSimpleLink': attributeSimpleLinkRepo, 'core.infra.attributeTypes.helpers.getConditionPart': getConditionPart, 'core.infra.record.helpers.filterTypes': filterTypes, 'core.utils': utils }?: IDeps): IAttributeAdvancedLinkRepo;
16
19
  export {};
@@ -1,5 +1,6 @@
1
1
  import { IDbUtils } from 'infra/db/dbUtils';
2
2
  import { IFilterTypesHelper } from 'infra/record/helpers/filterTypes';
3
+ import { AttributeTypes } from '../../_types/attribute';
3
4
  import { IDbService } from '../db/dbService';
4
5
  import { IAttributeTypeRepo } from './attributeTypesRepo';
5
6
  import { GetConditionPart } from './helpers/getConditionPart';
@@ -9,4 +10,5 @@ export interface IAttributeAdvancedRepoDeps {
9
10
  'core.infra.attributeTypes.helpers.getConditionPart': GetConditionPart;
10
11
  'core.infra.record.helpers.filterTypes': IFilterTypesHelper;
11
12
  }
12
- export default function ({ 'core.infra.db.dbService': dbService, 'core.infra.db.dbUtils': dbUtils, 'core.infra.attributeTypes.helpers.getConditionPart': getConditionPart, 'core.infra.record.helpers.filterTypes': filterTypesHelper }: IAttributeAdvancedRepoDeps): IAttributeTypeRepo;
13
+ export type IAttributeAdvancedRepo = IAttributeTypeRepo<AttributeTypes.ADVANCED>;
14
+ export default function ({ 'core.infra.db.dbService': dbService, 'core.infra.db.dbUtils': dbUtils, 'core.infra.attributeTypes.helpers.getConditionPart': getConditionPart, 'core.infra.record.helpers.filterTypes': filterTypesHelper }: IAttributeAdvancedRepoDeps): IAttributeAdvancedRepo;