exiftool-vendored 28.8.0 → 29.1.0

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 (121) hide show
  1. package/CHANGELOG.md +40 -4
  2. package/README.md +22 -22
  3. package/SECURITY.md +1 -2
  4. package/dist/Array.d.ts +4 -4
  5. package/dist/Array.js +8 -10
  6. package/dist/Array.js.map +1 -1
  7. package/dist/AsyncRetry.js.map +1 -1
  8. package/dist/BinaryExtractionTask.d.ts +4 -2
  9. package/dist/BinaryExtractionTask.js +8 -5
  10. package/dist/BinaryExtractionTask.js.map +1 -1
  11. package/dist/BinaryField.js +2 -0
  12. package/dist/BinaryField.js.map +1 -1
  13. package/dist/BinaryToBufferTask.js +5 -5
  14. package/dist/BinaryToBufferTask.js.map +1 -1
  15. package/dist/Boolean.d.ts +1 -1
  16. package/dist/Boolean.js.map +1 -1
  17. package/dist/CapturedAtTagNames.js.map +1 -1
  18. package/dist/CoordinateParser.d.ts +59 -0
  19. package/dist/CoordinateParser.js +286 -0
  20. package/dist/CoordinateParser.js.map +1 -0
  21. package/dist/DateTime.d.ts +1 -1
  22. package/dist/DateTime.js +4 -5
  23. package/dist/DateTime.js.map +1 -1
  24. package/dist/DefaultCreateDateTagNames.js.map +1 -1
  25. package/dist/DefaultExifToolOptions.js +20 -7
  26. package/dist/DefaultExifToolOptions.js.map +1 -1
  27. package/dist/DefaultExiftoolArgs.js.map +1 -1
  28. package/dist/DefaultMaxProcs.js +17 -7
  29. package/dist/DefaultMaxProcs.js.map +1 -1
  30. package/dist/DeleteAllTagsArgs.js.map +1 -1
  31. package/dist/ErrorsAndWarnings.d.ts +5 -1
  32. package/dist/ErrorsAndWarnings.js +11 -2
  33. package/dist/ErrorsAndWarnings.js.map +1 -1
  34. package/dist/ExifDate.js +7 -2
  35. package/dist/ExifDate.js.map +1 -1
  36. package/dist/ExifDateTime.d.ts +2 -2
  37. package/dist/ExifDateTime.js +63 -67
  38. package/dist/ExifDateTime.js.map +1 -1
  39. package/dist/ExifTime.js +19 -26
  40. package/dist/ExifTime.js.map +1 -1
  41. package/dist/ExifTool.d.ts +28 -24
  42. package/dist/ExifTool.js +97 -81
  43. package/dist/ExifTool.js.map +1 -1
  44. package/dist/ExifToolOptions.d.ts +8 -0
  45. package/dist/ExifToolOptions.js.map +1 -1
  46. package/dist/ExifToolTags.js +0 -1
  47. package/dist/ExifToolTags.js.map +1 -1
  48. package/dist/ExifToolTask.js +38 -33
  49. package/dist/ExifToolTask.js.map +1 -1
  50. package/dist/ExifToolVendoredTags.js.map +1 -1
  51. package/dist/ExiftoolPath.js +27 -12
  52. package/dist/ExiftoolPath.js.map +1 -1
  53. package/dist/File.d.ts +2 -0
  54. package/dist/File.js +16 -1
  55. package/dist/File.js.map +1 -1
  56. package/dist/FileTags.d.ts +3 -2
  57. package/dist/FileTags.js +3 -2
  58. package/dist/FileTags.js.map +1 -1
  59. package/dist/FilenameCharsetArgs.js.map +1 -1
  60. package/dist/FirstDateTime.js +1 -1
  61. package/dist/FirstDateTime.js.map +1 -1
  62. package/dist/GPS.d.ts +18 -0
  63. package/dist/GPS.js +116 -0
  64. package/dist/GPS.js.map +1 -0
  65. package/dist/GeoTz.js.map +1 -1
  66. package/dist/GeolocationTags.d.ts +1 -1
  67. package/dist/GeolocationTags.js +16 -14
  68. package/dist/GeolocationTags.js.map +1 -1
  69. package/dist/IsWarning.js.map +1 -1
  70. package/dist/IsWin32.js +17 -7
  71. package/dist/IsWin32.js.map +1 -1
  72. package/dist/JSON.js +4 -1
  73. package/dist/JSON.js.map +1 -1
  74. package/dist/Lazy.js +2 -1
  75. package/dist/Lazy.js.map +1 -1
  76. package/dist/Maybe.js.map +1 -1
  77. package/dist/Number.d.ts +18 -3
  78. package/dist/Number.js +36 -1
  79. package/dist/Number.js.map +1 -1
  80. package/dist/Object.d.ts +4 -4
  81. package/dist/Object.js +8 -8
  82. package/dist/Object.js.map +1 -1
  83. package/dist/OnlyZerosRE.js.map +1 -1
  84. package/dist/Pick.js.map +1 -1
  85. package/dist/ReadRawTask.js +20 -8
  86. package/dist/ReadRawTask.js.map +1 -1
  87. package/dist/ReadTask.d.ts +1 -1
  88. package/dist/ReadTask.js +233 -264
  89. package/dist/ReadTask.js.map +1 -1
  90. package/dist/ResourceEvent.d.ts +1 -1
  91. package/dist/ResourceEvent.js +1 -1
  92. package/dist/ResourceEvent.js.map +1 -1
  93. package/dist/RewriteAllTagsTask.js +19 -9
  94. package/dist/RewriteAllTagsTask.js.map +1 -1
  95. package/dist/Sidecars.js.map +1 -1
  96. package/dist/String.d.ts +8 -4
  97. package/dist/String.js +7 -3
  98. package/dist/String.js.map +1 -1
  99. package/dist/Struct.d.ts +1 -1
  100. package/dist/Struct.js +1 -2
  101. package/dist/Struct.js.map +1 -1
  102. package/dist/Tags.d.ts +154 -152
  103. package/dist/TimeParsing.js +6 -8
  104. package/dist/TimeParsing.js.map +1 -1
  105. package/dist/Times.d.ts +6 -0
  106. package/dist/Times.js +7 -3
  107. package/dist/Times.js.map +1 -1
  108. package/dist/Timezones.d.ts +5 -4
  109. package/dist/Timezones.js +71 -41
  110. package/dist/Timezones.js.map +1 -1
  111. package/dist/Version.d.ts +1 -1
  112. package/dist/Version.js +1 -1
  113. package/dist/Version.js.map +1 -1
  114. package/dist/VersionTask.js +1 -1
  115. package/dist/VersionTask.js.map +1 -1
  116. package/dist/Which.js.map +1 -1
  117. package/dist/WriteTags.d.ts +6 -1
  118. package/dist/WriteTask.js +71 -25
  119. package/dist/WriteTask.js.map +1 -1
  120. package/eslint.config.mjs +34 -0
  121. package/package.json +21 -19
