rezo 1.0.8 → 1.0.10

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.
@@ -4162,6 +4162,158 @@ export declare class Rezo {
4162
4162
  * ```
4163
4163
  */
4164
4164
  upload(url: string | URL, data: Buffer | FormData | RezoFormData | string | Record<string, any>, options?: RezoHttpRequest): RezoUploadResponse;
4165
+ /**
4166
+ * Set cookies in the cookie jar from various input formats.
4167
+ *
4168
+ * This method accepts multiple input formats for maximum flexibility:
4169
+ * - **Netscape cookie file content** (string): Full cookie file content in Netscape format
4170
+ * - **Set-Cookie header array** (string[]): Array of Set-Cookie header values
4171
+ * - **Serialized cookie objects** (SerializedCookie[]): Array of plain objects with cookie properties
4172
+ * - **Cookie instances** (Cookie[]): Array of Cookie class instances
4173
+ *
4174
+ * @param cookies - Cookies to set in one of the supported formats
4175
+ * @param url - Optional URL context for the cookies (used for domain/path inference)
4176
+ * @param startNew - If true, clears all existing cookies before setting new ones (default: false)
4177
+ *
4178
+ * @example
4179
+ * ```typescript
4180
+ * // From Netscape cookie file content
4181
+ * const netscapeContent = `# Netscape HTTP Cookie File
4182
+ * .example.com\tTRUE\t/\tFALSE\t0\tsession\tabc123`;
4183
+ * rezo.setCookies(netscapeContent);
4184
+ *
4185
+ * // From Set-Cookie header array
4186
+ * rezo.setCookies([
4187
+ * 'session=abc123; Domain=example.com; Path=/; HttpOnly',
4188
+ * 'user=john; Domain=example.com; Path=/; Max-Age=3600'
4189
+ * ], 'https://example.com');
4190
+ *
4191
+ * // From serialized cookie objects
4192
+ * rezo.setCookies([
4193
+ * { key: 'session', value: 'abc123', domain: 'example.com', path: '/' },
4194
+ * { key: 'user', value: 'john', domain: 'example.com', path: '/', maxAge: 3600 }
4195
+ * ]);
4196
+ *
4197
+ * // From Cookie instances
4198
+ * import { Cookie } from 'rezo';
4199
+ * const cookie = new Cookie({ key: 'token', value: 'xyz789', domain: 'api.example.com' });
4200
+ * rezo.setCookies([cookie]);
4201
+ *
4202
+ * // Replace all cookies (startNew = true)
4203
+ * rezo.setCookies([{ key: 'new', value: 'cookie' }], undefined, true);
4204
+ * ```
4205
+ *
4206
+ * @see {@link getCookies} - Retrieve cookies from the jar
4207
+ * @see {@link RezoCookieJar} - The underlying cookie jar class
4208
+ */
4209
+ setCookies(stringCookies: string): void;
4210
+ setCookies(stringCookies: string, url: string, startNew?: boolean): void;
4211
+ setCookies(serializedStringCookiesCookies: string, url: string | undefined, startNew: boolean): void;
4212
+ setCookies(serializedCookies: SerializedCookie[]): void;
4213
+ setCookies(serializedCookies: SerializedCookie[], url: string, startNew?: boolean): void;
4214
+ setCookies(serializedCookies: SerializedCookie[], url: string | undefined, startNew: boolean): void;
4215
+ setCookies(cookies: Cookie[]): void;
4216
+ setCookies(cookies: Cookie[], url: string, startNew?: boolean): void;
4217
+ setCookies(cookies: Cookie[], url: string | undefined, startNew: boolean): void;
4218
+ setCookies(setCookieArray: string[]): void;
4219
+ setCookies(setCookieArray: string[], url: string, startNew?: boolean): void;
4220
+ setCookies(setCookieArray: string[], url: string | undefined, startNew: boolean): void;
4221
+ /**
4222
+ * Get all cookies from the cookie jar in multiple convenient formats.
4223
+ *
4224
+ * Returns a `Cookies` object containing all stored cookies in various formats
4225
+ * for different use cases. This provides flexible access to cookies for
4226
+ * HTTP headers, file storage, serialization, or programmatic manipulation.
4227
+ *
4228
+ * The returned `Cookies` object contains:
4229
+ * - **array**: `Cookie[]` - Array of Cookie class instances for programmatic access
4230
+ * - **serialized**: `SerializedCookie[]` - Plain objects for JSON serialization/storage
4231
+ * - **netscape**: `string` - Netscape cookie file format for file-based storage
4232
+ * - **string**: `string` - Cookie header format (`key=value; key2=value2`) for HTTP requests
4233
+ * - **setCookiesString**: `string[]` - Array of Set-Cookie header strings
4234
+ *
4235
+ * @returns A Cookies object with cookies in multiple formats
4236
+ *
4237
+ * @example
4238
+ * ```typescript
4239
+ * const cookies = rezo.getCookies();
4240
+ *
4241
+ * // Access as Cookie instances for programmatic use
4242
+ * for (const cookie of cookies.array) {
4243
+ * console.log(`${cookie.key}=${cookie.value} (expires: ${cookie.expires})`);
4244
+ * }
4245
+ *
4246
+ * // Get cookie header string for manual HTTP requests
4247
+ * console.log(cookies.string); // "session=abc123; user=john"
4248
+ *
4249
+ * // Save to Netscape cookie file
4250
+ * fs.writeFileSync('cookies.txt', cookies.netscape);
4251
+ *
4252
+ * // Serialize to JSON for storage
4253
+ * const json = JSON.stringify(cookies.serialized);
4254
+ * localStorage.setItem('cookies', json);
4255
+ *
4256
+ * // Get Set-Cookie headers (useful for proxying responses)
4257
+ * for (const setCookie of cookies.setCookiesString) {
4258
+ * console.log(setCookie); // "session=abc123; Domain=example.com; Path=/; HttpOnly"
4259
+ * }
4260
+ *
4261
+ * // Check cookie count
4262
+ * console.log(`Total cookies: ${cookies.array.length}`);
4263
+ *
4264
+ * // Find specific cookie
4265
+ * const sessionCookie = cookies.array.find(c => c.key === 'session');
4266
+ * ```
4267
+ *
4268
+ * @see {@link setCookies} - Set cookies in the jar
4269
+ * @see {@link clearCookies} - Remove all cookies from the jar
4270
+ * @see {@link cookieJar} - Access the underlying RezoCookieJar for more methods
4271
+ */
4272
+ getCookies(): Cookies;
4273
+ /**
4274
+ * Remove all cookies from the cookie jar.
4275
+ *
4276
+ * This method synchronously clears the entire cookie store, removing all
4277
+ * cookies regardless of domain, path, or expiration. Useful for:
4278
+ * - Logging out users and clearing session state
4279
+ * - Resetting the client to a clean state between test runs
4280
+ * - Implementing "clear cookies" functionality in applications
4281
+ * - Starting fresh before authenticating with different credentials
4282
+ *
4283
+ * This operation is immediate and cannot be undone. If you need to preserve
4284
+ * certain cookies, use {@link getCookies} to save them before clearing,
4285
+ * then restore specific ones with {@link setCookies}.
4286
+ *
4287
+ * @example
4288
+ * ```typescript
4289
+ * // Simple logout - clear all cookies
4290
+ * rezo.clearCookies();
4291
+ *
4292
+ * // Save cookies before clearing (if needed)
4293
+ * const savedCookies = rezo.getCookies();
4294
+ * rezo.clearCookies();
4295
+ * // Later, restore specific cookies if needed
4296
+ * const importantCookies = savedCookies.array.filter(c => c.key === 'preferences');
4297
+ * rezo.setCookies(importantCookies);
4298
+ *
4299
+ * // Clear and re-authenticate
4300
+ * rezo.clearCookies();
4301
+ * await rezo.post('https://api.example.com/login', {
4302
+ * username: 'newuser',
4303
+ * password: 'newpass'
4304
+ * });
4305
+ *
4306
+ * // Use in test teardown
4307
+ * afterEach(() => {
4308
+ * rezo.clearCookies(); // Clean state for next test
4309
+ * });
4310
+ * ```
4311
+ *
4312
+ * @see {@link getCookies} - Get all cookies before clearing
4313
+ * @see {@link setCookies} - Restore or set new cookies after clearing
4314
+ * @see {@link cookieJar} - Access the underlying RezoCookieJar for more control
4315
+ */
4316
+ clearCookies(): void;
4165
4317
  }
4166
4318
  /**
4167
4319
  * Extended Rezo instance with Axios-compatible static helpers.
@@ -4162,6 +4162,158 @@ export declare class Rezo {
4162
4162
  * ```
4163
4163
  */
4164
4164
  upload(url: string | URL, data: Buffer | FormData | RezoFormData | string | Record<string, any>, options?: RezoHttpRequest): RezoUploadResponse;
4165
+ /**
4166
+ * Set cookies in the cookie jar from various input formats.
4167
+ *
4168
+ * This method accepts multiple input formats for maximum flexibility:
4169
+ * - **Netscape cookie file content** (string): Full cookie file content in Netscape format
4170
+ * - **Set-Cookie header array** (string[]): Array of Set-Cookie header values
4171
+ * - **Serialized cookie objects** (SerializedCookie[]): Array of plain objects with cookie properties
4172
+ * - **Cookie instances** (Cookie[]): Array of Cookie class instances
4173
+ *
4174
+ * @param cookies - Cookies to set in one of the supported formats
4175
+ * @param url - Optional URL context for the cookies (used for domain/path inference)
4176
+ * @param startNew - If true, clears all existing cookies before setting new ones (default: false)
4177
+ *
4178
+ * @example
4179
+ * ```typescript
4180
+ * // From Netscape cookie file content
4181
+ * const netscapeContent = `# Netscape HTTP Cookie File
4182
+ * .example.com\tTRUE\t/\tFALSE\t0\tsession\tabc123`;
4183
+ * rezo.setCookies(netscapeContent);
4184
+ *
4185
+ * // From Set-Cookie header array
4186
+ * rezo.setCookies([
4187
+ * 'session=abc123; Domain=example.com; Path=/; HttpOnly',
4188
+ * 'user=john; Domain=example.com; Path=/; Max-Age=3600'
4189
+ * ], 'https://example.com');
4190
+ *
4191
+ * // From serialized cookie objects
4192
+ * rezo.setCookies([
4193
+ * { key: 'session', value: 'abc123', domain: 'example.com', path: '/' },
4194
+ * { key: 'user', value: 'john', domain: 'example.com', path: '/', maxAge: 3600 }
4195
+ * ]);
4196
+ *
4197
+ * // From Cookie instances
4198
+ * import { Cookie } from 'rezo';
4199
+ * const cookie = new Cookie({ key: 'token', value: 'xyz789', domain: 'api.example.com' });
4200
+ * rezo.setCookies([cookie]);
4201
+ *
4202
+ * // Replace all cookies (startNew = true)
4203
+ * rezo.setCookies([{ key: 'new', value: 'cookie' }], undefined, true);
4204
+ * ```
4205
+ *
4206
+ * @see {@link getCookies} - Retrieve cookies from the jar
4207
+ * @see {@link RezoCookieJar} - The underlying cookie jar class
4208
+ */
4209
+ setCookies(stringCookies: string): void;
4210
+ setCookies(stringCookies: string, url: string, startNew?: boolean): void;
4211
+ setCookies(serializedStringCookiesCookies: string, url: string | undefined, startNew: boolean): void;
4212
+ setCookies(serializedCookies: SerializedCookie[]): void;
4213
+ setCookies(serializedCookies: SerializedCookie[], url: string, startNew?: boolean): void;
4214
+ setCookies(serializedCookies: SerializedCookie[], url: string | undefined, startNew: boolean): void;
4215
+ setCookies(cookies: Cookie[]): void;
4216
+ setCookies(cookies: Cookie[], url: string, startNew?: boolean): void;
4217
+ setCookies(cookies: Cookie[], url: string | undefined, startNew: boolean): void;
4218
+ setCookies(setCookieArray: string[]): void;
4219
+ setCookies(setCookieArray: string[], url: string, startNew?: boolean): void;
4220
+ setCookies(setCookieArray: string[], url: string | undefined, startNew: boolean): void;
4221
+ /**
4222
+ * Get all cookies from the cookie jar in multiple convenient formats.
4223
+ *
4224
+ * Returns a `Cookies` object containing all stored cookies in various formats
4225
+ * for different use cases. This provides flexible access to cookies for
4226
+ * HTTP headers, file storage, serialization, or programmatic manipulation.
4227
+ *
4228
+ * The returned `Cookies` object contains:
4229
+ * - **array**: `Cookie[]` - Array of Cookie class instances for programmatic access
4230
+ * - **serialized**: `SerializedCookie[]` - Plain objects for JSON serialization/storage
4231
+ * - **netscape**: `string` - Netscape cookie file format for file-based storage
4232
+ * - **string**: `string` - Cookie header format (`key=value; key2=value2`) for HTTP requests
4233
+ * - **setCookiesString**: `string[]` - Array of Set-Cookie header strings
4234
+ *
4235
+ * @returns A Cookies object with cookies in multiple formats
4236
+ *
4237
+ * @example
4238
+ * ```typescript
4239
+ * const cookies = rezo.getCookies();
4240
+ *
4241
+ * // Access as Cookie instances for programmatic use
4242
+ * for (const cookie of cookies.array) {
4243
+ * console.log(`${cookie.key}=${cookie.value} (expires: ${cookie.expires})`);
4244
+ * }
4245
+ *
4246
+ * // Get cookie header string for manual HTTP requests
4247
+ * console.log(cookies.string); // "session=abc123; user=john"
4248
+ *
4249
+ * // Save to Netscape cookie file
4250
+ * fs.writeFileSync('cookies.txt', cookies.netscape);
4251
+ *
4252
+ * // Serialize to JSON for storage
4253
+ * const json = JSON.stringify(cookies.serialized);
4254
+ * localStorage.setItem('cookies', json);
4255
+ *
4256
+ * // Get Set-Cookie headers (useful for proxying responses)
4257
+ * for (const setCookie of cookies.setCookiesString) {
4258
+ * console.log(setCookie); // "session=abc123; Domain=example.com; Path=/; HttpOnly"
4259
+ * }
4260
+ *
4261
+ * // Check cookie count
4262
+ * console.log(`Total cookies: ${cookies.array.length}`);
4263
+ *
4264
+ * // Find specific cookie
4265
+ * const sessionCookie = cookies.array.find(c => c.key === 'session');
4266
+ * ```
4267
+ *
4268
+ * @see {@link setCookies} - Set cookies in the jar
4269
+ * @see {@link clearCookies} - Remove all cookies from the jar
4270
+ * @see {@link cookieJar} - Access the underlying RezoCookieJar for more methods
4271
+ */
4272
+ getCookies(): Cookies;
4273
+ /**
4274
+ * Remove all cookies from the cookie jar.
4275
+ *
4276
+ * This method synchronously clears the entire cookie store, removing all
4277
+ * cookies regardless of domain, path, or expiration. Useful for:
4278
+ * - Logging out users and clearing session state
4279
+ * - Resetting the client to a clean state between test runs
4280
+ * - Implementing "clear cookies" functionality in applications
4281
+ * - Starting fresh before authenticating with different credentials
4282
+ *
4283
+ * This operation is immediate and cannot be undone. If you need to preserve
4284
+ * certain cookies, use {@link getCookies} to save them before clearing,
4285
+ * then restore specific ones with {@link setCookies}.
4286
+ *
4287
+ * @example
4288
+ * ```typescript
4289
+ * // Simple logout - clear all cookies
4290
+ * rezo.clearCookies();
4291
+ *
4292
+ * // Save cookies before clearing (if needed)
4293
+ * const savedCookies = rezo.getCookies();
4294
+ * rezo.clearCookies();
4295
+ * // Later, restore specific cookies if needed
4296
+ * const importantCookies = savedCookies.array.filter(c => c.key === 'preferences');
4297
+ * rezo.setCookies(importantCookies);
4298
+ *
4299
+ * // Clear and re-authenticate
4300
+ * rezo.clearCookies();
4301
+ * await rezo.post('https://api.example.com/login', {
4302
+ * username: 'newuser',
4303
+ * password: 'newpass'
4304
+ * });
4305
+ *
4306
+ * // Use in test teardown
4307
+ * afterEach(() => {
4308
+ * rezo.clearCookies(); // Clean state for next test
4309
+ * });
4310
+ * ```
4311
+ *
4312
+ * @see {@link getCookies} - Get all cookies before clearing
4313
+ * @see {@link setCookies} - Restore or set new cookies after clearing
4314
+ * @see {@link cookieJar} - Access the underlying RezoCookieJar for more control
4315
+ */
4316
+ clearCookies(): void;
4165
4317
  }
