@byted-apaas/server-sdk-node 1.1.18-beta.6 → 1.1.18-beta.8

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.
@@ -40,7 +40,6 @@ declare function metadata<mt>(ctx: any): IMetaData<mt>;
40
40
  declare class MetaDataV3<mt> implements IMetaData<mt> {
41
41
  constructor(ctx: any);
42
42
  object<T>(objectApiName: keyof mt): IKObject<T>;
43
- page(apiName: string, objectApiName: string, type: string): Page;
44
43
  }
45
44
  declare function metadataV3<mt>(ctx: any): IMetaData<mt>;
46
45
  declare class Page implements IPage {
@@ -6,6 +6,7 @@ exports.metadataV3 = exports.MetaDataV3 = exports.metaType = exports.metadata =
6
6
  const components = require("./components/components");
7
7
  const common = require("@byted-apaas/server-common-node");
8
8
  const fields = require("./objects/fields");
9
+ const fieldsV3 = require("./objects/fieldsV3");
9
10
  const Request = require("../../request/interface");
10
11
  const commonExceptions = common.exceptions;
11
12
  // interface ---------------------------------------------------------------------------------------
@@ -43,36 +44,34 @@ class MetaDataV3 {
43
44
  if (!objectApiName) {
44
45
  throw new commonExceptions.InvalidParamError('objectApiName is empty');
45
46
  }
46
- return new KObject(objectApiName);
47
- }
48
- page(apiName, objectApiName, type) {
49
- if (!apiName) {
50
- throw new commonExceptions.InvalidParamError('apiName is empty');
51
- }
52
- if (!objectApiName) {
53
- throw new commonExceptions.InvalidParamError('objectApiName is empty');
54
- }
55
- if (!type) {
56
- throw new commonExceptions.InvalidParamError('type is empty');
57
- }
58
- return new Page(apiName, objectApiName, type);
47
+ const appCtx = {
48
+ dataVersion: "v3",
49
+ };
50
+ return new KObject(objectApiName, appCtx);
59
51
  }
60
52
  }
61
53
  exports.MetaDataV3 = MetaDataV3;
62
54
  function metadataV3(ctx) {
63
- return new MetaData(ctx);
55
+ return new MetaDataV3(ctx);
64
56
  }
65
57
  exports.metadataV3 = metadataV3;
