@aristid/leav-types 0.0.7-763e02a → 0.0.7-772f4dca

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 (99) hide show
  1. package/apps/core/config/default.d.ts +4 -1
  2. package/apps/core/config/test.d.ts +1 -0
  3. package/apps/core/src/__tests__/e2e/api/getConditionPart/getConditionPart.test.d.ts +1 -0
  4. package/apps/core/src/__tests__/e2e/api/joinLibraries/joinLibraries.test.d.ts +1 -0
  5. package/apps/core/src/__tests__/mockers/amqp.d.ts +8 -0
  6. package/apps/core/src/__tests__/mockers/logger.d.ts +7 -0
  7. package/apps/core/src/__tests__/mocks/attribute.d.ts +4 -1
  8. package/apps/core/src/__tests__/mocks/cache.d.ts +4 -0
  9. package/apps/core/src/_constants/attributes.d.ts +1 -0
  10. package/apps/core/src/_types/attribute.d.ts +8 -1
  11. package/apps/core/src/_types/config.d.ts +5 -1
  12. package/apps/core/src/_types/dbProfiler.d.ts +20 -1
  13. package/apps/core/src/_types/forms.d.ts +17 -7
  14. package/apps/core/src/_types/globalSettings.d.ts +2 -0
  15. package/apps/core/src/_types/library.d.ts +5 -1
  16. package/apps/core/src/_types/permissions.d.ts +2 -1
  17. package/apps/core/src/_types/queryInfos.d.ts +6 -1
  18. package/apps/core/src/_types/record.d.ts +4 -4
  19. package/apps/core/src/_types/tree.d.ts +2 -1
  20. package/apps/core/src/_types/value.d.ts +66 -5
  21. package/apps/core/src/_types/views.d.ts +4 -0
  22. package/apps/core/src/app/application/applicationApp.d.ts +3 -7
  23. package/apps/core/src/app/auth/authApp.d.ts +7 -6
  24. package/apps/core/src/app/core/actionListApp.d.ts +2 -4
  25. package/apps/core/src/app/core/apiKeyApp/apiKeyApp.d.ts +2 -4
  26. package/apps/core/src/app/core/attributeApp/attributeApp.d.ts +2 -5
  27. package/apps/core/src/app/core/coreApp.d.ts +2 -4
  28. package/apps/core/src/app/core/exportApp.d.ts +2 -4
  29. package/apps/core/src/app/core/filesManagerApp.d.ts +3 -5
  30. package/apps/core/src/app/core/formApp/_types.d.ts +10 -0
  31. package/apps/core/src/app/core/formApp/formApp.d.ts +4 -5
  32. package/apps/core/src/app/core/globalSettingsApp.d.ts +3 -6
  33. package/apps/core/src/app/core/importApp.d.ts +2 -4
  34. package/apps/core/src/app/core/libraryApp/libraryApp.d.ts +2 -5
  35. package/apps/core/src/app/core/logApp.d.ts +2 -4
  36. package/apps/core/src/app/core/permissionApp/permissionApp.d.ts +2 -4
  37. package/apps/core/src/app/core/pluginsApp.d.ts +2 -3
  38. package/apps/core/src/app/core/recordApp/recordApp.d.ts +2 -5
  39. package/apps/core/src/app/core/tasksManagerApp.d.ts +2 -3
  40. package/apps/core/src/app/core/treeApp/treeApp.d.ts +5 -6
  41. package/apps/core/src/app/core/userDataApp.d.ts +2 -4
  42. package/apps/core/src/app/core/valueApp.d.ts +2 -4
  43. package/apps/core/src/app/core/versionProfileApp/versionProfileApp.d.ts +2 -4
  44. package/apps/core/src/app/core/viewApp.d.ts +2 -4
  45. package/apps/core/src/app/endpoint/endpointApp.d.ts +3 -8
  46. package/apps/core/src/app/graphql/graphqlApp.d.ts +8 -0
  47. package/apps/core/src/domain/attribute/helpers/ifLibraryJoinLinkAttribute.d.ts +11 -0
  48. package/apps/core/src/domain/attribute/helpers/ifLibraryJoinLinkAttribute.spec.d.ts +1 -0
  49. package/apps/core/src/domain/attribute/helpers/index.d.ts +1 -0
  50. package/apps/core/src/domain/filesManager/helpers/handleFileSystemEvent/handleMoveEvent.d.ts +1 -1
  51. package/apps/core/src/domain/form/formDomain.d.ts +9 -1
  52. package/apps/core/src/domain/globalSettings/globalSettingsDomain.d.ts +5 -1
  53. package/apps/core/src/domain/helpers/calculationVariable/index.d.ts +2 -1
  54. package/apps/core/src/domain/import/importDomain.d.ts +1 -1
  55. package/apps/core/src/domain/indexationManager/indexationManagerDomain.d.ts +4 -2
  56. package/apps/core/src/domain/permission/_types.d.ts +11 -11
  57. package/apps/core/src/domain/permission/helpers/globalPermission.d.ts +1 -1
  58. package/apps/core/src/domain/permission/helpers/permissionByUserGroups.d.ts +22 -4
  59. package/apps/core/src/domain/permission/helpers/reducePermissionsArray.d.ts +1 -1
  60. package/apps/core/src/domain/permission/recordPermissionDomain.d.ts +4 -1
  61. package/apps/core/src/domain/record/_types.d.ts +4 -3
  62. package/apps/core/src/domain/record/helpers/createRecord.d.ts +21 -0
  63. package/apps/core/src/domain/record/helpers/deleteRecord.d.ts +19 -0
  64. package/apps/core/src/domain/record/helpers/getAccessPermissionFilters.d.ts +24 -0
  65. package/apps/core/src/domain/record/helpers/index.d.ts +3 -0
  66. package/apps/core/src/domain/record/recordDomain.d.ts +23 -3
  67. package/apps/core/src/domain/tree/treeDomain.d.ts +2 -2
  68. package/apps/core/src/domain/value/helpers/{canSaveValue.d.ts → canSaveRecordValue.d.ts} +3 -3
  69. package/apps/core/src/domain/value/helpers/isEmptyValue.d.ts +5 -0
  70. package/apps/core/src/domain/value/helpers/prepareValue.d.ts +3 -3
  71. package/apps/core/src/domain/value/helpers/saveOneValue.d.ts +2 -2
  72. package/apps/core/src/domain/value/helpers/validateValue.d.ts +4 -4
  73. package/apps/core/src/domain/value/valueDomain.d.ts +11 -4
  74. package/apps/core/src/errors/LeavError.d.ts +6 -0
  75. package/apps/core/src/infra/attributeTypes/attributeAdvancedLinkRepo.d.ts +5 -2
  76. package/apps/core/src/infra/attributeTypes/attributeAdvancedRepo.d.ts +3 -1
  77. package/apps/core/src/infra/attributeTypes/attributeSimpleLinkRepo.d.ts +5 -2
  78. package/apps/core/src/infra/attributeTypes/attributeSimpleRepo.d.ts +3 -1
  79. package/apps/core/src/infra/attributeTypes/attributeTreeRepo.d.ts +3 -1
  80. package/apps/core/src/infra/attributeTypes/attributeTypesRepo.d.ts +29 -23
  81. package/apps/core/src/infra/db/dbUtils.d.ts +1 -3
  82. package/apps/core/src/infra/db/migrations/008-addSkeletonApp.d.ts +7 -0
  83. package/apps/core/src/infra/db/migrations/009-addDisplayMultiLinkOptAttributeProperty.d.ts +11 -0
  84. package/apps/core/src/infra/db/migrations/010-formSidePanel.d.ts +8 -0
  85. package/apps/core/src/infra/db/migrations/011-moveSkeletonApptoAppStudio.d.ts +7 -0
  86. package/apps/core/src/infra/oidc/oidcClientService.d.ts +3 -1
  87. package/apps/core/src/infra/permission/permissionRepo.d.ts +9 -1
  88. package/apps/core/src/infra/record/helpers/getSearchVariableName.d.ts +1 -1
  89. package/apps/core/src/infra/record/recordRepo.d.ts +2 -0
  90. package/apps/core/src/infra/tree/treeRepo.d.ts +3 -3
  91. package/apps/core/src/infra/value/valueRepo.d.ts +10 -5
  92. package/apps/core/src/interface/server.d.ts +7 -0
  93. package/apps/core/src/pluginsLoader.d.ts +1 -1
  94. package/apps/core/src/utils/dataloader.d.ts +8 -0
  95. package/apps/core/src/utils/helpers/getSystemQueryContext.d.ts +8 -0
  96. package/apps/core/src/utils/index.d.ts +1 -0
  97. package/apps/core/src/utils/utils.d.ts +1 -0
  98. package/libs/utils/src/types/forms.d.ts +8 -1
  99. package/package.json +5 -2
