@svta/cml-id3 0.19.0 → 0.21.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 (96) hide show
  1. package/README.md +17 -0
  2. package/dist/index.d.ts +221 -15
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +440 -13
  5. package/dist/index.js.map +1 -1
  6. package/package.json +4 -23
  7. package/NOTICE +0 -39
  8. package/dist/DecodedId3Frame.d.ts +0 -21
  9. package/dist/DecodedId3Frame.d.ts.map +0 -1
  10. package/dist/DecodedId3Frame.js +0 -2
  11. package/dist/DecodedId3Frame.js.map +0 -1
  12. package/dist/ID3_SCHEME_ID_URI.d.ts +0 -11
  13. package/dist/ID3_SCHEME_ID_URI.d.ts.map +0 -1
  14. package/dist/ID3_SCHEME_ID_URI.js +0 -11
  15. package/dist/ID3_SCHEME_ID_URI.js.map +0 -1
  16. package/dist/Id3Frame.d.ts +0 -9
  17. package/dist/Id3Frame.d.ts.map +0 -1
  18. package/dist/Id3Frame.js +0 -2
  19. package/dist/Id3Frame.js.map +0 -1
  20. package/dist/canParseId3.d.ts +0 -13
  21. package/dist/canParseId3.d.ts.map +0 -1
  22. package/dist/canParseId3.js +0 -18
  23. package/dist/canParseId3.js.map +0 -1
  24. package/dist/getId3Data.d.ts +0 -14
  25. package/dist/getId3Data.d.ts.map +0 -1
  26. package/dist/getId3Data.js +0 -35
  27. package/dist/getId3Data.js.map +0 -1
  28. package/dist/getId3Frames.d.ts +0 -13
  29. package/dist/getId3Frames.d.ts.map +0 -1
  30. package/dist/getId3Frames.js +0 -46
  31. package/dist/getId3Frames.js.map +0 -1
  32. package/dist/getId3Timestamp.d.ts +0 -12
  33. package/dist/getId3Timestamp.d.ts.map +0 -1
  34. package/dist/getId3Timestamp.js +0 -24
  35. package/dist/getId3Timestamp.js.map +0 -1
  36. package/dist/isId3TimestampFrame.d.ts +0 -13
  37. package/dist/isId3TimestampFrame.d.ts.map +0 -1
  38. package/dist/isId3TimestampFrame.js +0 -16
  39. package/dist/isId3TimestampFrame.js.map +0 -1
  40. package/dist/tsconfig.tsbuildinfo +0 -1
  41. package/dist/util/RawFrame.d.ts +0 -12
  42. package/dist/util/RawFrame.d.ts.map +0 -1
  43. package/dist/util/RawFrame.js +0 -2
  44. package/dist/util/RawFrame.js.map +0 -1
  45. package/dist/util/decodeId3Frame.d.ts +0 -14
  46. package/dist/util/decodeId3Frame.d.ts.map +0 -1
  47. package/dist/util/decodeId3Frame.js +0 -27
  48. package/dist/util/decodeId3Frame.js.map +0 -1
  49. package/dist/util/decodeId3ImageFrame.d.ts +0 -4
  50. package/dist/util/decodeId3ImageFrame.d.ts.map +0 -1
  51. package/dist/util/decodeId3ImageFrame.js +0 -46
  52. package/dist/util/decodeId3ImageFrame.js.map +0 -1
  53. package/dist/util/decodeId3PrivFrame.d.ts +0 -14
  54. package/dist/util/decodeId3PrivFrame.d.ts.map +0 -1
  55. package/dist/util/decodeId3PrivFrame.js +0 -23
  56. package/dist/util/decodeId3PrivFrame.js.map +0 -1
  57. package/dist/util/decodeId3TextFrame.d.ts +0 -14
  58. package/dist/util/decodeId3TextFrame.d.ts.map +0 -1
  59. package/dist/util/decodeId3TextFrame.js +0 -37
  60. package/dist/util/decodeId3TextFrame.js.map +0 -1
  61. package/dist/util/decodeId3UrlFrame.d.ts +0 -14
  62. package/dist/util/decodeId3UrlFrame.d.ts.map +0 -1
  63. package/dist/util/decodeId3UrlFrame.js +0 -35
  64. package/dist/util/decodeId3UrlFrame.js.map +0 -1
  65. package/dist/util/getId3FrameData.d.ts +0 -13
  66. package/dist/util/getId3FrameData.d.ts.map +0 -1
  67. package/dist/util/getId3FrameData.js +0 -24
  68. package/dist/util/getId3FrameData.js.map +0 -1
  69. package/dist/util/isId3Footer.d.ts +0 -13
  70. package/dist/util/isId3Footer.d.ts.map +0 -1
  71. package/dist/util/isId3Footer.js +0 -35
  72. package/dist/util/isId3Footer.js.map +0 -1
  73. package/dist/util/isId3Header.d.ts +0 -13
  74. package/dist/util/isId3Header.d.ts.map +0 -1
  75. package/dist/util/isId3Header.js +0 -45
  76. package/dist/util/isId3Header.js.map +0 -1
  77. package/dist/util/readId3Size.d.ts +0 -13
  78. package/dist/util/readId3Size.d.ts.map +0 -1
  79. package/dist/util/readId3Size.js +0 -20
  80. package/dist/util/readId3Size.js.map +0 -1
  81. package/dist/util/readId3Timestamp.d.ts +0 -13
  82. package/dist/util/readId3Timestamp.d.ts.map +0 -1
  83. package/dist/util/readId3Timestamp.js +0 -26
  84. package/dist/util/readId3Timestamp.js.map +0 -1
  85. package/dist/util/toArrayBuffer.d.ts +0 -4
  86. package/dist/util/toArrayBuffer.d.ts.map +0 -1
  87. package/dist/util/toArrayBuffer.js +0 -16
  88. package/dist/util/toArrayBuffer.js.map +0 -1
  89. package/dist/util/utf8.d.ts +0 -2
  90. package/dist/util/utf8.d.ts.map +0 -1
  91. package/dist/util/utf8.js +0 -31
  92. package/dist/util/utf8.js.map +0 -1
  93. package/dist/util/utf8ArrayToStr.d.ts +0 -12
  94. package/dist/util/utf8ArrayToStr.d.ts.map +0 -1
  95. package/dist/util/utf8ArrayToStr.js +0 -19
  96. package/dist/util/utf8ArrayToStr.js.map +0 -1
