tnp-helpers 16.5.6 → 16.5.8

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 (46) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/README.md +24 -24
  3. package/browser/esm2022/lib/base-project.mjs +28 -1
  4. package/browser/esm2022/lib/helpers-array-obj.mjs +33 -1
  5. package/browser/fesm2022/tnp-helpers.mjs +59 -0
  6. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  7. package/browser/lib/base-project.d.ts +1 -0
  8. package/browser/lib/helpers-array-obj.d.ts +10 -0
  9. package/client/README.md +24 -24
  10. package/client/esm2022/lib/base-project.mjs +28 -1
  11. package/client/esm2022/lib/helpers-array-obj.mjs +33 -1
  12. package/client/fesm2022/tnp-helpers.mjs +59 -0
  13. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  14. package/client/lib/base-project.d.ts +1 -0
  15. package/client/lib/helpers-array-obj.d.ts +10 -0
  16. package/client/package.json +32 -32
  17. package/lib/base-project.d.ts +1 -0
  18. package/lib/base-project.js +30 -0
  19. package/lib/base-project.js.map +1 -1
  20. package/lib/for-backend/helpers-console-gui.d.ts +3 -3
  21. package/lib/for-backend/helpers-console-gui.js +2 -2
  22. package/lib/for-backend/helpers-console-gui.js.map +1 -1
  23. package/lib/for-backend/helpers-file-folders.backend.d.ts +4 -2
  24. package/lib/for-backend/helpers-file-folders.backend.js +5 -4
  25. package/lib/for-backend/helpers-file-folders.backend.js.map +1 -1
  26. package/lib/for-backend/helpers-process.backend.d.ts +3 -3
  27. package/lib/for-backend/helpers-process.backend.js +24 -4
  28. package/lib/for-backend/helpers-process.backend.js.map +1 -1
  29. package/lib/for-browser/angular.helper.js +3 -3
  30. package/lib/helpers-array-obj.d.ts +10 -0
  31. package/lib/helpers-array-obj.js +39 -0
  32. package/lib/helpers-array-obj.js.map +1 -1
  33. package/lib/old/base-component.js +3 -3
  34. package/lib/old/base-formly-component.js +3 -3
  35. package/lib/old/dual-component-ctrl.js +3 -3
  36. package/package.json +4 -4
  37. package/package.json_devDependencies.json +222 -222
  38. package/package.json_tnp.json5 +57 -48
  39. package/tmp-environment.json +36 -36
  40. package/websql/README.md +24 -24
  41. package/websql/esm2022/lib/base-project.mjs +28 -1
  42. package/websql/esm2022/lib/helpers-array-obj.mjs +33 -1
  43. package/websql/fesm2022/tnp-helpers.mjs +59 -0
  44. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  45. package/websql/lib/base-project.d.ts +1 -0
  46. package/websql/lib/helpers-array-obj.d.ts +10 -0
@@ -15,6 +15,10 @@ export class HelpersArrayObj {
15
15
  }
16
16
  return arr[1];
17
17
  }
18
+ /**
19
+ * @deprecated
20
+ * use moveObjectBefore
21
+ */
18
22
  arrayMoveElementBefore(arr, a, b, prop) {
19
23
  let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);
20
24
  _.pullAt(arr, indexA);
@@ -27,6 +31,10 @@ export class HelpersArrayObj {
27
31
  }
28
32
  return arr;
29
33
  }
34
+ /**
35
+ * @deprecated
36
+ * use moveObjectAfter
37
+ */
30
38
  arrayMoveElementAfterB(arr, a, b, prop) {
31
39
  let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);
32
40
  _.pullAt(arr, indexA);
@@ -39,6 +47,30 @@ export class HelpersArrayObj {
39
47
  }
40
48
  return arr;
41
49
  }
