@leav/utils 0.0.1-test

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 (83) hide show
  1. package/README.md +8 -0
  2. package/dist/cjs/MIMEByExtension.json +806 -0
  3. package/dist/cjs/constants.d.ts +2 -0
  4. package/dist/cjs/constants.js +9 -0
  5. package/dist/cjs/constants.js.map +1 -0
  6. package/dist/cjs/index.d.ts +11 -0
  7. package/dist/cjs/index.js +31 -0
  8. package/dist/cjs/index.js.map +1 -0
  9. package/dist/cjs/types/applications.d.ts +1 -0
  10. package/dist/cjs/types/applications.js +8 -0
  11. package/dist/cjs/types/applications.js.map +1 -0
  12. package/dist/cjs/types/attributes.d.ts +7 -0
  13. package/dist/cjs/types/attributes.js +15 -0
  14. package/dist/cjs/types/attributes.js.map +1 -0
  15. package/dist/cjs/types/errors.d.ts +5 -0
  16. package/dist/cjs/types/errors.js +13 -0
  17. package/dist/cjs/types/errors.js.map +1 -0
  18. package/dist/cjs/types/events.d.ts +75 -0
  19. package/dist/cjs/types/events.js +37 -0
  20. package/dist/cjs/types/events.js.map +1 -0
  21. package/dist/cjs/types/files.d.ts +16 -0
  22. package/dist/cjs/types/files.js +15 -0
  23. package/dist/cjs/types/files.js.map +1 -0
  24. package/dist/cjs/types/forms.d.ts +60 -0
  25. package/dist/cjs/types/forms.js +29 -0
  26. package/dist/cjs/types/forms.js.map +1 -0
  27. package/dist/cjs/types/helpers.d.ts +13 -0
  28. package/dist/cjs/types/helpers.js +3 -0
  29. package/dist/cjs/types/helpers.js.map +1 -0
  30. package/dist/cjs/types/logs.d.ts +2 -0
  31. package/dist/cjs/types/logs.js +3 -0
  32. package/dist/cjs/types/logs.js.map +1 -0
  33. package/dist/cjs/types/previews.d.ts +5 -0
  34. package/dist/cjs/types/previews.js +13 -0
  35. package/dist/cjs/types/previews.js.map +1 -0
  36. package/dist/cjs/types/values.d.ts +4 -0
  37. package/dist/cjs/types/values.js +3 -0
  38. package/dist/cjs/types/values.js.map +1 -0
  39. package/dist/cjs/utils.d.ts +68 -0
  40. package/dist/cjs/utils.js +312 -0
  41. package/dist/cjs/utils.js.map +1 -0
  42. package/dist/esm/MIMEByExtension.json +806 -0
  43. package/dist/esm/constants.d.ts +2 -0
  44. package/dist/esm/constants.js +6 -0
  45. package/dist/esm/constants.js.map +1 -0
  46. package/dist/esm/index.d.ts +11 -0
  47. package/dist/esm/index.js +15 -0
  48. package/dist/esm/index.js.map +1 -0
  49. package/dist/esm/types/applications.d.ts +1 -0
  50. package/dist/esm/types/applications.js +5 -0
  51. package/dist/esm/types/applications.js.map +1 -0
  52. package/dist/esm/types/attributes.d.ts +7 -0
  53. package/dist/esm/types/attributes.js +12 -0
  54. package/dist/esm/types/attributes.js.map +1 -0
  55. package/dist/esm/types/errors.d.ts +5 -0
  56. package/dist/esm/types/errors.js +10 -0
  57. package/dist/esm/types/errors.js.map +1 -0
  58. package/dist/esm/types/events.d.ts +75 -0
  59. package/dist/esm/types/events.js +34 -0
  60. package/dist/esm/types/events.js.map +1 -0
  61. package/dist/esm/types/files.d.ts +16 -0
  62. package/dist/esm/types/files.js +12 -0
  63. package/dist/esm/types/files.js.map +1 -0
  64. package/dist/esm/types/forms.d.ts +60 -0
  65. package/dist/esm/types/forms.js +26 -0
  66. package/dist/esm/types/forms.js.map +1 -0
  67. package/dist/esm/types/helpers.d.ts +13 -0
  68. package/dist/esm/types/helpers.js +2 -0
  69. package/dist/esm/types/helpers.js.map +1 -0
  70. package/dist/esm/types/logs.d.ts +2 -0
  71. package/dist/esm/types/logs.js +2 -0
  72. package/dist/esm/types/logs.js.map +1 -0
  73. package/dist/esm/types/previews.d.ts +5 -0
  74. package/dist/esm/types/previews.js +10 -0
  75. package/dist/esm/types/previews.js.map +1 -0
  76. package/dist/esm/types/values.d.ts +4 -0
  77. package/dist/esm/types/values.js +2 -0
  78. package/dist/esm/types/values.js.map +1 -0
  79. package/dist/esm/utils.d.ts +68 -0
  80. package/dist/esm/utils.js +262 -0
  81. package/dist/esm/utils.js.map +1 -0
  82. package/dist/tsconfig.tsbuildinfo +1 -0
  83. package/package.json +38 -0
