@photostructure/fs-metadata 0.1.4 → 0.1.5

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 (268) hide show
  1. package/dist/index.cjs +1318 -0
  2. package/dist/index.mjs +1270 -0
  3. package/dist/types/array.d.ts +0 -1
  4. package/dist/types/async.d.ts +0 -1
  5. package/dist/types/cache.d.ts +0 -1
  6. package/dist/types/debuglog.d.ts +0 -1
  7. package/dist/types/defer.d.ts +0 -1
  8. package/dist/types/error.d.ts +0 -1
  9. package/dist/types/exports.d.ts +0 -1
  10. package/dist/types/fs.d.ts +0 -1
  11. package/dist/types/glob.d.ts +0 -1
  12. package/dist/types/hidden.d.ts +0 -1
  13. package/dist/types/index.d.ts +0 -1
  14. package/dist/types/linux/dev_disk.d.ts +0 -1
  15. package/dist/types/linux/mount_points.d.ts +0 -1
  16. package/dist/types/linux/mtab.d.ts +0 -1
  17. package/dist/types/mount_point.d.ts +0 -1
  18. package/dist/types/number.d.ts +0 -1
  19. package/dist/types/object.d.ts +0 -1
  20. package/dist/types/options.d.ts +0 -1
  21. package/dist/types/path.d.ts +0 -1
  22. package/dist/types/platform.d.ts +0 -1
  23. package/dist/types/random.d.ts +0 -1
  24. package/dist/types/remote_info.d.ts +0 -1
  25. package/dist/types/setup.d.ts +0 -1
  26. package/dist/types/string.d.ts +0 -1
  27. package/dist/types/string_enum.d.ts +0 -1
  28. package/dist/types/system_volume.d.ts +0 -1
  29. package/dist/types/types/native_bindings.d.ts +0 -1
  30. package/dist/types/unc.d.ts +0 -1
  31. package/dist/types/units.d.ts +0 -1
  32. package/dist/types/uuid.d.ts +0 -1
  33. package/dist/types/volume_health_status.d.ts +0 -1
  34. package/dist/types/volume_metadata.d.ts +0 -1
  35. package/jest.config.cjs +33 -0
  36. package/package.json +26 -36
  37. package/prebuilds/darwin-arm64/@photostructure+fs-metadata.glibc.node +0 -0
  38. package/prebuilds/linux-arm64/@photostructure+fs-metadata.musl.node +0 -0
  39. package/prebuilds/linux-x64/@photostructure+fs-metadata.glibc.node +0 -0
  40. package/prebuilds/linux-x64/@photostructure+fs-metadata.musl.node +0 -0
  41. package/prebuilds/win32-x64/@photostructure+fs-metadata.glibc.node +0 -0
  42. package/src/darwin/volume_metadata.cpp +26 -12
  43. package/src/linux/volume_metadata.cpp +21 -4
  44. package/dist/cjs/array.cjs +0 -57
  45. package/dist/cjs/array.js.map +0 -1
  46. package/dist/cjs/async.cjs +0 -116
  47. package/dist/cjs/async.js.map +0 -1
  48. package/dist/cjs/cache.cjs +0 -28
  49. package/dist/cjs/cache.js.map +0 -1
  50. package/dist/cjs/debuglog.cjs +0 -35
  51. package/dist/cjs/debuglog.js.map +0 -1
  52. package/dist/cjs/defer.cjs +0 -26
  53. package/dist/cjs/defer.js.map +0 -1
  54. package/dist/cjs/error.cjs +0 -63
  55. package/dist/cjs/error.js.map +0 -1
  56. package/dist/cjs/exports.cjs +0 -14
  57. package/dist/cjs/exports.js.map +0 -1
  58. package/dist/cjs/fs.cjs +0 -81
  59. package/dist/cjs/fs.js.map +0 -1
  60. package/dist/cjs/glob.cjs +0 -117
  61. package/dist/cjs/glob.js.map +0 -1
  62. package/dist/cjs/hidden.cjs +0 -163
  63. package/dist/cjs/hidden.js.map +0 -1
  64. package/dist/cjs/index.cjs +0 -23
  65. package/dist/cjs/index.cjs.map +0 -1
  66. package/dist/cjs/linux/dev_disk.cjs +0 -66
  67. package/dist/cjs/linux/dev_disk.js.map +0 -1
  68. package/dist/cjs/linux/mount_points.cjs +0 -81
  69. package/dist/cjs/linux/mount_points.js.map +0 -1
  70. package/dist/cjs/linux/mtab.cjs +0 -88
  71. package/dist/cjs/linux/mtab.js.map +0 -1
  72. package/dist/cjs/mount_point.cjs +0 -67
  73. package/dist/cjs/mount_point.js.map +0 -1
  74. package/dist/cjs/number.cjs +0 -41
  75. package/dist/cjs/number.js.map +0 -1
  76. package/dist/cjs/object.cjs +0 -59
  77. package/dist/cjs/object.js.map +0 -1
  78. package/dist/cjs/options.cjs +0 -115
  79. package/dist/cjs/options.js.map +0 -1
  80. package/dist/cjs/path.cjs +0 -50
  81. package/dist/cjs/path.js.map +0 -1
  82. package/dist/cjs/platform.cjs +0 -10
  83. package/dist/cjs/platform.js.map +0 -1
  84. package/dist/cjs/random.cjs +0 -43
  85. package/dist/cjs/random.js.map +0 -1
  86. package/dist/cjs/remote_info.cjs +0 -123
  87. package/dist/cjs/remote_info.js.map +0 -1
  88. package/dist/cjs/setup.cjs +0 -47
  89. package/dist/cjs/setup.js.map +0 -1
  90. package/dist/cjs/string.cjs +0 -89
  91. package/dist/cjs/string.js.map +0 -1
  92. package/dist/cjs/string_enum.cjs +0 -27
  93. package/dist/cjs/string_enum.js.map +0 -1
  94. package/dist/cjs/system_volume.cjs +0 -44
  95. package/dist/cjs/system_volume.js.map +0 -1
  96. package/dist/cjs/types/native_bindings.cjs +0 -4
  97. package/dist/cjs/types/native_bindings.js.map +0 -1
  98. package/dist/cjs/unc.cjs +0 -52
  99. package/dist/cjs/unc.js.map +0 -1
  100. package/dist/cjs/units.cjs +0 -35
  101. package/dist/cjs/units.js.map +0 -1
  102. package/dist/cjs/uuid.cjs +0 -25
  103. package/dist/cjs/uuid.js.map +0 -1
  104. package/dist/cjs/volume_health_status.cjs +0 -50
  105. package/dist/cjs/volume_health_status.js.map +0 -1
  106. package/dist/cjs/volume_metadata.cjs +0 -169
  107. package/dist/cjs/volume_metadata.js.map +0 -1
  108. package/dist/esm/array.js +0 -50
  109. package/dist/esm/array.js.map +0 -1
  110. package/dist/esm/async.js +0 -109
  111. package/dist/esm/async.js.map +0 -1
  112. package/dist/esm/cache.js +0 -25
  113. package/dist/esm/cache.js.map +0 -1
  114. package/dist/esm/debuglog.js +0 -30
  115. package/dist/esm/debuglog.js.map +0 -1
  116. package/dist/esm/defer.js +0 -23
  117. package/dist/esm/defer.js.map +0 -1
  118. package/dist/esm/error.js +0 -58
  119. package/dist/esm/error.js.map +0 -1
  120. package/dist/esm/exports.js +0 -4
  121. package/dist/esm/exports.js.map +0 -1
  122. package/dist/esm/fs.js +0 -73
  123. package/dist/esm/fs.js.map +0 -1
  124. package/dist/esm/glob.js +0 -113
  125. package/dist/esm/glob.js.map +0 -1
  126. package/dist/esm/hidden.js +0 -155
  127. package/dist/esm/hidden.js.map +0 -1
  128. package/dist/esm/index.js +0 -7
  129. package/dist/esm/index.js.map +0 -1
  130. package/dist/esm/linux/dev_disk.js +0 -61
  131. package/dist/esm/linux/dev_disk.js.map +0 -1
  132. package/dist/esm/linux/mount_points.js +0 -77
  133. package/dist/esm/linux/mount_points.js.map +0 -1
  134. package/dist/esm/linux/mtab.js +0 -82
  135. package/dist/esm/linux/mtab.js.map +0 -1
  136. package/dist/esm/mount_point.js +0 -63
  137. package/dist/esm/mount_point.js.map +0 -1
  138. package/dist/esm/number.js +0 -32
  139. package/dist/esm/number.js.map +0 -1
  140. package/dist/esm/object.js +0 -52
  141. package/dist/esm/object.js.map +0 -1
  142. package/dist/esm/options.js +0 -111
  143. package/dist/esm/options.js.map +0 -1
  144. package/dist/esm/path.js +0 -44
  145. package/dist/esm/path.js.map +0 -1
  146. package/dist/esm/platform.js +0 -7
  147. package/dist/esm/platform.js.map +0 -1
  148. package/dist/esm/random.js +0 -37
  149. package/dist/esm/random.js.map +0 -1
  150. package/dist/esm/remote_info.js +0 -116
  151. package/dist/esm/remote_info.js.map +0 -1
  152. package/dist/esm/setup.js +0 -41
  153. package/dist/esm/setup.js.map +0 -1
  154. package/dist/esm/string.js +0 -78
  155. package/dist/esm/string.js.map +0 -1
  156. package/dist/esm/string_enum.js +0 -24
  157. package/dist/esm/string_enum.js.map +0 -1
  158. package/dist/esm/system_volume.js +0 -40
  159. package/dist/esm/system_volume.js.map +0 -1
  160. package/dist/esm/types/native_bindings.js +0 -3
  161. package/dist/esm/types/native_bindings.js.map +0 -1
  162. package/dist/esm/unc.js +0 -49
  163. package/dist/esm/unc.js.map +0 -1
  164. package/dist/esm/units.js +0 -31
  165. package/dist/esm/units.js.map +0 -1
  166. package/dist/esm/uuid.js +0 -22
  167. package/dist/esm/uuid.js.map +0 -1
  168. package/dist/esm/volume_health_status.js +0 -46
  169. package/dist/esm/volume_health_status.js.map +0 -1
  170. package/dist/esm/volume_metadata.js +0 -164
  171. package/dist/esm/volume_metadata.js.map +0 -1
  172. package/dist/types/array.d.ts.map +0 -1
  173. package/dist/types/array.js +0 -50
  174. package/dist/types/array.js.map +0 -1
  175. package/dist/types/async.d.ts.map +0 -1
  176. package/dist/types/async.js +0 -109
  177. package/dist/types/async.js.map +0 -1
  178. package/dist/types/cache.d.ts.map +0 -1
  179. package/dist/types/cache.js +0 -25
  180. package/dist/types/cache.js.map +0 -1
  181. package/dist/types/debuglog.d.ts.map +0 -1
  182. package/dist/types/debuglog.js +0 -30
  183. package/dist/types/debuglog.js.map +0 -1
  184. package/dist/types/defer.d.ts.map +0 -1
  185. package/dist/types/defer.js +0 -23
  186. package/dist/types/defer.js.map +0 -1
  187. package/dist/types/error.d.ts.map +0 -1
  188. package/dist/types/error.js +0 -58
  189. package/dist/types/error.js.map +0 -1
  190. package/dist/types/exports.d.ts.map +0 -1
  191. package/dist/types/exports.js +0 -4
  192. package/dist/types/exports.js.map +0 -1
  193. package/dist/types/fs.d.ts.map +0 -1
  194. package/dist/types/fs.js +0 -73
  195. package/dist/types/fs.js.map +0 -1
  196. package/dist/types/glob.d.ts.map +0 -1
  197. package/dist/types/glob.js +0 -113
  198. package/dist/types/glob.js.map +0 -1
  199. package/dist/types/hidden.d.ts.map +0 -1
  200. package/dist/types/hidden.js +0 -155
  201. package/dist/types/hidden.js.map +0 -1
  202. package/dist/types/index.d.ts.map +0 -1
  203. package/dist/types/index.js +0 -7
  204. package/dist/types/index.js.map +0 -1
  205. package/dist/types/linux/dev_disk.d.ts.map +0 -1
  206. package/dist/types/linux/dev_disk.js +0 -61
  207. package/dist/types/linux/dev_disk.js.map +0 -1
  208. package/dist/types/linux/mount_points.d.ts.map +0 -1
  209. package/dist/types/linux/mount_points.js +0 -77
  210. package/dist/types/linux/mount_points.js.map +0 -1
  211. package/dist/types/linux/mtab.d.ts.map +0 -1
  212. package/dist/types/linux/mtab.js +0 -82
  213. package/dist/types/linux/mtab.js.map +0 -1
  214. package/dist/types/mount_point.d.ts.map +0 -1
  215. package/dist/types/mount_point.js +0 -63
  216. package/dist/types/mount_point.js.map +0 -1
  217. package/dist/types/number.d.ts.map +0 -1
  218. package/dist/types/number.js +0 -32
  219. package/dist/types/number.js.map +0 -1
  220. package/dist/types/object.d.ts.map +0 -1
  221. package/dist/types/object.js +0 -52
  222. package/dist/types/object.js.map +0 -1
  223. package/dist/types/options.d.ts.map +0 -1
  224. package/dist/types/options.js +0 -111
  225. package/dist/types/options.js.map +0 -1
  226. package/dist/types/path.d.ts.map +0 -1
  227. package/dist/types/path.js +0 -44
  228. package/dist/types/path.js.map +0 -1
  229. package/dist/types/platform.d.ts.map +0 -1
  230. package/dist/types/platform.js +0 -7
  231. package/dist/types/platform.js.map +0 -1
  232. package/dist/types/random.d.ts.map +0 -1
  233. package/dist/types/random.js +0 -37
  234. package/dist/types/random.js.map +0 -1
  235. package/dist/types/remote_info.d.ts.map +0 -1
  236. package/dist/types/remote_info.js +0 -116
  237. package/dist/types/remote_info.js.map +0 -1
  238. package/dist/types/setup.d.ts.map +0 -1
  239. package/dist/types/setup.js +0 -41
  240. package/dist/types/setup.js.map +0 -1
  241. package/dist/types/string.d.ts.map +0 -1
  242. package/dist/types/string.js +0 -78
  243. package/dist/types/string.js.map +0 -1
  244. package/dist/types/string_enum.d.ts.map +0 -1
  245. package/dist/types/string_enum.js +0 -24
  246. package/dist/types/string_enum.js.map +0 -1
  247. package/dist/types/system_volume.d.ts.map +0 -1
  248. package/dist/types/system_volume.js +0 -40
  249. package/dist/types/system_volume.js.map +0 -1
  250. package/dist/types/types/native_bindings.d.ts.map +0 -1
  251. package/dist/types/types/native_bindings.js +0 -3
  252. package/dist/types/types/native_bindings.js.map +0 -1
  253. package/dist/types/unc.d.ts.map +0 -1
  254. package/dist/types/unc.js +0 -49
  255. package/dist/types/unc.js.map +0 -1
  256. package/dist/types/units.d.ts.map +0 -1
  257. package/dist/types/units.js +0 -31
  258. package/dist/types/units.js.map +0 -1
  259. package/dist/types/uuid.d.ts.map +0 -1
  260. package/dist/types/uuid.js +0 -22
  261. package/dist/types/uuid.js.map +0 -1
  262. package/dist/types/volume_health_status.d.ts.map +0 -1
  263. package/dist/types/volume_health_status.js +0 -46
  264. package/dist/types/volume_health_status.js.map +0 -1
  265. package/dist/types/volume_metadata.d.ts.map +0 -1
  266. package/dist/types/volume_metadata.js +0 -164
  267. package/dist/types/volume_metadata.js.map +0 -1
  268. package/scripts/fix-cjs.mjs +0 -35
