@cloudbase/cals 1.0.50 → 1.0.52-alpha.0

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 (93) hide show
  1. package/lib/parser/cals/index.d.ts.map +1 -1
  2. package/lib/parser/cals/index.js +8 -6
  3. package/lib/parser/cals/utils/block/index.js +151 -0
  4. package/lib/parser/cals/utils/code/index.js +393 -0
  5. package/lib/parser/cals/utils/common.js +268 -0
  6. package/lib/parser/cals/utils/getUsedResources.d.ts +10 -0
  7. package/lib/parser/cals/utils/getUsedResources.d.ts.map +1 -0
  8. package/lib/parser/cals/utils/getUsedResources.js +128 -0
  9. package/lib/parser/cals/utils/runtime.js +268 -0
  10. package/lib/parser/cals/utils/spinoff/index.d.ts.map +1 -1
  11. package/lib/parser/cals/utils/spinoff/index.js +5 -3
  12. package/lib/parser/cals/utils/style.js +472 -0
  13. package/lib/parser/cals/utils/version/common.js +385 -0
  14. package/lib/parser/cals/utils/version/config.d.ts +16 -0
  15. package/lib/parser/cals/utils/version/config.d.ts.map +1 -0
  16. package/lib/parser/cals/utils/version/config.js +244 -0
  17. package/lib/parser/cals/utils/version/index.js +96 -0
  18. package/lib/parser/cals/utils/version/parses.js +581 -0
  19. package/lib/parser/cals/utils/version/utils.d.ts +14 -0
  20. package/lib/parser/cals/utils/version/utils.d.ts.map +1 -0
  21. package/lib/parser/cals/utils/version/utils.js +148 -0
  22. package/lib/parser/dependiencies/index.d.ts +116 -0
  23. package/lib/parser/dependiencies/index.d.ts.map +1 -0
  24. package/lib/parser/dependiencies/index.js +674 -0
  25. package/lib/parser/expression/index.d.ts +123 -0
  26. package/lib/parser/expression/index.d.ts.map +1 -0
  27. package/lib/parser/expression/index.js +301 -0
  28. package/lib/parser/index.d.ts +2 -1
  29. package/lib/parser/index.d.ts.map +1 -1
  30. package/lib/parser/index.js +3 -1
  31. package/lib/parser/plugins/postcss-rpx2clac.d.ts +18 -0
  32. package/lib/parser/plugins/postcss-rpx2clac.d.ts.map +1 -0
  33. package/lib/parser/plugins/postcss-rpx2clac.js +68 -0
  34. package/lib/types/basic/app.d.ts +73 -0
  35. package/lib/types/basic/app.d.ts.map +1 -0
  36. package/lib/types/basic/app.js +2 -0
  37. package/lib/types/basic/common.d.ts +93 -0
  38. package/lib/types/basic/common.d.ts.map +1 -0
  39. package/lib/types/basic/common.js +2 -0
  40. package/lib/types/basic/component.d.ts +211 -0
  41. package/lib/types/basic/component.d.ts.map +1 -0
  42. package/lib/types/basic/component.js +2 -0
  43. package/lib/types/basic/datasource.d.ts +50 -0
  44. package/lib/types/basic/datasource.d.ts.map +1 -0
  45. package/lib/types/basic/datasource.js +2 -0
  46. package/lib/types/index.js +42 -0
  47. package/lib/types/lcds.js +25 -0
  48. package/lib/types/platform/app.js +11 -0
  49. package/lib/types/platform/common.d.ts +181 -0
  50. package/lib/types/platform/common.d.ts.map +1 -0
  51. package/lib/types/platform/common.js +87 -0
  52. package/lib/types/platform/component.d.ts +139 -0
  53. package/lib/types/platform/component.d.ts.map +1 -0
  54. package/lib/types/platform/component.js +11 -0
  55. package/lib/types/platform/datasource.d.ts +467 -0
  56. package/lib/types/platform/datasource.d.ts.map +1 -0
  57. package/lib/types/platform/datasource.js +2 -0
  58. package/lib/types/platform/eventFlow.d.ts +20 -0
  59. package/lib/types/platform/eventFlow.d.ts.map +1 -0
  60. package/lib/types/platform/eventFlow.js +2 -0
  61. package/lib/types/platform/query.d.ts +67 -0
  62. package/lib/types/platform/query.d.ts.map +1 -0
  63. package/lib/types/platform/query.js +2 -0
  64. package/lib/types/platform/theme.js +2 -0
  65. package/lib/types/platform/widget/form.d.ts +5 -0
  66. package/lib/types/platform/widget/form.d.ts.map +1 -0
  67. package/lib/types/platform/widget/form.js +5 -0
  68. package/lib/types/platform/widget/meta.d.ts +60 -0
  69. package/lib/types/platform/widget/meta.d.ts.map +1 -0
  70. package/lib/types/platform/widget/meta.js +6 -0
  71. package/lib/utils/CSSProperty.d.ts +64 -0
  72. package/lib/utils/CSSProperty.d.ts.map +1 -0
  73. package/lib/utils/CSSProperty.js +89 -0
  74. package/lib/utils/build.d.ts +2 -0
  75. package/lib/utils/build.d.ts.map +1 -0
  76. package/lib/utils/build.js +75 -0
  77. package/lib/utils/constant.d.ts +19 -0
  78. package/lib/utils/constant.d.ts.map +1 -1
  79. package/lib/utils/constant.js +24 -1
  80. package/lib/utils/dts/auto-generated.d.ts +2 -0
  81. package/lib/utils/dts/auto-generated.d.ts.map +1 -0
  82. package/lib/utils/dts/auto-generated.js +1796 -0
  83. package/lib/utils/dts/build.d.ts +2 -0
  84. package/lib/utils/dts/build.d.ts.map +1 -0
  85. package/lib/utils/dts/build.js +136 -0
  86. package/lib/utils/dts/index.js +1008 -0
  87. package/lib/utils/index.js +27 -0
  88. package/lib/utils/version/common.d.ts +3 -0
  89. package/lib/utils/version/common.d.ts.map +1 -0
  90. package/lib/utils/version/common.js +27 -0
  91. package/lib/utils/version/featureChecker.js +35 -0
  92. package/lib/utils/version/migrations/version4.js +199 -0
  93. package/package.json +4 -4
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ECodeName = exports.ECodeType = exports.EResourceType = void 0;
4
+ /**
5
+ * 资源类型
6
+ */
7
+ exports.EResourceType = {
8
+ CODE: 'CODE',
9
+ LIBRARY: 'LIBRARY',
10
+ };
11
+ var ECodeType;
12
+ (function (ECodeType) {
13
+ /**
14
+ * 生命周期
15
+ */
16
+ ECodeType["LIFECYCLE"] = "lifecycle";
17
+ /**
18
+ * 配置
19
+ */
20
+ ECodeType["CONFIG"] = "config";
21
+ /**
22
+ * 状态
23
+ */
24
+ ECodeType["STATE"] = "state";
25
+ /**
26
+ * 计算状态
27
+ */
28
+ ECodeType["COMPUTEDN"] = "computed";
29
+ /**
30
+ * 处理方法,用于处理页面级别的逻辑
31
+ * 拥有页面实例上下文,如可取得 state 状态 page/hanlder
32
+ */
33
+ ECodeType["HANDLER_FN"] = "handler-fn";
34
+ /**
35
+ * 一般的模块
36
+ * 可以是任意JS模块,但不具有页面实例上下文。一般用于写通用方法等 global/common
37
+ */
38
+ ECodeType["NORMAL_MODULE"] = "normal-module";
39
+ /**
40
+ * less 文件
41
+ */
42
+ ECodeType["STYLE"] = "style";
43
+ /**
44
+ * theme less
45
+ */
46
+ ECodeType["THEME"] = "theme";
47
+ /**
48
+ * 小程序全局配置
49
+ */
50
+ ECodeType["MPCONFIG"] = "mp_config";
51
+ /**
52
+ * 渲染器类型 JSX
53
+ */
54
+ ECodeType["RENDERER"] = "renderer";
55
+ })(ECodeType = exports.ECodeType || (exports.ECodeType = {}));
56
+ var ECodeName;
57
+ (function (ECodeName) {
58
+ ECodeName["LIFECYCLE"] = "lifecycle";
59
+ ECodeName["CONFIG"] = "config";
60
+ ECodeName["STATE"] = "state";
61
+ ECodeName["COMPUTEDN"] = "computed";
62
+ ECodeName["STYLE"] = "style";
63
+ ECodeName["THEME"] = "theme";
64
+ /**
65
+ * 小程序全局配置
66
+ */
67
+ ECodeName["MPCONFIG"] = "mp_config";
68
+ /**
69
+ * 目录
70
+ * jsx 类型,渲染器
71
+ */
72
+ ECodeName["RENDERER"] = "renderer";
73
+ /**
74
+ * 目录
75
+ * 处理方法,用于处理页面级别的逻辑。拥有页面实例上下文,如可取得 state 状态 page/hanlder
76
+ */
77
+ ECodeName["HANDLER_FN"] = "handler";
78
+ /**
79
+ * 目录
80
+ */
81
+ ECodeName["NORMAL_MODULE"] = "common";
82
+ /**
83
+ * @deprecated
84
+ * 用于占位,保证目录有文件。在处理的时候可对此类文件进行隐藏
85
+ */
86
+ ECodeName["PLACEHOLDER"] = "____index____";
87
+ })(ECodeName = exports.ECodeName || (exports.ECodeName = {}));
@@ -0,0 +1,139 @@
1
+ import * as Basic from '../basic/component';
2
+ import { ICodeResource, IPlatformDataset, IPlatformListener } from './common';
3
+ import { IDataSourceVariable } from './datasource';
4
+ declare type Values<T> = T[keyof T];
5
+ /**
6
+ * 组件类型
7
+ */
8
+ export declare const EComponentType: {
9
+ readonly BASIC: "BASIC";
10
+ readonly COMPLEX: "COMPLEX";
11
+ readonly PAGE: "PAGE";
12
+ };
13
+ export interface IPlatformAttributes extends Basic.IAttributes {
14
+ /**
15
+ * 可选, 皮肤
16
+ */
17
+ theme?: string;
18
+ }
19
+ /**
20
+ * 云开发低码平台组件
21
+ */
22
+ export interface IPlatformComponent extends Omit<Basic.IComponent, 'value' | 'valueFilterNam' | 'validity' | 'attributes' | 'events'> {
23
+ /**
24
+ * 可选, 组件控制属性
25
+ */
26
+ attributes?: IPlatformAttributes;
27
+ /**
28
+ * 选填, 组件类型
29
+ */
30
+ type?: Values<typeof EComponentType>;
31
+ /**
32
+ * 可选, 组件绑定的监听器
33
+ */
34
+ listeners?: IPlatformListener[];
35
+ /**
36
+ * 可选,平台实现有关字段
37
+ */
38
+ extra?: IPlatformComponentExtra;
39
+ items?: IPlatformComponent[];
40
+ }
41
+ export interface IPlatformComponentExtra {
42
+ /**
43
+ * 可选,样式分组配置
44
+ * {selt: {}, margin: {}, text: {}, custom: []}
45
+ */
46
+ commonStyle?: object;
47
+ /**
48
+ * @deprecated
49
+ * 可选,组件顺序 formily x-index
50
+ * https://github.com/alibaba/formily/blob/master/packages/react-schema-renderer/README.md
51
+ */
52
+ xIndex?: number;
53
+ staticResourceAttribute?: string[];
54
+ /**
55
+ * style bind path
56
+ */
57
+ styleBindPath?: string;
58
+ /**
59
+ * 未知用处 children
60
+ */
61
+ children?: IPlatformComponent[];
62
+ /**
63
+ * @deprecated
64
+ * 是否再门户网站中的菜单中隐藏页面对应的菜单项
65
+ * 菜单由单独的菜单配置管理,此处不再使用
66
+ */
67
+ hideAdminPortalMenu?: boolean;
68
+ /**
69
+ * 属性绑定的额外补充信息
70
+ */
71
+ attributeExtraData?: {
72
+ [attribute: string]: any;
73
+ };
74
+ }
75
+ /**
76
+ * 默认组件, 由平台提供的组件
77
+ */
78
+ export interface IBasicComponent extends IPlatformComponent {
79
+ type?: 'BASIC';
80
+ }
81
+ /**
82
+ * 自定义组件, 开发者组合已有的默认组件, 得到的新组件
83
+ */
84
+ export interface IComplexComponent extends IPlatformComponent {
85
+ type?: 'COMPLEX';
86
+ id: string;
87
+ }
88
+ /**
89
+ * 页面组件, 描述整个页面的组件
90
+ */
91
+ export interface IPageComponent extends Omit<IPlatformComponent, 'events'> {
92
+ type: 'PAGE';
93
+ /** 页面 id,对应页面 path */
94
+ id: string;
95
+ items?: IPlatformComponent[];
96
+ /**
97
+ * 可选, 变量集合
98
+ */
99
+ dataset?: IPlatformDataset;
100
+ /**
101
+ * 事件流nanoFlow
102
+ */
103
+ /**
104
+ * 可选, 数据源变量集合
105
+ *
106
+ * @deprecated
107
+ */
108
+ dataVariables?: IDataSourceVariable[];
109
+ /**
110
+ * 可选, 页面的资源集合
111
+ *
112
+ * 页面级别只挂载了 code 资源
113
+ */
114
+ resources?: ICodeResource[];
115
+ }
116
+ export interface IPageComponentLifeCycle extends Basic.IEvents {
117
+ /**
118
+ * 可选,onShow钩子函数名称
119
+ */
120
+ lifecycleOnShowEventName?: string;
121
+ /**
122
+ * 可选,onLoad钩子函数名称
123
+ */
124
+ lifecycleOnLoadEventName?: string;
125
+ /**
126
+ * 可选,onReady钩子函数名称
127
+ */
128
+ lifecycleOnReadyEventName?: string;
129
+ /**
130
+ * 可选,onHide钩子函数名称
131
+ */
132
+ lifecycleOnHideEventName?: string;
133
+ /**
134
+ * 可选,onUnload钩子函数名称
135
+ */
136
+ lifecycleOnUnloadEventName?: string;
137
+ }
138
+ export {};
139
+ //# sourceMappingURL=component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/types/platform/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,aAAK,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5B;;GAEG;AACH,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,WAAW;IAC5D;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,GAAG,gBAAgB,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;IACjG;;OAEG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;IAErC;;OAEG;IACH,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAEhC;;OAEG;IACH,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAEhC,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAEhC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,kBAAkB,CAAC,EAAE;QAAE,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IAEX,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAE7B;;OAEG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAE3B;;OAEG;IAGH;;;;OAIG;IACH,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAEtC;;;;OAIG;IACH,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;CAQ7B;AAED,MAAM,WAAW,uBAAwB,SAAQ,KAAK,CAAC,OAAO;IAC5D;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;OAEG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;OAEG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EComponentType = void 0;
4
+ /**
5
+ * 组件类型
6
+ */
7
+ exports.EComponentType = {
8
+ BASIC: 'BASIC',
9
+ COMPLEX: 'COMPLEX',
10
+ PAGE: 'PAGE',
11
+ };
@@ -0,0 +1,467 @@
1
+ /**
2
+ * 微搭数据源结构
3
+ */
4
+ export declare type IPlatformDataSource = IDatabaseDataSource | ICloudIntegrationDataSource;
5
+ /**
6
+ * 数据源基本通用信息
7
+ */
8
+ export interface IDataSourceBase {
9
+ /** 数据源ID */
10
+ id: string;
11
+ /**
12
+ * 数据源描述名称
13
+ */
14
+ title: string;
15
+ /**
16
+ * 数据源标识
17
+ */
18
+ name: string;
19
+ /**
20
+ * 数据源类型
21
+ */
22
+ type: string;
23
+ /** 数据源子类型 */
24
+ subType?: string;
25
+ /** 数据源描述信息 */
26
+ description: string;
27
+ /** 数据源模型信息 */
28
+ schema: any;
29
+ /**
30
+ * 数据源的公共配置
31
+ */
32
+ configuration: any;
33
+ /**
34
+ * 数据源自定义方法
35
+ */
36
+ methods: IDataSourceMethod[];
37
+ /**
38
+ * 数据源描述信息的版本号
39
+ */
40
+ version: string;
41
+ /**
42
+ * 数据源描述使用的schema版本
43
+ */
44
+ schemaVersion: string;
45
+ }
46
+ export interface IConfigurationBase {
47
+ /** 公共变量 */
48
+ vars?: ISimpleField;
49
+ }
50
+ /** 云端集成数据源 */
51
+ export interface ICloudIntegrationDataSource extends IDataSourceBase {
52
+ /**
53
+ * 数据源类型: 连接器(原第三方数据源)
54
+ */
55
+ type: 'cloud-integration';
56
+ /**
57
+ * 子类型, 默认为 custom-connector
58
+ * custom-database 用户自定义模型, 模型内的方法的出参入参与 database 一致, 但是方法内容由用户自己实现
59
+ * custom-connector: 自定义连接器
60
+ * connector: 标准连接器, 由微搭提供功能实现, 用户只需要进行简单的授权设置
61
+ */
62
+ subType?: 'custom-database' | 'custom-connector' | 'connector';
63
+ /** 第三方数据源基础配置 */
64
+ configuration: ICloudIntegrationConfig;
65
+ }
66
+ /**
67
+ * 云端集成类型的数据源配置
68
+ */
69
+ export interface ICloudIntegrationConfig extends IConfigurationBase {
70
+ /**
71
+ * 第三方数据源提供者
72
+ * tencent-meeting 腾讯会议
73
+ * tencent-docs 腾讯文档
74
+ */
75
+ provider?: string;
76
+ /**
77
+ * 基准URL
78
+ */
79
+ baseUrl?: string;
80
+ /**
81
+ * 公共请求头
82
+ */
83
+ header?: {
84
+ values: IHttpField;
85
+ };
86
+ }
87
+ /**
88
+ * 内建数据源
89
+ */
90
+ export interface IDatabaseDataSource extends IDataSourceBase {
91
+ /**
92
+ * 数据源类型: 模型数据源
93
+ */
94
+ type: 'database';
95
+ /**
96
+ * 子类型, 默认值为 database:
97
+ * database 即原来的自建数据源, 依赖云开发自身的云数据库做数据存储
98
+ * system 系统模型, 微搭系统自带的数据源, 如 用户、组织架构等等
99
+ */
100
+ subType?: 'database' | 'system';
101
+ configuration: IConfigurationBase;
102
+ schema: IDatabaseSchema;
103
+ }
104
+ /** 自建数据源模型信息 */
105
+ export interface IDatabaseSchema extends IJsonSchemaObject {
106
+ /** 数据库类型, 默认 tcb */
107
+ 'x-kind'?: string;
108
+ /**
109
+ * 启用的内置方法名称
110
+ * 内置方法名称均需使用 weda 前缀, 自定义方法名称则不允许以 weda 开头
111
+ * wedaCreate, wedaDelete, wedaUpdate, wedaGetItem, wedaGetList, wedaGetRecords
112
+ */
113
+ 'x-defaultMethods': string[];
114
+ /**
115
+ * 新建/编辑 数据源不需要该字段
116
+ * 后续优化,用于告诉服务端是否创建表格。 create 标识创建表格, exist 表示搜索确定表格
117
+ * @deprecated
118
+ */
119
+ 'x-relatedType': 'exist' | 'create';
120
+ /**
121
+ * 新建/编辑数据源时不需要该字段, 运行态需要使用 viewId
122
+ * 当x-relatedType为exist时有效,对应模型的视图id
123
+ * @deprecated
124
+ */
125
+ 'x-viewId': string;
126
+ }
127
+ /**
128
+ * 字段schema字段基础信息
129
+ */
130
+ interface IJsonSchemaBase {
131
+ /** 字段类型: object */
132
+ type: string;
133
+ /** 字段中文名称 */
134
+ title?: string;
135
+ /** 字段描述 */
136
+ description?: string;
137
+ /** 默认值, 与当前字段类型结构应当保持一致 */
138
+ default?: any;
139
+ 'x-required'?: boolean;
140
+ /** 前端UI冗余字段 */
141
+ 'x-id'?: string;
142
+ /** http 方法的出参中, 用于描述原始响应结果与出参的字段映射关系 */
143
+ 'x-keyPath'?: string;
144
+ /**
145
+ * 属性排序,用于前端展示字段的顺序,或者其他字段顺序相关操作,从1开始
146
+ */
147
+ 'x-index'?: number;
148
+ /**
149
+ * 是否唯一
150
+ */
151
+ 'x-unique'?: boolean;
152
+ /**
153
+ * 枚举值, 只列出值, 方便利用 json schema 特性校验
154
+ * 这里需要注意, enum 需要与 x-enumObj 的信息对应:
155
+ * 若有枚举, 两个字段的内容应当匹配
156
+ * 若无枚举, 则无这两字段
157
+ */
158
+ enum?: any[];
159
+ /** 枚举值, 详细描述对象, 供前端使用 */
160
+ 'x-enumObj'?: IEnumOption[];
161
+ }
162
+ /**
163
+ * 单个枚举成员
164
+ */
165
+ export interface IEnumOption {
166
+ /** 枚举显示的文字 */
167
+ label: string;
168
+ /** 内部存储的值 */
169
+ value: any;
170
+ /** 详细描述 */
171
+ description?: string;
172
+ }
173
+ /** 字段关联信息 */
174
+ export interface IJsonSchemaLinkage {
175
+ /**
176
+ * 关联父数据源内容
177
+ * 必须string,number。(当前消息 id 是 string,_id: mongo string)
178
+ * 需求相关:https://qxhe1g.axshare.com/#g=1&p=%E4%B8%BB%E5%AD%90%E6%98%8E%E7%BB%86%E5%AD%97%E6%AE%B5
179
+ */
180
+ 'x-parent'?: {
181
+ /**
182
+ * 关联父数据源关系 related | father-son
183
+ */
184
+ type: 'related' | 'father-son';
185
+ /**
186
+ * 关联的数据源viewID, 设计态不使用, 运行态使用
187
+ * @deprecated
188
+ */
189
+ parentViewId: string;
190
+ parentDataSourceName: string;
191
+ /**
192
+ * father-son 关系下有效
193
+ * prompt-not-delete(提示不允许删除)
194
+ * judge()
195
+ */
196
+ fatherAction?: 'prompt-not-delete' | 'judge';
197
+ };
198
+ }
199
+ /** 任意类型的 schema 定义 */
200
+ export declare type IJsonSchemaAny = IJsonSchemaObject | IJsonSchemaString | IJsonSchemaNumber | IJsonSchemaBool | IJsonSchemaArray;
201
+ /** 对象 */
202
+ export interface IJsonSchemaObject extends IJsonSchemaBase {
203
+ type: 'object';
204
+ /** 对象的属性 */
205
+ properties: {
206
+ [k: string]: IJsonSchemaAny;
207
+ };
208
+ /**
209
+ * 是否允许 properties 中未声明的字段, 可不传, 默认 true
210
+ * https://json-schema.org/understanding-json-schema/reference/object.html#id5
211
+ */
212
+ additionalProperties?: true;
213
+ /** 必填属性列表 */
214
+ required?: string[];
215
+ }
216
+ /** 数组 */
217
+ export interface IJsonSchemaArray extends IJsonSchemaBase {
218
+ type: 'array';
219
+ /** 数组成员 */
220
+ items: IJsonSchemaAny;
221
+ }
222
+ /** 字符串 */
223
+ export interface IJsonSchemaString extends IJsonSchemaBase, IJsonSchemaLinkage {
224
+ type: 'string';
225
+ /**
226
+ * 字段格式
227
+ * 目前支持的有
228
+ * email, tel, phone, cnName, url
229
+ */
230
+ format?: string;
231
+ pattern?: string;
232
+ minLength?: number;
233
+ maxLength?: number;
234
+ }
235
+ /** 数字 */
236
+ export interface IJsonSchemaNumber extends IJsonSchemaBase, IJsonSchemaLinkage {
237
+ type: 'number';
238
+ /**
239
+ * 字段格式
240
+ * date, time, age
241
+ */
242
+ format?: string;
243
+ minimum?: number;
244
+ maximum?: number;
245
+ }
246
+ /** 布尔 */
247
+ export interface IJsonSchemaBool extends IJsonSchemaBase {
248
+ type: 'boolean';
249
+ }
250
+ /**
251
+ * 云开发云函数字段, 其值为云函数名称
252
+ * !!! 该字段目前仅内部使用, 用户在新建字段、入参数出参时不可选该类型
253
+ */
254
+ export interface IJsonSchemaScf extends IJsonSchemaBase {
255
+ type: '_scf_';
256
+ }
257
+ /**
258
+ * 数据源方法
259
+ */
260
+ export declare type IDataSourceMethod = IHttpMethod | ICloudMethod | IScfMethod;
261
+ /**
262
+ * 数据源方法基本信息
263
+ */
264
+ export interface IDataMethodBase {
265
+ /**
266
+ * 必填, 操作方法名, 在数据源中唯一
267
+ *
268
+ * 以下为默认预置的方法名, 作为默认方法
269
+ * getList
270
+ * getRecords
271
+ * getItem
272
+ * update
273
+ * create
274
+ * delete
275
+ */
276
+ name: string;
277
+ /**
278
+ * 选填, 数据源方法别名
279
+ */
280
+ title: string;
281
+ /** 方法类型 */
282
+ type: string;
283
+ /**
284
+ * 必填, 方法分类
285
+ * get-list
286
+ * get-item
287
+ * update
288
+ * create
289
+ * delete
290
+ */
291
+ intent: 'get-list' | 'get-item' | 'update' | 'create' | 'delete';
292
+ /**
293
+ * 选填, 数据源方法的描述
294
+ */
295
+ description?: string;
296
+ /**
297
+ * 方法是否禁用, 留空则默认启用
298
+ * 为true则方法定义后不实际使用
299
+ */
300
+ disabled?: boolean;
301
+ /**
302
+ * 选填, 数据源方法的实现
303
+ */
304
+ calleeBody?: any;
305
+ /**
306
+ * 数据源方法的额外入参结构描述对象
307
+ * 作为数据源的固定入参, 不可修改, 需要用户在定义数据源时自行填写内容, 值的结果存入 calleeBody.presetParams 中
308
+ * 该字段用户不可编辑修改, 正常应当只在基于模版创建的数据源中会预制该值
309
+ */
310
+ presetParams?: Record<string, IJsonSchemaScf | IJsonSchemaAny>;
311
+ /**
312
+ * 选填, 入参结构
313
+ */
314
+ inParams?: IJsonSchemaObject;
315
+ /** 出参 */
316
+ outParams: IJsonSchemaObject;
317
+ }
318
+ /**
319
+ * http类型的数据源方法
320
+ */
321
+ export interface IHttpMethod extends IDataMethodBase {
322
+ /**
323
+ * 方法实现类型
324
+ */
325
+ type: 'http';
326
+ /** 请求核心信息 */
327
+ calleeBody: {
328
+ /** 请求地址 */
329
+ url: string;
330
+ /** 请求方法 */
331
+ method: string;
332
+ /** http 请求参数配置 */
333
+ /** 自定义头 */
334
+ header?: {
335
+ values: IHttpField;
336
+ };
337
+ /** query 查询参数 */
338
+ query?: {
339
+ values: IHttpField;
340
+ };
341
+ /** 请求body, 仅 post 和 get 方法有 */
342
+ body?: {
343
+ contentType: 'json' | 'form' | 'xml' | 'none';
344
+ values: IHttpField;
345
+ };
346
+ };
347
+ }
348
+ /**
349
+ * 云函数类型的数据源方法
350
+ */
351
+ export interface ICloudMethod extends IDataMethodBase {
352
+ /**
353
+ * 必填, 方法的实现类型
354
+ * cloud-function 云函数
355
+ */
356
+ type: 'cloud-function';
357
+ /**
358
+ * 必填, 数据源方法的实现
359
+ */
360
+ calleeBody: {
361
+ /**
362
+ * 即函数源码
363
+ */
364
+ callee: string;
365
+ /**
366
+ * 其他配置项, 如云函数执行环境配置, 函数依赖的包信息(需注意: 同一数据源同一类型 云函数/本地函数 的数据源实现方法中的依赖版本需兼容匹配)
367
+ * config: {deps: {'lodash': '*', 'request': '2.88'}}
368
+ */
369
+ config?: object;
370
+ };
371
+ }
372
+ /**
373
+ * 云开发(tcb)云函数类型的数据源方法
374
+ */
375
+ export interface IScfMethod extends IDataMethodBase {
376
+ /**
377
+ * 必填, 方法的实现类型
378
+ * scf 云函数
379
+ */
380
+ type: 'scf';
381
+ /**
382
+ * 必填, 数据源方法的实现
383
+ */
384
+ calleeBody: {
385
+ /**
386
+ * scf 函数名称
387
+ */
388
+ fnName: string;
389
+ };
390
+ }
391
+ /**
392
+ * 简单字段结构
393
+ */
394
+ export declare type ISimpleField = IHttpField;
395
+ /** http 配置的字段 */
396
+ export interface IHttpField {
397
+ /**
398
+ * 字段名称
399
+ * 仅根节点可选, 其他节点必填
400
+ */
401
+ key?: string | number;
402
+ /**
403
+ * 字段数据类型
404
+ * 在 http body 中, 字段数据类型可以是 string, number, null, boolean, array, object
405
+ * 在 header 和 query中, 字段数据类型则只能是 string
406
+ */
407
+ type: string;
408
+ /**
409
+ * 字段值, 若使用入参中的值, 则使用 {{xxx}} 形式
410
+ * 非 array 和 object 类型应必须有 value
411
+ * array 和 object 类型的, 若有绑定入参, 则有该值
412
+ */
413
+ value?: any;
414
+ /**
415
+ * 字段类型若为 array 或 object 且无入参绑定, 则有该字段
416
+ * 若type为 array, IHttpField 的key为 number, 即数组索引
417
+ * 若type为 array, IHttpField 的key为 string, 即对象的key
418
+ **/
419
+ items?: IHttpField[];
420
+ }
421
+ /**
422
+ * 数据源变量的描述
423
+ */
424
+ export interface IDataSourceVariable {
425
+ /**
426
+ * 必填, 数据源变量的英文标识
427
+ */
428
+ name: string;
429
+ /**
430
+ * 选填, 数据源变量的中文标识
431
+ */
432
+ label?: string;
433
+ /** 变量类型 */
434
+ varType: 'datasource';
435
+ /**
436
+ * 选填, 数据源变量的类型
437
+ * record-collection 集合类型, 对应数据源 get-list 类型的方法
438
+ * new-record 新纪录类型, 用于表单, 对应数据源 create 类型的方法
439
+ * single-record 单条记录类型, 对应数据源 get-item 类型的方法
440
+ * single-record-edit 单条记录·编辑类型, 对应数据源 get-item/update 类型的方法
441
+ * 若数据源无对应方法, 则不能选择相应类型变量
442
+ */
443
+ dataType?: 'record-collection' | 'new-record' | 'single-record' | 'single-record-edit';
444
+ /**
445
+ * 必填, 绑定的数据源名称
446
+ */
447
+ dataSourceName: string;
448
+ /**
449
+ * 变量初始化的方法, 集合/单条记录类型变量需有该方法
450
+ */
451
+ initMethod?: IDataVarMethod;
452
+ /**
453
+ * 变量更新时候的方法, 新纪录/单条记录·编辑类型需有该方法
454
+ */
455
+ updateMethod?: IDataVarMethod;
456
+ }
457
+ /**
458
+ * 数据源变量关联的方法
459
+ */
460
+ export interface IDataVarMethod {
461
+ /** 数据源的方法名称 */
462
+ name: string;
463
+ /** 方法入参 */
464
+ params?: object;
465
+ }
466
+ export {};
467
+ //# sourceMappingURL=datasource.d.ts.map