@hestia-earth/utils 0.11.6 → 0.11.7
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.
- package/dist/array.js +3 -2
- package/dist/form.js +6 -4
- package/dist/number.js +18 -22
- package/dist/string.js +4 -1
- package/dist/term.d.ts +1 -1
- package/dist/term.js +4 -1
- package/dist/utils.js +7 -6
- package/dist/validate-terms.js +46 -35
- package/package.json +6 -5
package/dist/array.js
CHANGED
|
@@ -28,8 +28,9 @@ exports.isEqual = exports.intersection = exports.unique = void 0;
|
|
|
28
28
|
* @param values List of values
|
|
29
29
|
*/
|
|
30
30
|
var unique = function (values) {
|
|
31
|
-
return values.some(function (v) { return typeof v === 'object'; })
|
|
32
|
-
__spreadArray([], __read(new Set(values.map(function (v) { return JSON.stringify(v); })))).map(function (v) { return JSON.parse(v); })
|
|
31
|
+
return values.some(function (v) { return typeof v === 'object'; })
|
|
32
|
+
? __spreadArray([], __read(new Set(values.map(function (v) { return JSON.stringify(v); })))).map(function (v) { return JSON.parse(v); })
|
|
33
|
+
: __spreadArray([], __read(new Set(values)));
|
|
33
34
|
};
|
|
34
35
|
exports.unique = unique;
|
|
35
36
|
/**
|
package/dist/form.js
CHANGED
|
@@ -13,8 +13,10 @@ var __assign = (this && this.__assign) || function () {
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.filterParams = void 0;
|
|
15
15
|
var utils_1 = require("./utils");
|
|
16
|
-
var filterParams = function (obj) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}, {}
|
|
16
|
+
var filterParams = function (obj) {
|
|
17
|
+
return Object.keys(obj).reduce(function (prev, key) {
|
|
18
|
+
var _a;
|
|
19
|
+
return (__assign(__assign({}, prev), (utils_1.isUndefined(obj[key]) || obj[key] === '' ? {} : (_a = {}, _a[key] = "" + obj[key], _a))));
|
|
20
|
+
}, {});
|
|
21
|
+
};
|
|
20
22
|
exports.filterParams = filterParams;
|
package/dist/number.js
CHANGED
|
@@ -26,11 +26,7 @@ exports.convertValue = exports.converters = exports.ConvertUnits = exports.toCom
|
|
|
26
26
|
*/
|
|
27
27
|
var isNumber = function (n) {
|
|
28
28
|
var _a;
|
|
29
|
-
return [
|
|
30
|
-
(_a = /^(-)?[\d\.]+((e|e-)[\d]+)?$/.exec("" + n)) === null || _a === void 0 ? void 0 : _a.length,
|
|
31
|
-
!isNaN(parseFloat("" + n)),
|
|
32
|
-
isFinite(parseFloat("" + n))
|
|
33
|
-
].every(Boolean);
|
|
29
|
+
return [(_a = /^(-)?[\d\.]+((e|e-)[\d]+)?$/.exec("" + n)) === null || _a === void 0 ? void 0 : _a.length, !isNaN(parseFloat("" + n)), isFinite(parseFloat("" + n))].every(Boolean);
|
|
34
30
|
};
|
|
35
31
|
exports.isNumber = isNumber;
|
|
36
32
|
/**
|
|
@@ -45,7 +41,7 @@ var toPrecision = function (n, precision) {
|
|
|
45
41
|
var mult = Math.pow(10, precision - Math.floor(Math.log(n < 0 ? -n : n) / Math.LN10) - 1);
|
|
46
42
|
var multiplier = Math.max(
|
|
47
43
|
// handle floating errors like 0.00009999999999999999
|
|
48
|
-
+("" + mult).replace(/[0]([1-9])\1+/g, function (v) { return "" + (+
|
|
44
|
+
+("" + mult).replace(/[0]([1-9])\1+/g, function (v) { return "" + (+v.substring(0, 1) + 1); }),
|
|
49
45
|
// dividing by 0.00001 will give floating point error
|
|
50
46
|
0.0001);
|
|
51
47
|
return n === 0 ? 0 : Math.round(n * multiplier) / multiplier;
|
|
@@ -113,10 +109,10 @@ exports.converters = (_a = {},
|
|
|
113
109
|
_b),
|
|
114
110
|
_a[ConvertUnits.kg] = (_c = {},
|
|
115
111
|
_c[ConvertUnits.m3] = function (value, args) { return value / args.density; },
|
|
116
|
-
_c[ConvertUnits.L] = function (value, args) { return value / args.density * 1000; },
|
|
112
|
+
_c[ConvertUnits.L] = function (value, args) { return (value / args.density) * 1000; },
|
|
117
113
|
_c),
|
|
118
114
|
_a[ConvertUnits.L] = (_d = {},
|
|
119
|
-
_d[ConvertUnits.kg] = function (value, args) { return value * args.density / 1000; },
|
|
115
|
+
_d[ConvertUnits.kg] = function (value, args) { return (value * args.density) / 1000; },
|
|
120
116
|
_d[ConvertUnits.m3] = function (value) { return value / 1000; },
|
|
121
117
|
_d),
|
|
122
118
|
_a[ConvertUnits.kWh] = (_e = {},
|
|
@@ -126,20 +122,20 @@ exports.converters = (_a = {},
|
|
|
126
122
|
_f[ConvertUnits.kWh] = function (value) { return value / 3.6; },
|
|
127
123
|
_f),
|
|
128
124
|
_a[ConvertUnits.kgP] = (_g = {},
|
|
129
|
-
_g[ConvertUnits.kgP2O5] = function (value) { return value * (P * 2) / (P * 2 + O * 5); },
|
|
130
|
-
_g[ConvertUnits.kgPO43] = function (value) { return value * P / ((P + O * 4) * 3); },
|
|
125
|
+
_g[ConvertUnits.kgP2O5] = function (value) { return (value * (P * 2)) / (P * 2 + O * 5); },
|
|
126
|
+
_g[ConvertUnits.kgPO43] = function (value) { return (value * P) / ((P + O * 4) * 3); },
|
|
131
127
|
_g),
|
|
132
128
|
_a[ConvertUnits.kgPO43] = (_h = {},
|
|
133
|
-
_h[ConvertUnits.kgP2O5] = function (value) { return value * ((P + O * 4) * 3) / (P * 2 + O * 5); },
|
|
129
|
+
_h[ConvertUnits.kgP2O5] = function (value) { return (value * ((P + O * 4) * 3)) / (P * 2 + O * 5); },
|
|
134
130
|
_h),
|
|
135
131
|
_a[ConvertUnits.kgK] = (_j = {},
|
|
136
|
-
_j[ConvertUnits.kgK2O] = function (value) { return value * (K * 2) / (K * 2 + O); },
|
|
132
|
+
_j[ConvertUnits.kgK2O] = function (value) { return (value * (K * 2)) / (K * 2 + O); },
|
|
137
133
|
_j),
|
|
138
134
|
_a[ConvertUnits.kgCa] = (_k = {},
|
|
139
|
-
_k[ConvertUnits.kgCaO] = function (value) { return value * CA / (CA + O); },
|
|
135
|
+
_k[ConvertUnits.kgCaO] = function (value) { return (value * CA) / (CA + O); },
|
|
140
136
|
_k),
|
|
141
137
|
_a[ConvertUnits.kgCaO] = (_l = {},
|
|
142
|
-
_l[ConvertUnits.kgCaCO3] = function (value) { return value * (CA + O) / (CA + C + O * 3); },
|
|
138
|
+
_l[ConvertUnits.kgCaCO3] = function (value) { return (value * (CA + O)) / (CA + C + O * 3); },
|
|
143
139
|
_l),
|
|
144
140
|
_a[ConvertUnits.kgCaMg_CO3_2] = (_m = {},
|
|
145
141
|
_m[ConvertUnits.kgCaCO3] = function (value) { return value; },
|
|
@@ -154,31 +150,31 @@ exports.converters = (_a = {},
|
|
|
154
150
|
_q[ConvertUnits.kgCO2] = function (value) { return value * 0.13; },
|
|
155
151
|
_q),
|
|
156
152
|
_a[ConvertUnits.kgCH4] = (_r = {},
|
|
157
|
-
_r[ConvertUnits.kgCH4C] = function (value) { return value * (C + H * 4) / C; },
|
|
153
|
+
_r[ConvertUnits.kgCH4C] = function (value) { return (value * (C + H * 4)) / C; },
|
|
158
154
|
_r),
|
|
159
155
|
_a[ConvertUnits.kgCO2] = (_s = {},
|
|
160
|
-
_s[ConvertUnits.kgCO2C] = function (value) { return value * (C + O * 2) / C; },
|
|
156
|
+
_s[ConvertUnits.kgCO2C] = function (value) { return (value * (C + O * 2)) / C; },
|
|
161
157
|
_s),
|
|
162
158
|
_a[ConvertUnits.kgNOx] = (_t = {},
|
|
163
|
-
_t[ConvertUnits.kgNOxN] = function (value) { return value * (N + O) / N; },
|
|
159
|
+
_t[ConvertUnits.kgNOxN] = function (value) { return (value * (N + O)) / N; },
|
|
164
160
|
_t),
|
|
165
161
|
_a[ConvertUnits.kgN2] = (_u = {},
|
|
166
162
|
_u[ConvertUnits.kgN2N] = function (value) { return value * 1; },
|
|
167
163
|
_u),
|
|
168
164
|
_a[ConvertUnits.kgN2O] = (_v = {},
|
|
169
|
-
_v[ConvertUnits.kgN2ON] = function (value) { return value * (N * 2 + O) / (N * 2); },
|
|
165
|
+
_v[ConvertUnits.kgN2ON] = function (value) { return (value * (N * 2 + O)) / (N * 2); },
|
|
170
166
|
_v),
|
|
171
167
|
_a[ConvertUnits.kgNO2] = (_w = {},
|
|
172
|
-
_w[ConvertUnits.kgNO2N] = function (value) { return value * (N + O * 2) / N; },
|
|
168
|
+
_w[ConvertUnits.kgNO2N] = function (value) { return (value * (N + O * 2)) / N; },
|
|
173
169
|
_w),
|
|
174
170
|
_a[ConvertUnits.kgNO3] = (_x = {},
|
|
175
|
-
_x[ConvertUnits.kgNO3N] = function (value) { return value * (N + O * 3) / N; },
|
|
171
|
+
_x[ConvertUnits.kgNO3N] = function (value) { return (value * (N + O * 3)) / N; },
|
|
176
172
|
_x),
|
|
177
173
|
_a[ConvertUnits.kgNH3] = (_y = {},
|
|
178
|
-
_y[ConvertUnits.kgNH3N] = function (value) { return value * (N + H * 3) / N; },
|
|
174
|
+
_y[ConvertUnits.kgNH3N] = function (value) { return (value * (N + H * 3)) / N; },
|
|
179
175
|
_y),
|
|
180
176
|
_a[ConvertUnits.kgNH4] = (_z = {},
|
|
181
|
-
_z[ConvertUnits.kgNH4N] = function (value) { return value * (N + H * 4) / N; },
|
|
177
|
+
_z[ConvertUnits.kgNH4N] = function (value) { return (value * (N + H * 4)) / N; },
|
|
182
178
|
_z),
|
|
183
179
|
_a);
|
|
184
180
|
/**
|
package/dist/string.js
CHANGED
|
@@ -15,7 +15,10 @@ var ellipsis = function (text, maxlength) {
|
|
|
15
15
|
};
|
|
16
16
|
exports.ellipsis = ellipsis;
|
|
17
17
|
var keyToLabel = function (key) {
|
|
18
|
-
return "" + key[0].toUpperCase() + key
|
|
18
|
+
return "" + key[0].toUpperCase() + key
|
|
19
|
+
.replace(/([a-z])([A-Z])/g, '$1 $2')
|
|
20
|
+
.replace(/([_])([a-zA-Z])/g, function (g) { return " " + g[1].toUpperCase(); })
|
|
21
|
+
.substring(1);
|
|
19
22
|
};
|
|
20
23
|
exports.keyToLabel = keyToLabel;
|
|
21
24
|
/**
|
package/dist/term.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare const arrayValue: (values?: any[], isAverage?: boolean) => number
|
|
|
6
6
|
* @param termId Optional - us if the term should handle an array in a specific way.
|
|
7
7
|
* @returns The value as a number.
|
|
8
8
|
*/
|
|
9
|
-
export declare const propertyValue: (value: string | number | (
|
|
9
|
+
export declare const propertyValue: (value: string | number | (string | number)[], termId?: string) => number;
|
|
10
10
|
/**
|
|
11
11
|
* Checks if the value is empty or if the property value is empty.
|
|
12
12
|
*
|
package/dist/term.js
CHANGED
|
@@ -8,7 +8,10 @@ var arrayValue = function (values, isAverage) {
|
|
|
8
8
|
if (isAverage === void 0) { isAverage = false; }
|
|
9
9
|
return values.every(utils_1.isEmpty)
|
|
10
10
|
? null
|
|
11
|
-
: values
|
|
11
|
+
: values
|
|
12
|
+
.filter(function (v) { return typeof v !== 'undefined'; })
|
|
13
|
+
.reduce(function (prev, curr) { return prev + (utils_1.isEmpty(curr) ? 0 : parseFloat("" + curr)); }, 0) /
|
|
14
|
+
(isAverage ? values.filter(function (v) { return !utils_1.isEmpty(v); }).length : 1);
|
|
12
15
|
};
|
|
13
16
|
exports.arrayValue = arrayValue;
|
|
14
17
|
/**
|
package/dist/utils.js
CHANGED
|
@@ -32,11 +32,11 @@ var isEmpty = function (value, minKeys) {
|
|
|
32
32
|
if (minKeys === void 0) { minKeys = 1; }
|
|
33
33
|
return value === null ||
|
|
34
34
|
typeof value === 'undefined' ||
|
|
35
|
-
(typeof value === 'object'
|
|
36
|
-
|
|
37
|
-
!value.length
|
|
38
|
-
Object.keys(value).filter(function (key) { return key !== 'type'; }).length < minKeys
|
|
39
|
-
value === '');
|
|
35
|
+
(typeof value === 'object'
|
|
36
|
+
? Array.isArray(value)
|
|
37
|
+
? !value.length
|
|
38
|
+
: Object.keys(value).filter(function (key) { return key !== 'type'; }).length < minKeys
|
|
39
|
+
: value === '');
|
|
40
40
|
};
|
|
41
41
|
exports.isEmpty = isEmpty;
|
|
42
42
|
var isIri = function (value) { return (value || '').startsWith('http'); };
|
|
@@ -45,7 +45,8 @@ exports.isIri = isIri;
|
|
|
45
45
|
var isUndefined = function (value, allowNull) {
|
|
46
46
|
if (allowNull === void 0) { allowNull = false; }
|
|
47
47
|
return (value === null && !allowNull) ||
|
|
48
|
-
typeof value === 'undefined' ||
|
|
48
|
+
typeof value === 'undefined' ||
|
|
49
|
+
(typeof value === 'object' && value !== null && !(value instanceof Date) && !Object.keys(value).length);
|
|
49
50
|
};
|
|
50
51
|
exports.isUndefined = isUndefined;
|
|
51
52
|
/* eslint-enable complexity */
|
package/dist/validate-terms.js
CHANGED
|
@@ -71,20 +71,22 @@ var Term = /** @class */ (function () {
|
|
|
71
71
|
}
|
|
72
72
|
return Term;
|
|
73
73
|
}());
|
|
74
|
-
var search = function (body) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
res
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
74
|
+
var search = function (body) {
|
|
75
|
+
return new Promise(function (resolve, reject) {
|
|
76
|
+
var req = https_1.request(API_URL + "/search", {
|
|
77
|
+
method: 'POST',
|
|
78
|
+
headers: { 'Content-Type': 'application/json' }
|
|
79
|
+
}, function (res) {
|
|
80
|
+
res.setEncoding(encoding);
|
|
81
|
+
var data = [];
|
|
82
|
+
res.on('data', function (chunk) { return data.push(chunk); });
|
|
83
|
+
res.on('end', function () { return resolve(JSON.parse(data.join(''))); });
|
|
84
|
+
res.on('error', reject);
|
|
85
|
+
});
|
|
86
|
+
req.write(JSON.stringify(body));
|
|
87
|
+
req.end();
|
|
84
88
|
});
|
|
85
|
-
|
|
86
|
-
req.end();
|
|
87
|
-
}); };
|
|
89
|
+
};
|
|
88
90
|
var recursiveFiles = function (directory) { return __awaiter(void 0, void 0, void 0, function () {
|
|
89
91
|
var _a, _b;
|
|
90
92
|
return __generator(this, function (_c) {
|
|
@@ -104,7 +106,9 @@ var recursiveFiles = function (directory) { return __awaiter(void 0, void 0, voi
|
|
|
104
106
|
_a = _b.sent();
|
|
105
107
|
return [3 /*break*/, 4];
|
|
106
108
|
case 3:
|
|
107
|
-
_a =
|
|
109
|
+
_a = path_1.join(directory, entry).endsWith("." + (extension || 'jsonld'))
|
|
110
|
+
? [path_1.join(directory, entry)]
|
|
111
|
+
: [];
|
|
108
112
|
_b.label = 4;
|
|
109
113
|
case 4: return [2 /*return*/, _a];
|
|
110
114
|
}
|
|
@@ -120,9 +124,9 @@ var getAllTerms = function (data) {
|
|
|
120
124
|
.flatMap(function (key) {
|
|
121
125
|
var value = data[key];
|
|
122
126
|
var isArray = Array.isArray(value);
|
|
123
|
-
return isArray ? value.flatMap(getAllTerms) :
|
|
127
|
+
return isArray ? value.flatMap(getAllTerms) : value['@type'] === 'Term' ? value : getAllTerms(value);
|
|
124
128
|
})
|
|
125
|
-
.filter(function (term) { return
|
|
129
|
+
.filter(function (term) { return !!term && term['@type'] === 'Term' && (!!term['@id'] || !!term.name); });
|
|
126
130
|
};
|
|
127
131
|
// search is limited to 1000 parameters
|
|
128
132
|
var searchLimit = 500;
|
|
@@ -138,13 +142,16 @@ var searchTerms = function (terms) { return __awaiter(void 0, void 0, void 0, fu
|
|
|
138
142
|
fields: ['@id', 'name'],
|
|
139
143
|
query: {
|
|
140
144
|
bool: {
|
|
141
|
-
must: [
|
|
145
|
+
must: [
|
|
146
|
+
{
|
|
142
147
|
match: { '@type': 'Term' }
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
148
|
+
}
|
|
149
|
+
],
|
|
150
|
+
should: searchedTerms.map(function (_a) {
|
|
146
151
|
var id = _a["@id"], name = _a.name;
|
|
147
|
-
return ({
|
|
152
|
+
return ({
|
|
153
|
+
match: id ? { '@id.keyword': id } : { 'name.keyword': name }
|
|
154
|
+
});
|
|
148
155
|
}),
|
|
149
156
|
minimum_should_match: 1
|
|
150
157
|
}
|
|
@@ -184,27 +191,31 @@ var validateTerms = function (terms) { return __awaiter(void 0, void 0, void 0,
|
|
|
184
191
|
case 0: return [4 /*yield*/, searchTerms(terms)];
|
|
185
192
|
case 1:
|
|
186
193
|
results = _a.sent();
|
|
187
|
-
return [2 /*return*/, terms
|
|
194
|
+
return [2 /*return*/, terms
|
|
195
|
+
.map(function (_a) {
|
|
188
196
|
var id = _a["@id"], name = _a.name;
|
|
189
197
|
var exists = results.find(function (res) { return res['@id'] === id || res.name === name; });
|
|
190
198
|
return exists ? true : id || name;
|
|
191
|
-
})
|
|
199
|
+
})
|
|
200
|
+
.filter(function (val) { return val !== true; })];
|
|
192
201
|
}
|
|
193
202
|
});
|
|
194
203
|
}); };
|
|
195
204
|
exports.validateTerms = validateTerms;
|
|
196
|
-
var validateFile = function (existingTerms) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
: id || name;
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
};
|
|
205
|
+
var validateFile = function (existingTerms) {
|
|
206
|
+
return function (_a) {
|
|
207
|
+
var filepath = _a.filepath, terms = _a.terms;
|
|
208
|
+
return ({
|
|
209
|
+
filepath: filepath,
|
|
210
|
+
missing: terms
|
|
211
|
+
.map(function (_a) {
|
|
212
|
+
var id = _a["@id"], name = _a.name;
|
|
213
|
+
return existingTerms.find(function (res) { return res['@id'] === id || res.name === name; }) ? true : id || name;
|
|
214
|
+
})
|
|
215
|
+
.filter(function (val) { return val !== true; })
|
|
216
|
+
});
|
|
217
|
+
};
|
|
218
|
+
};
|
|
208
219
|
var loadFile = function (filepath) { return __awaiter(void 0, void 0, void 0, function () {
|
|
209
220
|
var _a, _b, _c;
|
|
210
221
|
var _d;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hestia-earth/utils",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.7",
|
|
4
4
|
"description": "Hestia Utils library",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -32,11 +32,11 @@
|
|
|
32
32
|
},
|
|
33
33
|
"homepage": "https://gitlab.com/hestia-earth/hestia-utils#readme",
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@hestia-earth/eslint-config": "0.0
|
|
36
|
-
"@hestia-earth/glossary": "^0.
|
|
35
|
+
"@hestia-earth/eslint-config": "^0.1.0",
|
|
36
|
+
"@hestia-earth/glossary": "^0.34.0",
|
|
37
37
|
"@types/chai": "^4.2.21",
|
|
38
38
|
"@types/mocha": "^7.0.2",
|
|
39
|
-
"@types/node": "^
|
|
39
|
+
"@types/node": "^16.18.59",
|
|
40
40
|
"@types/sinon": "^9.0.11",
|
|
41
41
|
"@typescript-eslint/eslint-plugin": "^5.27.1",
|
|
42
42
|
"@typescript-eslint/parser": "^5.27.1",
|
|
@@ -52,5 +52,6 @@
|
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
54
|
"@hestia-earth/glossary": ">=0.8.0"
|
|
55
|
-
}
|
|
55
|
+
},
|
|
56
|
+
"prettier": "@hestia-earth/eslint-config/prettier.json"
|
|
56
57
|
}
|