@aristid/leav-types 0.0.7-dbcccce → 0.0.7-dd6e343f

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 (115) hide show
  1. package/apps/core/config/default.d.ts +14 -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/actionsList.d.ts +6 -0
  8. package/apps/core/src/__tests__/mocks/attribute.d.ts +6 -2
  9. package/apps/core/src/__tests__/mocks/cache.d.ts +4 -0
  10. package/apps/core/src/__tests__/mocks/view.d.ts +1 -0
  11. package/apps/core/src/_constants/attributes.d.ts +1 -0
  12. package/apps/core/src/_constants/globalSettings.d.ts +1 -0
  13. package/apps/core/src/_types/actionsList.d.ts +2 -1
  14. package/apps/core/src/_types/attribute.d.ts +10 -2
  15. package/apps/core/src/_types/config.d.ts +31 -1
  16. package/apps/core/src/_types/dbProfiler.d.ts +20 -1
  17. package/apps/core/src/_types/errors.d.ts +3 -1
  18. package/apps/core/src/_types/forms.d.ts +17 -7
  19. package/apps/core/src/_types/globalSettings.d.ts +3 -0
  20. package/apps/core/src/_types/library.d.ts +5 -1
  21. package/apps/core/src/_types/permissions.d.ts +2 -1
  22. package/apps/core/src/_types/queryInfos.d.ts +6 -1
  23. package/apps/core/src/_types/record.d.ts +4 -4
  24. package/apps/core/src/_types/tree.d.ts +2 -1
  25. package/apps/core/src/_types/value.d.ts +66 -5
  26. package/apps/core/src/_types/views.d.ts +38 -43
  27. package/apps/core/src/app/application/applicationApp.d.ts +6 -8
  28. package/apps/core/src/app/auth/authApp.d.ts +7 -6
  29. package/apps/core/src/app/core/actionListApp.d.ts +2 -4
  30. package/apps/core/src/app/core/apiKeyApp/apiKeyApp.d.ts +2 -4
  31. package/apps/core/src/app/core/attributeApp/attributeApp.d.ts +2 -5
  32. package/apps/core/src/app/core/coreApp.d.ts +2 -4
  33. package/apps/core/src/app/core/exportApp.d.ts +2 -4
  34. package/apps/core/src/app/core/filesManagerApp.d.ts +3 -5
  35. package/apps/core/src/app/core/formApp/_types.d.ts +10 -0
  36. package/apps/core/src/app/core/formApp/formApp.d.ts +4 -5
  37. package/apps/core/src/app/core/globalSettingsApp.d.ts +3 -6
  38. package/apps/core/src/app/core/importApp.d.ts +2 -4
  39. package/apps/core/src/app/core/libraryApp/libraryApp.d.ts +2 -5
  40. package/apps/core/src/app/core/logApp.d.ts +2 -4
  41. package/apps/core/src/app/core/permissionApp/permissionApp.d.ts +2 -4
  42. package/apps/core/src/app/core/pluginsApp.d.ts +2 -3
  43. package/apps/core/src/app/core/recordApp/recordApp.d.ts +2 -5
  44. package/apps/core/src/app/core/tasksManagerApp.d.ts +2 -3
  45. package/apps/core/src/app/core/treeApp/treeApp.d.ts +5 -6
  46. package/apps/core/src/app/core/userDataApp.d.ts +2 -4
  47. package/apps/core/src/app/core/valueApp.d.ts +2 -4
  48. package/apps/core/src/app/core/versionProfileApp/versionProfileApp.d.ts +2 -4
  49. package/apps/core/src/app/core/viewApp.d.ts +5 -5
  50. package/apps/core/src/app/endpoint/endpointApp.d.ts +3 -8
  51. package/apps/core/src/app/graphql/graphqlApp.d.ts +8 -0
  52. package/apps/core/src/domain/attribute/attributeDomain.d.ts +2 -0
  53. package/apps/core/src/domain/attribute/helpers/ifLibraryJoinLinkAttribute.d.ts +11 -0
  54. package/apps/core/src/domain/attribute/helpers/ifLibraryJoinLinkAttribute.spec.d.ts +1 -0
  55. package/apps/core/src/domain/attribute/helpers/index.d.ts +1 -0
  56. package/apps/core/src/domain/export/exportDomain.d.ts +8 -2
  57. package/apps/core/src/domain/filesManager/helpers/handleFileSystemEvent/handleMoveEvent.d.ts +1 -1
  58. package/apps/core/src/domain/form/formDomain.d.ts +9 -1
  59. package/apps/core/src/domain/globalSettings/globalSettingsDomain.d.ts +5 -1
  60. package/apps/core/src/domain/helpers/calculationVariable/index.d.ts +2 -1
  61. package/apps/core/src/domain/import/importDomain.d.ts +1 -1
  62. package/apps/core/src/domain/indexationManager/indexationManagerDomain.d.ts +4 -2
  63. package/apps/core/src/domain/permission/_types.d.ts +11 -11
  64. package/apps/core/src/domain/permission/helpers/globalPermission.d.ts +4 -13
  65. package/apps/core/src/domain/permission/helpers/permissionByUserGroups.d.ts +24 -6
  66. package/apps/core/src/domain/permission/helpers/reducePermissionsArray.d.ts +1 -1
  67. package/apps/core/src/domain/permission/helpers/treeBasedPermissions.d.ts +0 -4
  68. package/apps/core/src/domain/permission/recordPermissionDomain.d.ts +4 -1
  69. package/apps/core/src/domain/permission/treeNodePermissionDomain.d.ts +2 -2
  70. package/apps/core/src/domain/record/_types.d.ts +4 -3
  71. package/apps/core/src/domain/record/helpers/createRecord.d.ts +22 -0
  72. package/apps/core/src/domain/record/helpers/deleteRecord.d.ts +19 -0
  73. package/apps/core/src/domain/record/helpers/getAccessPermissionFilters.d.ts +24 -0
  74. package/apps/core/src/domain/record/helpers/index.d.ts +3 -0
  75. package/apps/core/src/domain/record/recordDomain.d.ts +34 -3
  76. package/apps/core/src/domain/tree/treeDomain.d.ts +2 -2
  77. package/apps/core/src/domain/value/helpers/{canSaveValue.d.ts → canSaveRecordValue.d.ts} +3 -3
  78. package/apps/core/src/domain/value/helpers/isEmptyValue.d.ts +5 -0
  79. package/apps/core/src/domain/value/helpers/prepareValue.d.ts +3 -3
  80. package/apps/core/src/domain/value/helpers/saveOneValue.d.ts +2 -2
  81. package/apps/core/src/domain/value/helpers/validateValue.d.ts +4 -4
  82. package/apps/core/src/domain/value/valueDomain.d.ts +11 -4
  83. package/apps/core/src/domain/view/viewDomain.d.ts +1 -0
  84. package/apps/core/src/errors/ApplicationError.d.ts +1 -1
  85. package/apps/core/src/errors/LeavError.d.ts +9 -3
  86. package/apps/core/src/infra/attributeTypes/attributeAdvancedLinkRepo.d.ts +5 -2
  87. package/apps/core/src/infra/attributeTypes/attributeAdvancedRepo.d.ts +3 -1
  88. package/apps/core/src/infra/attributeTypes/attributeSimpleLinkRepo.d.ts +5 -2
  89. package/apps/core/src/infra/attributeTypes/attributeSimpleRepo.d.ts +3 -1
  90. package/apps/core/src/infra/attributeTypes/attributeTreeRepo.d.ts +3 -1
  91. package/apps/core/src/infra/attributeTypes/attributeTypesRepo.d.ts +54 -24
  92. package/apps/core/src/infra/attributeTypes/helpers/getConditionPart.d.ts +1 -1
  93. package/apps/core/src/infra/db/dbUtils.d.ts +1 -3
  94. package/apps/core/src/infra/db/migrations/005-viewSortToArray.d.ts +7 -0
  95. package/apps/core/src/infra/db/migrations/006-addRequiredAttributeProperty.d.ts +11 -0
  96. package/apps/core/src/infra/db/migrations/007-updateHexColor.d.ts +9 -0
  97. package/apps/core/src/infra/db/migrations/008-addSkeletonApp.d.ts +7 -0
  98. package/apps/core/src/infra/db/migrations/009-addDisplayMultiLinkOptAttributeProperty.d.ts +11 -0
  99. package/apps/core/src/infra/db/migrations/010-formSidePanel.d.ts +8 -0
  100. package/apps/core/src/infra/db/migrations/011-moveSkeletonApptoAppStudio.d.ts +7 -0
  101. package/apps/core/src/infra/oidc/oidcClientService.d.ts +3 -1
  102. package/apps/core/src/infra/permission/permissionRepo.d.ts +9 -1
  103. package/apps/core/src/infra/record/helpers/getSearchVariableName.d.ts +1 -1
  104. package/apps/core/src/infra/record/recordRepo.d.ts +11 -0
  105. package/apps/core/src/infra/tree/treeRepo.d.ts +4 -3
  106. package/apps/core/src/infra/value/valueRepo.d.ts +17 -10
  107. package/apps/core/src/infra/view/_types.d.ts +1 -0
  108. package/apps/core/src/interface/server.d.ts +7 -0
  109. package/apps/core/src/pluginsLoader.d.ts +1 -1
  110. package/apps/core/src/utils/dataloader.d.ts +8 -0
  111. package/apps/core/src/utils/helpers/getSystemQueryContext.d.ts +8 -0
  112. package/apps/core/src/utils/index.d.ts +1 -0
  113. package/apps/core/src/utils/utils.d.ts +1 -0
  114. package/libs/utils/src/types/forms.d.ts +8 -1
  115. package/package.json +19 -4
