@byted-apaas/server-sdk-node 0.0.2-beta.1

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 (215) hide show
  1. package/LICENSE.md +0 -0
  2. package/README.md +1 -0
  3. package/application/application.d.ts +27 -0
  4. package/application/application.js +3 -0
  5. package/application/application.js.map +1 -0
  6. package/application/application.ts +40 -0
  7. package/application/function/function.d.ts +14 -0
  8. package/application/function/function.js +22 -0
  9. package/application/function/function.js.map +1 -0
  10. package/application/function/function.ts +37 -0
  11. package/application/impl/common.d.ts +2 -0
  12. package/application/impl/common.js +51 -0
  13. package/application/impl/common.js.map +1 -0
  14. package/application/impl/common.ts +50 -0
  15. package/application/impl/impl.d.ts +16 -0
  16. package/application/impl/impl.js +39 -0
  17. package/application/impl/impl.js.map +1 -0
  18. package/application/impl/impl.ts +48 -0
  19. package/constants/constants.d.ts +10 -0
  20. package/constants/constants.js +14 -0
  21. package/constants/constants.js.map +1 -0
  22. package/constants/constants.ts +12 -0
  23. package/context/context.d.ts +74 -0
  24. package/context/context.js +24 -0
  25. package/context/context.js.map +1 -0
  26. package/context/context.ts +127 -0
  27. package/context/db/db.d.ts +73 -0
  28. package/context/db/db.js +3 -0
  29. package/context/db/db.js.map +1 -0
  30. package/context/db/db.ts +77 -0
  31. package/context/db/impl/IObject.d.ts +251 -0
  32. package/context/db/impl/IObject.js +4 -0
  33. package/context/db/impl/IObject.js.map +1 -0
  34. package/context/db/impl/IObject.ts +244 -0
  35. package/context/db/impl/db.d.ts +61 -0
  36. package/context/db/impl/db.js +87 -0
  37. package/context/db/impl/db.js.map +1 -0
  38. package/context/db/impl/db.ts +95 -0
  39. package/context/db/impl/object.d.ts +92 -0
  40. package/context/db/impl/object.js +523 -0
  41. package/context/db/impl/object.js.map +1 -0
  42. package/context/db/impl/object.ts +628 -0
  43. package/context/db/impl/oql/ioql.d.ts +6 -0
  44. package/context/db/impl/oql/ioql.js +3 -0
  45. package/context/db/impl/oql/ioql.js.map +1 -0
  46. package/context/db/impl/oql/ioql.ts +6 -0
  47. package/context/db/impl/oql/oql.d.ts +8 -0
  48. package/context/db/impl/oql/oql.js +20 -0
  49. package/context/db/impl/oql/oql.js.map +1 -0
  50. package/context/db/impl/oql/oql.ts +22 -0
  51. package/context/db/impl/order.d.ts +9 -0
  52. package/context/db/impl/order.js +14 -0
  53. package/context/db/impl/order.js.map +1 -0
  54. package/context/db/impl/order.ts +16 -0
  55. package/context/db/impl/propertiesStore.d.ts +8 -0
  56. package/context/db/impl/propertiesStore.js +28 -0
  57. package/context/db/impl/propertiesStore.js.map +1 -0
  58. package/context/db/impl/propertiesStore.ts +28 -0
  59. package/context/db/impl/queryBuilder.d.ts +29 -0
  60. package/context/db/impl/queryBuilder.js +77 -0
  61. package/context/db/impl/queryBuilder.js.map +1 -0
  62. package/context/db/impl/queryBuilder.ts +103 -0
  63. package/context/db/impl/transaction/index.d.ts +20 -0
  64. package/context/db/impl/transaction/index.js +276 -0
  65. package/context/db/impl/transaction/index.js.map +1 -0
  66. package/context/db/impl/transaction/index.ts +337 -0
  67. package/context/db/impl/transaction/operation.d.ts +27 -0
  68. package/context/db/impl/transaction/operation.js +70 -0
  69. package/context/db/impl/transaction/operation.js.map +1 -0
  70. package/context/db/impl/transaction/operation.ts +72 -0
  71. package/context/db/impl/transaction.d.ts +67 -0
  72. package/context/db/impl/transaction.js +3 -0
  73. package/context/db/impl/transaction.js.map +1 -0
  74. package/context/db/impl/transaction.ts +76 -0
  75. package/context/globalConfig/globalConfig.d.ts +7 -0
  76. package/context/globalConfig/globalConfig.js +15 -0
  77. package/context/globalConfig/globalConfig.js.map +1 -0
  78. package/context/globalConfig/globalConfig.ts +11 -0
  79. package/context/metadata/components/common.d.ts +6 -0
  80. package/context/metadata/components/common.js +16 -0
  81. package/context/metadata/components/common.js.map +1 -0
  82. package/context/metadata/components/common.ts +19 -0
  83. package/context/metadata/components/components.d.ts +12 -0
  84. package/context/metadata/components/components.js +18 -0
  85. package/context/metadata/components/components.js.map +1 -0
  86. package/context/metadata/components/components.ts +19 -0
  87. package/context/metadata/components/desktop/list.d.ts +16 -0
  88. package/context/metadata/components/desktop/list.js +403 -0
  89. package/context/metadata/components/desktop/list.js.map +1 -0
  90. package/context/metadata/components/desktop/list.ts +457 -0
  91. package/context/metadata/components/desktop/recordDetail.d.ts +11 -0
  92. package/context/metadata/components/desktop/recordDetail.js +52 -0
  93. package/context/metadata/components/desktop/recordDetail.js.map +1 -0
  94. package/context/metadata/components/desktop/recordDetail.ts +64 -0
  95. package/context/metadata/components/mobile/list.d.ts +24 -0
  96. package/context/metadata/components/mobile/list.js +144 -0
  97. package/context/metadata/components/mobile/list.js.map +1 -0
  98. package/context/metadata/components/mobile/list.ts +176 -0
  99. package/context/metadata/metadata.d.ts +61 -0
  100. package/context/metadata/metadata.js +102 -0
  101. package/context/metadata/metadata.js.map +1 -0
  102. package/context/metadata/metadata.ts +175 -0
  103. package/context/metadata/objects/fields.d.ts +130 -0
  104. package/context/metadata/objects/fields.js +333 -0
  105. package/context/metadata/objects/fields.js.map +1 -0
  106. package/context/metadata/objects/fields.ts +454 -0
  107. package/context/metadata/objects/fields.util.d.ts +40 -0
  108. package/context/metadata/objects/fields.util.js +320 -0
  109. package/context/metadata/objects/fields.util.js.map +1 -0
  110. package/context/metadata/objects/fields.util.ts +360 -0
  111. package/context/metadata/objects/objects.d.ts +11 -0
  112. package/context/metadata/objects/objects.js +19 -0
  113. package/context/metadata/objects/objects.js.map +1 -0
  114. package/context/metadata/objects/objects.ts +27 -0
  115. package/context/metadata/types/common.d.ts +6 -0
  116. package/context/metadata/types/common.js +8 -0
  117. package/context/metadata/types/common.js.map +1 -0
  118. package/context/metadata/types/common.ts +10 -0
  119. package/context/metadata/types/components.d.ts +90 -0
  120. package/context/metadata/types/components.js +3 -0
  121. package/context/metadata/types/components.js.map +1 -0
  122. package/context/metadata/types/components.ts +105 -0
  123. package/context/metadata/types/objects.d.ts +226 -0
  124. package/context/metadata/types/objects.js +3 -0
  125. package/context/metadata/types/objects.js.map +1 -0
  126. package/context/metadata/types/objects.ts +251 -0
  127. package/context/msg/msg.d.ts +38 -0
  128. package/context/msg/msg.js +34 -0
  129. package/context/msg/msg.js.map +1 -0
  130. package/context/msg/msg.ts +49 -0
  131. package/context/resources/IResources.d.ts +66 -0
  132. package/context/resources/IResources.js +3 -0
  133. package/context/resources/IResources.js.map +1 -0
  134. package/context/resources/IResources.ts +73 -0
  135. package/context/resources/impl/resources.d.ts +42 -0
  136. package/context/resources/impl/resources.js +149 -0
  137. package/context/resources/impl/resources.js.map +1 -0
  138. package/context/resources/impl/resources.ts +170 -0
  139. package/context/tasks/tasks.d.ts +33 -0
  140. package/context/tasks/tasks.js +140 -0
  141. package/context/tasks/tasks.js.map +1 -0
  142. package/context/tasks/tasks.ts +159 -0
  143. package/data/index.d.ts +27 -0
  144. package/data/index.js +5 -0
  145. package/data/index.js.map +1 -0
  146. package/data/index.ts +30 -0
  147. package/hooks/api.d.ts +61 -0
  148. package/hooks/api.js +328 -0
  149. package/hooks/api.js.map +1 -0
  150. package/hooks/api.ts +341 -0
  151. package/hooks/hooks.d.ts +1 -0
  152. package/hooks/hooks.js +89 -0
  153. package/hooks/hooks.js.map +1 -0
  154. package/hooks/hooks.ts +100 -0
  155. package/kunlun/kunlun.d.ts +55 -0
  156. package/kunlun/kunlun.js +57 -0
  157. package/kunlun/kunlun.js.map +1 -0
  158. package/kunlun/kunlun.ts +69 -0
  159. package/kunlun/operator/IOperator.d.ts +158 -0
  160. package/kunlun/operator/IOperator.js +3 -0
  161. package/kunlun/operator/IOperator.js.map +1 -0
  162. package/kunlun/operator/IOperator.ts +163 -0
  163. package/kunlun/operator/impl/expression.d.ts +47 -0
  164. package/kunlun/operator/impl/expression.js +55 -0
  165. package/kunlun/operator/impl/expression.js.map +1 -0
  166. package/kunlun/operator/impl/expression.ts +71 -0
  167. package/kunlun/operator/impl/logic.d.ts +50 -0
  168. package/kunlun/operator/impl/logic.js +508 -0
  169. package/kunlun/operator/impl/logic.js.map +1 -0
  170. package/kunlun/operator/impl/logic.ts +595 -0
  171. package/kunlun/operator/impl/logicV2.d.ts +58 -0
  172. package/kunlun/operator/impl/logicV2.js +201 -0
  173. package/kunlun/operator/impl/logicV2.js.map +1 -0
  174. package/kunlun/operator/impl/logicV2.ts +254 -0
  175. package/kunlun/operator/impl/operator.d.ts +179 -0
  176. package/kunlun/operator/impl/operator.js +221 -0
  177. package/kunlun/operator/impl/operator.js.map +1 -0
  178. package/kunlun/operator/impl/operator.ts +255 -0
  179. package/kunlun/operator/impl/operatorV2.d.ts +180 -0
  180. package/kunlun/operator/impl/operatorV2.js +217 -0
  181. package/kunlun/operator/impl/operatorV2.js.map +1 -0
  182. package/kunlun/operator/impl/operatorV2.ts +249 -0
  183. package/lib/core.d.ts +4 -0
  184. package/lib/core.js +18 -0
  185. package/lib/core.js.map +1 -0
  186. package/lib/core.ts +4 -0
  187. package/package.json +50 -0
  188. package/request/common.d.ts +13 -0
  189. package/request/common.js +88 -0
  190. package/request/common.js.map +1 -0
  191. package/request/common.ts +91 -0
  192. package/request/constants.d.ts +10 -0
  193. package/request/constants.js +26 -0
  194. package/request/constants.js.map +1 -0
  195. package/request/constants.ts +25 -0
  196. package/request/faasinfra.d.ts +8 -0
  197. package/request/faasinfra.js +359 -0
  198. package/request/faasinfra.js.map +1 -0
  199. package/request/faasinfra.ts +393 -0
  200. package/request/innerapi.d.ts +67 -0
  201. package/request/innerapi.js +1411 -0
  202. package/request/innerapi.js.map +1 -0
  203. package/request/innerapi.ts +1645 -0
  204. package/request/interface.d.ts +95 -0
  205. package/request/interface.js +40 -0
  206. package/request/interface.js.map +1 -0
  207. package/request/interface.ts +166 -0
  208. package/request/openapi.d.ts +69 -0
  209. package/request/openapi.js +1013 -0
  210. package/request/openapi.js.map +1 -0
  211. package/request/openapi.ts +1220 -0
  212. package/types/types.d.ts +79 -0
  213. package/types/types.js +3 -0
  214. package/types/types.js.map +1 -0
  215. package/types/types.ts +105 -0
