@monorepolint/utils 0.6.0-alpha.4 → 0.6.0-alpha.6

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.
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>11/11</span>
28
+ <span class='fraction'>0/10</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/0</span>
35
+ <span class='fraction'>0/1</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/0</span>
42
+ <span class='fraction'>0/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>11/11</span>
49
+ <span class='fraction'>0/10</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line low'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -80,24 +80,24 @@
80
80
  <a name='L15'></a><a href='#L15'>15</a>
81
81
  <a name='L16'></a><a href='#L16'>16</a>
82
82
  <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
83
+ <a name='L18'></a><a href='#L18'>18</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
84
84
  <span class="cline-any cline-neutral">&nbsp;</span>
85
85
  <span class="cline-any cline-neutral">&nbsp;</span>
86
86
  <span class="cline-any cline-neutral">&nbsp;</span>
87
87
  <span class="cline-any cline-neutral">&nbsp;</span>
88
88
  <span class="cline-any cline-neutral">&nbsp;</span>
89
89
  <span class="cline-any cline-neutral">&nbsp;</span>
90
- <span class="cline-any cline-yes">1x</span>
91
- <span class="cline-any cline-yes">1x</span>
92
- <span class="cline-any cline-yes">1x</span>
93
- <span class="cline-any cline-yes">1x</span>
94
- <span class="cline-any cline-yes">1x</span>
95
- <span class="cline-any cline-yes">1x</span>
96
- <span class="cline-any cline-yes">1x</span>
97
- <span class="cline-any cline-yes">1x</span>
98
- <span class="cline-any cline-yes">1x</span>
99
- <span class="cline-any cline-yes">1x</span>
100
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*!
90
+ <span class="cline-any cline-neutral">&nbsp;</span>
91
+ <span class="cline-any cline-no">&nbsp;</span>
92
+ <span class="cline-any cline-no">&nbsp;</span>
93
+ <span class="cline-any cline-no">&nbsp;</span>
94
+ <span class="cline-any cline-no">&nbsp;</span>
95
+ <span class="cline-any cline-no">&nbsp;</span>
96
+ <span class="cline-any cline-no">&nbsp;</span>
97
+ <span class="cline-any cline-no">&nbsp;</span>
98
+ <span class="cline-any cline-no">&nbsp;</span>
99
+ <span class="cline-any cline-no">&nbsp;</span>
100
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >/*!<span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" ></span></span></span>
101
101
  * Copyright 2019 Palantir Technologies, Inc.
102
102
  *
103
103
  * Licensed under the MIT license. See LICENSE file in the project root for details.
@@ -105,15 +105,15 @@
105
105
  */
106
106
  &nbsp;
107
107
  import { Host } from "./Host.js";
108
- export function mutateJson&lt;T extends object&gt;(
109
- path: string,
110
- host: Host,
111
- mutator: (f: T) =&gt; T,
112
- ) {
113
- let file = host.readJson(path) as T;
114
- file = mutator(file);
115
- host.writeJson(path, file);
116
- }
108
+ <span class="cstat-no" title="statement not covered" >export function mutateJson&lt;T extends object&gt;(</span>
109
+ <span class="cstat-no" title="statement not covered" > path: string,</span>
110
+ <span class="cstat-no" title="statement not covered" > host: Host,</span>
111
+ <span class="cstat-no" title="statement not covered" > mutator: (f: T) =&gt; T,</span>
112
+ <span class="cstat-no" title="statement not covered" >) {</span>
113
+ <span class="cstat-no" title="statement not covered" > let file = host.readJson(path) as T;</span>
114
+ <span class="cstat-no" title="statement not covered" > file = mutator(file);</span>
115
+ <span class="cstat-no" title="statement not covered" > host.writeJson(path, file);</span>
116
+ <span class="cstat-no" title="statement not covered" >}</span>
117
117
  &nbsp;</pre></td></tr></table></pre>
118
118
 
119
119
  <div class='push'></div><!-- for sticky footer -->
