@mks2508/bundlp 0.1.1 → 0.1.2

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 (86) hide show
  1. package/dist/index.d.mts +614 -0
  2. package/dist/index.d.mts.map +1 -0
  3. package/dist/index.mjs +3072 -0
  4. package/dist/index.mjs.map +1 -0
  5. package/package.json +18 -8
  6. package/dist/core/extractor.d.ts +0 -30
  7. package/dist/core/extractor.d.ts.map +0 -1
  8. package/dist/http/client.d.ts +0 -50
  9. package/dist/http/client.d.ts.map +0 -1
  10. package/dist/http/retry.d.ts +0 -22
  11. package/dist/http/retry.d.ts.map +0 -1
  12. package/dist/index.d.ts +0 -20
  13. package/dist/index.d.ts.map +0 -1
  14. package/dist/index.js +0 -19021
  15. package/dist/innertube/client.d.ts +0 -62
  16. package/dist/innertube/client.d.ts.map +0 -1
  17. package/dist/player/ast/analyzer.d.ts +0 -16
  18. package/dist/player/ast/analyzer.d.ts.map +0 -1
  19. package/dist/player/ast/extractor.d.ts +0 -35
  20. package/dist/player/ast/extractor.d.ts.map +0 -1
  21. package/dist/player/ast/matchers.d.ts +0 -40
  22. package/dist/player/ast/matchers.d.ts.map +0 -1
  23. package/dist/player/cache.d.ts +0 -60
  24. package/dist/player/cache.d.ts.map +0 -1
  25. package/dist/player/player.d.ts +0 -49
  26. package/dist/player/player.d.ts.map +0 -1
  27. package/dist/po-token/botguard/challenge.d.ts +0 -22
  28. package/dist/po-token/botguard/challenge.d.ts.map +0 -1
  29. package/dist/po-token/botguard/client.d.ts +0 -25
  30. package/dist/po-token/botguard/client.d.ts.map +0 -1
  31. package/dist/po-token/cache/token-cache.d.ts +0 -24
  32. package/dist/po-token/cache/token-cache.d.ts.map +0 -1
  33. package/dist/po-token/index.d.ts +0 -14
  34. package/dist/po-token/index.d.ts.map +0 -1
  35. package/dist/po-token/manager.d.ts +0 -34
  36. package/dist/po-token/manager.d.ts.map +0 -1
  37. package/dist/po-token/minter/web-minter.d.ts +0 -20
  38. package/dist/po-token/minter/web-minter.d.ts.map +0 -1
  39. package/dist/po-token/policies.d.ts +0 -18
  40. package/dist/po-token/policies.d.ts.map +0 -1
  41. package/dist/po-token/providers/local.provider.d.ts +0 -26
  42. package/dist/po-token/providers/local.provider.d.ts.map +0 -1
  43. package/dist/po-token/providers/provider.interface.d.ts +0 -15
  44. package/dist/po-token/providers/provider.interface.d.ts.map +0 -1
  45. package/dist/po-token/types.d.ts +0 -160
  46. package/dist/po-token/types.d.ts.map +0 -1
  47. package/dist/result/index.d.ts +0 -6
  48. package/dist/result/index.d.ts.map +0 -1
  49. package/dist/result/result.types.d.ts +0 -14
  50. package/dist/result/result.types.d.ts.map +0 -1
  51. package/dist/result/result.utils.d.ts +0 -32
  52. package/dist/result/result.utils.d.ts.map +0 -1
  53. package/dist/streaming/dash/parser.d.ts +0 -37
  54. package/dist/streaming/dash/parser.d.ts.map +0 -1
  55. package/dist/streaming/dash/segments.d.ts +0 -58
  56. package/dist/streaming/dash/segments.d.ts.map +0 -1
  57. package/dist/streaming/decipher.d.ts +0 -24
  58. package/dist/streaming/decipher.d.ts.map +0 -1
  59. package/dist/streaming/drm.d.ts +0 -26
  60. package/dist/streaming/drm.d.ts.map +0 -1
  61. package/dist/streaming/formats.d.ts +0 -20
  62. package/dist/streaming/formats.d.ts.map +0 -1
  63. package/dist/streaming/hls/parser.d.ts +0 -10
  64. package/dist/streaming/hls/parser.d.ts.map +0 -1
  65. package/dist/streaming/hls/segments.d.ts +0 -37
  66. package/dist/streaming/hls/segments.d.ts.map +0 -1
  67. package/dist/streaming/processor.d.ts +0 -20
  68. package/dist/streaming/processor.d.ts.map +0 -1
  69. package/dist/types/error.types.d.ts +0 -12
  70. package/dist/types/error.types.d.ts.map +0 -1
  71. package/dist/types/index.d.ts +0 -8
  72. package/dist/types/index.d.ts.map +0 -1
  73. package/dist/types/innertube.types.d.ts +0 -155
  74. package/dist/types/innertube.types.d.ts.map +0 -1
  75. package/dist/types/player.types.d.ts +0 -30
  76. package/dist/types/player.types.d.ts.map +0 -1
  77. package/dist/types/video.types.d.ts +0 -112
  78. package/dist/types/video.types.d.ts.map +0 -1
  79. package/dist/utils/constants.d.ts +0 -129
  80. package/dist/utils/constants.d.ts.map +0 -1
  81. package/dist/utils/m3u8.d.ts +0 -31
  82. package/dist/utils/m3u8.d.ts.map +0 -1
  83. package/dist/utils/xml.d.ts +0 -41
  84. package/dist/utils/xml.d.ts.map +0 -1
  85. package/dist/validation/schemas.d.ts +0 -290
  86. package/dist/validation/schemas.d.ts.map +0 -1
