exiftool-vendored 32.0.1 → 33.0.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.
package/dist/MWGTags.d.ts CHANGED
@@ -1,32 +1,107 @@
1
1
  import { StrEnum, StrEnumKeys } from "./StrEnum";
2
+ /**
3
+ * Root structure for MWG hierarchical keyword metadata.
4
+ *
5
+ * Contains the top-level hierarchy of keyword structures organized in a tree format.
6
+ */
2
7
  export interface KeywordInfoStruct {
8
+ /**
9
+ * Array of keyword structures representing the top level of the keyword hierarchy.
10
+ */
3
11
  Hierarchy?: KeywordStruct[];
4
12
  }
13
+ /**
14
+ * Individual keyword node in a hierarchical keyword tree.
15
+ *
16
+ * The MWG standard supports unlimited nesting depth, but ExifTool limits
17
+ * extraction to 6 levels to prevent infinite recursion.
18
+ * Example: "Nature > Animals > Mammals > Dogs".
19
+ */
5
20
  export interface KeywordStruct {
21
+ /**
22
+ * Array of nested keyword structures representing child keywords in the hierarchy.
23
+ *
24
+ * Enables multi-level keyword organization by recursively containing additional KeywordStruct entries.
25
+ */
6
26
  Children?: KeywordStruct[];
27
+ /**
28
+ * The keyword text value for this node in the hierarchy.
29
+ *
30
+ * This is the actual keyword string that appears at this level.
31
+ */
7
32
  Keyword: string;
33
+ /**
34
+ * Indicates whether this keyword has been applied/activated in the image metadata.
35
+ */
36
+ Applied?: boolean;
8
37
  }
9
38
  /**
39
+ * MWG (Metadata Working Group) Keywords tags for standardized hierarchical keyword metadata.
40
+ *
41
+ * These tags enable consistent keyword organization across different metadata formats (XMP, IPTC, EXIF).
42
+ * ExifTool extracts hierarchical keywords up to 6 levels deep to avoid infinite recursion.
43
+ *
10
44
  * Note: this is a partial interface: ExifTool extracts more fields from this
11
45
  * group type (but I haven't seen those in the wild).
12
46
  *
13
47
  * @see https://exiftool.org/TagNames/MWG.html#Keywords
14
48
  */
15
49
  export interface MWGKeywordTags {
50
+ /**
51
+ * Array of structured hierarchical keyword information.
52
+ *
53
+ * Each entry contains a Hierarchy field with nested KeywordStruct objects representing
54
+ * the complete keyword tree. This is the primary field for accessing full keyword hierarchies.
55
+ */
16
56
  KeywordInfo?: KeywordInfoStruct[];
57
+ /**
58
+ * Direct array of hierarchical keyword structures.
59
+ *
60
+ * Alternative representation providing direct access to keyword tree nodes without
61
+ * the KeywordInfo wrapper. Supports multi-level keyword organization with recursive Children fields.
62
+ */
17
63
  HierarchicalKeywords?: KeywordStruct[];
18
64
  }
65
+ export declare const MWGKeywordTagNames: StrEnum<"KeywordInfo" | "HierarchicalKeywords">;
66
+ export type MWGKeywordTagName = StrEnumKeys<typeof MWGKeywordTagNames>;
67
+ /**
68
+ * Information about a single collection that groups related images.
69
+ *
70
+ * Collections enable organizing images into named groups (e.g., "Summer Vacation 2024", "Portfolio Selections").
71
+ * The MWG standard uses both a human-readable name and a unique identifier for each collection.
72
+ */
19
73
  export interface CollectionInfo {
74
+ /**
75
+ * Human-readable display name for the collection.
76
+ *
77
+ * This is the name users see when browsing collections (e.g., "Best Photos 2024").
78
+ */
20
79
  CollectionName: string;
80
+ /**
81
+ * Unique identifier (URI) for the collection.
82
+ *
83
+ * Provides a globally unique reference to distinguish between collections with the same name.
84
+ * Typically formatted as a URI or UUID to ensure uniqueness across different systems.
85
+ */
21
86
  CollectionURI: string;
22
87
  }
23
88
  /**
89
+ * MWG (Metadata Working Group) Collections tags for standardized image grouping metadata.
90
+ *
91
+ * Collections allow images to be organized into named groups while maintaining their physical location.
92
+ * This provides a standardized way to group related images across different metadata formats (XMP, IPTC, EXIF).
93
+ *
24
94
  * @see https://exiftool.org/TagNames/MWG.html#Collections
25
95
  */
26
96
  export interface MWGCollectionsTags {
97
+ /**
98
+ * Array of collections that include this image.
99
+ *
100
+ * An image can belong to multiple collections. Each collection is identified by both a
101
+ * human-readable name and a unique URI, enabling consistent collection management across
102
+ * different applications and systems.
103
+ */
27
104
  Collections?: CollectionInfo[];
28
105
  }
29
- export declare const MWGKeywordTagNames: StrEnum<"KeywordInfo" | "HierarchicalKeywords">;
30
- export type MWGKeywordTagName = StrEnumKeys<typeof MWGKeywordTagNames>;
31
106
  export declare const MWGCollectionsTagNames: StrEnum<"Collections">;