@@ -0,0 +1,312 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.omit = exports.isTypeStandard = exports.isTypeLink = exports.waitFor = exports.getLogsIndexName = exports.getFlagByLang = exports.simpleStringHash = exports.slugifyString = exports._getInitialEngine = exports.getInitials = exports.getCallStack = exports.getFileType = exports.nameValArrayToObj = exports.objectToNameValueArray = exports.extractArgsFromString = exports.getInvertColor = exports.stringToColor = exports.localizedTranslation = exports.isFileAllowed = exports.getGraphqlQueryNameFromLibraryName = exports.getGraphqlTypeFromLibraryName = void 0;
30
+ // Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06
31
+ // This file is released under LGPL V3
32
+ // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
33
+ const camelCase_1 = __importDefault(require("lodash/camelCase"));
34
+ const flow_1 = __importDefault(require("lodash/flow"));
35
+ const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
36
+ const partialRight_1 = __importDefault(require("lodash/partialRight"));
37
+ const trimEnd_1 = __importDefault(require("lodash/trimEnd"));
38
+ const upperFirst_1 = __importDefault(require("lodash/upperFirst"));
39
+ const minimatch_1 = __importDefault(require("minimatch"));
40
+ const extensions = __importStar(require("./MIMEByExtension.json"));
41
+ const attributes_1 = require("./types/attributes");
42
+ const files_1 = require("./types/files");
43
+ const getGraphqlTypeFromLibraryName = (library) => (0, flow_1.default)([camelCase_1.default, upperFirst_1.default, trimEnd_1.default, (0, partialRight_1.default)(trimEnd_1.default, 's')])(library);
44
+ exports.getGraphqlTypeFromLibraryName = getGraphqlTypeFromLibraryName;
45
+ const getGraphqlQueryNameFromLibraryName = (library) => (0, flow_1.default)([camelCase_1.default, trimEnd_1.default])(library);
46
+ exports.getGraphqlQueryNameFromLibraryName = getGraphqlQueryNameFromLibraryName;
47
+ const isFileAllowed = (fsPath, allowList, ignoreList, filePath) => {
48
+ // if allowPatterns is empty it's an implicit allow of all files
49
+ if (!allowList.length) {
50
+ allowList = ['**'];
51
+ }
52
+ const isAllowed = allowList.some(pattern => (0, minimatch_1.default)(filePath, `${fsPath}/${pattern}`));
53
+ const isIgnored = ignoreList.some(pattern => (0, minimatch_1.default)(filePath, `${fsPath}/${pattern}`));
54
+ return !isIgnored && isAllowed;
55
+ };
56
+ exports.isFileAllowed = isFileAllowed;
57
+ const localizedTranslation = (translations, availableLanguages) => {
58
+ if (!translations) {
59
+ return '';
60
+ }
61
+ const userLang = availableLanguages[0];
62
+ const fallbackLang = availableLanguages[1] ? availableLanguages[1] : '';
63
+ return translations[userLang] || translations[fallbackLang] || translations[Object.keys(translations)[0]] || '';
64
+ };
65
+ exports.localizedTranslation = localizedTranslation;
66
+ /**
67
+ *
68
+ * @param str
69
+ * @param format 'hsl' || 'rgb' || 'hex'
70
+ * @param saturation in percent, default to 30
71
+ * @param luminosity in percent, default to 80
72
+ */
73
+ const stringToColor = (str = '', format = 'hsl', saturation = 30, luminosity = 80) => {
74
+ let hash = 0;
75
+ for (let i = 0; i < (str ?? '').length; i++) {
76
+ // eslint-disable-next-line no-bitwise
77
+ hash = str.charCodeAt(i) + ((hash << 5) - hash);
78
+ }
79
+ const hue = hash % 360;
80
+ switch (format) {
81
+ case 'hex':
82
+ return _hslToHex(hue, saturation, luminosity);
83
+ case 'rgb':
84
+ const [r, g, b] = _hslToRgb(hue, saturation, luminosity);
85
+ return `rgb(${r},${g},${b})`;
86
+ case 'hsl':
87
+ return `hsl(${hue}, ${saturation}%, ${luminosity}%)`;
88
+ default:
89
+ return `hsl(${hue}, ${saturation}%, ${luminosity}%)`;
90
+ }
91
+ };
92
+ exports.stringToColor = stringToColor;
93
+ const _hue2rgb = (p, q, t) => {
94
+ if (t < 0) {
95
+ t += 1;
96
+ }
97
+ if (t > 1) {
98
+ t -= 1;
99
+ }
100
+ if (t < 1 / 6) {
101
+ return p + (q - p) * 6 * t;
102
+ }
103
+ if (t < 1 / 2) {
104
+ return q;
105
+ }
106
+ if (t < 2 / 3) {
107
+ return p + (q - p) * (2 / 3 - t) * 6;
108
+ }
109
+ return p;
110
+ };
111
+ const _hslToHex = (h, s, l) => {
112
+ const [r, g, b] = _hslToRgb(h, s, l);
113
+ const _toHex = (x) => {
114
+ const hex = x.toString(16);
115
+ return hex.length === 1 ? '0' + hex : hex;
116
+ };
117
+ return `#${_toHex(r)}${_toHex(g)}${_toHex(b)}`;
118
+ };
119
+ const _hslToRgb = (h, s, l) => {
120
+ h /= 360;
121
+ s /= 100;
122
+ l /= 100;
123
+ let r;
124
+ let g;
125
+ let b;
126
+ if (s === 0) {
127
+ r = g = b = l; // achromatic
128
+ }
129
+ else {
130
+ const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
131
+ const p = 2 * l - q;
132
+ r = _hue2rgb(p, q, h + 1 / 3);
133
+ g = _hue2rgb(p, q, h);
134
+ b = _hue2rgb(p, q, h - 1 / 3);
135
+ }
136
+ return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
137
+ };
138
+ const getInvertColor = (color) => {
139
+ const hexcolor = color.replace(/#/g, '');
140
+ const r = parseInt(hexcolor.substr(0, 2), 16);
141
+ const g = parseInt(hexcolor.substr(2, 2), 16);
142
+ const b = parseInt(hexcolor.substr(4, 2), 16);
143
+ const yiq = (r * 299 + g * 587 + b * 114) / 1000;
144
+ return yiq >= 128 ? '#000000' : '#FFFFFF';
145
+ };
146
+ exports.getInvertColor = getInvertColor;
147
+ /**
148
+ * Parse string to extract args.
149
+ * Arg is a string with format:
150
+ * -[argName] argValue
151
+ *
152
+ * eg. "-library product -type link" => {library: product, type: link}
153
+ * @param mapping
154
+ */
155
+ const extractArgsFromString = (mapping) => {
156
+ const args = mapping
157
+ .split('-')
158
+ .slice(1)
159
+ .map(e => e.replace(/\s+/g, ' ').trim().split(' '));
160
+ return args.reduce((acc, value) => ({ ...acc, [value[0]]: value[1] ?? true }), {});
161
+ };
162
+ exports.extractArgsFromString = extractArgsFromString;
163
+ const objectToNameValueArray = (obj) => Object.keys(obj ?? {}).map(key => ({ name: key, value: obj[key] }));
164
+ exports.objectToNameValueArray = objectToNameValueArray;
165
+ const nameValArrayToObj = (arr = [], keyFieldName = 'name', valueFieldName = 'value') => Array.isArray(arr) && arr.length
166
+ ? arr.reduce((formattedElem, elem) => {
167
+ formattedElem[elem[keyFieldName]] = elem[valueFieldName];
168
+ return formattedElem;
169
+ }, {})
170
+ : null;
171
+ exports.nameValArrayToObj = nameValArrayToObj;
172
+ const getFileType = (fileName) => {
173
+ if (!fileName) {
174
+ return null;
175
+ }
176
+ const extension = fileName.slice(fileName.lastIndexOf('.') + 1).toLowerCase();
177
+ if (!extensions[extension]) {
178
+ return files_1.FileType.OTHER;
179
+ }
180
+ const type = extensions[extension].type;
181
+ return type;
182
+ };
183
+ exports.getFileType = getFileType;
184
+ /**
185
+ * Return a simplified call stack (for the function who called this function, not this one, obviously)
186
+ *
187
+ * @param depth Number of calls to return
188
+ */
189
+ const getCallStack = (depth = 2) => {
190
+ const callersStartDepth = 3;
191
+ const callers = new Error().stack.split('\n').slice(callersStartDepth, callersStartDepth + depth);
192
+ return callers.map(c => c.trim().split(' ').splice(1).join(' @ '));
193
+ };
194
+ exports.getCallStack = getCallStack;
195
+ const getInitials = (label, length = 2) => {
196
+ if (typeof label !== 'string' || (0, isEmpty_1.default)(label.trim()) || length < 1) {
197
+ return '?';
198
+ }
199
+ const words = label.split(' ');
200
+ /* Setting up the list of word by using a regex according to the label sent
201
+ if the label contains letters & numbers, filter only on these letters
202
+ if the label contains only numbers, filter only on these numbers
203
+ symbols are ignored by the regex
204
+ if both list filtered by the regex are null, using the basic filter and split the label by space
205
+ */
206
+ const letterRegex = new RegExp(/[A-Za-z]+/g);
207
+ const numberRegex = new RegExp(/[1-9]+/g);
208
+ // Remove accents from the label
209
+ const sanitizedLabel = label
210
+ .normalize('NFD')
211
+ .replace(/\p{Diacritic}/gu, '')
212
+ .replace(/[^\w\s]/g, '');
213
+ const wordsRegex = sanitizedLabel.match(letterRegex)
214
+ ? sanitizedLabel.match(letterRegex)
215
+ : sanitizedLabel.match(numberRegex);
216
+ return wordsRegex !== null ? (0, exports._getInitialEngine)(wordsRegex, length) : (0, exports._getInitialEngine)(words, length);
217
+ };
218
+ exports.getInitials = getInitials;
219
+ const _getInitialEngine = (words, length) => {
220
+ let initials = '';
221
+ if (words.length === 1) {
222
+ initials = words[0].slice(0, length);
223
+ }
224
+ else {
225
+ //the number of initial to display cannot exceed the number of words filtered
226
+ if (words.length < length) {
227
+ length = words.length;
228
+ }
229
+ for (let index = 0; index < length; index++) {
230
+ initials = initials + words[index].charAt(0);
231
+ }
232
+ }
233
+ return initials.toUpperCase();
234
+ };
235
+ exports._getInitialEngine = _getInitialEngine;
236
+ /**
237
+ * Format an ID: remove accents, any special characters, replace spaces by underscore and make sure there is no double underscore
238
+ *
239
+ * @param id
240
+ * @returns formatted ID
241
+ */
242
+ const slugifyString = (id, separator = '_') => id
243
+ .normalize('NFD') // Decompose the string in the base and the accents
244
+ .toLowerCase() // Lowercase the string
245
+ .replace(/[\u0300-\u036f]/g, '') // Remove accents
246
+ .replace(/[^a-zA-Z0-9\s]/g, separator) // Transform any special character into an underscore
247
+ .trim() // Remove spaces at the beginning and the end
248
+ .replace(/\s/g, separator) // Replace spaces by underscore
249
+ .replace(new RegExp(`${separator}${separator}+`, 'g'), separator) // Remove double underscores
250
+ .replace(new RegExp(`${separator}$`, 'g'), '') // Remove separator at the end
251
+ .replace(new RegExp(`^${separator}`, 'g'), ''); // Remove underscore at the beginning
252
+ exports.slugifyString = slugifyString;
253
+ /**
254
+ * Returns a hash code from a string
255
+ * @param {String} str The string to hash.
256
+ * @return {Number} A 32bit integer
257
+ */
258
+ const simpleStringHash = (str) => {
259
+ let hash = 0;
260
+ for (let i = 0, len = str.length; i < len; i++) {
261
+ const chr = str.charCodeAt(i);
262
+ // eslint-disable-next-line no-bitwise
263
+ hash = (hash << 5) - hash + chr;
264
+ // eslint-disable-next-line no-bitwise
265
+ hash |= 0; // Convert to 32bit integer
266
+ }
267
+ return Math.abs(hash);
268
+ };
269
+ exports.simpleStringHash = simpleStringHash;
270
+ const getFlagByLang = (lang) => {
271
+ const flagsByLang = {
272
+ en: '🇬🇧', // English
273
+ es: '🇪🇸', // Spanish
274
+ fr: '🇫🇷', // French
275
+ de: '🇩🇪', // German
276
+ zh: '🇨🇳', // Chinese
277
+ ru: '🇷🇺', // Russian
278
+ pt: '🇵🇹', // Portuguese
279
+ ja: '🇯🇵', // Japanese
280
+ ko: '🇰🇷' // Korean
281
+ };
282
+ return flagsByLang[lang] ?? '';
283
+ };
284
+ exports.getFlagByLang = getFlagByLang;
285
+ const getLogsIndexName = (indexPrefix, instanceId) => `${indexPrefix}${instanceId}`;
286
+ exports.getLogsIndexName = getLogsIndexName;
287
+ const waitFor = async (predicate, options = {}) => {
288
+ const { timeout = 5000, interval = 250 } = options;
289
+ const startTime = Date.now();
290
+ while (!(await predicate())) {
291
+ if (Date.now() - startTime > timeout) {
292
+ throw new Error('Timeout expired');
293
+ }
294
+ await new Promise(resolve => setTimeout(resolve, interval));
295
+ }
296
+ return true;
297
+ };
298
+ exports.waitFor = waitFor;
299
+ const isTypeLink = (type) => type === attributes_1.AttributeType.simple_link || type === attributes_1.AttributeType.advanced_link;
300
+ exports.isTypeLink = isTypeLink;
301
+ const isTypeStandard = (type) => type === attributes_1.AttributeType.simple || type === attributes_1.AttributeType.advanced;
302
+ exports.isTypeStandard = isTypeStandard;
303
+ /**
304
+ * Return a new object without the keys passed in parameter
305
+ */
306
+ const omit = (obj, ...keys) => {
307
+ const result = { ...obj };
308
+ keys.forEach(key => delete result[key]);
309
+ return result;
310
+ };
311
+ exports.omit = omit;
312
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}