4166
4318
  /**
4167
4319
  * Extended Rezo instance with Axios-compatible static helpers.
@@ -4162,6 +4162,158 @@ export declare class Rezo {
4162
4162
  * ```
4163
4163
  */
4164
4164
  upload(url: string | URL, data: Buffer | FormData | RezoFormData | string | Record<string, any>, options?: RezoHttpRequest): RezoUploadResponse;
4165
+ /**
4166
+ * Set cookies in the cookie jar from various input formats.
4167
+ *
4168
+ * This method accepts multiple input formats for maximum flexibility:
4169
+ * - **Netscape cookie file content** (string): Full cookie file content in Netscape format
4170
+ * - **Set-Cookie header array** (string[]): Array of Set-Cookie header values
4171
+ * - **Serialized cookie objects** (SerializedCookie[]): Array of plain objects with cookie properties
4172
+ * - **Cookie instances** (Cookie[]): Array of Cookie class instances
4173
+ *
4174
+ * @param cookies - Cookies to set in one of the supported formats
4175
+ * @param url - Optional URL context for the cookies (used for domain/path inference)
4176
+ * @param startNew - If true, clears all existing cookies before setting new ones (default: false)
4177
+ *
4178
+ * @example
4179
+ * ```typescript
4180
+ * // From Netscape cookie file content
4181
+ * const netscapeContent = `# Netscape HTTP Cookie File
4182
+ * .example.com\tTRUE\t/\tFALSE\t0\tsession\tabc123`;
4183
+ * rezo.setCookies(netscapeContent);
4184
+ *
4185
+ * // From Set-Cookie header array
4186
+ * rezo.setCookies([
4187
+ * 'session=abc123; Domain=example.com; Path=/; HttpOnly',
4188
+ * 'user=john; Domain=example.com; Path=/; Max-Age=3600'
4189
+ * ], 'https://example.com');
4190
+ *
4191
+ * // From serialized cookie objects
4192
+ * rezo.setCookies([
4193
+ * { key: 'session', value: 'abc123', domain: 'example.com', path: '/' },
4194
+ * { key: 'user', value: 'john', domain: 'example.com', path: '/', maxAge: 3600 }
4195
+ * ]);
4196
+ *
4197
+ * // From Cookie instances
4198
+ * import { Cookie } from 'rezo';
4199
+ * const cookie = new Cookie({ key: 'token', value: 'xyz789', domain: 'api.example.com' });
4200
+ * rezo.setCookies([cookie]);
4201
+ *
4202
+ * // Replace all cookies (startNew = true)
4203
+ * rezo.setCookies([{ key: 'new', value: 'cookie' }], undefined, true);
4204
+ * ```
4205
+ *
4206
+ * @see {@link getCookies} - Retrieve cookies from the jar
4207
+ * @see {@link RezoCookieJar} - The underlying cookie jar class
4208
+ */
4209
+ setCookies(stringCookies: string): void;
4210
+ setCookies(stringCookies: string, url: string, startNew?: boolean): void;
4211
+ setCookies(serializedStringCookiesCookies: string, url: string | undefined, startNew: boolean): void;
4212
+ setCookies(serializedCookies: SerializedCookie[]): void;
4213
+ setCookies(serializedCookies: SerializedCookie[], url: string, startNew?: boolean): void;
4214
+ setCookies(serializedCookies: SerializedCookie[], url: string | undefined, startNew: boolean): void;
4215
+ setCookies(cookies: Cookie[]): void;
4216
+ setCookies(cookies: Cookie[], url: string, startNew?: boolean): void;
4217
+ setCookies(cookies: Cookie[], url: string | undefined, startNew: boolean): void;
4218
+ setCookies(setCookieArray: string[]): void;
4219
+ setCookies(setCookieArray: string[], url: string, startNew?: boolean): void;
4220
+ setCookies(setCookieArray: string[], url: string | undefined, startNew: boolean): void;
4221
+ /**
4222
+ * Get all cookies from the cookie jar in multiple convenient formats.
4223
+ *
4224
+ * Returns a `Cookies` object containing all stored cookies in various formats
4225
+ * for different use cases. This provides flexible access to cookies for
4226
+ * HTTP headers, file storage, serialization, or programmatic manipulation.
4227
+ *
4228
+ * The returned `Cookies` object contains:
4229
+ * - **array**: `Cookie[]` - Array of Cookie class instances for programmatic access
4230
+ * - **serialized**: `SerializedCookie[]` - Plain objects for JSON serialization/storage
4231
+ * - **netscape**: `string` - Netscape cookie file format for file-based storage
4232
+ * - **string**: `string` - Cookie header format (`key=value; key2=value2`) for HTTP requests
4233
+ * - **setCookiesString**: `string[]` - Array of Set-Cookie header strings
4234
+ *
4235
+ * @returns A Cookies object with cookies in multiple formats
4236
+ *
4237
+ * @example
4238
+ * ```typescript
4239
+ * const cookies = rezo.getCookies();
4240
+ *
4241
+ * // Access as Cookie instances for programmatic use
4242
+ * for (const cookie of cookies.array) {
4243
+ * console.log(`${cookie.key}=${cookie.value} (expires: ${cookie.expires})`);
4244
+ * }
4245
+ *
4246
+ * // Get cookie header string for manual HTTP requests
4247
+ * console.log(cookies.string); // "session=abc123; user=john"
4248
+ *
4249
+ * // Save to Netscape cookie file
4250
+ * fs.writeFileSync('cookies.txt', cookies.netscape);
4251
+ *
4252
+ * // Serialize to JSON for storage
4253
+ * const json = JSON.stringify(cookies.serialized);
4254
+ * localStorage.setItem('cookies', json);
4255
+ *
4256
+ * // Get Set-Cookie headers (useful for proxying responses)
4257
+ * for (const setCookie of cookies.setCookiesString) {
4258
+ * console.log(setCookie); // "session=abc123; Domain=example.com; Path=/; HttpOnly"
4259
+ * }
4260
+ *
4261
+ * // Check cookie count
4262
+ * console.log(`Total cookies: ${cookies.array.length}`);
4263
+ *
4264
+ * // Find specific cookie
4265
+ * const sessionCookie = cookies.array.find(c => c.key === 'session');
4266
+ * ```
4267
+ *
4268
+ * @see {@link setCookies} - Set cookies in the jar
4269
+ * @see {@link clearCookies} - Remove all cookies from the jar
4270
+ * @see {@link cookieJar} - Access the underlying RezoCookieJar for more methods
4271
+ */
4272
+ getCookies(): Cookies;
4273
+ /**
4274
+ * Remove all cookies from the cookie jar.
4275
+ *
4276
+ * This method synchronously clears the entire cookie store, removing all
4277
+ * cookies regardless of domain, path, or expiration. Useful for:
4278
+ * - Logging out users and clearing session state
4279
+ * - Resetting the client to a clean state between test runs
4280
+ * - Implementing "clear cookies" functionality in applications
4281
+ * - Starting fresh before authenticating with different credentials
4282
+ *
4283
+ * This operation is immediate and cannot be undone. If you need to preserve
4284
+ * certain cookies, use {@link getCookies} to save them before clearing,
4285
+ * then restore specific ones with {@link setCookies}.
4286
+ *
4287
+ * @example
4288
+ * ```typescript
4289
+ * // Simple logout - clear all cookies
4290
+ * rezo.clearCookies();
4291
+ *
4292
+ * // Save cookies before clearing (if needed)
4293
+ * const savedCookies = rezo.getCookies();
4294
+ * rezo.clearCookies();
4295
+ * // Later, restore specific cookies if needed
4296
+ * const importantCookies = savedCookies.array.filter(c => c.key === 'preferences');
4297
+ * rezo.setCookies(importantCookies);
4298
+ *
4299
+ * // Clear and re-authenticate
4300
+ * rezo.clearCookies();
4301
+ * await rezo.post('https://api.example.com/login', {
4302
+ * username: 'newuser',
4303
+ * password: 'newpass'
4304
+ * });
4305
+ *
4306
+ * // Use in test teardown
4307
+ * afterEach(() => {
4308
+ * rezo.clearCookies(); // Clean state for next test
4309
+ * });
4310
+ * ```
4311
+ *
4312
+ * @see {@link getCookies} - Get all cookies before clearing
4313
+ * @see {@link setCookies} - Restore or set new cookies after clearing
4314
+ * @see {@link cookieJar} - Access the underlying RezoCookieJar for more control
4315
+ */
4316
+ clearCookies(): void;
4165
4317
  }
