@steedos/objectql 2.2.55-beta.7 → 2.3.0-beta.10

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 (222) hide show
  1. package/lib/actions/field_updates.js +36 -50
  2. package/lib/actions/field_updates.js.map +1 -1
  3. package/lib/actions/workflow_notifications.d.ts +0 -12
  4. package/lib/actions/workflow_notifications.js +14 -31
  5. package/lib/actions/workflow_notifications.js.map +1 -1
  6. package/lib/actions/workflow_rule.js +33 -54
  7. package/lib/actions/workflow_rule.js.map +1 -1
  8. package/lib/broker.js +5 -5
  9. package/lib/broker.js.map +1 -1
  10. package/lib/driver/driver.d.ts +0 -38
  11. package/lib/driver/field-encrytion/index.js +0 -7
  12. package/lib/driver/field-encrytion/index.js.map +1 -1
  13. package/lib/driver/field-encrytion/mongosharedconst.js +4 -20
  14. package/lib/driver/field-encrytion/mongosharedconst.js.map +1 -1
  15. package/lib/driver/fieldDBType.js +0 -4
  16. package/lib/driver/fieldDBType.js.map +1 -1
  17. package/lib/driver/format.d.ts +0 -12
  18. package/lib/driver/format.js +0 -12
  19. package/lib/driver/format.js.map +1 -1
  20. package/lib/driver/metadata.js +2 -10
  21. package/lib/driver/metadata.js.map +1 -1
  22. package/lib/driver/meteorMongo.js +32 -36
  23. package/lib/driver/meteorMongo.js.map +1 -1
  24. package/lib/driver/mongo.d.ts +0 -3
  25. package/lib/driver/mongo.js +59 -64
  26. package/lib/driver/mongo.js.map +1 -1
  27. package/lib/driver/mysql.js +1 -8
  28. package/lib/driver/mysql.js.map +1 -1
  29. package/lib/driver/oracle.js +3 -11
  30. package/lib/driver/oracle.js.map +1 -1
  31. package/lib/driver/postgres.js +1 -8
  32. package/lib/driver/postgres.js.map +1 -1
  33. package/lib/driver/sqlite3.js +1 -8
  34. package/lib/driver/sqlite3.js.map +1 -1
  35. package/lib/driver/sqlserver.js +3 -10
  36. package/lib/driver/sqlserver.js.map +1 -1
  37. package/lib/dynamic-load/actions.js +26 -27
  38. package/lib/dynamic-load/actions.js.map +1 -1
  39. package/lib/dynamic-load/approval_process.js +0 -1
  40. package/lib/dynamic-load/approval_process.js.map +1 -1
  41. package/lib/dynamic-load/button.js +13 -13
  42. package/lib/dynamic-load/button.js.map +1 -1
  43. package/lib/dynamic-load/chart.js +3 -3
  44. package/lib/dynamic-load/chart.js.map +1 -1
  45. package/lib/dynamic-load/client_script.js +0 -24
  46. package/lib/dynamic-load/client_script.js.map +1 -1
  47. package/lib/dynamic-load/field.js +13 -13
  48. package/lib/dynamic-load/field.js.map +1 -1
  49. package/lib/dynamic-load/layout.js +16 -16
  50. package/lib/dynamic-load/layout.js.map +1 -1
  51. package/lib/dynamic-load/listview.js +13 -13
  52. package/lib/dynamic-load/listview.js.map +1 -1
  53. package/lib/dynamic-load/object_translations.js +8 -20
  54. package/lib/dynamic-load/object_translations.js.map +1 -1
  55. package/lib/dynamic-load/package.d.ts +0 -8
  56. package/lib/dynamic-load/package.js +83 -95
  57. package/lib/dynamic-load/package.js.map +1 -1
  58. package/lib/dynamic-load/page.js +3 -3
  59. package/lib/dynamic-load/page.js.map +1 -1
  60. package/lib/dynamic-load/permission.js +24 -25
  61. package/lib/dynamic-load/permission.js.map +1 -1
  62. package/lib/dynamic-load/permissionset.js +22 -23
  63. package/lib/dynamic-load/permissionset.js.map +1 -1
  64. package/lib/dynamic-load/preload_data.js +73 -73
  65. package/lib/dynamic-load/preload_data.js.map +1 -1
  66. package/lib/dynamic-load/profile.js +22 -25
  67. package/lib/dynamic-load/profile.js.map +1 -1
  68. package/lib/dynamic-load/query.js +3 -3
  69. package/lib/dynamic-load/query.js.map +1 -1
  70. package/lib/dynamic-load/restrictionRules.js +3 -3
  71. package/lib/dynamic-load/restrictionRules.js.map +1 -1
  72. package/lib/dynamic-load/shareRules.js +3 -3
  73. package/lib/dynamic-load/shareRules.js.map +1 -1
  74. package/lib/dynamic-load/tab.js +4 -4
  75. package/lib/dynamic-load/tab.js.map +1 -1
  76. package/lib/dynamic-load/tabs.d.ts +0 -3
  77. package/lib/dynamic-load/tabs.js +4 -7
  78. package/lib/dynamic-load/tabs.js.map +1 -1
  79. package/lib/dynamic-load/translations.js +17 -28
  80. package/lib/dynamic-load/translations.js.map +1 -1
  81. package/lib/dynamic-load/trigger.d.ts +0 -5
  82. package/lib/dynamic-load/trigger.js +0 -29
  83. package/lib/dynamic-load/trigger.js.map +1 -1
  84. package/lib/errors/index.js +1 -25
  85. package/lib/errors/index.js.map +1 -1
  86. package/lib/formula/core.d.ts +4 -67
  87. package/lib/formula/core.js +132 -238
  88. package/lib/formula/core.js.map +1 -1
  89. package/lib/formula/field_formula.d.ts +0 -23
  90. package/lib/formula/field_formula.js +12 -36
  91. package/lib/formula/field_formula.js.map +1 -1
  92. package/lib/formula/index.d.ts +3 -3
  93. package/lib/formula/index.js +24 -37
  94. package/lib/formula/index.js.map +1 -1
  95. package/lib/formula/params.js +23 -48
  96. package/lib/formula/params.js.map +1 -1
  97. package/lib/formula/recompute.d.ts +0 -8
  98. package/lib/formula/recompute.js +35 -51
  99. package/lib/formula/recompute.js.map +1 -1
  100. package/lib/formula/simple_params.js +10 -10
  101. package/lib/formula/simple_params.js.map +1 -1
  102. package/lib/formula/type.d.ts +1 -52
  103. package/lib/formula/type.js +0 -4
  104. package/lib/formula/type.js.map +1 -1
  105. package/lib/formula/util.d.ts +2 -71
  106. package/lib/formula/util.js +9 -79
  107. package/lib/formula/util.js.map +1 -1
  108. package/lib/index.js +0 -7
  109. package/lib/index.js.map +1 -1
  110. package/lib/metadata-register/_base.js +13 -13
  111. package/lib/metadata-register/_base.js.map +1 -1
  112. package/lib/metadata-register/app.js +8 -8
  113. package/lib/metadata-register/app.js.map +1 -1
  114. package/lib/metadata-register/chart.js +1 -1
  115. package/lib/metadata-register/index.js +49 -49
  116. package/lib/metadata-register/index.js.map +1 -1
  117. package/lib/metadata-register/layout.js +10 -10
  118. package/lib/metadata-register/layout.js.map +1 -1
  119. package/lib/metadata-register/object.js +10 -15
  120. package/lib/metadata-register/object.js.map +1 -1
  121. package/lib/metadata-register/page.js +1 -1
  122. package/lib/metadata-register/permissionFields.js +1 -1
  123. package/lib/metadata-register/permissionset.js +6 -6
  124. package/lib/metadata-register/permissionset.js.map +1 -1
  125. package/lib/metadata-register/process.js +1 -8
  126. package/lib/metadata-register/process.js.map +1 -1
  127. package/lib/metadata-register/processTrigger.d.ts +0 -11
  128. package/lib/metadata-register/processTrigger.js +1 -12
  129. package/lib/metadata-register/processTrigger.js.map +1 -1
  130. package/lib/metadata-register/profile.js +6 -6
  131. package/lib/metadata-register/profile.js.map +1 -1
  132. package/lib/metadata-register/query.js +1 -1
  133. package/lib/metadata-register/restrictionRules.js +1 -1
  134. package/lib/metadata-register/shareRules.js +1 -1
  135. package/lib/metadata-register/tab.js +1 -1
  136. package/lib/metadata-register/tabs.d.ts +0 -3
  137. package/lib/metadata-register/tabs.js +10 -13
  138. package/lib/metadata-register/tabs.js.map +1 -1
  139. package/lib/services/datasourceServiceFactory.js +5 -8
  140. package/lib/services/datasourceServiceFactory.js.map +1 -1
  141. package/lib/services/helpers/graphql/consts.js +0 -7
  142. package/lib/services/helpers/graphql/consts.js.map +1 -1
  143. package/lib/services/helpers/graphql/getPrimaryFieldType.d.ts +0 -4
  144. package/lib/services/helpers/graphql/getPrimaryFieldType.js +0 -12
  145. package/lib/services/helpers/graphql/getPrimaryFieldType.js.map +1 -1
  146. package/lib/services/helpers/graphql/getQueryFields.js +0 -4
  147. package/lib/services/helpers/graphql/getQueryFields.js.map +1 -1
  148. package/lib/services/helpers/graphql/index.js +84 -108
  149. package/lib/services/helpers/graphql/index.js.map +1 -1
  150. package/lib/services/objectService.js +127 -179
  151. package/lib/services/objectService.js.map +1 -1
  152. package/lib/services/objectServiceDispatcher.js +87 -87
  153. package/lib/services/objectServiceDispatcher.js.map +1 -1
  154. package/lib/services/objectServiceFactory.js +4 -4
  155. package/lib/services/objectServiceFactory.js.map +1 -1
  156. package/lib/summary/core.d.ts +0 -68
  157. package/lib/summary/core.js +46 -130
  158. package/lib/summary/core.js.map +1 -1
  159. package/lib/summary/field_summary.d.ts +0 -16
  160. package/lib/summary/field_summary.js +10 -27
  161. package/lib/summary/field_summary.js.map +1 -1
  162. package/lib/summary/index.d.ts +0 -5
  163. package/lib/summary/index.js +10 -28
  164. package/lib/summary/index.js.map +1 -1
  165. package/lib/summary/recompute.d.ts +0 -8
  166. package/lib/summary/recompute.js +8 -23
  167. package/lib/summary/recompute.js.map +1 -1
  168. package/lib/summary/type.d.ts +0 -17
  169. package/lib/summary/type.js +0 -13
  170. package/lib/summary/type.js.map +1 -1
  171. package/lib/typeorm/driver.js +96 -78
  172. package/lib/typeorm/driver.js.map +1 -1
  173. package/lib/typeorm/util.js +5 -4
  174. package/lib/typeorm/util.js.map +1 -1
  175. package/lib/types/action.js +1 -1
  176. package/lib/types/app.js +38 -43
  177. package/lib/types/app.js.map +1 -1
  178. package/lib/types/config.js +11 -15
  179. package/lib/types/config.js.map +1 -1
  180. package/lib/types/connection.d.ts +0 -10
  181. package/lib/types/connection.js +9 -16
  182. package/lib/types/connection.js.map +1 -1
  183. package/lib/types/dashboard.js +1 -1
  184. package/lib/types/datasource.d.ts +0 -3
  185. package/lib/types/datasource.js +97 -110
  186. package/lib/types/datasource.js.map +1 -1
  187. package/lib/types/field.js +4 -34
  188. package/lib/types/field.js.map +1 -1
  189. package/lib/types/field_permission.js +7 -7
  190. package/lib/types/field_permission.js.map +1 -1
  191. package/lib/types/list_view.js +2 -2
  192. package/lib/types/object.d.ts +0 -38
  193. package/lib/types/object.js +291 -403
  194. package/lib/types/object.js.map +1 -1
  195. package/lib/types/object_dynamic_load.js +40 -45
  196. package/lib/types/object_dynamic_load.js.map +1 -1
  197. package/lib/types/object_events.js +4 -14
  198. package/lib/types/object_events.js.map +1 -1
  199. package/lib/types/object_layouts.js +4 -4
  200. package/lib/types/object_layouts.js.map +1 -1
  201. package/lib/types/object_permission.js +2 -2
  202. package/lib/types/query.d.ts +0 -12
  203. package/lib/types/report.js +1 -1
  204. package/lib/types/restrictionRule.js +6 -6
  205. package/lib/types/restrictionRule.js.map +1 -1
  206. package/lib/types/schema.d.ts +0 -14
  207. package/lib/types/schema.js +14 -39
  208. package/lib/types/schema.js.map +1 -1
  209. package/lib/types/shareRule.js +6 -6
  210. package/lib/types/shareRule.js.map +1 -1
  211. package/lib/types/trigger.js +1 -1
  212. package/lib/types/validation_rules.js +11 -18
  213. package/lib/types/validation_rules.js.map +1 -1
  214. package/lib/util/index.d.ts +0 -12
  215. package/lib/util/index.js +10 -50
  216. package/lib/util/index.js.map +1 -1
  217. package/lib/util/locale.d.ts +0 -6
  218. package/lib/util/locale.js +0 -6
  219. package/lib/util/locale.js.map +1 -1
  220. package/lib/util/suffix.js +4 -12
  221. package/lib/util/suffix.js.map +1 -1
  222. package/package.json +13 -13