package/README.md ADDED
@@ -0,0 +1,17 @@
1
+ # @svta/cml-id3
2
+
3
+ ID3 tag parsing functionality.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm i @svta/cml-id3
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```typescript
14
+ import { getId3Frames } from "@svta/cml-id3";
15
+
16
+ const frames = getId3Frames(id3Data);
17
+ ```
package/dist/index.d.ts CHANGED
@@ -1,17 +1,223 @@
1
+ //#region src/canParseId3.d.ts
1
2
  /**
2
- * A collection of tools for working with ID3v2 tags.
3
- *
4
- * @see {@link https://mutagen-specs.readthedocs.io/en/latest/id3/id3v2.4.0-structure.html | ID3v2.4.0 Structure}
5
- * @see {@link https://mutagen-specs.readthedocs.io/en/latest/id3/id3v2.4.0-frames.html | ID3v2.4.0 Frames}
6
- *
7
- * @packageDocumentation
8
- */
9
- export * from './canParseId3.js';
10
- export type * from './DecodedId3Frame.js';
11
- export * from './getId3Data.js';
12
- export * from './getId3Frames.js';
13
- export * from './getId3Timestamp.js';
14
- export * from './ID3_SCHEME_ID_URI.js';
15
- export type * from './Id3Frame.js';
16
- export * from './isId3TimestampFrame.js';
3
+ * Checks if the given data contains an ID3 tag.
4
+ *
5
+ * @param data - The data to check
6
+ * @param offset - The offset at which to start checking
7
+ *
8
+ * @returns `true` if an ID3 tag is found
9
+ *
10
+ *
11
+ * @beta
12
+ */
13
+ declare function canParseId3(data: Uint8Array, offset: number): boolean;
14
+ //#endregion
15
+ //#region src/DecodedId3Frame.d.ts
16
+ /**
17
+ * Decoded ID3 frame.
18
+ *
19
+ *
20
+ * @beta
21
+ */
22
+ type DecodedId3Frame<T> = {
23
+ /**
24
+ * The four letter frame ID.
25
+ */
26
+ key: string;
27
+ /**
28
+ * The data payload.
29
+ */
30
+ data: T;
31
+ /**
32
+ * A text description of the frame if provided.
33
+ */
34
+ info?: any;
35
+ };
36
+ //#endregion
37
+ //#region src/getId3Data.d.ts
38
+ /**
39
+ * Returns any adjacent ID3 tags found in data starting at offset, as one block of data
40
+ *
41
+ * @param data - The data to search in
42
+ * @param offset - The offset at which to start searching
43
+ *
44
+ * @returns The block of data containing any ID3 tags found
45
+ * or `undefined` if no header is found at the starting offset
46
+ *
47
+ * @internal
48
+ *
49
+ */
50
+ declare function getId3Data(data: Uint8Array, offset: number): Uint8Array | undefined;
51
+ //#endregion
52
+ //#region src/Id3Frame.d.ts
53
+ /**
54
+ * ID3 frame.
55
+ *
56
+ *
57
+ * @beta
58
+ */
59
+ type Id3Frame = DecodedId3Frame<ArrayBuffer | string | number>;
60
+ //#endregion
61
+ //#region src/getId3Frames.d.ts
62
+ /**
63
+ * Returns an array of ID3 frames found in all the ID3 tags in the id3Data
64
+ *
65
+ * @param id3Data - The ID3 data containing one or more ID3 tags
66
+ *
67
+ * @returns Array of ID3 frame objects
68
+ *
69
+ *
70
+ * @beta
71
+ */
72
+ declare function getId3Frames(id3Data: Uint8Array<ArrayBuffer>): Id3Frame[];
73
+ //#endregion
74
+ //#region src/getId3Timestamp.d.ts
75
+ /**
76
+ * Searches for the Elementary Stream timestamp found in the ID3 data chunk
77
+ *
78
+ * @param data - Block of data containing one or more ID3 tags
79
+ *
80
+ * @returns The timestamp
81
+ *
82
+ *
83
+ * @beta
84
+ */
85
+ declare function getId3Timestamp(data: Uint8Array<ArrayBuffer>): number | undefined;
86
+ //#endregion
87
+ //#region src/ID3_SCHEME_ID_URI.d.ts
88
+ /**
89
+ * The scheme ID URI for ID3 tags.
90
+ *
91
+ *
92
+ * @beta
93
+ *
94
+ * @see {@link https://aomediacodec.github.io/id3-emsg/ | Carriage of ID3 Timed Metadata in the Common Media Application Format (CMAF)}
95
+ * @see {@link https://developer.apple.com/documentation/http-live-streaming/about-the-common-media-application-format-with-http-live-streaming-hls#CMAF-Tracks-Segments-Headers-and-Fragments | CMAF Tracks, Segments, Headers, and Fragments}
96
+ */
97
+ declare const ID3_SCHEME_ID_URI = "https://aomedia.org/emsg/ID3";
98
+ //#endregion
99
+ //#region src/isId3TimestampFrame.d.ts
100
+ /**
101
+ * Returns true if the ID3 frame is an Elementary Stream timestamp frame
102
+ *
103
+ * @param frame - the ID3 frame
104
+ *
105
+ * @returns `true` if the ID3 frame is an Elementary Stream timestamp frame
106
+ *
107
+ * @internal
108
+ *
109
+ */
110
+ declare function isId3TimestampFrame(frame: Id3Frame): boolean;
111
+ //#endregion
112
+ //#region src/util/RawFrame.d.ts
113
+ /**
114
+ * Raw ID3 frame.
115
+ *
116
+ * @internal
117
+ *
118
+ */
119
+ type RawId3Frame = {
120
+ type: string;
121
+ size: number;
122
+ data: Uint8Array<ArrayBuffer>;
123
+ };
124
+ //#endregion
125
+ //#region src/util/decodeId3Frame.d.ts
126
+ /**
127
+ * Decode an ID3 frame.
128
+ *
129
+ * @param frame - the ID3 frame
130
+ *
131
+ * @returns The decoded ID3 frame
132
+ *
133
+ * @internal
134
+ *
135
+ */
136
+ declare function decodeId3Frame(frame: RawId3Frame): Id3Frame | undefined;
137
+ //#endregion
138
+ //#region src/util/decodeId3TextFrame.d.ts
139
+ /**
140
+ * Decodes an ID3 text frame
141
+ *
142
+ * @param frame - the ID3 text frame
143
+ *
144
+ * @returns The decoded ID3 text frame
145
+ *
146
+ * @internal
147
+ *
148
+ */
149
+ declare function decodeId3TextFrame(frame: RawId3Frame): DecodedId3Frame<string> | undefined;
150
+ //#endregion
151
+ //#region src/util/isId3Footer.d.ts
152
+ /**
153
+ * Returns true if an ID3 footer can be found at offset in data
154
+ *
155
+ * @param data - The data to search in
156
+ * @param offset - The offset at which to start searching
157
+ *
158
+ * @returns `true` if an ID3 footer is found
159
+ *
160
+ * @internal
161
+ *
162
+ */
163
+ declare function isId3Footer(data: Uint8Array, offset: number): boolean;
164
+ //#endregion
165
+ //#region src/util/isId3Header.d.ts
166
+ /**
167
+ * Returns true if an ID3 header can be found at offset in data
168
+ *
169
+ * @param data - The data to search in
170
+ * @param offset - The offset at which to start searching
171
+ *
172
+ * @returns `true` if an ID3 header is found
173
+ *
174
+ * @internal
175
+ *
176
+ */
177
+ declare function isId3Header(data: Uint8Array, offset: number): boolean;
178
+ //#endregion
179
+ //#region src/util/readId3Size.d.ts
180
+ /**
181
+ * Read ID3 size
182
+ *
183
+ * @param data - The data to read from
184
+ * @param offset - The offset at which to start reading
185
+ *
186
+ * @returns The size
187
+ *
188
+ * @internal
189
+ *
190
+ */
191
+ declare function readId3Size(data: Uint8Array, offset: number): number;
192
+ //#endregion
193
+ //#region src/util/toArrayBuffer.d.ts
194
+ /**
195
+ * @internal
196
+ */
197
+ type TypedArray = Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | Uint8ClampedArray;
198
+ /**
199
+ * @internal
200
+ */
201
+ declare function toArrayBuffer(view: ArrayBuffer | TypedArray): ArrayBuffer;
202
+ //#endregion
203
+ //#region src/util/utf8.d.ts
204
+ /**
205
+ * @internal
206
+ */
207
+ declare function toUint8(data: BufferSource, offset?: number, length?: number): Uint8Array<ArrayBuffer>;
208
+ //#endregion
209
+ //#region src/util/utf8ArrayToStr.d.ts
210
+ /**
211
+ * Converts a UTF-8 array to a string.
212
+ *
213
+ * @param array - The UTF-8 array to convert
214
+ * @param exitOnNull - Whether to exit on the first null byte
215
+ *
216
+ * @returns The string
217
+ *
218
+ * @internal
219
+ */
220
+ declare function utf8ArrayToStr(array: Uint8Array<ArrayBuffer>, exitOnNull?: boolean): string;
221
+ //#endregion
222
+ export { DecodedId3Frame, ID3_SCHEME_ID_URI, Id3Frame, TypedArray, canParseId3, decodeId3Frame, decodeId3TextFrame, getId3Data, getId3Frames, getId3Timestamp, isId3Footer, isId3Header, isId3TimestampFrame, readId3Size, toArrayBuffer, toUint8, utf8ArrayToStr };
17
223
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,kBAAkB,CAAC;AACjC,mBAAmB,sBAAsB,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,mBAAmB,eAAe,CAAC;AACnC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/canParseId3.ts","../src/DecodedId3Frame.ts","../src/getId3Data.ts","../src/Id3Frame.ts","../src/getId3Frames.ts","../src/getId3Timestamp.ts","../src/ID3_SCHEME_ID_URI.ts","../src/isId3TimestampFrame.ts","../src/util/RawFrame.ts","../src/util/decodeId3Frame.ts","../src/util/decodeId3TextFrame.ts","../src/util/isId3Footer.ts","../src/util/isId3Header.ts","../src/util/readId3Size.ts","../src/util/toArrayBuffer.ts","../src/util/utf8.ts","../src/util/utf8ArrayToStr.ts"],"sourcesContent":[],"mappings":";;AAcA;;;;ACRA;;;;ACUA;;iBFFgB,WAAA,OAAkB;;;;AAAlC;;;;ACRA;KAAY;;;ACUZ;;;;ACRA;QFOO;;;AGMP;EAAiD,IAAA,CAAA,EAAA,GAAA;CAAX;;;;AJPtC;;;;ACRA;;;;ACUA;;;iBAAgB,UAAA,OACT,6BAEJ;;;AFLH;;;;ACRA;;KEEY,QAAA,GAAW,gBAAgB;;;AHMvC;;;;ACRA;;;;ACUA;;iBEKgB,YAAA,UAAsB,WAAW,eAAe;;;;AJPhE;;;;ACRA;;;;ACUA;iBGAgB,eAAA,OAAsB,WAAW;;;;ALFjD;;;;ACRA;;;;ACUgB,cIPH,iBAAA,GJUV,8BAAA;;;AFLH;;;;ACRA;;;;ACUA;;iBKJgB,mBAAA,QAA2B;;;;APE3C;;;;ACRA;KOAY,WAAA;;;ENUZ,IAAgB,EMV8C,UNU9C,CMVyD,WNWlE,CAAA;;;;;;;ADXP;;;;ACUA;;;iBOCgB,cAAA,QAAsB,cAAc;;;;;;ARXpD;;;;ACUA;;;iBQFgB,kBAAA,QAA0B,cAAc;;;;AVAxD;;;;ACRA;;;;ACUA;;iBSLgB,WAAA,OAAkB;;;;AXGlC;;;;ACRA;;;;ACUA;;iBULgB,WAAA,OAAkB;;;;AZGlC;;;;ACRA;;;;ACUA;;iBWLgB,WAAA,OAAkB;;;;AbGlC;;KcXY,UAAA,GACT,YACA,aACA,aACA,cACA,aACA,cACA,eACA,eACA;;AbNH;;iBaWgB,aAAA,OAAoB,cAAc,aAAa;;;;AdH/D;;iBeXgB,OAAA,OACT,iDAGJ,WAAW;;;;AfOd;;;;ACRA;;;;ACUA;iBcJgB,cAAA,QACR,WAAW"}