@steedos/filters 2.2.53 → 2.2.54-beta.3

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.
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getFormatter = void 0;
7
+
3
8
  function leftPad(text, length) {
4
9
  while (text.length < length) {
5
10
  text = "0" + text;
@@ -150,4 +155,5 @@ var getFormatter = function getFormatter(format, dateParts) {
150
155
  };
151
156
  };
152
157
 
153
- module.exports.getFormatter = getFormatter;
158
+ var _getFormatter = getFormatter;
159
+ exports.getFormatter = _getFormatter;
@@ -1,5 +1,13 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ exports.getDayNames = getDayNames;
8
+ exports.getMonthNames = getMonthNames;
9
+ exports.getPeriodNames = getPeriodNames;
10
+ exports.getQuarterNames = getQuarterNames;
3
11
  var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
4
12
  DAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
5
13
  PERIODS = ["AM", "PM"],
@@ -16,17 +24,26 @@ var cutCaptions = function cutCaptions(captions, format) {
16
24
  });
17
25
  };
18
26
 
19
- module.exports = {
20
- getMonthNames: function getMonthNames(format) {
21
- return cutCaptions(MONTHS, format);
22
- },
23
- getDayNames: function getDayNames(format) {
24
- return cutCaptions(DAYS, format);
25
- },
26
- getQuarterNames: function getQuarterNames(format) {
27
- return QUARTERS;
28
- },
29
- getPeriodNames: function getPeriodNames(format) {
30
- return PERIODS;
31
- }
32
- };
27
+ function getMonthNames(format) {
28
+ return cutCaptions(MONTHS, format);
29
+ }
30
+
31
+ function getDayNames(format) {
32
+ return cutCaptions(DAYS, format);
33
+ }
34
+
35
+ function getQuarterNames(format) {
36
+ return QUARTERS;
37
+ }
38
+
39
+ function getPeriodNames(format) {
40
+ return PERIODS;
41
+ }
42
+
43
+ var _default = {
44
+ getMonthNames: getMonthNames,
45
+ getDayNames: getDayNames,
46
+ getQuarterNames: getQuarterNames,
47
+ getPeriodNames: getPeriodNames
48
+ };
49
+ exports["default"] = _default;
package/lib/filter.js CHANGED
@@ -2,23 +2,27 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
5
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
11
 
7
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
8
13
 
9
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
15
 
16
+ var _date = require("./date.formatter");
17
+
18
+ var _default_date_names = _interopRequireDefault(require("./default_date_names"));
19
+
11
20
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
21
 
13
22
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
23
 
15
- // const DevExpress = require("devextreme/bundles/modules/core");
16
- // const DevExpressData = require("devextreme/bundles/modules/data");
17
- // const DevExpressOData = require("devextreme/bundles/modules/data.odata");
18
- var getLDMLFormatter = require("./date.formatter").getFormatter; // const Guid = require("devextreme/core/guid");
24
+ // const Guid = require("devextreme/core/guid");
19
25
  // const EdmLiteral = require("devextreme/data/odata/utils").EdmLiteral;