66
58
  class KObject {
67
- constructor(objectApiName) {
59
+ constructor(objectApiName, appCtx) {
68
60
  this.objectApiName = objectApiName;
61
+ this.appCtx = appCtx;
69
62
  }
70
63
  async getFields() {
71
64
  let res = await Request.GetInstance().getFields(this.objectApiName);
65
+ if (this.appCtx && this.appCtx.dataVersion === "v3") {
66
+ return fieldsV3.parseFieldsV3(res);
67
+ }
72
68
  return fields.parseFields(res);
73
69
  }
74
70
  async getField(fieldApiName) {
75
71
  let res = await Request.GetInstance().getField(this.objectApiName, fieldApiName);
72
+ if (this.appCtx && this.appCtx.dataVersion === "v3") {
73
+ return fieldsV3.parseFieldV3(res);
74
+ }
76
75
  return fields.parseField(res);
77
76
  }
78
77
  }
@@ -1,5 +1,6 @@
1
1
  import { CriterionType, FieldType, FilterType, RegionFilterType, SortConditionType, SubOptionType } from '../types/objects';
2
2
  import { I18ns } from '../types/common';
3
+ import { FilterTypeV3, RegionFilterTypeV3, SubOptionTypeV3 } from '../types/objectsV3';
3
4
  declare function getUnique(field: FieldType): boolean;
4
5
  declare function getCaseSensitive(field: FieldType): boolean;
5
6
  declare function getMultiline(field: FieldType): boolean;
@@ -12,6 +13,7 @@ declare function getMultiple(field: FieldType): boolean;
12
13
  declare function getOptionSource(field: FieldType): ('custom' | 'global');
13
14
  declare function getGlobalOptionApiName(field: FieldType): string;
14
15
  declare function getOptionList(field: FieldType): SubOptionType[];
16
+ declare function getOptionListV3(field: FieldType): SubOptionTypeV3[];
15
17
  declare function getDescriptionWhenTrue(field: FieldType): I18ns;
16
18
  declare function getDescriptionWhenFalse(field: FieldType): I18ns;
17
19
  declare function getDefaultValue(field: FieldType): boolean;
@@ -35,7 +37,9 @@ declare function getSettingsMultiple(field: FieldType): boolean;
35
37
  declare function getCompositeTypeApiName(field: FieldType): string;
36
38
  declare function getCompositeTypeSubFields(field: FieldType): object[];
37
39
  declare function getSettingsFilter(field: FieldType): FilterType[];
40
+ declare function getSettingsFilterV3(field: FieldType): FilterTypeV3[];
38
41
  export declare function getRegionSettingsFilter(field: FieldType): RegionFilterType[];
42
+ export declare function getRegionSettingsFilterV3(field: FieldType): RegionFilterTypeV3[];
39
43
  declare function getSettingsSort(field: FieldType): SortConditionType[];
40
44
  declare function getRecordPosition(field: FieldType): number;
41
45
  export declare function getRollupType(field: FieldType): string;
@@ -45,4 +49,4 @@ export declare function getRollupLookupFieldApiName(field: FieldType): string;
45
49
  export declare function getRegionOptionLevel(field: FieldType): boolean;
46
50
  export declare function getRegionStrictLeve(field: FieldType): number;
47
51
  export declare function getRollupFilter(field: FieldType): CriterionType;
48
- export { getUnique, getCaseSensitive, getMultiline, getMaxLength, getRegexpExpression, getRegexpErrMsg, getDisplayAsPercentage, getDecimalPlaces, getMultiple, getOptionSource, getGlobalOptionApiName, getOptionList, getDescriptionWhenTrue, getDescriptionWhenFalse, getDefaultValue, getDisplayStyle, getLookupRefObjectApiName, getLookupIsHierarchy, getLookupDisplayStyle, getReturnType, getFormula, getGenerateMethod, getDigitsNumber, getPrefix, getSuffix, getReferenceObjectApiName, getReferenceFieldApiName, getFileMultiple, getFileTypes, getBackLookupObjectApiName, getBackLookupFieldApiName, getSettingsMultiple, getCompositeTypeApiName, getCompositeTypeSubFields, getSettingsFilter, getSettingsSort, getRecordPosition, };
52
+ export { getUnique, getCaseSensitive, getMultiline, getMaxLength, getRegexpExpression, getRegexpErrMsg, getDisplayAsPercentage, getDecimalPlaces, getMultiple, getOptionSource, getGlobalOptionApiName, getOptionList, getDescriptionWhenTrue, getDescriptionWhenFalse, getDefaultValue, getDisplayStyle, getLookupRefObjectApiName, getLookupIsHierarchy, getLookupDisplayStyle, getReturnType, getFormula, getGenerateMethod, getDigitsNumber, getPrefix, getSuffix, getReferenceObjectApiName, getReferenceFieldApiName, getFileMultiple, getFileTypes, getBackLookupObjectApiName, getBackLookupFieldApiName, getSettingsMultiple, getCompositeTypeApiName, getCompositeTypeSubFields, getSettingsFilter, getSettingsSort, getRecordPosition, getOptionListV3, getSettingsFilterV3 };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRecordPosition = exports.getSettingsSort = exports.getSettingsFilter = exports.getCompositeTypeSubFields = exports.getCompositeTypeApiName = exports.getSettingsMultiple = exports.getBackLookupFieldApiName = exports.getBackLookupObjectApiName = exports.getFileTypes = exports.getFileMultiple = exports.getReferenceFieldApiName = exports.getReferenceObjectApiName = exports.getSuffix = exports.getPrefix = exports.getDigitsNumber = exports.getGenerateMethod = exports.getFormula = exports.getReturnType = exports.getLookupDisplayStyle = exports.getLookupIsHierarchy = exports.getLookupRefObjectApiName = exports.getDisplayStyle = exports.getDefaultValue = exports.getDescriptionWhenFalse = exports.getDescriptionWhenTrue = exports.getOptionList = exports.getGlobalOptionApiName = exports.getOptionSource = exports.getMultiple = exports.getDecimalPlaces = exports.getDisplayAsPercentage = exports.getRegexpErrMsg = exports.getRegexpExpression = exports.getMaxLength = exports.getMultiline = exports.getCaseSensitive = exports.getUnique = exports.getRollupFilter = exports.getRegionStrictLeve = exports.getRegionOptionLevel = exports.getRollupLookupFieldApiName = exports.getRollupFieldApiName = exports.getRollupObjectApiName = exports.getRollupType = exports.getRegionSettingsFilter = void 0;
3
+ exports.getSettingsFilterV3 = exports.getOptionListV3 = exports.getRecordPosition = exports.getSettingsSort = exports.getSettingsFilter = exports.getCompositeTypeSubFields = exports.getCompositeTypeApiName = exports.getSettingsMultiple = exports.getBackLookupFieldApiName = exports.getBackLookupObjectApiName = exports.getFileTypes = exports.getFileMultiple = exports.getReferenceFieldApiName = exports.getReferenceObjectApiName = exports.getSuffix = exports.getPrefix = exports.getDigitsNumber = exports.getGenerateMethod = exports.getFormula = exports.getReturnType = exports.getLookupDisplayStyle = exports.getLookupIsHierarchy = exports.getLookupRefObjectApiName = exports.getDisplayStyle = exports.getDefaultValue = exports.getDescriptionWhenFalse = exports.getDescriptionWhenTrue = exports.getOptionList = exports.getGlobalOptionApiName = exports.getOptionSource = exports.getMultiple = exports.getDecimalPlaces = exports.getDisplayAsPercentage = exports.getRegexpErrMsg = exports.getRegexpExpression = exports.getMaxLength = exports.getMultiline = exports.getCaseSensitive = exports.getUnique = exports.getRollupFilter = exports.getRegionStrictLeve = exports.getRegionOptionLevel = exports.getRollupLookupFieldApiName = exports.getRollupFieldApiName = exports.getRollupObjectApiName = exports.getRollupType = exports.getRegionSettingsFilterV3 = exports.getRegionSettingsFilter = void 0;
4
4
  const common = require("@byted-apaas/server-common-node");
5
5
  const common_1 = require("../types/common");
6
6
  const commonConstants = common.constants;
@@ -118,6 +118,23 @@ function getOptionList(field) {
118
118
  return options;
119
119
  }
120
120
  exports.getOptionList = getOptionList;
121
+ function getOptionListV3(field) {
122
+ if (!field || !field.type || !field.type.settings || !field.type.settings.options || !Array.isArray(field.type.settings.options)) {
123
+ return [];
124
+ }
125
+ let options = [];
126
+ for (let option of field.type.settings.options) {
127
+ options.push({
128
+ label: (0, common_1.transI18nsToMultilingualV3)(option.name),
129
+ apiName: option.api_name,
130
+ description: (0, common_1.transI18nsToMultilingualV3)(option.description),
131
+ color: commonUtils.getColorNameById(option.color_id),
132
+ active: Number(option.active) === 1,
133
+ });
134
+ }
135
+ return options;
136
+ }
137
+ exports.getOptionListV3 = getOptionListV3;
121
138
  function getDescriptionWhenTrue(field) {
122
139
  if (field && field.type && field.type.settings && !(0, common_1.isNullOrUndefined)(field.type.settings.description_if_true)) {
123
140
  return field.type.settings.description_if_true;
@@ -283,6 +300,22 @@ function getSettingsFilter(field) {
283
300
  return [];
284
301
  }
285
302
  exports.getSettingsFilter = getSettingsFilter;
303
+ function getSettingsFilterV3(field) {
304
+ if (field && field.type && field.type.settings && !(0, common_1.isNullOrUndefined)(field.type.settings.filter)) {
305
+ const res = field.type.settings.filter.map(s => {
306
+ let tmp;
307
+ tmp.errorMsg = (0, common_1.transI18nsToMultilingualV3)(s.errorMsg);
308
+ tmp.criterion = s.criterion;
309
+ tmp.label = s.label;
310
+ tmp.needTriggerCriterion = s.needTriggerCriterion;
311
+ tmp.triggerCriterion = s.triggerCriterion;
312
+ return tmp;
313
+ });
314
+ return res;
315
+ }
316
+ return [];
317
+ }
318
+ exports.getSettingsFilterV3 = getSettingsFilterV3;
286
319
  function getRegionSettingsFilter(field) {
287
320
  if (field && field.type && field.type.settings && !(0, common_1.isNullOrUndefined)(field.type.settings.filter)) {
288
321
  return field.type.settings.filter;
@@ -290,6 +323,22 @@ function getRegionSettingsFilter(field) {
290
323
  return [];
291
324
  }
292
325
  exports.getRegionSettingsFilter = getRegionSettingsFilter;
326
+ function getRegionSettingsFilterV3(field) {
327
+ if (field && field.type && field.type.settings && !(0, common_1.isNullOrUndefined)(field.type.settings.filter)) {
328
+ const res = field.type.settings.filter.map(s => {
329
+ let tmp;
330
+ tmp.errorMsg = (0, common_1.transI18nsToMultilingualV3)(s.errorMsg);
331
+ tmp.criterion = s.criterion;
332
+ tmp.label = s.label;
333
+ tmp.needTriggerCriterion = s.needTriggerCriterion;
334
+ tmp.triggerCriterion = s.triggerCriterion;
335
+ return s;
336
+ });
337
+ return res;
338
+ }
339
+ return [];
340
+ }
341
+ exports.getRegionSettingsFilterV3 = getRegionSettingsFilterV3;
293
342
  // TODO 结构转换
294
343
  function getSettingsSort(field) {
295
344
  let res = [];
@@ -0,0 +1,159 @@
1
+ import { BaseFieldType, CriterionType, FieldType, FilterType, SortConditionType } from '../types/objects';
2
+ import { MultilingualTypeV3 } from '../types/common';
3
+ import { FilterTypeV3, RegionFilterTypeV3, SubOptionTypeV3 } from '../types/objectsV3';
4
+ declare class MetadataFieldV3 {
5
+ type: string;
6
+ apiName: string;
7
+ label: MultilingualTypeV3;
8
+ constructor(type: string, field: FieldType);
9
+ }
10
+ declare class KTextV3 extends MetadataFieldV3 {
11
+ required: boolean;
12
+ unique: boolean;
13
+ caseSensitive: boolean;
14
+ multiline: boolean;
15
+ maxLength: number;
16
+ validationRegex: string;
17
+ errorMsg: MultilingualTypeV3;
18
+ constructor(field: FieldType);
19
+ }
20
+ declare class RichTextV3 extends MetadataFieldV3 {
21
+ maxLength: number;
22
+ required: boolean;
23
+ constructor(field: FieldType);
24
+ }
25
+ declare class MultilingualV3 extends MetadataFieldV3 {
26
+ required: boolean;
27
+ unique: boolean;
28
+ caseSensitive: boolean;
29
+ multiline: boolean;
30
+ maxLength: number;
31
+ constructor(field: FieldType);
32
+ }
33
+ declare class NumberV3 extends MetadataFieldV3 {
34
+ required: boolean;
35
+ unique: boolean;
36
+ displayAsPercentage: boolean;
37
+ decimalPlacesNumber: number;
38
+ constructor(field: FieldType);
39
+ }
40
+ declare class BigintV3 extends MetadataFieldV3 {
41
+ required: boolean;
42
+ unique: boolean;
43
+ constructor(field: FieldType);
44
+ }
45
+ declare class DecimalV3 extends MetadataFieldV3 {
46
+ required: boolean;
47
+ unique: boolean;
48
+ displayAsPercentage: boolean;
49
+ decimalPlacesNumber: number;
50
+ constructor(field: FieldType);
51
+ }
52
+ declare class KDateV3 extends MetadataFieldV3 {
53
+ required: boolean;
54
+ constructor(field: FieldType);
55
+ }
56
+ declare class DateTimeV3 extends MetadataFieldV3 {
57
+ required: boolean;
58
+ constructor(field: FieldType);
59
+ }
60
+ declare class OptionV3 extends MetadataFieldV3 {
61
+ required: boolean;
62
+ multiple: boolean;
63
+ optionSource: ('custom' | 'global');
64
+ globalOptionApiName: string;
65
+ optionList: SubOptionTypeV3[];
66
+ constructor(field: FieldType);
67
+ }
68
+ declare class EmailV3 extends MetadataFieldV3 {
69
+ required: boolean;
70
+ unique: boolean;
71
+ constructor(field: FieldType);
72
+ }
73
+ declare class MobileNumberV3 extends MetadataFieldV3 {
74
+ required: boolean;
75
+ unique: boolean;
76
+ constructor(field: FieldType);
77
+ }
78
+ declare class BooleanV3 extends MetadataFieldV3 {
79
+ descriptionWhenTrue: MultilingualTypeV3;
80
+ descriptionWhenFalse: MultilingualTypeV3;
81
+ defaultValue: boolean;
82
+ unique: boolean;
83
+ constructor(field: FieldType);
84
+ }
85
+ declare class AvatarOrLogoV3 extends MetadataFieldV3 {
86
+ displayStyle: ('square' | 'round');
87
+ constructor(field: FieldType);
88
+ }
89
+ declare class LookupV3 extends MetadataFieldV3 {
90
+ required: boolean;
91
+ multiple: boolean;
92
+ objectApiName: string;
93
+ hierarchy: boolean;
94
+ displayStyle: ('search' | 'dropDown' | 'tree');
95
+ sortConditions: SortConditionType[];
96
+ filter: FilterType[];
97
+ constructor(field: FieldType);
98
+ }
99
+ declare class FormulaV3 extends MetadataFieldV3 {
100
+ returnType: string;
101
+ formula: MultilingualTypeV3;
102
+ constructor(field: FieldType);
103
+ }
104
+ declare class AutoIDV3 extends MetadataFieldV3 {
105
+ generateMethod: ('random' | 'incremental');
106
+ digitsNumber: number;
107
+ prefix: string;
108
+ suffix: string;
109
+ constructor(field: FieldType);
110
+ }
111
+ declare class ReferenceFieldV3 extends MetadataFieldV3 {
112
+ guideFieldApiName: string;
113
+ fieldApiName: string;
114
+ constructor(field: FieldType);
115
+ }
116
+ declare class RollupV3 extends MetadataFieldV3 {
117
+ rollupType: string;
118
+ rollupObjectApiName: string;
119
+ rollupFieldApiName: string;
120
+ rollupLookupFieldApiName: string;
121
+ filter: CriterionType;
122
+ constructor(field: FieldType);
123
+ }
124
+ declare class RegionV3 extends MetadataFieldV3 {
125
+ required: boolean;
126
+ multiple: boolean;
127
+ optionLevel: boolean;
128
+ strictLevel: number;
129
+ filter: RegionFilterTypeV3[];
130
+ constructor(field: FieldType);
131
+ }
132
+ declare class FileV3 extends MetadataFieldV3 {
133
+ required: boolean;
134
+ multiple: boolean;
135
+ fileTypes: string[];
136
+ constructor(field: FieldType);
137
+ }
138
+ declare class BackLookupV3 extends MetadataFieldV3 {
139
+ constructor(field: FieldType);
140
+ }
141
+ declare class CompositeTypeV3 extends MetadataFieldV3 {
142
+ compositeTypeApiName: string;
143
+ subFields: BaseFieldType[];
144
+ required: boolean;
145
+ multiple: boolean;
146
+ constructor(field: FieldType);
147
+ }
148
+ declare class ExtractSingleRecordV3 extends MetadataFieldV3 {
149
+ compositeTypeApiName: string;
150
+ subFields: BaseFieldType[];
151
+ filter: FilterTypeV3[];
152
+ sortConditions: SortConditionType[];
153
+ recordPosition: number;
154
+ constructor(field: FieldType);
155
+ }
156
+ declare function parseFieldsV3(inputFields: Record<string, any>): BaseFieldType[];
157
+ declare function parseFieldV3(field: FieldType): BaseFieldType;
158
+ declare function getFieldClassV3(field: FieldType): any;
159
+ export { KTextV3 as TextV3, MultilingualV3, NumberV3, KDateV3 as DateV3, DateTimeV3, OptionV3, EmailV3, MobileNumberV3, BooleanV3, AvatarOrLogoV3, LookupV3, FormulaV3, AutoIDV3, ReferenceFieldV3, FileV3, BackLookupV3, CompositeTypeV3, ExtractSingleRecordV3, RichTextV3, BigintV3, DecimalV3, RegionV3, RollupV3, parseFieldsV3, parseFieldV3, getFieldClassV3, };
@@ -0,0 +1,370 @@
1
+ "use strict";
2
+ // Copyright 2022 ByteDance Ltd. and/or its affiliates
3
+ // SPDX-License-Identifier: MIT
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.getFieldClassV3 = exports.parseFieldV3 = exports.parseFieldsV3 = exports.RollupV3 = exports.RegionV3 = exports.DecimalV3 = exports.BigintV3 = exports.RichTextV3 = exports.ExtractSingleRecordV3 = exports.CompositeTypeV3 = exports.BackLookupV3 = exports.FileV3 = exports.ReferenceFieldV3 = exports.AutoIDV3 = exports.FormulaV3 = exports.LookupV3 = exports.AvatarOrLogoV3 = exports.BooleanV3 = exports.MobileNumberV3 = exports.EmailV3 = exports.OptionV3 = exports.DateTimeV3 = exports.DateV3 = exports.NumberV3 = exports.MultilingualV3 = exports.TextV3 = void 0;
6
+ const fieldsUtil = require("./fields.util");
7
+ const common_1 = require("../types/common");
8
+ class MetadataFieldV3 {
9
+ constructor(type, field) {
10
+ this.type = type;
11
+ this.apiName = field.api_name;
12
+ this.label = (0, common_1.transI18nsToMultilingualV3)(field.label);
13
+ }
14
+ }
15
+ class KTextV3 extends MetadataFieldV3 {
16
+ constructor(field) {
17
+ if (!field) {
18
+ return;
19
+ }
20
+ super('text', field);
21
+ this.required = field.required;
22
+ this.unique = fieldsUtil.getUnique(field);
23
+ this.caseSensitive = fieldsUtil.getCaseSensitive(field);
24
+ this.multiline = fieldsUtil.getMultiline(field);
25
+ this.maxLength = fieldsUtil.getMaxLength(field);
26
+ this.validationRegex = fieldsUtil.getRegexpExpression(field);
27
+ this.errorMsg = (0, common_1.transI18nsToMultilingualV3)(fieldsUtil.getRegexpErrMsg(field));
28
+ }
29
+ }
30
+ exports.TextV3 = KTextV3;
31
+ class RichTextV3 extends MetadataFieldV3 {
32
+ constructor(field) {
33
+ if (!field) {
34
+ return;
35
+ }
36
+ super('richText', field);
37
+ this.maxLength = fieldsUtil.getMaxLength(field);
38
+ this.required = field.required;
39
+ }
40
+ }
41
+ exports.RichTextV3 = RichTextV3;
42
+ class MultilingualV3 extends MetadataFieldV3 {
43
+ constructor(field) {
44
+ if (!field) {
45
+ return;
46
+ }
47
+ super('multilingual', field);
48
+ this.required = field.required;
49
+ this.unique = fieldsUtil.getUnique(field);
50
+ this.caseSensitive = fieldsUtil.getCaseSensitive(field);
51
+ this.multiline = fieldsUtil.getMultiline(field);
52
+ this.maxLength = fieldsUtil.getMaxLength(field);
53
+ }
54
+ }
55
+ exports.MultilingualV3 = MultilingualV3;
56
+ class NumberV3 extends MetadataFieldV3 {
57
+ constructor(field) {
58
+ if (!field) {
59
+ return;
60
+ }
61
+ super('number', field);
62
+ this.required = field.required;
63
+ this.unique = fieldsUtil.getUnique(field);
64
+ this.displayAsPercentage = fieldsUtil.getDisplayAsPercentage(field);
65
+ this.decimalPlacesNumber = fieldsUtil.getDecimalPlaces(field);
66
+ }
67
+ }
68
+ exports.NumberV3 = NumberV3;
69
+ class BigintV3 extends MetadataFieldV3 {
70
+ constructor(field) {
71
+ if (!field) {
72
+ return;
73
+ }
74
+ super('bigint', field);
75
+ this.required = field.required;
76
+ this.unique = fieldsUtil.getUnique(field);
77
+ }
78
+ }
79
+ exports.BigintV3 = BigintV3;
80
+ class DecimalV3 extends MetadataFieldV3 {
81
+ constructor(field) {
82
+ if (!field) {
83
+ return;
84
+ }
85
+ super('decimal', field);
86
+ this.required = field.required;
87
+ this.unique = fieldsUtil.getUnique(field);
88
+ this.displayAsPercentage = fieldsUtil.getDisplayAsPercentage(field);
89
+ this.decimalPlacesNumber = fieldsUtil.getDecimalPlaces(field);
90
+ }
91
+ }
92
+ exports.DecimalV3 = DecimalV3;
93
+ class KDateV3 extends MetadataFieldV3 {
94
+ constructor(field) {
95
+ if (!field) {
96
+ return;
97
+ }
98
+ super('date', field);
99
+ this.required = field.required;
100
+ }
101
+ }
102
+ exports.DateV3 = KDateV3;
103
+ class DateTimeV3 extends MetadataFieldV3 {
104
+ constructor(field) {
105
+ if (!field) {
106
+ return;
107
+ }
108
+ super('dateTime', field);
109
+ this.required = field.required;
110
+ }
111
+ }
112
+ exports.DateTimeV3 = DateTimeV3;
113
+ class OptionV3 extends MetadataFieldV3 {
114
+ constructor(field) {
115
+ if (!field) {
116
+ return;
117
+ }
118
+ super('option', field);
119
+ this.required = field.required;
120
+ this.multiple = fieldsUtil.getMultiple(field);
121
+ this.optionSource = fieldsUtil.getOptionSource(field);
122
+ this.globalOptionApiName = fieldsUtil.getGlobalOptionApiName(field);
123
+ this.optionList = fieldsUtil.getOptionListV3(field);
124
+ }
125
+ }
126
+ exports.OptionV3 = OptionV3;
127
+ class EmailV3 extends MetadataFieldV3 {
128
+ constructor(field) {
129
+ if (!field) {
130
+ return;
131
+ }
132
+ super('email', field);
133
+ this.required = field.required;
134
+ this.unique = fieldsUtil.getUnique(field);
135
+ }
136
+ }
137
+ exports.EmailV3 = EmailV3;
138
+ class MobileNumberV3 extends MetadataFieldV3 {
139
+ constructor(field) {
140
+ if (!field) {
141
+ return;
142
+ }
143
+ super('mobileNumber', field);
144
+ this.required = field.required;
145
+ this.unique = fieldsUtil.getUnique(field);
146
+ }
147
+ }
148
+ exports.MobileNumberV3 = MobileNumberV3;
149
+ class BooleanV3 extends MetadataFieldV3 {
150
+ constructor(field) {
151
+ if (!field) {
152
+ return;
153
+ }
154
+ super('boolean', field);
155
+ this.unique = fieldsUtil.getUnique(field);
156
+ this.descriptionWhenTrue = (0, common_1.transI18nsToMultilingualV3)(fieldsUtil.getDescriptionWhenTrue(field));
157
+ this.descriptionWhenFalse = (0, common_1.transI18nsToMultilingualV3)(fieldsUtil.getDescriptionWhenFalse(field));
158
+ this.defaultValue = fieldsUtil.getDefaultValue(field);
159
+ }
160
+ }
161
+ exports.BooleanV3 = BooleanV3;
162
+ class AvatarOrLogoV3 extends MetadataFieldV3 {
163
+ constructor(field) {
164
+ if (!field) {
165
+ return;
166
+ }
167
+ super('avatarOrLogo', field);
168
+ this.displayStyle = fieldsUtil.getDisplayStyle(field);
169
+ }
170
+ }
171
+ exports.AvatarOrLogoV3 = AvatarOrLogoV3;
172
+ class LookupV3 extends MetadataFieldV3 {
173
+ constructor(field) {
174
+ if (!field) {
175
+ return;
176
+ }
177
+ super('lookup', field);
178
+ this.required = field.required;
179
+ this.multiple = fieldsUtil.getMultiple(field);
180
+ this.objectApiName = fieldsUtil.getLookupRefObjectApiName(field);
181
+ this.hierarchy = fieldsUtil.getLookupIsHierarchy(field);
182
+ this.displayStyle = fieldsUtil.getLookupDisplayStyle(field);
183
+ // TODO
184
+ this.sortConditions = fieldsUtil.getSettingsSort(field);
185
+ this.filter = [];
186
+ }
187
+ }
188
+ exports.LookupV3 = LookupV3;
189
+ class FormulaV3 extends MetadataFieldV3 {
190
+ constructor(field) {
191
+ if (!field) {
192
+ return;
193
+ }
194
+ super('formula', field);
195
+ this.returnType = fieldsUtil.getReturnType(field);
196
+ // TODO 由于下游提供仍是 api ID 版本,因此禁用
197
+ this.formula = null; //fieldsUtil.getFormula(field);
198
+ }
199
+ }
200
+ exports.FormulaV3 = FormulaV3;
201
+ class AutoIDV3 extends MetadataFieldV3 {
202
+ constructor(field) {
203
+ if (!field) {
204
+ return;
205
+ }
206
+ super('autoId', field);
207
+ this.generateMethod = fieldsUtil.getGenerateMethod(field);
208
+ this.digitsNumber = fieldsUtil.getDigitsNumber(field);
209
+ this.prefix = fieldsUtil.getPrefix(field);
210
+ this.suffix = fieldsUtil.getSuffix(field);
211
+ }
212
+ }
213
+ exports.AutoIDV3 = AutoIDV3;
214
+ class ReferenceFieldV3 extends MetadataFieldV3 {
215
+ constructor(field) {
216
+ if (!field) {
217
+ return;
218
+ }
219
+ super('referenceField', field);
220
+ // TODO: check objectApiName to guideFieldApiName
221
+ this.guideFieldApiName = fieldsUtil.getReferenceObjectApiName(field);
222
+ this.fieldApiName = fieldsUtil.getReferenceFieldApiName(field);
223
+ }
224
+ }
225
+ exports.ReferenceFieldV3 = ReferenceFieldV3;
226
+ class RollupV3 extends MetadataFieldV3 {
227
+ constructor(field) {
228
+ if (!field) {
229
+ return;
230
+ }
231
+ super('rollup', field);
232
+ this.rollupType = fieldsUtil.getRollupType(field);
233
+ this.rollupObjectApiName = fieldsUtil.getRollupObjectApiName(field);
234
+ this.rollupFieldApiName = fieldsUtil.getRollupFieldApiName(field);
235
+ this.rollupLookupFieldApiName = fieldsUtil.getRollupLookupFieldApiName(field);
236
+ this.filter = fieldsUtil.getRollupFilter(field);
237
+ }
238
+ }
239
+ exports.RollupV3 = RollupV3;
240
+ class RegionV3 extends MetadataFieldV3 {
241
+ constructor(field) {
242
+ if (!field) {
243
+ return;
244
+ }
245
+ super('region', field);
246
+ this.required = field.required;
247
+ this.multiple = fieldsUtil.getSettingsMultiple(field);
248
+ this.optionLevel = fieldsUtil.getRegionOptionLevel(field);
249
+ this.strictLevel = fieldsUtil.getRegionStrictLeve(field);
250
+ this.filter = fieldsUtil.getRegionSettingsFilterV3(field);
251
+ }
252
+ }
253
+ exports.RegionV3 = RegionV3;
254
+ class FileV3 extends MetadataFieldV3 {
255
+ constructor(field) {
256
+ if (!field) {
257
+ return;
258
+ }
259
+ super('file', field);
260
+ this.required = field.required;
261
+ this.multiple = fieldsUtil.getFileMultiple(field);
262
+ this.fileTypes = fieldsUtil.getFileTypes(field);
263
+ }
264
+ }
265
+ exports.FileV3 = FileV3;
266
+ class BackLookupV3 extends MetadataFieldV3 {
267
+ // objectApiName: string; // TODO 由于下游提供仍是 api ID 版本,因此禁用
268
+ // fieldApiName: string; // 由于下游提供仍是 api ID 版本,因此禁用
269
+ constructor(field) {
270
+ if (!field) {
271
+ return;
272
+ }
273
+ super('backLookup', field);
274
+ // TODO 由于下游提供仍是 api ID 版本,因此禁用
275
+ // this.objectApiName = fieldsUtil.getBackLookupObjectApiName(field);
276
+ // this.fieldApiName = fieldsUtil.getBackLookupFieldApiName(field); // TODO metadata返回值为空
277
+ }
278
+ }
279
+ exports.BackLookupV3 = BackLookupV3;
280
+ class CompositeTypeV3 extends MetadataFieldV3 {
281
+ constructor(field) {
282
+ if (!field) {
283
+ return;
284
+ }
285
+ super('compositeType', field);
286
+ this.required = field.required;
287
+ this.multiple = fieldsUtil.getSettingsMultiple(field);
288
+ this.compositeTypeApiName = fieldsUtil.getCompositeTypeApiName(field);
289
+ // TODO 字段类型转换
290
+ this.subFields = parseFieldsV3(fieldsUtil.getCompositeTypeSubFields(field));
291
+ }
292
+ }
293
+ exports.CompositeTypeV3 = CompositeTypeV3;
294
+ class ExtractSingleRecordV3 extends MetadataFieldV3 {
295
+ constructor(field) {
296
+ if (!field) {
297
+ return;
298
+ }
299
+ super('extractSingleRecord', field);
300
+ this.compositeTypeApiName = fieldsUtil.getCompositeTypeApiName(field);
301
+ // TODO 字段类型转换
302
+ this.subFields = parseFieldsV3(fieldsUtil.getCompositeTypeSubFields(field));
303
+ this.filter = fieldsUtil.getSettingsFilterV3(field);
304
+ this.sortConditions = fieldsUtil.getSettingsSort(field);
305
+ this.recordPosition = fieldsUtil.getRecordPosition(field);
306
+ }
307
+ }
308
+ exports.ExtractSingleRecordV3 = ExtractSingleRecordV3;
309
+ function getCompositeTypeClass(field) {
310
+ if (field && field.type && field.type.settings && field.type.settings.is_extract) {
311
+ return ExtractSingleRecordV3;
312
+ }
313
+ return CompositeTypeV3;
314
+ }
315
+ function parseFieldsV3(inputFields) {
316
+ if (!inputFields || !Array.isArray(inputFields)) {
317
+ return [];
318
+ }
319
+ let fields = [];
320
+ for (let field of inputFields) {
321
+ let FieldClass = getFieldClassV3(field);
322
+ if (!FieldClass) {
323
+ continue;
324
+ }
325
+ fields.push(new FieldClass(field));
326
+ }
327
+ return fields;
328
+ }
329
+ exports.parseFieldsV3 = parseFieldsV3;
330
+ function parseFieldV3(field) {
331
+ let FieldClass = getFieldClassV3(field);
332
+ if (FieldClass) {
333
+ return new FieldClass(field);
334
+ }
335
+ return null;
336
+ }
337
+ exports.parseFieldV3 = parseFieldV3;
338
+ function getFieldClassV3(field) {
339
+ if (field && field.type && field.type.name) {
340
+ if (field.type.name === 'compositeType') {
341
+ return getCompositeTypeClass(field);
342
+ }
343
+ return type2fieldTypeV3[field.type.name];
344
+ }
345
+ return null;
346
+ }
347
+ exports.getFieldClassV3 = getFieldClassV3;
348
+ const type2fieldTypeV3 = {
349
+ 'text': KTextV3,
350
+ 'multilingual': MultilingualV3,
351
+ 'float': NumberV3,
352
+ 'date': KDateV3,
353
+ 'datetime': DateTimeV3,
354
+ 'enum': OptionV3,
355
+ 'email': EmailV3,
356
+ 'phone': MobileNumberV3,
357
+ 'boolean': BooleanV3,
358
+ 'avatar': AvatarOrLogoV3,
359
+ 'lookup': LookupV3,
360
+ 'formula': FormulaV3,
361
+ 'auto_number': AutoIDV3,
362
+ 'reference_field': ReferenceFieldV3,
363
+ 'attachment': FileV3,
364
+ 'back_lookup': BackLookupV3,
365
+ 'richText': RichTextV3,
366
+ 'bigint': BigintV3,
367
+ 'decimal': DecimalV3,
368
+ 'rollup': RollupV3,
369
+ 'region': RegionV3,
370
+ };
@@ -4,3 +4,8 @@ export type I18n = {
4
4
  };
5
5
  export type I18ns = I18n[];
6
6
  export declare function isNullOrUndefined(param: any): boolean;
7
+ export declare function transI18nsToMultilingualV3(i18ns: I18ns): MultilingualTypeV3;
8
+ export type MultilingualTypeV3 = {
9
+ zh_CN: string;
10
+ en_US: string;
11
+ };
@@ -2,8 +2,32 @@
2
2
  // Copyright 2022 ByteDance Ltd. and/or its affiliates
3
3
  // SPDX-License-Identifier: MIT
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.isNullOrUndefined = void 0;
5
+ exports.transI18nsToMultilingualV3 = exports.isNullOrUndefined = void 0;
6
6
  function isNullOrUndefined(param) {
7
7
  return param === null || param === undefined;
8
8
  }
9
9
  exports.isNullOrUndefined = isNullOrUndefined;
10
+ function transI18nsToMultilingualV3(i18ns) {
11
+ if (i18ns === null || i18ns === undefined) {
12
+ return null;
13
+ }
14
+ let multilingual = { zh_CN: "", en_US: "" };
15
+ for (const i18n of i18ns) {
16
+ switch (i18n.language_code) {
17
+ case languageCode.zh_CN:
18
+ multilingual.zh_CN = i18n.text;
19
+ break;
20
+ case languageCode.en_US:
21
+ multilingual.en_US = i18n.text;
22
+ break;
23
+ default:
24
+ break;
25
+ }
26
+ }
27
+ return multilingual;
28
+ }
29
+ exports.transI18nsToMultilingualV3 = transI18nsToMultilingualV3;
30
+ const languageCode = {
31
+ zh_CN: 2052,
32
+ en_US: 1033
33
+ };
@@ -0,0 +1,128 @@
1
+ import { MultilingualTypeV3 } from './common';
2
+ import { CriterionType, SortConditionType } from './objects';
3
+ export interface BaseFieldTypeV3 {
4
+ type: string;
5
+ apiName: string;
6
+ label: MultilingualTypeV3;
7
+ }
8
+ export interface KTextFieldTypeV3 extends BaseFieldTypeV3 {
9
+ required: boolean;
10
+ unique: boolean;
11
+ caseSensitive: boolean;
12
+ multiline: boolean;
13
+ maxLength: number;
14
+ validationRegex: string;
15
+ errorMsg: MultilingualTypeV3;
16
+ }
17
+ export interface RichTextTypeV3 extends BaseFieldTypeV3 {
18
+ required: boolean;
19
+ maxLength: number;
20
+ }
21
+ export interface KMultilingualTypeV3 extends BaseFieldTypeV3 {
22
+ required: boolean;
23
+ unique: boolean;
24
+ caseSensitive: boolean;
25
+ multiline: boolean;
26
+ maxLength: number;
27
+ }
28
+ export interface NumberTypeV3 extends BaseFieldTypeV3 {
29
+ required: boolean;
30
+ unique: boolean;
31
+ displayAsPercentage: boolean;
32
+ decimalPlacesNumber: number;
33
+ }
34
+ export interface KDateTypeV3 extends BaseFieldTypeV3 {
35
+ required: boolean;
36
+ }
37
+ export interface DateTimeTypeV3 extends BaseFieldTypeV3 {
38
+ required: boolean;
39
+ }
40
+ export type SubOptionTypeV3 = {
41
+ label: MultilingualTypeV3;
42
+ apiName: string;
43
+ description: MultilingualTypeV3;
44
+ color: ('grey' | 'blue' | 'cyan' | 'green' | 'yellow' | 'orange' | 'red' | 'magenta' | 'purple' | 'blueMagenta');
45
+ active: boolean;
46
+ };
47
+ export interface OptionTypeV3 extends BaseFieldTypeV3 {
48
+ required: boolean;
49
+ multiple: boolean;
50
+ optionSource: ('custom' | 'global');
51
+ globalOptionApiName: string;
52
+ optionList: SubOptionTypeV3[];
53
+ }
54
+ export interface EmailV3 extends BaseFieldTypeV3 {
55
+ required: boolean;
56
+ unique: boolean;
57
+ }
58
+ export interface MobileNumberV3 extends BaseFieldTypeV3 {
59
+ required: boolean;
60
+ unique: boolean;
61
+ }
62
+ export interface BooleanV3 extends BaseFieldTypeV3 {
63
+ descriptionWhenTrue: MultilingualTypeV3;
64
+ descriptionWhenFalse: MultilingualTypeV3;
65
+ defaultValue: boolean;
66
+ }
67
+ export interface AvatarOrLogoV3 extends BaseFieldTypeV3 {
68
+ displayStyle: ('square' | 'round');
69
+ }
70
+ export type FilterTypeV3 = {
71
+ label: string;
72
+ needTriggerCriterion: boolean;
73
+ triggerCriterion: CriterionType;
74
+ criterion: CriterionType;
75
+ errorMsg: MultilingualTypeV3;
76
+ };
77
+ export type RegionFilterTypeV3 = {
78
+ id: string;
79
+ label: string;
80
+ errorMessage: MultilingualTypeV3;
81
+ recordFilter: CriterionType;
82
+ precondition: object;
83
+ };
84
+ export interface LookupV3 extends BaseFieldTypeV3 {
85
+ required: boolean;
86
+ multiple: boolean;
87
+ objectApiName: string;
88
+ hierarchy: boolean;
89
+ displayStyle: ('search' | 'dropDown' | 'tree');
90
+ sortConditions: SortConditionType[];
91
+ filter: FilterTypeV3[];
92
+ }
93
+ export interface FormulaTypeV3 extends BaseFieldTypeV3 {
94
+ returnType: string;
95
+ formula: MultilingualTypeV3;
96
+ }
97
+ export interface AutoIDTypeV3 extends BaseFieldTypeV3 {
98
+ generateMethod: ('random' | 'incremental');
99
+ digitsNumber: number;
100
+ prefix: string;
101
+ suffix: string;
102
+ }
103
+ export interface ReferenceFieldTypeV3 extends BaseFieldTypeV3 {
104
+ guideFieldApiName: string;
105
+ fieldApiName: string;
106
+ }
107
+ export interface FileTypeV3 extends BaseFieldTypeV3 {
108
+ required: boolean;
109
+ multiple: boolean;
110
+ fileTypes: string[];
111
+ }
112
+ export interface BackLookuTypeV3 extends BaseFieldTypeV3 {
113
+ objectApiName: string;
114
+ fieldApiName: string;
115
+ }
116
+ export interface CompositeTypeV3 extends BaseFieldTypeV3 {
117
+ compositeTypeApiName: string;
118
+ subFields: BaseFieldTypeV3[];
119
+ required: boolean;
120
+ multiple: boolean;
121
+ }
122
+ export interface ExtractSingleRecordTypeV3 extends BaseFieldTypeV3 {
123
+ compositeTypeApiName: string;
124
+ subFields: BaseFieldTypeV3[];
125
+ filter: FilterTypeV3[];
126
+ sortConditions: SortConditionType[];
127
+ recordPosition: number;
128
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // Copyright 2022 ByteDance Ltd. and/or its affiliates
3
+ // SPDX-License-Identifier: MIT
4
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@byted-apaas/server-sdk-node",
3
- "version": "1.1.18-beta.6",
3
+ "version": "1.1.18-beta.8",
4
4
  "description": "aPaaS Server SDK",
5
5
  "author": "zhouwexin <zhouwexin@bytedance.com>",
6
6
  "homepage": "",