@@ -10,48 +10,43 @@ export declare enum ViewSizes {
10
10
  MEDIUM = "MEDIUM",
11
11
  BIG = "BIG"
12
12
  }
13
- declare global {
14
- interface IView extends ICoreEntity {
15
- shared?: boolean;
16
- created_by?: string;
17
- created_at?: number;
18
- modified_at?: number;
19
- library?: string;
20
- description?: ISystemTranslation;
21
- color?: string;
22
- display?: IViewDisplay;
23
- filters?: IRecordFilterLight[];
24
- sort?: IRecordSortLight;
25
- valuesVersions?: IViewValuesVersion;
26
- settings: IViewSettings;
27
- }
28
- interface IViewDisplay {
29
- type: ViewTypes;
30
- size: ViewSizes;
31
- }
32
- interface IViewSettingsNameVal {
33
- name: string;
34
- value: unknown;
35
- }
36
- type ViewFromGraphQL = Omit<IView, 'valuesVersions' | 'settings'> & {
37
- valuesVersions: IViewValuesVersionForGraphql[];
38
- settings: IViewSettingsNameVal[];
13
+ interface IViewDisplay {
14
+ type: ViewTypes;
15
+ size: ViewSizes;
16
+ }
17
+ interface IViewValuesVersion {
18
+ [treeId: string]: string;
19
+ }
20
+ export interface IView extends ICoreEntity {
21
+ shared?: boolean;
22
+ created_by?: string;
23
+ created_at?: number;
24
+ modified_at?: number;
25
+ library?: string;
26
+ description?: ISystemTranslation;
27
+ color?: string;
28
+ display?: IViewDisplay;
29
+ filters?: IRecordFilterLight[];
30
+ sort?: IRecordSortLight[];
31
+ valuesVersions?: IViewValuesVersion;
32
+ attributes?: string[];
33
+ }
34
+ export interface IViewValuesVersionForGraphql {
35
+ treeId: string;
36
+ treeNode: {
37
+ id: string;
39
38
  };
40
- interface IViewSettings {
41
- [key: string]: unknown;
42
- }
43
- interface IViewFilterOptions extends ICoreEntityFilterOptions {
44
- created_by?: string;
45
- library?: string;
46
- type?: ViewTypes;
47
- }
48
- interface IViewValuesVersion {
49
- [treeId: string]: string;
50
- }
51
- interface IViewValuesVersionForGraphql {
52
- treeId: string;
53
- treeNode: {
54
- id: string;
55
- };
56
- }
57
39
  }
40
+ export type ViewFromGraphQL = Omit<IView, 'valuesVersions' | 'settings'> & {
41
+ valuesVersions: IViewValuesVersionForGraphql[];
42
+ };
43
+ export type PartialViewFromGraphQL = Omit<IView, 'id' | 'valuesVersions' | 'settings'> & {
44
+ id: string;
45
+ valuesVersions: IViewValuesVersionForGraphql[];
46
+ };
47
+ export interface IViewFilterOptions extends ICoreEntityFilterOptions {
48
+ created_by?: string;
49
+ library?: string;
50
+ type?: ViewTypes;
51
+ }
52
+ export {};
@@ -1,20 +1,17 @@
1
1
  import { ICoreSubscriptionsHelpersApp } from 'app/core/helpers/subscriptions';
2
- import { IGraphqlApp } from 'app/graphql/graphqlApp';
2
+ import { IGraphqlAppModule, IGraphqlApp } from 'app/graphql/graphqlApp';
3
3
  import { InitQueryContextFunc } from 'app/helpers/initQueryContext';
4
4
  import { IEventsManagerDomain } from 'domain/eventsManager/eventsManagerDomain';
5
5
  import { IPermissionDomain } from 'domain/permission/permissionDomain';
6
6
  import { IRecordDomain } from 'domain/record/recordDomain';
7
- import { Express } from 'express';
8
7
  import { IUtils } from 'utils/utils';
9
8
  import winston from 'winston';
10
- import { IAppGraphQLSchema } from '_types/graphql';
11
9
  import { IApplicationDomain } from '../../domain/application/applicationDomain';
12
10
  import { ValidateRequestTokenFunc } from '../helpers/validateRequestToken';
13
11
  import { IAuthApp } from '../auth/authApp';
14
- export interface IApplicationApp {
15
- registerRoute(app: Express): void;
16
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
17
- }
12
+ import { IGlobalSettingsDomain } from '../../domain/globalSettings/globalSettingsDomain';
13
+ import { IServerRouteAppModule } from 'interface/server';
14
+ export type IApplicationApp = IGraphqlAppModule & IServerRouteAppModule;
18
15
  export interface IApplicationAppDeps {
19
16
  'core.app.graphql': IGraphqlApp;
20
17
  'core.app.auth': IAuthApp;
@@ -25,8 +22,9 @@ export interface IApplicationAppDeps {
25
22
  'core.domain.permission': IPermissionDomain;
26
23
  'core.domain.record': IRecordDomain;
27
24
  'core.domain.eventsManager': IEventsManagerDomain;
25
+ 'core.domain.globalSettings': IGlobalSettingsDomain;
28
26
  'core.utils.logger': winston.Winston;
29
27
  'core.utils': IUtils;
30
28
  config: any;
31
29
  }
32
- export default function ({ 'core.app.graphql': graphqlApp, 'core.app.auth': authApp, 'core.app.helpers.initQueryContext': initQueryContext, 'core.app.helpers.validateRequestToken': validateRequestToken, 'core.app.core.subscriptionsHelper': subscriptionsHelper, 'core.domain.application': applicationDomain, 'core.domain.permission': permissionDomain, 'core.domain.record': recordDomain, 'core.domain.eventsManager': eventsManagerDomain, 'core.utils.logger': logger, 'core.utils': utils, config }: IApplicationAppDeps): IApplicationApp;
30
+ export default function ({ 'core.app.graphql': graphqlApp, 'core.app.auth': authApp, 'core.app.helpers.initQueryContext': initQueryContext, 'core.app.helpers.validateRequestToken': validateRequestToken, 'core.app.core.subscriptionsHelper': subscriptionsHelper, 'core.domain.application': applicationDomain, 'core.domain.permission': permissionDomain, 'core.domain.record': recordDomain, 'core.domain.eventsManager': eventsManagerDomain, 'core.domain.globalSettings': globalSettings, 'core.utils.logger': logger, 'core.utils': utils, config }: IApplicationAppDeps): IApplicationApp;
@@ -2,9 +2,8 @@ import { IApiKeyDomain } from 'domain/apiKey/apiKeyDomain';
2
2
  import { IRecordDomain } from 'domain/record/recordDomain';
3
3
  import { IUserDomain } from 'domain/user/userDomain';
4
4
  import { IValueDomain } from 'domain/value/valueDomain';
5
- import { Express, Response } from 'express';
5
+ import { Response } from 'express';
6
6
  import { IConfig } from '_types/config';
7
- import { IAppGraphQLSchema } from '_types/graphql';
8
7
  import { ICachesService } from '../../infra/cache/cacheService';
9
8
  import { ITokenUserData } from '../../_types/auth';
10
9
  import { IRequestWithContext } from '../../_types/express';
@@ -13,19 +12,21 @@ import { IOIDCClientService } from '../../infra/oidc/oidcClientService';
13
12
  import { InitQueryContextFunc } from '../helpers/initQueryContext';
14
13
  import { IConvertOIDCIdentifier } from '../helpers/convertOIDCIdentifier';
15
14
  import { IncomingHttpHeaders } from 'http';
16
- export interface IAuthApp {
17
- getGraphQLSchema(): IAppGraphQLSchema;
15
+ import { IRecordRepo } from '../../infra/record/recordRepo';
16
+ import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
17
+ import { IServerRouteAppModule } from 'interface/server';
18
+ export interface IAuthApp extends IGraphqlAppModule, IServerRouteAppModule {
18
19
  validateRequestToken(params: {
19
20
  apiKey?: string;
20
21
  headers: IncomingHttpHeaders;
21
22
  cookies?: {};
22
23
  }, res: Response<unknown>): Promise<ITokenUserData>;
23
- registerRoute(app: Express): void;
24
24
  authenticateWithOIDCService(req: IRequestWithContext, res: Response<unknown>): Promise<void | Response>;
25
25
  }
26
26
  export interface IAuthAppDeps {
27
27
  'core.domain.value': IValueDomain;
28
28
  'core.domain.record': IRecordDomain;
29
+ 'core.infra.record': IRecordRepo;
29
30
  'core.domain.apiKey': IApiKeyDomain;
30
31
  'core.domain.user': IUserDomain;
31
32
  'core.infra.cache.cacheService': ICachesService;
@@ -35,4 +36,4 @@ export interface IAuthAppDeps {
35
36
  'core.app.helpers.convertOIDCIdentifier': IConvertOIDCIdentifier;
36
37
  config: IConfig;
37
38
  }
38
- export default function ({ 'core.domain.value': valueDomain, 'core.domain.record': recordDomain, 'core.domain.apiKey': apiKeyDomain, 'core.domain.user': userDomain, 'core.utils.logger': logger, 'core.infra.cache.cacheService': cacheService, 'core.infra.oidc.oidcClientService': oidcClientService, 'core.app.helpers.initQueryContext': initQueryContext, 'core.app.helpers.convertOIDCIdentifier': convertOIDCIdentifier, config }: IAuthAppDeps): IAuthApp;
39
+ export default function ({ 'core.domain.value': valueDomain, 'core.domain.record': recordDomain, 'core.infra.record': recordRepo, 'core.domain.apiKey': apiKeyDomain, 'core.domain.user': userDomain, 'core.utils.logger': logger, 'core.infra.cache.cacheService': cacheService, 'core.infra.oidc.oidcClientService': oidcClientService, 'core.app.helpers.initQueryContext': initQueryContext, 'core.app.helpers.convertOIDCIdentifier': convertOIDCIdentifier, config }: IAuthAppDeps): IAuthApp;
@@ -1,10 +1,8 @@
1
1
  import { IActionsListDomain } from 'domain/actionsList/actionsListDomain';
2
2
  import { i18n } from 'i18next';
3
- import { IAppGraphQLSchema } from '_types/graphql';
4
3
  import { IAppModule } from '_types/shared';
5
- export interface ICoreActionListApp extends IAppModule {
6
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
7
- }
4
+ import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
5
+ export type ICoreActionListApp = IAppModule & IGraphqlAppModule;
8
6
  interface IDeps {
9
7
  'core.domain.actionsList': IActionsListDomain;
10
8
  translator: i18n;
@@ -1,9 +1,7 @@
1
1
  import { IApiKeyDomain } from 'domain/apiKey/apiKeyDomain';
2
2
  import { IRecordDomain } from 'domain/record/recordDomain';
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.apiKey': IApiKeyDomain;
9
7
  'core.domain.record': IRecordDomain;
@@ -6,12 +6,9 @@ import { IRecordDomain } from 'domain/record/recordDomain';
6
6
  import { ITreeDomain } from 'domain/tree/treeDomain';
7
7
  import { IVersionProfileDomain } from 'domain/versionProfile/versionProfileDomain';
8
8
  import { IUtils } from 'utils/utils';
9
- import { IAppGraphQLSchema } from '_types/graphql';
10
- import { IGraphqlApp } from '../../graphql/graphqlApp';
9
+ import { IGraphqlAppModule, IGraphqlApp } from '../../graphql/graphqlApp';
11
10
  import { ICoreApp } from '../coreApp';
12
- export interface ICoreAttributeApp {
13
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
14
- }
11
+ export type ICoreAttributeApp = IGraphqlAppModule;
15
12
  interface IDeps {
16
13
  'core.domain.attribute': IAttributeDomain;
17
14
  'core.domain.library': ILibraryDomain;
@@ -3,12 +3,10 @@ import { ICoreDomain } from 'domain/core/coreDomain';
3
3
  import { IEventsManagerDomain } from 'domain/eventsManager/eventsManagerDomain';
4
4
  import { GraphQLScalarType } from 'graphql';
5
5
  import { i18n } from 'i18next';
6
- import { IAppGraphQLSchema } from '_types/graphql';
7
6
  import { IAppModule } from '_types/shared';
8
7
  import { ISystemTranslation } from '_types/systemTranslation';
9
- import { IGraphqlApp } from '../graphql/graphqlApp';
10
- export interface ICoreApp extends IAppModule {
11
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
8
+ import { IGraphqlAppModule, IGraphqlApp } from '../graphql/graphqlApp';
9
+ export interface ICoreApp extends IAppModule, IGraphqlAppModule {
12
10
  filterSysTranslationField(fieldData: ISystemTranslation, requestedLangs: string[]): ISystemTranslation | null;
13
11
  initPubSubEventsConsumer(): Promise<void>;
14
12
  }
@@ -1,8 +1,6 @@
1
1
  import { IExportDomain } from 'domain/export/exportDomain';
2
- import { IAppGraphQLSchema } from '_types/graphql';
3
- export interface ICoreExportApp {
4
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
5
- }
2
+ import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
3
+ export type ICoreExportApp = IGraphqlAppModule;
6
4
  interface IDeps {
7
5
  'core.domain.export': IExportDomain;
8
6
  }
@@ -1,14 +1,12 @@
1
1
  import { InitQueryContextFunc } from 'app/helpers/initQueryContext';
2
2
  import { IEventsManagerDomain } from 'domain/eventsManager/eventsManagerDomain';
3
- import { Express } from 'express';
4
3
  import { IConfig } from '_types/config';
5
- import { IAppGraphQLSchema } from '_types/graphql';
6
4
  import { IFilesManagerDomain } from '../../domain/filesManager/filesManagerDomain';
7
5
  import { ValidateRequestTokenFunc } from '../helpers/validateRequestToken';
8
- export interface IFilesManagerApp {
6
+ import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
7
+ import { IServerRouteAppModule } from 'interface/server';
8
+ export interface IFilesManagerApp extends IGraphqlAppModule, IServerRouteAppModule {
9
9
  init(): Promise<void>;
10
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
11
- registerRoute(app: Express): void;
12
10
  }
13
11
  interface IDeps {
14
12
  'core.app.helpers.initQueryContext': InitQueryContextFunc;
@@ -29,6 +29,16 @@ export interface IGetRecordFormArgs {
29
29
  treeNodeId: string;
30
30
  }>;
31
31
  }
32
+ export interface IGetElementFormValuesArgs {
33
+ recordId: string;
34
+ libraryId: string;
35
+ formId: string;
36
+ version?: Array<{
37
+ treeId: string;
38
+ treeNodeId: string;
39
+ }>;
40
+ elementIds: string[];
41
+ }
32
42
  export interface ISaveFormArgs {
33
43
  form: IFormForGraphql;
34
44
  }
@@ -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,14 +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';
4
+ import { IAttributeDomain } from 'domain/attribute/attributeDomain';
5
+ import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
5
6
  interface IDeps {
6
7
  'core.domain.record': IRecordDomain;
7
8
  'core.domain.view': IViewDomain;
9
+ 'core.domain.attribute': IAttributeDomain;
8
10
  'core.utils': IUtils;
9
11
  }
10
- export interface IViewApp {
11
- getGraphQLSchema(): Promise<IAppGraphQLSchema>;
12
- }
13
- export default function ({ 'core.domain.view': viewDomain, 'core.domain.record': recordDomain, 'core.utils': utils }: IDeps): IViewApp;
12
+ export type IViewApp = IGraphqlAppModule;
13
+ export default function ({ 'core.domain.view': viewDomain, 'core.domain.record': recordDomain, 'core.domain.attribute': attributeDomain, 'core.utils': utils }: IDeps): IViewApp;
14
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;
@@ -57,6 +57,8 @@ export interface IAttributeDomain {
57
57
  attributeId: string;
58
58
  ctx: IQueryInfos;
59
59
  }): Promise<ILibrary[]>;
60
+ getFormAttributes(libraryId: string, formId: string, ctx: IQueryInfos): Promise<IAttribute[]>;
61
+ doesCompute(attrData: IAttribute): boolean;
60
62
  }
61
63
  export interface IAttributeDomainDeps {
62
64
  'core.infra.attribute': IAttributeRepo;
@@ -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';
@@ -19,12 +19,18 @@ export interface IExportParams {
19
19
  }
20
20
  export interface IExportDomain {
21
21
  exportExcel(params: IExportParams, task?: ITaskFuncParams): Promise<string>;
22
- exportData(jsonMapping: string, elements: Array<{
22
+ exportData(mapping: IExportMapping, elements: Array<{
23
23
  [libraryId: string]: string;
24
24
  }>, ctx: IQueryInfos): Promise<Array<{
25
- [mappingKey: string]: string;
25
+ [key: string]: any;
26
26
  }>>;
27
27
  }
28
+ export interface IExportMapping {
29
+ [key: string]: {
30
+ attribute: string;
31
+ rawValue?: boolean;
32
+ };
33
+ }
28
34
  export interface IExportDomainDeps {
29
35
  'core.domain.record': IRecordDomain;
30
36
  'core.domain.attribute': IAttributeDomain;