@@ -9,15 +9,14 @@ var core_1 = require("./core");
9
9
  var summary_1 = require("../summary");
10
10
  var runCurrentFieldFormulas = function (fieldFormulaConfig, userSession) {
11
11
  return tslib_1.__awaiter(this, void 0, void 0, function () {
12
- var currentUserId, fieldName, objectName, formulaVarFields, docs, docs_1, docs_1_1, doc, value, setDoc, e_1_1;
12
+ var fieldName, objectName, formulaVarFields, docs, docs_1, docs_1_1, doc, value, setDoc, e_1_1;
13
13
  var e_1, _a;
14
14
  return tslib_1.__generator(this, function (_b) {
15
15
  switch (_b.label) {
16
16
  case 0:
17
- currentUserId = userSession ? userSession.userId : undefined;
18
17
  fieldName = fieldFormulaConfig.field_name, objectName = fieldFormulaConfig.object_name;
19
18
  formulaVarFields = (0, core_1.pickFieldFormulaVarFields)(fieldFormulaConfig);
20
- return [4 /*yield*/, (0, index_1.getSteedosSchema)().getObject(objectName).find({ filters: [], fields: formulaVarFields })];
19
+ return [4, (0, index_1.getSteedosSchema)().getObject(objectName).find({ filters: [], fields: formulaVarFields })];
21
20
  case 1:
22
21
  docs = _b.sent();
23
22
  _b.label = 2;
@@ -26,38 +25,38 @@ var runCurrentFieldFormulas = function (fieldFormulaConfig, userSession) {
26
25
  docs_1 = tslib_1.__values(docs), docs_1_1 = docs_1.next();
27
26
  _b.label = 3;
28
27
  case 3:
29
- if (!!docs_1_1.done) return [3 /*break*/, 8];
28
+ if (!!docs_1_1.done) return [3, 8];
30
29
  doc = docs_1_1.value;
31
- return [4 /*yield*/, (0, core_1.computeFieldFormulaValue)(doc, fieldFormulaConfig, currentUserId)];
30
+ return [4, (0, core_1.computeFieldFormulaValue)(doc, fieldFormulaConfig, userSession)];
32
31
  case 4:
33
32
  value = _b.sent();
34
33
  setDoc = {};
35
34
  setDoc[fieldName] = value;
36
- return [4 /*yield*/, (0, index_1.getSteedosSchema)().getObject(objectName).directUpdate(doc._id, setDoc)];
35
+ return [4, (0, index_1.getSteedosSchema)().getObject(objectName).directUpdate(doc._id, setDoc)];
37
36
  case 5:
38
37
  _b.sent();
39
- return [4 /*yield*/, runQuotedFieldFormulas(doc._id, fieldFormulaConfig, userSession)];
38
+ return [4, runQuotedFieldFormulas(doc._id, fieldFormulaConfig, userSession)];
40
39
  case 6:
41
40
  _b.sent();
42
41
  _b.label = 7;
43
42
  case 7:
44
43
  docs_1_1 = docs_1.next();
45
- return [3 /*break*/, 3];
46
- case 8: return [3 /*break*/, 11];
44
+ return [3, 3];
45
+ case 8: return [3, 11];
47
46
  case 9:
48
47
  e_1_1 = _b.sent();
49
48
  e_1 = { error: e_1_1 };
50
- return [3 /*break*/, 11];
49
+ return [3, 11];
51
50
  case 10:
52
51
  try {
53
52
  if (docs_1_1 && !docs_1_1.done && (_a = docs_1.return)) _a.call(docs_1);
54
53
  }
55
54
  finally { if (e_1) throw e_1.error; }
56
- return [7 /*endfinally*/];
57
- case 11: return [4 /*yield*/, runQuotedFieldSummaries(fieldFormulaConfig, userSession)];
55
+ return [7];
56
+ case 11: return [4, runQuotedFieldSummaries(fieldFormulaConfig, userSession)];
58
57
  case 12:
59
58
  _b.sent();
60
- return [2 /*return*/];
59
+ return [2];
61
60
  }
62
61
  });
63
62
  });
@@ -68,7 +67,7 @@ var runQuotedFieldFormulas = function (recordId, fieldFormulaConfig, userSession
68
67
  var e_2, _c;
69
68
  return tslib_1.__generator(this, function (_d) {
70
69
  switch (_d.label) {
71
- case 0: return [4 /*yield*/, (0, field_formula_1.getQuotedByFieldFormulaConfigs)(fieldFormulaConfig)];
70
+ case 0: return [4, (0, field_formula_1.getQuotedByFieldFormulaConfigs)(fieldFormulaConfig)];
72
71
  case 1:
73
72
  formulaQuotedBys = _d.sent();
74
73
  _d.label = 2;
@@ -77,43 +76,38 @@ var runQuotedFieldFormulas = function (recordId, fieldFormulaConfig, userSession
77
76
  _a = tslib_1.__values(formulaQuotedBys.allConfigs), _b = _a.next();
78
77
  _d.label = 3;
79
78
  case 3:
80
- if (!!_b.done) return [3 /*break*/, 6];
79
+ if (!!_b.done) return [3, 6];
81
80
  config = _b.value;
82
- return [4 /*yield*/, (0, core_1.updateQuotedByObjectFieldFormulaValue)(fieldFormulaConfig.object_name, recordId, config, userSession)];
81
+ return [4, (0, core_1.updateQuotedByObjectFieldFormulaValue)(fieldFormulaConfig.object_name, recordId, config, userSession)];
83
82
  case 4:
84
83
  _d.sent();
85
84
  _d.label = 5;
86
85
  case 5:
87
86
  _b = _a.next();
88
- return [3 /*break*/, 3];
89
- case 6: return [3 /*break*/, 9];
87
+ return [3, 3];
88
+ case 6: return [3, 9];
90
89
  case 7:
91
90
  e_2_1 = _d.sent();
92
91
  e_2 = { error: e_2_1 };
93
- return [3 /*break*/, 9];
92
+ return [3, 9];
94
93
  case 8:
95
94
  try {
96
95
  if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
97
96
  }
98
97
  finally { if (e_2) throw e_2.error; }
99
- return [7 /*endfinally*/];
100
- case 9: return [2 /*return*/];
98
+ return [7];
99
+ case 9: return [2];
101
100
  }
102
101
  });
103
102
  });
104
103
  };
105
- /**
106
- * 找到公式字段被哪些汇总字段引用,并重新计算汇总字段值(相当于点击一次界面上的“批量重算汇总值”按钮)
107
- * @param fieldFormulaConfig
108
- * @param userSession
109
- */
110
104
  var runQuotedFieldSummaries = function (fieldFormulaConfig, userSession) {
111
105
  return tslib_1.__awaiter(this, void 0, void 0, function () {
112
106
  var summaryQuotedBys, summaryQuotedBys_1, summaryQuotedBys_1_1, config, e_3_1;
113
107
  var e_3, _a;
114
108
  return tslib_1.__generator(this, function (_b) {
115
109
  switch (_b.label) {
116
- case 0: return [4 /*yield*/, (0, summary_1.getQuotedByFieldSummaryConfigs)(fieldFormulaConfig)];
110
+ case 0: return [4, (0, summary_1.getQuotedByFieldSummaryConfigs)(fieldFormulaConfig)];
117
111
  case 1:
118
112
  summaryQuotedBys = _b.sent();
119
113
  _b.label = 2;
@@ -122,68 +116,58 @@ var runQuotedFieldSummaries = function (fieldFormulaConfig, userSession) {
122
116
  summaryQuotedBys_1 = tslib_1.__values(summaryQuotedBys), summaryQuotedBys_1_1 = summaryQuotedBys_1.next();
123
117
  _b.label = 3;
124
118
  case 3:
125
- if (!!summaryQuotedBys_1_1.done) return [3 /*break*/, 6];
119
+ if (!!summaryQuotedBys_1_1.done) return [3, 6];
126
120
  config = summaryQuotedBys_1_1.value;
127
- return [4 /*yield*/, (0, summary_1.recomputeFieldSummaryValues)(config, userSession)];
121
+ return [4, (0, summary_1.recomputeFieldSummaryValues)(config, userSession)];
128
122
  case 4:
129
123
  _b.sent();
130
124
  _b.label = 5;
131
125
  case 5:
132
126
  summaryQuotedBys_1_1 = summaryQuotedBys_1.next();
133
- return [3 /*break*/, 3];
134
- case 6: return [3 /*break*/, 9];
127
+ return [3, 3];
128
+ case 6: return [3, 9];
135
129
  case 7:
136
130
  e_3_1 = _b.sent();
137
131
  e_3 = { error: e_3_1 };
138
- return [3 /*break*/, 9];
132
+ return [3, 9];
139
133
  case 8:
140
134
  try {
141
135
  if (summaryQuotedBys_1_1 && !summaryQuotedBys_1_1.done && (_a = summaryQuotedBys_1.return)) _a.call(summaryQuotedBys_1);
142
136
  }
143
137
  finally { if (e_3) throw e_3.error; }
144
- return [7 /*endfinally*/];
145
- case 9: return [2 /*return*/];
138
+ return [7];
139
+ case 9: return [2];
146
140
  }
147
141
  });
148
142
  });
149
143
  };
150
- /**
151
- * 重算指定公式字段Id对应的公式值
152
- * @param fieldId : ${objectApiName}.${fieldApiName}
153
- */
154
144
  var recomputeFormulaValues = function (fieldId, userSession) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
155
145
  var config;
156
146
  return tslib_1.__generator(this, function (_a) {
157
147
  switch (_a.label) {
158
- case 0: return [4 /*yield*/, (0, field_formula_1.getFieldFormulaConfig)(fieldId)];
148
+ case 0: return [4, (0, field_formula_1.getFieldFormulaConfig)(fieldId)];
159
149
  case 1:
160
150
  config = _a.sent();
161
151
  if (!config) {
162
152
  throw new Error("recomputeFormulaValues:".concat(fieldId, " not found in field_formula configs."));
163
153
  }
164
- return [4 /*yield*/, (0, exports.recomputeFieldFormulaValues)(config, userSession)];
165
- case 2: return [2 /*return*/, _a.sent()];
154
+ return [4, (0, exports.recomputeFieldFormulaValues)(config, userSession)];
155
+ case 2: return [2, _a.sent()];
166
156
  }
167
157
  });
168
158
  }); };