50
+ moveObjectBefore(array, target, before) {
51
+ const newArray = [...array];
52
+ const targetIndex = newArray.findIndex(item => item === target);
53
+ const beforeIndex = newArray.findIndex(item => item === before);
54
+ if (targetIndex === -1 || beforeIndex === -1) {
55
+ console.error("Target or Before object not found in the array");
56
+ return newArray;
57
+ }
58
+ newArray.splice(targetIndex, 1);
59
+ newArray.splice(beforeIndex, 0, target);
60
+ return newArray;
61
+ }
62
+ moveObjectAfter(array, target, after) {
63
+ const newArray = [...array];
64
+ const targetIndex = newArray.findIndex(item => item === target);
65
+ const afterIndex = newArray.findIndex(item => item === after);
66
+ if (targetIndex === -1 || afterIndex === -1) {
67
+ console.error("Target or After object not found in the array");
68
+ return newArray;
69
+ }
70
+ newArray.splice(targetIndex, 1);
71
+ newArray.splice(afterIndex + 1, 0, target);
72
+ return newArray;
73
+ }
42
74
  uniqArray(array, uniqueProperty) {
43
75
  var seen = {};
44
76
  return array
@@ -79,4 +111,4 @@ export class HelpersArrayObj {
79
111
  }
80
112
  ;
81
113
  ({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-array-obj.ts
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1hcnJheS1vYmouanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaGVscGVycy1hcnJheS1vYmoudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRy9CLE1BQU0sT0FBTyxlQUFlO0lBRTFCLElBQUksQ0FBQyxDQUFvQjtRQUN2QixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEIsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUNELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqQixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7U0FDcEI7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUc7UUFDUixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QyxPQUFPLEtBQUssQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxPQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsc0JBQXNCLENBQVUsR0FBVSxFQUFFLENBQU0sRUFBRSxDQUFNLEVBQUUsSUFBYztRQUN4RSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7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Q0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQTtRQUVGLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDbkcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBUSxDQUFDLENBQUM7U0FDakQ7UUFFRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzlCLENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUVBQWlFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCAqIGFzIGZ1enp5IGZyb20gJ2Z1enp5JztcblxuXG5leHBvcnQgY2xhc3MgSGVscGVyc0FycmF5T2JqIHtcblxuICBmcm9tKHM6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGlmIChfLmlzQXJyYXkocykpIHtcbiAgICAgIHJldHVybiBzO1xuICAgIH1cbiAgICBpZiAoXy5pc1N0cmluZyhzKSkge1xuICAgICAgcmV0dXJuIHMuc3BsaXQoJyAnKVxuICAgIH1cbiAgfVxuXG4gIHNlY29uZChhcnIpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyKSB8fCBhcnIubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgcmV0dXJuICBhcnJbMV07XG4gIH1cblxuICBhcnJheU1vdmVFbGVtZW50QmVmb3JlPFQgPSBhbnk+KGFycjogYW55W10sIGE6IGFueSwgYjogYW55LCBwcm9wPzoga2V5b2YgVCkge1xuICAgIGxldCBpbmRleEEgPSBwcm9wID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGFbcHJvcF0pIDogYXJyLmluZGV4T2YoYSk7XG4gICAgXy5wdWxsQXQoYXJyLCBpbmRleEEpO1xuICAgIGxldCBpbmRleEIgPSBwcm9wID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGJbcHJvcF0pIDogYXJyLmluZGV4T2YoYik7XG4gICAgaWYgKGluZGV4QiA9PT0gMCkge1xuICAgICAgYXJyLnVuc2hpZnQoYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyci5zcGxpY2UoaW5kZXhCIC0gMSwgMCwgYSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cbiAgYXJyYXlNb3ZlRWxlbWVudEFmdGVyQjxUID0gYW55PihhcnI6IGFueVtdLCBhOiBhbnksIGI6IGFueSwgcHJvcD86IGtleW9mIFQpIHtcbiAgICBsZXQgaW5kZXhBID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBhW3Byb3BdKSA6IGFyci5pbmRleE9mKGEpO1xuICAgIF8ucHVsbEF0KGFyciwgaW5kZXhBKTtcbiAgICBsZXQgaW5kZXhCID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBiW3Byb3BdKSA6IGFyci5pbmRleE9mKGIpO1xuICAgIGlmIChpbmRleEIgPT09IGFyci5sZW5ndGggLSAxKSB7XG4gICAgICBhcnIucHVzaChhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJyLnNwbGljZShpbmRleEIgKyAxLCAwLCBhKTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIHVuaXFBcnJheTxUID0gYW55PihhcnJheTogYW55W10sIHVuaXF1ZVByb3BlcnR5PzogKGtleW9mIFQpKSB7XG4gICAgdmFyIHNlZW4gPSB7fTtcbiAgICByZXR1cm4gYXJyYXlcbiAgICAgIC5maWx0ZXIoZiA9PiAhIWYpXG4gICAgICAuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIHJldHVybiBzZWVuLmhhc093blByb3BlcnR5KHVuaXF1ZVByb3BlcnR5ID8gaXRlbVt1bmlxdWVQcm9wZXJ0eV0gOiBpdGVtKSA/IGZhbHNlXG4gICAgICAgICAgOiAoc2Vlblt1bmlxdWVQcm9wZXJ0eSA/IGl0ZW1bdW5pcXVlUHJvcGVydHldIDogaXRlbV0gPSB0cnVlKTtcbiAgICAgIH0pIGFzIFRbXTtcbiAgfVxuXG4gIHNvcnRLZXlzKG9iaikge1xuICAgIGlmIChfLmlzQXJyYXkob2JqKSkge1xuICAgICAgcmV0dXJuIG9iai5tYXAodGhpcy5zb3J0S2V5cyk7XG4gICAgfVxuICAgIGlmIChfLmlzT2JqZWN0KG9iaikpIHtcbiAgICAgIHJldHVybiBfLmZyb21QYWlycyhfLmtleXMob2JqKS5zb3J0KCkubWFwKGtleSA9PiBba2V5LCB0aGlzLnNvcnRLZXlzKG9ialtrZXldKV0pKTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfTtcblxuICAvKipcbiAgICogRnV6enkgc2VhcmNoXG4gICAqL1xuICBmdXp6eTxUID0gYW55PihxdWVyeTogc3RyaW5nLCBsaXN0OiBUW10sIHZhbHVlRm4/OiAobW9kZWxGcm9tTGlzdDogVCkgPT4gc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzdWx0c0Z1enp5ID0gZnV6enkuZmlsdGVyKFxuICAgICAgcXVlcnksXG4gICAgICBsaXN0Lm1hcChrID0+IHZhbHVlRm4gPyB2YWx1ZUZuKGspIDogayksXG4gICAgKVxuICAgIGNvbnN0IHJlc3VsdHNGdXp6eUtlYmFiID0gZnV6enkuZmlsdGVyKFxuICAgICAgXy5rZWJhYkNhc2UocXVlcnkpLFxuICAgICAgbGlzdC5tYXAoayA9PiBfLmtlYmFiQ2FzZSgodmFsdWVGbiA/IHZhbHVlRm4oaykgOiBrKSBhcyBhbnkpKSxcbiAgICApXG4gICAgY29uc3QgbWF0Y2hlcyA9IHJlc3VsdHNGdXp6eS5tYXAoKGVsKSA9PiBlbC5zdHJpbmcpO1xuICAgIGNvbnN0IG1hdGNoZXNLZWJhYiA9IHJlc3VsdHNGdXp6eUtlYmFiLm1hcCgoZWwpID0+IGVsLnN0cmluZyk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gKHJlc3VsdHNGdXp6eS5sZW5ndGggPT09IDApID8gW10gOiBsaXN0LmZpbHRlcihrID0+IHtcbiAgICAgIHJldHVybiBtYXRjaGVzLmluY2x1ZGVzKCh2YWx1ZUZuID8gdmFsdWVGbihrKSA6IGspIGFzIGFueSk7XG4gICAgfSlcblxuICAgIGlmIChtYXRjaGVzLmxlbmd0aCA9PT0gMCAmJiBtYXRjaGVzS2ViYWIubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbSA9IGxpc3QuZmluZChrID0+IF8ua2ViYWJDYXNlKCh2YWx1ZUZuID8gdmFsdWVGbihrKSA6IGspIGFzIGFueSkgPT09IF8uZmlyc3QobWF0Y2hlc0tlYmFiKSk7XG4gICAgICByZXN1bHRzLnB1c2gobSk7XG4gICAgICBtYXRjaGVzLnB1c2goKHZhbHVlRm4gPyB2YWx1ZUZuKG0pIDogbSkgYXMgYW55KTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBtYXRjaGVzLCByZXN1bHRzIH07XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMtYXJyYXktb2JqLnRzIl19
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1hcnJheS1vYmouanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlL3RucC1oZWxwZXJzL3Byb2plY3RzL3RucC1oZWxwZXJzL3NyYy9saWIvaGVscGVycy1hcnJheS1vYmoudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRy9CLE1BQU0sT0FBTyxlQUFlO0lBRTFCLElBQUksQ0FBQyxDQUFvQjtRQUN2QixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEIsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUNELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqQixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7U0FDcEI7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUc7UUFDUixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QyxPQUFPLEtBQUssQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsc0JBQXNCLENBQVUsR0FBVSxFQUFFLENBQU0sRUFBRSxDQUFNLEVBQUUsSUFBYztRQUN4RSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FB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ZXInO1xuaW1wb3J0ICogYXMgZnV6enkgZnJvbSAnZnV6enknO1xuXG5cbmV4cG9ydCBjbGFzcyBIZWxwZXJzQXJyYXlPYmoge1xuXG4gIGZyb20oczogc3RyaW5nIHwgc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKF8uaXNBcnJheShzKSkge1xuICAgICAgcmV0dXJuIHM7XG4gICAgfVxuICAgIGlmIChfLmlzU3RyaW5nKHMpKSB7XG4gICAgICByZXR1cm4gcy5zcGxpdCgnICcpXG4gICAgfVxuICB9XG5cbiAgc2Vjb25kKGFycikge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShhcnIpIHx8IGFyci5sZW5ndGggPCAyKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICByZXR1cm4gYXJyWzFdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIHVzZSBtb3ZlT2JqZWN0QmVmb3JlXG4gICAqL1xuICBhcnJheU1vdmVFbGVtZW50QmVmb3JlPFQgPSBhbnk+KGFycjogYW55W10sIGE6IGFueSwgYjogYW55LCBwcm9wPzoga2V5b2YgVCkge1xuICAgIGxldCBpbmRleEEgPSBwcm9wID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGFbcHJvcF0pIDogYXJyLmluZGV4T2YoYSk7XG4gICAgXy5wdWxsQXQoYXJyLCBpbmRleEEpO1xuICAgIGxldCBpbmRleEIgPSBwcm9wID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGJbcHJvcF0pIDogYXJyLmluZGV4T2YoYik7XG4gICAgaWYgKGluZGV4QiA9PT0gMCkge1xuICAgICAgYXJyLnVuc2hpZnQoYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyci5zcGxpY2UoaW5kZXhCIC0gMSwgMCwgYSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogdXNlIG1vdmVPYmplY3RBZnRlclxuICAgKi9cbiAgYXJyYXlNb3ZlRWxlbWVudEFmdGVyQjxUID0gYW55PihhcnI6IGFueVtdLCBhOiBhbnksIGI6IGFueSwgcHJvcD86IGtleW9mIFQpIHtcbiAgICBsZXQgaW5kZXhBID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBhW3Byb3BdKSA6IGFyci5pbmRleE9mKGEpO1xuICAgIF8ucHVsbEF0KGFyciwgaW5kZXhBKTtcbiAgICBsZXQgaW5kZXhCID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBiW3Byb3BdKSA6IGFyci5pbmRleE9mKGIpO1xuICAgIGlmIChpbmRleEIgPT09IGFyci5sZW5ndGggLSAxKSB7XG4gICAgICBhcnIucHVzaChhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJyLnNwbGljZShpbmRleEIgKyAxLCAwLCBhKTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIG1vdmVPYmplY3RCZWZvcmU8VCA9IGFueT4oYXJyYXk6IFRbXSwgdGFyZ2V0OiBULCBiZWZvcmU6IFQpOiBUW10ge1xuICAgIGNvbnN0IG5ld0FycmF5ID0gWy4uLmFycmF5XTtcbiAgICBjb25zdCB0YXJnZXRJbmRleCA9IG5ld0FycmF5LmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IHRhcmdldCk7XG4gICAgY29uc3QgYmVmb3JlSW5kZXggPSBuZXdBcnJheS5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSBiZWZvcmUpO1xuXG4gICAgaWYgKHRhcmdldEluZGV4ID09PSAtMSB8fCBiZWZvcmVJbmRleCA9PT0gLTEpIHtcblxuICAgICAgY29uc29sZS5lcnJvcihcIlRhcmdldCBvciBCZWZvcmUgb2JqZWN0IG5vdCBmb3VuZCBpbiB0aGUgYXJyYXlcIik7XG4gICAgICByZXR1cm4gbmV3QXJyYXk7XG4gICAgfVxuXG5cbiAgICBuZXdBcnJheS5zcGxpY2UodGFyZ2V0SW5kZXgsIDEpO1xuXG5cbiAgICBuZXdBcnJheS5zcGxpY2UoYmVmb3JlSW5kZXgsIDAsIHRhcmdldCk7XG5cbiAgICByZXR1cm4gbmV3QXJyYXk7XG4gIH1cblxuICBtb3ZlT2JqZWN0QWZ0ZXI8VCA9IGFueT4oYXJyYXk6IFRbXSwgdGFyZ2V0OiBULCBhZnRlcjogVCk6IFRbXSB7XG4gICAgY29uc3QgbmV3QXJyYXkgPSBbLi4uYXJyYXldO1xuICAgIGNvbnN0IHRhcmdldEluZGV4ID0gbmV3QXJyYXkuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gdGFyZ2V0KTtcbiAgICBjb25zdCBhZnRlckluZGV4ID0gbmV3QXJyYXkuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gYWZ0ZXIpO1xuXG4gICAgaWYgKHRhcmdldEluZGV4ID09PSAtMSB8fCBhZnRlckluZGV4ID09PSAtMSkge1xuXG4gICAgICBjb25zb2xlLmVycm9yKFwiVGFyZ2V0IG9yIEFmdGVyIG9iamVjdCBub3QgZm91bmQgaW4gdGhlIGFycmF5XCIpO1xuICAgICAgcmV0dXJuIG5ld0FycmF5O1xuICAgIH1cblxuXG4gICAgbmV3QXJyYXkuc3BsaWNlKHRhcmdldEluZGV4LCAxKTtcblxuXG4gICAgbmV3QXJyYXkuc3BsaWNlKGFmdGVySW5kZXggKyAxLCAwLCB0YXJnZXQpO1xuXG4gICAgcmV0dXJuIG5ld0FycmF5O1xuICB9XG5cbiAgdW5pcUFycmF5PFQgPSBhbnk+KGFycmF5OiBhbnlbXSwgdW5pcXVlUHJvcGVydHk/OiAoa2V5b2YgVCkpIHtcbiAgICB2YXIgc2VlbiA9IHt9O1xuICAgIHJldHVybiBhcnJheVxuICAgICAgLmZpbHRlcihmID0+ICEhZilcbiAgICAgIC5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHNlZW4uaGFzT3duUHJvcGVydHkodW5pcXVlUHJvcGVydHkgPyBpdGVtW3VuaXF1ZVByb3BlcnR5XSA6IGl0ZW0pID8gZmFsc2VcbiAgICAgICAgICA6IChzZWVuW3VuaXF1ZVByb3BlcnR5ID8gaXRlbVt1bmlxdWVQcm9wZXJ0eV0gOiBpdGVtXSA9IHRydWUpO1xuICAgICAgfSkgYXMgVFtdO1xuICB9XG5cbiAgc29ydEtleXMob2JqKSB7XG4gICAgaWYgKF8uaXNBcnJheShvYmopKSB7XG4gICAgICByZXR1cm4gb2JqLm1hcCh0aGlzLnNvcnRLZXlzKTtcbiAgICB9XG4gICAgaWYgKF8uaXNPYmplY3Qob2JqKSkge1xuICAgICAgcmV0dXJuIF8uZnJvbVBhaXJzKF8ua2V5cyhvYmopLnNvcnQoKS5tYXAoa2V5ID0+IFtrZXksIHRoaXMuc29ydEtleXMob2JqW2tleV0pXSkpO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9O1xuXG4gIC8qKlxuICAgKiBGdXp6eSBzZWFyY2hcbiAgICovXG4gIGZ1enp5PFQgPSBhbnk+KHF1ZXJ5OiBzdHJpbmcsIGxpc3Q6IFRbXSwgdmFsdWVGbj86IChtb2RlbEZyb21MaXN0OiBUKSA9PiBzdHJpbmcpIHtcbiAgICBjb25zdCByZXN1bHRzRnV6enkgPSBmdXp6eS5maWx0ZXIoXG4gICAgICBxdWVyeSxcbiAgICAgIGxpc3QubWFwKGsgPT4gdmFsdWVGbiA/IHZhbHVlRm4oaykgOiBrKSxcbiAgICApXG4gICAgY29uc3QgcmVzdWx0c0Z1enp5S2ViYWIgPSBmdXp6eS5maWx0ZXIoXG4gICAgICBfLmtlYmFiQ2FzZShxdWVyeSksXG4gICAgICBsaXN0Lm1hcChrID0+IF8ua2ViYWJDYXNlKCh2YWx1ZUZuID8gdmFsdWVGbihrKSA6IGspIGFzIGFueSkpLFxuICAgIClcbiAgICBjb25zdCBtYXRjaGVzID0gcmVzdWx0c0Z1enp5Lm1hcCgoZWwpID0+IGVsLnN0cmluZyk7XG4gICAgY29uc3QgbWF0Y2hlc0tlYmFiID0gcmVzdWx0c0Z1enp5S2ViYWIubWFwKChlbCkgPT4gZWwuc3RyaW5nKTtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSAocmVzdWx0c0Z1enp5Lmxlbmd0aCA9PT0gMCkgPyBbXSA6IGxpc3QuZmlsdGVyKGsgPT4ge1xuICAgICAgcmV0dXJuIG1hdGNoZXMuaW5jbHVkZXMoKHZhbHVlRm4gPyB2YWx1ZUZuKGspIDogaykgYXMgYW55KTtcbiAgICB9KVxuXG4gICAgaWYgKG1hdGNoZXMubGVuZ3RoID09PSAwICYmIG1hdGNoZXNLZWJhYi5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBtID0gbGlzdC5maW5kKGsgPT4gXy5rZWJhYkNhc2UoKHZhbHVlRm4gPyB2YWx1ZUZuKGspIDogaykgYXMgYW55KSA9PT0gXy5maXJzdChtYXRjaGVzS2ViYWIpKTtcbiAgICAgIHJlc3VsdHMucHVzaChtKTtcbiAgICAgIG1hdGNoZXMucHVzaCgodmFsdWVGbiA/IHZhbHVlRm4obSkgOiBtKSBhcyBhbnkpO1xuICAgIH1cblxuICAgIHJldHVybiB7IG1hdGNoZXMsIHJlc3VsdHMgfTtcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvaGVscGVycy1hcnJheS1vYmoudHMiXX0=
@@ -143,6 +143,10 @@ class HelpersArrayObj {
143
143
  }
144
144
  return arr[1];
145
145
  }
146
+ /**
147
+ * @deprecated
148
+ * use moveObjectBefore
149
+ */
146
150
  arrayMoveElementBefore(arr, a, b, prop) {
147
151
  let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);
148
152
  _.pullAt(arr, indexA);
@@ -155,6 +159,10 @@ class HelpersArrayObj {
155
159
  }
156
160
  return arr;
157
161
  }
162
+ /**
163
+ * @deprecated
164
+ * use moveObjectAfter
165
+ */
158
166
  arrayMoveElementAfterB(arr, a, b, prop) {
159
167
  let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);
160
168
  _.pullAt(arr, indexA);
@@ -167,6 +175,30 @@ class HelpersArrayObj {
167
175
  }
168
176
  return arr;
169
177
  }