32
107
  export type MWGCollectionsTagName = StrEnumKeys<typeof MWGCollectionsTagNames>;
@@ -1 +1 @@
1
- {"version":3,"file":"MWGTags.js","sourceRoot":"","sources":["../src/MWGTags.ts"],"names":[],"mappings":";;;AAAA,uCAA0D;AAkC7C,QAAA,kBAAkB,GAAG,IAAA,iBAAO,EACvC,aAAa,EACb,sBAAsB,CACiB,CAAC;AAG7B,QAAA,sBAAsB,GAAG,IAAA,iBAAO,EAAC,aAAa,CAE1D,CAAC"}
1
+ {"version":3,"file":"MWGTags.js","sourceRoot":"","sources":["../src/MWGTags.ts"],"names":[],"mappings":";;;AAEA,uCAA0D;AAyE7C,QAAA,kBAAkB,GAAG,IAAA,iBAAO,EACvC,aAAa,EACb,sBAAsB,CACiB,CAAC;AAkD7B,QAAA,sBAAsB,GAAG,IAAA,iBAAO,EAAC,aAAa,CAE1D,CAAC"}
package/dist/StrEnum.d.ts CHANGED
@@ -171,5 +171,3 @@ export type StrEnumHelpers<T extends string> = {
171
171
  export type StrEnum<T extends string> = StrEnumType<T> & StrEnumHelpers<T>;
172
172
  export type StrEnumKeys<Type> = Type extends StrEnum<infer X> ? X : never;
173
173
  export declare function strEnum<T extends string>(...o: T[]): StrEnum<T>;
174
- export declare const Directions: StrEnum<"North" | "South" | "East" | "West">;
175
- export type Direction = StrEnumKeys<typeof Directions>;
package/dist/StrEnum.js CHANGED
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Directions = void 0;
4
3
  exports.strEnum = strEnum;
5
4
  function lessThan(a, b) {
6
5
  return a == null || b == null ? false : a < b;
@@ -71,5 +70,8 @@ function strEnum(...o) {
71
70
  };
72
71
  }
73
72
  // Example usage:
74
- exports.Directions = strEnum("North", "South", "East", "West");
73
+ // export const Directions = strEnum("North", "South", "East", "West");
74
+ // export type Direction = StrEnumKeys<typeof Directions>;
75
+ // assert the strEnum exactly matches the field names of an interface:
76
+ // declare const _: Expect<Equal<Direction, keyof DirectionInterface>>
75
77
  //# sourceMappingURL=StrEnum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StrEnum.js","sourceRoot":"","sources":["../src/StrEnum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StrEnum.js","sourceRoot":"","sources":["../src/StrEnum.ts"],"names":[],"mappings":";;AAwMA,0BAwFC;AA5FD,SAAS,QAAQ,CAAC,CAAgB,EAAE,CAAgB;IAClD,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,OAAO,CAAmB,GAAG,CAAM;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAQ,CAAC;IACrD,4EAA4E;IAC5E,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAC3C,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CACrC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAY,EAAE,GAAG,CAAC,CAAC,CAC7C,CAAC;IAEF,MAAM,IAAI,GAAmB,EAAoB,CAAC;IAClD,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,4EAA4E;IAC5E,MAAM,KAAK,GAAG,CAAC,CAAmB,EAAE,EAAE,CACpC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,CAAC,CAAmB,EAAE,EAAE,CACtC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1C,MAAM,OAAO,GAAG,CAAC,CAAmB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC;IAErE,MAAM,QAAQ,GAAG,CAAC,CAAmB,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAErE,MAAM,IAAI,GAAG,CAAc,GAAG,CAAM,EAAmB,EAAE,CACvD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAuB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAO,CAAC,CAAC,CAAC;IAElE,MAAM,IAAI,GAAG,CAAc,GAAG,CAAM,EAAmB,EAAE,CACvD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAO,CAAC,CAAC,CAAC;IAEnE,MAAM,OAAO,GAAG,CAAC,CAAmB,EAAY,EAAE,CAChD,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAErD,MAAM,UAAU,GAAG,CAAC,GAAG,CAAqB,EAAY,EAAE;QACxD,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO;IACT,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAI,CAAmB,EAAE,CAAc,EAAE,EAAE,CAC1D,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtC,MAAM,GAAG,GAAG,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE;QACvD,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACtB,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI;YAC7B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,GAAG,EAAE;gBACP,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,EAAE,GAAG,EAAE;oBACP,CAAC,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,EAAE,GAAG,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5D,MAAM,IAAI,GAAG,CAAC,CAAmB,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAE3D,OAAO;QACL,GAAG,IAAI;QACP,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,EAAE,QAAQ,EAAE,qBAAqB;QACpC,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,UAAU;QACV,QAAQ;QACR,GAAG;QACH,EAAE;QACF,IAAI;QACJ,UAAU;QACV,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QAClD,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS;KAChC,CAAC;AACJ,CAAC;AAED,iBAAiB;AAEjB,uEAAuE;AACvE,0DAA0D;AAE1D,sEAAsE;AAEtE,sEAAsE"}