@aristid/leav-types 0.0.7-7442e94 → 0.0.7-75afa811
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.
- package/apps/core/config/default.d.ts +1 -0
- package/apps/core/src/__tests__/e2e/api/getConditionPart/getConditionPart.test.d.ts +1 -0
- package/apps/core/src/__tests__/mockers/amqp.d.ts +1 -1
- package/apps/core/src/__tests__/mockers/logger.d.ts +4 -4
- package/apps/core/src/_types/config.d.ts +1 -0
- package/apps/core/src/_types/dbProfiler.d.ts +20 -1
- package/apps/core/src/_types/forms.d.ts +7 -7
- package/apps/core/src/_types/permissions.d.ts +2 -1
- package/apps/core/src/_types/queryInfos.d.ts +5 -0
- package/apps/core/src/_types/record.d.ts +4 -4
- package/apps/core/src/_types/tree.d.ts +1 -1
- package/apps/core/src/_types/value.d.ts +3 -2
- package/apps/core/src/app/application/applicationApp.d.ts +3 -7
- package/apps/core/src/app/auth/authApp.d.ts +4 -5
- package/apps/core/src/app/core/actionListApp.d.ts +2 -4
- package/apps/core/src/app/core/apiKeyApp/apiKeyApp.d.ts +2 -4
- package/apps/core/src/app/core/attributeApp/attributeApp.d.ts +2 -5
- package/apps/core/src/app/core/coreApp.d.ts +2 -4
- package/apps/core/src/app/core/exportApp.d.ts +2 -4
- package/apps/core/src/app/core/filesManagerApp.d.ts +3 -5
- package/apps/core/src/app/core/formApp/_types.d.ts +10 -0
- package/apps/core/src/app/core/formApp/formApp.d.ts +1 -4
- package/apps/core/src/app/core/globalSettingsApp.d.ts +3 -6
- package/apps/core/src/app/core/importApp.d.ts +2 -4
- package/apps/core/src/app/core/libraryApp/libraryApp.d.ts +2 -5
- package/apps/core/src/app/core/logApp.d.ts +2 -4
- package/apps/core/src/app/core/permissionApp/permissionApp.d.ts +2 -4
- package/apps/core/src/app/core/pluginsApp.d.ts +2 -3
- package/apps/core/src/app/core/recordApp/recordApp.d.ts +2 -5
- package/apps/core/src/app/core/tasksManagerApp.d.ts +2 -3
- package/apps/core/src/app/core/treeApp/treeApp.d.ts +5 -6
- package/apps/core/src/app/core/userDataApp.d.ts +2 -4
- package/apps/core/src/app/core/valueApp.d.ts +2 -4
- package/apps/core/src/app/core/versionProfileApp/versionProfileApp.d.ts +2 -4
- package/apps/core/src/app/core/viewApp.d.ts +2 -4
- package/apps/core/src/app/endpoint/endpointApp.d.ts +3 -8
- package/apps/core/src/app/graphql/graphqlApp.d.ts +8 -0
- package/apps/core/src/domain/filesManager/helpers/handleFileSystemEvent/handleMoveEvent.d.ts +1 -1
- package/apps/core/src/domain/form/formDomain.d.ts +9 -1
- package/apps/core/src/domain/import/importDomain.d.ts +1 -1
- package/apps/core/src/domain/indexationManager/indexationManagerDomain.d.ts +4 -2
- package/apps/core/src/domain/permission/_types.d.ts +10 -2
- package/apps/core/src/domain/permission/helpers/globalPermission.d.ts +1 -10
- package/apps/core/src/domain/permission/helpers/permissionByUserGroups.d.ts +7 -7
- package/apps/core/src/domain/permission/helpers/treeBasedPermissions.d.ts +0 -4
- package/apps/core/src/domain/permission/recordPermissionDomain.d.ts +4 -1
- package/apps/core/src/domain/tree/treeDomain.d.ts +2 -2
- package/apps/core/src/infra/record/helpers/getSearchVariableName.d.ts +1 -1
- package/apps/core/src/infra/record/recordRepo.d.ts +9 -0
- package/apps/core/src/infra/tree/treeRepo.d.ts +2 -2
- package/apps/core/src/interface/server.d.ts +7 -0
- package/apps/core/src/utils/dataloader.d.ts +8 -0
- package/apps/core/src/utils/helpers/getSystemQueryContext.d.ts +8 -0
- package/apps/core/src/utils/index.d.ts +1 -0
- package/libs/utils/src/types/forms.d.ts +2 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
|
-
info: jest.Mock<any, any
|
|
3
|
-
warn: jest.Mock<any, any
|
|
4
|
-
error: jest.Mock<any, any
|
|
5
|
-
debug: jest.Mock<any, any
|
|
2
|
+
info: jest.Mock<any, any>;
|
|
3
|
+
warn: jest.Mock<any, any>;
|
|
4
|
+
error: jest.Mock<any, any>;
|
|
5
|
+
debug: jest.Mock<any, any>;
|
|
6
6
|
};
|
|
7
7
|
export default _default;
|
|
@@ -2,7 +2,26 @@ import { AqlQuery } from 'arangojs/aql';
|
|
|
2
2
|
export interface IDbProfilerQuery {
|
|
3
3
|
count: number;
|
|
4
4
|
query: string | AqlQuery;
|
|
5
|
-
callers:
|
|
5
|
+
callers: Record<string, {
|
|
6
|
+
/**
|
|
7
|
+
* Stacktrace of caller
|
|
8
|
+
*/
|
|
9
|
+
stack: string;
|
|
10
|
+
count: number;
|
|
11
|
+
/**
|
|
12
|
+
* Stats for each call for that query
|
|
13
|
+
*/
|
|
14
|
+
stats: Array<{
|
|
15
|
+
/**
|
|
16
|
+
* Arangodb query execution time in ms
|
|
17
|
+
*/
|
|
18
|
+
executionTimeMs: number | null;
|
|
19
|
+
/**
|
|
20
|
+
* Time spent in nodejs to process the query in ms
|
|
21
|
+
*/
|
|
22
|
+
nodejsTimeMs: number;
|
|
23
|
+
}>;
|
|
24
|
+
}>;
|
|
6
25
|
}
|
|
7
26
|
export interface IDbProfiler {
|
|
8
27
|
totalCount: number;
|
|
@@ -18,11 +18,12 @@ export interface IRecordForm {
|
|
|
18
18
|
system: boolean;
|
|
19
19
|
recordId: string;
|
|
20
20
|
dependencyAttributes?: string[];
|
|
21
|
-
elements:
|
|
21
|
+
elements: IFormElement[];
|
|
22
22
|
sidePanel: IFormSidePanel;
|
|
23
23
|
}
|
|
24
24
|
export declare enum FormElementTypes {
|
|
25
25
|
field = "field",
|
|
26
|
+
tabs = "tabs",
|
|
26
27
|
layout = "layout"
|
|
27
28
|
}
|
|
28
29
|
export type IFormStrict = Required<IForm>;
|
|
@@ -41,16 +42,15 @@ export interface IFormElement {
|
|
|
41
42
|
uiElementType: string;
|
|
42
43
|
containerId: string;
|
|
43
44
|
settings?: IKeyValue<any>;
|
|
45
|
+
children?: IFormElement[];
|
|
44
46
|
}
|
|
45
|
-
export interface
|
|
46
|
-
|
|
47
|
+
export interface IFormElementValues {
|
|
48
|
+
id: string;
|
|
49
|
+
values: IValue[];
|
|
47
50
|
valueError?: string;
|
|
48
51
|
}
|
|
49
|
-
export type IFormElementWithValuesAndChildren = IFormElementWithValues & {
|
|
50
|
-
children: IFormElementWithValuesAndChildren[];
|
|
51
|
-
};
|
|
52
52
|
/**
|
|
53
|
-
* Accepted fields to filter
|
|
53
|
+
* Accepted fields to filter an attribute list
|
|
54
54
|
*/
|
|
55
55
|
export interface IFormFilterOptions extends ICoreEntityFilterOptions {
|
|
56
56
|
library?: string;
|
|
@@ -76,7 +76,8 @@ export declare enum AdminPermissionsActions {
|
|
|
76
76
|
CREATE_API_KEY = "admin_create_api_key",
|
|
77
77
|
EDIT_API_KEY = "admin_edit_api_key",
|
|
78
78
|
DELETE_API_KEY = "admin_delete_api_key",
|
|
79
|
-
EDIT_GLOBAL_SETTINGS = "admin_edit_global_settings"
|
|
79
|
+
EDIT_GLOBAL_SETTINGS = "admin_edit_global_settings",
|
|
80
|
+
ACCESS_LOGS = "admin_access_logs"
|
|
80
81
|
}
|
|
81
82
|
export type PermissionsActions = LibraryPermissionsActions | RecordPermissionsActions | RecordAttributePermissionsActions | AdminPermissionsActions | AttributePermissionsActions | TreePermissionsActions | TreeNodePermissionsActions | ApplicationPermissionsActions;
|
|
82
83
|
export interface ILabeledPermissionsAction {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import DataLoader from 'dataloader';
|
|
1
2
|
import type LeavError from 'errors/LeavError';
|
|
2
3
|
import { IDbProfiler } from './dbProfiler';
|
|
3
4
|
import { IValueVersion } from './value';
|
|
@@ -13,4 +14,8 @@ export interface IQueryInfos {
|
|
|
13
14
|
dbProfiler?: IDbProfiler;
|
|
14
15
|
trigger?: string;
|
|
15
16
|
errors?: Array<LeavError<unknown>>;
|
|
17
|
+
/**
|
|
18
|
+
* For request duration store dataloader on demand with getOrCreateDataLoaderInCtx
|
|
19
|
+
*/
|
|
20
|
+
dataLoaders?: Record<string, DataLoader<unknown, unknown>>;
|
|
16
21
|
}
|
|
@@ -75,10 +75,10 @@ export interface IQueryField {
|
|
|
75
75
|
export interface IRecordIdentity {
|
|
76
76
|
id: string;
|
|
77
77
|
library: ILibrary;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
getLabel?: () => Promise<string | null>;
|
|
79
|
+
getSubLabel?: () => Promise<string | null>;
|
|
80
|
+
getColor?: () => Promise<string | null>;
|
|
81
|
+
getPreview?: () => Promise<IPreview | null>;
|
|
82
82
|
}
|
|
83
83
|
export interface IRecordIdentityConf {
|
|
84
84
|
label?: string;
|
|
@@ -38,7 +38,7 @@ export type ITreeNodeLight = Pick<ITreeNode, 'id' | 'order'>;
|
|
|
38
38
|
export interface ITreeNodeWithTreeId extends ITreeNode {
|
|
39
39
|
treeId: string;
|
|
40
40
|
}
|
|
41
|
-
export type
|
|
41
|
+
export type TreePath = ITreeNode[];
|
|
42
42
|
export declare enum TreeBehavior {
|
|
43
43
|
STANDARD = "standard",
|
|
44
44
|
FILES = "files"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AnyPrimitive, Override } from '@leav/utils';
|
|
2
2
|
import { IDbEdge } from 'infra/db/_types';
|
|
3
3
|
import { IRecord } from './record';
|
|
4
|
-
import { ITreeNode,
|
|
4
|
+
import { ITreeNode, TreePath } from './tree';
|
|
5
5
|
import { EMPTY_VALUE } from 'infra/value/valueRepo';
|
|
6
6
|
import { AttributeTypes } from './attribute';
|
|
7
7
|
export type IValueFromGql = Override<Omit<IValue, 'version'>, {
|
|
@@ -34,6 +34,7 @@ export type EmptyValue = typeof EMPTY_VALUE;
|
|
|
34
34
|
interface ICommonGenericSaveValue {
|
|
35
35
|
/**
|
|
36
36
|
* The id of the edge for advanced, advanced link or tree values
|
|
37
|
+
* In case of advanced reverse link from simple link, this is the id of the linked record
|
|
37
38
|
*/
|
|
38
39
|
id_value?: string | null;
|
|
39
40
|
attribute?: string;
|
|
@@ -110,7 +111,7 @@ export interface IValuesOptions {
|
|
|
110
111
|
export interface IFindValueTree {
|
|
111
112
|
name: string;
|
|
112
113
|
currentIndex: number;
|
|
113
|
-
elements:
|
|
114
|
+
elements: TreePath;
|
|
114
115
|
}
|
|
115
116
|
export interface IValueEdge extends IDbEdge {
|
|
116
117
|
attribute: string;
|
|
@@ -1,21 +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
12
|
import { IGlobalSettingsDomain } from '../../domain/globalSettings/globalSettingsDomain';
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
getGraphQLSchema(): Promise<IAppGraphQLSchema>;
|
|
18
|
-
}
|
|
13
|
+
import { IServerRouteAppModule } from 'interface/server';
|
|
14
|
+
export type IApplicationApp = IGraphqlAppModule & IServerRouteAppModule;
|
|
19
15
|
export interface IApplicationAppDeps {
|
|
20
16
|
'core.app.graphql': IGraphqlApp;
|
|
21
17
|
'core.app.auth': IAuthApp;
|
|
@@ -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 {
|
|
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';
|
|
@@ -14,14 +13,14 @@ import { InitQueryContextFunc } from '../helpers/initQueryContext';
|
|
|
14
13
|
import { IConvertOIDCIdentifier } from '../helpers/convertOIDCIdentifier';
|
|
15
14
|
import { IncomingHttpHeaders } from 'http';
|
|
16
15
|
import { IRecordRepo } from '../../infra/record/recordRepo';
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
import { IGraphqlAppModule } from 'app/graphql/graphqlApp';
|
|
17
|
+
import { IServerRouteAppModule } from 'interface/server';
|
|
18
|
+
export interface IAuthApp extends IGraphqlAppModule, IServerRouteAppModule {
|
|
19
19
|
validateRequestToken(params: {
|
|
20
20
|
apiKey?: string;
|
|
21
21
|
headers: IncomingHttpHeaders;
|
|
22
22
|
cookies?: {};
|
|
23
23
|
}, res: Response<unknown>): Promise<ITokenUserData>;
|
|
24
|
-
registerRoute(app: Express): void;
|
|
25
24
|
authenticateWithOIDCService(req: IRequestWithContext, res: Response<unknown>): Promise<void | Response>;
|
|
26
25
|
}
|
|
27
26
|
export interface IAuthAppDeps {
|
|
@@ -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
|
-
|
|
6
|
-
|
|
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 {
|
|
4
|
-
export
|
|
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 {
|
|
10
|
-
import { IGraphqlApp } from '../../graphql/graphqlApp';
|
|
9
|
+
import { IGraphqlAppModule, IGraphqlApp } from '../../graphql/graphqlApp';
|
|
11
10
|
import { ICoreApp } from '../coreApp';
|
|
12
|
-
export
|
|
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 {
|
|
3
|
-
export
|
|
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
|
-
|
|
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
|
}
|
|
@@ -5,9 +5,6 @@ import { ILibraryDomain } from 'domain/library/libraryDomain';
|
|
|
5
5
|
import { IUtils } from 'utils/utils';
|
|
6
6
|
import { IAppGraphQLSchema } from '_types/graphql';
|
|
7
7
|
import { IfLibraryJoinLinkAttribute } from 'domain/attribute/helpers/ifLibraryJoinLinkAttribute';
|
|
8
|
-
export interface ICoreFormApp {
|
|
9
|
-
getGraphQLSchema(): IAppGraphQLSchema;
|
|
10
|
-
}
|
|
11
8
|
interface IDeps {
|
|
12
9
|
'core.domain.attribute': IAttributeDomain;
|
|
13
10
|
'core.domain.form': IFormDomain;
|
|
@@ -17,6 +14,6 @@ interface IDeps {
|
|
|
17
14
|
'core.utils': IUtils;
|
|
18
15
|
}
|
|
19
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): {
|
|
20
|
-
getGraphQLSchema(): IAppGraphQLSchema
|
|
17
|
+
getGraphQLSchema(): Promise<IAppGraphQLSchema>;
|
|
21
18
|
};
|
|
22
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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 {
|
|
8
|
-
|
|
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 {
|
|
8
|
-
import { IGraphqlApp } from '../../graphql/graphqlApp';
|
|
7
|
+
import { IGraphqlAppModule, IGraphqlApp } from '../../graphql/graphqlApp';
|
|
9
8
|
import { ICoreApp } from '../coreApp';
|
|
10
|
-
export
|
|
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
|
-
|
|
11
|
-
|
|
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
|
|
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
|
-
|
|
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 {
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
11
|
-
|
|
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 {
|
|
3
|
-
export
|
|
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 {
|
|
7
|
-
export
|
|
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 {
|
|
4
|
-
export
|
|
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
|
|
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 {
|
|
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
|
-
|
|
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;
|
package/apps/core/src/domain/filesManager/helpers/handleFileSystemEvent/handleMoveEvent.d.ts
CHANGED
|
@@ -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<
|
|
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 {
|
|
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?:
|
|
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.
|
|
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 {
|
|
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.
|
|
14
|
-
|
|
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:
|
|
19
|
+
userGroupsPaths: TreePath[];
|
|
20
20
|
applyTo?: string;
|
|
21
21
|
treeTarget?: {
|
|
22
22
|
tree: string;
|
|
23
|
-
path:
|
|
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;
|
|
@@ -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,
|
|
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<
|
|
115
|
+
}): Promise<TreePath>;
|
|
116
116
|
/**
|
|
117
117
|
* Retrieve all records linked to an element via given attribute
|
|
118
118
|
*/
|
|
@@ -3,6 +3,6 @@ import { IFilterTypesHelper } from './filterTypes';
|
|
|
3
3
|
interface IDeps {
|
|
4
4
|
'core.infra.record.helpers.filterTypes'?: IFilterTypesHelper;
|
|
5
5
|
}
|
|
6
|
-
export type GetSearchVariableName = (filter: IRecordFilterOption) => string;
|
|
6
|
+
export type GetSearchVariableName = (filter: IRecordFilterOption) => string | undefined;
|
|
7
7
|
export default function ({ 'core.infra.record.helpers.filterTypes': filterTypesHelper }: IDeps): GetSearchVariableName;
|
|
8
8
|
export {};
|
|
@@ -47,6 +47,15 @@ export interface IRecordRepo {
|
|
|
47
47
|
ctx: IQueryInfos;
|
|
48
48
|
accessPermissionFilters?: IGetAccessPermissionsValue[];
|
|
49
49
|
}): Promise<IListWithCursor<IRecord>>;
|
|
50
|
+
/**
|
|
51
|
+
* get record by recordId, return null if record not found
|
|
52
|
+
* NB: use internal dataloader to mutualize query when possible for a given ctx
|
|
53
|
+
*/
|
|
54
|
+
getRecord(params: {
|
|
55
|
+
libraryId: string;
|
|
56
|
+
recordId: string;
|
|
57
|
+
ctx: IQueryInfos;
|
|
58
|
+
}): Promise<IRecord | null>;
|
|
50
59
|
}
|
|
51
60
|
export interface IRecordRepoDeps {
|
|
52
61
|
'core.infra.db.dbService': IDbService;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IList, IPaginationParams } from '_types/list';
|
|
2
2
|
import { IQueryInfos } from '_types/queryInfos';
|
|
3
3
|
import { IRecord } from '_types/record';
|
|
4
|
-
import { IGetCoreTreesParams, ITree, ITreeElement, ITreeNode, ITreeNodeLight,
|
|
4
|
+
import { IGetCoreTreesParams, ITree, ITreeElement, ITreeNode, ITreeNodeLight, TreePath } from '_types/tree';
|
|
5
5
|
import { IDbService } from '../db/dbService';
|
|
6
6
|
import { IDbUtils } from '../db/dbUtils';
|
|
7
7
|
export interface ITreeRepo {
|
|
@@ -124,7 +124,7 @@ export interface ITreeRepo {
|
|
|
124
124
|
treeId: string;
|
|
125
125
|
nodeId: string;
|
|
126
126
|
ctx: IQueryInfos;
|
|
127
|
-
}): Promise<
|
|
127
|
+
}): Promise<TreePath>;
|
|
128
128
|
getLinkedRecords(params: {
|
|
129
129
|
treeId: string;
|
|
130
130
|
attribute: string;
|
|
@@ -3,6 +3,7 @@ import { IAuthApp } from 'app/auth/authApp';
|
|
|
3
3
|
import { ICoreApp } from 'app/core/coreApp';
|
|
4
4
|
import { IGraphqlApp } from 'app/graphql/graphqlApp';
|
|
5
5
|
import { AwilixContainer } from 'awilix';
|
|
6
|
+
import { Express } from 'express';
|
|
6
7
|
import { IUtils } from 'utils/utils';
|
|
7
8
|
import * as winston from 'winston';
|
|
8
9
|
import { IConfig } from '_types/config';
|
|
@@ -13,6 +14,12 @@ export interface IServer {
|
|
|
13
14
|
init(): Promise<void>;
|
|
14
15
|
initConsumers(): Promise<void>;
|
|
15
16
|
}
|
|
17
|
+
export interface IServerRouteAppModule {
|
|
18
|
+
/**
|
|
19
|
+
* @param app Express instance, can be used to extend the app
|
|
20
|
+
*/
|
|
21
|
+
registerRoute(app: Express): void;
|
|
22
|
+
}
|
|
16
23
|
interface IDeps {
|
|
17
24
|
config?: IConfig;
|
|
18
25
|
'core.interface.helpers.handleGraphqlError'?: HandleGraphqlErrorFunc;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import DataLoader from 'dataloader';
|
|
2
|
+
import { IQueryInfos } from '_types/queryInfos';
|
|
3
|
+
/**
|
|
4
|
+
* Get or create a DataLoader in the request context.
|
|
5
|
+
* Each usage (not each call) of this function should use a unique name to avoid conflicts among different DataLoaders.
|
|
6
|
+
* Name is used has key to store the DataLoader in ctx.dataLoaders.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getOrCreateDataLoaderInCtx<DL extends DataLoader<unknown, unknown>>(ctx: IQueryInfos, name: string, create: () => DL): DL;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IConfig } from '_types/config';
|
|
2
|
+
import { IQueryInfos } from '_types/queryInfos';
|
|
3
|
+
interface IDeps {
|
|
4
|
+
config?: IConfig;
|
|
5
|
+
}
|
|
6
|
+
export type GetSystemQueryContext = () => IQueryInfos;
|
|
7
|
+
export default function ({ config }: IDeps): GetSystemQueryContext;
|
|
8
|
+
export {};
|
|
@@ -5,7 +5,8 @@ export declare enum FormUIElementTypes {
|
|
|
5
5
|
TAB_FIELDS_CONTAINER = "tab_fields_container",
|
|
6
6
|
TEXT_BLOCK = "text_block",
|
|
7
7
|
TABS = "tabs",
|
|
8
|
-
FRAME = "frame"
|
|
8
|
+
FRAME = "frame",
|
|
9
|
+
LINK = "link"
|
|
9
10
|
}
|
|
10
11
|
export declare enum FormFieldTypes {
|
|
11
12
|
TEXT_INPUT = "input_field",
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aristid/leav-types",
|
|
3
|
-
"version": "0.0.7-
|
|
3
|
+
"version": "0.0.7-75afa811",
|
|
4
4
|
"description": "Shared Leav types",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"tscheck": "",
|
|
7
7
|
"test:ci": "",
|
|
8
8
|
"test:commit": "",
|
|
9
9
|
"publish-types": "npm publish --access public",
|
|
10
|
-
"generate": "yarn workspace core
|
|
10
|
+
"generate": "yarn workspace core build-types && mv ../../apps/core/dist-types/* . && rmdir ../../apps/core/dist-types",
|
|
11
11
|
"get-version": "jq -r '.version' package.json",
|
|
12
12
|
"set-version": "jq --arg v $1 '.version = $v' package.json > package.tmp.json && mv package.tmp.json package.json"
|
|
13
13
|
},
|