@aristid/leav-types 0.0.7-9ec784a → 0.0.7-a04a265e

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 (119) hide show
  1. package/apps/core/config/default.d.ts +16 -1
  2. package/apps/core/config/development.d.ts +1 -0
  3. package/apps/core/config/test.d.ts +2 -0
  4. package/apps/core/src/__tests__/e2e/api/e2eUtils.d.ts +1 -0
  5. package/apps/core/src/__tests__/e2e/api/getConditionPart/getConditionPart.test.d.ts +1 -0
  6. package/apps/core/src/__tests__/e2e/api/globalSetup.d.ts +6 -1
  7. package/apps/core/src/__tests__/e2e/api/joinLibraries/joinLibraries.test.d.ts +1 -0
  8. package/apps/core/src/__tests__/integration/globalSetup.d.ts +1 -0
  9. package/apps/core/src/__tests__/integration/globalSetupHook.d.ts +1 -0
  10. package/apps/core/src/__tests__/integration/infra/attributeAdvancedLinkRepo.test.d.ts +1 -0
  11. package/apps/core/src/__tests__/integration/infra/attributeAdvancedRepo.test.d.ts +1 -0
  12. package/apps/core/src/__tests__/integration/infra/attributeSimpleLinkRepo.test.d.ts +1 -0
  13. package/apps/core/src/__tests__/integration/infra/attributeSimpleRepo.test.d.ts +1 -0
  14. package/apps/core/src/__tests__/integration/infra/attributeTreeRepo.test.d.ts +1 -0
  15. package/apps/core/src/__tests__/integration/infra/integrationTestRepoUtils.d.ts +7 -0
  16. package/apps/core/src/__tests__/integration/infra/recordRepo.test.d.ts +1 -0
  17. package/apps/core/src/__tests__/integration/infra/treeRepo.test.d.ts +1 -0
  18. package/apps/core/src/__tests__/integration/teardown.d.ts +1 -0
  19. package/apps/core/src/__tests__/mockers/amqp.d.ts +8 -0
  20. package/apps/core/src/__tests__/mockers/logger.d.ts +7 -0
  21. package/apps/core/src/__tests__/mocks/attribute.d.ts +5 -2
  22. package/apps/core/src/__tests__/mocks/cache.d.ts +4 -0
  23. package/apps/core/src/_constants/attributes.d.ts +1 -0
  24. package/apps/core/src/_types/attribute.d.ts +9 -2
  25. package/apps/core/src/_types/config.d.ts +39 -2
  26. package/apps/core/src/_types/dbProfiler.d.ts +20 -1
  27. package/apps/core/src/_types/errors.d.ts +3 -1
  28. package/apps/core/src/_types/events.d.ts +45 -0
  29. package/apps/core/src/_types/forms.d.ts +10 -0
  30. package/apps/core/src/_types/globalSettings.d.ts +2 -0
  31. package/apps/core/src/_types/library.d.ts +12 -1
  32. package/apps/core/src/_types/permissions.d.ts +3 -1
  33. package/apps/core/src/_types/queryInfos.d.ts +6 -1
  34. package/apps/core/src/_types/record.d.ts +4 -4
  35. package/apps/core/src/_types/tree.d.ts +2 -1
  36. package/apps/core/src/_types/value.d.ts +66 -5
  37. package/apps/core/src/_types/views.d.ts +5 -1
  38. package/apps/core/src/app/application/applicationApp.d.ts +3 -7
  39. package/apps/core/src/app/auth/authApp.d.ts +7 -6
  40. package/apps/core/src/app/core/actionListApp.d.ts +2 -4
  41. package/apps/core/src/app/core/apiKeyApp/apiKeyApp.d.ts +2 -4
  42. package/apps/core/src/app/core/attributeApp/attributeApp.d.ts +2 -5
  43. package/apps/core/src/app/core/coreApp.d.ts +2 -4
  44. package/apps/core/src/app/core/exportApp.d.ts +2 -4
  45. package/apps/core/src/app/core/filesManagerApp.d.ts +3 -5
  46. package/apps/core/src/app/core/formApp/formApp.d.ts +6 -5
  47. package/apps/core/src/app/core/globalSettingsApp.d.ts +3 -6
  48. package/apps/core/src/app/core/importApp.d.ts +2 -4
  49. package/apps/core/src/app/core/libraryApp/libraryApp.d.ts +2 -5
  50. package/apps/core/src/app/core/logApp.d.ts +2 -4
  51. package/apps/core/src/app/core/permissionApp/permissionApp.d.ts +2 -4
  52. package/apps/core/src/app/core/pluginsApp.d.ts +2 -3
  53. package/apps/core/src/app/core/recordApp/recordApp.d.ts +2 -5
  54. package/apps/core/src/app/core/tasksManagerApp.d.ts +2 -3
  55. package/apps/core/src/app/core/treeApp/treeApp.d.ts +5 -6
  56. package/apps/core/src/app/core/userDataApp.d.ts +2 -4
  57. package/apps/core/src/app/core/valueApp.d.ts +2 -4
  58. package/apps/core/src/app/core/versionProfileApp/versionProfileApp.d.ts +2 -4
  59. package/apps/core/src/app/core/viewApp.d.ts +2 -4
  60. package/apps/core/src/app/endpoint/endpointApp.d.ts +3 -8
  61. package/apps/core/src/app/graphql/graphqlApp.d.ts +8 -0
  62. package/apps/core/src/domain/attribute/helpers/ifLibraryJoinLinkAttribute.d.ts +11 -0
  63. package/apps/core/src/domain/attribute/helpers/ifLibraryJoinLinkAttribute.spec.d.ts +1 -0
  64. package/apps/core/src/domain/attribute/helpers/index.d.ts +1 -0
  65. package/apps/core/src/domain/eventsManager/eventsManagerDomain.d.ts +3 -2
  66. package/apps/core/src/domain/filesManager/helpers/handleFileSystemEvent/handleMoveEvent.d.ts +1 -1
  67. package/apps/core/src/domain/globalSettings/globalSettingsDomain.d.ts +5 -1
  68. package/apps/core/src/domain/helpers/calculationVariable/index.d.ts +2 -1
  69. package/apps/core/src/domain/import/importDomain.d.ts +12 -2
  70. package/apps/core/src/domain/indexationManager/indexationManagerDomain.d.ts +4 -2
  71. package/apps/core/src/domain/log/logDomain.d.ts +3 -1
  72. package/apps/core/src/domain/permission/_types.d.ts +11 -11
  73. package/apps/core/src/domain/permission/helpers/globalPermission.d.ts +4 -13
  74. package/apps/core/src/domain/permission/helpers/permissionByUserGroups.d.ts +24 -6
  75. package/apps/core/src/domain/permission/helpers/reducePermissionsArray.d.ts +1 -1
  76. package/apps/core/src/domain/permission/helpers/treeBasedPermissions.d.ts +0 -4
  77. package/apps/core/src/domain/permission/permissionDomain.d.ts +1 -0
  78. package/apps/core/src/domain/permission/recordPermissionDomain.d.ts +4 -1
  79. package/apps/core/src/domain/permission/treeNodePermissionDomain.d.ts +2 -2
  80. package/apps/core/src/domain/record/_types.d.ts +4 -3
  81. package/apps/core/src/domain/record/helpers/createRecord.d.ts +22 -0
  82. package/apps/core/src/domain/record/helpers/deleteRecord.d.ts +19 -0
  83. package/apps/core/src/domain/record/helpers/getAccessPermissionFilters.d.ts +24 -0
  84. package/apps/core/src/domain/record/helpers/index.d.ts +3 -0
  85. package/apps/core/src/domain/record/recordDomain.d.ts +44 -3
  86. package/apps/core/src/domain/tree/treeDomain.d.ts +2 -2
  87. package/apps/core/src/domain/value/helpers/{canSaveValue.d.ts → canSaveRecordValue.d.ts} +3 -3
  88. package/apps/core/src/domain/value/helpers/isEmptyValue.d.ts +5 -0
  89. package/apps/core/src/domain/value/helpers/prepareValue.d.ts +3 -3
  90. package/apps/core/src/domain/value/helpers/saveOneValue.d.ts +2 -2
  91. package/apps/core/src/domain/value/helpers/validateValue.d.ts +4 -4
  92. package/apps/core/src/domain/value/valueDomain.d.ts +11 -4
  93. package/apps/core/src/errors/LeavError.d.ts +6 -0
  94. package/apps/core/src/infra/attributeTypes/attributeAdvancedLinkRepo.d.ts +5 -2
  95. package/apps/core/src/infra/attributeTypes/attributeAdvancedRepo.d.ts +3 -1
  96. package/apps/core/src/infra/attributeTypes/attributeSimpleLinkRepo.d.ts +5 -2
  97. package/apps/core/src/infra/attributeTypes/attributeSimpleRepo.d.ts +3 -1
  98. package/apps/core/src/infra/attributeTypes/attributeTreeRepo.d.ts +3 -1
  99. package/apps/core/src/infra/attributeTypes/attributeTypesRepo.d.ts +54 -24
  100. package/apps/core/src/infra/db/dbUtils.d.ts +1 -3
  101. package/apps/core/src/infra/db/migrations/008-addSkeletonApp.d.ts +7 -0
  102. package/apps/core/src/infra/db/migrations/009-addDisplayMultiLinkOptAttributeProperty.d.ts +11 -0
  103. package/apps/core/src/infra/db/migrations/010-formSidePanel.d.ts +8 -0
  104. package/apps/core/src/infra/db/migrations/011-moveSkeletonApptoAppStudio.d.ts +7 -0
  105. package/apps/core/src/infra/oidc/oidcClientService.d.ts +3 -1
  106. package/apps/core/src/infra/permission/permissionRepo.d.ts +9 -1
  107. package/apps/core/src/infra/record/helpers/getSearchVariableName.d.ts +1 -1
  108. package/apps/core/src/infra/record/recordRepo.d.ts +11 -0
  109. package/apps/core/src/infra/tree/treeRepo.d.ts +4 -3
  110. package/apps/core/src/infra/value/valueRepo.d.ts +17 -10
  111. package/apps/core/src/interface/server.d.ts +7 -0
  112. package/apps/core/src/pluginsLoader.d.ts +1 -1
  113. package/apps/core/src/utils/dataloader.d.ts +9 -0
  114. package/apps/core/src/utils/dataloader.spec.d.ts +1 -0
  115. package/apps/core/src/utils/helpers/getSystemQueryContext.d.ts +8 -0
  116. package/apps/core/src/utils/index.d.ts +1 -0
  117. package/apps/core/src/utils/utils.d.ts +1 -0
  118. package/libs/utils/src/types/forms.d.ts +7 -1
  119. package/package.json +5 -2
