onelibrary-connect 1.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.
@@ -0,0 +1,70 @@
1
+ /**
2
+ * OneLibrary Database Encryption
3
+ *
4
+ * The database is encrypted with SQLCipher 4. The encryption key is derived from
5
+ * a hardcoded obfuscated blob.
6
+ */
7
+ import * as zlib from 'zlib';
8
+ /**
9
+ * The obfuscated encryption key blob from pyrekordbox
10
+ */
11
+ const BLOB = Buffer.from('PN_1dH8$oLJY)16j_RvM6qphWw`476>;C1cWmI#se(PG`j}~xAjlufj?`#0i{;=glh(SkW)y0>n?YEiD`l%t(', 'ascii');
12
+ /**
13
+ * XOR key used for deobfuscation
14
+ */
15
+ const BLOB_KEY = Buffer.from('657f48f84c437cc1', 'ascii');
16
+ /**
17
+ * Base85 (RFC 1924) decode
18
+ */
19
+ function base85Decode(input) {
20
+ const alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~';
21
+ const charToValue = new Map();
22
+ for (let i = 0; i < alphabet.length; i++) {
23
+ charToValue.set(alphabet[i], i);
24
+ }
25
+ const inputStr = input.toString('ascii');
26
+ const result = [];
27
+ for (let i = 0; i < inputStr.length; i += 5) {
28
+ const chunk = inputStr.slice(i, i + 5);
29
+ let value = 0;
30
+ for (const char of chunk) {
31
+ const v = charToValue.get(char);
32
+ if (v === undefined) {
33
+ throw new Error(`Invalid base85 character: ${char}`);
34
+ }
35
+ value = value * 85 + v;
36
+ }
37
+ const bytes = [
38
+ (value >> 24) & 0xff,
39
+ (value >> 16) & 0xff,
40
+ (value >> 8) & 0xff,
41
+ value & 0xff,
42
+ ];
43
+ const numBytes = chunk.length === 5 ? 4 : chunk.length - 1;
44
+ result.push(...bytes.slice(0, numBytes));
45
+ }
46
+ return Buffer.from(result);
47
+ }
48
+ /**
49
+ * Deobfuscate the blob to get the encryption key
50
+ */
51
+ function deobfuscate(blob) {
52
+ const decoded = base85Decode(blob);
53
+ const xored = Buffer.alloc(decoded.length);
54
+ for (let i = 0; i < decoded.length; i++) {
55
+ xored[i] = decoded[i] ^ BLOB_KEY[i % BLOB_KEY.length];
56
+ }
57
+ const decompressed = zlib.inflateSync(xored);
58
+ return decompressed.toString('utf-8');
59
+ }
60
+ /**
61
+ * Get the SQLCipher encryption key for OneLibrary databases
62
+ */
63
+ export function getEncryptionKey() {
64
+ const key = deobfuscate(BLOB);
65
+ if (!key.startsWith('r8gd')) {
66
+ throw new Error('Invalid encryption key derived');
67
+ }
68
+ return key;
69
+ }
70
+ //# sourceMappingURL=encryption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.js","sourceRoot":"","sources":["../src/encryption.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import type { CueAndLoop } from './types.js';
2
+ /**
3
+ * Documentation type strictly for use with entities that have foreign key
4
+ * attributes.
5
+ */
6
+ export declare enum EntityFK {
7
+ WithFKs = 0,
8
+ WithRelations = 1
9
+ }
10
+ export interface Artwork {
11
+ id: number;
12
+ path?: string;
13
+ }
14
+ export interface Key {
15
+ id: number;
16
+ name: string;
17
+ }
18
+ export interface Label {
19
+ id: number;
20
+ name: string;
21
+ }
22
+ export interface Color {
23
+ id: number;
24
+ name: string;
25
+ }
26
+ export interface Genre {
27
+ id: number;
28
+ name: string;
29
+ }
30
+ export interface Album {
31
+ id: number;
32
+ name: string;
33
+ }
34
+ export interface Artist {
35
+ id: number;
36
+ name: string;
37
+ }
38
+ export interface Playlist {
39
+ id: number;
40
+ name: string;
41
+ isFolder: boolean;
42
+ parentId: number | null;
43
+ }
44
+ interface PlaylistEntryRelations {
45
+ track: Track;
46
+ }
47
+ interface PlaylistEntryFks {
48
+ playlistId: number;
49
+ trackId: number;
50
+ }
51
+ export type PlaylistEntry<withFKs extends EntityFK = EntityFK.WithRelations> = {
52
+ id: number;
53
+ sortIndex: number;
54
+ } & (withFKs extends EntityFK.WithFKs ? PlaylistEntryFks : PlaylistEntryRelations);
55
+ interface TrackRelations {
56
+ artwork: Artwork | null;
57
+ artist: Artist | null;
58
+ originalArtist: Artist | null;
59
+ remixer: Artist | null;
60
+ composer: Artist | null;
61
+ album: Album | null;
62
+ label: Label | null;
63
+ genre: Genre | null;
64
+ color: Color | null;
65
+ key: Key | null;
66
+ }
67
+ interface TrackFks {
68
+ artworkId?: number;
69
+ artistId?: number;
70
+ originalArtistId?: number;
71
+ remixerId?: number;
72
+ composerId?: number;
73
+ albumId?: number;
74
+ labelId?: number;
75
+ genreId?: number;
76
+ colorId?: number;
77
+ keyId?: number;
78
+ }
79
+ /**
80
+ * Represents a track from the OneLibrary database.
81
+ *
82
+ * This type represents what is stored in the database. ANLZ-specific fields
83
+ * (beatGrid, cueAndLoops, waveformHd) are NOT included here -- consumers
84
+ * that need those should extend this type.
85
+ */
86
+ export type Track<withFKs extends EntityFK = EntityFK.WithRelations> = {
87
+ id: number;
88
+ title: string;
89
+ duration: number;
90
+ bitrate?: number;
91
+ tempo: number;
92
+ rating: number;
93
+ comment: string;
94
+ filePath: string;
95
+ fileName: string;
96
+ trackNumber?: number;
97
+ discNumber?: number;
98
+ sampleRate?: number;
99
+ sampleDepth?: number;
100
+ playCount?: number;
101
+ year?: number;
102
+ mixName?: string;
103
+ autoloadHotcues?: boolean;
104
+ kuvoPublic?: boolean;
105
+ fileSize?: number;
106
+ analyzePath?: string;
107
+ releaseDate?: string;
108
+ analyzeDate?: Date;
109
+ dateAdded?: Date;
110
+ /**
111
+ * Embedded cue and loop information from the database
112
+ */
113
+ cueAndLoops: CueAndLoop[] | null;
114
+ } & (withFKs extends EntityFK.WithFKs ? TrackFks : TrackRelations);
115
+ export {};
116
+ //# sourceMappingURL=entities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../src/entities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Documentation type strictly for use with entities that have foreign key
3
+ * attributes.
4
+ */
5
+ export var EntityFK;
6
+ (function (EntityFK) {
7
+ EntityFK[EntityFK["WithFKs"] = 0] = "WithFKs";
8
+ EntityFK[EntityFK["WithRelations"] = 1] = "WithRelations";
9
+ })(EntityFK || (EntityFK = {}));
10
+ //# sourceMappingURL=entities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.js","sourceRoot":"","sources":["../src/entities.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6CAAO,CAAA;IACP,yDAAa,CAAA;AACf,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * onelibrary-connect
3
+ *
4
+ * Read and query rekordbox OneLibrary (exportLibrary.db) SQLCipher databases
5
+ * from Pioneer DJ / AlphaTheta devices.
6
+ */
7
+ export { OneLibraryAdapter } from './adapter.js';
8
+ export type { DatabaseAdapter, DatabasePreference, DatabaseType, PlaylistQueryResult, } from './database-adapter.js';
9
+ export { openOneLibraryDb } from './connection.js';
10
+ export { getEncryptionKey } from './encryption.js';
11
+ export { EntityFK } from './entities.js';
12
+ export type { Album, Artist, Artwork, Color, Genre, Key, Label, Playlist, PlaylistEntry, Track, } from './entities.js';
13
+ export { CueColor, HotcueButton } from './types.js';
14
+ export type { Category, CueAndLoop, CuePoint, DeviceProperty, HistorySession, Hotcue, Hotloop, HotCueBankList, Loop, MenuItem, MyTag, SortOption, } from './types.js';
15
+ export { CueKind, MenuItemKind, MyTagAttribute, PlaylistAttribute } from './schema.js';
16
+ export type { AlbumRow, ArtistRow, CategoryRow, ColorRow, ContentRow, CueRow, GenreRow, HistoryContentRow, HistoryRow, HotCueBankListCueRow, HotCueBankListRow, ImageRow, KeyRow, LabelRow, MenuItemRow, MyTagContentRow, MyTagRow, PlaylistContentRow, PlaylistRow, PropertyRow, RecommendedLikeRow, SortRow, } from './schema.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAG/C,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,YAAY,EACV,KAAK,EACL,MAAM,EACN,OAAO,EACP,KAAK,EACL,KAAK,EACL,GAAG,EACH,KAAK,EACL,QAAQ,EACR,aAAa,EACb,KAAK,GACN,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAC,MAAM,YAAY,CAAC;AAClD,YAAY,EACV,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,cAAc,EACd,cAAc,EACd,MAAM,EACN,OAAO,EACP,cAAc,EACd,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAC,MAAM,aAAa,CAAC;AACrF,YAAY,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,UAAU,EACV,MAAM,EACN,QAAQ,EACR,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,WAAW,EACX,eAAe,EACf,QAAQ,EACR,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,OAAO,GACR,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
1
+ /**
2
+ * onelibrary-connect
3
+ *
4
+ * Read and query rekordbox OneLibrary (exportLibrary.db) SQLCipher databases
5
+ * from Pioneer DJ / AlphaTheta devices.
6
+ */
7
+ // Adapter
8
+ export { OneLibraryAdapter } from './adapter.js';
9
+ // Connection utilities
10
+ export { openOneLibraryDb } from './connection.js';
11
+ export { getEncryptionKey } from './encryption.js';
12
+ // Entity types
13
+ export { EntityFK } from './entities.js';
14
+ // Cue and OneLibrary-specific types
15
+ export { CueColor, HotcueButton } from './types.js';
16
+ // Schema row types (for advanced usage)
17
+ export { CueKind, MenuItemKind, MyTagAttribute, PlaylistAttribute } from './schema.js';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,UAAU;AACV,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAU/C,uBAAuB;AACvB,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAEjD,eAAe;AACf,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAcvC,oCAAoC;AACpC,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAC,MAAM,YAAY,CAAC;AAgBlD,wCAAwC;AACxC,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAC,MAAM,aAAa,CAAC"}
@@ -0,0 +1,251 @@
1
+ /**
2
+ * TypeScript interfaces for the OneLibrary (exportLibrary.db) SQLite schema.
3
+ *
4
+ * These match the actual column names in the SQLite database,
5
+ * which differ from the legacy PDB format.
6
+ *
7
+ * Note: Column names use camelCase in the database (e.g., bpmx100, titleForSearch)
8
+ */
9
+ export interface ContentRow {
10
+ content_id: number;
11
+ title: string | null;
12
+ titleForSearch: string | null;
13
+ subtitle: string | null;
14
+ bpmx100: number | null;
15
+ length: number | null;
16
+ trackNo: number | null;
17
+ discNo: number | null;
18
+ artist_id_artist: number | null;
19
+ artist_id_remixer: number | null;
20
+ artist_id_originalArtist: number | null;
21
+ artist_id_composer: number | null;
22
+ artist_id_lyricist: number | null;
23
+ album_id: number | null;
24
+ genre_id: number | null;
25
+ label_id: number | null;
26
+ key_id: number | null;
27
+ color_id: number | null;
28
+ image_id: number | null;
29
+ djComment: string | null;
30
+ rating: number | null;
31
+ releaseYear: number | null;
32
+ releaseDate: string | null;
33
+ dateCreated: string | null;
34
+ dateAdded: string | null;
35
+ path: string | null;
36
+ fileName: string | null;
37
+ fileSize: number | null;
38
+ fileType: number | null;
39
+ bitrate: number | null;
40
+ bitDepth: number | null;
41
+ samplingRate: number | null;
42
+ isrc: string | null;
43
+ djPlayCount: number | null;
44
+ isHotCueAutoLoadOn: number | null;
45
+ isKuvoDeliverStatusOn: number | null;
46
+ kuvoDeliveryComment: string | null;
47
+ masterDbId: number | null;
48
+ masterContentId: number | null;
49
+ analysisDataFilePath: string | null;
50
+ analysedBits: number | null;
51
+ contentLink: number | null;
52
+ hasModified: number | null;
53
+ cueUpdateCount: number | null;
54
+ analysisDataUpdateCount: number | null;
55
+ informationUpdateCount: number | null;
56
+ }
57
+ export interface ArtistRow {
58
+ artist_id: number;
59
+ name: string | null;
60
+ nameForSearch: string | null;
61
+ }
62
+ export interface AlbumRow {
63
+ album_id: number;
64
+ name: string | null;
65
+ artist_id: number | null;
66
+ image_id: number | null;
67
+ isComplation: number | null;
68
+ nameForSearch: string | null;
69
+ }
70
+ export interface GenreRow {
71
+ genre_id: number;
72
+ name: string | null;
73
+ }
74
+ export interface KeyRow {
75
+ key_id: number;
76
+ name: string | null;
77
+ }
78
+ export interface ColorRow {
79
+ color_id: number;
80
+ name: string | null;
81
+ }
82
+ export interface LabelRow {
83
+ label_id: number;
84
+ name: string | null;
85
+ }
86
+ export interface ImageRow {
87
+ image_id: number;
88
+ path: string | null;
89
+ }
90
+ export interface CueRow {
91
+ cue_id: number;
92
+ content_id: number | null;
93
+ kind: number | null;
94
+ colorTableIndex: number | null;
95
+ cueComment: string | null;
96
+ isActiveLoop: number | null;
97
+ beatLoopNumerator: number | null;
98
+ beatLoopDenominator: number | null;
99
+ inUsec: number | null;
100
+ outUsec: number | null;
101
+ in150FramePerSec: number | null;
102
+ out150FramePerSec: number | null;
103
+ inMpegFrameNumber: number | null;
104
+ outMpegFrameNumber: number | null;
105
+ inMpegAbs: number | null;
106
+ outMpegAbs: number | null;
107
+ inDecodingStartFramePosition: number | null;
108
+ outDecodingStartFramePosition: number | null;
109
+ inFileOffsetInBlock: number | null;
110
+ OutFileOffsetInBlock: number | null;
111
+ inNumberOfSampleInBlock: number | null;
112
+ outNumberOfSampleInBlock: number | null;
113
+ }
114
+ export interface PlaylistRow {
115
+ playlist_id: number;
116
+ sequenceNo: number | null;
117
+ name: string | null;
118
+ image_id: number | null;
119
+ attribute: number | null;
120
+ playlist_id_parent: number | null;
121
+ }
122
+ export interface PlaylistContentRow {
123
+ playlist_id: number;
124
+ content_id: number;
125
+ sequenceNo: number;
126
+ }
127
+ export interface PropertyRow {
128
+ deviceName: string | null;
129
+ dbVersion: string | null;
130
+ numberOfContents: number | null;
131
+ createdDate: string | null;
132
+ backGroundColorType: number | null;
133
+ myTagMasterDBID: number | null;
134
+ }
135
+ /**
136
+ * Cue point types based on the 'kind' field in the cue table.
137
+ *
138
+ * Note: These values may vary. Verify with actual data.
139
+ */
140
+ export declare const CueKind: {
141
+ readonly MEMORY_CUE: 0;
142
+ readonly HOT_CUE: 1;
143
+ };
144
+ /**
145
+ * Playlist attribute types based on the 'attribute' field.
146
+ */
147
+ export declare const PlaylistAttribute: {
148
+ readonly PLAYLIST: 0;
149
+ readonly FOLDER: 1;
150
+ };
151
+ export interface MyTagRow {
152
+ myTag_id: number;
153
+ sequenceNo: number | null;
154
+ name: string | null;
155
+ attribute: number | null;
156
+ myTag_id_parent: number | null;
157
+ }
158
+ export interface MyTagContentRow {
159
+ myTag_id: number;
160
+ content_id: number;
161
+ }
162
+ /**
163
+ * MyTag attribute types based on the 'attribute' field.
164
+ */
165
+ export declare const MyTagAttribute: {
166
+ readonly TAG: 0;
167
+ readonly FOLDER: 1;
168
+ };
169
+ export interface HistoryRow {
170
+ history_id: number;
171
+ sequenceNo: number | null;
172
+ name: string | null;
173
+ attribute: number | null;
174
+ history_id_parent: number | null;
175
+ }
176
+ export interface HistoryContentRow {
177
+ history_id: number;
178
+ content_id: number;
179
+ sequenceNo: number;
180
+ }
181
+ export interface HotCueBankListRow {
182
+ hotCueBankList_id: number;
183
+ sequenceNo: number | null;
184
+ name: string | null;
185
+ image_id: number | null;
186
+ attribute: number | null;
187
+ hotCueBankList_id_parent: number | null;
188
+ }
189
+ export interface HotCueBankListCueRow {
190
+ hotCueBankList_id: number;
191
+ cue_id: number;
192
+ sequenceNo: number;
193
+ }
194
+ export interface MenuItemRow {
195
+ menuItem_id: number;
196
+ kind: number | null;
197
+ name: string | null;
198
+ }
199
+ export interface CategoryRow {
200
+ category_id: number;
201
+ menuItem_id: number | null;
202
+ sequenceNo: number | null;
203
+ isVisible: number | null;
204
+ }
205
+ export interface SortRow {
206
+ sort_id: number;
207
+ menuItem_id: number | null;
208
+ sequenceNo: number | null;
209
+ isVisible: number | null;
210
+ isSelectedAsSubColumn: number | null;
211
+ }
212
+ export interface RecommendedLikeRow {
213
+ content_id_1: number;
214
+ content_id_2: number;
215
+ rating: number | null;
216
+ createdDate: number | null;
217
+ }
218
+ /**
219
+ * Menu item kinds for browsing categories.
220
+ * These match the 'kind' field in the menuItem table.
221
+ */
222
+ export declare const MenuItemKind: {
223
+ readonly GENRE: 128;
224
+ readonly ARTIST: 129;
225
+ readonly ALBUM: 130;
226
+ readonly TRACK: 131;
227
+ readonly PLAYLIST: 132;
228
+ readonly BPM: 133;
229
+ readonly RATING: 134;
230
+ readonly YEAR: 135;
231
+ readonly REMIXER: 136;
232
+ readonly LABEL: 137;
233
+ readonly ORIGINAL_ARTIST: 138;
234
+ readonly KEY: 139;
235
+ readonly DATE_ADDED: 140;
236
+ readonly CUE: 141;
237
+ readonly COLOR: 142;
238
+ readonly FOLDER: 144;
239
+ readonly SEARCH: 145;
240
+ readonly TIME: 146;
241
+ readonly BITRATE: 147;
242
+ readonly FILE_NAME: 148;
243
+ readonly HISTORY: 149;
244
+ readonly COMMENTS: 150;
245
+ readonly DJ_PLAY_COUNT: 151;
246
+ readonly HOT_CUE_BANK: 152;
247
+ readonly DEFAULT: 161;
248
+ readonly ALPHABET: 162;
249
+ readonly MATCHING: 170;
250
+ };
251
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/schema.js ADDED
@@ -0,0 +1,72 @@
1
+ /**
2
+ * TypeScript interfaces for the OneLibrary (exportLibrary.db) SQLite schema.
3
+ *
4
+ * These match the actual column names in the SQLite database,
5
+ * which differ from the legacy PDB format.
6
+ *
7
+ * Note: Column names use camelCase in the database (e.g., bpmx100, titleForSearch)
8
+ */
9
+ // ============================================================================
10
+ // Cue Kind Constants
11
+ // ============================================================================
12
+ /**
13
+ * Cue point types based on the 'kind' field in the cue table.
14
+ *
15
+ * Note: These values may vary. Verify with actual data.
16
+ */
17
+ export const CueKind = {
18
+ MEMORY_CUE: 0,
19
+ HOT_CUE: 1,
20
+ // Additional types may exist
21
+ };
22
+ /**
23
+ * Playlist attribute types based on the 'attribute' field.
24
+ */
25
+ export const PlaylistAttribute = {
26
+ PLAYLIST: 0,
27
+ FOLDER: 1,
28
+ };
29
+ /**
30
+ * MyTag attribute types based on the 'attribute' field.
31
+ */
32
+ export const MyTagAttribute = {
33
+ TAG: 0,
34
+ FOLDER: 1,
35
+ };
36
+ // ============================================================================
37
+ // Menu Item Kind Constants
38
+ // ============================================================================
39
+ /**
40
+ * Menu item kinds for browsing categories.
41
+ * These match the 'kind' field in the menuItem table.
42
+ */
43
+ export const MenuItemKind = {
44
+ GENRE: 128,
45
+ ARTIST: 129,
46
+ ALBUM: 130,
47
+ TRACK: 131,
48
+ PLAYLIST: 132,
49
+ BPM: 133,
50
+ RATING: 134,
51
+ YEAR: 135,
52
+ REMIXER: 136,
53
+ LABEL: 137,
54
+ ORIGINAL_ARTIST: 138,
55
+ KEY: 139,
56
+ DATE_ADDED: 140,
57
+ CUE: 141,
58
+ COLOR: 142,
59
+ FOLDER: 144,
60
+ SEARCH: 145,
61
+ TIME: 146,
62
+ BITRATE: 147,
63
+ FILE_NAME: 148,
64
+ HISTORY: 149,
65
+ COMMENTS: 150,
66
+ DJ_PLAY_COUNT: 151,
67
+ HOT_CUE_BANK: 152,
68
+ DEFAULT: 161,
69
+ ALPHABET: 162,
70
+ MATCHING: 170,
71
+ };
72
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6KH,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,6BAA6B;CACrB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;CACD,CAAC;AAmBX;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;CACD,CAAC;AA2EX,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,GAAG;IACb,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,eAAe,EAAE,GAAG;IACpB,GAAG,EAAE,GAAG;IACR,UAAU,EAAE,GAAG;IACf,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,aAAa,EAAE,GAAG;IAClB,YAAY,EAAE,GAAG;IACjB,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;CACL,CAAC"}