@journeyapps-labs/lib-reactor-utils 0.0.0-dev-20250804204343

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 (41) hide show
  1. package/LICENSE +201 -0
  2. package/dist/@types/Disposable.d.ts +3 -0
  3. package/dist/@types/EventEmitter.d.ts +16 -0
  4. package/dist/@types/Mutex.d.ts +78 -0
  5. package/dist/@types/ReactorPath.d.ts +15 -0
  6. package/dist/@types/Validators.d.ts +3 -0
  7. package/dist/@types/async-throttle.d.ts +12 -0
  8. package/dist/@types/clipboard.d.ts +1 -0
  9. package/dist/@types/color.d.ts +23 -0
  10. package/dist/@types/dates.d.ts +41 -0
  11. package/dist/@types/file-input.d.ts +14 -0
  12. package/dist/@types/index.d.ts +12 -0
  13. package/dist/@types/retries.d.ts +1 -0
  14. package/dist/@types/string-manipulation.d.ts +10 -0
  15. package/dist/Disposable.js +3 -0
  16. package/dist/Disposable.js.map +1 -0
  17. package/dist/EventEmitter.js +44 -0
  18. package/dist/EventEmitter.js.map +1 -0
  19. package/dist/Mutex.js +274 -0
  20. package/dist/Mutex.js.map +1 -0
  21. package/dist/ReactorPath.js +61 -0
  22. package/dist/ReactorPath.js.map +1 -0
  23. package/dist/Validators.js +27 -0
  24. package/dist/Validators.js.map +1 -0
  25. package/dist/async-throttle.js +50 -0
  26. package/dist/async-throttle.js.map +1 -0
  27. package/dist/clipboard.js +17 -0
  28. package/dist/clipboard.js.map +1 -0
  29. package/dist/color.js +102 -0
  30. package/dist/color.js.map +1 -0
  31. package/dist/dates.js +95 -0
  32. package/dist/dates.js.map +1 -0
  33. package/dist/file-input.js +87 -0
  34. package/dist/file-input.js.map +1 -0
  35. package/dist/index.js +16 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/retries.js +36 -0
  38. package/dist/retries.js.map +1 -0
  39. package/dist/string-manipulation.js +25 -0
  40. package/dist/string-manipulation.js.map +1 -0
  41. package/package.json +40 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dates.js","sourceRoot":"","sources":["../src/dates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readFileAsArrayBuffer = exports.readFileAsText = exports.saveFile = exports.selectFile = exports.selectFiles = exports.MimeTypes = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var MimeTypes;