@@ -121,7 +121,7 @@ export function mutateJson&lt;T extends object&gt;(
121
121
  <div class='footer quiet pad2 space-top1 center small'>
122
122
  Code coverage generated by
123
123
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
124
- at 2025-01-31T20:59:52.637Z
124
+ at 2025-11-07T18:00:40.821Z
125
125
  </div>
126
126
  <script src="prettify.js"></script>
127
127
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>6/6</span>
28
+ <span class='fraction'>0/6</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/0</span>
35
+ <span class='fraction'>0/1</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/0</span>
42
+ <span class='fraction'>0/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>6/6</span>
49
+ <span class='fraction'>0/6</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line low'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -75,30 +75,30 @@
75
75
  <a name='L10'></a><a href='#L10'>10</a>
76
76
  <a name='L11'></a><a href='#L11'>11</a>
77
77
  <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
78
+ <a name='L13'></a><a href='#L13'>13</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
79
79
  <span class="cline-any cline-neutral">&nbsp;</span>
80
80
  <span class="cline-any cline-neutral">&nbsp;</span>
81
81
  <span class="cline-any cline-neutral">&nbsp;</span>
82
82
  <span class="cline-any cline-neutral">&nbsp;</span>
83
83
  <span class="cline-any cline-neutral">&nbsp;</span>
84
84
  <span class="cline-any cline-neutral">&nbsp;</span>
85
- <span class="cline-any cline-yes">1x</span>
86
- <span class="cline-any cline-yes">1x</span>
87
- <span class="cline-any cline-yes">1x</span>
88
- <span class="cline-any cline-yes">1x</span>
89
- <span class="cline-any cline-yes">1x</span>
90
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*!
85
+ <span class="cline-any cline-no">&nbsp;</span>
86
+ <span class="cline-any cline-no">&nbsp;</span>
87
+ <span class="cline-any cline-no">&nbsp;</span>
88
+ <span class="cline-any cline-no">&nbsp;</span>
89
+ <span class="cline-any cline-no">&nbsp;</span>
90
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >/*!<span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" ></span></span></span>
91
91
  * Copyright 2022 Palantir Technologies, Inc.
92
92
  *
93
93
  * Licensed under the MIT license. See LICENSE file in the project root for details.
94
94
  *
95
95
  */
96
96
  &nbsp;
97
- export function nanosecondsToSanity(n: bigint, precision: number = 9) {
98
- return n / BigInt(1000000000) + "."
99
- + ("" + (n % BigInt(1000000000))).padStart(9, "0").substring(0, precision)
100
- + "s";
101
- }
97
+ <span class="cstat-no" title="statement not covered" >export function nanosecondsToSanity(n: bigint, precision: number = 9) {</span>
98
+ <span class="cstat-no" title="statement not covered" > return n / BigInt(1000000000) + "."</span>
99
+ <span class="cstat-no" title="statement not covered" > + ("" + (n % BigInt(1000000000))).padStart(9, "0").substring(0, precision)</span>
100
+ <span class="cstat-no" title="statement not covered" > + "s";</span>
101
+ <span class="cstat-no" title="statement not covered" >}</span>
102
102
  &nbsp;</pre></td></tr></table></pre>
103
103
 
104
104
  <div class='push'></div><!-- for sticky footer -->
@@ -106,7 +106,7 @@ export function nanosecondsToSanity(n: bigint, precision: number = 9) {
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at 2025-01-31T20:59:52.637Z
109
+ at 2025-11-07T18:00:40.821Z
110
110
  </div>
111
111
  <script src="prettify.js"></script>
112
112
  <script>
@@ -27,17 +27,31 @@ var addSorting = (function() {
27
27
  function onFilterInput() {
28
28
  const searchValue = document.getElementById('fileSearch').value;
29
29
  const rows = document.getElementsByTagName('tbody')[0].children;
30
+
31
+ // Try to create a RegExp from the searchValue. If it fails (invalid regex),
32
+ // it will be treated as a plain text search
33
+ let searchRegex;
34
+ try {
35
+ searchRegex = new RegExp(searchValue, 'i'); // 'i' for case-insensitive
36
+ } catch (error) {
37
+ searchRegex = null;
38
+ }
39
+
30
40
  for (let i = 0; i < rows.length; i++) {
31
41
  const row = rows[i];
32
- if (
33
- row.textContent
34
- .toLowerCase()
35
- .includes(searchValue.toLowerCase())
36
- ) {
37
- row.style.display = '';
42
+ let isMatch = false;
43
+
44
+ if (searchRegex) {
45
+ // If a valid regex was created, use it for matching
46
+ isMatch = searchRegex.test(row.textContent);
38
47
  } else {
39
- row.style.display = 'none';
48
+ // Otherwise, fall back to the original plain text search
49
+ isMatch = row.textContent
50
+ .toLowerCase()
51
+ .includes(searchValue.toLowerCase());
40
52
  }
53
+
54
+ row.style.display = isMatch ? '' : 'none';
41
55
  }
42
56
  }
43
57
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monorepolint/utils",
3
- "version": "0.6.0-alpha.4",
3
+ "version": "0.6.0-alpha.6",
4
4
  "author": "Eric L Anderson (https://github.com/ericanderson)",
5
5
  "contributors": [
6
6
  "Mac Lockard (https://github.com/maclockard)"
@@ -24,21 +24,20 @@
24
24
  "dependencies": {
25
25
  "find-packages": "^10.0.4",
26
26
  "find-up": "^7.0.0",
27
- "glob": "^10.3.12",
27
+ "glob": "^11.0.3",
28
28
  "micromatch": "^4.0.8",
29
29
  "read-yaml-file": "^2.1.0",
30
30
  "tslib": "^2.8.1"
31
31
  },
32
32
  "devDependencies": {
33
- "@types/glob": "^8.1.0",
34
33
  "@types/micromatch": "^4.0.9",
35
- "@types/node": "^18.18.14",
36
- "@typescript-eslint/eslint-plugin": "^8.20.0",
37
- "@typescript-eslint/parser": "^8.20.0",
38
- "eslint": "^9.18.0",
34
+ "@types/node": "^22.18.1",
35
+ "@typescript-eslint/eslint-plugin": "^8.43.0",
36
+ "@typescript-eslint/parser": "^8.43.0",
37
+ "eslint": "^9.35.0",
39
38
  "tslib": "^2.8.1",
40
- "tsup": "^8.3.5",
41
- "typescript": "^5.7.3"
39
+ "tsup": "^8.5.0",
40
+ "typescript": "^5.9.2"
42
41
  },
43
42
  "publishConfig": {
44
43
  "access": "public"
@@ -390,7 +390,15 @@ export class CachingHost implements Host {
390
390
  let node = this.#getNodeResolvingSymlinks(filePath); // canonicalizes for us
391
391
 
392
392
  if (!node) {
393
- return undefined;
393
+ // Match SimpleHost behavior by throwing ENOENT error
394
+ const error = new Error(
395
+ `ENOENT: no such file or directory, open '${filePath}'`,
396
+ ) as NodeJS.ErrnoException;
397
+ error.errno = -2;
398
+ error.code = "ENOENT";
399
+ error.syscall = "open";
400
+ error.path = filePath;
401
+ throw error;
394
402
  }
395
403
  assertNotType(node, "dir");
396
404
  assertNoTombstone(node);