@@ -0,0 +1,523 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._KApplicationObject = exports._KObject = void 0;
4
+ const queryBuilder_1 = require("./queryBuilder");
5
+ const order_1 = require("./order");
6
+ const Request = require("../../../request/interface");
7
+ const logic_1 = require("../../../kunlun/operator/impl/logic");
8
+ const server_common_node_1 = require("@byted-apaas/server-common-node");
9
+ const propertiesStore_1 = require("./propertiesStore");
10
+ const common_1 = require("../../../application/impl/common");
11
+ const logicV2_1 = require("../../../kunlun/operator/impl/logicV2");
12
+ const operator_1 = require("../../../kunlun/operator/impl/operator");
13
+ const queryPropertiesStore = new propertiesStore_1.default();
14
+ // _KObject will be Mixin with [_KObjectSync, _KObjectAsync, _KObjectQuery]
15
+ class _KObject {
16
+ constructor(objectApiName) {
17
+ this.apiName = '';
18
+ if (!objectApiName) {
19
+ throw new server_common_node_1.exceptions.InvalidParamError("objectApiName is empty");
20
+ }
21
+ this.apiName = objectApiName;
22
+ }
23
+ }
24
+ exports._KObject = _KObject;
25
+ class _KApplicationObject {
26
+ constructor(objectApiName, appCtx) {
27
+ this.apiName = '';
28
+ this.appCtx = null;
29
+ this.apiName = objectApiName;
30
+ this.appCtx = appCtx;
31
+ }
32
+ }
33
+ exports._KApplicationObject = _KApplicationObject;
34
+ class _KObjectSync {
35
+ constructor() {
36
+ this.apiName = '';
37
+ this.appCtx = null;
38
+ }
39
+ // create, update, delete
40
+ async create(recordMap) {
41
+ if (!recordMap) {
42
+ throw new server_common_node_1.exceptions.InvalidParamError("record is empty");
43
+ }
44
+ if (server_common_node_1.checkUtils.isNotObject(recordMap)) {
45
+ throw new server_common_node_1.exceptions.InvalidParamError("record is not object");
46
+ }
47
+ if (this.appCtx && this.appCtx.mode == 'openSDK') {
48
+ // request from OpenSDK
49
+ return await (0, common_1.runCtxForOpenSDK)(this.appCtx, async () => {
50
+ return await Request.GetInstance().openSDKCreateRecordBySync(this.apiName, recordMap);
51
+ });
52
+ }
53
+ return await Request.GetInstance().createRecordBySync(this.apiName, recordMap);
54
+ }
55
+ ;
56
+ async delete(recordOrRecordID) {
57
+ // 用户直接传入 record id 来进行删除的情况
58
+ if (typeof recordOrRecordID === "number") {
59
+ return await Request.GetInstance().deleteRecordBySync(this.apiName, recordOrRecordID);
60
+ }
61
+ // 用户传入 object 结构来进行删除的情况
62
+ let record = recordOrRecordID;
63
+ if (server_common_node_1.checkUtils.isObject(record)) {
64
+ // 如果用户没有传入包含 id 的 record,则报错
65
+ if (!record._id) {
66
+ throw new server_common_node_1.exceptions.InvalidParamError("record._id is empty");
67
+ }
68
+ if (this.appCtx && this.appCtx.mode == 'openSDK') {
69
+ // request from OpenSDK
70
+ return await (0, common_1.runCtxForOpenSDK)(this.appCtx, async () => {
71
+ return await Request.GetInstance().openSDKDeleteRecordBySync(this.apiName, record._id);
72
+ });
73
+ }
74
+ return await Request.GetInstance().deleteRecordBySync(this.apiName, record._id);
75
+ }
76
+ throw new server_common_node_1.exceptions.InvalidParamError("record must be number or object");
77
+ }
78
+ ;
79
+ async update(_idOrRecordMap, recordMap) {
80
+ // record 必须包含 _id
81
+ let record;
82
+ // 用户显式传入 id 的情况
83
+ if (recordMap && typeof _idOrRecordMap === "number") {
84
+ record = recordMap;
85
+ record['_id'] = _idOrRecordMap;
86
+ }
87
+ else {
88
+ // 用户隐式传入 id 的情况
89
+ record = _idOrRecordMap;
90
+ if (!record._id) {
91
+ throw new server_common_node_1.exceptions.InvalidParamError("record._id is empty");
92
+ }
93
+ if (typeof record._id !== "number") {
94
+ throw new server_common_node_1.exceptions.InvalidParamError("the type of record._id is not number");
95
+ }
96
+ }
97
+ if (!record) {
98
+ throw new server_common_node_1.exceptions.InvalidParamError("param is empty");
99
+ }
100
+ let recordID = record['_id'];
101
+ if (recordID <= 0) {
102
+ throw new server_common_node_1.exceptions.InvalidParamError("record._id must greater than 0");
103
+ }
104
+ if (this.appCtx && this.appCtx.mode == 'openSDK') {
105
+ // request from OpenSDK
106
+ return await (0, common_1.runCtxForOpenSDK)(this.appCtx, async () => {
107
+ return await Request.GetInstance().openSDKUpdateRecordBySync(this.apiName, recordID, record);
108
+ });
109
+ }
110
+ return await Request.GetInstance().updateRecordBySync(this.apiName, recordID, record);
111
+ }
112
+ ;
113
+ // batch sync
114
+ async batchCreate(recordMapList) {
115
+ // 参数校验
116
+ if (!this.apiName) {
117
+ throw new server_common_node_1.exceptions.InvalidParamError("objectApiName is empty");
118
+ }
119
+ if (!(recordMapList instanceof Array) || recordMapList.length === 0) {
120
+ throw new server_common_node_1.exceptions.InvalidParamError("param records is not an array or an empty array");
121
+ }
122
+ for (let record of recordMapList) {
123
+ if (server_common_node_1.checkUtils.isNotObject(record)) {
124
+ throw new server_common_node_1.exceptions.InvalidParamError("record is not object");
125
+ }
126
+ }
127
+ let data = (this.appCtx && this.appCtx.mode == 'openSDK') ?
128
+ await (0, common_1.runCtxForOpenSDK)(this.appCtx, async () => {
129
+ return await Request.GetInstance().openSDKCreateRecordsBySync(this.apiName, recordMapList);
130
+ }) : await Request.GetInstance().createRecordsBySync(this.apiName, recordMapList);
131
+ // todo: 确定函数返回值
132
+ if (!(data instanceof Array) && data["record_ids"]) {
133
+ return data["record_ids"];
134
+ }
135
+ return data;
136
+ }
137
+ ;
138
+ async batchDelete(idOrRecordList) {
139
+ // 参数校验、组装
140
+ if (!this.apiName) {
141
+ throw new server_common_node_1.exceptions.InvalidParamError("objectApiName is empty");
142
+ }
143
+ if (!(idOrRecordList instanceof Array) || idOrRecordList.length === 0) {
144
+ throw new server_common_node_1.exceptions.InvalidParamError("param records is not an array or an empty array");
145
+ }
146
+ let recordIDs = [];
147
+ for (let record of idOrRecordList) {
148
+ if (typeof (record) === 'number') {
149
+ recordIDs.push(record);
150
+ }
151
+ else if (server_common_node_1.checkUtils.isObject(record) && record._id && typeof (record._id) === 'number') {
152
+ recordIDs.push(record._id);
153
+ }
154
+ else {
155
+ throw new server_common_node_1.exceptions.InvalidParamError("record must be number or object");
156
+ }
157
+ }
158
+ if (this.appCtx && this.appCtx.mode == 'openSDK') {
159
+ // request from OpenSDK
160
+ return await (0, common_1.runCtxForOpenSDK)(this.appCtx, async () => {
161
+ return await Request.GetInstance().openSDKDeleteRecordsBySync(this.apiName, recordIDs);
162
+ });
163
+ }
164
+ await Request.GetInstance().deleteRecordsBySync(this.apiName, recordIDs);
165
+ return;
166
+ }
167
+ async batchUpdate(recordMapList) {
168
+ // 参数校验、组装
169
+ if (!this.apiName) {
170
+ throw new server_common_node_1.exceptions.InvalidParamError("objectApiName is empty");
171
+ }
172
+ if (!(recordMapList instanceof Array) || recordMapList.length === 0) {
173
+ throw new server_common_node_1.exceptions.InvalidParamError("param records is not an array or an empty array");
174
+ }
175
+ let recordMap = {};
176
+ for (let record of recordMapList) {
177
+ let recordID = record['_id'];
178
+ if ((typeof recordID !== "number") || recordID <= 0) {
179
+ throw new server_common_node_1.exceptions.InvalidParamError("record._id is empty");
180
+ }
181
+ recordMap[recordID] = record;
182
+ }
183
+ if (this.appCtx && this.appCtx.mode == 'openSDK') {
184
+ // request from OpenSDK
185
+ await (0, common_1.runCtxForOpenSDK)(this.appCtx, async () => {
186
+ return await Request.GetInstance().openSDKUpdateRecordsBySync(this.apiName, recordMap);
187
+ });
188
+ return;
189
+ }
190
+ await Request.GetInstance().updateRecordsBySync(this.apiName, recordMap);
191
+ return;
192
+ }
193
+ ;
194
+ }
195
+ class _KObjectAsync {
196
+ constructor() {
197
+ this.apiName = '';
198
+ }
199
+ // batch async
200
+ async batchCreateAsync(recordMapList) {
201
+ // 参数校验
202
+ if (!this.apiName) {
203
+ throw new server_common_node_1.exceptions.InvalidParamError("objectApiName is empty");
204
+ }
205
+ if (!(recordMapList instanceof Array) || recordMapList.length === 0) {
206
+ throw new server_common_node_1.exceptions.InvalidParamError("param records is not an array or an empty array");
207
+ }
208
+ if (recordMapList.length > 1000) {
209
+ throw new server_common_node_1.exceptions.InvalidParamError("more than 1000 records in one operation");
210
+ }
211
+ for (let record of recordMapList) {
212
+ if (server_common_node_1.checkUtils.isNotObject(record)) {
213
+ throw new server_common_node_1.exceptions.InvalidParamError("record is not object");
214
+ }
215
+ }
216
+ if (server_common_node_1.utils.stringify(recordMapList).length > 50 * 1024 * 1024) {
217
+ throw new server_common_node_1.exceptions.InvalidParamError("parameter records size exceeds 50MB");
218
+ }
219
+ return await Request.GetInstance().createRecordsByAsync(this.apiName, recordMapList);
220
+ }
221
+ ;
222
+ async batchDeleteAsync(recordOrIDList) {
223
+ // 参数校验、组装
224
+ if (!this.apiName) {
225
+ throw new server_common_node_1.exceptions.InvalidParamError("objectApiName is empty");
226
+ }
227
+ if (!(recordOrIDList instanceof Array) || recordOrIDList.length === 0) {
228
+ throw new server_common_node_1.exceptions.InvalidParamError("param records is not an array or an empty array");
229
+ }
230
+ if (recordOrIDList.length > 1000) {
231
+ throw new server_common_node_1.exceptions.InvalidParamError("more than 1000 records in one operation");
232
+ }
233
+ let recordIDs = [];
234
+ for (let record of recordOrIDList) {
235
+ if (typeof (record) === 'number') {
236
+ recordIDs.push(record);
237
+ }
238
+ else if (server_common_node_1.checkUtils.isObject(record) && record._id && typeof (record._id) === 'number') {
239
+ recordIDs.push(record._id);
240
+ }
241
+ else {
242
+ throw new server_common_node_1.exceptions.InvalidParamError("record must be number or object");
243
+ }
244
+ }
245
+ if (server_common_node_1.utils.stringify(recordIDs).length > 50 * 1024 * 1024) {
246
+ throw new server_common_node_1.exceptions.InvalidParamError("parameter records size exceeds 50MB");
247
+ }
248
+ return await Request.GetInstance().deleteRecordsByAsync(this.apiName, recordIDs);
249
+ }
250
+ async batchUpdateAsync(recordMapList) {
251
+ // 参数校验、组装
252
+ if (!this.apiName) {
253
+ throw new server_common_node_1.exceptions.InvalidParamError("objectApiName is empty");
254
+ }
255
+ if (!(recordMapList instanceof Array) || recordMapList.length === 0) {
256
+ throw new server_common_node_1.exceptions.InvalidParamError("param records is not an array or an empty array");
257
+ }
258
+ if (recordMapList.length > 1000) {
259
+ throw new server_common_node_1.exceptions.InvalidParamError("more than 1000 records in one operation");
260
+ }
261
+ let recordMap = {};
262
+ for (let record of recordMapList) {
263
+ let recordID = record['_id'];
264
+ if (recordID === undefined || recordID === null) {
265
+ throw new server_common_node_1.exceptions.InvalidParamError("record._id is empty");
266
+ }
267
+ if (typeof recordID !== "number") {
268
+ throw new server_common_node_1.exceptions.InvalidParamError("the type of record._id is not number");
269
+ }
270
+ if (recordID <= 0) {
271
+ throw new server_common_node_1.exceptions.InvalidParamError("record._id must greater than 0");
272
+ }
273
+ recordMap[recordID] = record;
274
+ }
275
+ if (server_common_node_1.utils.stringify(recordMap).length > 50 * 1024 * 1024) {
276
+ throw new server_common_node_1.exceptions.InvalidParamError("parameter records size exceeds 50MB");
277
+ }
278
+ return await Request.GetInstance().updateRecordsByAsync(this.apiName, recordMap);
279
+ }
280
+ ;
281
+ }
282
+ class _KObjectQuery {
283
+ constructor() {
284
+ this.appCtx = null;
285
+ }
286
+ // find, findOne
287
+ async find() {
288
+ return new _KQuery(this.apiName, this.appCtx).find();
289
+ }
290
+ ;
291
+ async findOne() {
292
+ return new _KQuery(this.apiName, this.appCtx).findOne();
293
+ }
294
+ ;
295
+ async findAll() {
296
+ return new _KQuery(this.apiName, this.appCtx).findAll();
297
+ }
298
+ ;
299
+ orderBy(fieldApiNames, ...restFieldApiNames) {
300
+ fieldApiNames = !fieldApiNames ? [] : fieldApiNames;
301
+ return new _KQuery(this.apiName, this.appCtx).orderBy(server_common_node_1.utils.argsToList(fieldApiNames, restFieldApiNames));
302
+ }
303
+ orderByDesc(fieldApiNames, ...restFieldApiNames) {
304
+ fieldApiNames = !fieldApiNames ? [] : fieldApiNames;
305
+ return new _KQuery(this.apiName, this.appCtx).orderByDesc(server_common_node_1.utils.argsToList(fieldApiNames, restFieldApiNames));
306
+ }
307
+ select(fieldApiNames, ...restFieldApiNames) {
308
+ fieldApiNames = !fieldApiNames ? [] : fieldApiNames;
309
+ return new _KQuery(this.apiName, this.appCtx).select(server_common_node_1.utils.argsToList(fieldApiNames, restFieldApiNames));
310
+ }
311
+ where(conditionMap) {
312
+ if (!conditionMap) {
313
+ return new _KQuery(this.apiName, this.appCtx).where();
314
+ }
315
+ return new _KQuery(this.apiName, this.appCtx).where(conditionMap);
316
+ }
317
+ // limit, offset, count
318
+ limit(limit) {
319
+ return new _KQuery(this.apiName, this.appCtx).limit(limit);
320
+ }
321
+ ;
322
+ offset(offset) {
323
+ return new _KQuery(this.apiName, this.appCtx).offset(offset);
324
+ }
325
+ ;
326
+ async count() {
327
+ return new _KQuery(this.apiName, this.appCtx).count();
328
+ }
329
+ ;
330
+ }
331
+ /**
332
+ * _KQuery is kunlun query implement, implements ORM operations.
333
+ */
334
+ class _KQuery {
335
+ // 使用请求上下文和对象 Api Name 进行初始化
336
+ constructor(objectApiName, appCtx = null) {
337
+ if (!objectApiName) {
338
+ throw new server_common_node_1.exceptions.InvalidParamError("objectApiName is empty");
339
+ }
340
+ queryPropertiesStore.set(this, {
341
+ apiName: objectApiName,
342
+ appCtx: appCtx,
343
+ queryBuilder: new queryBuilder_1.QueryBuilder(objectApiName),
344
+ queryV2: appCtx ? new logicV2_1.QueryV2(objectApiName) : null,
345
+ });
346
+ }
347
+ async find() {
348
+ const { apiName, appCtx, queryBuilder, queryV2 } = queryPropertiesStore.get(this);
349
+ if (appCtx) {
350
+ const param = {
351
+ limit: queryV2._limit,
352
+ offset: queryV2._offset,
353
+ sort: queryV2._order,
354
+ fields: queryV2.fields,
355
+ count: false,
356
+ filter: (0, logicV2_1.buildCriterionV2)(queryV2.filter),
357
+ };
358
+ return await (0, common_1.runCtxForOpenSDK)(appCtx, async () => {
359
+ return await Request.GetInstance().openSDKGetRecords(apiName, param);
360
+ });
361
+ }
362
+ else {
363
+ const criterion = (0, logic_1.buildCriterion)(queryBuilder.getLogic(), apiName);
364
+ return await Request.GetInstance().getRecordsOrCountByCriterion(apiName, await (0, logic_1.handleCriterion)(criterion), queryBuilder.getOrder(), false, queryBuilder.getSelect(), queryBuilder.getOffset(), queryBuilder.getLimit(), false);
365
+ }
366
+ }
367
+ ;
368
+ async findOne() {
369
+ // 限制 limit 为 1
370
+ this.limit(1);
371
+ const records = await this.find();
372
+ return records instanceof Array ? (records.length > 0 ? records[0] : null) : null;
373
+ }
374
+ ;
375
+ async findAll() {
376
+ const { queryBuilder, queryV2 } = queryPropertiesStore.get(this);
377
+ if (queryBuilder.getOrder().length > 0) {
378
+ throw new server_common_node_1.exceptions.InvalidParamError("findAll does not support orderBy and orderByDesc");
379
+ }
380
+ if (queryV2 && queryV2._order.length > 0) {
381
+ throw new server_common_node_1.exceptions.InvalidParamError("findAll does not support orderBy and orderByDesc");
382
+ }
383
+ return await this.getRecordsByPage();
384
+ }
385
+ ;
386
+ async getRecordsByPage() {
387
+ const { apiName, appCtx, queryBuilder, queryV2 } = queryPropertiesStore.get(this);
388
+ let maxId = 0, records = [];
389
+ while (true) {
390
+ let rs;
391
+ if (appCtx) {
392
+ let criterion = (0, logicV2_1.buildCriterionV2)(queryV2.filter);
393
+ criterion.push({ leftValue: '_id', operator: operator_1.operates.GT, rightValue: maxId });
394
+ const param = {
395
+ limit: 200,
396
+ offset: 0,
397
+ sort: [{ field: '_id', direction: 'asc', type: '' }],
398
+ fields: queryV2.fields,
399
+ count: false,
400
+ filter: criterion,
401
+ };
402
+ rs = await (0, common_1.runCtxForOpenSDK)(appCtx, async () => {
403
+ return await Request.GetInstance().openSDKGetRecords(apiName, param);
404
+ });
405
+ }
406
+ else {
407
+ let criterion = (0, logic_1.buildCriterion)(queryBuilder.getLogic(), apiName, maxId);
408
+ rs = await Request.GetInstance().getRecordsOrCountByCriterion(apiName, await (0, logic_1.handleCriterion)(criterion), [new order_1.Order("_id", "asc")], false, queryBuilder.getSelect(), 0, queryBuilder_1.maxLimit, false);
409
+ }
410
+ rs.forEach((r) => {
411
+ maxId = r._id > maxId ? r._id : maxId;
412
+ });
413
+ records.push(...rs);
414
+ if (rs.length < queryBuilder_1.maxLimit) {
415
+ break;
416
+ }
417
+ }
418
+ return records;
419
+ }
420
+ orderBy(fieldApiNames, ...restFieldApiNames) {
421
+ fieldApiNames = !fieldApiNames ? [] : fieldApiNames;
422
+ let fields = server_common_node_1.utils.argsToList(fieldApiNames, restFieldApiNames);
423
+ const { queryBuilder, queryV2 } = queryPropertiesStore.get(this);
424
+ if (queryV2) {
425
+ queryV2.orderBy(fields);
426
+ }
427
+ else {
428
+ queryBuilder.addOrders(fields, order_1.ASC);
429
+ }
430
+ return this;
431
+ }
432
+ orderByDesc(fieldApiNames, ...restFieldApiNames) {
433
+ fieldApiNames = !fieldApiNames ? [] : fieldApiNames;
434
+ let fields = server_common_node_1.utils.argsToList(fieldApiNames, restFieldApiNames);
435
+ const { queryBuilder, queryV2 } = queryPropertiesStore.get(this);
436
+ if (queryV2) {
437
+ queryV2.orderByDesc(fields);
438
+ }
439
+ else {
440
+ queryBuilder.addOrders(fields, order_1.DESC);
441
+ }
442
+ return this;
443
+ }
444
+ select(fieldApiNames, ...restFieldApiNames) {
445
+ fieldApiNames = !fieldApiNames ? [] : fieldApiNames;
446
+ let fields = server_common_node_1.utils.argsToList(fieldApiNames, restFieldApiNames);
447
+ const { queryBuilder, queryV2 } = queryPropertiesStore.get(this);
448
+ if (queryV2) {
449
+ queryV2.select(fields);
450
+ }
451
+ else {
452
+ queryBuilder.addSelects(fields);
453
+ }
454
+ return this;
455
+ }
456
+ where(conditionMap) {
457
+ // 如果 where 内是空,直接返回
458
+ if (!conditionMap || Object.keys(conditionMap).length === 0) {
459
+ return this;
460
+ }
461
+ const { queryBuilder, queryV2 } = queryPropertiesStore.get(this);
462
+ if (queryV2) {
463
+ queryV2.where(conditionMap);
464
+ }
465
+ else {
466
+ let logic;
467
+ // 如果 conditionMap 不是 Logic,需要构建为 Logic
468
+ if (!(conditionMap instanceof logic_1.Logic)) {
469
+ logic = (0, logic_1.buildLogic)([conditionMap]);
470
+ }
471
+ else {
472
+ logic = conditionMap;
473
+ }
474
+ queryBuilder.addLogic(logic);
475
+ }
476
+ return this;
477
+ }
478
+ limit(limit) {
479
+ const { queryBuilder } = queryPropertiesStore.get(this);
480
+ queryBuilder.setLimit(limit);
481
+ return this;
482
+ }
483
+ ;
484
+ offset(offset) {
485
+ const { queryBuilder } = queryPropertiesStore.get(this);
486
+ queryBuilder.setOffset(offset);
487
+ return this;
488
+ }
489
+ ;
490
+ async count() {
491
+ const { apiName, appCtx, queryBuilder, queryV2 } = queryPropertiesStore.get(this);
492
+ if (appCtx) {
493
+ const param = {
494
+ limit: 1,
495
+ offset: queryV2._offset,
496
+ fields: queryV2.fields,
497
+ sort: queryV2._order,
498
+ count: true,
499
+ filter: (0, logicV2_1.buildCriterionV2)(queryV2.filter),
500
+ };
501
+ param.count = true;
502
+ return await (0, common_1.runCtxForOpenSDK)(appCtx, async () => {
503
+ return await Request.GetInstance().openSDKGetRecords(apiName, param);
504
+ });
505
+ }
506
+ else {
507
+ let criterion = (0, logic_1.buildCriterion)(queryBuilder.getLogic(), apiName);
508
+ return await Request.GetInstance().getRecordsOrCountByCriterion(apiName, await (0, logic_1.handleCriterion)(criterion), queryBuilder.getOrder(), false, queryBuilder.getSelect(), queryBuilder.getOffset(), queryBuilder.getLimit(), true);
509
+ }
510
+ }
511
+ ;
512
+ }
513
+ function applyMixins(derivedCtor, constructors) {
514
+ constructors.forEach((baseCtor) => {
515
+ Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {
516
+ Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name) ||
517
+ Object.create(null));
518
+ });
519
+ });
520
+ }
521
+ applyMixins(_KObject, [_KObjectSync, _KObjectAsync, _KObjectQuery]);
522
+ applyMixins(_KApplicationObject, [_KObjectSync, _KObjectQuery]);
523
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["object.ts"],"names":[],"mappings":"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"}