@@ -25,6 +25,14 @@ export declare namespace db {
25
25
  export declare namespace diskCache {
26
26
  let directory: string;
27
27
  }
28
+ export declare namespace dataLoaders {
29
+ namespace valueRepo {
30
+ namespace getValues {
31
+ let enableCache: string | boolean;
32
+ let useBatch: string | boolean;
33
+ }
34
+ }
35
+ }
28
36
  export declare namespace auth {
29
37
  let scheme: string;
30
38
  let key: string;
@@ -41,6 +49,9 @@ export declare namespace auth {
41
49
  let wellKnownEndpoint: string;
42
50
  let clientId: string;
43
51
  let postLogoutRedirectUri: string;
52
+ let skipLogoutConfirmationPage: string | boolean;
53
+ let idTokenUserClaim: string;
54
+ let enableAutoProvisioning: string | boolean;
44
55
  }
45
56
  let testApiKey: string;
46
57
  }
@@ -67,10 +78,13 @@ export declare namespace logs {
67
78
  let level: string;
68
79
  let transport: string;
69
80
  let destinationFile: string;
81
+ let useJsonFormat: string | boolean;
70
82
  }
71
83
  export declare namespace permissions {
72
84
  let _default_1: boolean;
73
85
  export { _default_1 as default };
86
+ let enableCache_1: string | boolean;
87
+ export { enableCache_1 as enableCache };
74
88
  }
75
89
  export declare namespace amqp {
76
90
  namespace connOpt {
@@ -166,6 +180,7 @@ export declare namespace _import {
166
180
  export let sizeLimit: string | number;
167
181
  export let groupData: string | number;
168
182
  export let maxStackedElements: string | number;
183
+ export let delayTaskExecMs: string | number;
169
184
  }
170
185
  export declare namespace preview {
171
186
  let directory_3: string;
@@ -186,5 +201,5 @@ export declare namespace elasticSearch {
186
201
  let url_1: string;
187
202
  export { url_1 as url };
188
203
  }
189
- export declare let pluginsPath: string;
204
+ export declare let pluginsPath: string | any[];
190
205
  export { _export as export, _import as import };
@@ -1,5 +1,6 @@
1
1
  export namespace server {
2
2
  let publicUrl: string;
3
+ let allowIntrospection: boolean;
3
4
  }
4
5
  export namespace logs {
5
6
  let level: string;
@@ -6,6 +6,7 @@ export namespace server {
6
6
  let password: string;
7
7
  let email: string;
8
8
  }
9
+ let allowIntrospection: boolean;
9
10
  }
10
11
  export namespace db {
11
12
  let name: string;
@@ -50,3 +51,4 @@ export let debug: boolean;
50
51
  export namespace redis {
51
52
  let database: number;
52
53
  }
54
+ export let pluginsPath: string[];
@@ -20,6 +20,7 @@ export declare function gqlSaveAttribute(params: {
20
20
  multipleValues?: boolean;
21
21
  reverseLink?: string;
22
22
  actionsList?: ActionsListConfig;
23
+ required?: boolean;
23
24
  }): Promise<any>;
24
25
  export declare function gqlSaveTree(id: string, label: string, libraries: string[]): Promise<any>;
25
26
  export declare function gqlCreateRecord(library: string): Promise<string>;
@@ -1,3 +1,8 @@
1
+ import { AwilixContainer } from 'awilix';
1
2
  import { IConfig } from '../../../_types/config';
2
- export declare const init: (conf: IConfig) => Promise<any>;
3
+ import { IDbUtils } from 'infra/db/dbUtils';
4
+ export declare const init: (conf: IConfig) => Promise<{
5
+ coreContainer: AwilixContainer;
6
+ dbUtils: IDbUtils;
7
+ }>;
3
8
  export declare function setup(): Promise<void>;
@@ -0,0 +1 @@
1
+ export declare function setup(): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function (): Promise<any>;
@@ -0,0 +1,7 @@
1
+ import { ILibraryRepo } from 'infra/library/libraryRepo';
2
+ import { IRecordRepo } from 'infra/record/recordRepo';
3
+ import { ITreeRepo } from 'infra/tree/treeRepo';
4
+ export declare const getCoreDep: <T>(path: any) => T;
5
+ export declare const getLibraryRepo: () => ILibraryRepo;
6
+ export declare const getRecordRepo: () => IRecordRepo;
7
+ export declare const getTreeRepo: () => ITreeRepo;
@@ -0,0 +1 @@
1
+ export default function (): Promise<void>;
@@ -0,0 +1,8 @@
1
+ declare const _default: {
2
+ consumer: {
3
+ channel: {
4
+ ack: jest.Mock<any, any>;
5
+ };
6
+ };
7
+ };
8
+ export default _default;
@@ -0,0 +1,7 @@
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>;
6
+ };
7
+ export default _default;
@@ -1,5 +1,6 @@
1
- import { AttributeFormats, AttributeTypes, IAttribute } from '../../_types/attribute';
1
+ import { AttributeFormats, AttributeTypes, MultiLinkDisplayOption, IAttribute } from '../../_types/attribute';
2
2
  export declare const mockAttrSimple: IAttribute;
3
+ export declare const mockUniqueAttrSimple: IAttribute;
3
4
  export declare const mockAttrId: IAttribute;
4
5
  export declare const mockAttrAdv: IAttribute;
5
6
  export declare const mockAttrAdvMultiVal: IAttribute;
@@ -16,6 +17,7 @@ export declare const mockAttrTree: {
16
17
  system?: boolean;
17
18
  readonly?: boolean;
18
19
  required?: boolean;
20
+ character_limit?: number;
19
21
  format?: AttributeFormats;
20
22
  linked_library?: string;
21
23
  embedded_fields?: import("../../_types/attribute").IEmbeddedAttribute[];
@@ -27,8 +29,9 @@ export declare const mockAttrTree: {
27
29
  values_list?: import("../../_types/attribute").IValuesListConf;
28
30
  reverse_link?: string | IAttribute;
29
31
  unique?: boolean;
30
- maxLength?: number;
31
32
  description?: import("../../_types/systemTranslation").ISystemTranslation;
33
+ settings?: import("../../_types/shared").IKeyValue<any>;
34
+ multi_link_display_option?: MultiLinkDisplayOption;
32
35
  label?: import("../../_types/systemTranslation").ISystemTranslation | string;
33
36
  };
34
37
  export declare const mockAttrTreeVersionable: IAttribute;
@@ -0,0 +1,4 @@
1
+ import { Mockify } from '@leav/utils';
2
+ import { ICacheService, ICachesService } from '../../infra/cache/cacheService';
3
+ export declare const mockCacheService: Mockify<ICacheService>;
4
+ export declare const mockCachesService: Mockify<ICachesService>;
@@ -0,0 +1 @@
1
+ export declare const baseAttributes: string[];
@@ -1,7 +1,7 @@
1
1
  import { ActionsListEvents, ActionsListIOTypes, ActionsListConfig } from './actionsList';
2
2
  import { ITreePermissionsConf } from './permissions';
3
3
  import { IRecord } from './record';
4
- import { IGetCoreEntitiesParams } from './shared';
4
+ import { IGetCoreEntitiesParams, IKeyValue } from './shared';
5
5
  import { ISystemTranslation } from './systemTranslation';
6
6
  import { ITreeElement } from './tree';
7
7
  import { IDateRangeValue } from './value';
@@ -9,6 +9,7 @@ export interface IAttribute extends ICoreEntity {
9
9
  system?: boolean;
10
10
  readonly?: boolean;
11
11
  required?: boolean;
12
+ character_limit?: number;
12
13
  type: AttributeTypes;
13
14
  format?: AttributeFormats;
14
15
  linked_library?: string;
@@ -22,8 +23,9 @@ export interface IAttribute extends ICoreEntity {
22
23
  values_list?: IValuesListConf;
23
24
  reverse_link?: string | IAttribute;
24
25
  unique?: boolean;
25
- maxLength?: number;
26
26
  description?: ISystemTranslation;
27
+ settings?: IKeyValue<any>;
28
+ multi_link_display_option?: MultiLinkDisplayOption;
27
29
  }
28
30
  export declare enum ValueVersionMode {
29
31
  SIMPLE = "simple",
@@ -87,6 +89,11 @@ export declare enum AttributeFormats {
87
89
  COLOR = "color",
88
90
  RICH_TEXT = "rich_text"
89
91
  }
92
+ export declare enum MultiLinkDisplayOption {
93
+ AVATAR = "avatar",
94
+ TAG = "tag",
95
+ BADGE_QTY = "badge_qty"
96
+ }
90
97
  export declare enum IOTypes {
91
98
  STRING = "string",
92
99
  NUMBER = "number",
@@ -5,6 +5,7 @@ export interface IConfig {
5
5
  server: IServer;
6
6
  db: IDb;
7
7
  diskCache: IDiskCache;
8
+ dataLoaders: IDataLoaders;
8
9
  auth: IAuth;
9
10
  mailer: IMailer;
10
11
  lang: ILang;
@@ -28,7 +29,7 @@ export interface IConfig {
28
29
  dbProfiler: IDbProfilerConfig;
29
30
  instanceId: string;
30
31
  elasticSearch: IElasticSearchConfig;
31
- pluginsPath: string;
32
+ pluginsPath: string[];
32
33
  }
33
34
  export declare enum CoreMode {
34
35
  SERVER = "server",
@@ -36,7 +37,8 @@ export declare enum CoreMode {
36
37
  FILES_MANAGER = "filesManager",
37
38
  INDEXATION_MANAGER = "indexationManager",
38
39
  TASKS_MANAGER_MASTER = "tasksManager:master",
39
- TASKS_MANAGER_WORKER = "tasksManager:worker"
40
+ TASKS_MANAGER_WORKER = "tasksManager:worker",
41
+ CLI = "cli"
40
42
  }
41
43
  export interface IServer {
42
44
  host: string;
@@ -75,11 +77,16 @@ export interface IAuth {
75
77
  wellKnownEndpoint?: string;
76
78
  clientId?: string;
77
79
  postLogoutRedirectUri?: string;
80
+ skipLogoutConfirmationPage?: boolean;
81
+ idTokenUserClaim?: string;
78
82
  } | {
79
83
  enable: true;
80
84
  wellKnownEndpoint: string;
81
85
  clientId: string;
82
86
  postLogoutRedirectUri: string;
87
+ skipLogoutConfirmationPage?: boolean;
88
+ idTokenUserClaim: string;
89
+ enableAutoProvisioning: boolean;
83
90
  };
84
91
  testApiKey?: string;
85
92
  }
@@ -103,6 +110,7 @@ export interface ILogs {
103
110
  }
104
111
  export interface IPermissions {
105
112
  default: boolean;
113
+ enableCache: boolean;
106
114
  }
107
115
  export interface IAmqp {
108
116
  connOpt: Options.Connect;
@@ -171,6 +179,35 @@ export interface IImport {
171
179
  sizeLimit: number;
172
180
  groupData: number;
173
181
  maxStackedElements: number;
182
+ /**
183
+ * Hack for leav deploy on nfs which is asynchronous for file write (by default)
184
+ * Wait this delay before submitting import data job
185
+ */
186
+ delayTaskExecMs: number;
187
+ }
188
+ /**
189
+ * Data loaders configuration for performances
190
+ */
191
+ export interface IDataLoaders {
192
+ valueRepo: {
193
+ getValues: {
194
+ /**
195
+ * @default false
196
+ *
197
+ * Enable cache inside data loaders in the query context
198
+ * Before enable, ensure that it has no side effects, for instance on saveValue/deleteValue mutations
199
+ */
200
+ enableCache: boolean;
201
+ /**
202
+ * @default true
203
+ *
204
+ * Enable: do batch arangodb query
205
+ * Disable: do one arangodb query per value, as before data loader use. For rollback if issue with batch query
206
+ * Temporary, to be removed in future
207
+ */
208
+ useBatch: boolean;
209
+ };
210
+ };
174
211
  }
175
212
  export interface IDiskCache {
176
213
  directory: string;
@@ -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: Set<string>;
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;
@@ -63,6 +63,7 @@ export declare enum Errors {
63
63
  PREVIEWS_SETTINGS_NOT_ALLOWED = "PREVIEWS_SETTINGS_NOT_ALLOWED",
64
64
  PROTECTED_ENDPOINT = "PROTECTED_ENDPOINT",
65
65
  READONLY_ATTRIBUTE = "READONLY_ATTRIBUTE",
66
+ RECORD_ACTIVATION_FAILED = "RECORD_ACTIVATION_FAILED",
66
67
  REQUIRED_ATTRIBUTE = "REQUIRED_ATTRIBUTE",
67
68
  REQUIRED_ATTRIBUTE_FORMAT = "REQUIRED_ATTRIBUTE_FORMAT",
68
69
  REQUIRED_ATTRIBUTE_LABEL = "REQUIRED_ATTRIBUTE_LABEL",
@@ -97,7 +98,8 @@ export declare enum Errors {
97
98
  UNKNOWN_VERSION_TREE = "UNKNOWN_VERSION_TREE",
98
99
  UNKNOWN_VIEW = "UNKNOWN_VIEW",
99
100
  USER_IS_NOT_VIEW_OWNER = "USER_IS_NOT_VIEW_OWNER",
100
- VALUE_NOT_UNIQUE = "VALUE_NOT_UNIQUE"
101
+ VALUE_NOT_UNIQUE = "VALUE_NOT_UNIQUE",
102
+ VALUE_EXCEEDS_CHARACTER_LIMIT = "VALUE_EXCEEDS_CHARACTER_LIMIT"
101
103
  }
102
104
  export interface IExtendedErrorMsg {
103
105
  msg: Errors | string;
@@ -0,0 +1,45 @@
1
+ import { EventAction, IDbPayload } from '@leav/utils';
2
+ import { IApiKey } from './apiKey';
3
+ import { IApplication } from './application';
4
+ import { IAttribute } from './attribute';
5
+ import { IGlobalSettings } from './globalSettings';
6
+ import { ILibraryDbEvent } from './library';
7
+ import { IRecord } from './record';
8
+ import { IValue } from './value';
9
+ import { IVersionProfile } from './versionProfile';
10
+ import { IPermission } from './permissions';
11
+ import { ITree } from './tree';
12
+ /**
13
+ * Maybe move all DBPayloadData types in @leav/utils type to allow event consumers outside core to use them
14
+ * without having to redeclare them. For now before and after are any in @leav/utils
15
+ */
16
+ export interface IDbPayloadInternal<DBPayloadAction extends EventAction> extends IDbPayload {
17
+ action: DBPayloadAction;
18
+ before?: IDBPayloadData<DBPayloadAction>;
19
+ after?: IDBPayloadData<DBPayloadAction>;
20
+ }
21
+ interface IDBPayloadDataMap {
22
+ [EventAction.VALUE_SAVE]: IValue;
23
+ [EventAction.VALUE_DELETE]: IValue;
24
+ [EventAction.ATTRIBUTE_SAVE]: IAttribute;
25
+ [EventAction.ATTRIBUTE_DELETE]: IAttribute;
26
+ [EventAction.RECORD_SAVE]: IRecord;
27
+ [EventAction.RECORD_DELETE]: IRecord;
28
+ [EventAction.API_KEY_SAVE]: IApiKey;
29
+ [EventAction.API_KEY_DELETE]: IApiKey;
30
+ [EventAction.APP_SAVE]: IApplication;
31
+ [EventAction.APP_DELETE]: IApplication;
32
+ [EventAction.GLOBAL_SETTINGS_SAVE]: IGlobalSettings;
33
+ [EventAction.LIBRARY_SAVE]: ILibraryDbEvent;
34
+ [EventAction.LIBRARY_DELETE]: ILibraryDbEvent;
35
+ [EventAction.VERSION_PROFILE_SAVE]: IVersionProfile;
36
+ [EventAction.VERSION_PROFILE_DELETE]: IVersionProfile;
37
+ [EventAction.TREE_ADD_ELEMENT]: string;
38
+ [EventAction.TREE_DELETE_ELEMENT]: string;
39
+ [EventAction.TREE_MOVE_ELEMENT]: string;
40
+ [EventAction.TREE_SAVE]: ITree;
41
+ [EventAction.TREE_DELETE]: ITree;
42
+ [EventAction.PERMISSION_SAVE]: IPermission;
43
+ }
44
+ type IDBPayloadData<DBPayloadAction extends EventAction> = DBPayloadAction extends keyof IDBPayloadDataMap ? IDBPayloadDataMap[DBPayloadAction] : never;
45
+ export {};
@@ -1,3 +1,4 @@
1
+ import { IAttribute } from './attribute';
1
2
  import { IKeyValue } from './shared';
2
3
  import { IValue } from './value';
3
4
  export interface IForm extends ICoreEntity {
@@ -5,6 +6,11 @@ export interface IForm extends ICoreEntity {
5
6
  system?: boolean;
6
7
  dependencyAttributes?: string[];
7
8
  elements?: IFormDependentElements[];
9
+ sidePanel: IFormSidePanel;
10
+ }
11
+ export interface IFormSidePanel {
12
+ enable: boolean;
13
+ isOpenByDefault: boolean;
8
14
  }
9
15
  export interface IRecordForm {
10
16
  id: string;
@@ -13,6 +19,7 @@ export interface IRecordForm {
13
19
  recordId: string;
14
20
  dependencyAttributes?: string[];
15
21
  elements: IFormElementWithValues[];
22
+ sidePanel: IFormSidePanel;
16
23
  }
17
24
  export declare enum FormElementTypes {
18
25
  field = "field",
@@ -48,3 +55,6 @@ export type IFormElementWithValuesAndChildren = IFormElementWithValues & {
48
55
  export interface IFormFilterOptions extends ICoreEntityFilterOptions {
49
56
  library?: string;
50
57
  }
58
+ export interface IFormElementJoinLibraryContext {
59
+ mandatoryAttribute: IAttribute;
60
+ }
@@ -1,3 +1,4 @@
1
+ import { IKeyValue } from './shared';
1
2
  export interface IGlobalSettings {
2
3
  defaultApp: string;
3
4
  name: string;
@@ -9,4 +10,5 @@ export interface IGlobalSettings {
9
10
  library: string;
10
11
  recordId: string;
11
12
  };
13
+ settings?: IKeyValue<any>;
12
14
  }
@@ -3,9 +3,11 @@ import { IPreviewVersion } from './filesManager';
3
3
  import { ITreePermissionsConf } from './permissions';
4
4
  import { IRecordIdentityConf } from './record';
5
5
  import { ISystemTranslation } from './systemTranslation';
6
+ import { IKeyValue } from './shared';
6
7
  export interface ILibrary extends ICoreEntity {
7
8
  system?: boolean;
8
9
  behavior?: LibraryBehavior;
10
+ mandatoryAttribute?: string;
9
11
  /**
10
12
  * List of attributes usable in this library
11
13
  */
@@ -31,6 +33,14 @@ export interface ILibrary extends ICoreEntity {
31
33
  recordId: string;
32
34
  };
33
35
  previewsSettings?: ILibraryPreviewsSettings[];
36
+ settings?: IKeyValue<any>;
37
+ }
38
+ /**
39
+ * Library as stored in the DB, without embedded attributes
40
+ */
41
+ export interface ILibraryDbEvent extends Omit<ILibrary, 'attributes' | 'fullTextAttributes'> {
42
+ attributes?: string[];
43
+ fullTextAttributes?: string[];
34
44
  }
35
45
  export interface ILibraryFilterOptions extends ICoreEntityFilterOptions {
36
46
  system?: boolean;
@@ -43,8 +53,9 @@ export interface ILibraryPreviewsSettings {
43
53
  }
44
54
  export declare enum LibraryBehavior {
45
55
  STANDARD = "standard",
56
+ DIRECTORIES = "directories",
46
57
  FILES = "files",
47
- DIRECTORIES = "directories"
58
+ JOIN = "join"
48
59
  }
49
60
  export declare const USERS_LIBRARY = "users";
50
61
  export declare const USERS_GROUPS_LIBRARY = "users_groups";
@@ -76,7 +76,9 @@ 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",
81
+ IMPORT_CONFIG_CLEAR_DATABASE = "admin_import_config_clear_database"
80
82
  }
81
83
  export type PermissionsActions = LibraryPermissionsActions | RecordPermissionsActions | RecordAttributePermissionsActions | AdminPermissionsActions | AttributePermissionsActions | TreePermissionsActions | TreeNodePermissionsActions | ApplicationPermissionsActions;
82
84
  export interface ILabeledPermissionsAction {
@@ -1,16 +1,21 @@
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';
4
5
  export interface IQueryInfos {
5
6
  userId: string;
7
+ groupsId?: string[];
6
8
  lang?: string;
7
9
  defaultLang?: string;
8
10
  queryId?: string;
9
11
  version?: IValueVersion;
10
12
  treeId?: string;
11
- groupsId?: string[];
12
13
  applicationId?: string;
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
- label?: string;
79
- subLabel?: string;
80
- color?: string;
81
- preview?: IPreview;
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;
@@ -11,6 +11,7 @@ export interface ITree extends ICoreEntity {
11
11
  behavior?: TreeBehavior;
12
12
  system?: boolean;
13
13
  permissions_conf?: ITreeNodePermissionsConf;
14
+ settings?: IKeyValue<any>;
14
15
  }
15
16
  export interface ITreeFilterOptions extends ICoreEntityFilterOptions {
16
17
  system?: boolean;
@@ -37,7 +38,7 @@ export type ITreeNodeLight = Pick<ITreeNode, 'id' | 'order'>;
37
38
  export interface ITreeNodeWithTreeId extends ITreeNode {
38
39
  treeId: string;
39
40
  }
40
- export type TreePaths = ITreeNode[];
41
+ export type TreePath = ITreeNode[];
41
42
  export declare enum TreeBehavior {
42
43
  STANDARD = "standard",
43
44
  FILES = "files"