169
159
  exports.recomputeFormulaValues = recomputeFormulaValues;
170
- /**
171
- * 重算指定公式字段的公式值
172
- * @param fieldFormulaConfig
173
- */
174
160
  var recomputeFieldFormulaValues = function (fieldFormulaConfig, userSession) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
175
- var currentUserId;
176
161
  return tslib_1.__generator(this, function (_a) {
177
162
  switch (_a.label) {
178
163
  case 0:
179
- currentUserId = userSession ? userSession.userId : undefined;
180
- if (!currentUserId) {
181
- (0, util_1.checkCurrentUserIdNotRequiredForFieldFormulas)(fieldFormulaConfig);
164
+ if (!userSession) {
165
+ (0, util_1.checkUserSessionNotRequiredForFieldFormulas)(fieldFormulaConfig);
182
166
  }
183
- return [4 /*yield*/, runCurrentFieldFormulas(fieldFormulaConfig, userSession)];
167
+ return [4, runCurrentFieldFormulas(fieldFormulaConfig, userSession)];
184
168
  case 1:
185
169
  _a.sent();
186
- return [2 /*return*/, true];
170
+ return [2, true];
187
171
  }
188
172
  });
189
173
  }); };
@@ -1 +1 @@
1
- {"version":3,"file":"recompute.js","sourceRoot":"","sources":["../../src/formula/recompute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recompute.js","sourceRoot":"","sources":["../../src/formula/recompute.ts"],"names":[],"mappings":"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"}
@@ -11,27 +11,27 @@ function getSubstitutionDataType(value) {
11
11
  }
12
12
  switch (valueType) {
13
13
  case 'string':
14
- dateType = "text" /* Text */;
14
+ dateType = "text";
15
15
  break;
16
16
  case 'number':
17
- dateType = "number" /* Number */;
17
+ dateType = "number";
18
18
  break;
19
19
  case 'boolean':
20
- dateType = "checkbox" /* Checkbox */;
20
+ dateType = "checkbox";
21
21
  break;
22
22
  case 'object':
23
23
  if (value === null) {
24
- dateType = "null" /* Null */;
24
+ dateType = "null";
25
25
  }
26
26
  else if (value instanceof Date) {
27
- dateType = "datetime" /* Datetime */;
27
+ dateType = "datetime";
28
28
  }
29
29
  else {
30
30
  throw new Error("runFormula:Catch an error the param type \"".concat(valueType, "\" is not supported while eval formula with the params value: \"").concat(value, "\""));
31
31
  }
32
32
  break;
33
33
  case 'undefined':
34
- dateType = "null" /* Null */;
34
+ dateType = "null";
35
35
  break;
36
36
  default:
37
37
  break;
@@ -40,7 +40,7 @@ function getSubstitutionDataType(value) {
40
40
  }
41
41
  function getSubstitutionOptions(dataType, value) {
42
42
  switch (dataType) {
43
- case "number" /* Number */:
43
+ case "number":
44
44
  var scale = 0;
45
45
  var str = value.toString();
46
46
  var dotStr = str.toString().split(".")[1];
@@ -49,7 +49,7 @@ function getSubstitutionOptions(dataType, value) {
49
49
  scale = dotCount;
50
50
  }
51
51
  return { scale: scale };
52
- case "text" /* Text */:
52
+ case "text":
53
53
  return { length: Number.MAX_VALUE };
54
54
  default:
55
55
  return;
@@ -57,12 +57,12 @@ function getSubstitutionOptions(dataType, value) {
57
57
  }
58
58
  function getSubstitutionValue(dataType, value, blankValue) {
59
59
  switch (dataType) {
60
- case "text" /* Text */:
60
+ case "text":
61
61
  if (value === null || value === undefined) {
62
62
  return '';
63
63
  }
64
64
  break;
65
- case "number" /* Number */:
65
+ case "number":
66
66
  if (value === null || value === undefined) {
67
67
  if (blankValue === type_1.SteedosFormulaBlankValue.blanks) {
68
68
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"simple_params.js","sourceRoot":"","sources":["../../src/formula/simple_params.ts"],"names":[],"mappings":";;;AAAA,+BAAkD;AAGlD,IAAM,yBAAyB,GAAG,CAAC,UAAU,CAAC,CAAC;AAE/C,SAAS,uBAAuB,CAAC,KAAU;IACvC,IAAM,SAAS,GAAG,OAAO,KAAK,CAAC;IAC/B,IAAI,QAA0B,CAAC;IAC/B,IAAG,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAC;QAChD,MAAM,IAAI,KAAK,CAAC,qDAA6C,SAAS,6EAAiE,KAAK,OAAG,CAAC,CAAC;KACpJ;IACD,QAAQ,SAAS,EAAE;QACf,KAAK,QAAQ;YACT,QAAQ,oBAAwB,CAAC;YACjC,MAAM;QACV,KAAK,QAAQ;YACT,QAAQ,wBAA0B,CAAC;YACnC,MAAM;QACV,KAAK,SAAS;YACV,QAAQ,4BAA4B,CAAC;YACrC,MAAM;QACV,KAAK,QAAQ;YACT,IAAG,KAAK,KAAK,IAAI,EAAC;gBACd,QAAQ,oBAAwB,CAAC;aACpC;iBACI,IAAI,KAAK,YAAY,IAAI,EAAC;gBAC3B,QAAQ,4BAA4B,CAAC;aACxC;iBACG;gBACA,MAAM,IAAI,KAAK,CAAC,qDAA6C,SAAS,6EAAiE,KAAK,OAAG,CAAC,CAAC;aACpJ;YACD,MAAM;QACV,KAAK,WAAW;YACZ,QAAQ,oBAAwB,CAAC;YACjC,MAAM;QACV;YACI,MAAM;KACb;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB,EAAE,KAAU;IACxD,QAAQ,QAAQ,EAAE;QACd;YACI,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,QAAQ,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;YACvC,IAAG,QAAQ,GAAG,CAAC,EAAC;gBACZ,KAAK,GAAG,QAAQ,CAAC;aACpB;YACD,OAAO,EAAE,KAAK,OAAA,EAAE,CAAC;QACrB;YACI,OAAO,EAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAC,CAAC;QACtC;YACI,OAAQ;KACf;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAE,KAAU,EAAE,UAAoC;IAC5F,QAAQ,QAAQ,EAAE;QACd;YACI,IAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAC;gBACrC,OAAO,EAAE,CAAC;aACb;YACD,MAAM;QACV;YACI,IAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAC;gBACrC,IAAG,UAAU,KAAK,+BAAwB,CAAC,MAAM,EAAC;oBAC9C,OAAO,IAAI,CAAC;iBACf;qBACG;oBACA,OAAO,CAAC,CAAC;iBACZ;aACJ;YACD,MAAM;QACV;YACI,MAAM;KACb;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,0BAA0B,CAAC,KAAU,EAAE,UAAoC;IACvF,IAAI,iBAAiB,GAAQ;QACzB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,KAAK;KACf,CAAA;IACD,iBAAiB,CAAC,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC5D,iBAAiB,CAAC,OAAO,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtF,iBAAiB,CAAC,KAAK,GAAI,oBAAoB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC/F,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AATD,gEASC"}
1
+ {"version":3,"file":"simple_params.js","sourceRoot":"","sources":["../../src/formula/simple_params.ts"],"names":[],"mappings":";;;AAAA,+BAAkD;AAGlD,IAAM,yBAAyB,GAAG,CAAC,UAAU,CAAC,CAAC;AAE/C,SAAS,uBAAuB,CAAC,KAAU;IACvC,IAAM,SAAS,GAAG,OAAO,KAAK,CAAC;IAC/B,IAAI,QAA0B,CAAC;IAC/B,IAAG,yBAAyB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAC;QAChD,MAAM,IAAI,KAAK,CAAC,qDAA6C,SAAS,6EAAiE,KAAK,OAAG,CAAC,CAAC;KACpJ;IACD,QAAQ,SAAS,EAAE;QACf,KAAK,QAAQ;YACT,QAAQ,SAAwB,CAAC;YACjC,MAAM;QACV,KAAK,QAAQ;YACT,QAAQ,WAA0B,CAAC;YACnC,MAAM;QACV,KAAK,SAAS;YACV,QAAQ,aAA4B,CAAC;YACrC,MAAM;QACV,KAAK,QAAQ;YACT,IAAG,KAAK,KAAK,IAAI,EAAC;gBACd,QAAQ,SAAwB,CAAC;aACpC;iBACI,IAAI,KAAK,YAAY,IAAI,EAAC;gBAC3B,QAAQ,aAA4B,CAAC;aACxC;iBACG;gBACA,MAAM,IAAI,KAAK,CAAC,qDAA6C,SAAS,6EAAiE,KAAK,OAAG,CAAC,CAAC;aACpJ;YACD,MAAM;QACV,KAAK,WAAW;YACZ,QAAQ,SAAwB,CAAC;YACjC,MAAM;QACV;YACI,MAAM;KACb;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB,EAAE,KAAU;IACxD,QAAQ,QAAQ,EAAE;QACd;YACI,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,QAAQ,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;YACvC,IAAG,QAAQ,GAAG,CAAC,EAAC;gBACZ,KAAK,GAAG,QAAQ,CAAC;aACpB;YACD,OAAO,EAAE,KAAK,OAAA,EAAE,CAAC;QACrB;YACI,OAAO,EAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAC,CAAC;QACtC;YACI,OAAQ;KACf;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAE,KAAU,EAAE,UAAoC;IAC5F,QAAQ,QAAQ,EAAE;QACd;YACI,IAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAC;gBACrC,OAAO,EAAE,CAAC;aACb;YACD,MAAM;QACV;YACI,IAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAC;gBACrC,IAAG,UAAU,KAAK,+BAAwB,CAAC,MAAM,EAAC;oBAC9C,OAAO,IAAI,CAAC;iBACf;qBACG;oBACA,OAAO,CAAC,CAAC;iBACZ;aACJ;YACD,MAAM;QACV;YACI,MAAM;KACb;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,0BAA0B,CAAC,KAAU,EAAE,UAAoC;IACvF,IAAI,iBAAiB,GAAQ;QACzB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,KAAK;KACf,CAAA;IACD,iBAAiB,CAAC,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC5D,iBAAiB,CAAC,OAAO,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtF,iBAAiB,CAAC,KAAK,GAAI,oBAAoB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC/F,OAAO,iBAAiB,CAAC;AAC7B,CAAC;AATD,gEASC"}
@@ -1,65 +1,26 @@
1
1
  export declare const FormulaUserKey = "$user";
2
- /**
3
- * 记录公式字段中引用的本对象或其他对象上的字段
4
- * 用于相关引用字段值变更时,能找到哪些公式字段需要级联变更
5
- * is_formula指field_name是否是公式字段
6
- * is_own指field_name是否引用的是本对象自身的字段(字段属于对象本身,且所对应的公式变量只有唯一一层引用,即直接引用当前对象自身上的字段)
7
- */
8
2
  export declare type SteedosFieldFormulaQuoteTypeConfig = {
9
3
  object_name: string;
10
4
  field_name: string;
11
5
  is_formula?: boolean;
12
6
  is_own?: boolean;
13
7
  };
14
- /**
15
- * 公式中的{}括起来的单个变量中的执行路径
16
- * {}中第一个reference_from肯定是指向当前对象
17
- * is_formula指field_name是否是公式字段
18
- */
19
8
  export declare type SteedosFormulaVarPathTypeConfig = {
20
9
  field_name: string;
21
10
  reference_from: string;
22
11
  reference_to_field?: string;
23
12
  is_formula?: boolean;
24
13
  };
25
- /**
26
- * 运行公式时,要注入的参数,经过计算每个SteedosFieldFormulaVarTypeConfig最终会转换为该结构作为参数注入公式中
27
- * 比如contacts对象中有公式{account.website}
28
- * 解析后的SteedosFieldFormulaVarTypeConfig为:
29
- * {
30
- * key: "account.website",
31
- * paths: [
32
- * {field_name: "account", reference_from:"contacts"},
33
- * {field_name: "website", reference_from:"accounts"},
34
- * ]
35
- * }
36
- * 最终转换成的SteedosFieldFormulaParamTypeConfig为:
37
- * {
38
- * key: "account.website",
39
- * value: "www.abc.com"
40
- * }
41
- */
42
14
  export declare type SteedosFormulaParamTypeConfig = {
43
15
  key: string;
44
16
  path?: any;
45
17
  value: any;
46
18
  };
47
- /**
48
- * 公式中的{}括起来的单个变量
49
- * 比如contacts对象中有公式{account.website}
50
- * 则解析为:
51
- * {
52
- * key: "account.website",
53
- * paths: [
54
- * {field_name: "account", reference_from:"contacts"},
55
- * {field_name: "website", reference_from:"accounts"},
56
- * ]
57
- * }
58
- */
59
19
  export declare type SteedosFormulaVarTypeConfig = {
60
20
  key: string;
61
21
  paths?: Array<SteedosFormulaVarPathTypeConfig>;
62
22
  is_user_var?: boolean;
23
+ is_user_session_var?: boolean;
63
24
  is_simple_var?: boolean;
64
25
  };
65
26
  export declare type SteedosFieldFormulaTypeConfig = {
@@ -72,27 +33,15 @@ export declare type SteedosFieldFormulaTypeConfig = {
72
33
  quotes: Array<SteedosFieldFormulaQuoteTypeConfig>;
73
34
  vars: Array<SteedosFormulaVarTypeConfig>;
74
35
  };
75
- /**
76
- * 获取对象在哪些字段公式中被引用时的返回结果
77
- * ownConfigs为引用关系为当前对象上的自身引用自身(即引用关系is_own为true)
78
- * otherConfigs为引用关系中排除ownConfigs后的其他引用关系(包括当前对象上is_own为false的引用关系)
79
- * allConfigs = ownConfigs + otherConfigs
80
- */
81
36
  export declare type SteedosQuotedByFieldFormulasTypeConfig = {
82
37
  ownConfigs: Array<SteedosFieldFormulaTypeConfig>;
83
38
  otherConfigs: Array<SteedosFieldFormulaTypeConfig>;
84
39
  allConfigs: Array<SteedosFieldFormulaTypeConfig>;
85
40
  };
86
- /**
87
- * 空白字段处理,只在公式类型返回值为number和currency类型时有效,默认为zeroes
88
- */
89
41
  export declare enum SteedosFormulaBlankValue {
90
42
  zeroes = "zeroes",
91
43
  blanks = "blanks"
92
44
  }
93
- /**
94
- * 内核函数runFormula的额外参数
95
- */
96
45
  export declare type SteedosFormulaOptions = {
97
46
  returnType?: string;
98
47
  blankValue?: SteedosFormulaBlankValue;
@@ -1,11 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SteedosFormulaBlankValue = exports.FormulaUserKey = void 0;
4
- // 公式内容中表示userSession变量的占位符
5
4
  exports.FormulaUserKey = "$user";
6
- /**
7
- * 空白字段处理,只在公式类型返回值为number和currency类型时有效,默认为zeroes
8
- */
9
5
  var SteedosFormulaBlankValue;
10
6
  (function (SteedosFormulaBlankValue) {
11
7
  SteedosFormulaBlankValue["zeroes"] = "zeroes";
@@ -1 +1 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/formula/type.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AACd,QAAA,cAAc,GAAG,OAAO,CAAC;AA4FtC;;GAEG;AACH,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAChC,6CAAiB,CAAA;IACjB,6CAAiB,CAAA;AACrB,CAAC,EAHW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAGnC"}
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/formula/type.ts"],"names":[],"mappings":";;;AACa,QAAA,cAAc,GAAG,OAAO,CAAC;AAgGtC,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAChC,6CAAiB,CAAA;IACjB,6CAAiB,CAAA;AACrB,CAAC,EAHW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAGnC"}
@@ -1,80 +1,11 @@
1
1
  import { SteedosFieldFormulaTypeConfig, SteedosFormulaVarPathTypeConfig, SteedosFormulaVarTypeConfig } from './type';
2
- /**
3
- * 从参数sourceConfigs中找到参数config中引用过的公式字段配置
4
- * @param config
5
- * @param sourceConfigs
6
- */
7
2
  export declare const getQuotedFieldFormulaConfigs: (config: SteedosFieldFormulaTypeConfig, sourceConfigs: Array<SteedosFieldFormulaTypeConfig>) => Array<SteedosFieldFormulaTypeConfig>;
8
- /**
9
- * 参数configA中是否引用了参数configB
10
- * @param configA
11
- * @param configB
12
- */
13
3
  export declare const isFieldFormulaConfigQuoted: (configA: SteedosFieldFormulaTypeConfig, configB: SteedosFieldFormulaTypeConfig) => boolean;
14
- /**
15
- * 公式字段配置是否引用了某个对象和字段
16
- * @param config 公式字段配置
17
- * @param object_name 是否引用了该对象
18
- * @param field_name 是否引用了该字段
19
- */
20
4
  export declare const isFieldFormulaConfigQuotingObjectAndFields: (config: SteedosFieldFormulaTypeConfig, objectName: string, fieldNames?: Array<string>) => boolean;
21
- /**
22
- * 参数config是否与sourceConfigs中任何一项有双向引用关系
23
- *
24
- * @param config
25
- * @param sourceConfigs
26
- */
27
5
  export declare const isFieldFormulaConfigQuotedTwoWays: (config: SteedosFieldFormulaTypeConfig, sourceConfigs: Array<SteedosFieldFormulaTypeConfig>) => boolean;
28
- /**
29
- * 参数configA与参数configB是否存在双向引用关系
30
- * @param configA
31
- * @param configB
32
- */
33
6
  export declare const isFieldFormulaConfigQuotedTwoWay: (configA: SteedosFieldFormulaTypeConfig, configB: SteedosFieldFormulaTypeConfig) => boolean;
34
- /**
35
- * 往参数configs中插入config,排除掉重复记录
36
- * @param config
37
- * @param configs
38
- */
39
7
  export declare const addToFieldFormulaConfigs: (config: SteedosFieldFormulaTypeConfig, configs: Array<SteedosFieldFormulaTypeConfig>) => void;
40
- /**
41
- * 根据公式引用关系对字段公式配置进行排序
42
- * 这里不能用sort函数,因为sort函数只支持两个数值或对象中两个数值属性对比
43
- * 规则是把其中被依赖的公式字段配置放前面
44
- * @param configs
45
- */
46
8
  export declare const sortFieldFormulaConfigs: (configs: Array<SteedosFieldFormulaTypeConfig>) => Array<SteedosFieldFormulaTypeConfig>;
47
- /**
48
- * 当currentUserId为空时,确认参数configs中没有引用$user变量
49
- * @param configs
50
- */
51
- export declare const checkCurrentUserIdNotRequiredForFieldFormulas: (configs: SteedosFieldFormulaTypeConfig | Array<SteedosFieldFormulaTypeConfig> | any) => void;
52
- /**
53
- * 当currentUserId为空时,判断参数vars中是否有引用$user变量
54
- * @param configs
55
- */
56
- export declare const isCurrentUserIdRequiredForFormulaVars: (vars: Array<SteedosFormulaVarTypeConfig>) => boolean;
57
- /**
58
- * 把公式变量中需要聚合查询的paths转换为aggregate函数级联查询需要的lookups,
59
- * 比如合同对象某个公式字段中有变量{company_id.organization.name}需要聚合查询的paths为:
60
- * [{"field_name":"company_id","reference_from":"contracts"},{"field_name":"organization","reference_from":"company"},{"field_name":"name","reference_from":"organizations"}]
61
- * 将转换返回:
62
- [{
63
- $lookup: {
64
- from: 'company',
65
- localField: 'company_id',
66
- foreignField: '_id',
67
- as: '@lookup_company_id'
68
- }
69
- },{
70
- $lookup: {
71
- from: 'organizations',
72
- localField: '@lookup_company_id.organization',
73
- foreignField: '_id',
74
- as: '@lookup_company_id.organization'
75
- }
76
- }]
77
- 以上返回的lookup可用于当修改组织的名称时,找到合同中引用了该组织记录的记录,并重算其对应的公式字段值
78
- * @param paths 该参数最后一项的reference_from即为需要聚合查询的对象,亦即为当前正在修改对象(需要查找数据库中有哪些对象记录引用了该对象上的字段)
79
- */
9
+ export declare const checkUserSessionNotRequiredForFieldFormulas: (configs: SteedosFieldFormulaTypeConfig | Array<SteedosFieldFormulaTypeConfig> | any) => void;
10
+ export declare const isUserSessionRequiredForFormulaVars: (vars: Array<SteedosFormulaVarTypeConfig>) => boolean;
80
11
  export declare const getFormulaVarPathsAggregateLookups: (paths: Array<SteedosFormulaVarPathTypeConfig>) => any[];
@@ -1,13 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFormulaVarPathsAggregateLookups = exports.isCurrentUserIdRequiredForFormulaVars = exports.checkCurrentUserIdNotRequiredForFieldFormulas = exports.sortFieldFormulaConfigs = exports.addToFieldFormulaConfigs = exports.isFieldFormulaConfigQuotedTwoWay = exports.isFieldFormulaConfigQuotedTwoWays = exports.isFieldFormulaConfigQuotingObjectAndFields = exports.isFieldFormulaConfigQuoted = exports.getQuotedFieldFormulaConfigs = void 0;
3
+ exports.getFormulaVarPathsAggregateLookups = exports.isUserSessionRequiredForFormulaVars = exports.checkUserSessionNotRequiredForFieldFormulas = exports.sortFieldFormulaConfigs = exports.addToFieldFormulaConfigs = exports.isFieldFormulaConfigQuotedTwoWay = exports.isFieldFormulaConfigQuotedTwoWays = exports.isFieldFormulaConfigQuotingObjectAndFields = exports.isFieldFormulaConfigQuoted = exports.getQuotedFieldFormulaConfigs = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var _ = require("lodash");
6
- /**
7
- * 从参数sourceConfigs中找到参数config中引用过的公式字段配置
8
- * @param config
9
- * @param sourceConfigs
10
- */
11
6
  var getQuotedFieldFormulaConfigs = function (config, sourceConfigs) {
12
7
  var quotes = config.quotes;
13
8
  if (quotes && quotes.length) {
@@ -22,22 +17,11 @@ var getQuotedFieldFormulaConfigs = function (config, sourceConfigs) {
22
17
  }
23
18
  };
24
19
  exports.getQuotedFieldFormulaConfigs = getQuotedFieldFormulaConfigs;
25
- /**
26
- * 参数configA中是否引用了参数configB
27
- * @param configA
28
- * @param configB
29
- */
30
20
  var isFieldFormulaConfigQuoted = function (configA, configB) {
31
21
  var configAQuoteds = (0, exports.getQuotedFieldFormulaConfigs)(configA, [configB]);
32
22
  return !!configAQuoteds.length;
33
23
  };
34
24
  exports.isFieldFormulaConfigQuoted = isFieldFormulaConfigQuoted;
35
- /**
36
- * 公式字段配置是否引用了某个对象和字段
37
- * @param config 公式字段配置
38
- * @param object_name 是否引用了该对象
39
- * @param field_name 是否引用了该字段
40
- */
41
25
  var isFieldFormulaConfigQuotingObjectAndFields = function (config, objectName, fieldNames) {
42
26
  var quotes = config.quotes;
43
27
  if (quotes && quotes.length) {
@@ -55,12 +39,6 @@ var isFieldFormulaConfigQuotingObjectAndFields = function (config, objectName, f
55
39
  }
56
40
  };
57
41
  exports.isFieldFormulaConfigQuotingObjectAndFields = isFieldFormulaConfigQuotingObjectAndFields;
58
- /**
59
- * 参数config是否与sourceConfigs中任何一项有双向引用关系
60
- *
61
- * @param config
62
- * @param sourceConfigs
63
- */
64
42
  var isFieldFormulaConfigQuotedTwoWays = function (config, sourceConfigs) {
65
43
  var e_1, _a;
66
44
  var quotedConfigs = (0, exports.getQuotedFieldFormulaConfigs)(config, sourceConfigs);
@@ -87,20 +65,10 @@ var isFieldFormulaConfigQuotedTwoWays = function (config, sourceConfigs) {
87
65
  return false;
88
66
  };
89
67
  exports.isFieldFormulaConfigQuotedTwoWays = isFieldFormulaConfigQuotedTwoWays;
90
- /**
91
- * 参数configA与参数configB是否存在双向引用关系
92
- * @param configA
93
- * @param configB
94
- */
95
68
  var isFieldFormulaConfigQuotedTwoWay = function (configA, configB) {
96
69
  return (0, exports.isFieldFormulaConfigQuotedTwoWays)(configA, [configB]);
97
70
  };
98
71
  exports.isFieldFormulaConfigQuotedTwoWay = isFieldFormulaConfigQuotedTwoWay;
99
- /**
100
- * 往参数configs中插入config,排除掉重复记录
101
- * @param config
102
- * @param configs
103
- */
104
72
  var addToFieldFormulaConfigs = function (config, configs) {
105
73
  var existedConfig = configs.find(function (item) {
106
74
  return item._id === config._id;
@@ -117,15 +85,8 @@ var addSortedFieldFormulaConfig = function (config, sourceConfigs, sortedConfigs
117
85
  });
118
86
  (0, exports.addToFieldFormulaConfigs)(config, sortedConfigs);
119
87
  };
120
- /**
121
- * 根据公式引用关系对字段公式配置进行排序
122
- * 这里不能用sort函数,因为sort函数只支持两个数值或对象中两个数值属性对比
123
- * 规则是把其中被依赖的公式字段配置放前面
124
- * @param configs
125
- */
126
88
  var sortFieldFormulaConfigs = function (configs) {
127
89
  if (configs.length <= 1) {
128
- // 只有一个时,不需要排序,直接返回
129
90
  return configs;
130
91
  }
131
92
  var sortedConfigs = [];
@@ -135,11 +96,7 @@ var sortFieldFormulaConfigs = function (configs) {
135
96
  return sortedConfigs;
136
97
  };
137
98
  exports.sortFieldFormulaConfigs = sortFieldFormulaConfigs;
138
- /**
139
- * 当currentUserId为空时,确认参数configs中没有引用$user变量
140
- * @param configs
141
- */
142
- var checkCurrentUserIdNotRequiredForFieldFormulas = function (configs) {
99
+ var checkUserSessionNotRequiredForFieldFormulas = function (configs) {
143
100
  var e_2, _a;
144
101
  if (!_.isArray(configs)) {
145
102
  configs = [configs];
@@ -151,9 +108,9 @@ var checkCurrentUserIdNotRequiredForFieldFormulas = function (configs) {
151
108
  for (var configs_1 = tslib_1.__values(configs), configs_1_1 = configs_1.next(); !configs_1_1.done; configs_1_1 = configs_1.next()) {
152
109
  var config = configs_1_1.value;
153
110
  var vars = config.vars, objectName = config.object_name, fieldName = config.field_name, formula = config.formula;
154
- var required = (0, exports.isCurrentUserIdRequiredForFormulaVars)(vars);
111
+ var required = (0, exports.isUserSessionRequiredForFormulaVars)(vars);
155
112
  if (required) {
156
- throw new Error("The param 'currentUserId' is required while running the formula '".concat(formula.replace("$", "\\$"), "' of field '").concat(fieldName, "' on the object '").concat(objectName, "'"));
113
+ throw new Error("The param 'userSession' is required while running the formula '".concat(formula.replace("$", "\\$"), "' of field '").concat(fieldName, "' on the object '").concat(objectName, "'"));
157
114
  }
158
115
  }
159
116
  }
@@ -165,42 +122,15 @@ var checkCurrentUserIdNotRequiredForFieldFormulas = function (configs) {
165
122
  finally { if (e_2) throw e_2.error; }
166
123
  }
167
124
  };
168
- exports.checkCurrentUserIdNotRequiredForFieldFormulas = checkCurrentUserIdNotRequiredForFieldFormulas;
169
- /**
170
- * 当currentUserId为空时,判断参数vars中是否有引用$user变量
171
- * @param configs
172
- */
173
- var isCurrentUserIdRequiredForFormulaVars = function (vars) {
125
+ exports.checkUserSessionNotRequiredForFieldFormulas = checkUserSessionNotRequiredForFieldFormulas;
126
+ var isUserSessionRequiredForFormulaVars = function (vars) {
174
127
  var required = !!vars.find(function (_a) {
175
- var isUserVar = _a.is_user_var;
176
- return isUserVar;
128
+ var isUserVar = _a.is_user_var, isUserSessionVar = _a.is_user_session_var;
129
+ return isUserVar || isUserSessionVar;
177
130
  });
178
131
  return required;
179
132
  };
180
- exports.isCurrentUserIdRequiredForFormulaVars = isCurrentUserIdRequiredForFormulaVars;
181
- /**
182
- * 把公式变量中需要聚合查询的paths转换为aggregate函数级联查询需要的lookups,
183
- * 比如合同对象某个公式字段中有变量{company_id.organization.name}需要聚合查询的paths为:
184
- * [{"field_name":"company_id","reference_from":"contracts"},{"field_name":"organization","reference_from":"company"},{"field_name":"name","reference_from":"organizations"}]
185
- * 将转换返回:
186
- [{
187
- $lookup: {
188
- from: 'company',
189
- localField: 'company_id',
190
- foreignField: '_id',
191
- as: '@lookup_company_id'
192
- }
193
- },{
194
- $lookup: {
195
- from: 'organizations',
196
- localField: '@lookup_company_id.organization',
197
- foreignField: '_id',
198
- as: '@lookup_company_id.organization'
199
- }
200
- }]
201
- 以上返回的lookup可用于当修改组织的名称时,找到合同中引用了该组织记录的记录,并重算其对应的公式字段值
202
- * @param paths 该参数最后一项的reference_from即为需要聚合查询的对象,亦即为当前正在修改对象(需要查找数据库中有哪些对象记录引用了该对象上的字段)
203
- */
133
+ exports.isUserSessionRequiredForFormulaVars = isUserSessionRequiredForFormulaVars;
204
134
  var getFormulaVarPathsAggregateLookups = function (paths) {
205
135
  if (!paths.length) {
206
136
  return [];