@steedos/objectql 2.2.50 → 2.2.51-beta.4

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 (143) hide show
  1. package/lib/services/helpers/graphql/consts.d.ts +17 -0
  2. package/lib/services/helpers/graphql/consts.js +28 -0
  3. package/lib/services/helpers/graphql/consts.js.map +1 -0
  4. package/lib/services/helpers/graphql/getQueryFields.js +17 -2
  5. package/lib/services/helpers/graphql/getQueryFields.js.map +1 -1
  6. package/lib/services/helpers/graphql/index.d.ts +1 -1
  7. package/lib/services/helpers/graphql/index.js +31 -46
  8. package/lib/services/helpers/graphql/index.js.map +1 -1
  9. package/lib/util/index.js +7 -0
  10. package/lib/util/index.js.map +1 -1
  11. package/package.json +11 -12
  12. package/src/actions/field_updates.ts +0 -118
  13. package/src/actions/index.ts +0 -3
  14. package/src/actions/types/field_update_target.ts +0 -7
  15. package/src/actions/types/workflow_notification.ts +0 -9
  16. package/src/actions/types/workflow_rule.ts +0 -11
  17. package/src/actions/workflow_notifications.ts +0 -81
  18. package/src/actions/workflow_rule.ts +0 -136
  19. package/src/driver/driver.ts +0 -102
  20. package/src/driver/field-encrytion/index.ts +0 -8
  21. package/src/driver/field-encrytion/sharedconst.ts +0 -34
  22. package/src/driver/fieldDBType.ts +0 -14
  23. package/src/driver/format.ts +0 -36
  24. package/src/driver/index.ts +0 -20
  25. package/src/driver/metadata.ts +0 -226
  26. package/src/driver/meteorMongo.ts +0 -639
  27. package/src/driver/mongo.ts +0 -416
  28. package/src/driver/mysql.ts +0 -47
  29. package/src/driver/oracle.ts +0 -60
  30. package/src/driver/postgres.ts +0 -46
  31. package/src/driver/sqlite3.ts +0 -40
  32. package/src/driver/sqlserver.ts +0 -52
  33. package/src/dynamic-load/actions.ts +0 -146
  34. package/src/dynamic-load/approval_process.ts +0 -73
  35. package/src/dynamic-load/button.ts +0 -75
  36. package/src/dynamic-load/chart.ts +0 -22
  37. package/src/dynamic-load/client_script.ts +0 -65
  38. package/src/dynamic-load/field.ts +0 -77
  39. package/src/dynamic-load/flow_role.ts +0 -46
  40. package/src/dynamic-load/index.ts +0 -21
  41. package/src/dynamic-load/layout.ts +0 -53
  42. package/src/dynamic-load/listview.ts +0 -57
  43. package/src/dynamic-load/method.ts +0 -63
  44. package/src/dynamic-load/object_translations.ts +0 -61
  45. package/src/dynamic-load/originalObject.ts +0 -8
  46. package/src/dynamic-load/package.ts +0 -312
  47. package/src/dynamic-load/page.ts +0 -23
  48. package/src/dynamic-load/permission.ts +0 -71
  49. package/src/dynamic-load/permissionset.ts +0 -78
  50. package/src/dynamic-load/preload_data.ts +0 -104
  51. package/src/dynamic-load/profile.ts +0 -90
  52. package/src/dynamic-load/query.ts +0 -22
  53. package/src/dynamic-load/restrictionRules.ts +0 -23
  54. package/src/dynamic-load/role.ts +0 -46
  55. package/src/dynamic-load/shareRules.ts +0 -23
  56. package/src/dynamic-load/tab.ts +0 -17
  57. package/src/dynamic-load/tabs.ts +0 -13
  58. package/src/dynamic-load/translations.ts +0 -54
  59. package/src/dynamic-load/trigger.ts +0 -236
  60. package/src/dynamic-load/validation_rule.ts +0 -77
  61. package/src/dynamic-load/workflow.ts +0 -114
  62. package/src/errors/index.ts +0 -111
  63. package/src/formula/core.ts +0 -490
  64. package/src/formula/field_formula.ts +0 -107
  65. package/src/formula/index.ts +0 -81
  66. package/src/formula/params.ts +0 -197
  67. package/src/formula/recompute.ts +0 -65
  68. package/src/formula/simple_params.ts +0 -92
  69. package/src/formula/type.ts +0 -107
  70. package/src/formula/util.ts +0 -207
  71. package/src/index.ts +0 -24
  72. package/src/metadata-register/_base.ts +0 -85
  73. package/src/metadata-register/app.ts +0 -30
  74. package/src/metadata-register/chart.ts +0 -9
  75. package/src/metadata-register/index.ts +0 -123
  76. package/src/metadata-register/layout.ts +0 -38
  77. package/src/metadata-register/object.ts +0 -68
  78. package/src/metadata-register/page.ts +0 -9
  79. package/src/metadata-register/permissionFields.ts +0 -13
  80. package/src/metadata-register/permissionset.ts +0 -25
  81. package/src/metadata-register/process.ts +0 -16
  82. package/src/metadata-register/processTrigger.ts +0 -24
  83. package/src/metadata-register/profile.ts +0 -25
  84. package/src/metadata-register/query.ts +0 -9
  85. package/src/metadata-register/restrictionRules.ts +0 -12
  86. package/src/metadata-register/shareRules.ts +0 -13
  87. package/src/metadata-register/tab.ts +0 -9
  88. package/src/metadata-register/tabs.ts +0 -43
  89. package/src/services/datasourceServiceFactory.ts +0 -55
  90. package/src/services/helpers/graphql/getPrimaryFieldType.ts +0 -48
  91. package/src/services/helpers/graphql/getQueryFields.ts +0 -36
  92. package/src/services/helpers/graphql/index.ts +0 -681
  93. package/src/services/helpers/rest.ts +0 -57
  94. package/src/services/index.ts +0 -13
  95. package/src/services/objectService.ts +0 -846
  96. package/src/services/objectServiceDispatcher.ts +0 -209
  97. package/src/services/objectServiceFactory.ts +0 -29
  98. package/src/summary/core.ts +0 -263
  99. package/src/summary/field_summary.ts +0 -71
  100. package/src/summary/index.ts +0 -96
  101. package/src/summary/recompute.ts +0 -31
  102. package/src/summary/type.ts +0 -60
  103. package/src/ts-types/index.ts +0 -3
  104. package/src/ts-types/permissionset.ts +0 -8
  105. package/src/ts-types/profile.ts +0 -11
  106. package/src/ts-types/triggerActionParams.ts +0 -22
  107. package/src/typeorm/driver.ts +0 -379
  108. package/src/typeorm/index.ts +0 -3
  109. package/src/typeorm/util.ts +0 -147
  110. package/src/types/action.ts +0 -52
  111. package/src/types/app.ts +0 -280
  112. package/src/types/config.ts +0 -152
  113. package/src/types/connection.ts +0 -87
  114. package/src/types/dashboard.ts +0 -91
  115. package/src/types/datasource.ts +0 -570
  116. package/src/types/field.ts +0 -370
  117. package/src/types/field_permission.ts +0 -42
  118. package/src/types/field_types.ts +0 -1
  119. package/src/types/index.ts +0 -21
  120. package/src/types/list_view.ts +0 -56
  121. package/src/types/listeners.ts +0 -18
  122. package/src/types/object.ts +0 -2076
  123. package/src/types/object_dynamic_load.ts +0 -426
  124. package/src/types/object_events.ts +0 -43
  125. package/src/types/object_layouts.ts +0 -20
  126. package/src/types/object_permission.ts +0 -134
  127. package/src/types/query.ts +0 -28
  128. package/src/types/report.ts +0 -128
  129. package/src/types/restrictionRule.ts +0 -57
  130. package/src/types/schema.ts +0 -273
  131. package/src/types/shareRule.ts +0 -57
  132. package/src/types/trigger.ts +0 -88
  133. package/src/types/userSession.ts +0 -45
  134. package/src/types/validation_rules.ts +0 -29
  135. package/src/util/convert.ts +0 -131
  136. package/src/util/field.ts +0 -93
  137. package/src/util/function_expression.ts +0 -63
  138. package/src/util/index.ts +0 -1058
  139. package/src/util/locale.ts +0 -24
  140. package/src/util/permission_shares.ts +0 -25
  141. package/src/util/suffix.ts +0 -78
  142. package/src/util/transform.ts +0 -239
  143. package/src/validators/index.ts +0 -36