178
+ moveObjectBefore(array, target, before) {
179
+ const newArray = [...array];
180
+ const targetIndex = newArray.findIndex(item => item === target);
181
+ const beforeIndex = newArray.findIndex(item => item === before);
182
+ if (targetIndex === -1 || beforeIndex === -1) {
183
+ console.error("Target or Before object not found in the array");
184
+ return newArray;
185
+ }
186
+ newArray.splice(targetIndex, 1);
187
+ newArray.splice(beforeIndex, 0, target);
188
+ return newArray;
189
+ }
190
+ moveObjectAfter(array, target, after) {
191
+ const newArray = [...array];
192
+ const targetIndex = newArray.findIndex(item => item === target);
193
+ const afterIndex = newArray.findIndex(item => item === after);
194
+ if (targetIndex === -1 || afterIndex === -1) {
195
+ console.error("Target or After object not found in the array");
196
+ return newArray;
197
+ }
198
+ newArray.splice(targetIndex, 1);
199
+ newArray.splice(afterIndex + 1, 0, target);
200
+ return newArray;
201
+ }
170
202
  uniqArray(array, uniqueProperty) {
171
203
  var seen = {};
172
204
  return array
@@ -1459,6 +1491,33 @@ const Helpers$1 = HelpersFiredev.Instance;
1459
1491
  const takenPorts = [];
1460
1492
  class BaseProject {
1461
1493
  static { this.ins = new BaseProjectResolver(BaseProject); }
1494
+ static sortGroupOfProject(projects, resoveDepsArray, projNameToCompare) {
1495
+ const visited = {};
1496
+ const stack = {};
1497
+ const result = [];
1498
+ const visit = (project) => {
1499
+ if (stack[projNameToCompare(project)]) {
1500
+ Helpers$1.error(`Circular dependency detected involving project: ${projNameToCompare(project)}`);
1501
+ }
1502
+ if (!visited[projNameToCompare(project)]) {
1503
+ visited[projNameToCompare(project)] = true;
1504
+ stack[projNameToCompare(project)] = true;
1505
+ const depsResolved = resoveDepsArray(project);
1506
+ depsResolved.forEach(dependency => {
1507
+ const dependentProject = projects.find(p => {
1508
+ return projNameToCompare(p) === dependency;
1509
+ });
1510
+ if (dependentProject) {
1511
+ visit(dependentProject);
1512
+ }
1513
+ });
1514
+ stack[projNameToCompare(project)] = false;
1515
+ result.push(project);
1516
+ }
1517
+ };
1518
+ projects.forEach(project => visit(project));
1519
+ return result;
1520
+ }
1462
1521
  get name() {
1463
1522
  return this.packageJSON?.name;
1464
1523
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tnp-helpers.mjs","sources":["../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/validators/validators-git.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/validators/validators-network.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/validators/validators.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/for-browser/angular.helper.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/helpers-array-obj.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/helpers-strings-regexes.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/helpers-strings.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/helpers-numbers.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/for-browser/helpers-browser.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/helpers.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/project.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/base-project-resolver.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/base-project.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/models.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/index.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/tnp-helpers.ts"],"sourcesContent":["\n\n\nexport namespace ValidatorsGit {\n\n export function isValidRepoUrl(url: string) {\n const regex = /^([A-Za-z0-9]+@|http(|s)\\:\\/\\/)([A-Za-z0-9.]+(:\\d+)?)(?::|\\/)([\\d\\/\\w.-]+?)(\\.git)?$/;\n const res = regex.test(url);\n return res;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/validators/validators-git.ts","\n\nimport { _ } from 'tnp-core/browser';\n\nexport namespace ValidatorsNetwork {\n export function isValidIp(ip: string) {\n if (!_.isString(ip)) {\n return false;\n }\n ip = ip.trim();\n if (ip === 'localhost') {\n return true;\n }\n return /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(ip)\n }\n}\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/validators/validators-network.ts","\n\nimport { ValidatorsGit } from \"./validators-git\";\nimport { ValidatorsNetwork } from \"./validators-network\";\n\nexport namespace Validators {\n export import git = ValidatorsGit;\n export import network = ValidatorsNetwork;\n}\n\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/validators/validators.ts","\n\n\nimport { Observable, Subject } from \"rxjs\";\n\nconst componentContextSymbol = Symbol();\nconst componentsDestroy$Subjects = {};\n\n\nexport namespace HelpersAngular {\n\n export class SerializedSubject<T> {\n constructor(\n public id: string\n ) { }\n }\n\n\n function subjectId(destroySubject: Subject<any>): SerializedSubject<any> {\n const id = Math.random().toString(36).substring(2);\n if (!destroySubject[componentContextSymbol]) {\n destroySubject[componentContextSymbol] = new SerializedSubject(id);\n componentsDestroy$Subjects[id] = destroySubject;\n }\n return destroySubject[componentContextSymbol];\n }\n\n /**\n * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();\n */\n export function serialize(destroy$: Subject<any>): SerializedSubject<any> {\n return subjectId(destroy$);\n }\n\n /**\n * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();\n */\n export function deserialize(destroy$: SerializedSubject<any>): Subject<any> {\n if (destroy$?.id) {\n const realDestroySubject = componentsDestroy$Subjects[destroy$.id];\n return realDestroySubject;\n }\n return new Subject();\n }\n\n export function unsubscribe(destroy$: Subject<any>) {\n const destroySubject = subjectId(destroy$);\n if (destroySubject?.id) {\n delete componentsDestroy$Subjects[destroySubject.id];\n delete destroySubject[componentContextSymbol];\n }\n }\n\n\n\n /**\n get properties from scss file\n\n\n import styles from './tasks-ngrx-data.component.scss';\n\n export class ExampleComponent {\n sassFile = sassFile(styles);\n\n async ngOnInit() {\n this.tasksService.getAll();\n console.log(this.sassFile.stringValue('--max-container-size'))\n console.log(this.sassFile.numberValue('--max-container-size'))\n }\n }\n */\n export function sassFile(styles: string) {\n const lines = (styles.split('\\n'));\n return {\n stringValue: (name: string) => {\n for (let index = 0; index < lines.length; index++) {\n const l = lines[index];\n const [varName, value] = l.trim().split(':');\n if (varName === name) {\n return value.replace(';', '');\n }\n }\n },\n numberValue: (name: string): number => {\n for (let index = 0; index < lines.length; index++) {\n const l = lines[index];\n const [varName, value] = l.trim().split(':');\n if (varName === name) {\n return Number(value.replace('px', '').replace(';', ''));\n }\n }\n }\n }\n }\n}\n\n\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/for-browser/angular.helper.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport * as fuzzy from 'fuzzy';\n\n\nexport class HelpersArrayObj {\n\n from(s: string | string[]): string[] {\n if (_.isArray(s)) {\n return s;\n }\n if (_.isString(s)) {\n return s.split(' ')\n }\n }\n\n second(arr) {\n if (!Array.isArray(arr) || arr.length < 2) {\n return void 0;\n }\n return arr[1];\n }\n\n arrayMoveElementBefore<T = any>(arr: any[], a: any, b: any, prop?: keyof T) {\n let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);\n _.pullAt(arr, indexA);\n let indexB = prop ? arr.findIndex(elem => elem[prop] === b[prop]) : arr.indexOf(b);\n if (indexB === 0) {\n arr.unshift(a);\n } else {\n arr.splice(indexB - 1, 0, a);\n }\n return arr;\n }\n arrayMoveElementAfterB<T = any>(arr: any[], a: any, b: any, prop?: keyof T) {\n let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);\n _.pullAt(arr, indexA);\n let indexB = prop ? arr.findIndex(elem => elem[prop] === b[prop]) : arr.indexOf(b);\n if (indexB === arr.length - 1) {\n arr.push(a);\n } else {\n arr.splice(indexB + 1, 0, a);\n }\n return arr;\n }\n\n uniqArray<T = any>(array: any[], uniqueProperty?: (keyof T)) {\n var seen = {};\n return array\n .filter(f => !!f)\n .filter(function (item) {\n return seen.hasOwnProperty(uniqueProperty ? item[uniqueProperty] : item) ? false\n : (seen[uniqueProperty ? item[uniqueProperty] : item] = true);\n }) as T[];\n }\n\n sortKeys(obj) {\n if (_.isArray(obj)) {\n return obj.map(this.sortKeys);\n }\n if (_.isObject(obj)) {\n return _.fromPairs(_.keys(obj).sort().map(key => [key, this.sortKeys(obj[key])]));\n }\n return obj;\n };\n\n /**\n * Fuzzy search\n */\n fuzzy<T = any>(query: string, list: T[], valueFn?: (modelFromList: T) => string) {\n const resultsFuzzy = fuzzy.filter(\n query,\n list.map(k => valueFn ? valueFn(k) : k),\n )\n const resultsFuzzyKebab = fuzzy.filter(\n _.kebabCase(query),\n list.map(k => _.kebabCase((valueFn ? valueFn(k) : k) as any)),\n )\n const matches = resultsFuzzy.map((el) => el.string);\n const matchesKebab = resultsFuzzyKebab.map((el) => el.string);\n\n const results = (resultsFuzzy.length === 0) ? [] : list.filter(k => {\n return matches.includes((valueFn ? valueFn(k) : k) as any);\n })\n\n if (matches.length === 0 && matchesKebab.length > 0) {\n const m = list.find(k => _.kebabCase((valueFn ? valueFn(k) : k) as any) === _.first(matchesKebab));\n results.push(m);\n matches.push((valueFn ? valueFn(m) : m) as any);\n }\n\n return { matches, results };\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-array-obj.ts","\n\nimport { _ } from 'tnp-core/browser';\nexport class HelpersStringsRegexes {\n\n\n\n escapeStringForRegEx(s: string) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n matchExactOnce(s: string, regex: RegExp): string {\n if (!_.isString(s) || !_.isRegExp(regex)) {\n return void 0;\n }\n const result = s.match(regex);\n if (_.isNil(result)) {\n return void 0;\n }\n return result.length >= 1 ? _.first(result) : void 0;\n }\n\n get regex() {\n return {\n /**\n * mathes\n * xxx.xxx.xxx.xxx\n * xxx.xxx.xxx.xxx:port\n * http://xxx.xxx.xxx.xxx:port\n * http://xxx.xxx.xxx.xxx\n * https://xxx.xxx.xxx.xxx:port\n * https://xxx.xxx.xxx.xxx *\n */\n get forStringWithIpHost() {\n const regex = /(http(s)?\\:\\/\\/)?(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\:[0-9]+)?/;\n return regex;\n },\n /**\n * mathes\n * http://domain.com:port\n * http://domain.com\n * http://domain:port\n * http://domain\n * https://domain.com:port\n * https://domain.com\n * https://domain:port\n * https://domain\n */\n get forStringWithDomainHost() {\n const regex = /(((http(s)?\\:\\/\\/)?[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\\.[a-zA-Z]{2,})+(\\:[0-9]+)?)|((http(s)?\\:\\/\\/)[a-zA-Z0-9-]{1,61}))/;\n return regex;\n }\n }\n }\n}\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-strings-regexes.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport { Helpers } from './index';\n\nexport class HelpersStrings {\n\n /**\n * Example:\n *\n * const result = interpolateString(\"I'm {age} years old!\")\n * .withParameters({ age: 29 });\n *\n * const result = interpolateString(\"The {a} says {n}, {n}, {n}!\")\n * .withParameters({ a: 'cow', n: 'moo' });\n *\n *\n * @param value string to interpolate\n * @param parameters object with parametes\n */\n interpolateString<T = any>(value: string) {\n if (typeof value !== 'string') {\n Helpers.warn('[firedev-heleprs] Value for interpolation is not string: ', value);\n return value;\n }\n\n return {\n withParameters(parameters: T) {\n if (typeof parameters !== 'object') {\n Helpers.log(parameters as any);\n Helpers.warn('[firedev-heleprs] Parameters are not a object: ');\n return value;\n }\n return value.replace(/{([^{}]*)}/g, function (a, b) {\n var r = parameters[b];\n return typeof r === 'string' || typeof r === 'number' ? r : a;\n } as any);\n }\n }\n\n }\n\n /**\n *\n * @param pixelsCss exmaple: 100px\n * @returns number value\n */\n numValue(pixelsCss: string) {\n\n return parseInt(pixelsCss.replace('px', ''));\n }\n\n /**\n * examples:\n * 'aa bb bb' => ['aa','bb','cc'],\n * 'aa' => ['aa']\n * ['aa'] => ['aa']\n */\n splitIfNeed(stringOrArr: string | string[]): string[] {\n let res = [];\n if (_.isArray(stringOrArr)) {\n res = stringOrArr.map(s => {\n return s.trim();\n })\n }\n if (_.isString(stringOrArr)) {\n res = stringOrArr.split(/\\s*[\\s,]\\s*/);\n }\n return res.filter(f => !!f && (f.trim() !== ''));\n }\n\n removeDoubleOrMoreEmptyLines(s: string) {\n s = s?.split('\\n').map(f => f.trimRight()).join('\\n');\n return s?.replace(/(\\r\\n|\\r|\\n){2,}/g, '$1\\n');\n }\n\n /**\n *\n * https://stackoverflow.com/a/57129703/1345101\n *\n * Returns the plural of an English word.\n *\n * @export\n * @param {string} word\n * @param {number} [amount]\n * @returns {string}\n */\n plural(word: string, amount?: number): string {\n if (amount !== undefined && amount === 1) {\n return word\n }\n const plural: { [key: string]: string } = {\n '(quiz)$': \"$1zes\",\n '^(ox)$': \"$1en\",\n '([m|l])ouse$': \"$1ice\",\n '(matr|vert|ind)ix|ex$': \"$1ices\",\n '(x|ch|ss|sh)$': \"$1es\",\n '([^aeiouy]|qu)y$': \"$1ies\",\n '(hive)$': \"$1s\",\n '(?:([^f])fe|([lr])f)$': \"$1$2ves\",\n '(shea|lea|loa|thie)f$': \"$1ves\",\n 'sis$': \"ses\",\n '([ti])um$': \"$1a\",\n '(tomat|potat|ech|her|vet)o$': \"$1oes\",\n '(bu)s$': \"$1ses\",\n '(alias)$': \"$1es\",\n '(octop)us$': \"$1i\",\n '(ax|test)is$': \"$1es\",\n '(us)$': \"$1es\",\n '([^s]+)$': \"$1s\"\n }\n const irregular: { [key: string]: string } = {\n 'move': 'moves',\n 'foot': 'feet',\n 'goose': 'geese',\n 'sex': 'sexes',\n 'child': 'children',\n 'man': 'men',\n 'tooth': 'teeth',\n 'person': 'people'\n }\n const uncountable: string[] = [\n 'sheep',\n 'fish',\n 'deer',\n 'moose',\n 'series',\n 'species',\n 'money',\n 'rice',\n 'information',\n 'equipment',\n 'bison',\n 'cod',\n 'offspring',\n 'pike',\n 'salmon',\n 'shrimp',\n 'swine',\n 'trout',\n 'aircraft',\n 'hovercraft',\n 'spacecraft',\n 'sugar',\n 'tuna',\n 'you',\n 'wood'\n ]\n\n if (uncountable.indexOf(word.toLowerCase()) >= 0) {\n return word\n }\n\n for (const w in irregular) {\n const pattern = new RegExp(`${w}$`, 'i')\n const replace = irregular[w]\n if (pattern.test(word)) {\n return word.replace(pattern, replace)\n }\n }\n\n for (const reg in plural) {\n const pattern = new RegExp(reg, 'i')\n if (pattern.test(word)) {\n return word.replace(pattern, plural[reg])\n }\n }\n return word\n }\n\n\n /**\n * https://stackoverflow.com/a/57129703/1345101\n *\n * Returns the singular of an English word.\n *\n * @export\n * @param {string} word\n * @param {number} [amount]\n * @returns {string}\n */\n singular(word: string, amount?: number): string {\n if (amount !== undefined && amount !== 1) {\n return word\n }\n const singular: { [key: string]: string } = {\n '(quiz)zes$': \"$1\",\n '(matr)ices$': \"$1ix\",\n '(vert|ind)ices$': \"$1ex\",\n '^(ox)en$': \"$1\",\n '(alias)es$': \"$1\",\n '(octop|vir)i$': \"$1us\",\n '(cris|ax|test)es$': \"$1is\",\n '(shoe)s$': \"$1\",\n '(o)es$': \"$1\",\n '(bus)es$': \"$1\",\n '([m|l])ice$': \"$1ouse\",\n '(x|ch|ss|sh)es$': \"$1\",\n '(m)ovies$': \"$1ovie\",\n '(s)eries$': \"$1eries\",\n '([^aeiouy]|qu)ies$': \"$1y\",\n '([lr])ves$': \"$1f\",\n '(tive)s$': \"$1\",\n '(hive)s$': \"$1\",\n '(li|wi|kni)ves$': \"$1fe\",\n '(shea|loa|lea|thie)ves$': \"$1f\",\n '(^analy)ses$': \"$1sis\",\n '((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$': \"$1$2sis\",\n '([ti])a$': \"$1um\",\n '(n)ews$': \"$1ews\",\n '(h|bl)ouses$': \"$1ouse\",\n '(corpse)s$': \"$1\",\n '(us)es$': \"$1\",\n 's$': \"\"\n }\n const irregular: { [key: string]: string } = {\n 'move': 'moves',\n 'foot': 'feet',\n 'goose': 'geese',\n 'sex': 'sexes',\n 'child': 'children',\n 'man': 'men',\n 'tooth': 'teeth',\n 'person': 'people'\n }\n const uncountable: string[] = [\n 'sheep',\n 'fish',\n 'deer',\n 'moose',\n 'series',\n 'species',\n 'money',\n 'rice',\n 'information',\n 'equipment',\n 'bison',\n 'cod',\n 'offspring',\n 'pike',\n 'salmon',\n 'shrimp',\n 'swine',\n 'trout',\n 'aircraft',\n 'hovercraft',\n 'spacecraft',\n 'sugar',\n 'tuna',\n 'you',\n 'wood'\n ]\n\n if (uncountable.indexOf(word.toLowerCase()) >= 0) {\n return word\n }\n\n for (const w in irregular) {\n const pattern = new RegExp(`${irregular[w]}$`, 'i')\n const replace = w\n if (pattern.test(word)) {\n return word.replace(pattern, replace)\n }\n }\n\n for (const reg in singular) {\n const pattern = new RegExp(reg, 'i')\n if (pattern.test(word)) {\n return word.replace(pattern, singular[reg])\n }\n }\n return word\n }\n\n}\n\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-strings.ts","\n\n\nexport class HelpersNumber {\n /**\n * @deprecated\n * use _.random()\n */\n randomInteger = (max, min) => Math.round(Math.random() * (max - min)) + min;\n\n\n}\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-numbers.ts","\n\n\n\n\nconst key = Symbol('[firedev-helpers] helper browser key')\n\nexport class HelpersBrowser {\n\n private static callbacks = [];\n static onInit(callback: (ins: HelpersBrowser) => any) {\n this.callbacks.push(callback);\n }\n\n get win() {\n let win = window;\n return win;\n }\n\n private get tabIdSessionStorage() {\n return Number(this.win.sessionStorage?.tabId) || 0;\n }\n\n readonly tabId: number;\n\n private static inst: HelpersBrowser;\n init = (() => {\n const win = this.win;\n\n if (!win[key]) {\n win[key] = new HelpersBrowser(win);\n }\n HelpersBrowser.inst = win[key];\n })();\n\n private constructor(win: Window) {\n\n win.addEventListener(\"beforeunload\", (e) => {\n win.sessionStorage.tabId = this.tabId;\n return null;\n });\n\n setTimeout(() => {\n\n if (win.sessionStorage?.tabId) {\n // @ts-ignore\n this.tabId = Number(win.sessionStorage.tabId);\n win.sessionStorage.removeItem(\"tabId\");\n }\n else {\n // @ts-ignore\n this.tabId = Math.floor(Math.random() * 1000000) + (new Date()).getTime();\n }\n HelpersBrowser.callbacks.forEach((c) => {\n c(this);\n });\n })\n\n\n }\n\n\n static get instance() {\n return HelpersBrowser.inst;\n }\n\n}\n\n\n\n\n\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/for-browser/helpers-browser.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport { HelpersArrayObj } from './helpers-array-obj';\nimport { HelpersStringsRegexes } from './helpers-strings-regexes';\nimport { HelpersStrings } from './helpers-strings';\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \nimport { config, ConfigModels } from 'tnp-config/browser';\nimport { Helpers, Validators } from './index';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { CoreHelpers } from 'tnp-core/browser';\nimport { HelpersNumber } from './helpers-numbers';\n\nimport { HelpersBrowser } from './for-browser/helpers-browser';\nimport { HelpersAngular } from './for-browser/angular.helper';\n\n\n/**\n * Mixing for multiclass inheritance\n *\n * How to use It:\n *\n * class Wolverine {}\n * class Jean {}\n * export class Child {}\n * export interface MyChild implements Wolverine, Jean {}\n * applyMixing(Child,[Wolverine, Jean]);\n *\n * @param derivedCtor Target Class\n * @param baseCtors Base Classes\n */\nexport function applyMixins(derivedCtor: any, baseCtors: any[]) {\n baseCtors.forEach(baseCtor => {\n Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {\n Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name));\n });\n });\n}\n\n// @ts-ignore\nexport class HelpersFiredev extends CoreHelpers {\n\n private static _instance: HelpersFiredev & CoreHelpers;\n public static get Instance() {\n if (!HelpersFiredev._instance) {\n HelpersFiredev._instance = new HelpersFiredev();\n }\n return HelpersFiredev._instance;\n }\n\n private constructor(\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n public arrays = new HelpersArrayObj(),\n public strings = new HelpersStrings(),\n public numbers = new HelpersNumber(),\n\n public browser = HelpersBrowser.instance,\n public ng = HelpersAngular\n\n ) {\n super();\n }\n\n CLIWRAP(f: Function, name: string) {\n CLASS.setName(f, name);\n return f;\n }\n\n\n\n\n\n\n\n\n\n urlParse(portOrHost: (number | string | URL), forceDomain = false) {\n let url: URL;\n if (portOrHost instanceof URL) {\n url = portOrHost;\n } else if (_.isNumber(portOrHost)) {\n url = new URL(`http://localhost:${portOrHost}`);\n } else if (!_.isNaN(Number(portOrHost))) {\n url = new URL(`http://localhost:${Number(portOrHost)}`);\n } else if (_.isString(portOrHost)) {\n try {\n url = new URL(portOrHost);\n } catch (error) { }\n if (Validators.network.isValidIp(portOrHost)) {\n try {\n url = new URL(`http://${portOrHost}`);\n } catch (error) {\n Helpers.warn(`Not able to get port from ${portOrHost}`)\n }\n }\n if (forceDomain) {\n const domain = (portOrHost as string)\n url = new URL(domain.startsWith('http') ? domain : `http://${portOrHost}`);\n }\n }\n return url;\n }\n\n\n/* */\n/* */\n/* */\n/* */\n \n\n async isElevated() {\n/* */\n/* */\n/* */\n/* */\n \n }\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n\n\n async mesureExectionInMs(\n description: string,\n functionToExecute: Function,\n ...functionArguments: any[]): Promise<number> {\n var start = new Date()\n await Helpers.runSyncOrAsync(functionToExecute, ...functionArguments);\n //@ts-ignore\n var end = new Date() - start\n if (Helpers.isBrowser) {\n Helpers.info(`Execution time: ${end.toString()}ms for \"${description}\"`);\n }\n/* */\n/* */\n \n return end;\n }\n\n mesureExectionInMsSync(\n description: string,\n functionToExecute: () => void): number {\n var start = new Date()\n functionToExecute();\n //@ts-ignore\n var end = new Date() - start\n if (Helpers.isBrowser) {\n Helpers.log(`Execution time: ${end.toString()}ms for \"${description}\"`);\n }\n/* */\n/* */\n \n return end;\n }\n\n waitForCondition(conditionFn: (any) => boolean, howOfftenCheckInMs = 1000) {\n return new Promise(async (resolve, reject) => {\n\n const result = await Helpers.runSyncOrAsync(conditionFn);\n if (result) {\n resolve(void 0)\n } else {\n setTimeout(() => {\n Helpers.waitForCondition(conditionFn, howOfftenCheckInMs).then(() => {\n resolve(void 0);\n })\n }, howOfftenCheckInMs);\n }\n })\n }\n\n getBrowserVerPath(moduleName?: string, websql: boolean = false) {\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n getMethodName(obj, method): string {\n var methodName = null;\n Object.getOwnPropertyNames(obj).forEach(prop => {\n if (obj[prop] === method) {\n methodName = prop;\n }\n });\n\n if (methodName !== null) {\n return methodName;\n }\n\n var proto = Object.getPrototypeOf(obj);\n if (proto) {\n return Helpers.getMethodName(proto, method);\n }\n return null;\n }\n\n fixWebpackEnv(env: Object) {\n _.forIn(env, (v, k) => {\n const value: string = v as any;\n if (value === 'true') env[k] = true;\n if (value === 'false') env[k] = false;\n })\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n public applyMixins = applyMixins;\n\n isValidIp = Validators.network.isValidIp;\n isValidGitRepuUrl = Validators.git.isValidRepoUrl;\n}\n\n// @ts-ignore\nexport interface HelpersFiredev extends\n HelpersStringsRegexes\n/* */\n/* */\n/* */\n/* */\n \n{ }\n\napplyMixins(HelpersFiredev, [\n HelpersStringsRegexes,\n/* */\n/* */\n/* */\n \n]);\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/helpers.ts","\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \ndeclare const global: any;\nimport { config, LibTypeArr, ConfigModels } from 'tnp-config/browser';\nimport { _, CoreConfig } from 'tnp-core/browser';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { HelpersFiredev } from './helpers';\nimport { EmptyProjectStructure } from './models';\nconst Helpers = HelpersFiredev.Instance;\n\n\nconst takenPorts = [];\n\n/**\n * @deprecated\n *\n * use BaseProject instead\n */\nexport class Project<T extends Project<any> = any>\n/* */\n/* */\n \n{\n\n public static projects: Project<any>[] = [];\n /**\n * To speed up checking folder I am keeping pathes for alterdy checked folder\n * This may break things that are creating new projects\n */\n public static emptyLocations: string[] = [];\n\n static typeFrom(location: string): ConfigModels.LibType {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n public static unload(project: Project) {\n Project.projects = Project.projects.filter(f => f !== project);\n }\n\n public static From<T = Project<any>>(locationOfProj: string | string[]): T {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n public static nearestTo<T = Project>(\n absoluteLocation: string,\n options?: { type?: ConfigModels.LibType; findGitRoot?: boolean; onlyOutSideNodeModules?: boolean }): T {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n public static allProjectFrom<T = Project>(absoluteLocation: string, stopOnCwd: string = '/') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n public static DefaultPortByType(type: ConfigModels.LibType): number {\n if (type === 'docker') { return 5000; }\n if (type === 'isomorphic-lib') { return 4000; }\n if (type === 'container' || type === 'unknow-npm-project') {\n return;\n }\n }\n\n public static get isBundleMode() {\n if (Helpers.isBrowser) {\n return true;\n }\n/* */\n/* */\n \n }\n\n static get Current(): Project<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n /**\n * @deprecated\n */\n static get Tnp(): Project<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n public static by<T = Project>(\n libraryType: ConfigModels.NewFactoryType,\n version: ConfigModels.FrameworkVersion\n/* */\n/* */\n \n ): T {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n protected cache = {};\n\n /**\n * Do use this variable for comparatios\n * ONLY FOR VIEWING\n */\n public readonly _type: ConfigModels.LibType;\n public browser: Pick<Project<any>, 'location' | 'name'> = {} as any;\n public location: string;\n public name: string;\n public genericName: string;\n public isVscodeExtension: boolean;\n public isDocker: boolean;\n public isCoreProject: boolean;\n public isCommandLineToolOnly: boolean;\n public isGeneratedForRelease: boolean;\n public isForRecreation: boolean;\n public isContainer: boolean;\n public isSmartContainer: boolean;\n public isSmartContainerChild: boolean;\n public isContainerWithLinkedProjects: boolean;\n public isContainerChild: boolean;\n public isContainerCoreProject: boolean;\n public isStandaloneProject: boolean;\n public isMonorepo: boolean;\n public isUnknowNpmProject: boolean;\n public isNaviCli: boolean;\n public useFramework: boolean;\n public defaultPort?: number;\n public version: string;\n public lastNpmVersion?: string;\n public type: ConfigModels.LibType;\n public backupName: string;\n public resources: string[];\n public env?: any;\n public allowedEnvironments: ConfigModels.EnvironmentName[];\n\n public children: T[];\n public smartContainerBuildTarget: T;\n public grandpa: T;\n\n public distribution: T;\n\n public childrenThatAreLibs?: T[];\n\n public childrenThatAreThirdPartyInNodeModules?: T[];\n\n public parent: T;\n\n\n\n\n defineProperty<T>(variableName: keyof T, classFn: Function) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n public setType(this: Project, type: ConfigModels.LibType) {\n // @ts-ignore\n this._type = type;\n }\n public typeIs(this: Project, ...types: ConfigModels.LibType[]) {\n return this._type && types.includes(this._type);\n }\n\n public typeIsNot(this: Project, ...types: ConfigModels.LibType[]) {\n return !this.typeIs(...types);\n }\n\n async assignFreePort(startFrom: number, howManyFreePortsAfterThatPort: number = 0): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n forEmptyStructure(): EmptyProjectStructure[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n}\n\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/project.ts","\n\n\nimport { Helpers, /* */ /* */ } from 'tnp-core/browser';/* */\n/* */\n/* */\n/* */\n/* */\n\n/* */\n/* */\n/* */\n \nimport { path, crossPlatformPath } from 'tnp-core/browser';\nimport { config } from 'tnp-config/browser';\nimport { _ } from 'tnp-core/browser';\nimport type { BaseProject } from './base-project';\n\nexport class BaseProjectResolver<T> {\n\n protected readonly NPM_PROJECT_KEY = 'npm';\n protected projects: (T & BaseProject)[] = [];\n protected emptyLocations: string[] = [];\n constructor(protected classFn: any) { }\n get allowedTypes(): string[] {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n get Current(): T {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * override this\n */\n typeFrom(location: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n From(locationOfProject: string | string[], options?: any): T {\n\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n nearestTo(\n absoluteLocation: string,\n options?: { type?: (string | string[]); findGitRoot?: boolean; onlyOutSideNodeModules?: boolean }): T {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n unload(project: T) {\n this.projects = this.projects.filter(f => f !== project);\n }\n\n\n allProjectFrom(absoluteLocation: string, stopOnCwd: string = '/') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n}\n\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/base-project-resolver.ts","\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n \nimport { CLI } from 'tnp-cli/browser';\nimport { path, crossPlatformPath } from 'tnp-core/browser';\nimport { config } from 'tnp-config/browser';\nimport { _ } from 'tnp-core/browser';\nimport { HelpersFiredev } from './helpers';\nimport { Models } from 'tnp-models/browser';\nimport { BaseProjectResolver } from './base-project-resolver';\n\n\nconst Helpers = HelpersFiredev.Instance;\n\n\nconst takenPorts = [];\n\n\nexport class BaseProject<T = any>\n/* */\n/* */\n \n{\n static ins = new BaseProjectResolver<BaseProject>(BaseProject);\n readonly ins: BaseProjectResolver<T>;\n /**\n * it do not need to be realt path\n */\n readonly location: string;\n readonly basename: string;\n get name() {\n return this.packageJSON?.name;\n }\n readonly type: string;\n get version() {\n return this.packageJSON?.version;\n }\n\n /**\n * npm dependencies\n */\n get dependencies() {\n return (this.packageJSON ? this.packageJSON.dependencies : {}) || {};\n }\n\n /**\n * peerDependencies dependencies\n */\n get peerDependencies() {\n return (this.packageJSON ? this.packageJSON.peerDependencies : {}) || {};\n }\n\n /**\n * devDependencies dependencies\n */\n get devDependencies() {\n return (this.packageJSON ? this.packageJSON.devDependencies : {}) || {};\n }\n\n /**\n * resolutions dependencies\n */\n get resolutions() {\n return (this.packageJSON ? this.packageJSON['resolutions'] : {}) || {};\n }\n\n /**\n * object with all deps from package json\n */\n get allDependencies(): { [packageName: string]: string } {\n return _.merge({\n ...this.devDependencies,\n ...this.peerDependencies,\n ...this.dependencies,\n ...this.resolutions\n }) as any;\n }\n\n get tnp() {\n return this.packageJSON?.tnp;\n }\n\n get firedev() {\n return this.packageJSON?.firedev;\n }\n protected readonly packageJSON: Models.npm.IPackageJSON;\n /**\n * only available after executing *this.assignFreePort()*\n */\n readonly port: string;\n\n\n get parent(): T {\n/* */\n/* */\n return (void 0);\n }\n\n get genericName() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * try run but continue when it fails\n * @param command\n * @param options\n * @returns\n */\n tryRunSync(command: string\n/* */\n/* */\n \n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n pathFor(relativePath: string | string[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n writeJson(relativePath: string, json: object) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n run(command: string\n/* */\n/* */\n \n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n outputFrom(command: string\n/* */\n/* */\n \n ) {\n/* */\n/* */\n return (void 0);\n }\n\n remove(relativePath: string, exactPath = true) {\n/* */\n/* */\n return (void 0);\n }\n\n linkNodeModulesTo(proj: Partial<BaseProject>) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n reinstallNodeModules(forcerRemoveNodeModules = false) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n async assignFreePort(startFrom: number = 4200, howManyFreePortsAfterThatPort: number = 0): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n}\n\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/base-project.ts","\n\nimport type { Project } from \"./project\";\n\nexport type EmptyProjectStructure = {\n includeContent?: boolean;\n relativePath: string;\n relativeLinkFrom?: string;\n};\n\nexport type ProjectBuild = { project: Project; appBuild: boolean; };\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/models.ts","\n\nexport * from './validators/validators';\n\nexport { HelpersAngular } from './for-browser/angular.helper';\n\n\nimport { HelpersFiredev as Base } from './helpers';\n\n/**\n * Firedev helpers\n */\nexport const Helpers = Base.Instance;\nexport * from './project';\nexport * from './base-project';\nexport * from './base-project-resolver';\nexport * from './models';\n\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Helpers","takenPorts","Base"],"mappings":"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"}
1
+ {"version":3,"file":"tnp-helpers.mjs","sources":["../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/validators/validators-git.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/validators/validators-network.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/validators/validators.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/for-browser/angular.helper.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/helpers-array-obj.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/helpers-strings-regexes.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/helpers-strings.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/helpers-numbers.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/for-browser/helpers-browser.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/helpers.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/project.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/base-project-resolver.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/base-project.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/models.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/lib/index.ts","../../../tmp-libs-for-bundle/tnp-helpers/projects/tnp-helpers/src/tnp-helpers.ts"],"sourcesContent":["\n\n\nexport namespace ValidatorsGit {\n\n export function isValidRepoUrl(url: string) {\n const regex = /^([A-Za-z0-9]+@|http(|s)\\:\\/\\/)([A-Za-z0-9.]+(:\\d+)?)(?::|\\/)([\\d\\/\\w.-]+?)(\\.git)?$/;\n const res = regex.test(url);\n return res;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/validators/validators-git.ts","\n\nimport { _ } from 'tnp-core/browser';\n\nexport namespace ValidatorsNetwork {\n export function isValidIp(ip: string) {\n if (!_.isString(ip)) {\n return false;\n }\n ip = ip.trim();\n if (ip === 'localhost') {\n return true;\n }\n return /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(ip)\n }\n}\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/validators/validators-network.ts","\n\nimport { ValidatorsGit } from \"./validators-git\";\nimport { ValidatorsNetwork } from \"./validators-network\";\n\nexport namespace Validators {\n export import git = ValidatorsGit;\n export import network = ValidatorsNetwork;\n}\n\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/validators/validators.ts","\n\n\nimport { Observable, Subject } from \"rxjs\";\n\nconst componentContextSymbol = Symbol();\nconst componentsDestroy$Subjects = {};\n\n\nexport namespace HelpersAngular {\n\n export class SerializedSubject<T> {\n constructor(\n public id: string\n ) { }\n }\n\n\n function subjectId(destroySubject: Subject<any>): SerializedSubject<any> {\n const id = Math.random().toString(36).substring(2);\n if (!destroySubject[componentContextSymbol]) {\n destroySubject[componentContextSymbol] = new SerializedSubject(id);\n componentsDestroy$Subjects[id] = destroySubject;\n }\n return destroySubject[componentContextSymbol];\n }\n\n /**\n * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();\n */\n export function serialize(destroy$: Subject<any>): SerializedSubject<any> {\n return subjectId(destroy$);\n }\n\n /**\n * if you are using this.. please call Helpers.ng.unsubscribe(this.$destroy) in ngOnDestroy();\n */\n export function deserialize(destroy$: SerializedSubject<any>): Subject<any> {\n if (destroy$?.id) {\n const realDestroySubject = componentsDestroy$Subjects[destroy$.id];\n return realDestroySubject;\n }\n return new Subject();\n }\n\n export function unsubscribe(destroy$: Subject<any>) {\n const destroySubject = subjectId(destroy$);\n if (destroySubject?.id) {\n delete componentsDestroy$Subjects[destroySubject.id];\n delete destroySubject[componentContextSymbol];\n }\n }\n\n\n\n /**\n get properties from scss file\n\n\n import styles from './tasks-ngrx-data.component.scss';\n\n export class ExampleComponent {\n sassFile = sassFile(styles);\n\n async ngOnInit() {\n this.tasksService.getAll();\n console.log(this.sassFile.stringValue('--max-container-size'))\n console.log(this.sassFile.numberValue('--max-container-size'))\n }\n }\n */\n export function sassFile(styles: string) {\n const lines = (styles.split('\\n'));\n return {\n stringValue: (name: string) => {\n for (let index = 0; index < lines.length; index++) {\n const l = lines[index];\n const [varName, value] = l.trim().split(':');\n if (varName === name) {\n return value.replace(';', '');\n }\n }\n },\n numberValue: (name: string): number => {\n for (let index = 0; index < lines.length; index++) {\n const l = lines[index];\n const [varName, value] = l.trim().split(':');\n if (varName === name) {\n return Number(value.replace('px', '').replace(';', ''));\n }\n }\n }\n }\n }\n}\n\n\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/for-browser/angular.helper.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport * as fuzzy from 'fuzzy';\n\n\nexport class HelpersArrayObj {\n\n from(s: string | string[]): string[] {\n if (_.isArray(s)) {\n return s;\n }\n if (_.isString(s)) {\n return s.split(' ')\n }\n }\n\n second(arr) {\n if (!Array.isArray(arr) || arr.length < 2) {\n return void 0;\n }\n return arr[1];\n }\n\n /**\n * @deprecated\n * use moveObjectBefore\n */\n arrayMoveElementBefore<T = any>(arr: any[], a: any, b: any, prop?: keyof T) {\n let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);\n _.pullAt(arr, indexA);\n let indexB = prop ? arr.findIndex(elem => elem[prop] === b[prop]) : arr.indexOf(b);\n if (indexB === 0) {\n arr.unshift(a);\n } else {\n arr.splice(indexB - 1, 0, a);\n }\n return arr;\n }\n\n /**\n * @deprecated\n * use moveObjectAfter\n */\n arrayMoveElementAfterB<T = any>(arr: any[], a: any, b: any, prop?: keyof T) {\n let indexA = prop ? arr.findIndex(elem => elem[prop] === a[prop]) : arr.indexOf(a);\n _.pullAt(arr, indexA);\n let indexB = prop ? arr.findIndex(elem => elem[prop] === b[prop]) : arr.indexOf(b);\n if (indexB === arr.length - 1) {\n arr.push(a);\n } else {\n arr.splice(indexB + 1, 0, a);\n }\n return arr;\n }\n\n moveObjectBefore<T = any>(array: T[], target: T, before: T): T[] {\n const newArray = [...array];\n const targetIndex = newArray.findIndex(item => item === target);\n const beforeIndex = newArray.findIndex(item => item === before);\n\n if (targetIndex === -1 || beforeIndex === -1) {\n\n console.error(\"Target or Before object not found in the array\");\n return newArray;\n }\n\n\n newArray.splice(targetIndex, 1);\n\n\n newArray.splice(beforeIndex, 0, target);\n\n return newArray;\n }\n\n moveObjectAfter<T = any>(array: T[], target: T, after: T): T[] {\n const newArray = [...array];\n const targetIndex = newArray.findIndex(item => item === target);\n const afterIndex = newArray.findIndex(item => item === after);\n\n if (targetIndex === -1 || afterIndex === -1) {\n\n console.error(\"Target or After object not found in the array\");\n return newArray;\n }\n\n\n newArray.splice(targetIndex, 1);\n\n\n newArray.splice(afterIndex + 1, 0, target);\n\n return newArray;\n }\n\n uniqArray<T = any>(array: any[], uniqueProperty?: (keyof T)) {\n var seen = {};\n return array\n .filter(f => !!f)\n .filter(function (item) {\n return seen.hasOwnProperty(uniqueProperty ? item[uniqueProperty] : item) ? false\n : (seen[uniqueProperty ? item[uniqueProperty] : item] = true);\n }) as T[];\n }\n\n sortKeys(obj) {\n if (_.isArray(obj)) {\n return obj.map(this.sortKeys);\n }\n if (_.isObject(obj)) {\n return _.fromPairs(_.keys(obj).sort().map(key => [key, this.sortKeys(obj[key])]));\n }\n return obj;\n };\n\n /**\n * Fuzzy search\n */\n fuzzy<T = any>(query: string, list: T[], valueFn?: (modelFromList: T) => string) {\n const resultsFuzzy = fuzzy.filter(\n query,\n list.map(k => valueFn ? valueFn(k) : k),\n )\n const resultsFuzzyKebab = fuzzy.filter(\n _.kebabCase(query),\n list.map(k => _.kebabCase((valueFn ? valueFn(k) : k) as any)),\n )\n const matches = resultsFuzzy.map((el) => el.string);\n const matchesKebab = resultsFuzzyKebab.map((el) => el.string);\n\n const results = (resultsFuzzy.length === 0) ? [] : list.filter(k => {\n return matches.includes((valueFn ? valueFn(k) : k) as any);\n })\n\n if (matches.length === 0 && matchesKebab.length > 0) {\n const m = list.find(k => _.kebabCase((valueFn ? valueFn(k) : k) as any) === _.first(matchesKebab));\n results.push(m);\n matches.push((valueFn ? valueFn(m) : m) as any);\n }\n\n return { matches, results };\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-array-obj.ts","\n\nimport { _ } from 'tnp-core/browser';\nexport class HelpersStringsRegexes {\n\n\n\n escapeStringForRegEx(s: string) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n matchExactOnce(s: string, regex: RegExp): string {\n if (!_.isString(s) || !_.isRegExp(regex)) {\n return void 0;\n }\n const result = s.match(regex);\n if (_.isNil(result)) {\n return void 0;\n }\n return result.length >= 1 ? _.first(result) : void 0;\n }\n\n get regex() {\n return {\n /**\n * mathes\n * xxx.xxx.xxx.xxx\n * xxx.xxx.xxx.xxx:port\n * http://xxx.xxx.xxx.xxx:port\n * http://xxx.xxx.xxx.xxx\n * https://xxx.xxx.xxx.xxx:port\n * https://xxx.xxx.xxx.xxx *\n */\n get forStringWithIpHost() {\n const regex = /(http(s)?\\:\\/\\/)?(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\\:[0-9]+)?/;\n return regex;\n },\n /**\n * mathes\n * http://domain.com:port\n * http://domain.com\n * http://domain:port\n * http://domain\n * https://domain.com:port\n * https://domain.com\n * https://domain:port\n * https://domain\n */\n get forStringWithDomainHost() {\n const regex = /(((http(s)?\\:\\/\\/)?[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\\.[a-zA-Z]{2,})+(\\:[0-9]+)?)|((http(s)?\\:\\/\\/)[a-zA-Z0-9-]{1,61}))/;\n return regex;\n }\n }\n }\n}\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-strings-regexes.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport { Helpers } from './index';\n\nexport class HelpersStrings {\n\n /**\n * Example:\n *\n * const result = interpolateString(\"I'm {age} years old!\")\n * .withParameters({ age: 29 });\n *\n * const result = interpolateString(\"The {a} says {n}, {n}, {n}!\")\n * .withParameters({ a: 'cow', n: 'moo' });\n *\n *\n * @param value string to interpolate\n * @param parameters object with parametes\n */\n interpolateString<T = any>(value: string) {\n if (typeof value !== 'string') {\n Helpers.warn('[firedev-heleprs] Value for interpolation is not string: ', value);\n return value;\n }\n\n return {\n withParameters(parameters: T) {\n if (typeof parameters !== 'object') {\n Helpers.log(parameters as any);\n Helpers.warn('[firedev-heleprs] Parameters are not a object: ');\n return value;\n }\n return value.replace(/{([^{}]*)}/g, function (a, b) {\n var r = parameters[b];\n return typeof r === 'string' || typeof r === 'number' ? r : a;\n } as any);\n }\n }\n\n }\n\n /**\n *\n * @param pixelsCss exmaple: 100px\n * @returns number value\n */\n numValue(pixelsCss: string) {\n\n return parseInt(pixelsCss.replace('px', ''));\n }\n\n /**\n * examples:\n * 'aa bb bb' => ['aa','bb','cc'],\n * 'aa' => ['aa']\n * ['aa'] => ['aa']\n */\n splitIfNeed(stringOrArr: string | string[]): string[] {\n let res = [];\n if (_.isArray(stringOrArr)) {\n res = stringOrArr.map(s => {\n return s.trim();\n })\n }\n if (_.isString(stringOrArr)) {\n res = stringOrArr.split(/\\s*[\\s,]\\s*/);\n }\n return res.filter(f => !!f && (f.trim() !== ''));\n }\n\n removeDoubleOrMoreEmptyLines(s: string) {\n s = s?.split('\\n').map(f => f.trimRight()).join('\\n');\n return s?.replace(/(\\r\\n|\\r|\\n){2,}/g, '$1\\n');\n }\n\n /**\n *\n * https://stackoverflow.com/a/57129703/1345101\n *\n * Returns the plural of an English word.\n *\n * @export\n * @param {string} word\n * @param {number} [amount]\n * @returns {string}\n */\n plural(word: string, amount?: number): string {\n if (amount !== undefined && amount === 1) {\n return word\n }\n const plural: { [key: string]: string } = {\n '(quiz)$': \"$1zes\",\n '^(ox)$': \"$1en\",\n '([m|l])ouse$': \"$1ice\",\n '(matr|vert|ind)ix|ex$': \"$1ices\",\n '(x|ch|ss|sh)$': \"$1es\",\n '([^aeiouy]|qu)y$': \"$1ies\",\n '(hive)$': \"$1s\",\n '(?:([^f])fe|([lr])f)$': \"$1$2ves\",\n '(shea|lea|loa|thie)f$': \"$1ves\",\n 'sis$': \"ses\",\n '([ti])um$': \"$1a\",\n '(tomat|potat|ech|her|vet)o$': \"$1oes\",\n '(bu)s$': \"$1ses\",\n '(alias)$': \"$1es\",\n '(octop)us$': \"$1i\",\n '(ax|test)is$': \"$1es\",\n '(us)$': \"$1es\",\n '([^s]+)$': \"$1s\"\n }\n const irregular: { [key: string]: string } = {\n 'move': 'moves',\n 'foot': 'feet',\n 'goose': 'geese',\n 'sex': 'sexes',\n 'child': 'children',\n 'man': 'men',\n 'tooth': 'teeth',\n 'person': 'people'\n }\n const uncountable: string[] = [\n 'sheep',\n 'fish',\n 'deer',\n 'moose',\n 'series',\n 'species',\n 'money',\n 'rice',\n 'information',\n 'equipment',\n 'bison',\n 'cod',\n 'offspring',\n 'pike',\n 'salmon',\n 'shrimp',\n 'swine',\n 'trout',\n 'aircraft',\n 'hovercraft',\n 'spacecraft',\n 'sugar',\n 'tuna',\n 'you',\n 'wood'\n ]\n\n if (uncountable.indexOf(word.toLowerCase()) >= 0) {\n return word\n }\n\n for (const w in irregular) {\n const pattern = new RegExp(`${w}$`, 'i')\n const replace = irregular[w]\n if (pattern.test(word)) {\n return word.replace(pattern, replace)\n }\n }\n\n for (const reg in plural) {\n const pattern = new RegExp(reg, 'i')\n if (pattern.test(word)) {\n return word.replace(pattern, plural[reg])\n }\n }\n return word\n }\n\n\n /**\n * https://stackoverflow.com/a/57129703/1345101\n *\n * Returns the singular of an English word.\n *\n * @export\n * @param {string} word\n * @param {number} [amount]\n * @returns {string}\n */\n singular(word: string, amount?: number): string {\n if (amount !== undefined && amount !== 1) {\n return word\n }\n const singular: { [key: string]: string } = {\n '(quiz)zes$': \"$1\",\n '(matr)ices$': \"$1ix\",\n '(vert|ind)ices$': \"$1ex\",\n '^(ox)en$': \"$1\",\n '(alias)es$': \"$1\",\n '(octop|vir)i$': \"$1us\",\n '(cris|ax|test)es$': \"$1is\",\n '(shoe)s$': \"$1\",\n '(o)es$': \"$1\",\n '(bus)es$': \"$1\",\n '([m|l])ice$': \"$1ouse\",\n '(x|ch|ss|sh)es$': \"$1\",\n '(m)ovies$': \"$1ovie\",\n '(s)eries$': \"$1eries\",\n '([^aeiouy]|qu)ies$': \"$1y\",\n '([lr])ves$': \"$1f\",\n '(tive)s$': \"$1\",\n '(hive)s$': \"$1\",\n '(li|wi|kni)ves$': \"$1fe\",\n '(shea|loa|lea|thie)ves$': \"$1f\",\n '(^analy)ses$': \"$1sis\",\n '((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$': \"$1$2sis\",\n '([ti])a$': \"$1um\",\n '(n)ews$': \"$1ews\",\n '(h|bl)ouses$': \"$1ouse\",\n '(corpse)s$': \"$1\",\n '(us)es$': \"$1\",\n 's$': \"\"\n }\n const irregular: { [key: string]: string } = {\n 'move': 'moves',\n 'foot': 'feet',\n 'goose': 'geese',\n 'sex': 'sexes',\n 'child': 'children',\n 'man': 'men',\n 'tooth': 'teeth',\n 'person': 'people'\n }\n const uncountable: string[] = [\n 'sheep',\n 'fish',\n 'deer',\n 'moose',\n 'series',\n 'species',\n 'money',\n 'rice',\n 'information',\n 'equipment',\n 'bison',\n 'cod',\n 'offspring',\n 'pike',\n 'salmon',\n 'shrimp',\n 'swine',\n 'trout',\n 'aircraft',\n 'hovercraft',\n 'spacecraft',\n 'sugar',\n 'tuna',\n 'you',\n 'wood'\n ]\n\n if (uncountable.indexOf(word.toLowerCase()) >= 0) {\n return word\n }\n\n for (const w in irregular) {\n const pattern = new RegExp(`${irregular[w]}$`, 'i')\n const replace = w\n if (pattern.test(word)) {\n return word.replace(pattern, replace)\n }\n }\n\n for (const reg in singular) {\n const pattern = new RegExp(reg, 'i')\n if (pattern.test(word)) {\n return word.replace(pattern, singular[reg])\n }\n }\n return word\n }\n\n}\n\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-strings.ts","\n\n\nexport class HelpersNumber {\n /**\n * @deprecated\n * use _.random()\n */\n randomInteger = (max, min) => Math.round(Math.random() * (max - min)) + min;\n\n\n}\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/helpers-numbers.ts","\n\n\n\n\nconst key = Symbol('[firedev-helpers] helper browser key')\n\nexport class HelpersBrowser {\n\n private static callbacks = [];\n static onInit(callback: (ins: HelpersBrowser) => any) {\n this.callbacks.push(callback);\n }\n\n get win() {\n let win = window;\n return win;\n }\n\n private get tabIdSessionStorage() {\n return Number(this.win.sessionStorage?.tabId) || 0;\n }\n\n readonly tabId: number;\n\n private static inst: HelpersBrowser;\n init = (() => {\n const win = this.win;\n\n if (!win[key]) {\n win[key] = new HelpersBrowser(win);\n }\n HelpersBrowser.inst = win[key];\n })();\n\n private constructor(win: Window) {\n\n win.addEventListener(\"beforeunload\", (e) => {\n win.sessionStorage.tabId = this.tabId;\n return null;\n });\n\n setTimeout(() => {\n\n if (win.sessionStorage?.tabId) {\n // @ts-ignore\n this.tabId = Number(win.sessionStorage.tabId);\n win.sessionStorage.removeItem(\"tabId\");\n }\n else {\n // @ts-ignore\n this.tabId = Math.floor(Math.random() * 1000000) + (new Date()).getTime();\n }\n HelpersBrowser.callbacks.forEach((c) => {\n c(this);\n });\n })\n\n\n }\n\n\n static get instance() {\n return HelpersBrowser.inst;\n }\n\n}\n\n\n\n\n\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/for-browser/helpers-browser.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport { HelpersArrayObj } from './helpers-array-obj';\nimport { HelpersStringsRegexes } from './helpers-strings-regexes';\nimport { HelpersStrings } from './helpers-strings';\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \nimport { config, ConfigModels } from 'tnp-config/browser';\nimport { Helpers, Validators } from './index';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { CoreHelpers } from 'tnp-core/browser';\nimport { HelpersNumber } from './helpers-numbers';\n\nimport { HelpersBrowser } from './for-browser/helpers-browser';\nimport { HelpersAngular } from './for-browser/angular.helper';\n\n\n/**\n * Mixing for multiclass inheritance\n *\n * How to use It:\n *\n * class Wolverine {}\n * class Jean {}\n * export class Child {}\n * export interface MyChild implements Wolverine, Jean {}\n * applyMixing(Child,[Wolverine, Jean]);\n *\n * @param derivedCtor Target Class\n * @param baseCtors Base Classes\n */\nexport function applyMixins(derivedCtor: any, baseCtors: any[]) {\n baseCtors.forEach(baseCtor => {\n Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {\n Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name));\n });\n });\n}\n\n// @ts-ignore\nexport class HelpersFiredev extends CoreHelpers {\n\n private static _instance: HelpersFiredev & CoreHelpers;\n public static get Instance() {\n if (!HelpersFiredev._instance) {\n HelpersFiredev._instance = new HelpersFiredev();\n }\n return HelpersFiredev._instance;\n }\n\n private constructor(\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n public arrays = new HelpersArrayObj(),\n public strings = new HelpersStrings(),\n public numbers = new HelpersNumber(),\n\n public browser = HelpersBrowser.instance,\n public ng = HelpersAngular\n\n ) {\n super();\n }\n\n CLIWRAP(f: Function, name: string) {\n CLASS.setName(f, name);\n return f;\n }\n\n\n\n\n\n\n\n\n\n urlParse(portOrHost: (number | string | URL), forceDomain = false) {\n let url: URL;\n if (portOrHost instanceof URL) {\n url = portOrHost;\n } else if (_.isNumber(portOrHost)) {\n url = new URL(`http://localhost:${portOrHost}`);\n } else if (!_.isNaN(Number(portOrHost))) {\n url = new URL(`http://localhost:${Number(portOrHost)}`);\n } else if (_.isString(portOrHost)) {\n try {\n url = new URL(portOrHost);\n } catch (error) { }\n if (Validators.network.isValidIp(portOrHost)) {\n try {\n url = new URL(`http://${portOrHost}`);\n } catch (error) {\n Helpers.warn(`Not able to get port from ${portOrHost}`)\n }\n }\n if (forceDomain) {\n const domain = (portOrHost as string)\n url = new URL(domain.startsWith('http') ? domain : `http://${portOrHost}`);\n }\n }\n return url;\n }\n\n\n/* */\n/* */\n/* */\n/* */\n \n\n async isElevated() {\n/* */\n/* */\n/* */\n/* */\n \n }\n\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n\n\n async mesureExectionInMs(\n description: string,\n functionToExecute: Function,\n ...functionArguments: any[]): Promise<number> {\n var start = new Date()\n await Helpers.runSyncOrAsync(functionToExecute, ...functionArguments);\n //@ts-ignore\n var end = new Date() - start\n if (Helpers.isBrowser) {\n Helpers.info(`Execution time: ${end.toString()}ms for \"${description}\"`);\n }\n/* */\n/* */\n \n return end;\n }\n\n mesureExectionInMsSync(\n description: string,\n functionToExecute: () => void): number {\n var start = new Date()\n functionToExecute();\n //@ts-ignore\n var end = new Date() - start\n if (Helpers.isBrowser) {\n Helpers.log(`Execution time: ${end.toString()}ms for \"${description}\"`);\n }\n/* */\n/* */\n \n return end;\n }\n\n waitForCondition(conditionFn: (any) => boolean, howOfftenCheckInMs = 1000) {\n return new Promise(async (resolve, reject) => {\n\n const result = await Helpers.runSyncOrAsync(conditionFn);\n if (result) {\n resolve(void 0)\n } else {\n setTimeout(() => {\n Helpers.waitForCondition(conditionFn, howOfftenCheckInMs).then(() => {\n resolve(void 0);\n })\n }, howOfftenCheckInMs);\n }\n })\n }\n\n getBrowserVerPath(moduleName?: string, websql: boolean = false) {\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n getMethodName(obj, method): string {\n var methodName = null;\n Object.getOwnPropertyNames(obj).forEach(prop => {\n if (obj[prop] === method) {\n methodName = prop;\n }\n });\n\n if (methodName !== null) {\n return methodName;\n }\n\n var proto = Object.getPrototypeOf(obj);\n if (proto) {\n return Helpers.getMethodName(proto, method);\n }\n return null;\n }\n\n fixWebpackEnv(env: Object) {\n _.forIn(env, (v, k) => {\n const value: string = v as any;\n if (value === 'true') env[k] = true;\n if (value === 'false') env[k] = false;\n })\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n \n public applyMixins = applyMixins;\n\n isValidIp = Validators.network.isValidIp;\n isValidGitRepuUrl = Validators.git.isValidRepoUrl;\n}\n\n// @ts-ignore\nexport interface HelpersFiredev extends\n HelpersStringsRegexes\n/* */\n/* */\n/* */\n/* */\n \n{ }\n\napplyMixins(HelpersFiredev, [\n HelpersStringsRegexes,\n/* */\n/* */\n/* */\n \n]);\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/helpers.ts","\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \ndeclare const global: any;\nimport { config, LibTypeArr, ConfigModels } from 'tnp-config/browser';\nimport { _, CoreConfig } from 'tnp-core/browser';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { HelpersFiredev } from './helpers';\nimport { EmptyProjectStructure } from './models';\nconst Helpers = HelpersFiredev.Instance;\n\n\nconst takenPorts = [];\n\n/**\n * @deprecated\n *\n * use BaseProject instead\n */\nexport class Project<T extends Project<any> = any>\n/* */\n/* */\n \n{\n\n public static projects: Project<any>[] = [];\n /**\n * To speed up checking folder I am keeping pathes for alterdy checked folder\n * This may break things that are creating new projects\n */\n public static emptyLocations: string[] = [];\n\n static typeFrom(location: string): ConfigModels.LibType {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n public static unload(project: Project) {\n Project.projects = Project.projects.filter(f => f !== project);\n }\n\n public static From<T = Project<any>>(locationOfProj: string | string[]): T {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n public static nearestTo<T = Project>(\n absoluteLocation: string,\n options?: { type?: ConfigModels.LibType; findGitRoot?: boolean; onlyOutSideNodeModules?: boolean }): T {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n public static allProjectFrom<T = Project>(absoluteLocation: string, stopOnCwd: string = '/') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n public static DefaultPortByType(type: ConfigModels.LibType): number {\n if (type === 'docker') { return 5000; }\n if (type === 'isomorphic-lib') { return 4000; }\n if (type === 'container' || type === 'unknow-npm-project') {\n return;\n }\n }\n\n public static get isBundleMode() {\n if (Helpers.isBrowser) {\n return true;\n }\n/* */\n/* */\n \n }\n\n static get Current(): Project<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n /**\n * @deprecated\n */\n static get Tnp(): Project<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n public static by<T = Project>(\n libraryType: ConfigModels.NewFactoryType,\n version: ConfigModels.FrameworkVersion\n/* */\n/* */\n \n ): T {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n protected cache = {};\n\n /**\n * Do use this variable for comparatios\n * ONLY FOR VIEWING\n */\n public readonly _type: ConfigModels.LibType;\n public browser: Pick<Project<any>, 'location' | 'name'> = {} as any;\n public location: string;\n public name: string;\n public genericName: string;\n public isVscodeExtension: boolean;\n public isDocker: boolean;\n public isCoreProject: boolean;\n public isCommandLineToolOnly: boolean;\n public isGeneratedForRelease: boolean;\n public isForRecreation: boolean;\n public isContainer: boolean;\n public isSmartContainer: boolean;\n public isSmartContainerChild: boolean;\n public isContainerWithLinkedProjects: boolean;\n public isContainerChild: boolean;\n public isContainerCoreProject: boolean;\n public isStandaloneProject: boolean;\n public isMonorepo: boolean;\n public isUnknowNpmProject: boolean;\n public isNaviCli: boolean;\n public useFramework: boolean;\n public defaultPort?: number;\n public version: string;\n public lastNpmVersion?: string;\n public type: ConfigModels.LibType;\n public backupName: string;\n public resources: string[];\n public env?: any;\n public allowedEnvironments: ConfigModels.EnvironmentName[];\n\n public children: T[];\n public smartContainerBuildTarget: T;\n public grandpa: T;\n\n public distribution: T;\n\n public childrenThatAreLibs?: T[];\n\n public childrenThatAreThirdPartyInNodeModules?: T[];\n\n public parent: T;\n\n\n\n\n defineProperty<T>(variableName: keyof T, classFn: Function) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n public setType(this: Project, type: ConfigModels.LibType) {\n // @ts-ignore\n this._type = type;\n }\n public typeIs(this: Project, ...types: ConfigModels.LibType[]) {\n return this._type && types.includes(this._type);\n }\n\n public typeIsNot(this: Project, ...types: ConfigModels.LibType[]) {\n return !this.typeIs(...types);\n }\n\n async assignFreePort(startFrom: number, howManyFreePortsAfterThatPort: number = 0): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n forEmptyStructure(): EmptyProjectStructure[] {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n}\n\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/project.ts","\n\n\nimport { Helpers, /* */ /* */ } from 'tnp-core/browser';/* */\n/* */\n/* */\n/* */\n/* */\n\n/* */\n/* */\n/* */\n \nimport { path, crossPlatformPath } from 'tnp-core/browser';\nimport { config } from 'tnp-config/browser';\nimport { _ } from 'tnp-core/browser';\nimport type { BaseProject } from './base-project';\n\nexport class BaseProjectResolver<T> {\n\n protected readonly NPM_PROJECT_KEY = 'npm';\n protected projects: (T & BaseProject)[] = [];\n protected emptyLocations: string[] = [];\n constructor(protected classFn: any) { }\n get allowedTypes(): string[] {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n get Current(): T {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * override this\n */\n typeFrom(location: string): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n From(locationOfProject: string | string[], options?: any): T {\n\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n nearestTo(\n absoluteLocation: string,\n options?: { type?: (string | string[]); findGitRoot?: boolean; onlyOutSideNodeModules?: boolean }): T {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n unload(project: T) {\n this.projects = this.projects.filter(f => f !== project);\n }\n\n\n allProjectFrom(absoluteLocation: string, stopOnCwd: string = '/') {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n}\n\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/base-project-resolver.ts","\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n \nimport { CLI } from 'tnp-cli/browser';\nimport { path, crossPlatformPath } from 'tnp-core/browser';\nimport { config } from 'tnp-config/browser';\nimport { _ } from 'tnp-core/browser';\nimport { HelpersFiredev } from './helpers';\nimport { Models } from 'tnp-models/browser';\nimport { BaseProjectResolver } from './base-project-resolver';\n\n\nconst Helpers = HelpersFiredev.Instance;\n\n\nconst takenPorts = [];\n\n\nexport class BaseProject<T = any>\n/* */\n/* */\n \n{\n static ins = new BaseProjectResolver<BaseProject>(BaseProject);\n\n public static sortGroupOfProject<T extends BaseProject<any> = BaseProject<any>>(projects: T[], resoveDepsArray: (proj: T) => string[], projNameToCompare: (proj: T) => string): T[] {\n\n const visited: { [key: string]: boolean } = {};\n const stack: { [key: string]: boolean } = {};\n const result: T[] = [];\n\n const visit = (project: T) => {\n if (stack[projNameToCompare(project)]) {\n\n Helpers.error(`Circular dependency detected involving project: ${projNameToCompare(project)}`);\n }\n\n if (!visited[projNameToCompare(project)]) {\n visited[projNameToCompare(project)] = true;\n stack[projNameToCompare(project)] = true;\n\n const depsResolved = resoveDepsArray(project);\n depsResolved.forEach(dependency => {\n const dependentProject = projects.find(p => {\n\n return projNameToCompare(p) === dependency;\n });\n if (dependentProject) {\n visit(dependentProject);\n }\n });\n\n stack[projNameToCompare(project)] = false;\n result.push(project);\n }\n };\n\n projects.forEach(project => visit(project));\n return result;\n\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n readonly ins: BaseProjectResolver<T>;\n /**\n * it do not need to be realt path\n */\n readonly location: string;\n readonly basename: string;\n get name() {\n return this.packageJSON?.name;\n }\n readonly type: string;\n get version() {\n return this.packageJSON?.version;\n }\n\n /**\n * npm dependencies\n */\n get dependencies() {\n return (this.packageJSON ? this.packageJSON.dependencies : {}) || {};\n }\n\n /**\n * peerDependencies dependencies\n */\n get peerDependencies() {\n return (this.packageJSON ? this.packageJSON.peerDependencies : {}) || {};\n }\n\n /**\n * devDependencies dependencies\n */\n get devDependencies() {\n return (this.packageJSON ? this.packageJSON.devDependencies : {}) || {};\n }\n\n /**\n * resolutions dependencies\n */\n get resolutions() {\n return (this.packageJSON ? this.packageJSON['resolutions'] : {}) || {};\n }\n\n /**\n * object with all deps from package json\n */\n get allDependencies(): { [packageName: string]: string } {\n return _.merge({\n ...this.devDependencies,\n ...this.peerDependencies,\n ...this.dependencies,\n ...this.resolutions\n }) as any;\n }\n\n get tnp() {\n return this.packageJSON?.tnp;\n }\n\n get firedev() {\n return this.packageJSON?.firedev;\n }\n protected readonly packageJSON: Models.npm.IPackageJSON;\n\n /**\n * only available after executing *this.assignFreePort()*\n */\n readonly port: string;\n\n\n get parent(): T {\n/* */\n/* */\n return (void 0);\n }\n\n get genericName() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * try run but continue when it fails\n * @param command\n * @param options\n * @returns\n */\n tryRunSync(command: string\n/* */\n/* */\n \n ): void {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n pathFor(relativePath: string | string[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n writeJson(relativePath: string, json: object) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n run(command: string\n/* */\n/* */\n \n ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n outputFrom(command: string\n/* */\n/* */\n \n ) {\n/* */\n/* */\n return (void 0);\n }\n\n remove(relativePath: string, exactPath = true) {\n/* */\n/* */\n return (void 0);\n }\n\n linkNodeModulesTo(proj: Partial<BaseProject>) {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n reinstallNodeModules(forcerRemoveNodeModules = false) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n async assignFreePort(startFrom: number = 4200, howManyFreePortsAfterThatPort: number = 0): Promise<number> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n}\n\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/base-project.ts","\n\nimport type { Project } from \"./project\";\n\nexport type EmptyProjectStructure = {\n includeContent?: boolean;\n relativePath: string;\n relativeLinkFrom?: string;\n};\n\nexport type ProjectBuild = { project: Project; appBuild: boolean; };\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/models.ts","\n\nexport * from './validators/validators';\n\nexport { HelpersAngular } from './for-browser/angular.helper';\n\n\nimport { HelpersFiredev as Base } from './helpers';\n\n/**\n * Firedev helpers\n */\nexport const Helpers = Base.Instance;\nexport * from './project';\nexport * from './base-project';\nexport * from './base-project-resolver';\nexport * from './models';\n\n\n ;({}); // @--end-of-file-for-module=tnp-helpers lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Helpers","takenPorts","Base"],"mappings":"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"}
@@ -3,6 +3,7 @@ import { Models } from 'tnp-models/browser';
3
3
  import { BaseProjectResolver } from './base-project-resolver';
4
4
  export declare class BaseProject<T = any> {
5
5
  static ins: BaseProjectResolver<BaseProject<any>>;
6
+ static sortGroupOfProject<T extends BaseProject<any> = BaseProject<any>>(projects: T[], resoveDepsArray: (proj: T) => string[], projNameToCompare: (proj: T) => string): T[];
6
7
  readonly ins: BaseProjectResolver<T>;
7
8
  /**
8
9
  * it do not need to be realt path
@@ -2,8 +2,18 @@
2
2
  export declare class HelpersArrayObj {
3
3
  from(s: string | string[]): string[];
4
4
  second(arr: any): any;
5
+ /**
6
+ * @deprecated
7
+ * use moveObjectBefore
8
+ */
5
9
  arrayMoveElementBefore<T = any>(arr: any[], a: any, b: any, prop?: keyof T): any[];
10
+ /**
11
+ * @deprecated
12
+ * use moveObjectAfter
13
+ */
6
14
  arrayMoveElementAfterB<T = any>(arr: any[], a: any, b: any, prop?: keyof T): any[];
15
+ moveObjectBefore<T = any>(array: T[], target: T, before: T): T[];
16
+ moveObjectAfter<T = any>(array: T[], target: T, after: T): T[];
7
17
  uniqArray<T = any>(array: any[], uniqueProperty?: (keyof T)): T[];
8
18
  sortKeys(obj: any): any;
9
19
  /**