notebooklm-kit 0.0.1 → 2.1.1

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 (100) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +4102 -0
  3. package/dist/src/auth/auth.d.ts +46 -0
  4. package/dist/src/auth/auth.d.ts.map +1 -0
  5. package/dist/src/auth/auth.js +323 -0
  6. package/dist/src/auth/auth.js.map +1 -0
  7. package/dist/src/auth/refresh.d.ts +150 -0
  8. package/dist/src/auth/refresh.d.ts.map +1 -0
  9. package/dist/src/auth/refresh.js +433 -0
  10. package/dist/src/auth/refresh.js.map +1 -0
  11. package/dist/src/client/notebooklm-client.d.ts +372 -0
  12. package/dist/src/client/notebooklm-client.d.ts.map +1 -0
  13. package/dist/src/client/notebooklm-client.js +550 -0
  14. package/dist/src/client/notebooklm-client.js.map +1 -0
  15. package/dist/src/index.d.ts +50 -0
  16. package/dist/src/index.d.ts.map +1 -0
  17. package/dist/src/index.js +45 -0
  18. package/dist/src/index.js.map +1 -0
  19. package/dist/src/rpc/rpc-client.d.ts +48 -0
  20. package/dist/src/rpc/rpc-client.d.ts.map +1 -0
  21. package/dist/src/rpc/rpc-client.js +94 -0
  22. package/dist/src/rpc/rpc-client.js.map +1 -0
  23. package/dist/src/rpc/rpc-methods.d.ts +127 -0
  24. package/dist/src/rpc/rpc-methods.d.ts.map +1 -0
  25. package/dist/src/rpc/rpc-methods.js +169 -0
  26. package/dist/src/rpc/rpc-methods.js.map +1 -0
  27. package/dist/src/services/artifacts.d.ts +1017 -0
  28. package/dist/src/services/artifacts.d.ts.map +1 -0
  29. package/dist/src/services/artifacts.js +5413 -0
  30. package/dist/src/services/artifacts.js.map +1 -0
  31. package/dist/src/services/generation.d.ts +147 -0
  32. package/dist/src/services/generation.d.ts.map +1 -0
  33. package/dist/src/services/generation.js +479 -0
  34. package/dist/src/services/generation.js.map +1 -0
  35. package/dist/src/services/notebook-language.d.ts +109 -0
  36. package/dist/src/services/notebook-language.d.ts.map +1 -0
  37. package/dist/src/services/notebook-language.js +204 -0
  38. package/dist/src/services/notebook-language.js.map +1 -0
  39. package/dist/src/services/notebooks.d.ts +26 -0
  40. package/dist/src/services/notebooks.d.ts.map +1 -0
  41. package/dist/src/services/notebooks.js +539 -0
  42. package/dist/src/services/notebooks.js.map +1 -0
  43. package/dist/src/services/notes.d.ts +72 -0
  44. package/dist/src/services/notes.d.ts.map +1 -0
  45. package/dist/src/services/notes.js +340 -0
  46. package/dist/src/services/notes.js.map +1 -0
  47. package/dist/src/services/sources.d.ts +1085 -0
  48. package/dist/src/services/sources.d.ts.map +1 -0
  49. package/dist/src/services/sources.js +2675 -0
  50. package/dist/src/services/sources.js.map +1 -0
  51. package/dist/src/types/artifact.d.ts +258 -0
  52. package/dist/src/types/artifact.d.ts.map +1 -0
  53. package/dist/src/types/artifact.js +42 -0
  54. package/dist/src/types/artifact.js.map +1 -0
  55. package/dist/src/types/common.d.ts +226 -0
  56. package/dist/src/types/common.d.ts.map +1 -0
  57. package/dist/src/types/common.js +80 -0
  58. package/dist/src/types/common.js.map +1 -0
  59. package/dist/src/types/languages.d.ts +179 -0
  60. package/dist/src/types/languages.d.ts.map +1 -0
  61. package/dist/src/types/languages.js +254 -0
  62. package/dist/src/types/languages.js.map +1 -0
  63. package/dist/src/types/note.d.ts +41 -0
  64. package/dist/src/types/note.d.ts.map +1 -0
  65. package/dist/src/types/note.js +12 -0
  66. package/dist/src/types/note.js.map +1 -0
  67. package/dist/src/types/notebook.d.ts +81 -0
  68. package/dist/src/types/notebook.d.ts.map +1 -0
  69. package/dist/src/types/notebook.js +5 -0
  70. package/dist/src/types/notebook.js.map +1 -0
  71. package/dist/src/types/source.d.ts +241 -0
  72. package/dist/src/types/source.d.ts.map +1 -0
  73. package/dist/src/types/source.js +60 -0
  74. package/dist/src/types/source.js.map +1 -0
  75. package/dist/src/utils/batch-execute.d.ts +58 -0
  76. package/dist/src/utils/batch-execute.d.ts.map +1 -0
  77. package/dist/src/utils/batch-execute.js +398 -0
  78. package/dist/src/utils/batch-execute.js.map +1 -0
  79. package/dist/src/utils/chunked-decoder.d.ts +11 -0
  80. package/dist/src/utils/chunked-decoder.d.ts.map +1 -0
  81. package/dist/src/utils/chunked-decoder.js +326 -0
  82. package/dist/src/utils/chunked-decoder.js.map +1 -0
  83. package/dist/src/utils/chunked-parser.d.ts +61 -0
  84. package/dist/src/utils/chunked-parser.d.ts.map +1 -0
  85. package/dist/src/utils/chunked-parser.js +609 -0
  86. package/dist/src/utils/chunked-parser.js.map +1 -0
  87. package/dist/src/utils/errors.d.ts +58 -0
  88. package/dist/src/utils/errors.d.ts.map +1 -0
  89. package/dist/src/utils/errors.js +357 -0
  90. package/dist/src/utils/errors.js.map +1 -0
  91. package/dist/src/utils/quota.d.ts +213 -0
  92. package/dist/src/utils/quota.d.ts.map +1 -0
  93. package/dist/src/utils/quota.js +518 -0
  94. package/dist/src/utils/quota.js.map +1 -0
  95. package/dist/src/utils/streaming-client.d.ts +129 -0
  96. package/dist/src/utils/streaming-client.d.ts.map +1 -0
  97. package/dist/src/utils/streaming-client.js +559 -0
  98. package/dist/src/utils/streaming-client.js.map +1 -0
  99. package/package.json +85 -7
  100. package/index.js +0 -2