@@ -0,0 +1,614 @@
1
+ import * as _mks2508_better_logger0 from "@mks2508/better-logger";
2
+
3
+ //#region src/result/result.types.d.ts
4
+
5
+ /**
6
+ * Result Pattern Types
7
+ * Functional error handling without exceptions
8
+ */
9
+ interface ResultOk<T> {
10
+ readonly ok: true;
11
+ readonly value: T;
12
+ }
13
+ interface ResultErr<E> {
14
+ readonly ok: false;
15
+ readonly error: E;
16
+ }
17
+ type Result<T, E> = ResultOk<T> | ResultErr<E>;
18
+ //#endregion
19
+ //#region src/result/result.utils.d.ts
20
+ /** Create a successful result */
21
+ declare const ok: <T>(value: T) => ResultOk<T>;
22
+ /** Create an error result */
23
+ declare const err: <E>(error: E) => ResultErr<E>;
24
+ /** Type guard for successful result */
25
+ declare const isOk: <T, E>(result: Result<T, E>) => result is ResultOk<T>;
26
+ /** Type guard for error result */
27
+ declare const isErr: <T, E>(result: Result<T, E>) => result is ResultErr<E>;
28
+ /** Pattern match on a Result */
29
+ declare function match<T, E, U>(result: Result<T, E>, handlers: {
30
+ ok: (value: T) => U;
31
+ err: (error: E) => U;
32
+ }): U;
33
+ /** Map over a successful result */
34
+ declare function map<T, E, U>(result: Result<T, E>, fn: (value: T) => U): Result<U, E>;
35
+ /** Map over an error result */
36
+ declare function mapErr<T, E, F>(result: Result<T, E>, fn: (error: E) => F): Result<T, F>;
37
+ /** Chain Results (flatMap) */
38
+ declare function andThen<T, E, U>(result: Result<T, E>, fn: (value: T) => Result<U, E>): Result<U, E>;
39
+ /** Unwrap with default value */
40
+ declare function unwrapOr<T, E>(result: Result<T, E>, defaultValue: T): T;
41
+ /** Unwrap or throw */
42
+ declare function unwrap<T, E>(result: Result<T, E>): T;
43
+ /** Try to execute a function and wrap in Result */
44
+ declare function tryCatch<T, E = Error>(fn: () => T): Result<T, E>;
45
+ /** Try to execute an async function and wrap in Result */
46
+ declare function tryCatchAsync<T, E = Error>(fn: () => Promise<T>): Promise<Result<T, E>>;
47
+ //#endregion
48
+ //#region src/types/error.types.d.ts
49
+ /**
50
+ * Error Types for bundlp
51
+ */
52
+ type ErrorCode = 'INVALID_URL' | 'INVALID_CLIENT' | 'VIDEO_NOT_FOUND' | 'VIDEO_UNAVAILABLE' | 'VIDEO_PRIVATE' | 'VIDEO_REGION_BLOCKED' | 'VIDEO_AGE_RESTRICTED' | 'VIDEO_DRM_PROTECTED' | 'LOGIN_REQUIRED' | 'RATE_LIMITED' | 'PO_TOKEN_REQUIRED' | 'PO_TOKEN_EXPIRED' | 'BOTGUARD_INIT_FAILED' | 'BOTGUARD_SNAPSHOT_FAILED' | 'INTEGRITY_TOKEN_FAILED' | 'ALL_PROVIDERS_FAILED' | 'CIPHER_FAILED' | 'PLAYER_FETCH_FAILED' | 'INNERTUBE_ERROR' | 'NETWORK_ERROR' | 'PARSE_ERROR' | 'CACHE_ERROR' | 'UNKNOWN_ERROR';
53
+ interface BundlpError {
54
+ code: ErrorCode;
55
+ message: string;
56
+ cause?: unknown;
57
+ recoverable?: boolean;
58
+ }
59
+ //#endregion
60
+ //#region src/types/video.types.d.ts
61
+ /**
62
+ * Video Types for bundlp
63
+ */
64
+ interface VideoInfo {
65
+ id: string;
66
+ title: string;
67
+ description: string;
68
+ duration: number;
69
+ uploadDate?: string;
70
+ channel: ChannelInfo;
71
+ viewCount: number;
72
+ likeCount?: number;
73
+ thumbnails: Thumbnail[];
74
+ formats: FormatCollection;
75
+ subtitles: Map<string, Subtitle[]>;
76
+ chapters?: Chapter[];
77
+ isLive: boolean;
78
+ isPrivate: boolean;
79
+ }
80
+ interface ChannelInfo {
81
+ id: string;
82
+ name: string;
83
+ url: string;
84
+ }
85
+ interface Thumbnail {
86
+ url: string;
87
+ width: number;
88
+ height: number;
89
+ }
90
+ interface FormatCollection {
91
+ combined: Format[];
92
+ video: Format[];
93
+ audio: Format[];
94
+ hls?: HlsInfo;
95
+ dash?: DashInfo;
96
+ }
97
+ interface Format {
98
+ itag: number;
99
+ url: string;
100
+ mimeType: string;
101
+ codecs: string[];
102
+ bitrate?: number;
103
+ width?: number;
104
+ height?: number;
105
+ fps?: number;
106
+ qualityLabel?: string;
107
+ quality?: string;
108
+ audioQuality?: string;
109
+ audioSampleRate?: number;
110
+ audioChannels?: number;
111
+ contentLength?: number;
112
+ initRange?: {
113
+ start: string;
114
+ end: string;
115
+ };
116
+ indexRange?: {
117
+ start: string;
118
+ end: string;
119
+ };
120
+ approxDurationMs?: number;
121
+ targetDurationSec?: number;
122
+ hasDrm: boolean;
123
+ isAdaptive: boolean;
124
+ }
125
+ interface AudioFormat extends Format {
126
+ audioSampleRate: number;
127
+ audioChannels: number;
128
+ loudnessDb?: number;
129
+ }
130
+ interface VideoFormat extends Format {
131
+ width: number;
132
+ height: number;
133
+ fps: number;
134
+ qualityLabel: string;
135
+ }
136
+ interface HlsInfo {
137
+ manifestUrl: string;
138
+ variants: HlsVariant[];
139
+ }
140
+ interface HlsVariant {
141
+ url: string;
142
+ bandwidth: number;
143
+ resolution?: string;
144
+ codecs?: string;
145
+ }
146
+ interface DashInfo {
147
+ manifestUrl: string;
148
+ duration: number;
149
+ }
150
+ interface Subtitle {
151
+ url: string;
152
+ language: string;
153
+ languageName: string;
154
+ isAutoGenerated: boolean;
155
+ format: 'vtt' | 'ttml' | 'srv1' | 'srv2' | 'srv3' | 'json3';
156
+ }
157
+ interface Chapter {
158
+ title: string;
159
+ startTime: number;
160
+ endTime: number;
161
+ thumbnail?: Thumbnail;
162
+ }
163
+ interface Storyboard {
164
+ templateUrl: string;
165
+ width: number;
166
+ height: number;
167
+ count: number;
168
+ interval: number;
169
+ columns: number;
170
+ rows: number;
171
+ }
172
+ //#endregion
173
+ //#region src/types/innertube.types.d.ts
174
+ /**
175
+ * InnerTube API Types
176
+ */
177
+ type ClientName = 'WEB' | 'WEB_REMIX' | 'WEB_EMBEDDED_PLAYER' | 'WEB_KIDS' | 'ANDROID' | 'ANDROID_MUSIC' | 'iOS' | 'TVHTML5' | 'MWEB';
178
+ interface ClientConfig {
179
+ name: ClientName;
180
+ version: string;
181
+ clientId: string;
182
+ apiKey?: string;
183
+ userAgent: string;
184
+ platform?: string;
185
+ sdkVersion?: number;
186
+ deviceModel?: string;
187
+ osName?: string;
188
+ osVersion?: string;
189
+ }
190
+ interface InnerTubeContext {
191
+ client: {
192
+ clientName: string;
193
+ clientVersion: string;
194
+ hl?: string;
195
+ gl?: string;
196
+ visitorData?: string;
197
+ userAgent?: string;
198
+ platform?: string;
199
+ clientFormFactor?: string;
200
+ clientScreen?: string;
201
+ androidSdkVersion?: number;
202
+ deviceModel?: string;
203
+ osName?: string;
204
+ osVersion?: string;
205
+ };
206
+ user?: {
207
+ lockedSafetyMode: boolean;
208
+ };
209
+ request?: {
210
+ useSsl: boolean;
211
+ internalExperimentFlags?: unknown[];
212
+ };
213
+ thirdParty?: {
214
+ embedUrl: string;
215
+ };
216
+ }
217
+ interface PlayerResponse {
218
+ playabilityStatus: PlayabilityStatus;
219
+ videoDetails?: VideoDetails;
220
+ streamingData?: StreamingData;
221
+ captions?: CaptionsData;
222
+ microformat?: MicroformatData;
223
+ storyboards?: StoryboardData;
224
+ }
225
+ interface PlayabilityStatus {
226
+ status: 'OK' | 'UNPLAYABLE' | 'LOGIN_REQUIRED' | 'AGE_CHECK_REQUIRED' | 'ERROR';
227
+ reason?: string;
228
+ playableInEmbed?: boolean;
229
+ liveStreamability?: unknown;
230
+ }
231
+ interface VideoDetails {
232
+ videoId: string;
233
+ title: string;
234
+ lengthSeconds: string;
235
+ channelId: string;
236
+ shortDescription: string;
237
+ thumbnail: {
238
+ thumbnails: Array<{
239
+ url: string;
240
+ width: number;
241
+ height: number;
242
+ }>;
243
+ };
244
+ viewCount: string;
245
+ author: string;
246
+ isLiveContent: boolean;
247
+ isPrivate: boolean;
248
+ keywords?: string[];
249
+ }
250
+ interface StreamingData {
251
+ expiresInSeconds: string;
252
+ formats?: RawFormat[];
253
+ adaptiveFormats?: RawFormat[];
254
+ hlsManifestUrl?: string;
255
+ dashManifestUrl?: string;
256
+ }
257
+ interface RawFormat {
258
+ itag: number;
259
+ url?: string;
260
+ signatureCipher?: string;
261
+ cipher?: string;
262
+ mimeType: string;
263
+ bitrate: number;
264
+ width?: number;
265
+ height?: number;
266
+ fps?: number;
267
+ qualityLabel?: string;
268
+ quality: string;
269
+ audioQuality?: string;
270
+ audioSampleRate?: string;
271
+ audioChannels?: number;
272
+ contentLength?: string;
273
+ approxDurationMs?: string;
274
+ initRange?: {
275
+ start: string;
276
+ end: string;
277
+ };
278
+ indexRange?: {
279
+ start: string;
280
+ end: string;
281
+ };
282
+ lastModified?: string;
283
+ drmFamilies?: string[];
284
+ }
285
+ interface CaptionsData {
286
+ playerCaptionsTracklistRenderer?: {
287
+ captionTracks?: CaptionTrack[];
288
+ };
289
+ }
290
+ interface CaptionTrack {
291
+ baseUrl: string;
292
+ languageCode: string;
293
+ name: {
294
+ simpleText: string;
295
+ };
296
+ kind?: string;
297
+ isTranslatable?: boolean;
298
+ }
299
+ interface MicroformatData {
300
+ playerMicroformatRenderer?: {
301
+ uploadDate?: string;
302
+ publishDate?: string;
303
+ category?: string;
304
+ isFamilySafe?: boolean;
305
+ lengthSeconds?: string;
306
+ };
307
+ }
308
+ interface StoryboardData {
309
+ playerStoryboardSpecRenderer?: {
310
+ spec?: string;
311
+ };
312
+ }
313
+ //#endregion
314
+ //#region src/types/player.types.d.ts
315
+ /**
316
+ * Player Types - Cipher extraction
317
+ */
318
+ interface PlayerInfo {
319
+ playerId: string;
320
+ playerUrl: string;
321
+ signatureTimestamp: number;
322
+ sigFunction: CipherFunction;
323
+ nFunction: CipherFunction;
324
+ cachedAt: number;
325
+ }
326
+ type CipherFunction = (input: string) => string;
327
+ interface SignatureCipher {
328
+ signature: string;
329
+ signatureParam: string;
330
+ url: string;
331
+ }
332
+ //#endregion
333
+ //#region src/utils/constants.d.ts
334
+ declare const INNERTUBE_CLIENTS: {
335
+ readonly WEB: {
336
+ readonly NAME: "WEB";
337
+ readonly VERSION: "2.20250222.10.00";
338
+ readonly CLIENT_ID: 1;
339
+ readonly API_KEY: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8";
340
+ readonly INNERTUBE_CONTEXT: {
341
+ readonly client: {
342
+ readonly clientName: "WEB";
343
+ readonly clientVersion: "2.20250222.10.00";
344
+ readonly platform: "DESKTOP";
345
+ };
346
+ };
347
+ readonly HEADERS: {
348
+ readonly 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36";
349
+ readonly 'X-YouTube-Client-Name': "1";
350
+ readonly 'X-YouTube-Client-Version': "2.20250222.10.00";
351
+ };
352
+ };
353
+ readonly ANDROID: {
354
+ readonly NAME: "ANDROID";
355
+ readonly VERSION: "19.35.36";
356
+ readonly CLIENT_ID: 3;
357
+ readonly API_KEY: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8";
358
+ readonly SDK_VERSION: 33;
359
+ readonly INNERTUBE_CONTEXT: {
360
+ readonly client: {
361
+ readonly clientName: "ANDROID";
362
+ readonly clientVersion: "19.35.36";
363
+ readonly androidSdkVersion: 33;
364
+ };
365
+ };
366
+ readonly HEADERS: {
367
+ readonly 'User-Agent': "com.google.android.youtube/19.35.36(Linux; U; Android 13; en_US; SM-S908E Build/TP1A.220624.014) gzip";
368
+ readonly 'X-YouTube-Client-Name': "3";
369
+ readonly 'X-YouTube-Client-Version': "19.35.36";
370
+ };
371
+ };
372
+ readonly TV: {
373
+ readonly NAME: "TVHTML5";
374
+ readonly VERSION: "7.20250923.13.00";
375
+ readonly CLIENT_ID: 7;
376
+ readonly API_KEY: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8";
377
+ readonly INNERTUBE_CONTEXT: {
378
+ readonly client: {
379
+ readonly clientName: "TVHTML5";
380
+ readonly clientVersion: "7.20250923.13.00";
381
+ readonly userAgent: "Mozilla/5.0 (ChromiumStylePlatform) Cobalt/Version";
382
+ };
383
+ };
384
+ readonly HEADERS: {
385
+ readonly 'User-Agent': "Mozilla/5.0 (ChromiumStylePlatform) Cobalt/Version";
386
+ readonly 'X-YouTube-Client-Name': "7";
387
+ readonly 'X-YouTube-Client-Version': "7.20250923.13.00";
388
+ };
389
+ };
390
+ readonly IOS: {
391
+ readonly NAME: "IOS";
392
+ readonly VERSION: "20.10.4";
393
+ readonly CLIENT_ID: 5;
394
+ readonly API_KEY: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8";
395
+ readonly INNERTUBE_CONTEXT: {
396
+ readonly client: {
397
+ readonly clientName: "IOS";
398
+ readonly clientVersion: "20.10.4";
399
+ readonly deviceMake: "Apple";
400
+ readonly deviceModel: "iPhone16,2";
401
+ readonly osName: "iPhone";
402
+ readonly osVersion: "18.3.2.22D82";
403
+ };
404
+ };
405
+ readonly HEADERS: {
406
+ readonly 'User-Agent': "com.google.ios.youtube/20.10.4 (iPhone16,2; U; CPU iOS 18_3_2 like Mac OS X;)";
407
+ readonly 'X-YouTube-Client-Name': "5";
408
+ readonly 'X-YouTube-Client-Version': "20.10.4";
409
+ };
410
+ };
411
+ readonly ANDROID_SDKLESS: {
412
+ readonly NAME: "ANDROID";
413
+ readonly VERSION: "20.10.38";
414
+ readonly CLIENT_ID: 3;
415
+ readonly API_KEY: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8";
416
+ readonly INNERTUBE_CONTEXT: {
417
+ readonly client: {
418
+ readonly clientName: "ANDROID";
419
+ readonly clientVersion: "20.10.38";
420
+ readonly osName: "Android";
421
+ readonly osVersion: "11";
422
+ };
423
+ };
424
+ readonly HEADERS: {
425
+ readonly 'User-Agent': "com.google.android.youtube/20.10.38 (Linux; U; Android 11) gzip";
426
+ readonly 'X-YouTube-Client-Name': "3";
427
+ readonly 'X-YouTube-Client-Version': "20.10.38";
428
+ };
429
+ };
430
+ readonly TV_EMBEDDED: {
431
+ readonly NAME: "TVHTML5_SIMPLY_EMBEDDED_PLAYER";
432
+ readonly VERSION: "2.0";
433
+ readonly CLIENT_ID: 85;
434
+ readonly API_KEY: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8";
435
+ readonly INNERTUBE_CONTEXT: {
436
+ readonly client: {
437
+ readonly clientName: "TVHTML5_SIMPLY_EMBEDDED_PLAYER";
438
+ readonly clientVersion: "2.0";
439
+ readonly clientScreen: "EMBED";
440
+ readonly platform: "TV";
441
+ };
442
+ readonly thirdParty: {
443
+ readonly embedUrl: "https://www.youtube.com/";
444
+ };
445
+ };
446
+ readonly HEADERS: {
447
+ readonly 'User-Agent': "Mozilla/5.0 (ChromiumStylePlatform) Cobalt/Version";
448
+ readonly 'X-YouTube-Client-Name': "85";
449
+ readonly 'X-YouTube-Client-Version': "2.0";
450
+ };
451
+ };
452
+ };
453
+ type ClientName$1 = keyof typeof INNERTUBE_CLIENTS;
454
+ //#endregion
455
+ //#region src/core/extractor.d.ts
456
+ interface ExtractorConfig {
457
+ poToken?: string;
458
+ cacheDir?: string;
459
+ preferredClient?: ClientName$1;
460
+ }
461
+ /**
462
+ * Main YouTube video extractor class.
463
+ * Handles video information extraction using InnerTube API.
464
+ */
465
+ declare class YouTubeExtractor {
466
+ private client;
467
+ private player;
468
+ private config;
469
+ constructor(config?: ExtractorConfig);
470
+ /**
471
+ * Extracts video information from a YouTube URL or video ID.
472
+ * @param url - YouTube URL or video ID
473
+ * @returns Result containing VideoInfo or BundlpError
474
+ */
475
+ extract(url: string): Promise<Result<VideoInfo, BundlpError>>;
476
+ private parseVideoId;
477
+ private realExtract;
478
+ private processFormats;
479
+ private assembleVideoInfo;
480
+ }
481
+ //#endregion
482
+ //#region src/utils/headers.d.ts
483
+ /**
484
+ * HTTP Headers Utilities for YouTube Downloads
485
+ *
486
+ * Provides headers needed for downloading from deciphered YouTube URLs.
487
+ * These headers are extracted from bundlp's InnerTube client configurations.
488
+ */
489
+ /**
490
+ * Get HTTP headers for downloading from deciphered YouTube URLs
491
+ * Based on the client type used for extraction
492
+ *
493
+ * @param clientType - The client type to use (WEB, ANDROID, TV, IOS)
494
+ * @returns Object with required HTTP headers for YouTube CDN requests
495
+ */
496
+ declare function getDownloadHeaders(clientType?: 'WEB' | 'ANDROID' | 'TV' | 'IOS'): Record<string, string>;
497
+ /**
498
+ * Get minimal headers that work for most YouTube CDN requests
499
+ * Use this as a fallback if full headers cause issues
500
+ *
501
+ * @returns Minimal set of headers needed for YouTube downloads
502
+ */
503
+ declare function getMinimalDownloadHeaders(): Record<string, string>;
504
+ //#endregion
505
+ //#region src/po-token/policies.d.ts
506
+ type PoTokenRequirement = 'required' | 'recommended' | 'not_required';
507
+ interface PoTokenPolicy {
508
+ GVS: PoTokenRequirement | {
509
+ HTTPS: PoTokenRequirement;
510
+ DASH: PoTokenRequirement;
511
+ HLS: PoTokenRequirement;
512
+ };
513
+ PLAYER: PoTokenRequirement;
514
+ SUBS: PoTokenRequirement;
515
+ notRequiredForPremium?: boolean;
516
+ }
517
+ //#endregion
518
+ //#region src/po-token/types.d.ts
519
+ type PoTokenContext = 'GVS' | 'PLAYER' | 'SUBS';
520
+ type TokenBindingType = 'session' | 'content';
521
+ interface PoTokenData {
522
+ token: string;
523
+ integrityToken?: string;
524
+ createdAt: number;
525
+ expiresAt: number;
526
+ refreshAt: number;
527
+ bindingType: TokenBindingType;
528
+ bindingValue: string;
529
+ client: ClientName$1;
530
+ context: PoTokenContext;
531
+ }
532
+ interface ContentBinding {
533
+ videoId?: string;
534
+ channelId?: string;
535
+ playlistId?: string;
536
+ }
537
+ //#endregion
538
+ //#region src/po-token/providers/provider.interface.d.ts
539
+ interface PoTokenProvider {
540
+ readonly name: string;
541
+ readonly priority: number;
542
+ generate(identifier: string, binding?: ContentBinding): Promise<Result<PoTokenData, BundlpError>>;
543
+ isAvailable(): Promise<boolean>;
544
+ shutdown(): void;
545
+ }
546
+ interface PoTokenProviderOptions {
547
+ timeout?: number;
548
+ cacheEnabled?: boolean;
549
+ }
550
+ //#endregion
551
+ //#region src/po-token/manager.d.ts
552
+ interface PoTokenManagerConfig {
553
+ token?: string;
554
+ cacheEnabled?: boolean;
555
+ cachePath?: string;
556
+ timeout?: number;
557
+ providers?: PoTokenProvider[];
558
+ }
559
+ declare class PoTokenManager {
560
+ private staticToken?;
561
+ private policies;
562
+ private providers;
563
+ private cache;
564
+ constructor(config?: PoTokenManagerConfig);
565
+ getToken(identifier: string, client?: ClientName$1, binding?: ContentBinding): Promise<Result<string, BundlpError>>;
566
+ getTokenData(identifier: string, client?: ClientName$1, binding?: ContentBinding): Promise<Result<PoTokenData, BundlpError>>;
567
+ getColdStartToken(identifier: string): string;
568
+ isRequired(client: ClientName$1): boolean;
569
+ needsTokenForGvs(client: ClientName$1): boolean;
570
+ getPolicy(client: ClientName$1): PoTokenPolicy | undefined;
571
+ getVisitorData(): string | undefined;
572
+ shutdown(): void;
573
+ getCacheStats(): {
574
+ total: number;
575
+ expired: number;
576
+ valid: number;
577
+ } | null;
578
+ }
579
+ //#endregion
580
+ //#region src/po-token/providers/local.provider.d.ts
581
+ declare class LocalBotGuardProvider implements PoTokenProvider {
582
+ readonly name = "local-botguard";
583
+ readonly priority = 100;
584
+ private options;
585
+ private challengeFetcher;
586
+ private client;
587
+ private challenge;
588
+ private attestation;
589
+ private integrityData;
590
+ private minter;
591
+ private initPromise;
592
+ private createdAt;
593
+ constructor(options?: PoTokenProviderOptions);
594
+ isAvailable(): Promise<boolean>;
595
+ generate(identifier: string, _binding?: ContentBinding): Promise<Result<PoTokenData, BundlpError>>;
596
+ private ensureInitialized;
597
+ private initialize;
598
+ private reset;
599
+ shutdown(): void;
600
+ getVisitorData(): string | undefined;
601
+ }
602
+ //#endregion
603
+ //#region src/utils/logger.d.ts
604
+ declare const bundlpLogger: _mks2508_better_logger0.ScopedLogger;
605
+ declare const extractorLogger: _mks2508_better_logger0.ComponentLogger;
606
+ //#endregion
607
+ //#region src/index.d.ts
608
+ /**
609
+ * Appends po_token to a download URL
610
+ */
611
+ declare function appendPoToken(url: string, poToken: string): string;
612
+ //#endregion
613
+ export { type AudioFormat, type BundlpError, type ChannelInfo, type Chapter, type ClientConfig, type ClientName, type DashInfo, type ErrorCode, type ExtractorConfig, type Format, type FormatCollection, type HlsInfo, type HlsVariant, type InnerTubeContext, LocalBotGuardProvider, type PlayerInfo, type PlayerResponse, PoTokenManager, type PoTokenManagerConfig, type Result, type ResultErr, type ResultOk, type SignatureCipher, type Storyboard, type StreamingData, type Subtitle, type Thumbnail, type VideoFormat, type VideoInfo, YouTubeExtractor, andThen, appendPoToken, bundlpLogger, err, extractorLogger, getDownloadHeaders, getMinimalDownloadHeaders, isErr, isOk, map, mapErr, match, ok, tryCatch, tryCatchAsync, unwrap, unwrapOr };
614
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/result/result.types.ts","../src/result/result.utils.ts","../src/types/error.types.ts","../src/types/video.types.ts","../src/types/innertube.types.ts","../src/types/player.types.ts","../src/utils/constants.ts","../src/core/extractor.ts","../src/utils/headers.ts","../src/po-token/policies.ts","../src/po-token/types.ts","../src/po-token/providers/provider.interface.ts","../src/po-token/manager.ts","../src/po-token/providers/local.provider.ts","../src/utils/logger.ts","../src/index.ts"],"sourcesContent":[],"mappings":";;;;;;;AAKA;AAKiB,UALA,QAKS,CAAA,CAAA,CAAA,CAAA;EAKd,SAAM,EAAA,EAAA,IAAA;EAAkB,SAAA,KAAA,EARlB,CAQkB;;AAAe,UALlC,SAKkC,CAAA,CAAA,CAAA,CAAA;EAAV,SAAA,EAAA,EAAA,KAAA;EAAS,SAAA,KAAA,EAHhC,CAGgC;;KAAtC,eAAe,SAAS,KAAK,UAAU;;;AALnD;AAKY,cCRC,EDQK,EAAA,CAAA,CAAA,CAAA,CAAA,KAAA,ECRW,CDQX,EAAA,GCRe,QDQf,CCRwB,CDQxB,CAAA;;AAAS,cCLd,GDKc,EAAA,CAAA,CAAA,CAAA,CAAA,KAAA,ECLG,CDKH,EAAA,GCLO,SDKP,CCLiB,CDKjB,CAAA;;AAAc,cCF5B,IDE4B,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,ECFN,MDEM,CCFC,CDED,ECFI,CDEJ,CAAA,EAAA,GAAA,MAAA,ICFmB,QDEnB,CCF4B,CDE5B,CAAA;;cCC5B,sBAAuB,OAAO,GAAG,iBAAe,UAAU;;iBAGvD,uBACN,OAAO,GAAG;EAbP,EAAA,EAAA,CAAwD,KAAA,EAc3C,CAd2C,EAAA,GAcrC,CAdqC;EAAxC,GAAA,EAAA,CAAA,KAAA,EAcmB,CAdnB,EAAA,GAcyB,CAdzB;CAAa,CAAA,EAevC,CAfuC;;AAAD,iBAoBzB,GApByB,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,EAqB/B,MArB+B,CAqBxB,CArBwB,EAqBrB,CArBqB,CAAA,EAAA,EAAA,EAAA,CAAA,KAAA,EAsB3B,CAtB2B,EAAA,GAsBrB,CAtBqB,CAAA,EAuBtC,MAvBsC,CAuB/B,CAvB+B,EAuB5B,CAvB4B,CAAA;AAGzC;AAA8B,iBAyBd,MAzBc,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,EA0BpB,MA1BoB,CA0Bb,CA1Ba,EA0BV,CA1BU,CAAA,EAAA,EAAA,EAAA,CAAA,KAAA,EA2BhB,CA3BgB,EAAA,GA2BV,CA3BU,CAAA,EA4B3B,MA5B2B,CA4BpB,CA5BoB,EA4BjB,CA5BiB,CAAA;;AAAI,iBAiClB,OAjCkB,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,EAkCxB,MAlCwB,CAkCjB,CAlCiB,EAkCd,CAlCc,CAAA,EAAA,EAAA,EAAA,CAAA,KAAA,EAmCpB,CAnCoB,EAAA,GAmCd,MAnCc,CAmCP,CAnCO,EAmCJ,CAnCI,CAAA,CAAA,EAoC/B,MApC+B,CAoCxB,CApCwB,EAoCrB,CApCqB,CAAA;;AAGrB,iBAsCG,QAtCoE,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,EAsC7C,MAtC6C,CAsCtC,CAtCsC,EAsCnC,CAtCmC,CAAA,EAAA,YAAA,EAsCjB,CAtCiB,CAAA,EAsCb,CAtCa;;AAAvC,iBA2C7B,MA3C6B,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,EA2CR,MA3CQ,CA2CD,CA3CC,EA2CE,CA3CF,CAAA,CAAA,EA2CO,CA3CP;;AAAwB,iBAiDrD,QAjDqD,CAAA,CAAA,EAAA,IAiDrC,KAjDqC,CAAA,CAAA,EAAA,EAAA,GAAA,GAiDpB,CAjDoB,CAAA,EAiDhB,MAjDgB,CAiDT,CAjDS,EAiDN,CAjDM,CAAA;;AAAD,iBA0D9C,aA1D8C,CAAA,CAAA,EAAA,IA0DzB,KA1DyB,CAAA,CAAA,EAAA,EAAA,GAAA,GA2DxD,OA3DwD,CA2DhD,CA3DgD,CAAA,CAAA,EA4DjE,OA5DiE,CA4DzD,MA5DyD,CA4DlD,CA5DkD,EA4D/C,CA5D+C,CAAA,CAAA;;;;;;ADRnD,KEDL,SAAA,GFCa,aAEN,GAAA,gBAAA,GAAA,iBAAA,GAAA,mBAAA,GAAA,eAAA,GAAA,sBAAA,GAAA,sBAAA,GAAA,qBAAA,GAAA,gBAAA,GAAA,cAAA,GAAA,mBAAA,GAAA,kBAAA,GAAA,sBAAA,GAAA,0BAAA,GAAA,wBAAA,GAAA,sBAAA,GAAA,eAAA,GAAA,qBAAA,GAAA,iBAAA,GAAA,eAAA,GAAA,aAAA,GAAA,aAAA,GAAA,eAAA;AAGF,UEmBA,WAAA,CFnBS;EAKd,IAAA,EEeJ,SFfU;EAAkB,OAAA,EAAA,MAAA;EAAT,KAAA,CAAA,EAAA,OAAA;EAAwB,WAAA,CAAA,EAAA,OAAA;;;;;;;AAVlC,UGDA,SAAA,CHCQ;EAKR,EAAA,EAAA,MAAA;EAKL,KAAA,EAAA,MAAM;EAAkB,WAAA,EAAA,MAAA;EAAT,QAAA,EAAA,MAAA;EAAwB,UAAA,CAAA,EAAA,MAAA;EAAV,OAAA,EGL9B,WHK8B;EAAS,SAAA,EAAA,MAAA;;cGFpC;WACH;EFPE,SAAwD,EEQxD,GFRwD,CAAA,MAAA,EEQ5C,QFR4C,EAAA,CAAA;EAAxC,QAAA,CAAA,EEShB,OFTgB,EAAA;EAAa,MAAA,EAAA,OAAA;EAAT,SAAA,EAAA,OAAA;;AAGpB,UEWI,WAAA,CFXuD;EAA1C,EAAA,EAAA,MAAA;EAAc,IAAA,EAAA,MAAA;EAAV,GAAA,EAAA,MAAA;;AAGrB,UEcI,SAAA,CFdmE;EAA1C,GAAA,EAAA,MAAA;EAAG,KAAA,EAAA,MAAA;EAAV,MAAA,EAAA,MAAA;;AAAyB,UEoB3C,gBAAA,CFpB2C;EAAQ,QAAA,EEqBxD,MFrBwD,EAAA;EAGvD,KAAA,EEmBJ,MFnB8E,EAAA;EAA5C,KAAA,EEoBlC,MFpBkC,EAAA;EAAG,GAAA,CAAA,EEqBtC,OFrBsC;EAAV,IAAA,CAAA,EEsB3B,QFtB2B;;AAAyB,UEyB5C,MAAA,CFzB4C;EAAS,IAAA,EAAA,MAAA;EAGtD,GAAA,EAAA,MAAK;EACJ,QAAA,EAAA,MAAA;EAAG,MAAA,EAAA,MAAA,EAAA;EAAV,OAAA,CAAA,EAAA,MAAA;EACgB,KAAA,CAAA,EAAA,MAAA;EAAM,MAAA,CAAA,EAAA,MAAA;EAAgB,GAAA,CAAA,EAAA,MAAA;EAAM,YAAA,CAAA,EAAA,MAAA;EACnD,OAAA,CAAA,EAAA,MAAA;EAAC,YAAA,CAAA,EAAA,MAAA;EAKY,eAAG,CAAA,EAAA,MAAA;EACF,aAAA,CAAA,EAAA,MAAA;EAAG,aAAA,CAAA,EAAA,MAAA;EAAV,SAAA,CAAA,EAAA;IACI,KAAA,EAAA,MAAA;IAAM,GAAA,EAAA,MAAA;EACV,CAAA;EAAG,UAAA,CAAA,EAAA;IAAV,KAAA,EAAA,MAAA;IAAM,GAAA,EAAA,MAAA;EAKO,CAAA;EACC,gBAAA,CAAA,EAAA,MAAA;EAAG,iBAAA,CAAA,EAAA,MAAA;EAAV,MAAA,EAAA,OAAA;EACI,UAAA,EAAA,OAAA;;AACJ,UE0BO,WAAA,SAAoB,MF1B3B,CAAA;EAAG,eAAA,EAAA,MAAA;EAAV,aAAA,EAAA,MAAA;EAAM,UAAA,CAAA,EAAA,MAAA;AAKT;AACiB,UE0BA,WAAA,SAAoB,MF1BpB,CAAA;EAAG,KAAA,EAAA,MAAA;EAAV,MAAA,EAAA,MAAA;EACI,GAAA,EAAA,MAAA;EAAa,YAAA,EAAA,MAAA;;AAAP,UEgCH,OAAA,CFhCG;EACV,WAAA,EAAA,MAAA;EAAG,QAAA,EEiCD,UFjCC,EAAA;;AAAJ,UEoCQ,UAAA,CFpCR;EAKO,GAAA,EAAA,MAAQ;EAAsB,SAAA,EAAA,MAAA;EAAG,UAAA,CAAA,EAAA,MAAA;EAAV,MAAA,CAAA,EAAA,MAAA;;AAAgC,UEsCtD,QAAA,CFtCsD;EAAC,WAAA,EAAA,MAAA;EAKxD,QAAA,EAAM,MAAA;;AAAyB,UEsC9B,QAAA,CFtC8B;EAAV,GAAA,EAAA,MAAA;EAAe,QAAA,EAAA,MAAA;EAAC,YAAA,EAAA,MAAA;EAMrC,eAAQ,EAAA,OAAA;EAAQ,MAAA,EAAA,KAAA,GAAA,MAAA,GAAA,MAAA,GAAA,MAAA,GAAA,MAAA,GAAA,OAAA;;AAA4B,UEwC3C,OAAA,CFxC2C;EAAG,KAAA,EAAA,MAAA;EAAV,SAAA,EAAA,MAAA;EAAM,OAAA,EAAA,MAAA;EASrC,SAAA,CAAA,EEmCR,SFnCqB;;AACf,UEqCH,UAAA,CFrCG;EAAR,WAAA,EAAA,MAAA;EACM,KAAA,EAAA,MAAA;EAAG,MAAA,EAAA,MAAA;EAAV,KAAA,EAAA,MAAA;EAAR,QAAA,EAAA,MAAA;EAAO,OAAA,EAAA,MAAA;;;;;;;;ADpEO,KIDL,UAAA,GJCa,KAEP,GAAC,WAAA,GAAA,qBAAA,GAAA,UAAA,GAAA,SAAA,GAAA,eAAA,GAAA,KAAA,GAAA,SAAA,GAAA,MAAA;AAGF,UIKA,YAAA,CJHC;EAGN,IAAA,EICJ,UJDU;EAAkB,OAAA,EAAA,MAAA;EAAT,QAAA,EAAA,MAAA;EAAwB,MAAA,CAAA,EAAA,MAAA;EAAV,SAAA,EAAA,MAAA;EAAS,QAAA,CAAA,EAAA,MAAA;;;;ECRrC,SAAwD,CAAA,EAAA,MAAA;;AAA3B,UGqBzB,gBAAA,CHrByB;EAAT,MAAA,EAAA;IAAQ,UAAA,EAAA,MAAA;IAG5B,aAA2D,EAAA,MAAA;IAA1C,EAAA,CAAA,EAAA,MAAA;IAAc,EAAA,CAAA,EAAA,MAAA;IAAV,WAAA,CAAA,EAAA,MAAA;IAAS,SAAA,CAAA,EAAA,MAAA;IAG9B,QAAuE,CAAA,EAAA,MAAA;IAA1C,gBAAA,CAAA,EAAA,MAAA;IAAG,YAAA,CAAA,EAAA,MAAA;IAAV,iBAAA,CAAA,EAAA,MAAA;IAAkC,WAAA,CAAA,EAAA,MAAA;IAAT,MAAA,CAAA,EAAA,MAAA;IAAQ,SAAA,CAAA,EAAA,MAAA;EAGvD,CAAA;EAA8B,IAAA,CAAA,EAAA;IAAG,gBAAA,EAAA,OAAA;EAAV,CAAA;EAAmC,OAAA,CAAA,EAAA;IAAV,MAAA,EAAA,OAAA;IAAS,uBAAA,CAAA,EAAA,OAAA,EAAA;EAGtD,CAAA;EACC,UAAA,CAAA,EAAA;IAAG,QAAA,EAAA,MAAA;EAAV,CAAA;;AAeM,UGqCC,cAAA,CHrCK;EACL,iBAAA,EGqCI,iBHrCJ;EAAG,YAAA,CAAA,EGsCH,YHtCG;EAAV,aAAA,CAAA,EGuCQ,aHvCR;EACI,QAAA,CAAA,EGuCD,YHvCC;EAAM,WAAA,CAAA,EGwCJ,eHxCI;EACV,WAAA,CAAA,EGwCM,cHxCN;;AAAP,UG2Cc,iBAAA,CH3Cd;EAAM,MAAA,EAAA,IAAA,GAAA,YAAA,GAAA,gBAAA,GAAA,oBAAA,GAAA,OAAA;EAKO,MAAA,CAAA,EAAA,MAAO;EACN,eAAA,CAAA,EAAA,OAAA;EAAG,iBAAA,CAAA,EAAA,OAAA;;AACN,UG2CG,YAAA,CH3CH;EAAa,OAAA,EAAA,MAAA;EAAG,KAAA,EAAA,MAAA;EAAV,aAAA,EAAA,MAAA;EACV,SAAA,EAAA,MAAA;EAAG,gBAAA,EAAA,MAAA;EAAV,SAAA,EAAA;IAAM,UAAA,EGgDkB,KHhDlB,CAAA;MAKO,GAAQ,EAAA,MAAA;MAAsB,KAAA,EAAA,MAAA;MAAG,MAAA,EAAA,MAAA;IAAV,CAAA,CAAA;EAA4B,CAAA;EAAI,SAAA,EAAA,MAAA;EAAC,MAAA,EAAA,MAAA;EAKxD,aAAM,EAAA,OAAA;EAAsB,SAAA,EAAA,OAAA;EAAG,QAAA,CAAA,EAAA,MAAA,EAAA;;AAAK,UG8CnC,aAAA,CH9CmC;EAAC,gBAAA,EAAA,MAAA;EAMrC,OAAA,CAAA,EG0CJ,SH1CY,EAAA;EAAQ,eAAA,CAAA,EG2CZ,SH3CY,EAAA;EAAiB,cAAA,CAAA,EAAA,MAAA;EAAW,eAAA,CAAA,EAAA,MAAA;;AAAP,UGgDpC,SAAA,CHhDoC;EAAM,IAAA,EAAA,MAAA;EASrC,GAAA,CAAA,EAAA,MAAA;EAAqB,eAAA,CAAA,EAAA,MAAA;EACvB,MAAA,CAAA,EAAA,MAAA;EAAR,QAAA,EAAA,MAAA;EACM,OAAA,EAAA,MAAA;EAAG,KAAA,CAAA,EAAA,MAAA;EAAV,MAAA,CAAA,EAAA,MAAA;EAAR,GAAA,CAAA,EAAA,MAAA;EAAO,YAAA,CAAA,EAAA,MAAA;;;;ECrEE,aAAS,CAAA,EAAA,MAAA;EAyBJ,aAAA,CAAW,EAAA,MAAA;;;;ICzBX,GAAA,EAAA,MAAS;EAMf,CAAA;EAGG,UAAA,CAAA,EAAA;IACH,KAAA,EAAA,MAAA;IACc,GAAA,EAAA,MAAA;EAAZ,CAAA;EACA,YAAA,CAAA,EAAA,MAAA;EAAO,WAAA,CAAA,EAAA,MAAA,EAAA;AAKpB;AAMiB,UC0GA,YAAA,CD1GS;EAMT,+BAAgB,CAAA,EAAA;IACrB,aAAA,CAAA,ECqGQ,YDrGR,EAAA;EACH,CAAA;;AAED,UCsGS,YAAA,CDtGT;EACC,OAAA,EAAA,MAAA;EAAQ,YAAA,EAAA,MAAA;EAGA,IAAA,EAAA;IAuBA,UAAY,EAAA,MAAA;EAMZ,CAAA;EAOA,IAAA,CAAA,EAAA,MAAO;EAKP,cAAU,CAAA,EAAA,OAAA;AAO3B;AAKiB,UCqDA,eAAA,CDrDQ;EAQR,yBAIH,CAAA,EAAA;IAGG,UAAU,CAAA,EAAA,MAAA;;;;ICzGf,aAAU,CAAA,EAAA,MAAA;EAWL,CAAA;AAajB;AA4CiB,UAqFA,cAAA,CArFc;EACV,4BAAA,CAAA,EAAA;IACJ,IAAA,CAAA,EAAA,MAAA;EACC,CAAA;;;;;;;AJtED,UKDA,UAAA,CLCQ;EAKR,QAAA,EAAA,MAAS;EAKd,SAAM,EAAA,MAAA;EAAkB,kBAAA,EAAA,MAAA;EAAT,WAAA,EKPZ,cLOY;EAAwB,SAAA,EKNtC,cLMsC;EAAV,QAAA,EAAA,MAAA;;KKF7B,cAAA;UAEK,eAAA;;EJRJ,cAAwD,EAAA,MAAA;EAAxC,GAAA,EAAA,MAAA;;;;ADQY,cMJ5B,iBNI4B,EAAA;EAAS,SAAA,GAAA,EAAA;;;;ICRrC,SAAwD,OAAA,EAAA,yCAAA;IAAxC,SAAA,iBAAA,EAAA;MAAa,SAAA,MAAA,EAAA;QAAT,SAAA,UAAA,EAAA,KAAA;QAAQ,SAAA,aAAA,EAAA,kBAAA;QAG+B,SAAA,QAAA,EAAA,SAAA;MAA1C,CAAA;IAAc,CAAA;IAAV,SAAA,OAAA,EAAA;MAAS,SAAA,YAAA,EAAA,8DAAA;MAGyC,SAAA,uBAAA,EAAA,GAAA;MAA1C,SAAA,0BAAA,EAAA,kBAAA;IAAG,CAAA;EAAV,CAAA;EAAkC,SAAA,OAAA,EAAA;IAAT,SAAA,IAAA,EAAA,SAAA;IAAQ,SAAA,OAAA,EAAA,UAAA;IAGvD,SAA0E,SAAA,EAAA,CAAA;IAA5C,SAAA,OAAA,EAAA,yCAAA;IAAG,SAAA,WAAA,EAAA,EAAA;IAAV,SAAA,iBAAA,EAAA;MAAmC,SAAA,MAAA,EAAA;QAAV,SAAA,UAAA,EAAA,SAAA;QAAS,SAAA,aAAA,EAAA,UAAA;QAGjD,SAAA,iBAAA,EAAA,EAAA;MACJ,CAAA;IAAG,CAAA;IAAV,SAAA,OAAA,EAAA;MACgB,SAAA,YAAA,EAAA,uGAAA;MAAM,SAAA,uBAAA,EAAA,GAAA;MAAgB,SAAA,0BAAA,EAAA,UAAA;IAAM,CAAA;EACnD,CAAA;EAAC,SAAA,EAAA,EAAA;IAKY,SAAG,IAAA,EAAA,SAAA;IACF,SAAA,OAAA,EAAA,kBAAA;IAAG,SAAA,SAAA,EAAA,CAAA;IAAV,SAAA,OAAA,EAAA,yCAAA;IACI,SAAA,iBAAA,EAAA;MAAM,SAAA,MAAA,EAAA;QACV,SAAA,UAAA,EAAA,SAAA;QAAG,SAAA,aAAA,EAAA,kBAAA;QAAV,SAAA,SAAA,EAAA,oDAAA;MAAM,CAAA;IAKO,CAAA;IACC,SAAA,OAAA,EAAA;MAAG,SAAA,YAAA,EAAA,oDAAA;MAAV,SAAA,uBAAA,EAAA,GAAA;MACI,SAAA,0BAAA,EAAA,kBAAA;IAAM,CAAA;EACV,CAAA;EAAG,SAAA,GAAA,EAAA;IAAV,SAAA,IAAA,EAAA,KAAA;IAAM,SAAA,OAAA,EAAA,SAAA;IAKO,SAAO,SAAA,EAAA,CAAA;IACN,SAAA,OAAA,EAAA,yCAAA;IAAG,SAAA,iBAAA,EAAA;MAAV,SAAA,MAAA,EAAA;QACI,SAAA,UAAA,EAAA,KAAA;QAAa,SAAA,aAAA,EAAA,SAAA;QAAG,SAAA,UAAA,EAAA,OAAA;QAAV,SAAA,WAAA,EAAA,YAAA;QACV,SAAA,MAAA,EAAA,QAAA;QAAG,SAAA,SAAA,EAAA,cAAA;MAAV,CAAA;IAAM,CAAA;IAKO,SAAQ,OAAA,EAAA;MAAsB,SAAA,YAAA,EAAA,+EAAA;MAAG,SAAA,uBAAA,EAAA,GAAA;MAAV,SAAA,0BAAA,EAAA,SAAA;IAA4B,CAAA;EAAI,CAAA;EAAC,SAAA,eAAA,EAAA;IAKxD,SAAM,IAAA,EAAA,SAAA;IAAsB,SAAA,OAAA,EAAA,UAAA;IAAG,SAAA,SAAA,EAAA,CAAA;IAAV,SAAA,OAAA,EAAA,yCAAA;IAAe,SAAA,iBAAA,EAAA;MAAC,SAAA,MAAA,EAAA;QAM7B,SAAA,UAAA,EAAA,SAAA;QAAQ,SAAA,aAAA,EAAA,UAAA;QAAiB,SAAA,MAAA,EAAA,SAAA;QAAW,SAAA,SAAA,EAAA,IAAA;MAAG,CAAA;IAAV,CAAA;IAAM,SAAA,OAAA,EAAA;MASrC,SAAa,YAAA,EAAA,iEAAA;MAAQ,SAAA,uBAAA,EAAA,GAAA;MACvB,SAAA,0BAAA,EAAA,UAAA;IAAR,CAAA;EACM,CAAA;EAAG,SAAA,WAAA,EAAA;IAAV,SAAA,IAAA,EAAA,gCAAA;IAAR,SAAA,OAAA,EAAA,KAAA;IAAO,SAAA,SAAA,EAAA,EAAA;;;;QCrEW,SAAA,UAAA,EAAA,gCAAA;QAyBJ,SAAW,aACpB,EAAS,KAAA;;;;MC1BA,SAAS,UAAA,EAAA;QAMf,SAAA,QAAA,EAAA,0BAAA;MAGG,CAAA;IACH,CAAA;IACc,SAAA,OAAA,EAAA;MAAZ,SAAA,YAAA,EAAA,oDAAA;MACA,SAAA,uBAAA,EAAA,IAAA;MAAO,SAAA,0BAAA,EAAA,KAAA;IAKH,CAAA;EAMA,CAAA;AAMjB,CAAA;AACY,KGoGA,YAAA,GHpGA,MAAA,OGoG0B,iBHpG1B;;;AHxBK,UOCA,eAAA,CPCE;EAGP,OAAA,CAAA,EAAM,MAAA;EAAkB,QAAA,CAAA,EAAA,MAAA;EAAT,eAAA,CAAA,EODL,YPCK;;;;;;cOiBd,gBAAA;ENzBA,QAAwD,MAAA;EAAxC,QAAA,MAAA;EAAa,QAAA,MAAA;EAAT,WAAA,CAAA,MAAA,CAAA,EM8BT,eN9BS;EAAQ;AAGzC;;;;EAA2C,OAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EMsCX,ONtCW,CMsCH,MNtCG,CMsCI,SNtCJ,EMsCe,WNtCf,CAAA,CAAA;EAG9B,QAAuE,YAAA;EAA1C,QAAA,WAAA;EAAG,QAAA,cAAA;EAAV,QAAA,iBAAA;;;;;;;ADRnC;AAKA;AAKA;;;;;;;;iBQCgB,kBAAA,iDAEb;APXH;;;;;AAGA;AAA8B,iBO2Bd,yBAAA,CAAA,CP3Bc,EO2Be,MP3Bf,CAAA,MAAA,EAAA,MAAA,CAAA;;;KQRlB,kBAAA;UAEK,aAAA;ETCA,GAAA,ESAR,kBTAgB,GAEP;IAGD,KAAA,ESJF,kBTMI;IAGP,IAAA,ESRE,kBTQI;IAAkB,GAAA,ESPvB,kBTOuB;EAAT,CAAA;EAAwB,MAAA,ESLvC,kBTKuC;EAAV,IAAA,ESJ/B,kBTI+B;EAAS,qBAAA,CAAA,EAAA,OAAA;;;;AAVjC,KUDL,cAAA,GVGM,KAAC,GAAA,QAAA,GAAA,MAAA;AAGF,KUJL,gBAAA,GVMM,SAAC,GAAA,SAAA;AAGP,UUPK,WAAA,CVOC;EAAkB,KAAA,EAAA,MAAA;EAAT,cAAA,CAAA,EAAA,MAAA;EAAwB,SAAA,EAAA,MAAA;EAAV,SAAA,EAAA,MAAA;EAAS,SAAA,EAAA,MAAA;eUDjC;;UAEL;ETTC,OAAwD,ESUxD,cTVwD;;AAMD,USuBnD,cAAA,CTvBmD;EAGvD,OAAA,CAA0E,EAAA,MAAA;EAA5C,SAAA,CAAA,EAAA,MAAA;EAAG,UAAA,CAAA,EAAA,MAAA;;;;ADX7B,UWDA,eAAA,CXGE;EAGF,SAAA,IAAS,EAAA,MAAA;EAKd,SAAM,QAAA,EAAA,MAAA;EAAkB,QAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EWPO,cXOP,CAAA,EWPwB,OXOxB,CWPgC,MXOhC,CWPuC,WXOvC,EWPoD,WXOpD,CAAA,CAAA;EAAT,WAAA,EAAA,EWLR,OXKQ,CAAA,OAAA,CAAA;EAAwB,QAAA,EAAA,EAAA,IAAA;;AAAD,UWAjC,sBAAA,CXAiC;;;;;;AAAd,UYLnB,oBAAA,CZKmB;EAAT,KAAA,CAAA,EAAA,MAAA;EAAwB,YAAA,CAAA,EAAA,OAAA;EAAV,SAAA,CAAA,EAAA,MAAA;EAAS,OAAA,CAAA,EAAA,MAAA;cYAlC;;cAGH,cAAA;EXXA,QAAwD,WAAA;EAAxC,QAAA,QAAA;EAAa,QAAA,SAAA;EAAT,QAAA,KAAA;EAAQ,WAAA,CAAA,MAAA,CAAA,EWiBjB,oBXjBiB;EAG5B,QAA2D,CAAA,UAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EW+BxD,YX/BwD,EAAA,OAAA,CAAA,EWgCtD,cXhCsD,CAAA,EWiCjE,OXjCiE,CWiCzD,MXjCyD,CAAA,MAAA,EWiC1C,WXjC0C,CAAA,CAAA;EAA1C,YAAA,CAAA,UAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EWsEd,YXtEc,EAAA,OAAA,CAAA,EWuEZ,cXvEY,CAAA,EWwEvB,OXxEuB,CWwEf,MXxEe,CWwER,WXxEQ,EWwEK,WXxEL,CAAA,CAAA;EAAc,iBAAA,CAAA,UAAA,EAAA,MAAA,CAAA,EAAA,MAAA;EAAV,UAAA,CAAA,MAAA,EWuHX,YXvHW,CAAA,EAAA,OAAA;EAAS,gBAAA,CAAA,MAAA,EWkId,YXlIc,CAAA,EAAA,OAAA;EAG9B,SAAuE,CAAA,MAAA,EW8I9D,YX9I8D,CAAA,EW8IjD,aX9IiD,GAAA,SAAA;EAA1C,cAAA,CAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAAG,QAAA,CAAA,CAAA,EAAA,IAAA;EAAV,aAAA,CAAA,CAAA,EAAA;IAAkC,KAAA,EAAA,MAAA;IAAT,OAAA,EAAA,MAAA;IAAQ,KAAA,EAAA,MAAA;EAGvD,CAAA,GAAA,IAA0E;;;;ADNtE,caAJ,qBAAA,YAAiC,ebE3B,CAAA;EAGP,SAAM,IAAA,GAAA,gBAAA;EAAkB,SAAA,QAAA,GAAA,GAAA;EAAT,QAAA,OAAA;EAAwB,QAAA,gBAAA;EAAV,QAAA,MAAA;EAAS,QAAA,SAAA;;;;ECRrC,QAAwD,WAAA;EAAxC,QAAA,SAAA;EAAa,WAAA,CAAA,OAAA,CAAA,EYiBjB,sBZjBiB;EAAT,WAAA,CAAA,CAAA,EYsBR,OZtBQ,CAAA,OAAA,CAAA;EAAQ,QAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EY+BS,cZ/BT,CAAA,EY+B0B,OZ/B1B,CY+BkC,MZ/BlC,CY+ByC,WZ/BzC,EY+BsD,WZ/BtD,CAAA,CAAA;EAG5B,QAA2D,iBAAA;EAA1C,QAAA,UAAA;EAAc,QAAA,KAAA;EAAV,QAAA,CAAA,CAAA,EAAA,IAAA;EAAS,cAAA,CAAA,CAAA,EAAA,MAAA,GAAA,SAAA;AAG3C;;;caEa,cAAqC,uBAAA,CAAzB;cAGZ,iBAA+C,uBAAA,CAAhC;;;;AbL5B;;AAA6C,iBcqE7B,aAAA,CdrE6B,GAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,MAAA"}