20
-
21
-
22
26
  var DevExpressData = {
23
27
  utils: {
24
28
  isConjunctiveOperator: function isConjunctiveOperator(condition) {
@@ -33,8 +37,6 @@ var DevExpressData = {
33
37
  }
34
38
  }; // const defaultDateNames = DevExpress.localization.date;
35
39
 
36
- var defaultDateNames = require("./default_date_names");
37
-
38
40
  var DevExpressOData = {
39
41
  pad: function pad(text, length, right) {
40
42
  text = String(text);
@@ -123,7 +125,7 @@ var DevExpressOData = {
123
125
  return value && value.valueOf ? value.valueOf() : null;
124
126
  }
125
127
 
126
- return getLDMLFormatter(serializationFormat, defaultDateNames)(value);
128
+ return (0, _date.getFormatter)(serializationFormat, _default_date_names["default"])(value);
127
129
  },
128
130
  formatISO8601: function formatISO8601(date, skipZeroTime, skipTimezone) {
129
131
  var bag = [];
@@ -303,4 +305,5 @@ var SteedosFilter = /*#__PURE__*/function () {
303
305
  return SteedosFilter;
304
306
  }();
305
307
 
306
- module.exports = SteedosFilter;
308
+ var _default = SteedosFilter;
309
+ exports["default"] = _default;
package/lib/format.js CHANGED
@@ -1,18 +1,25 @@
1
1
  "use strict";
2
2
 
3
- var SteedosFilter = require("./filter");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _ = require('underscore');
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.formatFiltersToODataQuery = exports.formatFiltersToDev = void 0;
6
9
 
7
- var utils = require("./utils");
10
+ var _filter = _interopRequireDefault(require("./filter"));
8
11
 
9
- var formula = require("./formula"); // 正则包括encodeURIComponent函数编码的11个特殊符号;/?:@&=+$,#
12
+ var _lodash = require("lodash");
13
+
14
+ var _utils = require("./utils");
15
+
16
+ var _formula = require("./formula");
17
+
18
+ // 正则包括encodeURIComponent函数编码的11个特殊符号;/?:@&=+$,#
10
19
  // 还包括convertSpecialCharacter函数中转义的特殊符号^$()*+?.\|[]{}
11
20
  // 注意encodeURIComponent("\\(")的结果是%5C(,需要特别处理
12
21
  // 注意encodeURIComponent("\\.")的结果是%5C.,需要特别处理
13
22
  // 注意encodeURIComponent("\\*")的结果是%5C*,因为不需要encodeURIComponent函数编码,所以不用加入REG_FOR_ENCORD变量
14
-
15
-
16
23
  var REG_FOR_ENCORD = /\;|\/|\?|\:|\@|\&|\=|\+|\$|\,|\#|\^|(\\\()|(\\\))|(\\\.)|\\|\||\[|\]|\{|\}/;
17
24
  /**
18
25
  ^$()*+?.\|[]{}等特殊符号需要转义,否则有可能会报错且无法正确识别
@@ -65,7 +72,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
65
72
  }
66
73
  };
67
74
 
68
- if (_.isNull(filters) || _.isUndefined(filters)) {
75
+ if ((0, _lodash.isNull)(filters) || (0, _lodash.isUndefined)(filters)) {
69
76
  return;
70
77
  }
71
78
 
@@ -76,7 +83,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
76
83
 
77
84
  var _filtersLooper, selector;
78
85
 
79
- if (!_.isFunction(filters) && !filters.length) {
86
+ if (!(0, _lodash.isFunction)(filters) && !filters.length) {
80
87
  return;
81
88
  }
82
89
 
@@ -91,12 +98,12 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
91
98
  return filters_loop;
92
99
  }
93
100
 
94
- if (_.isFunction(filters_loop)) {
101
+ if ((0, _lodash.isFunction)(filters_loop)) {
95
102
  filters_loop = filters_loop();
96
103
  }
97
104
 
98
- if (!_.isArray(filters_loop)) {
99
- if (_.isObject(filters_loop)) {
105
+ if (!(0, _lodash.isArray)(filters_loop)) {
106
+ if ((0, _lodash.isObject)(filters_loop)) {
100
107
  // 当filters不是[Array]类型而是[Object]类型时,进行格式转换
101
108
  if (filters_loop.operation) {
102
109
  filters_loop = [filters_loop.field, filters_loop.operation, filters_loop.value];
@@ -126,7 +133,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
126
133
  });
127
134
  } else if (filters_loop.length === 3) {
128
135
  // 只有三个元素,可能中间是"or","and"连接符也可能是普通数组,区别对待解析
129
- if (_.include(["or", "and"], filters_loop[1])) {
136
+ if ((0, _lodash.includes)(["or", "and"], filters_loop[1])) {
130
137
  // 中间有"or","and"连接符,则循环filters_loop,依次用filtersLooper解析其过虑条件
131
138
  // 最后生成的结果格式:tempFilters = [filtersLooper(filters_loop[0]), filters_loop[1], filtersLooper(filters_loop[2]), ...]
132
139
  // 因要判断filtersLooper(filters_loop[0])及filtersLooper(filters_loop[2])是否为空
@@ -135,7 +142,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
135
142
  i = 0;
136
143
 
137
144
  while (i < filters_loop.length) {
138
- if (_.include(["or", "and"], filters_loop[i])) {
145
+ if ((0, _lodash.includes)(["or", "and"], filters_loop[i])) {
139
146
  i++;
140
147
  continue;
141
148
  }
@@ -155,17 +162,17 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
155
162
  i++;
156
163
  }
157
164
 
158
- if (_.include(["or", "and"], tempFilters[0])) {
165
+ if ((0, _lodash.includes)(["or", "and"], tempFilters[0])) {
159
166
  tempFilters.shift();
160
167
  }
161
168
  } else {
162
- if (_.isString(filters_loop[1])) {
169
+ if ((0, _lodash.isString)(filters_loop[1])) {
163
170
  // 第二个元素为字符串,则认为是某一个具体的过虑条件
164
171
  field = filters_loop[0];
165
172
  option = filters_loop[1];
166
173
  value = filters_loop[2];
167
174
 
168
- if (_.isFunction(value)) {
175
+ if ((0, _lodash.isFunction)(value)) {
169
176
  value = value();
170
177
  }
171
178
 
@@ -174,21 +181,21 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
174
181
  option = "<>";
175
182
  }
176
183
 
177
- value = formula.evaluateFormula(value, userContext);
184
+ value = (0, _formula.evaluateFormula)(value, userContext);
178
185
  sub_selector = [];
179
- isBetweenOperation = utils.isBetweenFilterOperation(option);
186
+ isBetweenOperation = (0, _utils.isBetweenFilterOperation)(option);
180
187
 
181
- if (isBetweenOperation && _.isString(value)) {
188
+ if (isBetweenOperation && (0, _lodash.isString)(value)) {
182
189
  // 如果是between运算符内置值,则取出对应values作为过滤值
183
190
  // 比如value为last_year,返回对应的时间值
184
- builtinValue = utils.getBetweenBuiltinValueItem(value, utcOffset);
191
+ builtinValue = (0, _utils.getBetweenBuiltinValueItem)(value, utcOffset);
185
192
 
186
193
  if (builtinValue) {
187
194
  value = builtinValue.values;
188
195
  }
189
196
  }
190
197
 
191
- if (_.isArray(value)) {
198
+ if ((0, _lodash.isArray)(value)) {
192
199
  value = value.map(function (item) {
193
200
  if (typeof item === "string") {
194
201
  if (["contains", "startswith", "endswith", "notcontains", "notstartswith", "notendswith"].indexOf(option) > -1) {
@@ -220,7 +227,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
220
227
  // return sub_selector.push([field, "<>", v], "and");
221
228
  // });
222
229
  } else if (["notcontains", "notstartswith", "notendswith"].indexOf(option) > -1) {
223
- _.each(value, function (v) {
230
+ (0, _lodash.each)(value, function (v) {
224
231
  return sub_selector.push([field, option, v], "and");
225
232
  });
226
233
  } else if (isBetweenOperation) {
@@ -238,7 +245,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
238
245
  }
239
246
  } else {
240
247
  // contains、startswith、endswith等,如果value为空数组,不加任何条件,即查找所有数据
241
- _.each(value, function (v) {
248
+ (0, _lodash.each)(value, function (v) {
242
249
  return sub_selector.push([field, option, v], "or");
243
250
  });
244
251
  }
@@ -260,7 +267,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
260
267
  tempFilters = [field, "=", true];
261
268
  }
262
269
  } else {
263
- if (isBetweenOperation && !_.isArray(value)) {// between操作符时,value必须是数组,不能是undefined等其他值
270
+ if (isBetweenOperation && !(0, _lodash.isArray)(value)) {// between操作符时,value必须是数组,不能是undefined等其他值
264
271
  } else {
265
272
  if (typeof value === "string") {
266
273
  if (["contains", "startswith", "endswith", "notcontains", "notstartswith", "notendswith"].indexOf(option) > -1) {
@@ -291,7 +298,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
291
298
  }
292
299
  } else {
293
300
  // 超过3个元素的数组,可能中间是"or","and"连接符也可能是普通数组,区别对待解析
294
- if ((ref = _.intersection(["or", "and"], filters_loop)) != null ? ref.length : void 0) {
301
+ if ((ref = (0, _lodash.intersection)(["or", "and"], filters_loop)) != null ? ref.length : void 0) {
295
302
  // 中间有"or","and"连接符,则循环filters_loop,依次用filtersLooper解析其过虑条件
296
303
  // 最后生成的结果格式:tempFilters = [filtersLooper(filters_loop[0]), filters_loop[1], filtersLooper(filters_loop[2]), ...]
297
304
  // 因要判断filtersLooper(filters_loop[0])及filtersLooper(filters_loop[2])是否为空
@@ -300,7 +307,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
300
307
  i = 0;
301
308
 
302
309
  while (i < filters_loop.length) {
303
- if (_.include(["or", "and"], filters_loop[i])) {
310
+ if ((0, _lodash.includes)(["or", "and"], filters_loop[i])) {
304
311
  i++;
305
312
  continue;
306
313
  }
@@ -320,7 +327,7 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
320
327
  i++;
321
328
  }
322
329
 
323
- if (_.include(["or", "and"], tempFilters[0])) {
330
+ if ((0, _lodash.includes)(["or", "and"], tempFilters[0])) {
324
331
  tempFilters.shift();
325
332
  }
326
333
  } else {
@@ -348,8 +355,10 @@ var formatFiltersToDev = function formatFiltersToDev(filters) {
348
355
 
349
356
  var formatFiltersToODataQuery = function formatFiltersToODataQuery(filters, userContext, odataProtocolVersion, forceLowerCase) {
350
357
  var devFilters = formatFiltersToDev(filters, userContext);
351
- return new SteedosFilter(devFilters, odataProtocolVersion, forceLowerCase).formatFiltersToODataQuery();
358
+ return new _filter["default"](devFilters, odataProtocolVersion, forceLowerCase).formatFiltersToODataQuery();
352
359
  };
353
360
 
354
- exports.formatFiltersToDev = formatFiltersToDev;
355
- exports.formatFiltersToODataQuery = formatFiltersToODataQuery;
361
+ var _formatFiltersToDev = formatFiltersToDev;
362
+ exports.formatFiltersToDev = _formatFiltersToDev;
363
+ var _formatFiltersToODataQuery = formatFiltersToODataQuery;
364
+ exports.formatFiltersToODataQuery = _formatFiltersToODataQuery;
package/lib/formula.js CHANGED
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.evaluateFormula = void 0;
7
+
3
8
  // "{userId}"或"{user.name}"格式
4
9
  var checkFormula = function checkFormula(formula) {
5
10
  return typeof formula === "string" && /\{\w+(\.\w+)?\}/.test(formula);
@@ -27,4 +32,5 @@ var evaluateFormula = function evaluateFormula(formula, context) {
27
32
  }
28
33
  };
29
34
 
30
- exports.evaluateFormula = evaluateFormula;
35
+ var _evaluateFormula = evaluateFormula;
36
+ exports.evaluateFormula = _evaluateFormula;
package/lib/graphql.js CHANGED
@@ -1,20 +1,23 @@
1
1
  "use strict";
2
2
 
3
- var _ = require('underscore');
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.formatFiltersToGraphqlQuery = void 0;
4
7
 
5
- var _require = require("./format"),
6
- formatFiltersToODataQuery = _require.formatFiltersToODataQuery; // 把"a.b.c"这种字符fieldName转换为{"a":{"b":{"c":{}}}}这种json
8
+ var _lodash = require("lodash");
7
9
 
10
+ var _format = require("./format");
8
11
 
12
+ // 把"a.b.c"这种字符fieldName转换为{"a":{"b":{"c":{}}}}这种json
9
13
  var expandFieldName = function expandFieldName(initial, fieldName) {
10
- _.reduce(fieldName.split("."), function (m, k) {
14
+ (0, _lodash.reduce)(fieldName.split("."), function (m, k) {
11
15
  if (!m[k]) {
12
16
  m[k] = {};
13
17
  }
14
18
 
15
19
  return m[k];
16
20
  }, initial);
17
-
18
21
  return initial;
19
22
  }; // 把["a.b.c","x.y","x.z","m"]这种字符fieldName转换为{"a":{"b":{"c":{}}},"x":{"y":{},"z":{}},"m":{}}这种json对象格式
20
23
 
@@ -48,10 +51,10 @@ var reduceGraphqlFieldsQuery = function reduceGraphqlFieldsQuery(fields, indents
48
51
  }
49
52
 
50
53
  var itemQuery;
51
- return " {\n".concat(_.map(fields, function (fieldValue, fieldKey) {
54
+ return " {\n".concat((0, _lodash.map)(fields, function (fieldValue, fieldKey) {
52
55
  itemQuery = generateIndents(indentsCount) + generateIndents(1) + fieldKey;
53
56
 
54
- if (_.isEmpty(fieldValue)) {
57
+ if ((0, _lodash.isEmpty)(fieldValue)) {
55
58
  itemQuery += "\n";
56
59
  } else {
57
60
  indentsCount += 1;
@@ -64,7 +67,7 @@ var reduceGraphqlFieldsQuery = function reduceGraphqlFieldsQuery(fields, indents
64
67
  };
65
68
 
66
69
  var formatFieldsToGraphqlQuery = function formatFieldsToGraphqlQuery(fields) {
67
- if (_.isString(fields)) {
70
+ if ((0, _lodash.isString)(fields)) {
68
71
  fields = fields.split(",");
69
72
  }
70
73
 
@@ -96,8 +99,8 @@ var formatFieldsToGraphqlQuery = function formatFieldsToGraphqlQuery(fields) {
96
99
 
97
100
 
98
101
  var formatFiltersToGraphqlQuery = function formatFiltersToGraphqlQuery(objectName, filters, fields, userContext, odataProtocolVersion, forceLowerCase) {
99
- if (!_.isString(filters)) {
100
- filters = formatFiltersToODataQuery(filters, userContext, odataProtocolVersion, forceLowerCase);
102
+ if (!(0, _lodash.isString)(filters)) {
103
+ filters = (0, _format.formatFiltersToODataQuery)(filters, userContext, odataProtocolVersion, forceLowerCase);
101
104
  }
102
105
 
103
106
  var filtersWrap = filters ? "(filters:\"".concat(filters, "\")") : "";
@@ -106,4 +109,5 @@ var formatFiltersToGraphqlQuery = function formatFiltersToGraphqlQuery(objectNam
106
109
  return graphqlQuery;
107
110
  };
108
111
 
109
- exports.formatFiltersToGraphqlQuery = formatFiltersToGraphqlQuery;
112
+ var _formatFiltersToGraphqlQuery = formatFiltersToGraphqlQuery;
113
+ exports.formatFiltersToGraphqlQuery = _formatFiltersToGraphqlQuery;
package/lib/index.js CHANGED
@@ -1,14 +1,75 @@
1
1
  "use strict";
2
2
 
3
- var SteedosFilter = require("./filter");
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
4
 
5
- var format = require('./format');
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ var _exportNames = {
9
+ SteedosFilter: true
10
+ };
11
+ exports.SteedosFilter = void 0;
6
12
 
7
- var utils = require('./utils');
13
+ var _SteedosFilter = _interopRequireWildcard(require("./filter"));
8
14
 
9
- var formula = require('./formula');
15
+ exports.SteedosFilter = _SteedosFilter;
10
16
 
11
- var graphql = require('./graphql');
17
+ var _format = require("./format");
12
18
 
13
- exports.SteedosFilter = SteedosFilter;
14
- Object.assign(exports, utils, formula, format, graphql);
19
+ Object.keys(_format).forEach(function (key) {
20
+ if (key === "default" || key === "__esModule") return;
21
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
22
+ if (key in exports && exports[key] === _format[key]) return;
23
+ Object.defineProperty(exports, key, {
24
+ enumerable: true,
25
+ get: function get() {
26
+ return _format[key];
27
+ }
28
+ });
29
+ });
30
+
31
+ var _utils = require("./utils");
32
+
33
+ Object.keys(_utils).forEach(function (key) {
34
+ if (key === "default" || key === "__esModule") return;
35
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
36
+ if (key in exports && exports[key] === _utils[key]) return;
37
+ Object.defineProperty(exports, key, {
38
+ enumerable: true,
39
+ get: function get() {
40
+ return _utils[key];
41
+ }
42
+ });
43
+ });
44
+
45
+ var _formula = require("./formula");
46
+
47
+ Object.keys(_formula).forEach(function (key) {
48
+ if (key === "default" || key === "__esModule") return;
49
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
50
+ if (key in exports && exports[key] === _formula[key]) return;
51
+ Object.defineProperty(exports, key, {
52
+ enumerable: true,
53
+ get: function get() {
54
+ return _formula[key];
55
+ }
56
+ });
57
+ });
58
+
59
+ var _graphql = require("./graphql");
60
+
61
+ Object.keys(_graphql).forEach(function (key) {
62
+ if (key === "default" || key === "__esModule") return;
63
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
64
+ if (key in exports && exports[key] === _graphql[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function get() {
68
+ return _graphql[key];
69
+ }
70
+ });
71
+ });
72
+
73
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
74
+
75
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
package/lib/utils.js CHANGED
@@ -1,8 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var moment = require('moment');
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _ = require('underscore');
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.isBetweenFilterOperation = exports.getQuarterStartMonth = exports.getNextQuarterFirstDay = exports.getMonthDays = exports.getLastQuarterFirstDay = exports.getLastMonthFirstDay = exports.getBetweenTimeBuiltinValueItem = exports.getBetweenBuiltinValueItem = void 0;
9
+
10
+ var _moment = _interopRequireDefault(require("moment"));
6
11
 
7
12
  var t = function t(key) {
8
13
  return key;
@@ -22,6 +27,8 @@ var getMonthDays = function getMonthDays(year, month) {
22
27
  return days;
23
28
  };
24
29
 
30
+ exports.getMonthDays = getMonthDays;
31
+
25
32
  var getNextQuarterFirstDay = function getNextQuarterFirstDay(year, month) {
26
33
  if (!year) {
27
34
  year = new Date().getFullYear();
@@ -45,6 +52,8 @@ var getNextQuarterFirstDay = function getNextQuarterFirstDay(year, month) {
45
52
  return new Date(year, month, 1);
46
53
  };
47
54
 
55
+ exports.getNextQuarterFirstDay = getNextQuarterFirstDay;
56
+
48
57
  var getLastMonthFirstDay = function getLastMonthFirstDay(year, month) {
49
58
  if (!year) {
50
59
  year = new Date().getFullYear();
@@ -66,6 +75,8 @@ var getLastMonthFirstDay = function getLastMonthFirstDay(year, month) {
66
75
  return new Date(year, month, 1);
67
76
  };
68
77
 
78
+ exports.getLastMonthFirstDay = getLastMonthFirstDay;
79
+
69
80
  var getQuarterStartMonth = function getQuarterStartMonth(month) {
70
81
  if (!month) {
71
82
  month = new Date().getMonth();
@@ -82,6 +93,8 @@ var getQuarterStartMonth = function getQuarterStartMonth(month) {
82
93
  return 9;
83
94
  };
84
95
 
96
+ exports.getQuarterStartMonth = getQuarterStartMonth;
97
+
85
98
  var getLastQuarterFirstDay = function getLastQuarterFirstDay(year, month) {
86
99
  if (!year) {
87
100
  year = new Date().getFullYear();
@@ -105,6 +118,8 @@ var getLastQuarterFirstDay = function getLastQuarterFirstDay(year, month) {
105
118
  return new Date(year, month, 1);
106
119
  };
107
120
 
121
+ exports.getLastQuarterFirstDay = getLastQuarterFirstDay;
122
+
108
123
  var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key, utcOffset) {
109
124
  // 过滤器between运算符,现算日期/日期时间类型字段的values值
110
125
  var currentMonth, currentYear, endValue, firstDay, label, lastDay, lastMonday, lastMonthFinalDay, lastMonthFirstDay, lastQuarterEndDay, lastQuarterStartDay, lastSunday, last_120_days, last_30_days, last_60_days, last_7_days, last_90_days, millisecond, minusDay, monday, month, nextMonday, nextMonthFinalDay, nextMonthFirstDay, nextQuarterEndDay, nextQuarterStartDay, nextSunday, nextYear, next_120_days, next_30_days, next_60_days, next_7_days, next_90_days, now, previousYear, startValue, strEndDay, strFirstDay, strLastDay, strMonday, strStartDay, strSunday, strToday, strTomorrow, strYestday, sunday, thisQuarterEndDay, thisQuarterStartDay, tomorrow, values, week, year, yestday;
@@ -192,8 +207,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
192
207
 
193
208
  case "last_quarter":
194
209
  // 上季度
195
- strFirstDay = moment(lastQuarterStartDay).format("YYYY-MM-DD");
196
- strLastDay = moment(lastQuarterEndDay).format("YYYY-MM-DD");
210
+ strFirstDay = (0, _moment["default"])(lastQuarterStartDay).format("YYYY-MM-DD");
211
+ strLastDay = (0, _moment["default"])(lastQuarterEndDay).format("YYYY-MM-DD");
197
212
  label = t("creator_filter_operation_between_last_quarter");
198
213
  startValue = new Date(strFirstDay + "T00:00:00Z");
199
214
  endValue = new Date(strLastDay + "T23:59:59Z");
@@ -201,8 +216,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
201
216
 
202
217
  case "this_quarter":
203
218
  // 本季度
204
- strFirstDay = moment(thisQuarterStartDay).format("YYYY-MM-DD");
205
- strLastDay = moment(thisQuarterEndDay).format("YYYY-MM-DD");
219
+ strFirstDay = (0, _moment["default"])(thisQuarterStartDay).format("YYYY-MM-DD");
220
+ strLastDay = (0, _moment["default"])(thisQuarterEndDay).format("YYYY-MM-DD");
206
221
  label = t("creator_filter_operation_between_this_quarter");
207
222
  startValue = new Date(strFirstDay + "T00:00:00Z");
208
223
  endValue = new Date(strLastDay + "T23:59:59Z");
@@ -210,8 +225,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
210
225
 
211
226
  case "next_quarter":
212
227
  // 下季度
213
- strFirstDay = moment(nextQuarterStartDay).format("YYYY-MM-DD");
214
- strLastDay = moment(nextQuarterEndDay).format("YYYY-MM-DD");
228
+ strFirstDay = (0, _moment["default"])(nextQuarterStartDay).format("YYYY-MM-DD");
229
+ strLastDay = (0, _moment["default"])(nextQuarterEndDay).format("YYYY-MM-DD");
215
230
  label = t("creator_filter_operation_between_next_quarter");
216
231
  startValue = new Date(strFirstDay + "T00:00:00Z");
217
232
  endValue = new Date(strLastDay + "T23:59:59Z");
@@ -219,8 +234,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
219
234
 
220
235
  case "last_month":
221
236
  // 上月
222
- strFirstDay = moment(lastMonthFirstDay).format("YYYY-MM-DD");
223
- strLastDay = moment(lastMonthFinalDay).format("YYYY-MM-DD");
237
+ strFirstDay = (0, _moment["default"])(lastMonthFirstDay).format("YYYY-MM-DD");
238
+ strLastDay = (0, _moment["default"])(lastMonthFinalDay).format("YYYY-MM-DD");
224
239
  label = t("creator_filter_operation_between_last_month");
225
240
  startValue = new Date(strFirstDay + "T00:00:00Z");
226
241
  endValue = new Date(strLastDay + "T23:59:59Z");
@@ -228,8 +243,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
228
243
 
229
244
  case "this_month":
230
245
  // 本月
231
- strFirstDay = moment(firstDay).format("YYYY-MM-DD");
232
- strLastDay = moment(lastDay).format("YYYY-MM-DD");
246
+ strFirstDay = (0, _moment["default"])(firstDay).format("YYYY-MM-DD");
247
+ strLastDay = (0, _moment["default"])(lastDay).format("YYYY-MM-DD");
233
248
  label = t("creator_filter_operation_between_this_month");
234
249
  startValue = new Date(strFirstDay + "T00:00:00Z");
235
250
  endValue = new Date(strLastDay + "T23:59:59Z");
@@ -237,8 +252,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
237
252
 
238
253
  case "next_month":
239
254
  // 下月
240
- strFirstDay = moment(nextMonthFirstDay).format("YYYY-MM-DD");
241
- strLastDay = moment(nextMonthFinalDay).format("YYYY-MM-DD");
255
+ strFirstDay = (0, _moment["default"])(nextMonthFirstDay).format("YYYY-MM-DD");
256
+ strLastDay = (0, _moment["default"])(nextMonthFinalDay).format("YYYY-MM-DD");
242
257
  label = t("creator_filter_operation_between_next_month");
243
258
  startValue = new Date(strFirstDay + "T00:00:00Z");
244
259
  endValue = new Date(strLastDay + "T23:59:59Z");
@@ -246,8 +261,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
246
261
 
247
262
  case "last_week":
248
263
  // 上周
249
- strMonday = moment(lastMonday).format("YYYY-MM-DD");
250
- strSunday = moment(lastSunday).format("YYYY-MM-DD");
264
+ strMonday = (0, _moment["default"])(lastMonday).format("YYYY-MM-DD");
265
+ strSunday = (0, _moment["default"])(lastSunday).format("YYYY-MM-DD");
251
266
  label = t("creator_filter_operation_between_last_week");
252
267
  startValue = new Date(strMonday + "T00:00:00Z");
253
268
  endValue = new Date(strSunday + "T23:59:59Z");
@@ -255,8 +270,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
255
270
 
256
271
  case "this_week":
257
272
  // 本周
258
- strMonday = moment(monday).format("YYYY-MM-DD");
259
- strSunday = moment(sunday).format("YYYY-MM-DD");
273
+ strMonday = (0, _moment["default"])(monday).format("YYYY-MM-DD");
274
+ strSunday = (0, _moment["default"])(sunday).format("YYYY-MM-DD");
260
275
  label = t("creator_filter_operation_between_this_week");
261
276
  startValue = new Date(strMonday + "T00:00:00Z");
262
277
  endValue = new Date(strSunday + "T23:59:59Z");
@@ -264,8 +279,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
264
279
 
265
280
  case "next_week":
266
281
  // 下周
267
- strMonday = moment(nextMonday).format("YYYY-MM-DD");
268
- strSunday = moment(nextSunday).format("YYYY-MM-DD");
282
+ strMonday = (0, _moment["default"])(nextMonday).format("YYYY-MM-DD");
283
+ strSunday = (0, _moment["default"])(nextSunday).format("YYYY-MM-DD");
269
284
  label = t("creator_filter_operation_between_next_week");
270
285
  startValue = new Date(strMonday + "T00:00:00Z");
271
286
  endValue = new Date(strSunday + "T23:59:59Z");
@@ -273,7 +288,7 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
273
288
 
274
289
  case "yestday":
275
290
  // 昨天
276
- strYestday = moment(yestday).format("YYYY-MM-DD");
291
+ strYestday = (0, _moment["default"])(yestday).format("YYYY-MM-DD");
277
292
  label = t("creator_filter_operation_between_yestday");
278
293
  startValue = new Date(strYestday + "T00:00:00Z");
279
294
  endValue = new Date(strYestday + "T23:59:59Z");
@@ -281,7 +296,7 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
281
296
 
282
297
  case "today":
283
298
  // 今天
284
- strToday = moment(now).format("YYYY-MM-DD");
299
+ strToday = (0, _moment["default"])(now).format("YYYY-MM-DD");
285
300
  label = t("creator_filter_operation_between_today");
286
301
  startValue = new Date(strToday + "T00:00:00Z");
287
302
  endValue = new Date(strToday + "T23:59:59Z");
@@ -289,7 +304,7 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
289
304
 
290
305
  case "tomorrow":
291
306
  // 明天
292
- strTomorrow = moment(tomorrow).format("YYYY-MM-DD");
307
+ strTomorrow = (0, _moment["default"])(tomorrow).format("YYYY-MM-DD");
293
308
  label = t("creator_filter_operation_between_tomorrow");
294
309
  startValue = new Date(strTomorrow + "T00:00:00Z");
295
310
  endValue = new Date(strTomorrow + "T23:59:59Z");
@@ -297,8 +312,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
297
312
 
298
313
  case "last_7_days":
299
314
  // 过去7天
300
- strStartDay = moment(last_7_days).format("YYYY-MM-DD");
301
- strEndDay = moment(now).format("YYYY-MM-DD");
315
+ strStartDay = (0, _moment["default"])(last_7_days).format("YYYY-MM-DD");
316
+ strEndDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
302
317
  label = t("creator_filter_operation_between_last_7_days");
303
318
  startValue = new Date(strStartDay + "T00:00:00Z");
304
319
  endValue = new Date(strEndDay + "T23:59:59Z");
@@ -306,8 +321,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
306
321
 
307
322
  case "last_30_days":
308
323
  // 过去30天
309
- strStartDay = moment(last_30_days).format("YYYY-MM-DD");
310
- strEndDay = moment(now).format("YYYY-MM-DD");
324
+ strStartDay = (0, _moment["default"])(last_30_days).format("YYYY-MM-DD");
325
+ strEndDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
311
326
  label = t("creator_filter_operation_between_last_30_days");
312
327
  startValue = new Date(strStartDay + "T00:00:00Z");
313
328
  endValue = new Date(strEndDay + "T23:59:59Z");
@@ -315,8 +330,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
315
330
 
316
331
  case "last_60_days":
317
332
  // 过去60天
318
- strStartDay = moment(last_60_days).format("YYYY-MM-DD");
319
- strEndDay = moment(now).format("YYYY-MM-DD");
333
+ strStartDay = (0, _moment["default"])(last_60_days).format("YYYY-MM-DD");
334
+ strEndDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
320
335
  label = t("creator_filter_operation_between_last_60_days");
321
336
  startValue = new Date(strStartDay + "T00:00:00Z");
322
337
  endValue = new Date(strEndDay + "T23:59:59Z");
@@ -324,8 +339,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
324
339
 
325
340
  case "last_90_days":
326
341
  // 过去90天
327
- strStartDay = moment(last_90_days).format("YYYY-MM-DD");
328
- strEndDay = moment(now).format("YYYY-MM-DD");
342
+ strStartDay = (0, _moment["default"])(last_90_days).format("YYYY-MM-DD");
343
+ strEndDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
329
344
  label = t("creator_filter_operation_between_last_90_days");
330
345
  startValue = new Date(strStartDay + "T00:00:00Z");
331
346
  endValue = new Date(strEndDay + "T23:59:59Z");
@@ -333,8 +348,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
333
348
 
334
349
  case "last_120_days":
335
350
  // 过去120天
336
- strStartDay = moment(last_120_days).format("YYYY-MM-DD");
337
- strEndDay = moment(now).format("YYYY-MM-DD");
351
+ strStartDay = (0, _moment["default"])(last_120_days).format("YYYY-MM-DD");
352
+ strEndDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
338
353
  label = t("creator_filter_operation_between_last_120_days");
339
354
  startValue = new Date(strStartDay + "T00:00:00Z");
340
355
  endValue = new Date(strEndDay + "T23:59:59Z");
@@ -342,8 +357,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
342
357
 
343
358
  case "next_7_days":
344
359
  // 未来7天
345
- strStartDay = moment(now).format("YYYY-MM-DD");
346
- strEndDay = moment(next_7_days).format("YYYY-MM-DD");
360
+ strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
361
+ strEndDay = (0, _moment["default"])(next_7_days).format("YYYY-MM-DD");
347
362
  label = t("creator_filter_operation_between_next_7_days");
348
363
  startValue = new Date(strStartDay + "T00:00:00Z");
349
364
  endValue = new Date(strEndDay + "T23:59:59Z");
@@ -351,8 +366,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
351
366
 
352
367
  case "next_30_days":
353
368
  // 未来30天
354
- strStartDay = moment(now).format("YYYY-MM-DD");
355
- strEndDay = moment(next_30_days).format("YYYY-MM-DD");
369
+ strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
370
+ strEndDay = (0, _moment["default"])(next_30_days).format("YYYY-MM-DD");
356
371
  label = t("creator_filter_operation_between_next_30_days");
357
372
  startValue = new Date(strStartDay + "T00:00:00Z");
358
373
  endValue = new Date(strEndDay + "T23:59:59Z");
@@ -360,8 +375,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
360
375
 
361
376
  case "next_60_days":
362
377
  // 未来60天
363
- strStartDay = moment(now).format("YYYY-MM-DD");
364
- strEndDay = moment(next_60_days).format("YYYY-MM-DD");
378
+ strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
379
+ strEndDay = (0, _moment["default"])(next_60_days).format("YYYY-MM-DD");
365
380
  label = t("creator_filter_operation_between_next_60_days");
366
381
  startValue = new Date(strStartDay + "T00:00:00Z");
367
382
  endValue = new Date(strEndDay + "T23:59:59Z");
@@ -369,8 +384,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
369
384
 
370
385
  case "next_90_days":
371
386
  // 未来90天
372
- strStartDay = moment(now).format("YYYY-MM-DD");
373
- strEndDay = moment(next_90_days).format("YYYY-MM-DD");
387
+ strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
388
+ strEndDay = (0, _moment["default"])(next_90_days).format("YYYY-MM-DD");
374
389
  label = t("creator_filter_operation_between_next_90_days");
375
390
  startValue = new Date(strStartDay + "T00:00:00Z");
376
391
  endValue = new Date(strEndDay + "T23:59:59Z");
@@ -378,8 +393,8 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
378
393
 
379
394
  case "next_120_days":
380
395
  // 未来120天
381
- strStartDay = moment(now).format("YYYY-MM-DD");
382
- strEndDay = moment(next_120_days).format("YYYY-MM-DD");
396
+ strStartDay = (0, _moment["default"])(now).format("YYYY-MM-DD");
397
+ strEndDay = (0, _moment["default"])(next_120_days).format("YYYY-MM-DD");
383
398
  label = t("creator_filter_operation_between_next_120_days");
384
399
  startValue = new Date(strStartDay + "T00:00:00Z");
385
400
  endValue = new Date(strEndDay + "T23:59:59Z");
@@ -413,19 +428,16 @@ var getBetweenTimeBuiltinValueItem = function getBetweenTimeBuiltinValueItem(key
413
428
  };
414
429
  };
415
430
 
431
+ exports.getBetweenTimeBuiltinValueItem = getBetweenTimeBuiltinValueItem;
432
+
416
433
  var getBetweenBuiltinValueItem = function getBetweenBuiltinValueItem(key, utcOffset) {
417
434
  return getBetweenTimeBuiltinValueItem(key, utcOffset);
418
435
  };
419
436
 
437
+ exports.getBetweenBuiltinValueItem = getBetweenBuiltinValueItem;
438
+
420
439
  var isBetweenFilterOperation = function isBetweenFilterOperation(operation) {
421
440
  return operation === "between";
422
441
  };
423
442
 
424
- exports.getMonthDays = getMonthDays;
425
- exports.getQuarterStartMonth = getQuarterStartMonth;
426
- exports.getLastMonthFirstDay = getLastMonthFirstDay;
427
- exports.getLastQuarterFirstDay = getLastQuarterFirstDay;
428
- exports.getNextQuarterFirstDay = getNextQuarterFirstDay;
429
- exports.getBetweenBuiltinValueItem = getBetweenBuiltinValueItem;
430
- exports.getBetweenTimeBuiltinValueItem = getBetweenTimeBuiltinValueItem;
431
443
  exports.isBetweenFilterOperation = isBetweenFilterOperation;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@steedos/filters",
3
3
  "private": false,
4
- "version": "2.2.53",
4
+ "version": "2.2.54-beta.3",
5
5
  "description": "filters lib for steedos",
6
6
  "main": "lib/index.js",
7
7
  "files": [
@@ -9,13 +9,16 @@
9
9
  ],
10
10
  "license": "Apache",
11
11
  "scripts": {
12
- "test": "yarn build && mocha test/**/*.js",
13
- "build": "babel -d lib src/"
12
+ "test": "yarn build-babel && mocha test/**/*.js",
13
+ "build": "yarn build-babel && yarn build-rollup && yarn build-uglifyjs",
14
+ "build-babel": "babel -d lib src/",
15
+ "build-rollup": "rollup -c rollup.config.js",
16
+ "build-uglifyjs": "yarn uglifyjs dist/steedos-filters.umd.js -o dist/steedos-filters.umd.min.js"
14
17
  },
15
18
  "dependencies": {
16
19
  "@babel/runtime": "7.12.18",
17
- "moment": "^2.24.0",
18
- "underscore": "^1.9.1"
20
+ "lodash": "4.17.21",
21
+ "moment": "^2.24.0"
19
22
  },
20
23
  "devDependencies": {
21
24
  "@babel/cli": "^7.8.4",
@@ -31,5 +34,5 @@
31
34
  "publishConfig": {
32
35
  "access": "public"
33
36
  },
34
- "gitHead": "769c7fa373467a407961e132bbc5cc9d164ae42a"
37
+ "gitHead": "e83b0f819481cfc1e98ec8b67a2e29e70a520f68"
35
38
  }