@@ -0,0 +1,398 @@
1
+ /**
2
+ * Batch execute client for NotebookLM RPC calls
3
+ * Full-fledged implementation matching nlm Go version
4
+ */
5
+ import { NotebookLMError as ErrorClass, NotebookLMAuthError as AuthErrorClass, NotebookLMNetworkError as NetworkErrorClass } from '../types/common.js';
6
+ import { parseChunkedResponse } from './chunked-decoder.js';
7
+ import { isErrorResponse } from './errors.js';
8
+ /**
9
+ * Request ID generator for batchexecute requests
10
+ */
11
+ class ReqIDGenerator {
12
+ base;
13
+ sequence = 0;
14
+ constructor() {
15
+ // Generate random 4-digit number (1000-9999)
16
+ this.base = Math.floor(Math.random() * 9000) + 1000;
17
+ }
18
+ next() {
19
+ const reqid = this.base + (this.sequence * 100000);
20
+ this.sequence++;
21
+ return reqid.toString();
22
+ }
23
+ reset() {
24
+ this.sequence = 0;
25
+ }
26
+ }
27
+ /**
28
+ * Batch execute client
29
+ */
30
+ export class BatchExecuteClient {
31
+ config;
32
+ /**
33
+ * Update cookies (called when credentials are refreshed)
34
+ */
35
+ updateCookies(cookies) {
36
+ this.config.cookies = cookies;
37
+ }
38
+ reqidGenerator;
39
+ constructor(config) {
40
+ // Get retry config from env vars or config, with very low defaults
41
+ const getEnvNumber = (key, defaultValue) => {
42
+ try {
43
+ const value = process.env[key];
44
+ if (value) {
45
+ const parsed = parseInt(value, 10);
46
+ if (!isNaN(parsed)) {
47
+ return parsed;
48
+ }
49
+ }
50
+ }
51
+ catch {
52
+ // Ignore env access errors
53
+ }
54
+ return defaultValue;
55
+ };
56
+ // Set default retry configuration (very conservative - most requests succeed on first try)
57
+ // Defaults: 1 retry, 1s delay, 5s max delay
58
+ const maxRetries = config.maxRetries ?? getEnvNumber('NOTEBOOKLM_MAX_RETRIES', 1);
59
+ const retryDelay = config.retryDelay ?? getEnvNumber('NOTEBOOKLM_RETRY_DELAY', 1000);
60
+ const retryMaxDelay = config.retryMaxDelay ?? getEnvNumber('NOTEBOOKLM_RETRY_MAX_DELAY', 5000);
61
+ this.config = {
62
+ ...config,
63
+ maxRetries,
64
+ retryDelay,
65
+ retryMaxDelay,
66
+ };
67
+ this.reqidGenerator = new ReqIDGenerator();
68
+ }
69
+ /**
70
+ * Execute a single RPC call
71
+ */
72
+ async do(rpc) {
73
+ return this.execute([rpc]);
74
+ }
75
+ /**
76
+ * Execute one or more RPC calls
77
+ */
78
+ async execute(rpcs) {
79
+ const protocol = 'https';
80
+ const baseUrl = `${protocol}://${this.config.host}/_/${this.config.app}/data/batchexecute`;
81
+ // Build URL with query parameters
82
+ const url = new URL(baseUrl);
83
+ url.searchParams.set('rpcids', rpcs.map(r => r.id).join(','));
84
+ url.searchParams.set('_reqid', this.reqidGenerator.next());
85
+ // Add URL parameters from config
86
+ for (const [key, value] of Object.entries(this.config.urlParams)) {
87
+ url.searchParams.set(key, value);
88
+ }
89
+ // Add request-specific URL parameters from first RPC
90
+ if (rpcs[0].urlParams) {
91
+ for (const [key, value] of Object.entries(rpcs[0].urlParams)) {
92
+ url.searchParams.set(key, value);
93
+ }
94
+ }
95
+ // Build request body
96
+ const envelope = rpcs.map(rpc => this.buildRPCData(rpc));
97
+ const reqBody = JSON.stringify([envelope]);
98
+ // Build form data
99
+ const formData = new URLSearchParams();
100
+ formData.set('f.req', reqBody);
101
+ formData.set('at', this.config.authToken);
102
+ // Execute request with retry logic
103
+ let lastError = null;
104
+ let lastResponseStatus;
105
+ let lastResponseBody;
106
+ // Use configured retry values (guaranteed to be defined after constructor)
107
+ const maxRetries = this.config.maxRetries;
108
+ const retryDelay = this.config.retryDelay;
109
+ const retryMaxDelay = this.config.retryMaxDelay;
110
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
111
+ if (attempt > 0) {
112
+ // Calculate retry delay with exponential backoff
113
+ const multiplier = Math.pow(2, attempt - 1);
114
+ let delay = retryDelay * multiplier;
115
+ if (delay > retryMaxDelay) {
116
+ delay = retryMaxDelay;
117
+ }
118
+ await this.sleep(delay);
119
+ }
120
+ try {
121
+ // Create request headers
122
+ const headers = {
123
+ 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
124
+ 'Cookie': this.config.cookies,
125
+ ...this.config.headers,
126
+ };
127
+ let response;
128
+ try {
129
+ response = await fetch(url.toString(), {
130
+ method: 'POST',
131
+ headers,
132
+ body: formData.toString(),
133
+ });
134
+ }
135
+ catch (fetchError) {
136
+ lastError = fetchError instanceof Error ? fetchError : new Error(String(fetchError));
137
+ if (this.isRetryableError(lastError) && attempt < maxRetries) {
138
+ continue;
139
+ }
140
+ throw lastError;
141
+ }
142
+ lastResponseStatus = response.status;
143
+ // Read response body first (before checking status)
144
+ let body;
145
+ try {
146
+ body = await response.text();
147
+ lastResponseBody = body;
148
+ }
149
+ catch (readError) {
150
+ lastError = readError instanceof Error ? readError : new Error(String(readError));
151
+ if (this.isRetryableError(lastError) && attempt < maxRetries) {
152
+ continue;
153
+ }
154
+ throw lastError;
155
+ }
156
+ // Check if we should retry based on status
157
+ if (this.isRetryableStatus(response.status) && attempt < maxRetries) {
158
+ lastError = new Error(`Server returned status ${response.status}: ${response.statusText}`);
159
+ continue;
160
+ }
161
+ // Check for auth errors (401 - do not retry, credentials are invalid)
162
+ if (response.status === 401) {
163
+ throw new AuthErrorClass('Authentication failed (401). Please check your credentials.');
164
+ }
165
+ // Check for other error statuses
166
+ if (!response.ok) {
167
+ throw new ErrorClass(`Request failed: ${response.status} ${response.statusText}`, response.status);
168
+ }
169
+ // Decode response
170
+ let responses;
171
+ try {
172
+ responses = this.decodeResponse(body);
173
+ }
174
+ catch (decodeError) {
175
+ lastError = decodeError instanceof Error ? decodeError : new Error(String(decodeError));
176
+ if (this.isRetryableError(lastError) && attempt < maxRetries) {
177
+ continue;
178
+ }
179
+ throw lastError;
180
+ }
181
+ if (responses.length === 0) {
182
+ throw new ErrorClass('No valid responses found in server response');
183
+ }
184
+ // Check for API errors in first response
185
+ const firstResponse = responses[0];
186
+ const apiError = isErrorResponse(firstResponse);
187
+ if (apiError) {
188
+ throw apiError;
189
+ }
190
+ return firstResponse;
191
+ }
192
+ catch (error) {
193
+ // Ensure we have an Error object
194
+ if (error instanceof Error) {
195
+ lastError = error;
196
+ }
197
+ else {
198
+ lastError = new Error(String(error) || 'Unknown error');
199
+ }
200
+ // Check if error is retryable
201
+ if (error instanceof ErrorClass && 'isRetryable' in error) {
202
+ const retryable = error.isRetryable?.() ?? false;
203
+ if (retryable && attempt < maxRetries) {
204
+ continue;
205
+ }
206
+ }
207
+ if (this.isRetryableError(error) && attempt < maxRetries) {
208
+ continue;
209
+ }
210
+ // Non-retryable error or max retries reached
211
+ throw error;
212
+ }
213
+ }
214
+ // All retries failed - build comprehensive error message
215
+ let errorMessage = 'Unknown error';
216
+ if (lastError) {
217
+ errorMessage = lastError.message || lastError.toString() || String(lastError) || 'Unknown error';
218
+ }
219
+ if (lastResponseStatus !== undefined) {
220
+ errorMessage += ` (HTTP ${lastResponseStatus})`;
221
+ }
222
+ if (lastResponseBody !== undefined && lastResponseBody.length < 500) {
223
+ errorMessage += ` - ${lastResponseBody}`;
224
+ }
225
+ throw new NetworkErrorClass(`All retry attempts failed: ${errorMessage}`, lastError || undefined);
226
+ }
227
+ /**
228
+ * Build RPC data array
229
+ */
230
+ buildRPCData(rpc) {
231
+ const argsJSON = JSON.stringify(rpc.args);
232
+ return [
233
+ rpc.id,
234
+ argsJSON,
235
+ null,
236
+ 'generic',
237
+ ];
238
+ }
239
+ /**
240
+ * Decode batchexecute response
241
+ */
242
+ decodeResponse(raw) {
243
+ // Remove the standard prefix
244
+ raw = raw.trim().replace(/^\)\]\}'/, '');
245
+ if (!raw) {
246
+ throw new ErrorClass('Empty response after trimming prefix');
247
+ }
248
+ // Check if response starts with a digit (chunked format)
249
+ if (/^\d/.test(raw)) {
250
+ return parseChunkedResponse(raw, this.config.debug);
251
+ }
252
+ // Try to parse as regular JSON array
253
+ let responses;
254
+ try {
255
+ responses = JSON.parse(raw);
256
+ }
257
+ catch (error) {
258
+ // Try parsing as numeric error code
259
+ const trimmed = raw.trim();
260
+ const code = parseInt(trimmed, 10);
261
+ if (!isNaN(code) && trimmed.length <= 10) {
262
+ // Single numeric error code
263
+ return [{
264
+ index: 0,
265
+ id: 'numeric',
266
+ data: code,
267
+ }];
268
+ }
269
+ // Try to parse as single array
270
+ try {
271
+ const singleArray = JSON.parse(raw);
272
+ if (Array.isArray(singleArray)) {
273
+ responses = [singleArray];
274
+ }
275
+ else {
276
+ throw error;
277
+ }
278
+ }
279
+ catch {
280
+ throw new ErrorClass(`Failed to parse response: ${error.message}`);
281
+ }
282
+ }
283
+ const result = [];
284
+ for (const rpcData of responses) {
285
+ if (rpcData.length < 7) {
286
+ continue;
287
+ }
288
+ const rpcType = rpcData[0];
289
+ if (rpcType !== 'wrb.fr') {
290
+ continue;
291
+ }
292
+ const id = rpcData[1];
293
+ const response = {
294
+ id,
295
+ index: 0,
296
+ data: null,
297
+ };
298
+ // Try position 2 first for data
299
+ let responseData = null;
300
+ if (rpcData[2] !== null) {
301
+ if (typeof rpcData[2] === 'string') {
302
+ response.data = rpcData[2];
303
+ responseData = rpcData[2];
304
+ }
305
+ else {
306
+ responseData = rpcData[2];
307
+ }
308
+ }
309
+ // If position 2 is null/empty, try position 5
310
+ if (responseData === null && rpcData.length > 5 && rpcData[5] !== null) {
311
+ responseData = rpcData[5];
312
+ }
313
+ // Convert responseData to final form
314
+ if (responseData !== null && response.data === null) {
315
+ response.data = responseData;
316
+ }
317
+ // Parse index
318
+ if (rpcData[6] === 'generic') {
319
+ response.index = 0;
320
+ }
321
+ else if (typeof rpcData[6] === 'string') {
322
+ response.index = parseInt(rpcData[6], 10) || 0;
323
+ }
324
+ result.push(response);
325
+ }
326
+ if (result.length === 0) {
327
+ throw new ErrorClass('No valid responses found in parsed data');
328
+ }
329
+ return result;
330
+ }
331
+ /**
332
+ * Check if error is retryable
333
+ */
334
+ isRetryableError(error) {
335
+ const message = error.message.toLowerCase();
336
+ const retryablePatterns = [
337
+ 'connection refused',
338
+ 'connection reset',
339
+ 'timeout',
340
+ 'tls handshake',
341
+ 'econnreset',
342
+ 'enotfound',
343
+ 'network',
344
+ 'temporary failure',
345
+ ];
346
+ return retryablePatterns.some(pattern => message.includes(pattern));
347
+ }
348
+ /**
349
+ * Check if HTTP status is retryable
350
+ */
351
+ isRetryableStatus(statusCode) {
352
+ return [429, 500, 502, 503, 504].includes(statusCode);
353
+ }
354
+ /**
355
+ * Mask sensitive value for logging
356
+ */
357
+ maskSensitiveValue(value) {
358
+ if (value.length <= 8) {
359
+ return '*'.repeat(value.length);
360
+ }
361
+ else if (value.length <= 16) {
362
+ return value.substring(0, 2) + '*'.repeat(value.length - 4) + value.substring(value.length - 2);
363
+ }
364
+ else {
365
+ return value.substring(0, 3) + '*'.repeat(value.length - 6) + value.substring(value.length - 3);
366
+ }
367
+ }
368
+ /**
369
+ * Mask cookie values for logging
370
+ */
371
+ maskCookieValues(cookies) {
372
+ const parts = cookies.split(';');
373
+ const masked = parts.map(part => {
374
+ const trimmed = part.trim();
375
+ const equalIndex = trimmed.indexOf('=');
376
+ if (equalIndex > 0) {
377
+ const name = trimmed.substring(0, equalIndex);
378
+ const value = trimmed.substring(equalIndex + 1);
379
+ return `${name}=${this.maskSensitiveValue(value)}`;
380
+ }
381
+ return trimmed;
382
+ });
383
+ return masked.join('; ');
384
+ }
385
+ /**
386
+ * Sleep helper
387
+ */
388
+ sleep(ms) {
389
+ return new Promise(resolve => setTimeout(resolve, ms));
390
+ }
391
+ /**
392
+ * Get current config
393
+ */
394
+ getConfig() {
395
+ return { ...this.config };
396
+ }
397
+ }
398
+ //# sourceMappingURL=batch-execute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-execute.js","sourceRoot":"","sources":["../../../src/utils/batch-execute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Chunked response decoder for batchexecute format
3
+ * Handles the complex chunked format with size indicators
4
+ */
5
+ import type { RPCResponse } from '../types/common.js';
6
+ /**
7
+ * Parse chunked response from batchexecute
8
+ * Format: <chunk-length>\n<chunk-data>\n<chunk-length>\n<chunk-data>...
9
+ */
10
+ export declare function parseChunkedResponse(raw: string, debug?: boolean): RPCResponse[];
11
+ //# sourceMappingURL=chunked-decoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunked-decoder.d.ts","sourceRoot":"","sources":["../../../src/utils/chunked-decoder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe,GAAG,WAAW,EAAE,CAgFvF"}