6
+ (function (MimeTypes) {
7
+ MimeTypes["A_JSON"] = "application/json";
8
+ MimeTypes["T_JSON"] = "text/json";
9
+ MimeTypes["VSIX"] = "application/vsix";
10
+ })(MimeTypes || (exports.MimeTypes = MimeTypes = {}));
11
+ const selectFiles = (options = {}) => {
12
+ const element = document.createElement('input');
13
+ element.setAttribute('type', 'file');
14
+ element.setAttribute('name', 'file');
15
+ if (!options.single) {
16
+ element.setAttribute('multiple', 'multiple');
17
+ }
18
+ if (options.mimeTypes) {
19
+ element.setAttribute('accept', options.mimeTypes.join(','));
20
+ }
21
+ return new Promise((resolve, reject) => {
22
+ element.onchange = (event) => {
23
+ // user selected something
24
+ if (element.files) {
25
+ const files = [];
26
+ for (let i = 0; i < element.files.length; i++) {
27
+ files.push(element.files.item(i));
28
+ }
29
+ resolve(files);
30
+ }
31
+ else {
32
+ resolve([]);
33
+ }
34
+ };
35
+ element.style.display = 'none';
36
+ document.body.querySelector('#application').appendChild(element);
37
+ setTimeout(() => {
38
+ element.click();
39
+ }, 0);
40
+ }).finally(() => {
41
+ element.remove();
42
+ });
43
+ };
44
+ exports.selectFiles = selectFiles;
45
+ const selectFile = (...args_1) => tslib_1.__awaiter(void 0, [...args_1], void 0, function* (options = {}) {
46
+ const files = yield (0, exports.selectFiles)(Object.assign(Object.assign({}, options), { single: true }));
47
+ return files[0] || null;
48
+ });
49
+ exports.selectFile = selectFile;
50
+ const saveFile = (content, fileName) => {
51
+ const element = document.createElement('a');
52
+ element.setAttribute('download', fileName);
53
+ const blob = new Blob([content]);
54
+ const url = URL.createObjectURL(blob);
55
+ element.setAttribute('href', url);
56
+ element.click();
57
+ URL.revokeObjectURL(url);
58
+ element.remove();
59
+ };
60
+ exports.saveFile = saveFile;
61
+ const readFileAsText = (file) => {
62
+ return new Promise((resolve, reject) => {
63
+ const fileReader = new FileReader();
64
+ fileReader.onload = (fileLoadedEvent) => {
65
+ const textFromFileLoaded = fileLoadedEvent.target.result;
66
+ if (textFromFileLoaded) {
67
+ return resolve(textFromFileLoaded);
68
+ }
69
+ else {
70
+ resolve(null);
71
+ }
72
+ };
73
+ fileReader.readAsText(file, 'UTF-8');
74
+ fileReader.onerror = (error) => reject(error);
75
+ });
76
+ };
77
+ exports.readFileAsText = readFileAsText;
78
+ const readFileAsArrayBuffer = (file) => {
79
+ return new Promise((resolve, reject) => {
80
+ const reader = new FileReader();
81
+ reader.readAsArrayBuffer(file);
82
+ reader.onload = () => resolve(reader.result);
83
+ reader.onerror = (error) => reject(error);
84
+ });
85
+ };
86
+ exports.readFileAsArrayBuffer = readFileAsArrayBuffer;
87
+ //# sourceMappingURL=file-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-input.js","sourceRoot":"","sources":["../src/file-input.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./clipboard"), exports);
5
+ tslib_1.__exportStar(require("./color"), exports);
6
+ tslib_1.__exportStar(require("./file-input"), exports);
7
+ tslib_1.__exportStar(require("./string-manipulation"), exports);
8
+ tslib_1.__exportStar(require("./ReactorPath"), exports);
9
+ tslib_1.__exportStar(require("./Mutex"), exports);
10
+ tslib_1.__exportStar(require("./EventEmitter"), exports);
11
+ tslib_1.__exportStar(require("./Disposable"), exports);
12
+ tslib_1.__exportStar(require("./Validators"), exports);
13
+ tslib_1.__exportStar(require("./retries"), exports);
14
+ tslib_1.__exportStar(require("./async-throttle"), exports);
15
+ tslib_1.__exportStar(require("./dates"), exports);
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,kDAAwB;AACxB,uDAA6B;AAC7B,gEAAsC;AACtC,wDAA8B;AAC9B,kDAAwB;AACxB,yDAA+B;AAC/B,uDAA6B;AAC7B,uDAA6B;AAC7B,oDAA0B;AAC1B,2DAAiC;AACjC,kDAAwB"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.retryWithBackoff = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_logger_1 = require("@journeyapps-labs/common-logger");
6
+ const logger = new common_logger_1.Logger({
7
+ name: 'RETRY_HANDLER'
8
+ });
9
+ const retryWithBackoff = (handler_1, ...args_1) => tslib_1.__awaiter(void 0, [handler_1, ...args_1], void 0, function* (handler, attempts = 10, hint) {
10
+ const INIT_BACKOFF = 500;
11
+ const MULTIPLIER = 0.5;
12
+ const executeWithAttempt = (...args_2) => tslib_1.__awaiter(void 0, [...args_2], void 0, function* (attempt = 1, current_backoff = INIT_BACKOFF) {
13
+ try {
14
+ return yield handler();
15
+ }
16
+ catch (err) {
17
+ if (hint) {
18
+ logger.debug(`${hint} failed on attempt ${attempt}`, err);
19
+ }
20
+ if (attempt >= attempts) {
21
+ if (hint) {
22
+ logger.error(`${hint} failed, backing off`, err);
23
+ }
24
+ throw err;
25
+ }
26
+ const backoff = Math.floor(current_backoff + current_backoff * MULTIPLIER);
27
+ yield new Promise((resolve) => {
28
+ setTimeout(resolve, backoff);
29
+ });
30
+ return executeWithAttempt(attempt + 1, backoff);
31
+ }
32
+ });
33
+ return executeWithAttempt();
34
+ });
35
+ exports.retryWithBackoff = retryWithBackoff;
36
+ //# sourceMappingURL=retries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retries.js","sourceRoot":"","sources":["../src/retries.ts"],"names":[],"mappings":";;;;AAAA,mEAAyD;AAEzD,MAAM,MAAM,GAAG,IAAI,sBAAM,CAAC;IACxB,IAAI,EAAE,eAAe;CACtB,CAAC,CAAC;AAEI,MAAM,gBAAgB,GAAG,uBAIlB,EAAE,sEAHd,OAAyB,EACzB,WAAmB,EAAE,EACrB,IAAa;IAEb,MAAM,YAAY,GAAG,GAAG,CAAC;IACzB,MAAM,UAAU,GAAG,GAAG,CAAC;IAEvB,MAAM,kBAAkB,GAAG,YAAoE,EAAE,2DAA/D,UAAkB,CAAC,EAAE,kBAA0B,YAAY;QAC3F,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,sBAAsB,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACxB,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,sBAAsB,EAAE,GAAG,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,eAAe,GAAG,UAAU,CAAC,CAAC;YAC3E,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5B,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,OAAO,kBAAkB,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAA,CAAC;IAEF,OAAO,kBAAkB,EAAE,CAAC;AAC9B,CAAC,CAAA,CAAC;AAjCW,QAAA,gBAAgB,oBAiC3B"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatNumber = exports.getIntlNumberFormatter = exports.trimString = void 0;
4
+ const _ = require("lodash");
5
+ /**
6
+ * If the provided string is longer than the
7
+ * maximum length, the string is returned with an ellipse
8
+ * @param str
9
+ * @param maxLength
10
+ */
11
+ const trimString = (str, maxLength) => {
12
+ if (str.length <= maxLength) {
13
+ return str;
14
+ }
15
+ return str.substr(0, maxLength - 3) + '...';
16
+ };
17
+ exports.trimString = trimString;
18
+ exports.getIntlNumberFormatter = _.memoize((maximumFractionDigits = 2) => {
19
+ return new Intl.NumberFormat('en-US', { maximumFractionDigits: maximumFractionDigits });
20
+ });
21
+ const formatNumber = (number, maximumFractionDigits = 2) => {
22
+ return (0, exports.getIntlNumberFormatter)(maximumFractionDigits).format(number);
23
+ };
24
+ exports.formatNumber = formatNumber;
25
+ //# sourceMappingURL=string-manipulation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-manipulation.js","sourceRoot":"","sources":["../src/string-manipulation.ts"],"names":[],"mappings":";;;AACA,4BAA4B;AAE5B;;;;;GAKG;AACI,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,SAAiB,EAAE,EAAE;IAC3D,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAC9C,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB;AAEW,QAAA,sBAAsB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,wBAAgC,CAAC,EAAE,EAAE;IACpF,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,CAAC,CAAC;AAC1F,CAAC,CAAC,CAAC;AAEI,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,wBAAgC,CAAC,EAAE,EAAE;IAChF,OAAO,IAAA,8BAAsB,EAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtE,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@journeyapps-labs/lib-reactor-utils",
3
+ "version": "0.0.0-dev-20250804204343",
4
+ "publishConfig": {
5
+ "registry": "https://registry.npmjs.org/",
6
+ "access": "public"
7
+ },
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/journeyapps-labs/reactor.git"
11
+ },
12
+ "author": "JOURNEYAPPS",
13
+ "license": "Apache-2.0",
14
+ "main": "./dist/index.js",
15
+ "typings": "./dist/@types/index",
16
+ "dependencies": {
17
+ "@journeyapps-labs/common-logger": "^1.0.0",
18
+ "async": "^3.2.6",
19
+ "color": "^5.0.0",
20
+ "hex-opacity": "^1.0.16",
21
+ "hex-to-rgba": "^2.0.1",
22
+ "jsonwebtoken": "^9.0.2",
23
+ "lodash": "^4.17.21",
24
+ "luxon": "^3.7.1",
25
+ "minimatch": "^10.0.3",
26
+ "mobx": "^6.13.7"
27
+ },
28
+ "devDependencies": {
29
+ "@types/jsonwebtoken": "^9.0.10",
30
+ "@types/lodash": "^4.17.20",
31
+ "@types/luxon": "^3.6.2",
32
+ "@types/node": "^24.1.0",
33
+ "vitest": "^3.2.4"
34
+ },
35
+ "scripts": {
36
+ "build": "../node_modules/.bin/tsc --build",
37
+ "test": "vitest run",
38
+ "test:watch": "vitest"
39
+ }
40
+ }