@@ -4,17 +4,16 @@ import { IFormDomain } from 'domain/form/formDomain';
4
4
  import { ILibraryDomain } from 'domain/library/libraryDomain';
5
5
  import { IUtils } from 'utils/utils';
6
6
  import { IAppGraphQLSchema } from '_types/graphql';
7
- export interface ICoreFormApp {
8
- getGraphQLSchema(): IAppGraphQLSchema;
9
- }
7
+ import { IfLibraryJoinLinkAttribute } from 'domain/attribute/helpers/ifLibraryJoinLinkAttribute';
10
8
  interface IDeps {
11
9
  'core.domain.attribute': IAttributeDomain;
12
10
  'core.domain.form': IFormDomain;
13
11
  'core.domain.library': ILibraryDomain;
14
12
  'core.app.helpers.convertVersionFromGqlFormat': ConvertVersionFromGqlFormatFunc;
13
+ 'core.domain.attribute.helpers.ifLibraryJoinLinkAttribute': IfLibraryJoinLinkAttribute;
15
14
  'core.utils': IUtils;
16
15
  }
17
- export default function ({ 'core.domain.attribute': attributeDomain, 'core.domain.form': formDomain, 'core.domain.library': libraryDomain, 'core.app.helpers.convertVersionFromGqlFormat': convertVersionFromGqlFormat, 'core.utils': utils }: IDeps): {
18
- getGraphQLSchema(): IAppGraphQLSchema;
16
+ export default function ({ 'core.domain.attribute': attributeDomain, 'core.domain.form': formDomain, 'core.domain.library': libraryDomain, 'core.app.helpers.convertVersionFromGqlFormat': convertVersionFromGqlFormat, 'core.domain.attribute.helpers.ifLibraryJoinLinkAttribute': ifLibraryJoinLinkAttribute, 'core.utils': utils }: IDeps): {
17
+ getGraphQLSchema(): Promise<IAppGraphQLSchema>;
19
18
  };
20
19
  export {};
@@ -1,16 +1,13 @@
1
1
  import { InitQueryContextFunc } from 'app/helpers/initQueryContext';
2
2
  import { IRecordDomain } from 'domain/record/recordDomain';
3
- import { Express } from 'express';
4
3
  import { IUtils } from 'utils/utils';
5
4
  import winston from 'winston';
6
5
  import { IConfig } from '_types/config';
7
- import { IAppGraphQLSchema } from '_types/graphql';
8
6
  import { IAppModule } from '_types/shared';
9
7
  import { IGlobalSettingsDomain } from '../../domain/globalSettings/globalSettingsDomain';
10
- export interface ICoreApp extends IAppModule {
11
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
12
- registerRoute(app: Express): void;
13
- }
8
+ import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
9
+ import { IServerRouteAppModule } from 'interface/server';
10
+ export type ICoreApp = IAppModule & IGraphqlAppModule & IServerRouteAppModule;
14
11
  interface IDeps {
15
12
  'core.app.helpers.initQueryContext': InitQueryContextFunc;
16
13
  'core.domain.globalSettings': IGlobalSettingsDomain;
@@ -4,10 +4,8 @@ import { IImportDomain } from 'domain/import/importDomain';
4
4
  import { IDbUtils } from 'infra/db/dbUtils';
5
5
  import { IUtils } from 'utils/utils';
6
6
  import * as Config from '_types/config';
7
- import { IAppGraphQLSchema } from '_types/graphql';
8
- import { IGraphqlApp } from '../graphql/graphqlApp';
9
- export interface ICoreImportApp {
10
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
7
+ import { IGraphqlAppModule, IGraphqlApp } from '../graphql/graphqlApp';
8
+ export interface ICoreImportApp extends IGraphqlAppModule {
11
9
  importConfig(filepath: string, clear: boolean): Promise<void>;
12
10
  importData(filepath: string): Promise<void>;
13
11
  }
@@ -4,12 +4,9 @@ import { IPermissionDomain } from 'domain/permission/permissionDomain';
4
4
  import { IRecordDomain } from 'domain/record/recordDomain';
5
5
  import { ITreeDomain } from 'domain/tree/treeDomain';
6
6
  import { IViewDomain } from 'domain/view/viewDomain';
7
- import { IAppGraphQLSchema } from '_types/graphql';
8
- import { IGraphqlApp } from '../../graphql/graphqlApp';
7
+ import { IGraphqlAppModule, IGraphqlApp } from '../../graphql/graphqlApp';
9
8
  import { ICoreApp } from '../coreApp';
10
- export interface ICoreLibraryApp {
11
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
12
- }
9
+ export type ICoreLibraryApp = IGraphqlAppModule;
13
10
  interface IDeps {
14
11
  'core.domain.library'?: ILibraryDomain;
15
12
  'core.domain.record'?: IRecordDomain;
@@ -5,11 +5,9 @@ import { ILibraryDomain } from 'domain/library/libraryDomain';
5
5
  import { ILogDomain } from 'domain/log/logDomain';
6
6
  import { ITreeDomain } from 'domain/tree/treeDomain';
7
7
  import { IVersionProfileDomain } from 'domain/versionProfile/versionProfileDomain';
8
- import { IAppGraphQLSchema } from '_types/graphql';
9
8
  import { IAppModule } from '_types/shared';
10
- export interface ICoreLogApp extends IAppModule {
11
- getGraphQLSchema(): IAppGraphQLSchema;
12
- }
9
+ import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
10
+ export type ICoreLogApp = IAppModule & IGraphqlAppModule;
13
11
  interface IDeps {
14
12
  'core.domain.log': ILogDomain;
15
13
  'core.domain.eventsManager': IEventsManagerDomain;
@@ -1,16 +1,14 @@
1
1
  import { IAttributeDomain } from 'domain/attribute/attributeDomain';
2
2
  import { IPermissionDomain } from 'domain/permission/permissionDomain';
3
- import { IAppGraphQLSchema } from '_types/graphql';
4
3
  import { IAppModule } from '_types/shared';
5
4
  import { PermissionTypes } from '../../../_types/permissions';
5
+ import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
6
6
  export interface IPluginPermission {
7
7
  name: string;
8
8
  type: PermissionTypes;
9
9
  applyOn?: string[];
10
10
  }
11
- export interface ICorePermissionApp extends IAppModule {
12
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
13
- }
11
+ export type ICorePermissionApp = IAppModule & IGraphqlAppModule;
14
12
  interface IDeps {
15
13
  'core.domain.permission'?: IPermissionDomain;
16
14
  'core.domain.attribute'?: IAttributeDomain;
@@ -1,9 +1,8 @@
1
1
  import { IPluginsDomain } from 'domain/plugins/pluginsDomain';
2
- import { IAppGraphQLSchema } from '_types/graphql';
3
2
  import { IPluginInfos } from '../../_types/plugin';
4
- export interface ICorePluginsApp {
3
+ import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
4
+ export interface ICorePluginsApp extends IGraphqlAppModule {
5
5
  registerPlugin(path: string, plugin: IPluginInfos): void;
6
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
7
6
  }
8
7
  interface IDeps {
9
8
  'core.domain.plugins': IPluginsDomain;
@@ -5,14 +5,11 @@ import { IPermissionDomain } from 'domain/permission/permissionDomain';
5
5
  import { IRecordDomain } from 'domain/record/recordDomain';
6
6
  import { ITreeDomain } from 'domain/tree/treeDomain';
7
7
  import { IUtils } from 'utils/utils';
8
- import { IAppGraphQLSchema } from '_types/graphql';
9
- import { IGraphqlApp } from '../../graphql/graphqlApp';
8
+ import { IGraphqlAppModule, IGraphqlApp } from '../../graphql/graphqlApp';
10
9
  import { ICoreSubscriptionsHelpersApp } from '../helpers/subscriptions';
11
10
  import { IIndexationManagerApp } from '../indexationManagerApp';
12
11
  import { IAttributeDomain } from 'domain/attribute/attributeDomain';
13
- export interface ICoreRecordApp {
14
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
15
- }
12
+ export type ICoreRecordApp = IGraphqlAppModule;
16
13
  interface IDeps {
17
14
  'core.domain.record': IRecordDomain;
18
15
  'core.domain.tree': ITreeDomain;
@@ -3,14 +3,13 @@ import { IRecordDomain } from 'domain/record/recordDomain';
3
3
  import { IUtils } from 'utils/utils';
4
4
  import winston from 'winston';
5
5
  import { IConfig } from '_types/config';
6
- import { IAppGraphQLSchema } from '_types/graphql';
7
6
  import { IPaginationParams, ISortParams } from '_types/list';
8
7
  import { ITasksManagerDomain } from '../../domain/tasksManager/tasksManagerDomain';
9
8
  import { TaskStatus } from '../../_types/tasksManager';
10
- export interface ITasksManagerApp {
9
+ import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
10
+ export interface ITasksManagerApp extends IGraphqlAppModule {
11
11
  initMaster(): Promise<NodeJS.Timer>;
12
12
  initWorker(): Promise<void>;
13
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
14
13
  }
15
14
  interface IDeps {
16
15
  'core.domain.tasksManager'?: ITasksManagerDomain;
@@ -2,14 +2,12 @@ import { IAttributeDomain } from 'domain/attribute/attributeDomain';
2
2
  import { IEventsManagerDomain } from 'domain/eventsManager/eventsManagerDomain';
3
3
  import { ILibraryDomain } from 'domain/library/libraryDomain';
4
4
  import { IPermissionDomain } from 'domain/permission/permissionDomain';
5
- import { IAppGraphQLSchema } from '_types/graphql';
6
5
  import { ITreeDomain } from '../../../domain/tree/treeDomain';
7
- import { IGraphqlApp } from '../../graphql/graphqlApp';
6
+ import { IGraphqlAppModule, IGraphqlApp } from '../../graphql/graphqlApp';
8
7
  import { ICoreApp } from '../coreApp';
9
8
  import { ICoreSubscriptionsHelpersApp } from '../helpers/subscriptions';
10
- export interface ITreeAttributeApp {
11
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
12
- }
9
+ import { IRecordPermissionDomain } from '../../../domain/permission/recordPermissionDomain';
10
+ export type ITreeAttributeApp = IGraphqlAppModule;
13
11
  interface IDeps {
14
12
  'core.domain.tree': ITreeDomain;
15
13
  'core.domain.attribute': IAttributeDomain;
@@ -19,6 +17,7 @@ interface IDeps {
19
17
  'core.app.core': ICoreApp;
20
18
  'core.app.core.subscriptionsHelper': ICoreSubscriptionsHelpersApp;
21
19
  'core.domain.library': ILibraryDomain;
20
+ 'core.domain.permission.record': IRecordPermissionDomain;
22
21
  }
23
- export default function ({ 'core.domain.tree': treeDomain, 'core.domain.attribute': attributeDomain, 'core.domain.permission': permissionDomain, 'core.domain.eventsManager': eventsManagerDomain, 'core.app.core': coreApp, 'core.app.graphql': graphqlApp, 'core.app.core.subscriptionsHelper': subscriptionsHelper, 'core.domain.library': libraryDomain }: IDeps): ITreeAttributeApp;
22
+ export default function ({ 'core.domain.tree': treeDomain, 'core.domain.attribute': attributeDomain, 'core.domain.permission': permissionDomain, 'core.domain.eventsManager': eventsManagerDomain, 'core.app.core': coreApp, 'core.app.graphql': graphqlApp, 'core.app.core.subscriptionsHelper': subscriptionsHelper, 'core.domain.library': libraryDomain, 'core.domain.permission.record': recordPermissionDomain }: IDeps): ITreeAttributeApp;
24
23
  export {};
@@ -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;
@@ -3,6 +3,8 @@ import { IAdminPermissionDomain } from 'domain/permission/adminPermissionDomain'
3
3
  import { IGlobalSettingsRepo } from 'infra/globalSettings/globalSettingsRepo';
4
4
  import { IGlobalSettings } from '_types/globalSettings';
5
5
  import { IQueryInfos } from '_types/queryInfos';
6
+ import { IUtils } from '../../utils/utils';
7
+ import { ICachesService } from '../../infra/cache/cacheService';
6
8
  export interface IGlobalSettingsDomain {
7
9
  saveSettings({ settings, ctx }: {
8
10
  settings: IGlobalSettings;
@@ -14,5 +16,7 @@ export interface IGlobalSettingsDomainDeps {
14
16
  'core.domain.permission.admin': IAdminPermissionDomain;
15
17
  'core.domain.eventsManager': IEventsManagerDomain;
16
18
  'core.infra.globalSettings': IGlobalSettingsRepo;
19
+ 'core.infra.cache.cacheService': ICachesService;
20
+ 'core.utils': IUtils;
17
21
  }
18
- export default function ({ 'core.domain.permission.admin': adminPermissionDomain, 'core.domain.eventsManager': eventsManagerDomain, 'core.infra.globalSettings': globalSettingsRepo }: IGlobalSettingsDomainDeps): IGlobalSettingsDomain;
22
+ export default function ({ 'core.domain.permission.admin': adminPermissionDomain, 'core.domain.eventsManager': eventsManagerDomain, 'core.infra.globalSettings': globalSettingsRepo, 'core.infra.cache.cacheService': cacheService, 'core.utils': utils }: IGlobalSettingsDomainDeps): IGlobalSettingsDomain;
@@ -1,12 +1,13 @@
1
1
  import { ActionsListValueType, IActionsListContext } from '_types/actionsList';
2
2
  import { IVariableFunctions } from '../calculationsVariableFunctions';
3
+ import { ITreeNode } from '../../../_types/tree';
3
4
  interface IDeps {
4
5
  'core.domain.helpers.calculationsVariableFunctions': IVariableFunctions;
5
6
  }
6
7
  export interface IVariableValue {
7
8
  recordId: string;
8
9
  library: string;
9
- payload: string | number | boolean | Record<string, any>;
10
+ payload: string | number | boolean | ITreeNode | Record<string, any>;
10
11
  raw_payload?: string | number | boolean | Record<string, any>;
11
12
  }
12
13
  export interface ICalculationVariable {
@@ -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 {
@@ -28,14 +28,6 @@ export interface IGetPermissionsByActionsParams {
28
28
  export type PermByActionsRes = {
29
29
  [name: string]: boolean | null;
30
30
  } | null;
31
- export interface IGetPermissionByUserGroupsParams {
32
- type: PermissionTypes;
33
- action: PermissionsActions;
34
- userGroupsPaths: TreePaths[];
35
- applyTo?: string;
36
- permissionTreeTarget?: IPermissionsTreeTarget;
37
- ctx: IQueryInfos;
38
- }
39
31
  export interface IGetAdminPermissionParams {
40
32
  action: AdminPermissionsActions;
41
33
  userId: string;
@@ -63,7 +55,7 @@ export interface IGetTreeLibraryPermissionParams {
63
55
  treeId: string;
64
56
  libraryId: string;
65
57
  userId: string;
66
- getDefaultPermission?: (params?: IGetDefaultTreeLibraryPermissionParams) => boolean | null;
58
+ getDefaultPermission?: (params?: IGetDefaultTreeLibraryPermissionParams) => Promise<boolean> | boolean;
67
59
  ctx: IQueryInfos;
68
60
  }
69
61
  export interface IGetApplicationPermissionParams {
@@ -171,7 +163,7 @@ export interface IGetDefaultPermissionParams {
171
163
  action?: any;
172
164
  applyTo?: string;
173
165
  userId?: string;
174
- userGroups?: TreePaths[];
166
+ userGroups?: TreePath[];
175
167
  }
176
168
  export interface IGetTreeBasedPermissionParams {
177
169
  type: PermissionTypes;
@@ -207,3 +199,11 @@ export interface IGetInheritedRecordPermissionParams {
207
199
  permTreeNode: string;
208
200
  ctx: IQueryInfos;
209
201
  }
202
+ export interface IEstimateTreeValueRecordPermissionParams {
203
+ action: RecordPermissionsActions;
204
+ userId: string;
205
+ libraryId: string;
206
+ attributeId: string;
207
+ nodeId: string;
208
+ ctx: IQueryInfos;
209
+ }
@@ -12,7 +12,7 @@ interface IGetGlobalPermissionParams {
12
12
  applyTo?: string;
13
13
  userId: string;
14
14
  action: PermissionsActions;
15
- getDefaultPermission?: (params?: IGetDefaultGlobalPermissionParams) => boolean;
15
+ getDefaultPermission?: (params?: IGetDefaultGlobalPermissionParams) => Promise<boolean> | boolean;
16
16
  }
17
17
  interface IGetInheritedGlobalPermissionParams {
18
18
  type: PermissionTypes;
@@ -1,14 +1,32 @@
1
1
  import { IPermissionRepo } from 'infra/permission/permissionRepo';
2
- import { IGetPermissionByUserGroupsParams } from '../_types';
3
2
  import { IReducePermissionsArrayHelper } from './reducePermissionsArray';
4
3
  import { ISimplePermissionHelper } from './simplePermission';
5
- interface IDeps {
4
+ import { IDefaultPermissionHelper } from './defaultPermission';
5
+ import { IElementAncestorsHelper } from 'domain/tree/helpers/elementAncestors';
6
+ import { ITreeNode, TreePath } from '../../../_types/tree';
7
+ import { PermissionsActions, PermissionTypes } from '../../../_types/permissions';
8
+ import { IQueryInfos } from '../../../_types/queryInfos';
9
+ export interface IPermissionByUserGroupsHelperDeps {
6
10
  'core.domain.permission.helpers.simplePermission': ISimplePermissionHelper;
7
11
  'core.domain.permission.helpers.reducePermissionsArray': IReducePermissionsArrayHelper;
12
+ 'core.domain.permission.helpers.defaultPermission': IDefaultPermissionHelper;
13
+ 'core.domain.tree.helpers.elementAncestors': IElementAncestorsHelper;
8
14
  'core.infra.permission'?: IPermissionRepo;
9
15
  }
16
+ interface IGetPermissionByUserGroupsParams {
17
+ type: PermissionTypes;
18
+ action: PermissionsActions;
19
+ userGroupsPaths: TreePath[];
20
+ applyTo?: string;
21
+ treeTarget?: {
22
+ tree: string;
23
+ path: ITreeNode[];
24
+ };
25
+ getDefaultPermission?: () => Promise<boolean> | boolean;
26
+ ctx: IQueryInfos;
27
+ }
10
28
  export interface IPermissionByUserGroupsHelper {
11
- getPermissionByUserGroups: (params: IGetPermissionByUserGroupsParams) => Promise<boolean | null>;
29
+ getPermissionByUserGroups: (params: IGetPermissionByUserGroupsParams) => Promise<boolean>;
12
30
  }
13
- export default function (deps: IDeps): IPermissionByUserGroupsHelper;
31
+ export default function (deps: IPermissionByUserGroupsHelperDeps): IPermissionByUserGroupsHelper;
14
32
  export {};
@@ -1,4 +1,4 @@
1
1
  export interface IReducePermissionsArrayHelper {
2
- reducePermissionsArray: (permissions: Array<boolean | null>) => boolean | null;
2
+ reducePermissionsArray: (permissions: boolean[]) => boolean;
3
3
  }
4
4
  export default function (): IReducePermissionsArrayHelper;
@@ -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;
@@ -1,4 +1,5 @@
1
1
  import { ErrorTypes } from '@leav/utils';
2
+ import { Errors } from '_types/errors';
2
3
  import { ICursorPaginationParams, IPaginationParams } from '_types/list';
3
4
  import { IRecord, IRecordFilterLight, IRecordSortLight } from '_types/record';
4
5
  import { IValue, IValuesOptions, IValueVersion } from '_types/value';
@@ -11,6 +12,7 @@ export interface IFindRecordParams {
11
12
  withCount?: boolean;
12
13
  retrieveInactive?: boolean;
13
14
  fulltextSearch?: string;
15
+ ignorePermissions?: boolean;
14
16
  }
15
17
  export interface ICreateRecordParams {
16
18
  library: string;
@@ -20,10 +22,9 @@ export interface ICreateRecordParams {
20
22
  };
21
23
  }
22
24
  export interface ICreateRecordValueError {
23
- attributeId: string;
24
- type: ErrorTypes;
25
+ attribute: string;
26
+ type: ErrorTypes | Errors;
25
27
  message: string;
26
- id_value?: string;
27
28
  input?: any;
28
29
  }
29
30
  export interface ICreateRecordResult {
@@ -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 {};