package/dist/File.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPlatformCaseSensitive = void 0;
3
4
  exports.isFileEmpty = isFileEmpty;
5
+ exports.compareFilePaths = compareFilePaths;
4
6
  const node_fs_1 = require("node:fs");
7
+ const node_path_1 = require("node:path");
8
+ const Lazy_1 = require("./Lazy");
5
9
  const String_1 = require("./String");
6
10
  async function isFileEmpty(path) {
7
11
  if ((0, String_1.blank)(path)) {
@@ -20,10 +24,21 @@ async function isFileEmpty(path) {
20
24
  return s == null || s.size === 0;
21
25
  }
22
26
  catch (err) {
23
- if (err.code === "ENOENT")
27
+ if (err &&
28
+ typeof err === "object" &&
29
+ "code" in err &&
30
+ err.code === "ENOENT")
24
31
  return true;
25
32
  else
26
33
  throw err;
27
34
  }
28
35
  }
36
+ exports.isPlatformCaseSensitive = (0, Lazy_1.lazy)(() => process.platform !== "win32" && process.platform !== "darwin");
37
+ function compareFilePaths(a, b) {
38
+ const aNorm = (0, node_path_1.normalize)(a);
39
+ const bNorm = (0, node_path_1.normalize)(b);
40
+ return (0, exports.isPlatformCaseSensitive)()
41
+ ? aNorm === bNorm
42
+ : aNorm.localeCompare(bNorm, undefined, { sensitivity: "base" }) === 0;
43
+ }
29
44
  //# sourceMappingURL=File.js.map
package/dist/File.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"File.js","sourceRoot":"","sources":["../src/File.ts"],"names":[],"mappings":";;AAGA,kCAmBC;AAtBD,qCAAqC;AACrC,qCAAgC;AAEzB,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IAED,2EAA2E;IAC3E,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,IAAI,OAAO,CAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9C,IAAI,CAAC;gBACH,IAAA,cAAI,EAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC/D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,GAAG,CAAC,CAAA;YACV,CAAC;QACH,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAA;;YACjC,MAAM,GAAG,CAAA;IAChB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"File.js","sourceRoot":"","sources":["../src/File.ts"],"names":[],"mappings":";;;AAKA,kCAyBC;AAMD,4CAMC;AA1CD,qCAAsC;AACtC,yCAAsC;AACtC,iCAA8B;AAC9B,qCAAiC;AAE1B,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,2EAA2E;IAC3E,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,IAAI,OAAO,CAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9C,IAAI,CAAC;gBACH,IAAA,cAAI,EAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,GAAG,CAAC,CAAC;YACX,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IACE,GAAG;YACH,OAAO,GAAG,KAAK,QAAQ;YACvB,MAAM,IAAI,GAAG;YACb,GAAG,CAAC,IAAI,KAAK,QAAQ;YAErB,OAAO,IAAI,CAAC;;YACT,MAAM,GAAG,CAAC;IACjB,CAAC;AACH,CAAC;AAEY,QAAA,uBAAuB,GAAG,IAAA,WAAI,EACzC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,CACpE,CAAC;AAEF,SAAgB,gBAAgB,CAAC,CAAS,EAAE,CAAS;IACnD,MAAM,KAAK,GAAG,IAAA,qBAAS,EAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAA,qBAAS,EAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,IAAA,+BAAuB,GAAE;QAC9B,CAAC,CAAC,KAAK,KAAK,KAAK;QACjB,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;AAC3E,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { FileTags } from "./Tags";
2
2
  /**
3
- * Is the given tag name intrinsic to the content of a given file? In other
4
- * words, is it not an artifact of a metadata field?
3
+ * Is the given tag name intrinsic to the content of a given file?
4
+ *
5
+ * In other words, is it not an artifact of a metadata field?
5
6
  */
6
7
  export declare function isFileTag(name: string): name is keyof FileTags;
package/dist/FileTags.js CHANGED
@@ -31,8 +31,9 @@ const FileTagNames = (0, Object_1.keysOf)({
31
31
  YCbCrSubSampling: true,
32
32
  });
33
33
  /**
34
- * Is the given tag name intrinsic to the content of a given file? In other
35
- * words, is it not an artifact of a metadata field?
34
+ * Is the given tag name intrinsic to the content of a given file?
35
+ *
36
+ * In other words, is it not an artifact of a metadata field?
36
37
  */
37
38
  function isFileTag(name) {
38
39
  return FileTagNames.includes(name);
@@ -1 +1 @@
1
- {"version":3,"file":"FileTags.js","sourceRoot":"","sources":["../src/FileTags.ts"],"names":[],"mappings":";;AAoCA,8BAEC;AAtCD,qCAAiC;AAGjC,MAAM,YAAY,GAAG,IAAA,eAAM,EAAW;IACpC,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,IAAI;IACvB,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,IAAI;IACzB,cAAc,EAAE,IAAI;IACpB,QAAQ,EAAE,IAAI;IACd,eAAe,EAAE,IAAI;IACrB,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,IAAI;IACZ,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAA;AAEF;;;GAGG;AACH,SAAgB,SAAS,CAAC,IAAY;IACpC,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAA;AAC3C,CAAC"}
1
+ {"version":3,"file":"FileTags.js","sourceRoot":"","sources":["../src/FileTags.ts"],"names":[],"mappings":";;AAqCA,8BAEC;AAvCD,qCAAkC;AAGlC,MAAM,YAAY,GAAG,IAAA,eAAM,EAAW;IACpC,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,IAAI;IACvB,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,IAAI;IACzB,cAAc,EAAE,IAAI;IACpB,QAAQ,EAAE,IAAI;IACd,eAAe,EAAE,IAAI;IACrB,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,IAAI;IACZ,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAgB,SAAS,CAAC,IAAY;IACpC,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAsB,CAAC,CAAC;AACvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilenameCharsetArgs.js","sourceRoot":"","sources":["../src/FilenameCharsetArgs.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AAEnC;;;;;;;;;;;;;;GAcG;AACU,QAAA,uBAAuB,GAAG,IAAA,iBAAO,GAAE;IAC9C,CAAC,CAAC,CAAC,UAAU,EAAE,eAAe,CAAC;IAC/B,CAAC,CAAC,EAAE,CAAA"}
1
+ {"version":3,"file":"FilenameCharsetArgs.js","sourceRoot":"","sources":["../src/FilenameCharsetArgs.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAEpC;;;;;;;;;;;;;;GAcG;AACU,QAAA,uBAAuB,GAAG,IAAA,iBAAO,GAAE;IAC9C,CAAC,CAAC,CAAC,UAAU,EAAE,eAAe,CAAC;IAC/B,CAAC,CAAC,EAAE,CAAC"}
@@ -10,7 +10,7 @@ const String_1 = require("./String");
10
10
  */
11
11
  function firstDateTime(tags, dateTimeTags = CapturedAtTagNames_1.CapturedAtTagNames) {
12
12
  for (const tag of dateTimeTags) {
13
- const dt = tags === null || tags === void 0 ? void 0 : tags[tag];
13
+ const dt = tags?.[tag];
14
14
  if (dt instanceof ExifDateTime_1.ExifDateTime) {
15
15
  return dt;
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FirstDateTime.js","sourceRoot":"","sources":["../src/FirstDateTime.ts"],"names":[],"mappings":";;AAWA,sCAgBC;AA3BD,6DAAyD;AACzD,iDAA6C;AAG7C,qCAAmC;AAGnC;;;GAGG;AACH,SAAgB,aAAa,CAC3B,IAAiB,EACjB,eAA8C,uCAAkB;IAEhE,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,GAAG,CAAQ,CAAA;QAC7B,IAAI,EAAE,YAAY,2BAAY,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAA;QACX,CAAC;aAAM,IAAI,IAAA,iBAAQ,EAAC,EAAE,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,2BAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACrC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAM;AACR,CAAC"}
1
+ {"version":3,"file":"FirstDateTime.js","sourceRoot":"","sources":["../src/FirstDateTime.ts"],"names":[],"mappings":";;AAWA,sCAgBC;AA3BD,6DAA0D;AAC1D,iDAA8C;AAG9C,qCAAoC;AAGpC;;;GAGG;AACH,SAAgB,aAAa,CAC3B,IAAiB,EACjB,eAA8C,uCAAkB;IAEhE,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,EAAE,YAAY,2BAAY,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,IAAI,IAAA,iBAAQ,EAAC,EAAE,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,2BAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO;AACT,CAAC"}
package/dist/GPS.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ import { ExifToolOptions } from "./ExifToolOptions";
2
+ import { Maybe } from "./Maybe";
3
+ export type GpsLocationTags = {
4
+ GPSLatitude?: number;
5
+ GPSLatitudeRef?: string;
6
+ GPSLongitude?: number;
7
+ GPSLongitudeRef?: string;
8
+ GPSPosition?: string;
9
+ GeolocationPosition?: string;
10
+ };
11
+ export declare const GpsLocationTagNames: (keyof GpsLocationTags)[];
12
+ export interface GpsParseResult {
13
+ result: GpsLocationTags;
14
+ details: string;
15
+ invalid: boolean;
16
+ warnings: string[];
17
+ }
18
+ export declare function parseGPSLocation(tags: GpsLocationTags, opts: Pick<ExifToolOptions, "ignoreZeroZeroLatLon">): Maybe<Partial<GpsParseResult>>;
package/dist/GPS.js ADDED
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GpsLocationTagNames = void 0;
4
+ exports.parseGPSLocation = parseGPSLocation;
5
+ const CoordinateParser_1 = require("./CoordinateParser");
6
+ const Lazy_1 = require("./Lazy");
7
+ const Number_1 = require("./Number");
8
+ const Object_1 = require("./Object");
9
+ const String_1 = require("./String");
10
+ exports.GpsLocationTagNames = (0, Object_1.keysOf)({
11
+ GPSLatitude: true,
12
+ GPSLatitudeRef: true,
13
+ GPSLongitude: true,
14
+ GPSLongitudeRef: true,
15
+ GPSPosition: true,
16
+ GeolocationPosition: true,
17
+ });
18
+ // local function that handles more input types:
19
+ function _parseCoordinate(v) {
20
+ return (0, String_1.blank)(v) ? undefined : (0, Number_1.isNumber)(v) ? v : (0, CoordinateParser_1.parseCoordinate)(v).decimal;
21
+ }
22
+ function _parseCoordinates(v) {
23
+ return (0, String_1.blank)(v) ? undefined : (0, CoordinateParser_1.parseCoordinates)(v);
24
+ }
25
+ function parseGPSLocation(tags, opts) {
26
+ const warnings = [];
27
+ try {
28
+ // Parse primary coordinates with error capturing
29
+ let latitude = undefined;
30
+ let longitude = undefined;
31
+ try {
32
+ latitude = _parseCoordinate(tags.GPSLatitude);
33
+ }
34
+ catch (e) {
35
+ warnings.push(`Error parsing GPSLatitude: ${e}`);
36
+ }
37
+ try {
38
+ longitude = _parseCoordinate(tags.GPSLongitude);
39
+ }
40
+ catch (e) {
41
+ warnings.push(`Error parsing GPSLongitude: ${e}`);
42
+ }
43
+ // If either coordinate is missing, try GPSPosition
44
+ if (latitude == null || longitude == null) {
45
+ const gpsPos = (0, Lazy_1.lazy)(() => {
46
+ try {
47
+ return _parseCoordinates(tags.GPSPosition);
48
+ }
49
+ catch (e) {
50
+ warnings.push(`Error parsing GPSPosition: ${e}`);
51
+ return undefined;
52
+ }
53
+ });
54
+ if (latitude == null) {
55
+ latitude = gpsPos()?.latitude;
56
+ }
57
+ if (longitude == null) {
58
+ longitude = gpsPos()?.longitude;
59
+ }
60
+ }
61
+ // If we still don't have both coordinates, return early
62
+ if (latitude == null || longitude == null) {
63
+ return { invalid: false, warnings };
64
+ }
65
+ // Check for zero coordinates if configured
66
+ if (opts.ignoreZeroZeroLatLon && latitude === 0 && longitude === 0) {
67
+ warnings.push("Ignoring zero coordinates from GPSLatitude/GPSLongitude");
68
+ return { invalid: true, warnings };
69
+ }
70
+ // Get geolocation reference values for sign validation
71
+ let geoPos = undefined;
72
+ try {
73
+ geoPos = _parseCoordinates(tags.GeolocationPosition);
74
+ }
75
+ catch (e) {
76
+ warnings.push(`Error parsing GeolocationPosition: ${e}`);
77
+ }
78
+ // Process coordinates with validation and sign correction
79
+ const latResult = (0, CoordinateParser_1.processCoordinate)({
80
+ value: latitude,
81
+ ref: tags.GPSLatitudeRef,
82
+ geoValue: geoPos?.latitude,
83
+ expectedRefPositive: "N",
84
+ expectedRefNegative: "S",
85
+ max: 90,
86
+ coordinateType: "Latitude",
87
+ }, warnings);
88
+ const lonResult = (0, CoordinateParser_1.processCoordinate)({
89
+ value: longitude,
90
+ ref: tags.GPSLongitudeRef,
91
+ geoValue: geoPos?.longitude,
92
+ expectedRefPositive: "E",
93
+ expectedRefNegative: "W",
94
+ max: 180,
95
+ coordinateType: "Longitude",
96
+ }, warnings);
97
+ if (latResult.isInvalid || lonResult.isInvalid) {
98
+ return { invalid: true, warnings };
99
+ }
100
+ return {
101
+ result: {
102
+ GPSLatitude: latResult.value,
103
+ GPSLongitude: lonResult.value,
104
+ GPSLatitudeRef: latResult.ref,
105
+ GPSLongitudeRef: lonResult.ref,
106
+ },
107
+ invalid: false,
108
+ warnings,
109
+ };
110
+ }
111
+ catch (e) {
112
+ warnings.push(`Error parsing coordinates: ${e}`);
113
+ return { invalid: true, warnings };
114
+ }
115
+ }
116
+ //# sourceMappingURL=GPS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GPS.js","sourceRoot":"","sources":["../src/GPS.ts"],"names":[],"mappings":"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"}
package/dist/GeoTz.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"GeoTz.js","sourceRoot":"","sources":["../src/GeoTz.ts"],"names":[],"mappings":";;;;;AAMA,sBAEC;AARD,0EAAiD;AAGjD;;GAEG;AACH,SAAgB,KAAK,CAAC,GAAW,EAAE,GAAW;IAC5C,OAAO,IAAA,mBAAS,EAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC"}
1
+ {"version":3,"file":"GeoTz.js","sourceRoot":"","sources":["../src/GeoTz.ts"],"names":[],"mappings":";;;;;AAMA,sBAEC;AARD,0EAAkD;AAGlD;;GAEG;AACH,SAAgB,KAAK,CAAC,GAAW,EAAE,GAAW;IAC5C,OAAO,IAAA,mBAAS,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC"}
@@ -1,4 +1,4 @@
1
- export declare const GeolocationTagNames: ("GeolocationBearing" | "GeolocationCity" | "GeolocationCountry" | "GeolocationCountryCode" | "GeolocationDistance" | "GeolocationFeatureCode" | "GeolocationFeatureType" | "GeolocationPopulation" | "GeolocationPosition" | "GeolocationRegion" | "GeolocationSubregion" | "GeolocationTimeZone")[];
1
+ export declare const GeolocationTagNames: (keyof GeolocationTags)[];
2
2
  /**
3
3
  * Is the given tag name intrinsic to the content of a given file? In other
4
4
  * words, is it not an artifact of a metadata field?
@@ -2,20 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GeolocationTagNames = void 0;
4
4
  exports.isGeolocationTag = isGeolocationTag;
5
- exports.GeolocationTagNames = [
6
- "GeolocationBearing",
7
- "GeolocationCity",
8
- "GeolocationCountry",
9
- "GeolocationCountryCode",
10
- "GeolocationDistance",
11
- "GeolocationFeatureCode",
12
- "GeolocationFeatureType",
13
- "GeolocationPopulation",
14
- "GeolocationPosition",
15
- "GeolocationRegion",
16
- "GeolocationSubregion",
17
- "GeolocationTimeZone",
18
- ];
5
+ const Object_1 = require("./Object");
6
+ exports.GeolocationTagNames = (0, Object_1.keysOf)({
7
+ GeolocationBearing: true,
8
+ GeolocationCity: true,
9
+ GeolocationCountry: true,
10
+ GeolocationCountryCode: true,
11
+ GeolocationDistance: true,
12
+ GeolocationFeatureCode: true,
13
+ GeolocationFeatureType: true,
14
+ GeolocationPopulation: true,
15
+ GeolocationPosition: true,
16
+ GeolocationRegion: true,
17
+ GeolocationSubregion: true,
18
+ GeolocationTimeZone: true,
19
+ GeolocationWarning: true,
20
+ });
19
21
  /**
20
22
  * Is the given tag name intrinsic to the content of a given file? In other
21
23
  * words, is it not an artifact of a metadata field?
@@ -1 +1 @@
1
- {"version":3,"file":"GeolocationTags.js","sourceRoot":"","sources":["../src/GeolocationTags.ts"],"names":[],"mappings":";;;AAmBA,4CAEC;AArBY,QAAA,mBAAmB,GAAG;IACjC,oBAAoB;IACpB,iBAAiB;IACjB,oBAAoB;IACpB,wBAAwB;IACxB,qBAAqB;IACrB,wBAAwB;IACxB,wBAAwB;IACxB,uBAAuB;IACvB,qBAAqB;IACrB,mBAAmB;IACnB,sBAAsB;IACtB,qBAAqB;CACc,CAAA;AAErC;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAO,2BAAmB,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAA;AAClD,CAAC"}
1
+ {"version":3,"file":"GeolocationTags.js","sourceRoot":"","sources":["../src/GeolocationTags.ts"],"names":[],"mappings":";;;AAsBA,4CAEC;AAxBD,qCAAkC;AAErB,QAAA,mBAAmB,GAAG,IAAA,eAAM,EAAkB;IACzD,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,IAAI;IACxB,sBAAsB,EAAE,IAAI;IAC5B,mBAAmB,EAAE,IAAI;IACzB,sBAAsB,EAAE,IAAI;IAC5B,sBAAsB,EAAE,IAAI;IAC5B,qBAAqB,EAAE,IAAI;IAC3B,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,IAAI;IACvB,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,kBAAkB,EAAE,IAAI;CACzB,CAAqC,CAAC;AAEvC;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAO,2BAAmB,CAAC,QAAQ,CAAC,IAA6B,CAAC,CAAC;AACrE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"IsWarning.js","sourceRoot":"","sources":["../src/IsWarning.ts"],"names":[],"mappings":";;AAgBA,8BAIC;AAnBD,qCAAqC;AAMrC,uEAAuE;AAEvE,MAAM,SAAS,GAAG,0CAA0C,CAAA;AAE5D;;;;GAIG;AACH,SAAgB,SAAS,CAAC,GAA0B;IAClD,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IAC5B,MAAM,GAAG,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,YAAG,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAClE,OAAO,IAAA,cAAK,EAAC,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1C,CAAC"}
1
+ {"version":3,"file":"IsWarning.js","sourceRoot":"","sources":["../src/IsWarning.ts"],"names":[],"mappings":";;AAgBA,8BAIC;AAnBD,qCAAsC;AAMtC,uEAAuE;AAEvE,MAAM,SAAS,GAAG,0CAA0C,CAAC;AAE7D;;;;GAIG;AACH,SAAgB,SAAS,CAAC,GAA0B;IAClD,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,GAAG,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,YAAG,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,OAAO,IAAA,cAAK,EAAC,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC"}
package/dist/IsWin32.js CHANGED
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.isWin32 = void 0;
27
37
  const _os = __importStar(require("node:os"));
@@ -1 +1 @@
1
- {"version":3,"file":"IsWin32.js","sourceRoot":"","sources":["../src/IsWin32.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA8B;AAC9B,iCAA6B;AAEhB,QAAA,OAAO,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAA"}
1
+ {"version":3,"file":"IsWin32.js","sourceRoot":"","sources":["../src/IsWin32.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,iCAA8B;AAEjB,QAAA,OAAO,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC"}
package/dist/JSON.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseJSON = parseJSON;
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
4
5
  const BinaryField_1 = require("./BinaryField");
5
6
  const ExifDate_1 = require("./ExifDate");
6
7
  const ExifDateTime_1 = require("./ExifDateTime");
@@ -12,6 +13,8 @@ const Revivers = {
12
13
  ExifTime: (ea) => ExifTime_1.ExifTime.fromJSON(ea),
13
14
  };
14
15
  function parseJSON(s) {
15
- return JSON.parse(s, (_key, value) => { var _a, _b; return (_b = (_a = Revivers[value === null || value === void 0 ? void 0 : value._ctor]) === null || _a === void 0 ? void 0 : _a.call(Revivers, value)) !== null && _b !== void 0 ? _b : value; });
16
+ return JSON.parse(s, (_key, value) => {
17
+ return Revivers[value?._ctor]?.(value) ?? value;
18
+ });
16
19
  }
17
20
  //# sourceMappingURL=JSON.js.map
package/dist/JSON.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"JSON.js","sourceRoot":"","sources":["../src/JSON.ts"],"names":[],"mappings":";;AAYA,8BAKC;AAjBD,+CAA2C;AAC3C,yCAAqC;AACrC,iDAA6C;AAC7C,yCAAqC;AAErC,MAAM,QAAQ,GAAQ;IACpB,WAAW,EAAE,CAAC,EAAO,EAAE,EAAE,CAAC,yBAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;IAClD,YAAY,EAAE,CAAC,EAAO,EAAE,EAAE,CAAC,2BAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;IACpD,QAAQ,EAAE,CAAC,EAAO,EAAE,EAAE,CAAC,mBAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5C,QAAQ,EAAE,CAAC,EAAO,EAAE,EAAE,CAAC,mBAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;CAC7C,CAAA;AAED,SAAgB,SAAS,CAAC,CAAS;IACjC,OAAO,IAAI,CAAC,KAAK,CACf,CAAC,EACD,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,eAAC,OAAA,MAAA,MAAA,QAAQ,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,yDAAG,KAAK,CAAC,mCAAI,KAAK,CAAA,EAAA,CAC1D,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"JSON.js","sourceRoot":"","sources":["../src/JSON.ts"],"names":[],"mappings":";;AAaA,8BAIC;AAjBD,uDAAuD;AACvD,+CAA4C;AAC5C,yCAAsC;AACtC,iDAA8C;AAC9C,yCAAsC;AAEtC,MAAM,QAAQ,GAAG;IACf,WAAW,EAAE,CAAC,EAAO,EAAE,EAAE,CAAC,yBAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;IAClD,YAAY,EAAE,CAAC,EAAO,EAAE,EAAE,CAAC,2BAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;IACpD,QAAQ,EAAE,CAAC,EAAO,EAAE,EAAE,CAAC,mBAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5C,QAAQ,EAAE,CAAC,EAAO,EAAE,EAAE,CAAC,mBAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;CACE,CAAC;AAEjD,SAAgB,SAAS,CAAC,CAAS;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,KAAU,EAAE,EAAE;QACxC,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/Lazy.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.lazy = lazy;
4
+ const ErrorsAndWarnings_1 = require("./ErrorsAndWarnings");
4
5
  function lazy(thunk) {
5
6
  let invoked = false;
6
7
  let result;
@@ -12,7 +13,7 @@ function lazy(thunk) {
12
13
  result = thunk();
13
14
  }
14
15
  catch (e) {
15
- error = e;
16
+ error = (0, ErrorsAndWarnings_1.toError)(e);
16
17
  throw e;
17
18
  }
18
19
  }
package/dist/Lazy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Lazy.js","sourceRoot":"","sources":["../src/Lazy.ts"],"names":[],"mappings":";;AAAA,oBAiBC;AAjBD,SAAgB,IAAI,CAAI,KAAc;IACpC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,MAAS,CAAA;IACb,IAAI,KAAY,CAAA;IAChB,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,OAAO,GAAG,IAAI,CAAA;gBACd,MAAM,GAAG,KAAK,EAAE,CAAA;YAClB,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,KAAK,GAAG,CAAC,CAAA;gBACT,MAAM,CAAC,CAAA;YACT,CAAC;QACH,CAAC;QACD,IAAI,KAAK,IAAI,IAAI;YAAE,MAAM,KAAK,CAAA;QAC9B,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"Lazy.js","sourceRoot":"","sources":["../src/Lazy.ts"],"names":[],"mappings":";;AAEA,oBAiBC;AAnBD,2DAA8C;AAE9C,SAAgB,IAAI,CAAI,KAAc;IACpC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,MAAS,CAAC;IACd,IAAI,KAAY,CAAC;IACjB,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,GAAG,KAAK,EAAE,CAAC;YACnB,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,KAAK,GAAG,IAAA,2BAAO,EAAC,CAAC,CAAC,CAAC;gBACnB,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC;QACD,IAAI,KAAK,IAAI,IAAI;YAAE,MAAM,KAAK,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
package/dist/Maybe.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Maybe.js","sourceRoot":"","sources":["../src/Maybe.ts"],"names":[],"mappings":";;AAGA,kBAEC;AAED,oBAMC;AAED,sBAWC;AAED,8CAMC;AAKD,wBAEC;AAtCD,SAAgB,GAAG,CAAO,MAAoB,EAAE,CAAc;IAC5D,OAAO,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAC/C,CAAC;AAED,SAAgB,IAAI,CAClB,CAAe,EACf,CAAe,EACf,CAAoB;IAEpB,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACrD,CAAC;AAED,SAAgB,KAAK,CACnB,IAAwB,EACxB,CAAqB;IAErB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACd,IAAI,CAAC,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IACD,OAAM;AACR,CAAC;AAED,SAAgB,iBAAiB,CAAI,IAA8B;IACjE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,CAAC,EAAE,CAAA;QAClB,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO,MAAM,CAAA;IACnC,CAAC;IACD,OAAM;AACR,CAAC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAI,CAAW;IACnC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AAClC,CAAC"}
1
+ {"version":3,"file":"Maybe.js","sourceRoot":"","sources":["../src/Maybe.ts"],"names":[],"mappings":";;AAGA,kBAEC;AAED,oBAMC;AAED,sBAWC;AAED,8CAMC;AAKD,wBAEC;AAtCD,SAAgB,GAAG,CAAO,MAAoB,EAAE,CAAc;IAC5D,OAAO,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,IAAI,CAClB,CAAe,EACf,CAAe,EACf,CAAoB;IAEpB,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,KAAK,CACnB,IAAwB,EACxB,CAAqB;IAErB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO;AACT,CAAC;AAED,SAAgB,iBAAiB,CAAI,IAA8B;IACjE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO,MAAM,CAAC;IACpC,CAAC;IACD,OAAO;AACT,CAAC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAI,CAAW;IACnC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC"}
package/dist/Number.d.ts CHANGED
@@ -1,4 +1,19 @@
1
1
  import { Maybe } from "./Maybe";
2
- export declare function isNumber(n: any): n is number;
3
- export declare function toFloat(n: any): Maybe<number>;
4
- export declare function toInt(n: any): Maybe<number>;
2
+ export declare function isNumber(n: unknown): n is number;
3
+ export declare function isInteger(n: unknown): n is number;
4
+ export declare function isFloat(n: unknown): n is number;
5
+ export declare function toFloat(n: unknown): Maybe<number>;
6
+ export declare function toInt(n: unknown): Maybe<number>;
7
+ /**
8
+ * Rounds a number to a specified number of decimal places.
9
+ *
10
+ * @param value - The number to round
11
+ * @param precision - The number of decimal places to retain
12
+ * @returns The rounded number with specified precision
13
+ *
14
+ * @example
15
+ * roundToDecimalPlaces(3.14159, 2) // Returns 3.14
16
+ * roundToDecimalPlaces(123.456789, 3) // Returns 123.457
17
+ * roundToDecimalPlaces(0.0001234, 4) // Returns 0.0001
18
+ */
19
+ export declare function roundToDecimalPlaces(value: number, precision: number): number;
package/dist/Number.js CHANGED
@@ -1,18 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isNumber = isNumber;
4
+ exports.isInteger = isInteger;
5
+ exports.isFloat = isFloat;
4
6
  exports.toFloat = toFloat;
5
7
  exports.toInt = toInt;
8
+ exports.roundToDecimalPlaces = roundToDecimalPlaces;
6
9
  function isNumber(n) {
7
10
  return typeof n === "number" && isFinite(n);
8
11
  }
12
+ function isInteger(n) {
13
+ return isNumber(n) && Number.isInteger(n);
14
+ }
15
+ function isFloat(n) {
16
+ return isNumber(n) && !Number.isInteger(n);
17
+ }
9
18
  function toFloat(n) {
10
19
  if (n == null)
11
20
  return;
12
21
  if (isNumber(n))
13
22
  return n;
14
23
  try {
15
- return parseFloat(String(n).trim());
24
+ const f = parseFloat(String(n).trim());
25
+ return isNumber(f) ? f : undefined;
16
26
  }
17
27
  catch {
18
28
  return undefined;
@@ -32,4 +42,29 @@ function toInt(n) {
32
42
  return undefined;
33
43
  }
34
44
  }
45
+ /**
46
+ * Rounds a number to a specified number of decimal places.
47
+ *
48
+ * @param value - The number to round
49
+ * @param precision - The number of decimal places to retain
50
+ * @returns The rounded number with specified precision
51
+ *
52
+ * @example
53
+ * roundToDecimalPlaces(3.14159, 2) // Returns 3.14
54
+ * roundToDecimalPlaces(123.456789, 3) // Returns 123.457
55
+ * roundToDecimalPlaces(0.0001234, 4) // Returns 0.0001
56
+ */
57
+ function roundToDecimalPlaces(value, precision) {
58
+ // Handle edge cases
59
+ if (!isNumber(value))
60
+ throw new Error("Value must be a number");
61
+ if (precision < 0)
62
+ throw new Error("Precision must be non-negative");
63
+ if (value === 0)
64
+ return 0;
65
+ const multiplier = Math.pow(10, precision);
66
+ return Math.abs(value) < Number.EPSILON
67
+ ? 0
68
+ : Math.round(value * multiplier) / multiplier;
69
+ }
35
70
  //# sourceMappingURL=Number.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Number.js","sourceRoot":"","sources":["../src/Number.ts"],"names":[],"mappings":";;AAEA,4BAEC;AAED,0BAQC;AAED,sBAWC;AAzBD,SAAgB,QAAQ,CAAC,CAAM;IAC7B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED,SAAgB,OAAO,CAAC,CAAM;IAC5B,IAAI,CAAC,IAAI,IAAI;QAAE,OAAM;IACrB,IAAI,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAA;IACzB,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAgB,KAAK,CAAC,CAAM;IAC1B,IAAI,CAAC,IAAI,IAAI;QAAE,OAAM;IACrB,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,kEAAkE;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACtB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"Number.js","sourceRoot":"","sources":["../src/Number.ts"],"names":[],"mappings":";;AAEA,4BAEC;AAED,8BAEC;AAED,0BAEC;AAED,0BASC;AAED,sBAWC;AAcD,oDAWC;AA3DD,SAAgB,QAAQ,CAAC,CAAU;IACjC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,SAAS,CAAC,CAAU;IAClC,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,OAAO,CAAC,CAAU;IAChC,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAgB,OAAO,CAAC,CAAU;IAChC,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO;IACtB,IAAI,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAgB,KAAK,CAAC,CAAU;IAC9B,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO;IACtB,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,kEAAkE;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,oBAAoB,CAAC,KAAa,EAAE,SAAiB;IACnE,oBAAoB;IACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAChE,IAAI,SAAS,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACrE,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAE3C,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO;QACrC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC;AAClD,CAAC"}
package/dist/Object.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import { Maybe } from "./Maybe";
2
- export declare function isObject(obj: any): obj is Record<string, any>;
2
+ export declare function isObject(obj: unknown): obj is object;
3
3
  export declare function keys<T extends object, K extends string & keyof T>(o: T): K[];
4
- export declare function isFunction(obj: any): obj is () => any;
5
- export declare function fromEntries(arr: Maybe<[Maybe<string>, any]>[], obj?: any): any;
4
+ export declare function isFunction(obj: unknown): obj is (...args: unknown[]) => unknown;
5
+ export declare function fromEntries(arr: Maybe<[Maybe<string>, unknown]>[], obj?: Record<string, unknown>): Record<string, unknown>;
6
6
  export type Unpick<T, U> = {
7
7
  [P in keyof T]: P extends U ? never : T[P];
8
8
  };
9
- export declare function omit<T extends Record<string, any>, S extends string>(t: T, ...keysToOmit: S[]): Unpick<T, S>;
9
+ export declare function omit<T extends object, S extends string>(t: T, ...keysToOmit: S[]): Unpick<T, S>;
10
10
  /**
11
11
  * Provides a type-safe exhaustive array of keys for a given interface.
12
12
  *
package/dist/Object.js CHANGED
@@ -19,27 +19,25 @@ function isFunction(obj) {
19
19
  }
20
20
  function fromEntries(arr, obj) {
21
21
  if (arr == null || arr.length === 0)
22
- return obj;
22
+ return obj ?? {};
23
23
  // don't use Object.create(null), json stringify will break!
24
24
  for (const ea of arr.filter((ea) => ea != null)) {
25
25
  if (ea != null && Array.isArray(ea)) {
26
26
  const [k, v] = ea;
27
27
  // allow NULL fields:
28
28
  if (k != null && v !== undefined) {
29
- if (typeof obj !== "object")
29
+ if (!isObject(obj))
30
30
  obj = {};
31
31
  obj[k] = v;
32
32
  }
33
33
  }
34
34
  }
35
- return obj;
35
+ return obj ?? {};
36
36
  }
37
37
  function omit(t, ...keysToOmit) {
38
- if (t == null)
39
- return {};
40
- const result = { ...t };
41
- for (const ea of keysToOmit) {
42
- delete result[ea];
38
+ const result = {};
39
+ for (const k of keys(t).filter((ea) => !keysToOmit.includes(ea))) {
40
+ result[k] = t[k];
43
41
  }
44
42
  return result;
45
43
  }
@@ -55,4 +53,6 @@ function omit(t, ...keysToOmit) {
55
53
  function keysOf(t) {
56
54
  return Object.keys(t);
57
55
  }
56
+ // This also doesn't enforce that all keys are present:
57
+ // type RequiredKeys<T> = { [K in keyof Required<T>]: K } extends { [K: string]: infer U } ? U[] : never;
58
58
  //# sourceMappingURL=Object.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Object.js","sourceRoot":"","sources":["../src/Object.ts"],"names":[],"mappings":";;AAEA,4BAEC;AAED,oBAMC;AAED,gCAEC;AAED,kCAiBC;AAID,oBAUC;AAWD,wBAEC;AA5DD,SAAgB,QAAQ,CAAC,GAAQ;IAC/B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAA;AAChD,CAAC;AAED,SAAgB,IAAI,CAA+C,CAAI;IACrE,OAAO,CAAC,IAAI,IAAI;QACd,CAAC,CAAC,EAAE;QACJ,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5B,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAC9B,CAAA;AACf,CAAC;AAED,SAAgB,UAAU,CAAC,GAAQ;IACjC,OAAO,OAAO,GAAG,KAAK,UAAU,CAAA;AAClC,CAAC;AAED,SAAgB,WAAW,CACzB,GAAkC,EAClC,GAAS;IAET,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAA;IAC/C,4DAA4D;IAC5D,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,EAAE,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;YACjB,qBAAqB;YACrB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,GAAG,GAAG,EAAE,CAAA;gBACrC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAID,SAAgB,IAAI,CAClB,CAAI,EACJ,GAAG,UAAe;IAElB,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,EAAS,CAAA;IAC/B,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IACvB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;IACnB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,MAAM,CAAI,CAAkC;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAA;AAC9B,CAAC"}
1
+ {"version":3,"file":"Object.js","sourceRoot":"","sources":["../src/Object.ts"],"names":[],"mappings":";;AAEA,4BAEC;AAED,oBAMC;AAED,gCAIC;AAED,kCAiBC;AAID,oBAWC;AAWD,wBAEC;AA/DD,SAAgB,QAAQ,CAAC,GAAY;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;AACjD,CAAC;AAED,SAAgB,IAAI,CAA+C,CAAI;IACrE,OAAO,CAAC,IAAI,IAAI;QACd,CAAC,CAAC,EAAE;QACJ,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5B,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAC9B,CAAC;AAChB,CAAC;AAED,SAAgB,UAAU,CACxB,GAAY;IAEZ,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC;AACnC,CAAC;AAED,SAAgB,WAAW,CACzB,GAAsC,EACtC,GAA6B;IAE7B,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,IAAI,EAAE,CAAC;IACtD,4DAA4D;IAC5D,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,EAAE,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;YAClB,qBAAqB;YACrB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,GAAG,GAAG,EAAE,CAAC;gBAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,IAAI,EAAE,CAAC;AACnB,CAAC;AAID,SAAgB,IAAI,CAClB,CAAI,EACJ,GAAG,UAAe;IAElB,MAAM,MAAM,GAAG,EAAO,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAC5B,CAAC,EAAE,EAAE,EAAE,CAAC,CAAE,UAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAChC,EAAE,CAAC;QACjB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,MAAsB,CAAC;AAChC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,MAAM,CAAI,CAAkC;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAgB,CAAC;AACvC,CAAC;AAED,uDAAuD;AAEvD,yGAAyG"}
@@ -1 +1 @@
1
- {"version":3,"file":"OnlyZerosRE.js","sourceRoot":"","sources":["../src/OnlyZerosRE.ts"],"names":[],"mappings":";;;AAAA,2EAA2E;AAC3E,8EAA8E;AAC9E,gEAAgE;AACnD,QAAA,WAAW,GAAG,MAAM,CAAA"}
1
+ {"version":3,"file":"OnlyZerosRE.js","sourceRoot":"","sources":["../src/OnlyZerosRE.ts"],"names":[],"mappings":";;;AAAA,2EAA2E;AAC3E,8EAA8E;AAC9E,gEAAgE;AACnD,QAAA,WAAW,GAAG,MAAM,CAAC"}
package/dist/Pick.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Pick.js","sourceRoot":"","sources":["../src/Pick.ts"],"names":[],"mappings":";;AAAA,oBAWC;AAXD,SAAgB,IAAI,CAClB,GAAM,EACN,GAAG,QAAa;IAEhB,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,GAAG,CAAA;IAC3B,MAAM,MAAM,GAAG,EAAS,CAAA;IACxB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QAClB,IAAI,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"Pick.js","sourceRoot":"","sources":["../src/Pick.ts"],"names":[],"mappings":";;AAAA,oBAWC;AAXD,SAAgB,IAAI,CAClB,GAAM,EACN,GAAG,QAAa;IAEhB,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,GAAG,CAAC;IAC5B,MAAM,MAAM,GAAG,EAAgB,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}