@steedos/objectql 2.2.51-beta.1 → 2.2.51-beta.2

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 (134) hide show
  1. package/package.json +10 -10
  2. package/src/actions/field_updates.ts +0 -118
  3. package/src/actions/index.ts +0 -3
  4. package/src/actions/types/field_update_target.ts +0 -7
  5. package/src/actions/types/workflow_notification.ts +0 -9
  6. package/src/actions/types/workflow_rule.ts +0 -11
  7. package/src/actions/workflow_notifications.ts +0 -81
  8. package/src/actions/workflow_rule.ts +0 -136
  9. package/src/driver/driver.ts +0 -102
  10. package/src/driver/field-encrytion/index.ts +0 -8
  11. package/src/driver/field-encrytion/sharedconst.ts +0 -34
  12. package/src/driver/fieldDBType.ts +0 -14
  13. package/src/driver/format.ts +0 -36
  14. package/src/driver/index.ts +0 -20
  15. package/src/driver/metadata.ts +0 -226
  16. package/src/driver/meteorMongo.ts +0 -639
  17. package/src/driver/mongo.ts +0 -416
  18. package/src/driver/mysql.ts +0 -47
  19. package/src/driver/oracle.ts +0 -60
  20. package/src/driver/postgres.ts +0 -46
  21. package/src/driver/sqlite3.ts +0 -40
  22. package/src/driver/sqlserver.ts +0 -52
  23. package/src/dynamic-load/actions.ts +0 -146
  24. package/src/dynamic-load/approval_process.ts +0 -73
  25. package/src/dynamic-load/button.ts +0 -75
  26. package/src/dynamic-load/chart.ts +0 -22
  27. package/src/dynamic-load/client_script.ts +0 -65
  28. package/src/dynamic-load/field.ts +0 -77
  29. package/src/dynamic-load/flow_role.ts +0 -46
  30. package/src/dynamic-load/index.ts +0 -21
  31. package/src/dynamic-load/layout.ts +0 -53
  32. package/src/dynamic-load/listview.ts +0 -57
  33. package/src/dynamic-load/method.ts +0 -63
  34. package/src/dynamic-load/object_translations.ts +0 -61
  35. package/src/dynamic-load/originalObject.ts +0 -8
  36. package/src/dynamic-load/package.ts +0 -312
  37. package/src/dynamic-load/page.ts +0 -23
  38. package/src/dynamic-load/permission.ts +0 -71
  39. package/src/dynamic-load/permissionset.ts +0 -78
  40. package/src/dynamic-load/preload_data.ts +0 -104
  41. package/src/dynamic-load/profile.ts +0 -90
  42. package/src/dynamic-load/query.ts +0 -22
  43. package/src/dynamic-load/restrictionRules.ts +0 -23
  44. package/src/dynamic-load/role.ts +0 -46
  45. package/src/dynamic-load/shareRules.ts +0 -23
  46. package/src/dynamic-load/tab.ts +0 -17
  47. package/src/dynamic-load/tabs.ts +0 -13
  48. package/src/dynamic-load/translations.ts +0 -54
  49. package/src/dynamic-load/trigger.ts +0 -236
  50. package/src/dynamic-load/validation_rule.ts +0 -77
  51. package/src/dynamic-load/workflow.ts +0 -114
  52. package/src/errors/index.ts +0 -111
  53. package/src/formula/core.ts +0 -490
  54. package/src/formula/field_formula.ts +0 -107
  55. package/src/formula/index.ts +0 -81
  56. package/src/formula/params.ts +0 -197
  57. package/src/formula/recompute.ts +0 -65
  58. package/src/formula/simple_params.ts +0 -92
  59. package/src/formula/type.ts +0 -107
  60. package/src/formula/util.ts +0 -207
  61. package/src/index.ts +0 -24
  62. package/src/metadata-register/_base.ts +0 -85
  63. package/src/metadata-register/app.ts +0 -30
  64. package/src/metadata-register/chart.ts +0 -9
  65. package/src/metadata-register/index.ts +0 -123
  66. package/src/metadata-register/layout.ts +0 -38
  67. package/src/metadata-register/object.ts +0 -68
  68. package/src/metadata-register/page.ts +0 -9
  69. package/src/metadata-register/permissionFields.ts +0 -13
  70. package/src/metadata-register/permissionset.ts +0 -25
  71. package/src/metadata-register/process.ts +0 -16
  72. package/src/metadata-register/processTrigger.ts +0 -24
  73. package/src/metadata-register/profile.ts +0 -25
  74. package/src/metadata-register/query.ts +0 -9
  75. package/src/metadata-register/restrictionRules.ts +0 -12
  76. package/src/metadata-register/shareRules.ts +0 -13
  77. package/src/metadata-register/tab.ts +0 -9
  78. package/src/metadata-register/tabs.ts +0 -43
  79. package/src/services/datasourceServiceFactory.ts +0 -55
  80. package/src/services/helpers/graphql/consts.ts +0 -25
  81. package/src/services/helpers/graphql/getPrimaryFieldType.ts +0 -48
  82. package/src/services/helpers/graphql/getQueryFields.ts +0 -51
  83. package/src/services/helpers/graphql/index.ts +0 -666
  84. package/src/services/helpers/rest.ts +0 -57
  85. package/src/services/index.ts +0 -13
  86. package/src/services/objectService.ts +0 -846
  87. package/src/services/objectServiceDispatcher.ts +0 -209
  88. package/src/services/objectServiceFactory.ts +0 -29
  89. package/src/summary/core.ts +0 -263
  90. package/src/summary/field_summary.ts +0 -71
  91. package/src/summary/index.ts +0 -96
  92. package/src/summary/recompute.ts +0 -31
  93. package/src/summary/type.ts +0 -60
  94. package/src/ts-types/index.ts +0 -3
  95. package/src/ts-types/permissionset.ts +0 -8
  96. package/src/ts-types/profile.ts +0 -11
  97. package/src/ts-types/triggerActionParams.ts +0 -22
  98. package/src/typeorm/driver.ts +0 -379
  99. package/src/typeorm/index.ts +0 -3
  100. package/src/typeorm/util.ts +0 -147
  101. package/src/types/action.ts +0 -52
  102. package/src/types/app.ts +0 -280
  103. package/src/types/config.ts +0 -152
  104. package/src/types/connection.ts +0 -87
  105. package/src/types/dashboard.ts +0 -91
  106. package/src/types/datasource.ts +0 -570
  107. package/src/types/field.ts +0 -370
  108. package/src/types/field_permission.ts +0 -42
  109. package/src/types/field_types.ts +0 -1
  110. package/src/types/index.ts +0 -21
  111. package/src/types/list_view.ts +0 -56
  112. package/src/types/listeners.ts +0 -18
  113. package/src/types/object.ts +0 -2076
  114. package/src/types/object_dynamic_load.ts +0 -426
  115. package/src/types/object_events.ts +0 -43
  116. package/src/types/object_layouts.ts +0 -20
  117. package/src/types/object_permission.ts +0 -134
  118. package/src/types/query.ts +0 -28
  119. package/src/types/report.ts +0 -128
  120. package/src/types/restrictionRule.ts +0 -57
  121. package/src/types/schema.ts +0 -273
  122. package/src/types/shareRule.ts +0 -57
  123. package/src/types/trigger.ts +0 -88
  124. package/src/types/userSession.ts +0 -45
  125. package/src/types/validation_rules.ts +0 -29
  126. package/src/util/convert.ts +0 -131
  127. package/src/util/field.ts +0 -93
  128. package/src/util/function_expression.ts +0 -63
  129. package/src/util/index.ts +0 -1066
  130. package/src/util/locale.ts +0 -24
  131. package/src/util/permission_shares.ts +0 -25
  132. package/src/util/suffix.ts +0 -78
  133. package/src/util/transform.ts +0 -239
  134. 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
- }