@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,43 +0,0 @@
1
- "use strict";
2
- // src/random.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.randomLetter = randomLetter;
5
- exports.randomLetters = randomLetters;
6
- exports.shuffle = shuffle;
7
- exports.pickRandom = pickRandom;
8
- const node_crypto_1 = require("node:crypto");
9
- const CharCode_a = "a".charCodeAt(0);
10
- /**
11
- * @return a random character `[a-z]`
12
- */
13
- function randomLetter() {
14
- return String.fromCharCode(CharCode_a + (0, node_crypto_1.randomInt)(0, 26));
15
- }
16
- function randomLetters(length) {
17
- return Array.from({ length }, randomLetter).join("");
18
- }
19
- /**
20
- * Shuffle an array using the Fisher-Yates (Knuth) algorithm.
21
- * @param a The array to shuffle
22
- * @returns A shallow shuffled copy of `a`
23
- */
24
- function shuffle(a) {
25
- if (a.length <= 1)
26
- return a;
27
- a = [...a]; // Copy the array
28
- for (let i = a.length - 1; i > 0; i--) {
29
- // Pick a random index from 0 to i
30
- const j = Math.floor(Math.random() * (i + 1));
31
- // Swap elements at indices i and j
32
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
33
- [a[i], a[j]] = [a[j], a[i]];
34
- }
35
- return a;
36
- }
37
- function pickRandom(a) {
38
- if (a == null || a.length === 0) {
39
- throw new Error("Cannot pick from an empty array");
40
- }
41
- return a[(0, node_crypto_1.randomInt)(0, a.length)];
42
- }
43
- //# sourceMappingURL=random.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"random.js","sourceRoot":"","sources":["../../src/random.ts"],"names":[],"mappings":";AAAA,gBAAgB;;AAQhB,oCAEC;AAED,sCAEC;AAOD,0BAWC;AACD,gCAKC;AApCD,6CAAwC;AAExC,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACrC;;GAEG;AACH,SAAgB,YAAY;IAC1B,OAAO,MAAM,CAAC,YAAY,CAAC,UAAU,GAAG,IAAA,uBAAS,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,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,SAAgB,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,SAAgB,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,IAAA,uBAAS,EAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAM,CAAC;AACxC,CAAC"}
@@ -1,123 +0,0 @@
1
- "use strict";
2
- // src/remote_info.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.isRemoteInfo = isRemoteInfo;
5
- exports.normalizeProtocol = normalizeProtocol;
6
- exports.isRemoteFsType = isRemoteFsType;
7
- exports.parseURL = parseURL;
8
- exports.extractRemoteInfo = extractRemoteInfo;
9
- const debuglog_js_1 = require("./debuglog.cjs");
10
- const object_js_1 = require("./object.cjs");
11
- const platform_js_1 = require("./platform.cjs");
12
- const string_js_1 = require("./string.cjs");
13
- function isRemoteInfo(obj) {
14
- if (!(0, object_js_1.isObject)(obj))
15
- return false;
16
- const { remoteHost, remoteShare } = obj;
17
- return (0, string_js_1.isNotBlank)(remoteHost) && (0, string_js_1.isNotBlank)(remoteShare);
18
- }
19
- const NETWORK_FS_TYPES = new Set([
20
- "9p",
21
- "afp",
22
- "afs",
23
- "beegfs",
24
- "ceph",
25
- "cifs",
26
- "ftp",
27
- "fuse.cephfs",
28
- "fuse.glusterfs",
29
- "fuse.sshfs",
30
- "fuse",
31
- "gfs2",
32
- "glusterfs",
33
- "lustre",
34
- "ncpfs",
35
- "nfs",
36
- "nfs4",
37
- "smb",
38
- "smbfs",
39
- "sshfs",
40
- "webdav",
41
- ]);
42
- function normalizeProtocol(protocol) {
43
- return (protocol ?? "").toLowerCase().replace(/:$/, "");
44
- }
45
- function isRemoteFsType(fstype) {
46
- return (0, string_js_1.isNotBlank)(fstype) && NETWORK_FS_TYPES.has(normalizeProtocol(fstype));
47
- }
48
- function parseURL(s) {
49
- try {
50
- return (0, string_js_1.isBlank)(s) ? undefined : new URL(s);
51
- }
52
- catch {
53
- return;
54
- }
55
- }
56
- function extractRemoteInfo(fsSpec) {
57
- if (fsSpec == null || (0, string_js_1.isBlank)(fsSpec))
58
- return;
59
- if (platform_js_1.isWindows) {
60
- fsSpec = fsSpec.replace(/\\/g, "/");
61
- }
62
- const url = parseURL(fsSpec);
63
- if (url?.protocol === "file:") {
64
- return {
65
- remote: false,
66
- uri: fsSpec,
67
- };
68
- }
69
- const patterns = [
70
- // CIFS/SMB pattern: //hostname/share or //user@host/share
71
- {
72
- regex: /^\/\/(?:(?<remoteUser>[^/@]+)@)?(?<remoteHost>[^/@]+)\/(?<remoteShare>.+)$/,
73
- },
74
- // NFS pattern: hostname:/share
75
- {
76
- protocol: "nfs",
77
- regex: /^(?<remoteHost>[^:]+):\/(?!\/)(?<remoteShare>.+)$/,
78
- },
79
- ];
80
- for (const { protocol, regex } of patterns) {
81
- const o = (0, object_js_1.compactValues)({
82
- protocol,
83
- remote: true,
84
- ...(fsSpec.match(regex)?.groups ?? {}),
85
- });
86
- if (isRemoteInfo(o)) {
87
- (0, debuglog_js_1.debug)("[extractRemoteInfo] matched pattern: %o", o);
88
- return o;
89
- }
90
- }
91
- // Let's try URL last, as nfs mounts are URI-ish
92
- try {
93
- // try to parse fsSpec as a uri:
94
- const parsed = new URL(fsSpec);
95
- if (parsed != null) {
96
- (0, debuglog_js_1.debug)("[extractRemoteInfo] parsed URL: %o", parsed);
97
- const protocol = normalizeProtocol(parsed.protocol);
98
- if (!isRemoteFsType(protocol)) {
99
- // don't set remoteUser, remoteHost, or remoteShare, it's not remote!
100
- return {
101
- uri: fsSpec,
102
- remote: false,
103
- };
104
- }
105
- else {
106
- return (0, object_js_1.compactValues)({
107
- uri: fsSpec,
108
- protocol,
109
- remote: true,
110
- remoteUser: parsed.username,
111
- remoteHost: parsed.hostname,
112
- // URL pathname includes leading slash:
113
- remoteShare: parsed.pathname.replace(/^\//, ""),
114
- });
115
- }
116
- }
117
- }
118
- catch {
119
- // ignore
120
- }
121
- return;
122
- }
123
- //# 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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"}
@@ -1,47 +0,0 @@
1
- "use strict";
2
- // src/exports.ts
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.setup = setup;
8
- const node_gyp_build_1 = __importDefault(require("node-gyp-build"));
9
- const debuglog_js_1 = require("./debuglog.cjs");
10
- const defer_js_1 = require("./defer.cjs");
11
- const fs_js_1 = require("./fs.cjs");
12
- const hidden_js_1 = require("./hidden.cjs");
13
- const mount_point_js_1 = require("./mount_point.cjs");
14
- const options_js_1 = require("./options.cjs");
15
- const volume_metadata_js_1 = require("./volume_metadata.cjs");
16
- function setup(dirname) {
17
- const nativeFn = (0, defer_js_1.defer)(async () => {
18
- const start = Date.now();
19
- try {
20
- const dir = await (0, fs_js_1.findAncestorDir)(dirname, "binding.gyp");
21
- if (dir == null) {
22
- throw new Error("Could not find bindings.gyp in any ancestor directory of " + dirname);
23
- }
24
- const bindings = (0, node_gyp_build_1.default)(dir);
25
- bindings.setDebugLogging((0, debuglog_js_1.isDebugEnabled)());
26
- bindings.setDebugPrefix((0, debuglog_js_1.debugLogContext)() + ":native");
27
- return bindings;
28
- }
29
- catch (error) {
30
- (0, debuglog_js_1.debug)("Loading native bindings failed: %s", error);
31
- throw error;
32
- }
33
- finally {
34
- (0, debuglog_js_1.debug)(`Native bindings took %d ms to load`, Date.now() - start);
35
- }
36
- });
37
- return {
38
- getVolumeMountPoints: (opts = {}) => (0, mount_point_js_1.getVolumeMountPoints)((0, options_js_1.optionsWithDefaults)(opts), nativeFn),
39
- getVolumeMetadata: (mountPoint, opts = {}) => (0, volume_metadata_js_1.getVolumeMetadata)({ ...(0, options_js_1.optionsWithDefaults)(opts), mountPoint }, nativeFn),
40
- getAllVolumeMetadata: (opts = {}) => (0, volume_metadata_js_1.getAllVolumeMetadata)((0, options_js_1.optionsWithDefaults)(opts), nativeFn),
41
- isHidden: (pathname) => (0, hidden_js_1.isHidden)(pathname, nativeFn),
42
- isHiddenRecursive: (pathname) => (0, hidden_js_1.isHiddenRecursive)(pathname, nativeFn),
43
- getHiddenMetadata: (pathname) => (0, hidden_js_1.getHiddenMetadata)(pathname, nativeFn),
44
- setHidden: (pathname, hidden, method = "auto") => (0, hidden_js_1.setHidden)(pathname, hidden, method, nativeFn),
45
- };
46
- }
47
- //# sourceMappingURL=setup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/setup.ts"],"names":[],"mappings":";AAAA,iBAAiB;;;;;AAsBjB,sBA8CC;AAlED,oEAA0C;AAC1C,+CAAuE;AACvE,yCAAmC;AAEnC,mCAA0C;AAC1C,2CAMqB;AACrB,qDAG0B;AAC1B,6CAAmD;AAEnD,6DAA+E;AAE/E,SAAgB,KAAK,CAAC,OAAe;IACnC,MAAM,QAAQ,GAAG,IAAA,gBAAK,EAA0B,KAAK,IAAI,EAAE;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAA,uBAAe,EAAC,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,IAAA,wBAAY,EAAC,GAAG,CAAmB,CAAC;YACrD,QAAQ,CAAC,eAAe,CAAC,IAAA,4BAAc,GAAE,CAAC,CAAC;YAC3C,QAAQ,CAAC,cAAc,CAAC,IAAA,6BAAe,GAAE,GAAG,SAAS,CAAC,CAAC;YACvD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,mBAAK,EAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAA,mBAAK,EAAC,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,IAAA,qCAAoB,EAAC,IAAA,gCAAmB,EAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;QAE3D,iBAAiB,EAAE,CAAC,UAAkB,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,CACnD,IAAA,sCAAiB,EAAC,EAAE,GAAG,IAAA,gCAAmB,EAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC;QAE3E,oBAAoB,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAClC,IAAA,yCAAoB,EAAC,IAAA,gCAAmB,EAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;QAE3D,QAAQ,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,IAAA,oBAAQ,EAAC,QAAQ,EAAE,QAAQ,CAAC;QAE5D,iBAAiB,EAAE,CAAC,QAAgB,EAAE,EAAE,CACtC,IAAA,6BAAiB,EAAC,QAAQ,EAAE,QAAQ,CAAC;QAEvC,iBAAiB,EAAE,CAAC,QAAgB,EAAE,EAAE,CACtC,IAAA,6BAAiB,EAAC,QAAQ,EAAE,QAAQ,CAAC;QAEvC,SAAS,EAAE,CACT,QAAgB,EAChB,MAAe,EACf,SAAqB,MAAM,EAC3B,EAAE,CAAC,IAAA,qBAAS,EAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;KAC1C,CAAC;AACb,CAAC"}
@@ -1,89 +0,0 @@
1
- "use strict";
2
- // src/string.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.isString = isString;
5
- exports.toS = toS;
6
- exports.isNotBlank = isNotBlank;
7
- exports.isBlank = isBlank;
8
- exports.toNotBlank = toNotBlank;
9
- exports.decodeEscapeSequences = decodeEscapeSequences;
10
- exports.encodeEscapeSequences = encodeEscapeSequences;
11
- exports.sortByLocale = sortByLocale;
12
- exports.sortObjectsByLocale = sortObjectsByLocale;
13
- function isString(input) {
14
- return typeof input === "string";
15
- }
16
- function toS(input) {
17
- return isString(input) ? input : input == null ? "" : String(input);
18
- }
19
- /**
20
- * @return true iff the input is a string and has at least one non-whitespace character
21
- */
22
- function isNotBlank(input) {
23
- return typeof input === "string" && input.trim().length > 0;
24
- }
25
- /**
26
- * @return true iff the input is not a string or only has non-whitespace characters
27
- */
28
- function isBlank(input) {
29
- return !isNotBlank(input);
30
- }
31
- function toNotBlank(input) {
32
- return isNotBlank(input) ? input : undefined;
33
- }
34
- /**
35
- * Decodes a string containing octal (\000-\377) and/or hexadecimal
36
- * (\x00-\xFF) escape sequences
37
- * @param input The string containing escape sequences to decode
38
- * @returns The decoded string with escape sequences converted to their
39
- * corresponding characters
40
- * @throws Error if an invalid escape sequence is encountered
41
- */
42
- function decodeEscapeSequences(input) {
43
- const escapeRegex = /\\(?:([0-7]{2,6})|x([0-9a-fA-F]{2,4}))/g;
44
- return input.replace(escapeRegex, (match, octal, hex) => {
45
- // Handle octal escape sequences
46
- if (octal != null) {
47
- return String.fromCharCode(parseInt(octal, 8));
48
- }
49
- // Handle hexadecimal escape sequences
50
- if (hex != null) {
51
- return String.fromCharCode(parseInt(hex, 16));
52
- }
53
- // This should never happen due to the regex pattern
54
- throw new Error(`Invalid escape sequence: ${match}`);
55
- });
56
- }
57
- const AlphaNumericRE = /[a-z0-9.-_]/i;
58
- function encodeEscapeSequences(input) {
59
- return input
60
- .split("")
61
- .map((char) => {
62
- const encodedChar = AlphaNumericRE.test(char)
63
- ? char
64
- : "\\" + char.charCodeAt(0).toString(8).padStart(2, "0");
65
- return encodedChar;
66
- })
67
- .join("");
68
- }
69
- /**
70
- * Sort an array of strings using the locale-aware collation algorithm.
71
- *
72
- * @param arr The array of strings to sort. The original array **is sorted in
73
- * place**.
74
- */
75
- function sortByLocale(arr, locales, options) {
76
- return arr.sort((a, b) => a.localeCompare(b, locales, options));
77
- }
78
- /**
79
- * Sort an array of objects using the locale-aware collation algorithm.
80
- *
81
- * @param arr The array of objects to sort.
82
- * @param fn The function to extract the key to sort by from each object.
83
- * @param locales The locales to use for sorting.
84
- * @param options The collation options to use for sorting.
85
- */
86
- function sortObjectsByLocale(arr, fn, locales, options) {
87
- return arr.sort((a, b) => fn(a).localeCompare(fn(b), locales, options));
88
- }
89
- //# sourceMappingURL=string.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/string.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- "use strict";
2
- // src/string_enum.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.stringEnum = stringEnum;
5
- /**
6
- * Create a string enum with the given values.
7
-
8
- Example usage:
9
-
10
- export const Directions = stringEnum("North", "South", "East", "West")
11
- export type Direction = StringEnumKeys<typeof Directions>
12
-
13
- */
14
- function stringEnum(...o) {
15
- const set = new Set(o);
16
- const dict = {};
17
- for (const key of o) {
18
- dict[key] = key;
19
- }
20
- return {
21
- ...dict,
22
- values: Object.freeze([...set]),
23
- size: set.size,
24
- get: (s) => s != null && set.has(s) ? s : undefined,
25
- };
26
- }
27
- //# 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;;AAyBrB,gCAeC;AAxBD;;;;;;;;EAQE;AACF,SAAgB,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,44 +0,0 @@
1
- "use strict";
2
- // src/system_volume.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.isSystemVolume = isSystemVolume;
5
- exports.assignSystemVolume = assignSystemVolume;
6
- const debuglog_js_1 = require("./debuglog.cjs");
7
- const glob_js_1 = require("./glob.cjs");
8
- const options_js_1 = require("./options.cjs");
9
- const path_js_1 = require("./path.cjs");
10
- const platform_js_1 = require("./platform.cjs");
11
- const string_js_1 = require("./string.cjs");
12
- /**
13
- * Determines if a mount point represents a system volume based on its path and
14
- * filesystem type
15
- */
16
- function isSystemVolume(mountPoint, fstype, config = {}) {
17
- (0, debuglog_js_1.debug)("[isSystemVolume] checking %s (fstype: %s)", mountPoint, fstype);
18
- if (platform_js_1.isWindows) {
19
- const systemDrive = (0, path_js_1.normalizePath)(process.env["SystemDrive"]);
20
- if (systemDrive != null && mountPoint === systemDrive) {
21
- (0, debuglog_js_1.debug)("[isSystemVolume] %s is the Windows system drive", mountPoint);
22
- return true;
23
- }
24
- }
25
- const result = ((0, string_js_1.isNotBlank)(fstype) &&
26
- (config.systemFsTypes ?? options_js_1.SystemFsTypesDefault).has(fstype)) ||
27
- (0, glob_js_1.compileGlob)(config.systemPathPatterns ?? options_js_1.SystemPathPatternsDefault).test(mountPoint);
28
- (0, debuglog_js_1.debug)("[isSystemVolume] %s -> %s", mountPoint, result);
29
- return result;
30
- }
31
- function assignSystemVolume(mp, config) {
32
- const result = isSystemVolume(mp.mountPoint, mp.fstype, config);
33
- if (platform_js_1.isWindows) {
34
- // native code actually knows the system drive and has more in-depth
35
- // metadata information that we trust more than these heuristics
36
- mp.isSystemVolume ??= result;
37
- }
38
- else {
39
- // macOS and Linux don't have a concept of an explicit "system drive" like
40
- // Windows--always trust our heuristics
41
- mp.isSystemVolume = result;
42
- }
43
- }
44
- //# 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;;AA4BvB,wCAqBC;AACD,gDAeC;AA/DD,+CAAsC;AACtC,uCAAwC;AAExC,6CAIsB;AACtB,uCAA0C;AAC1C,+CAA0C;AAC1C,2CAAyC;AAYzC;;;GAGG;AACH,SAAgB,cAAc,CAC5B,UAAkB,EAClB,MAA0B,EAC1B,SAAsC,EAAE;IAExC,IAAA,mBAAK,EAAC,2CAA2C,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACvE,IAAI,uBAAS,EAAE,CAAC;QACd,MAAM,WAAW,GAAG,IAAA,uBAAa,EAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9D,IAAI,WAAW,IAAI,IAAI,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YACtD,IAAA,mBAAK,EAAC,iDAAiD,EAAE,UAAU,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GACV,CAAC,IAAA,sBAAU,EAAC,MAAM,CAAC;QACjB,CAAC,MAAM,CAAC,aAAa,IAAI,iCAAoB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAA,qBAAW,EAAC,MAAM,CAAC,kBAAkB,IAAI,sCAAyB,CAAC,CAAC,IAAI,CACtE,UAAU,CACX,CAAC;IACJ,IAAA,mBAAK,EAAC,2BAA2B,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,SAAgB,kBAAkB,CAChC,EAAc,EACd,MAAmC;IAEnC,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhE,IAAI,uBAAS,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,4 +0,0 @@
1
- "use strict";
2
- // src/types/native_bindings.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- //# 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"}
package/dist/cjs/unc.cjs DELETED
@@ -1,52 +0,0 @@
1
- "use strict";
2
- // src/unc.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.parseUNCPath = parseUNCPath;
5
- const string_js_1 = require("./string.cjs");
6
- /**
7
- * Checks if a string is formatted as a valid UNC path.
8
- * A valid UNC path starts with double backslashes or slashes,
9
- * followed by a server/host name, and then a share name.
10
- * The path must use consistent slashes (all forward or all backward).
11
- *
12
- * @param path - The string to check
13
- * @returns boolean - True if the string is a valid UNC path, false otherwise
14
- */
15
- function parseUNCPath(path) {
16
- if (path == null || (0, string_js_1.isBlank)(path) || !(0, string_js_1.isString)(path)) {
17
- return;
18
- }
19
- // Check for two forward slashes or two backslashes at start
20
- if (!path.startsWith("\\\\") && !path.startsWith("//")) {
21
- return;
22
- }
23
- // Determine slash type from the start of the path
24
- const isForwardSlash = path.startsWith("//");
25
- const slashChar = isForwardSlash ? "/" : "\\";
26
- // Split path using the correct slash type
27
- const parts = path.slice(2).split(slashChar);
28
- // Check minimum required parts (server and share)
29
- if (parts.length < 2) {
30
- return;
31
- }
32
- // Validate server and share names exist and aren't empty
33
- const [remoteHost, remoteShare] = parts;
34
- if (remoteHost == null ||
35
- (0, string_js_1.isBlank)(remoteHost) ||
36
- remoteShare == null ||
37
- (0, string_js_1.isBlank)(remoteShare)) {
38
- return;
39
- }
40
- // Check for invalid characters in server and share names
41
- const invalidChars = /[<>:"|?*]/;
42
- if (invalidChars.test(remoteHost) || invalidChars.test(remoteShare)) {
43
- return;
44
- }
45
- // Check for mixed slash usage
46
- const wrongSlash = isForwardSlash ? "\\" : "/";
47
- if (path.includes(wrongSlash)) {
48
- return;
49
- }
50
- return { remoteHost, remoteShare, remote: true };
51
- }
52
- //# sourceMappingURL=unc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unc.js","sourceRoot":"","sources":["../../src/unc.ts"],"names":[],"mappings":";AAAA,aAAa;;AAcb,oCAgDC;AA3DD,2CAAgD;AAEhD;;;;;;;;GAQG;AACH,SAAgB,YAAY,CAC1B,IAA+B;IAE/B,IAAI,IAAI,IAAI,IAAI,IAAI,IAAA,mBAAO,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,oBAAQ,EAAC,IAAI,CAAC,EAAE,CAAC;QACrD,OAAO;IACT,CAAC;IAED,4DAA4D;IAC5D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,OAAO;IACT,CAAC;IAED,kDAAkD;IAClD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAE9C,0CAA0C;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE7C,kDAAkD;IAClD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,yDAAyD;IACzD,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC;IACxC,IACE,UAAU,IAAI,IAAI;QAClB,IAAA,mBAAO,EAAC,UAAU,CAAC;QACnB,WAAW,IAAI,IAAI;QACnB,IAAA,mBAAO,EAAC,WAAW,CAAC,EACpB,CAAC;QACD,OAAO;IACT,CAAC;IAED,yDAAyD;IACzD,MAAM,YAAY,GAAG,WAAW,CAAC;IACjC,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACpE,OAAO;IACT,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACnD,CAAC"}
@@ -1,35 +0,0 @@
1
- "use strict";
2
- // src/units.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.GiB = exports.MiB = exports.KiB = void 0;
5
- exports.fmtBytes = fmtBytes;
6
- /**
7
- * KiB = 1024 bytes
8
- * @see https://en.wikipedia.org/wiki/Kibibyte
9
- */
10
- exports.KiB = 1024;
11
- /**
12
- * MiB = 1024 KiB
13
- * @see https://en.wikipedia.org/wiki/Mebibyte
14
- */
15
- exports.MiB = 1024 * exports.KiB;
16
- /**
17
- * GiB = 1024 MiB
18
- * @see https://en.wikipedia.org/wiki/Gibibyte
19
- */
20
- exports.GiB = 1024 * exports.MiB;
21
- function fmtBytes(bytes) {
22
- if (bytes < exports.KiB) {
23
- return `${bytes} B`;
24
- }
25
- else if (bytes < exports.MiB) {
26
- return `${(bytes / exports.KiB).toFixed(2)} KiB`;
27
- }
28
- else if (bytes < exports.GiB) {
29
- return `${(bytes / exports.MiB).toFixed(2)} MiB`;
30
- }
31
- else {
32
- return `${(bytes / exports.GiB).toFixed(2)} GiB`;
33
- }
34
- }
35
- //# sourceMappingURL=units.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/units.ts"],"names":[],"mappings":";AAAA,eAAe;;;AAoBf,4BAUC;AA5BD;;;GAGG;AACU,QAAA,GAAG,GAAG,IAAI,CAAC;AAExB;;;GAGG;AACU,QAAA,GAAG,GAAG,IAAI,GAAG,WAAG,CAAC;AAE9B;;;GAGG;AACU,QAAA,GAAG,GAAG,IAAI,GAAG,WAAG,CAAC;AAE9B,SAAgB,QAAQ,CAAC,KAAa;IACpC,IAAI,KAAK,GAAG,WAAG,EAAE,CAAC;QAChB,OAAO,GAAG,KAAK,IAAI,CAAC;IACtB,CAAC;SAAM,IAAI,KAAK,GAAG,WAAG,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,KAAK,GAAG,WAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3C,CAAC;SAAM,IAAI,KAAK,GAAG,WAAG,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,KAAK,GAAG,WAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,CAAC,KAAK,GAAG,WAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3C,CAAC;AACH,CAAC"}
package/dist/cjs/uuid.cjs DELETED
@@ -1,25 +0,0 @@
1
- "use strict";
2
- // src/uuid.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.extractUUID = extractUUID;
5
- const string_js_1 = require("./string.cjs");
6
- const uuidRegex = /[a-z0-9][a-z0-9-]{7,}/i;
7
- /**
8
- * Some volume UUIDs are short, like, `ABCD1234`.
9
- *
10
- * Some volume UUIDs are in hexadecimal, but others and use G-Z. We will allow
11
- * that.
12
- *
13
- * Some Windows syscalls wrap the UUID in a "\\\\?\\Volume{...}\\" prefix and
14
- * suffix. This function will strip out that prefix and suffix.
15
- *
16
- * We will ignore any UUID-ish string that is not at least 8 characters long
17
- * (and return `undefined` if no other, longer uuid-ish string is found).
18
- *
19
- * UUIDs cannot start with a hyphen, and can only contain a-z, 0-9, and hyphens
20
- * (case-insensitive).
21
- */
22
- function extractUUID(uuid) {
23
- return (0, string_js_1.toS)(uuid).match(uuidRegex)?.[0];
24
- }
25
- //# sourceMappingURL=uuid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../src/uuid.ts"],"names":[],"mappings":";AAAA,cAAc;;AAqBd,kCAEC;AArBD,2CAAkC;AAElC,MAAM,SAAS,GAAG,wBAAwB,CAAC;AAE3C;;;;;;;;;;;;;;GAcG;AACH,SAAgB,WAAW,CAAC,IAAwB;IAClD,OAAO,IAAA,eAAG,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC"}
@@ -1,50 +0,0 @@
1
- "use strict";
2
- // src/volume_health_status.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.VolumeHealthStatuses = void 0;
5
- exports.directoryStatus = directoryStatus;
6
- const async_js_1 = require("./async.cjs");
7
- const debuglog_js_1 = require("./debuglog.cjs");
8
- const error_js_1 = require("./error.cjs");
9
- const fs_js_1 = require("./fs.cjs");
10
- const object_js_1 = require("./object.cjs");
11
- const string_enum_js_1 = require("./string_enum.cjs");
12
- /**
13
- * Health statuses for volumes (mostly applicable to Windows).
14
- *
15
- * - `healthy`: Volume is "OK": accessible and functioning normally
16
- * - `timeout`: Volume could not be accessed before the specified timeout. It
17
- * may be inaccessible or disconnected.
18
- * - `inaccessible`: Volume exists but can't be accessed (permissions/locks)
19
- * - `disconnected`: Network volume that's offline
20
- * - `unknown`: Status can't be determined
21
- */
22
- exports.VolumeHealthStatuses = (0, string_enum_js_1.stringEnum)("healthy", "timeout", "inaccessible", "disconnected", "unknown");
23
- /**
24
- * Attempt to read a directory to determine if it's accessible, and if an error
25
- * is thrown, convert to a health status.
26
- * @returns the "health status" of the directory, based on the success of `readdir(dir)`.
27
- * @throws never
28
- */
29
- async function directoryStatus(dir, timeoutMs, canReaddirImpl = fs_js_1.canReaddir) {
30
- try {
31
- if (await canReaddirImpl(dir, timeoutMs)) {
32
- return { status: exports.VolumeHealthStatuses.healthy };
33
- }
34
- }
35
- catch (error) {
36
- (0, debuglog_js_1.debug)("[directoryStatus] %s: %s", dir, error);
37
- let status = exports.VolumeHealthStatuses.unknown;
38
- if (error instanceof async_js_1.TimeoutError) {
39
- status = exports.VolumeHealthStatuses.timeout;
40
- }
41
- else if ((0, object_js_1.isObject)(error) && error instanceof Error && "code" in error) {
42
- if (error.code === "EPERM" || error.code === "EACCES") {
43
- status = exports.VolumeHealthStatuses.inaccessible;
44
- }
45
- }
46
- return { status, error: (0, error_js_1.toError)(error) };
47
- }
48
- return { status: exports.VolumeHealthStatuses.unknown };
49
- }
50
- //# sourceMappingURL=volume_health_status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"volume_health_status.js","sourceRoot":"","sources":["../../src/volume_health_status.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;AAmC9B,0CAsBC;AAvDD,yCAA0C;AAC1C,+CAAsC;AACtC,yCAAqC;AACrC,mCAAqC;AACrC,2CAAuC;AACvC,qDAA8D;AAE9D;;;;;;;;;GASG;AACU,QAAA,oBAAoB,GAAG,IAAA,2BAAU,EAC5C,SAAS,EACT,SAAS,EACT,cAAc,EACd,cAAc,EACd,SAAS,CACV,CAAC;AAIF;;;;;GAKG;AACI,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,SAAiB,EACjB,iBAAoC,kBAAU;IAE9C,IAAI,CAAC;QACH,IAAI,MAAM,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,MAAM,EAAE,4BAAoB,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,mBAAK,EAAC,0BAA0B,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9C,IAAI,MAAM,GAAuB,4BAAoB,CAAC,OAAO,CAAC;QAC9D,IAAI,KAAK,YAAY,uBAAY,EAAE,CAAC;YAClC,MAAM,GAAG,4BAAoB,CAAC,OAAO,CAAC;QACxC,CAAC;aAAM,IAAI,IAAA,oBAAQ,EAAC,KAAK,CAAC,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YACxE,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtD,MAAM,GAAG,4BAAoB,CAAC,YAAY,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAA,kBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,4BAAoB,CAAC,OAAO,EAAE,CAAC;AAClD,CAAC"}