@@ -1,52 +0,0 @@
1
- // src/object.js
2
- import { isNotBlank, isString } from "./string.js";
3
- /**
4
- * Check if a value is an object
5
- */
6
- export function isObject(value) {
7
- // typeof null is 'object', so we need to check for that case YAY JAVASCRIPT
8
- return value != null && typeof value === "object" && !Array.isArray(value);
9
- }
10
- /**
11
- * Map a value to another value, or undefined if the value is undefined
12
- */
13
- export function map(obj, fn) {
14
- return obj == null ? undefined : fn(obj);
15
- }
16
- /**
17
- * Omit the specified fields from an object
18
- */
19
- export function omit(obj, ...keys) {
20
- const result = {};
21
- const keysSet = new Set(keys);
22
- // OH THE TYPING HUGEMANATEE
23
- for (const key of Object.keys(obj)) {
24
- if (!keysSet.has(key)) {
25
- result[key] = obj[key];
26
- }
27
- }
28
- return result;
29
- }
30
- /**
31
- * Pick the specified fields from an object
32
- */
33
- export function pick(obj, ...keys) {
34
- const copy = {};
35
- for (const key of keys) {
36
- copy[key] = obj[key];
37
- }
38
- return copy;
39
- }
40
- export function compactValues(obj) {
41
- const result = {};
42
- if (obj == null || !isObject(obj))
43
- return {};
44
- for (const [key, value] of Object.entries(obj)) {
45
- // skip blank strings and nullish values:
46
- if (value != null && (!isString(value) || isNotBlank(value))) {
47
- result[key] = value;
48
- }
49
- }
50
- return result;
51
- }
52
- //# sourceMappingURL=object.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../../src/object.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAEhB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,4EAA4E;IAC5E,OAAO,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CACjB,GAAkB,EAClB,EAAmB;IAEnB,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAClB,GAAM,EACN,GAAG,IAAS;IAEZ,MAAM,MAAM,GAAG,EAAgB,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAE9B,4BAA4B;IAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAA4B,EAAE,CAAC;QAC9D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAmB,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AACD;;GAEG;AACH,MAAM,UAAU,IAAI,CAClB,GAAM,EACN,GAAG,IAAS;IAEZ,MAAM,IAAI,GAAG,EAAgB,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AACD,MAAM,UAAU,aAAa,CAC3B,GAAkB;IAElB,MAAM,MAAM,GAAG,EAAgB,CAAC;IAChC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,yCAAyC;QACzC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,GAAc,CAAC,GAAG,KAAmB,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,111 +0,0 @@
1
- // src/options.ts
2
- import { availableParallelism } from "node:os";
3
- import { compactValues, isObject } from "./object.js";
4
- import { isWindows } from "./platform.js";
5
- /**
6
- * Default timeout in milliseconds for {@link Options.timeoutMs}.
7
- *
8
- * Note that this timeout may be insufficient for some devices, like spun-down
9
- * optical drives or network shares that need to spin up or reconnect.
10
- */
11
- export const TimeoutMsDefault = 5_000;
12
- /**
13
- * System paths and globs that indicate system volumes
14
- */
15
- export const SystemPathPatternsDefault = [
16
- "/boot",
17
- "/boot/efi",
18
- "/dev",
19
- "/dev/**",
20
- "/proc/**",
21
- "/run",
22
- "/run/credentials/**",
23
- "/run/lock",
24
- "/run/snapd/**",
25
- "/run/user/*/doc",
26
- "/run/user/*/gvfs",
27
- "/snap/**",
28
- "/sys/**",
29
- // windows for linux:
30
- "/mnt/wslg/distro",
31
- "/mnt/wslg/doc",
32
- "/mnt/wslg/versions.txt",
33
- "/usr/lib/wsl/drivers",
34
- // MacOS stuff:
35
- "/private/var/vm", // macOS swap
36
- "/System/Volumes/Hardware",
37
- "/System/Volumes/iSCPreboot",
38
- "/System/Volumes/Preboot",
39
- "/System/Volumes/Recovery",
40
- "/System/Volumes/Reserved",
41
- "/System/Volumes/Update",
42
- "/System/Volumes/VM",
43
- "/System/Volumes/xarts",
44
- ];
45
- /**
46
- * Filesystem types that indicate system volumes
47
- */
48
- export const SystemFsTypesDefault = new Set([
49
- "autofs",
50
- "binfmt_misc",
51
- "cgroup",
52
- "cgroup2",
53
- "configfs",
54
- "debugfs",
55
- "devpts",
56
- "devtmpfs",
57
- "efivarfs",
58
- "fusectl",
59
- "fuse.snapfuse",
60
- "hugetlbfs",
61
- "mqueue",
62
- "none",
63
- "proc",
64
- "pstore",
65
- "rootfs",
66
- "securityfs",
67
- "snap*",
68
- "squashfs",
69
- "sysfs",
70
- "tmpfs",
71
- ]);
72
- export const LinuxMountTablePathsDefault = [
73
- "/proc/self/mounts",
74
- "/proc/mounts",
75
- "/etc/mtab",
76
- ];
77
- /**
78
- * Should {@link getAllVolumeMetadata()} include system volumes by
79
- * default?
80
- */
81
- export const IncludeSystemVolumesDefault = isWindows;
82
- /**
83
- * Default {@link Options} object.
84
- *
85
- * @see {@link optionsWithDefaults} for creating an options object with default values
86
- */
87
- export const OptionsDefault = {
88
- timeoutMs: TimeoutMsDefault,
89
- maxConcurrency: availableParallelism(),
90
- systemPathPatterns: [...SystemPathPatternsDefault],
91
- systemFsTypes: new Set(SystemFsTypesDefault),
92
- linuxMountTablePaths: LinuxMountTablePathsDefault,
93
- includeSystemVolumes: IncludeSystemVolumesDefault,
94
- };
95
- /**
96
- * Create an {@link Options} object using default values from
97
- * {@link OptionsDefault} for missing fields.
98
- */
99
- export function optionsWithDefaults(overrides = {}) {
100
- if (!isObject(overrides)) {
101
- throw new TypeError("options(): expected an object, got " +
102
- typeof overrides +
103
- ": " +
104
- JSON.stringify(overrides));
105
- }
106
- return {
107
- ...OptionsDefault,
108
- ...compactValues(overrides),
109
- };
110
- }
111
- //# sourceMappingURL=options.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/options.ts"],"names":[],"mappings":"AAAA,iBAAiB;AAEjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAuD1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAc,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,OAAO;IACP,WAAW;IACX,MAAM;IACN,SAAS;IACT,UAAU;IACV,MAAM;IACN,qBAAqB;IACrB,WAAW;IACX,eAAe;IACf,iBAAiB;IACjB,kBAAkB;IAClB,UAAU;IACV,SAAS;IAET,qBAAqB;IACrB,kBAAkB;IAClB,eAAe;IACf,wBAAwB;IACxB,sBAAsB;IAEtB,eAAe;IACf,iBAAiB,EAAE,aAAa;IAChC,0BAA0B;IAC1B,4BAA4B;IAC5B,yBAAyB;IACzB,0BAA0B;IAC1B,0BAA0B;IAC1B,wBAAwB;IACxB,oBAAoB;IACpB,uBAAuB;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IAC1C,QAAQ;IACR,aAAa;IACb,QAAQ;IACR,SAAS;IACT,UAAU;IACV,SAAS;IACT,QAAQ;IACR,UAAU;IACV,UAAU;IACV,SAAS;IACT,eAAe;IACf,WAAW;IACX,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,OAAO;IACP,UAAU;IACV,OAAO;IACP,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,mBAAmB;IACnB,cAAc;IACd,WAAW;CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC;AAErD;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAY;IACrC,SAAS,EAAE,gBAAgB;IAC3B,cAAc,EAAE,oBAAoB,EAAE;IACtC,kBAAkB,EAAE,CAAC,GAAG,yBAAyB,CAAC;IAClD,aAAa,EAAE,IAAI,GAAG,CAAC,oBAAoB,CAAC;IAC5C,oBAAoB,EAAE,2BAA2B;IACjD,oBAAoB,EAAE,2BAA2B;CACzC,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAwB,EAAE;IAE1B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,SAAS,CACjB,qCAAqC;YACnC,OAAO,SAAS;YAChB,IAAI;YACJ,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAC5B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,cAAc;QACjB,GAAI,aAAa,CAAC,SAAS,CAAO;KACnC,CAAC;AACJ,CAAC"}
package/dist/esm/path.js DELETED
@@ -1,44 +0,0 @@
1
- // src/path.ts
2
- import { dirname, resolve } from "node:path";
3
- import { isWindows } from "./platform.js";
4
- import { isBlank } from "./string.js";
5
- export function normalizePath(mountPoint) {
6
- if (isBlank(mountPoint))
7
- return undefined;
8
- const result = isWindows
9
- ? normalizeWindowsPath(mountPoint)
10
- : normalizePosixPath(mountPoint);
11
- // Make sure the native code doesn't see anything weird:
12
- return result != null ? resolve(result) : undefined;
13
- }
14
- /**
15
- * Normalizes a Linux or macOS mount point by removing any trailing slashes.
16
- * This is a no-op for root mount points.
17
- */
18
- export function normalizePosixPath(mountPoint) {
19
- return isBlank(mountPoint)
20
- ? undefined
21
- : mountPoint === "/"
22
- ? mountPoint
23
- : mountPoint.replace(/\/+$/, "");
24
- }
25
- /**
26
- * Normalizes a Windows mount point by ensuring drive letters end with a
27
- * backslash.
28
- */
29
- export function normalizeWindowsPath(mountPoint) {
30
- // Terrible things happen if we give syscalls "C:" instead of "C:\"
31
- return /^[a-z]:$/i.test(mountPoint)
32
- ? mountPoint.toUpperCase() + "\\"
33
- : mountPoint;
34
- }
35
- /**
36
- * @return true if `path` is the root directory--this is platform-specific. Only
37
- * "/" on linux/macOS is considered a root directory. On Windows, the root
38
- * directory is a drive letter followed by a colon, e.g. "C:\".
39
- */
40
- export function isRootDirectory(path) {
41
- const n = normalizePath(path);
42
- return n == null ? false : isWindows ? dirname(n) === n : n === "/";
43
- }
44
- //# sourceMappingURL=path.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/path.ts"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,UAAU,aAAa,CAC3B,UAA8B;IAE9B,IAAI,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IAE1C,MAAM,MAAM,GAAG,SAAS;QACtB,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC;QAClC,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAEnC,wDAAwD;IACxD,OAAO,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAA8B;IAE9B,OAAO,OAAO,CAAC,UAAU,CAAC;QACxB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,UAAU,KAAK,GAAG;YAClB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,mEAAmE;IAEnE,OAAO,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;QACjC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,IAAI;QACjC,CAAC,CAAC,UAAU,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACtE,CAAC"}
@@ -1,7 +0,0 @@
1
- // src/platform.ts
2
- import { platform } from "node:os";
3
- const p = platform();
4
- export const isLinux = p === "linux";
5
- export const isWindows = p === "win32";
6
- export const isMacOS = p === "darwin";
7
- //# sourceMappingURL=platform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAElB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;AAErB,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAK,OAAO,CAAC;AACrC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAK,OAAO,CAAC;AACvC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAK,QAAQ,CAAC"}
@@ -1,37 +0,0 @@
1
- // src/random.ts
2
- import { randomInt } from "node:crypto";
3
- const CharCode_a = "a".charCodeAt(0);
4
- /**
5
- * @return a random character `[a-z]`
6
- */
7
- export function randomLetter() {
8
- return String.fromCharCode(CharCode_a + randomInt(0, 26));
9
- }
10
- export function randomLetters(length) {
11
- return Array.from({ length }, randomLetter).join("");
12
- }
13
- /**
14
- * Shuffle an array using the Fisher-Yates (Knuth) algorithm.
15
- * @param a The array to shuffle
16
- * @returns A shallow shuffled copy of `a`
17
- */
18
- export function shuffle(a) {
19
- if (a.length <= 1)
20
- return a;
21
- a = [...a]; // Copy the array
22
- for (let i = a.length - 1; i > 0; i--) {
23
- // Pick a random index from 0 to i
24
- const j = Math.floor(Math.random() * (i + 1));
25
- // Swap elements at indices i and j
26
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
27
- [a[i], a[j]] = [a[j], a[i]];
28
- }
29
- return a;
30
- }
31
- export function pickRandom(a) {
32
- if (a == null || a.length === 0) {
33
- throw new Error("Cannot pick from an empty array");
34
- }
35
- return a[randomInt(0, a.length)];
36
- }
37
- //# sourceMappingURL=random.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"random.js","sourceRoot":"","sources":["../../src/random.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAEhB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACrC;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAI,CAAM;IAC/B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC5B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,kCAAkC;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,mCAAmC;QACnC,oEAAoE;QACpE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AACD,MAAM,UAAU,UAAU,CAAI,CAAM;IAClC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAM,CAAC;AACxC,CAAC"}
@@ -1,116 +0,0 @@
1
- // src/remote_info.ts
2
- import { debug } from "./debuglog.js";
3
- import { compactValues, isObject } from "./object.js";
4
- import { isWindows } from "./platform.js";
5
- import { isBlank, isNotBlank } from "./string.js";
6
- export function isRemoteInfo(obj) {
7
- if (!isObject(obj))
8
- return false;
9
- const { remoteHost, remoteShare } = obj;
10
- return isNotBlank(remoteHost) && isNotBlank(remoteShare);
11
- }
12
- const NETWORK_FS_TYPES = new Set([
13
- "9p",
14
- "afp",
15
- "afs",
16
- "beegfs",
17
- "ceph",
18
- "cifs",
19
- "ftp",
20
- "fuse.cephfs",
21
- "fuse.glusterfs",
22
- "fuse.sshfs",
23
- "fuse",
24
- "gfs2",
25
- "glusterfs",
26
- "lustre",
27
- "ncpfs",
28
- "nfs",
29
- "nfs4",
30
- "smb",
31
- "smbfs",
32
- "sshfs",
33
- "webdav",
34
- ]);
35
- export function normalizeProtocol(protocol) {
36
- return (protocol ?? "").toLowerCase().replace(/:$/, "");
37
- }
38
- export function isRemoteFsType(fstype) {
39
- return isNotBlank(fstype) && NETWORK_FS_TYPES.has(normalizeProtocol(fstype));
40
- }
41
- export function parseURL(s) {
42
- try {
43
- return isBlank(s) ? undefined : new URL(s);
44
- }
45
- catch {
46
- return;
47
- }
48
- }
49
- export function extractRemoteInfo(fsSpec) {
50
- if (fsSpec == null || isBlank(fsSpec))
51
- return;
52
- if (isWindows) {
53
- fsSpec = fsSpec.replace(/\\/g, "/");
54
- }
55
- const url = parseURL(fsSpec);
56
- if (url?.protocol === "file:") {
57
- return {
58
- remote: false,
59
- uri: fsSpec,
60
- };
61
- }
62
- const patterns = [
63
- // CIFS/SMB pattern: //hostname/share or //user@host/share
64
- {
65
- regex: /^\/\/(?:(?<remoteUser>[^/@]+)@)?(?<remoteHost>[^/@]+)\/(?<remoteShare>.+)$/,
66
- },
67
- // NFS pattern: hostname:/share
68
- {
69
- protocol: "nfs",
70
- regex: /^(?<remoteHost>[^:]+):\/(?!\/)(?<remoteShare>.+)$/,
71
- },
72
- ];
73
- for (const { protocol, regex } of patterns) {
74
- const o = compactValues({
75
- protocol,
76
- remote: true,
77
- ...(fsSpec.match(regex)?.groups ?? {}),
78
- });
79
- if (isRemoteInfo(o)) {
80
- debug("[extractRemoteInfo] matched pattern: %o", o);
81
- return o;
82
- }
83
- }
84
- // Let's try URL last, as nfs mounts are URI-ish
85
- try {
86
- // try to parse fsSpec as a uri:
87
- const parsed = new URL(fsSpec);
88
- if (parsed != null) {
89
- debug("[extractRemoteInfo] parsed URL: %o", parsed);
90
- const protocol = normalizeProtocol(parsed.protocol);
91
- if (!isRemoteFsType(protocol)) {
92
- // don't set remoteUser, remoteHost, or remoteShare, it's not remote!
93
- return {
94
- uri: fsSpec,
95
- remote: false,
96
- };
97
- }
98
- else {
99
- return compactValues({
100
- uri: fsSpec,
101
- protocol,
102
- remote: true,
103
- remoteUser: parsed.username,
104
- remoteHost: parsed.hostname,
105
- // URL pathname includes leading slash:
106
- remoteShare: parsed.pathname.replace(/^\//, ""),
107
- });
108
- }
109
- }
110
- }
111
- catch {
112
- // ignore
113
- }
114
- return;
115
- }
116
- //# sourceMappingURL=remote_info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remote_info.js","sourceRoot":"","sources":["../../src/remote_info.ts"],"names":[],"mappings":"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"}
package/dist/esm/setup.js DELETED
@@ -1,41 +0,0 @@
1
- // src/exports.ts
2
- import NodeGypBuild from "node-gyp-build";
3
- import { debug, debugLogContext, isDebugEnabled } from "./debuglog.js";
4
- import { defer } from "./defer.js";
5
- import { findAncestorDir } from "./fs.js";
6
- import { getHiddenMetadata, isHidden, isHiddenRecursive, setHidden, } from "./hidden.js";
7
- import { getVolumeMountPoints, } from "./mount_point.js";
8
- import { optionsWithDefaults } from "./options.js";
9
- import { getAllVolumeMetadata, getVolumeMetadata } from "./volume_metadata.js";
10
- export function setup(dirname) {
11
- const nativeFn = defer(async () => {
12
- const start = Date.now();
13
- try {
14
- const dir = await findAncestorDir(dirname, "binding.gyp");
15
- if (dir == null) {
16
- throw new Error("Could not find bindings.gyp in any ancestor directory of " + dirname);
17
- }
18
- const bindings = NodeGypBuild(dir);
19
- bindings.setDebugLogging(isDebugEnabled());
20
- bindings.setDebugPrefix(debugLogContext() + ":native");
21
- return bindings;
22
- }
23
- catch (error) {
24
- debug("Loading native bindings failed: %s", error);
25
- throw error;
26
- }
27
- finally {
28
- debug(`Native bindings took %d ms to load`, Date.now() - start);
29
- }
30
- });
31
- return {
32
- getVolumeMountPoints: (opts = {}) => getVolumeMountPoints(optionsWithDefaults(opts), nativeFn),
33
- getVolumeMetadata: (mountPoint, opts = {}) => getVolumeMetadata({ ...optionsWithDefaults(opts), mountPoint }, nativeFn),
34
- getAllVolumeMetadata: (opts = {}) => getAllVolumeMetadata(optionsWithDefaults(opts), nativeFn),
35
- isHidden: (pathname) => isHidden(pathname, nativeFn),
36
- isHiddenRecursive: (pathname) => isHiddenRecursive(pathname, nativeFn),
37
- getHiddenMetadata: (pathname) => getHiddenMetadata(pathname, nativeFn),
38
- setHidden: (pathname, hidden, method = "auto") => setHidden(pathname, hidden, method, nativeFn),
39
- };
40
- }
41
- //# sourceMappingURL=setup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/setup.ts"],"names":[],"mappings":"AAAA,iBAAiB;AAEjB,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EACL,iBAAiB,EAEjB,QAAQ,EACR,iBAAiB,EACjB,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,GAErB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,MAAM,QAAQ,GAAG,KAAK,CAA0B,KAAK,IAAI,EAAE;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC1D,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CACb,2DAA2D,GAAG,OAAO,CACtE,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAmB,CAAC;YACrD,QAAQ,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3C,QAAQ,CAAC,cAAc,CAAC,eAAe,EAAE,GAAG,SAAS,CAAC,CAAC;YACvD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,oCAAoC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,oBAAoB,EAAE,CAAC,OAA4C,EAAE,EAAE,EAAE,CACvE,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;QAE3D,iBAAiB,EAAE,CAAC,UAAkB,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,CACnD,iBAAiB,CAAC,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC;QAE3E,oBAAoB,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAClC,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;QAE3D,QAAQ,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAE5D,iBAAiB,EAAE,CAAC,QAAgB,EAAE,EAAE,CACtC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAEvC,iBAAiB,EAAE,CAAC,QAAgB,EAAE,EAAE,CACtC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAEvC,SAAS,EAAE,CACT,QAAgB,EAChB,MAAe,EACf,SAAqB,MAAM,EAC3B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;KAC1C,CAAC;AACb,CAAC"}
@@ -1,78 +0,0 @@
1
- // src/string.ts
2
- export function isString(input) {
3
- return typeof input === "string";
4
- }
5
- export function toS(input) {
6
- return isString(input) ? input : input == null ? "" : String(input);
7
- }
8
- /**
9
- * @return true iff the input is a string and has at least one non-whitespace character
10
- */
11
- export function isNotBlank(input) {
12
- return typeof input === "string" && input.trim().length > 0;
13
- }
14
- /**
15
- * @return true iff the input is not a string or only has non-whitespace characters
16
- */
17
- export function isBlank(input) {
18
- return !isNotBlank(input);
19
- }
20
- export function toNotBlank(input) {
21
- return isNotBlank(input) ? input : undefined;
22
- }
23
- /**
24
- * Decodes a string containing octal (\000-\377) and/or hexadecimal
25
- * (\x00-\xFF) escape sequences
26
- * @param input The string containing escape sequences to decode
27
- * @returns The decoded string with escape sequences converted to their
28
- * corresponding characters
29
- * @throws Error if an invalid escape sequence is encountered
30
- */
31
- export function decodeEscapeSequences(input) {
32
- const escapeRegex = /\\(?:([0-7]{2,6})|x([0-9a-fA-F]{2,4}))/g;
33
- return input.replace(escapeRegex, (match, octal, hex) => {
34
- // Handle octal escape sequences
35
- if (octal != null) {
36
- return String.fromCharCode(parseInt(octal, 8));
37
- }
38
- // Handle hexadecimal escape sequences
39
- if (hex != null) {
40
- return String.fromCharCode(parseInt(hex, 16));
41
- }
42
- // This should never happen due to the regex pattern
43
- throw new Error(`Invalid escape sequence: ${match}`);
44
- });
45
- }
46
- const AlphaNumericRE = /[a-z0-9.-_]/i;
47
- export function encodeEscapeSequences(input) {
48
- return input
49
- .split("")
50
- .map((char) => {
51
- const encodedChar = AlphaNumericRE.test(char)
52
- ? char
53
- : "\\" + char.charCodeAt(0).toString(8).padStart(2, "0");
54
- return encodedChar;
55
- })
56
- .join("");
57
- }
58
- /**
59
- * Sort an array of strings using the locale-aware collation algorithm.
60
- *
61
- * @param arr The array of strings to sort. The original array **is sorted in
62
- * place**.
63
- */
64
- export function sortByLocale(arr, locales, options) {
65
- return arr.sort((a, b) => a.localeCompare(b, locales, options));
66
- }
67
- /**
68
- * Sort an array of objects using the locale-aware collation algorithm.
69
- *
70
- * @param arr The array of objects to sort.
71
- * @param fn The function to extract the key to sort by from each object.
72
- * @param locales The locales to use for sorting.
73
- * @param options The collation options to use for sorting.
74
- */
75
- export function sortObjectsByLocale(arr, fn, locales, options) {
76
- return arr.sort((a, b) => fn(a).localeCompare(fn(b), locales, options));
77
- }
78
- //# sourceMappingURL=string.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/string.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAEhB,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAc;IAChC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,WAAW,GAAG,yCAAyC,CAAC;IAE9D,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtD,gCAAgC;QAChC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,sCAAsC;QACtC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,oDAAoD;QACpD,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,cAAc,GAAG,cAAc,CAAC;AAEtC,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,KAAK;SACT,KAAK,CAAC,EAAE,CAAC;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3C,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAa,EACb,OAA8B,EAC9B,OAA8B;IAE9B,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAQ,EACR,EAAsB,EACtB,OAA8B,EAC9B,OAA8B;IAE9B,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1E,CAAC"}
@@ -1,24 +0,0 @@
1
- // src/string_enum.ts
2
- /**
3
- * Create a string enum with the given values.
4
-
5
- Example usage:
6
-
7
- export const Directions = stringEnum("North", "South", "East", "West")
8
- export type Direction = StringEnumKeys<typeof Directions>
9
-
10
- */
11
- export function stringEnum(...o) {
12
- const set = new Set(o);
13
- const dict = {};
14
- for (const key of o) {
15
- dict[key] = key;
16
- }
17
- return {
18
- ...dict,
19
- values: Object.freeze([...set]),
20
- size: set.size,
21
- get: (s) => s != null && set.has(s) ? s : undefined,
22
- };
23
- }
24
- //# sourceMappingURL=string_enum.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string_enum.js","sourceRoot":"","sources":["../../src/string_enum.ts"],"names":[],"mappings":"AAAA,qBAAqB;AAgBrB;;;;;;;;EAQE;AACF,MAAM,UAAU,UAAU,CAAmB,GAAG,CAAM;IACpD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IAEvB,MAAM,IAAI,GAAsB,EAAuB,CAAC;IACxD,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAQ;QACtC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,EAAE,CAAC,CAAqB,EAAE,EAAE,CAC7B,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAM,CAAC,CAAC,CAAC,CAAE,CAAO,CAAC,CAAC,CAAC,SAAS;KACtD,CAAC;AACJ,CAAC"}
@@ -1,40 +0,0 @@
1
- // src/system_volume.ts
2
- import { debug } from "./debuglog.js";
3
- import { compileGlob } from "./glob.js";
4
- import { SystemFsTypesDefault, SystemPathPatternsDefault, } from "./options.js";
5
- import { normalizePath } from "./path.js";
6
- import { isWindows } from "./platform.js";
7
- import { isNotBlank } from "./string.js";
8
- /**
9
- * Determines if a mount point represents a system volume based on its path and
10
- * filesystem type
11
- */
12
- export function isSystemVolume(mountPoint, fstype, config = {}) {
13
- debug("[isSystemVolume] checking %s (fstype: %s)", mountPoint, fstype);
14
- if (isWindows) {
15
- const systemDrive = normalizePath(process.env["SystemDrive"]);
16
- if (systemDrive != null && mountPoint === systemDrive) {
17
- debug("[isSystemVolume] %s is the Windows system drive", mountPoint);
18
- return true;
19
- }
20
- }
21
- const result = (isNotBlank(fstype) &&
22
- (config.systemFsTypes ?? SystemFsTypesDefault).has(fstype)) ||
23
- compileGlob(config.systemPathPatterns ?? SystemPathPatternsDefault).test(mountPoint);
24
- debug("[isSystemVolume] %s -> %s", mountPoint, result);
25
- return result;
26
- }
27
- export function assignSystemVolume(mp, config) {
28
- const result = isSystemVolume(mp.mountPoint, mp.fstype, config);
29
- if (isWindows) {
30
- // native code actually knows the system drive and has more in-depth
31
- // metadata information that we trust more than these heuristics
32
- mp.isSystemVolume ??= result;
33
- }
34
- else {
35
- // macOS and Linux don't have a concept of an explicit "system drive" like
36
- // Windows--always trust our heuristics
37
- mp.isSystemVolume = result;
38
- }
39
- }
40
- //# sourceMappingURL=system_volume.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system_volume.js","sourceRoot":"","sources":["../../src/system_volume.ts"],"names":[],"mappings":"AAAA,uBAAuB;AAEvB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAEL,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAYzC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,UAAkB,EAClB,MAA0B,EAC1B,SAAsC,EAAE;IAExC,KAAK,CAAC,2CAA2C,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACvE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9D,IAAI,WAAW,IAAI,IAAI,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YACtD,KAAK,CAAC,iDAAiD,EAAE,UAAU,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GACV,CAAC,UAAU,CAAC,MAAM,CAAC;QACjB,CAAC,MAAM,CAAC,aAAa,IAAI,oBAAoB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7D,WAAW,CAAC,MAAM,CAAC,kBAAkB,IAAI,yBAAyB,CAAC,CAAC,IAAI,CACtE,UAAU,CACX,CAAC;IACJ,KAAK,CAAC,2BAA2B,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,MAAM,UAAU,kBAAkB,CAChC,EAAc,EACd,MAAmC;IAEnC,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhE,IAAI,SAAS,EAAE,CAAC;QACd,oEAAoE;QACpE,gEAAgE;QAChE,EAAE,CAAC,cAAc,KAAK,MAAM,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,0EAA0E;QAC1E,uCAAuC;QACvC,EAAE,CAAC,cAAc,GAAG,MAAM,CAAC;IAC7B,CAAC;AACH,CAAC"}
@@ -1,3 +0,0 @@
1
- // src/types/native_bindings.ts
2
- export {};
3
- //# sourceMappingURL=native_bindings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"native_bindings.js","sourceRoot":"","sources":["../../../src/types/native_bindings.ts"],"names":[],"mappings":"AAAA,+BAA+B"}