4166
4318
  /**
4167
4319
  * Extended Rezo instance with Axios-compatible static helpers.
@@ -4162,6 +4162,158 @@ export declare class Rezo {
4162
4162
  * ```
4163
4163
  */
4164
4164
  upload(url: string | URL, data: Buffer | FormData | RezoFormData | string | Record<string, any>, options?: RezoHttpRequest): RezoUploadResponse;
4165
+ /**
4166
+ * Set cookies in the cookie jar from various input formats.
4167
+ *
4168
+ * This method accepts multiple input formats for maximum flexibility:
4169
+ * - **Netscape cookie file content** (string): Full cookie file content in Netscape format
4170
+ * - **Set-Cookie header array** (string[]): Array of Set-Cookie header values
4171
+ * - **Serialized cookie objects** (SerializedCookie[]): Array of plain objects with cookie properties
4172
+ * - **Cookie instances** (Cookie[]): Array of Cookie class instances
4173
+ *
4174
+ * @param cookies - Cookies to set in one of the supported formats
4175
+ * @param url - Optional URL context for the cookies (used for domain/path inference)
4176
+ * @param startNew - If true, clears all existing cookies before setting new ones (default: false)
4177
+ *
4178
+ * @example
4179
+ * ```typescript
4180
+ * // From Netscape cookie file content
4181
+ * const netscapeContent = `# Netscape HTTP Cookie File
4182
+ * .example.com\tTRUE\t/\tFALSE\t0\tsession\tabc123`;
4183
+ * rezo.setCookies(netscapeContent);
4184
+ *
4185
+ * // From Set-Cookie header array
4186
+ * rezo.setCookies([
4187
+ * 'session=abc123; Domain=example.com; Path=/; HttpOnly',
4188
+ * 'user=john; Domain=example.com; Path=/; Max-Age=3600'
4189
+ * ], 'https://example.com');
4190
+ *
4191
+ * // From serialized cookie objects
4192
+ * rezo.setCookies([
4193
+ * { key: 'session', value: 'abc123', domain: 'example.com', path: '/' },
4194
+ * { key: 'user', value: 'john', domain: 'example.com', path: '/', maxAge: 3600 }
4195
+ * ]);
4196
+ *
4197
+ * // From Cookie instances
4198
+ * import { Cookie } from 'rezo';
4199
+ * const cookie = new Cookie({ key: 'token', value: 'xyz789', domain: 'api.example.com' });
4200
+ * rezo.setCookies([cookie]);
4201
+ *
4202
+ * // Replace all cookies (startNew = true)
4203
+ * rezo.setCookies([{ key: 'new', value: 'cookie' }], undefined, true);
4204
+ * ```
4205
+ *
4206
+ * @see {@link getCookies} - Retrieve cookies from the jar
4207
+ * @see {@link RezoCookieJar} - The underlying cookie jar class
4208
+ */
4209
+ setCookies(stringCookies: string): void;
4210
+ setCookies(stringCookies: string, url: string, startNew?: boolean): void;
4211
+ setCookies(serializedStringCookiesCookies: string, url: string | undefined, startNew: boolean): void;
4212
+ setCookies(serializedCookies: SerializedCookie[]): void;
4213
+ setCookies(serializedCookies: SerializedCookie[], url: string, startNew?: boolean): void;
4214
+ setCookies(serializedCookies: SerializedCookie[], url: string | undefined, startNew: boolean): void;
4215
+ setCookies(cookies: Cookie[]): void;
4216
+ setCookies(cookies: Cookie[], url: string, startNew?: boolean): void;
4217
+ setCookies(cookies: Cookie[], url: string | undefined, startNew: boolean): void;
4218
+ setCookies(setCookieArray: string[]): void;
4219
+ setCookies(setCookieArray: string[], url: string, startNew?: boolean): void;
4220
+ setCookies(setCookieArray: string[], url: string | undefined, startNew: boolean): void;
4221
+ /**
4222
+ * Get all cookies from the cookie jar in multiple convenient formats.
4223
+ *
4224
+ * Returns a `Cookies` object containing all stored cookies in various formats
4225
+ * for different use cases. This provides flexible access to cookies for
4226
+ * HTTP headers, file storage, serialization, or programmatic manipulation.
4227
+ *
4228
+ * The returned `Cookies` object contains:
4229
+ * - **array**: `Cookie[]` - Array of Cookie class instances for programmatic access
4230
+ * - **serialized**: `SerializedCookie[]` - Plain objects for JSON serialization/storage
4231
+ * - **netscape**: `string` - Netscape cookie file format for file-based storage
4232
+ * - **string**: `string` - Cookie header format (`key=value; key2=value2`) for HTTP requests
4233
+ * - **setCookiesString**: `string[]` - Array of Set-Cookie header strings
4234
+ *
4235
+ * @returns A Cookies object with cookies in multiple formats
4236
+ *
4237
+ * @example
4238
+ * ```typescript
4239
+ * const cookies = rezo.getCookies();
4240
+ *
4241
+ * // Access as Cookie instances for programmatic use
4242
+ * for (const cookie of cookies.array) {
4243
+ * console.log(`${cookie.key}=${cookie.value} (expires: ${cookie.expires})`);
4244
+ * }
4245
+ *
4246
+ * // Get cookie header string for manual HTTP requests
4247
+ * console.log(cookies.string); // "session=abc123; user=john"
4248
+ *
4249
+ * // Save to Netscape cookie file
4250
+ * fs.writeFileSync('cookies.txt', cookies.netscape);
4251
+ *
4252
+ * // Serialize to JSON for storage
4253
+ * const json = JSON.stringify(cookies.serialized);
4254
+ * localStorage.setItem('cookies', json);
4255
+ *
4256
+ * // Get Set-Cookie headers (useful for proxying responses)
4257
+ * for (const setCookie of cookies.setCookiesString) {
4258
+ * console.log(setCookie); // "session=abc123; Domain=example.com; Path=/; HttpOnly"
4259
+ * }
4260
+ *
4261
+ * // Check cookie count
4262
+ * console.log(`Total cookies: ${cookies.array.length}`);
4263
+ *
4264
+ * // Find specific cookie
4265
+ * const sessionCookie = cookies.array.find(c => c.key === 'session');
4266
+ * ```
4267
+ *
4268
+ * @see {@link setCookies} - Set cookies in the jar
4269
+ * @see {@link clearCookies} - Remove all cookies from the jar
4270
+ * @see {@link cookieJar} - Access the underlying RezoCookieJar for more methods
4271
+ */
4272
+ getCookies(): Cookies;
4273
+ /**
4274
+ * Remove all cookies from the cookie jar.
4275
+ *
4276
+ * This method synchronously clears the entire cookie store, removing all
4277
+ * cookies regardless of domain, path, or expiration. Useful for:
4278
+ * - Logging out users and clearing session state
4279
+ * - Resetting the client to a clean state between test runs
4280
+ * - Implementing "clear cookies" functionality in applications
4281
+ * - Starting fresh before authenticating with different credentials
4282
+ *
4283
+ * This operation is immediate and cannot be undone. If you need to preserve
4284
+ * certain cookies, use {@link getCookies} to save them before clearing,
4285
+ * then restore specific ones with {@link setCookies}.
4286
+ *
4287
+ * @example
4288
+ * ```typescript
4289
+ * // Simple logout - clear all cookies
4290
+ * rezo.clearCookies();
4291
+ *
4292
+ * // Save cookies before clearing (if needed)
4293
+ * const savedCookies = rezo.getCookies();
4294
+ * rezo.clearCookies();
4295
+ * // Later, restore specific cookies if needed
4296
+ * const importantCookies = savedCookies.array.filter(c => c.key === 'preferences');
4297
+ * rezo.setCookies(importantCookies);
4298
+ *
4299
+ * // Clear and re-authenticate
4300
+ * rezo.clearCookies();
4301
+ * await rezo.post('https://api.example.com/login', {
4302
+ * username: 'newuser',
4303
+ * password: 'newpass'
4304
+ * });
4305
+ *
4306
+ * // Use in test teardown
4307
+ * afterEach(() => {
4308
+ * rezo.clearCookies(); // Clean state for next test
4309
+ * });
4310
+ * ```
4311
+ *
4312
+ * @see {@link getCookies} - Get all cookies before clearing
4313
+ * @see {@link setCookies} - Restore or set new cookies after clearing
4314
+ * @see {@link cookieJar} - Access the underlying RezoCookieJar for more control
4315
+ */
4316
+ clearCookies(): void;
4165
4317
  }
4166
4318
  /**
4167
4319
  * Extended Rezo instance with Axios-compatible static helpers.