@@ -1,370 +0,0 @@
1
- import { Dictionary, JsonMap } from '@salesforce/ts-types';
2
- import { SteedosObjectType } from '.';
3
- import _ = require('underscore')
4
- import { SteedosFieldDBType } from '../driver';
5
- import { SteedosDataSourceType } from './datasource';
6
- import { SteedosQueryFilters } from './query';
7
-
8
- //TODO 整理字段类型
9
- const FIELDTYPES = [
10
- "text",
11
- "textarea",
12
- "html",
13
- "select",
14
- "boolean",
15
- "toggle",
16
- "date",
17
- "datetime",
18
- "time",
19
- "number",
20
- "currency",
21
- "password",
22
- "lookup", // "id": 一对一, ["id0","id1"]: 一对多, 需要新增关系表(p, m), {o:'object_name', ids: ['', '']}:新增关系表(p, o, m)
23
- "master_detail",
24
- "grid", // [{},{}] : 一对多
25
- "url",
26
- "email",
27
- "avatar", //TODO
28
- "location", //TODO
29
- "image", //TODO
30
- "object", // {}:一对一
31
- "[object]",
32
- "[Object]",
33
- "[grid]", //TODO
34
- "[text]", // ['string','sring1']
35
- "selectCity", //TODO
36
- "audio", //TODO
37
- "filesize", //TODO
38
- "file", //TODO
39
- "string",
40
- "function Object() { [native code] }",
41
- "function String() { [native code] }",
42
- "code",
43
- "Object",
44
- "autonumber",
45
- "markdown",
46
- "formula",
47
- "summary",
48
- "percent"
49
- ]
50
-
51
- abstract class SteedosFieldProperties{
52
- _id?: string
53
- object_name?: string
54
- name?: string
55
- column_name?: string
56
- abstract type?: string
57
- primary?: boolean
58
- generated?: true
59
- label?: string
60
- is_name?: boolean
61
- sort_no?: number
62
- group?: string
63
- defaultValue?: string | boolean | [] | number
64
- allowedValues?: string | boolean | []
65
- multiple?: boolean
66
- required?: boolean
67
- is_wide?: boolean
68
- readonly?: boolean
69
- hidden?: boolean
70
- omit?: boolean
71
- index?: boolean
72
- searchable?: boolean
73
- sortable?: boolean
74
- precision?: number
75
- scale?: number
76
- reference_to?: string | string[] | Function
77
- reference_to_field?: string
78
- rows?: number
79
- options?: string | []
80
- description?: string
81
- filterable?: boolean
82
- inlineHelpText?: string
83
- unique?: boolean
84
- optionsFunction?: any
85
- min?: number
86
- max?: number
87
- blackbox?: boolean
88
- reference_sort?: JsonMap
89
- reference_limit?: number
90
- is_company_limited?: boolean
91
- system?: string;
92
- abstract fieldDBType: SteedosFieldDBType | string
93
- formula?: string
94
- data_type?: string
95
- formula_blank_value?: string
96
- summary_object?: string
97
- summary_type?: string
98
- summary_field?: string
99
- summary_filters?: SteedosQueryFilters
100
- filters?: SteedosQueryFilters
101
- }
102
-
103
- export interface SteedosFieldTypeConfig extends SteedosFieldProperties{
104
-
105
- }
106
-
107
-
108
- export class SteedosFieldType extends SteedosFieldProperties implements Dictionary {
109
- [key: string]: unknown;
110
- private _object: SteedosObjectType;
111
- private _type: any;
112
- private _fieldDBType: SteedosFieldDBType;
113
- public get fieldDBType(): SteedosFieldDBType {
114
- return this._fieldDBType;
115
- }
116
- public set fieldDBType(value: SteedosFieldDBType) {
117
- this._fieldDBType = value;
118
- }
119
-
120
- private properties: string[] = ['name']
121
-
122
- constructor(name: string, object: SteedosObjectType, config: SteedosFieldTypeConfig){
123
- super();
124
- this._object = object
125
- _.each(config, (value: any, key: string)=>{
126
- if(key != 'object'){
127
- this[key] = value
128
- this.properties.push(key)
129
- }
130
- })
131
-
132
- if(!this.type && this.blackbox){
133
- this.type = 'object'
134
- }
135
-
136
- this.name = name
137
-
138
- if(this.type === "formula" && !this.data_type){
139
- throw new Error(`${this._object.name}.${this.name} invalid field type formula, miss data_type property`)
140
- }
141
-
142
- this.setDBType()
143
-
144
- if(this.generated){
145
- this.omit = true
146
- this.properties.push('omit')
147
- }
148
- }
149
-
150
- getIndexInfo = ()=>{
151
- const indexName = this.getIndexName();
152
- if(this.index || this.unique){
153
- let index = {};
154
- let indexValue: any = null;
155
- let sparse = false;
156
- if (this.index) {
157
- indexValue = this.index;
158
- if (indexValue === true){
159
- indexValue = 1;
160
- }
161
- } else {
162
- indexValue = 1;
163
- }
164
- var idxFieldName = this.name.replace(/\.\$\./g, ".");
165
- index[idxFieldName] = indexValue;
166
- let unique = !!this.unique && (indexValue === 1 || indexValue === -1);
167
- return {
168
- key: index,
169
- name: indexName,
170
- unique: unique,
171
- sparse: sparse,
172
- background: true, //兼容4.2之前的数据库版本
173
- }
174
- }
175
- }
176
-
177
- getIndexName = ()=>{
178
- return 'c2_' + this.name;
179
- }
180
-
181
-
182
- private transformReferenceTo(reference_to: string, datasource: SteedosDataSourceType): string{
183
- if(_.isString(reference_to)){
184
- if(reference_to.split('.').length = 1){
185
- if(datasource.getObject(reference_to)){
186
- return `${datasource.name}.${reference_to}`
187
- }
188
- }
189
- }
190
- return reference_to
191
- }
192
-
193
- transformReferenceOfObject(){
194
- if(this.reference_to){
195
- let datasource = this._object.datasource
196
- if(datasource.name != 'meteor'){
197
- if(_.isString(this.reference_to)){
198
- this.reference_to = this.transformReferenceTo(this.reference_to, datasource)
199
- }else if(_.isArray(this.reference_to)){
200
- let reference_to: string[] = []
201
- _.each(this.reference_to, (_reference_to)=>{
202
- reference_to.push(this.transformReferenceTo(_reference_to, datasource))
203
- })
204
- this.reference_to = reference_to
205
- }else if(_.isFunction(this.reference_to)){
206
- //TODO
207
- }
208
- }
209
- }
210
- }
211
-
212
- toConfig(){
213
- let config = {}
214
- this.properties.forEach((property)=>{
215
- config[property] = this[property]
216
- })
217
- return config
218
- }
219
-
220
- private getDBType(type: any): SteedosFieldDBType{
221
- switch (type) {
222
- case 'text':
223
- return SteedosFieldDBType.varchar
224
- case 'textarea':
225
- return SteedosFieldDBType.text
226
- case 'html':
227
- return SteedosFieldDBType.text
228
- case 'select':
229
- if(this.multiple){
230
- return SteedosFieldDBType.array
231
- }else{
232
- return SteedosFieldDBType.varchar
233
- }
234
- case 'boolean':
235
- return SteedosFieldDBType.boolean
236
- case 'toggle':
237
- return SteedosFieldDBType.boolean
238
- case 'date':
239
- return SteedosFieldDBType.date
240
- case 'datetime':
241
- return SteedosFieldDBType.dateTime
242
- case 'time':
243
- return SteedosFieldDBType.dateTime
244
- case 'number':
245
- return SteedosFieldDBType.number
246
- case 'currency':
247
- if(!this.scale && this.scale != 0){
248
- this.scale = 2
249
- }
250
- return SteedosFieldDBType.number
251
- case 'password':
252
- return SteedosFieldDBType.varchar
253
- case 'lookup':
254
- // let reference_to = this.reference_to
255
- // if(_.isFunction(this.reference_to)){
256
- // reference_to = this.reference_to()
257
- // }
258
-
259
- // if(_.isArray(reference_to)){
260
- // this._columnType = SteedosColumnType.manyToMany
261
- // }else{
262
- // if(this.multiple){
263
- // this._columnType = SteedosColumnType.oneToMany
264
- // }else{
265
- // this._columnType = SteedosColumnType.oneToOne
266
- // }
267
- // }
268
- return SteedosFieldDBType.varchar
269
- case 'master_detail':
270
- // let reference_to2 = this.reference_to
271
- // if(_.isFunction(this.reference_to)){
272
- // reference_to2 = this.reference_to()
273
- // }
274
-
275
- // if(_.isArray(reference_to2)){
276
- // this._columnType = SteedosColumnType.manyToMany
277
- // }else{
278
- // if(this.multiple){
279
- // this._columnType = SteedosColumnType.manyToOne //TODO
280
- // }else{
281
- // this._columnType = SteedosColumnType.oneToOne
282
- // }
283
- // }
284
- return SteedosFieldDBType.varchar
285
- case 'grid':
286
- return SteedosFieldDBType.array
287
- case 'url':
288
- return SteedosFieldDBType.varchar
289
- case 'email':
290
- return SteedosFieldDBType.varchar
291
- case 'avatar':
292
- return SteedosFieldDBType.varchar
293
- case 'location':
294
- return SteedosFieldDBType.json
295
- case 'image':
296
- return SteedosFieldDBType.varchar
297
- case 'object':
298
- return SteedosFieldDBType.json
299
- case 'url':
300
- return SteedosFieldDBType.varchar
301
- case '[object]':
302
- return SteedosFieldDBType.array
303
- case '[Object]':
304
- return SteedosFieldDBType.array
305
- case '[grid]':
306
- return SteedosFieldDBType.array
307
- case '[text]':
308
- return SteedosFieldDBType.array
309
- case 'selectCity':
310
- return SteedosFieldDBType.json
311
- case 'audio':
312
- return SteedosFieldDBType.varchar
313
- case 'filesize':
314
- return SteedosFieldDBType.number
315
- case 'file':
316
- return SteedosFieldDBType.varchar
317
- case 'string':
318
- return SteedosFieldDBType.varchar
319
- case 'code':
320
- return SteedosFieldDBType.varchar
321
- case 'function Object() { [native code] }':
322
- return SteedosFieldDBType.json
323
- case Object:
324
- return SteedosFieldDBType.json
325
- case 'function String() { [native code] }':
326
- return SteedosFieldDBType.varchar
327
- case String:
328
- return SteedosFieldDBType.varchar
329
- case 'Object':
330
- return SteedosFieldDBType.json
331
- case 'autonumber':
332
- return SteedosFieldDBType.varchar
333
- case 'markdown':
334
- return SteedosFieldDBType.varchar
335
- case 'formula':
336
- return this.getDBType(this.data_type);
337
- case 'summary':
338
- //汇总不需要check类型
339
- return SteedosFieldDBType.varchar;
340
- case 'percent':
341
- //百分比字段按数值类型处理
342
- return this.getDBType("number");
343
- default:
344
- throw new Error(`${this._object.name}.${this.name} invalid field type ${type}`)
345
- }
346
- }
347
-
348
- private setDBType(){
349
- if(this.fieldDBType){
350
- return;
351
- }
352
- this._fieldDBType = this.getDBType(this.type);
353
- }
354
-
355
- public get object(): SteedosObjectType {
356
- return this._object;
357
- }
358
-
359
- public get type(): any {
360
- return this._type;
361
- }
362
-
363
- public set type(value: any) {
364
- let valueStr = String(value)
365
- if(!_.contains(FIELDTYPES, valueStr)){
366
- throw new Error(`not find field type ${valueStr}`)
367
- }
368
- this._type = value;
369
- }
370
- }
@@ -1,42 +0,0 @@
1
- import { registerPermissionFields } from '../metadata-register/permissionFields';
2
- import { getSteedosSchema } from '../types'
3
- import * as _ from 'lodash'
4
-
5
- export class FieldPermission {
6
-
7
- static async getObjectFieldsPermission(objectApiName, permissionSetApiName) {
8
- const schema = getSteedosSchema();
9
- return await registerPermissionFields.find(schema.broker, {
10
- pattern: `${permissionSetApiName}.${objectApiName}.*`
11
- })
12
- }
13
-
14
- static async getObjectFieldsPermissionGroupRole(objectApiName) {
15
- const permissions = await this.getObjectFieldsPermission(objectApiName, '*');
16
- const result = {};
17
- _.each(permissions, (permission) => {
18
- const { permission_set_id, field, editable, readable } = permission.metadata;
19
- if (!result[permission_set_id]) {
20
- result[permission_set_id] = [];
21
- }
22
- result[permission_set_id].push({ field: field, read: readable, edit: editable })
23
- })
24
- return result;
25
- }
26
-
27
- static async getObjectsFieldsPermissionGroupRole() {
28
- const permissions = await this.getObjectFieldsPermission('*', '*');
29
- const result = {};
30
- _.each(permissions, (permission) => {
31
- if (!result[permission.object_name]) {
32
- result[permission.object_name] = {};
33
- }
34
- const { permission_set_id, field, editable, readable } = permission.metadata;
35
- if (!result[permission.object_name][permission_set_id]) {
36
- result[permission.object_name][permission_set_id] = [];
37
- }
38
- result[permission.object_name][permission_set_id].push({ field: field, read: readable, edit: editable })
39
- })
40
- return result;
41
- }
42
- }
@@ -1 +0,0 @@
1
- export type SteedosIDType = number | string
@@ -1,21 +0,0 @@
1
- export * from './app'
2
- export * from './config'
3
- export * from './object_dynamic_load'
4
- export * from "./schema";
5
- export * from "./datasource";
6
- export * from "./dashboard";
7
- export * from "./object";
8
- export * from "./connection";
9
- export * from "./object_layouts";
10
- export * from "./field_permission";
11
- export { SteedosFieldType, SteedosFieldTypeConfig } from "./field";
12
- export { SteedosListenerConfig } from './listeners'
13
- export { SteedosTriggerType } from './trigger'
14
- export { SteedosObjectListViewTypeConfig, SteedosObjectListViewType } from "./list_view";
15
- export { SteedosIDType } from "./field_types";
16
- export { SteedosQueryOptions } from "./query";
17
- export { SteedosObjectPermissionType, SteedosObjectPermissionTypeConfig } from "./object_permission";
18
- export { SteedosActionType, SteedosActionTypeConfig } from './action'
19
- export { SteedosUserSession, SteedosUserSessionSpace, SteedosUserSessionCompany, SteedosUserSessionOrganization } from './userSession';
20
- export { SteedosQueryFilters } from './query';
21
- export { SteedosReportType, SteedosReportTypeConfig } from './report';
@@ -1,56 +0,0 @@
1
- import { SteedosObjectType } from ".";
2
- import _ = require('underscore')
3
-
4
- abstract class SteedosObjectListViewTypeProperties{
5
- abstract name?: string
6
- label?: string
7
- type?: string
8
- filter_scope?: string
9
- columns?: []
10
- filters?: []
11
- filter_fields?: []
12
- sort?: []
13
- }
14
-
15
- export interface SteedosObjectListViewTypeConfig extends SteedosObjectListViewTypeProperties{}
16
-
17
- export class SteedosObjectListViewType extends SteedosObjectListViewTypeProperties{
18
- private _name: string;
19
-
20
- private _object: SteedosObjectType;
21
-
22
- private properties: string[] = ['name']
23
-
24
- constructor(name: string, object: SteedosObjectType, config: SteedosObjectListViewTypeConfig){
25
- super()
26
- this._object = object
27
-
28
- _.each(config, (value: any, key: string)=>{
29
- if(key != 'object'){
30
- this[key] = value
31
- this.properties.push(key)
32
- }
33
- })
34
-
35
- this.name = name
36
- }
37
-
38
- toConfig(){
39
- let config = {}
40
- this.properties.forEach((property)=>{
41
- config[property] = this[property]
42
- })
43
- return config
44
- }
45
-
46
- public get name(): string {
47
- return this._name;
48
- }
49
- public set name(value: string) {
50
- this._name = value;
51
- }
52
-
53
- public get object(): SteedosObjectType {
54
- return this._object;
55
- }
56
- }
@@ -1,18 +0,0 @@
1
- export type SteedosListenerConfig = {
2
- _id?: string,
3
- name?: string,
4
- listenTo?: string | Function,
5
- beforeFind?: Function,
6
- beforeInsert?: Function,
7
- beforeUpdate?: Function,
8
- beforeDelete?: Function,
9
- afterFind?: Function,
10
- afterCount?: Function,
11
- afterFindOne?: Function,
12
- afterInsert?: Function,
13
- afterUpdate?: Function,
14
- afterDelete?: Function,
15
- beforeAggregate?: Function,
16
- afterAggregate?: Function,
17
- metadataServiceName?: string,
18
- }