Index: imaps-frontend/node_modules/readdirp/README.md
===================================================================
--- imaps-frontend/node_modules/readdirp/README.md	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/readdirp/README.md	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,10 +1,9 @@
 # readdirp [![Weekly downloads](https://img.shields.io/npm/dw/readdirp.svg)](https://github.com/paulmillr/readdirp)
 
-Recursive version of [fs.readdir](https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback). Exposes a **stream API** and a **promise API**.
-
-Supports both ESM and common.js.
+Recursive version of fs.readdir. Exposes a **stream API** (with small RAM & CPU footprint) and a **promise API**.
 
 ```sh
 npm install readdirp
+jsr add jsr:@paulmillr/readdirp
 ```
 
Index: imaps-frontend/node_modules/readdirp/esm/index.d.ts
===================================================================
--- imaps-frontend/node_modules/readdirp/esm/index.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/readdirp/esm/index.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,5 +1,22 @@
-import type { Stats, Dirent } from 'fs';
-import { Readable } from 'stream';
+/**
+ * Recursive version of readdir. Exposes a streaming API and promise API.
+ * Streaming API allows to use a small amount of RAM.
+ *
+ * @module
+ * @example
+```js
+import readdirp from 'readdirp';
+for await (const entry of readdirp('.')) {
+  const {path} = entry;
+  console.log(`${JSON.stringify({path})}`);
+}
+```
+ */
+/*! readdirp - MIT License (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com) */
+import type { Stats, Dirent } from 'node:fs';
+import { Readable } from 'node:stream';
+/** Path in file system. */
 export type Path = string;
+/** Emitted entry. Contains relative & absolute path, basename, and either stats or dirent. */
 export interface EntryInfo {
     path: string;
@@ -9,18 +26,35 @@
     basename: string;
 }
+/** Path or dir entries (files) */
 export type PathOrDirent = Dirent | Path;
-export type Tester = (path: EntryInfo) => boolean;
+/** Filterer for files */
+export type Tester = (entryInfo: EntryInfo) => boolean;
 export type Predicate = string[] | string | Tester;
-declare function defaultOptions(): {
+export declare const EntryTypes: {
+    readonly FILE_TYPE: "files";
+    readonly DIR_TYPE: "directories";
+    readonly FILE_DIR_TYPE: "files_directories";
+    readonly EVERYTHING_TYPE: "all";
+};
+export type EntryType = (typeof EntryTypes)[keyof typeof EntryTypes];
+/**
+ * Options for readdirp.
+ * * type: files, directories, or both
+ * * lstat: whether to use symlink-friendly stat
+ * * depth: max depth
+ * * alwaysStat: whether to use stat (more resources) or dirent
+ * * highWaterMark: streaming param, specifies max amount of resources per entry
+ */
+export type ReaddirpOptions = {
     root: string;
-    fileFilter: (_path: EntryInfo) => boolean;
-    directoryFilter: (_path: EntryInfo) => boolean;
-    type: string;
-    lstat: boolean;
-    depth: number;
-    alwaysStat: boolean;
-    highWaterMark: number;
+    fileFilter?: Predicate;
+    directoryFilter?: Predicate;
+    type?: EntryType;
+    lstat?: boolean;
+    depth?: number;
+    alwaysStat?: boolean;
+    highWaterMark?: number;
 };
-export type ReaddirpOptions = ReturnType<typeof defaultOptions>;
+/** Directory entry. Contains path, depth count, and files. */
 export interface DirEntry {
     files: PathOrDirent[];
@@ -28,4 +62,5 @@
     path: Path;
 }
+/** Readable readdir stream, emitting new files as they're being listed. */
 export declare class ReaddirpStream extends Readable {
     parents: any[];
@@ -55,13 +90,19 @@
     _formatEntry(dirent: PathOrDirent, path: Path): Promise<EntryInfo | undefined>;
     _onError(err: Error): void;
-    _getEntryType(entry: EntryInfo): Promise<void | "" | "file" | "directory">;
+    _getEntryType(entry: EntryInfo): Promise<void | '' | 'file' | 'directory'>;
     _includeAsFile(entry: EntryInfo): boolean | undefined;
 }
 /**
- * Main function which ends up calling readdirRec and reads all files and directories in given root recursively.
+ * Streaming version: Reads all files and directories in given root recursively.
+ * Consumes ~constant small amount of RAM.
  * @param root Root directory
  * @param options Options to specify root (start directory), filters and recursion depth
  */
-export declare const readdirp: (root: Path, options?: Partial<ReaddirpOptions>) => ReaddirpStream;
-export declare const readdirpPromise: (root: Path, options?: Partial<ReaddirpOptions>) => Promise<string[]>;
+export declare function readdirp(root: Path, options?: Partial<ReaddirpOptions>): ReaddirpStream;
+/**
+ * Promise version: Reads all files and directories in given root recursively.
+ * Compared to streaming version, will consume a lot of RAM e.g. when 1 million files are listed.
+ * @returns array of paths and their entry infos
+ */
+export declare function readdirpPromise(root: Path, options?: Partial<ReaddirpOptions>): Promise<EntryInfo[]>;
 export default readdirp;
Index: imaps-frontend/node_modules/readdirp/esm/index.js
===================================================================
--- imaps-frontend/node_modules/readdirp/esm/index.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/readdirp/esm/index.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,29 +1,43 @@
-import { stat, lstat, readdir, realpath } from 'fs/promises';
-import { Readable } from 'stream';
-import { resolve as pathResolve, relative as pathRelative, join as pathJoin, sep as pathSep, } from 'path';
-function defaultOptions() {
-    return {
-        root: '.',
-        fileFilter: (_path) => true,
-        directoryFilter: (_path) => true,
-        type: FILE_TYPE,
-        lstat: false,
-        depth: 2147483648,
-        alwaysStat: false,
-        highWaterMark: 4096,
-    };
-}
+import { stat, lstat, readdir, realpath } from 'node:fs/promises';
+import { Readable } from 'node:stream';
+import { resolve as presolve, relative as prelative, join as pjoin, sep as psep } from 'node:path';
+export const EntryTypes = {
+    FILE_TYPE: 'files',
+    DIR_TYPE: 'directories',
+    FILE_DIR_TYPE: 'files_directories',
+    EVERYTHING_TYPE: 'all',
+};
+const defaultOptions = {
+    root: '.',
+    fileFilter: (_entryInfo) => true,
+    directoryFilter: (_entryInfo) => true,
+    type: EntryTypes.FILE_TYPE,
+    lstat: false,
+    depth: 2147483648,
+    alwaysStat: false,
+    highWaterMark: 4096,
+};
+Object.freeze(defaultOptions);
 const RECURSIVE_ERROR_CODE = 'READDIRP_RECURSIVE_ERROR';
 const NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP', RECURSIVE_ERROR_CODE]);
-const FILE_TYPE = 'files';
-const DIR_TYPE = 'directories';
-const FILE_DIR_TYPE = 'files_directories';
-const EVERYTHING_TYPE = 'all';
-const ALL_TYPES = [FILE_TYPE, DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE];
-const DIR_TYPES = new Set([DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE]);
-const FILE_TYPES = new Set([FILE_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE]);
+const ALL_TYPES = [
+    EntryTypes.DIR_TYPE,
+    EntryTypes.EVERYTHING_TYPE,
+    EntryTypes.FILE_DIR_TYPE,
+    EntryTypes.FILE_TYPE,
+];
+const DIR_TYPES = new Set([
+    EntryTypes.DIR_TYPE,
+    EntryTypes.EVERYTHING_TYPE,
+    EntryTypes.FILE_DIR_TYPE,
+]);
+const FILE_TYPES = new Set([
+    EntryTypes.EVERYTHING_TYPE,
+    EntryTypes.FILE_DIR_TYPE,
+    EntryTypes.FILE_TYPE,
+]);
 const isNormalFlowError = (error) => NORMAL_FLOW_ERRORS.has(error.code);
 const wantBigintFsStats = process.platform === 'win32';
-const emptyFn = (_path) => true;
+const emptyFn = (_entryInfo) => true;
 const normalizeFilter = (filter) => {
     if (filter === undefined)
@@ -41,4 +55,5 @@
     return emptyFn;
 };
+/** Readable readdir stream, emitting new files as they're being listed. */
 export class ReaddirpStream extends Readable {
     constructor(options = {}) {
@@ -48,5 +63,5 @@
             highWaterMark: options.highWaterMark,
         });
-        const opts = { ...defaultOptions(), ...options };
+        const opts = { ...defaultOptions, ...options };
         const { root, type } = opts;
         this._fileFilter = normalizeFilter(opts.fileFilter);
@@ -60,9 +75,9 @@
             this._stat = statMethod;
         }
-        this._maxDepth = opts.depth;
-        this._wantsDir = DIR_TYPES.has(type);
-        this._wantsFile = FILE_TYPES.has(type);
-        this._wantsEverything = type === EVERYTHING_TYPE;
-        this._root = pathResolve(root);
+        this._maxDepth = opts.depth ?? defaultOptions.depth;
+        this._wantsDir = type ? DIR_TYPES.has(type) : false;
+        this._wantsFile = type ? FILE_TYPES.has(type) : false;
+        this._wantsEverything = type === EntryTypes.EVERYTHING_TYPE;
+        this._root = presolve(root);
         this._isDirent = !opts.alwaysStat;
         this._statsProp = this._isDirent ? 'dirent' : 'stats';
@@ -144,6 +159,6 @@
         const basename = this._isDirent ? dirent.name : dirent;
         try {
-            const fullPath = pathResolve(pathJoin(path, basename));
-            entry = { path: pathRelative(this._root, fullPath), fullPath, basename };
+            const fullPath = presolve(pjoin(path, basename));
+            entry = { path: prelative(this._root, fullPath), fullPath, basename };
             entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath);
         }
@@ -183,5 +198,5 @@
                 if (entryRealPathStats.isDirectory()) {
                     const len = entryRealPath.length;
-                    if (full.startsWith(entryRealPath) && full.substr(len, 1) === pathSep) {
+                    if (full.startsWith(entryRealPath) && full.substr(len, 1) === psep) {
                         const recursiveError = new Error(`Circular symlink detected: "${full}" points to "${entryRealPath}"`);
                         // @ts-ignore
@@ -204,13 +219,14 @@
 }
 /**
- * Main function which ends up calling readdirRec and reads all files and directories in given root recursively.
+ * Streaming version: Reads all files and directories in given root recursively.
+ * Consumes ~constant small amount of RAM.
  * @param root Root directory
  * @param options Options to specify root (start directory), filters and recursion depth
  */
-export const readdirp = (root, options = {}) => {
+export function readdirp(root, options = {}) {
     // @ts-ignore
     let type = options.entryType || options.type;
     if (type === 'both')
-        type = FILE_DIR_TYPE; // backwards-compatibility
+        type = EntryTypes.FILE_DIR_TYPE; // backwards-compatibility
     if (type)
         options.type = type;
@@ -226,6 +242,11 @@
     options.root = root;
     return new ReaddirpStream(options);
-};
-export const readdirpPromise = (root, options = {}) => {
+}
+/**
+ * Promise version: Reads all files and directories in given root recursively.
+ * Compared to streaming version, will consume a lot of RAM e.g. when 1 million files are listed.
+ * @returns array of paths and their entry infos
+ */
+export function readdirpPromise(root, options = {}) {
     return new Promise((resolve, reject) => {
         const files = [];
@@ -235,4 +256,4 @@
             .on('error', (error) => reject(error));
     });
-};
+}
 export default readdirp;
Index: imaps-frontend/node_modules/readdirp/index.d.ts
===================================================================
--- imaps-frontend/node_modules/readdirp/index.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/readdirp/index.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,5 +1,22 @@
-import type { Stats, Dirent } from 'fs';
-import { Readable } from 'stream';
+/**
+ * Recursive version of readdir. Exposes a streaming API and promise API.
+ * Streaming API allows to use a small amount of RAM.
+ *
+ * @module
+ * @example
+```js
+import readdirp from 'readdirp';
+for await (const entry of readdirp('.')) {
+  const {path} = entry;
+  console.log(`${JSON.stringify({path})}`);
+}
+```
+ */
+/*! readdirp - MIT License (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com) */
+import type { Stats, Dirent } from 'node:fs';
+import { Readable } from 'node:stream';
+/** Path in file system. */
 export type Path = string;
+/** Emitted entry. Contains relative & absolute path, basename, and either stats or dirent. */
 export interface EntryInfo {
     path: string;
@@ -9,18 +26,35 @@
     basename: string;
 }
+/** Path or dir entries (files) */
 export type PathOrDirent = Dirent | Path;
-export type Tester = (path: EntryInfo) => boolean;
+/** Filterer for files */
+export type Tester = (entryInfo: EntryInfo) => boolean;
 export type Predicate = string[] | string | Tester;
-declare function defaultOptions(): {
+export declare const EntryTypes: {
+    readonly FILE_TYPE: "files";
+    readonly DIR_TYPE: "directories";
+    readonly FILE_DIR_TYPE: "files_directories";
+    readonly EVERYTHING_TYPE: "all";
+};
+export type EntryType = (typeof EntryTypes)[keyof typeof EntryTypes];
+/**
+ * Options for readdirp.
+ * * type: files, directories, or both
+ * * lstat: whether to use symlink-friendly stat
+ * * depth: max depth
+ * * alwaysStat: whether to use stat (more resources) or dirent
+ * * highWaterMark: streaming param, specifies max amount of resources per entry
+ */
+export type ReaddirpOptions = {
     root: string;
-    fileFilter: (_path: EntryInfo) => boolean;
-    directoryFilter: (_path: EntryInfo) => boolean;
-    type: string;
-    lstat: boolean;
-    depth: number;
-    alwaysStat: boolean;
-    highWaterMark: number;
+    fileFilter?: Predicate;
+    directoryFilter?: Predicate;
+    type?: EntryType;
+    lstat?: boolean;
+    depth?: number;
+    alwaysStat?: boolean;
+    highWaterMark?: number;
 };
-export type ReaddirpOptions = ReturnType<typeof defaultOptions>;
+/** Directory entry. Contains path, depth count, and files. */
 export interface DirEntry {
     files: PathOrDirent[];
@@ -28,4 +62,5 @@
     path: Path;
 }
+/** Readable readdir stream, emitting new files as they're being listed. */
 export declare class ReaddirpStream extends Readable {
     parents: any[];
@@ -55,13 +90,19 @@
     _formatEntry(dirent: PathOrDirent, path: Path): Promise<EntryInfo | undefined>;
     _onError(err: Error): void;
-    _getEntryType(entry: EntryInfo): Promise<void | "" | "file" | "directory">;
+    _getEntryType(entry: EntryInfo): Promise<void | '' | 'file' | 'directory'>;
     _includeAsFile(entry: EntryInfo): boolean | undefined;
 }
 /**
- * Main function which ends up calling readdirRec and reads all files and directories in given root recursively.
+ * Streaming version: Reads all files and directories in given root recursively.
+ * Consumes ~constant small amount of RAM.
  * @param root Root directory
  * @param options Options to specify root (start directory), filters and recursion depth
  */
-export declare const readdirp: (root: Path, options?: Partial<ReaddirpOptions>) => ReaddirpStream;
-export declare const readdirpPromise: (root: Path, options?: Partial<ReaddirpOptions>) => Promise<string[]>;
+export declare function readdirp(root: Path, options?: Partial<ReaddirpOptions>): ReaddirpStream;
+/**
+ * Promise version: Reads all files and directories in given root recursively.
+ * Compared to streaming version, will consume a lot of RAM e.g. when 1 million files are listed.
+ * @returns array of paths and their entry infos
+ */
+export declare function readdirpPromise(root: Path, options?: Partial<ReaddirpOptions>): Promise<EntryInfo[]>;
 export default readdirp;
Index: imaps-frontend/node_modules/readdirp/index.js
===================================================================
--- imaps-frontend/node_modules/readdirp/index.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/readdirp/index.js	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,32 +1,48 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.readdirpPromise = exports.readdirp = exports.ReaddirpStream = void 0;
-const promises_1 = require("fs/promises");
-const stream_1 = require("stream");
-const path_1 = require("path");
-function defaultOptions() {
-    return {
-        root: '.',
-        fileFilter: (_path) => true,
-        directoryFilter: (_path) => true,
-        type: FILE_TYPE,
-        lstat: false,
-        depth: 2147483648,
-        alwaysStat: false,
-        highWaterMark: 4096,
-    };
-}
+exports.ReaddirpStream = exports.EntryTypes = void 0;
+exports.readdirp = readdirp;
+exports.readdirpPromise = readdirpPromise;
+const promises_1 = require("node:fs/promises");
+const node_stream_1 = require("node:stream");
+const node_path_1 = require("node:path");
+exports.EntryTypes = {
+    FILE_TYPE: 'files',
+    DIR_TYPE: 'directories',
+    FILE_DIR_TYPE: 'files_directories',
+    EVERYTHING_TYPE: 'all',
+};
+const defaultOptions = {
+    root: '.',
+    fileFilter: (_entryInfo) => true,
+    directoryFilter: (_entryInfo) => true,
+    type: exports.EntryTypes.FILE_TYPE,
+    lstat: false,
+    depth: 2147483648,
+    alwaysStat: false,
+    highWaterMark: 4096,
+};
+Object.freeze(defaultOptions);
 const RECURSIVE_ERROR_CODE = 'READDIRP_RECURSIVE_ERROR';
 const NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP', RECURSIVE_ERROR_CODE]);
-const FILE_TYPE = 'files';
-const DIR_TYPE = 'directories';
-const FILE_DIR_TYPE = 'files_directories';
-const EVERYTHING_TYPE = 'all';
-const ALL_TYPES = [FILE_TYPE, DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE];
-const DIR_TYPES = new Set([DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE]);
-const FILE_TYPES = new Set([FILE_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE]);
+const ALL_TYPES = [
+    exports.EntryTypes.DIR_TYPE,
+    exports.EntryTypes.EVERYTHING_TYPE,
+    exports.EntryTypes.FILE_DIR_TYPE,
+    exports.EntryTypes.FILE_TYPE,
+];
+const DIR_TYPES = new Set([
+    exports.EntryTypes.DIR_TYPE,
+    exports.EntryTypes.EVERYTHING_TYPE,
+    exports.EntryTypes.FILE_DIR_TYPE,
+]);
+const FILE_TYPES = new Set([
+    exports.EntryTypes.EVERYTHING_TYPE,
+    exports.EntryTypes.FILE_DIR_TYPE,
+    exports.EntryTypes.FILE_TYPE,
+]);
 const isNormalFlowError = (error) => NORMAL_FLOW_ERRORS.has(error.code);
 const wantBigintFsStats = process.platform === 'win32';
-const emptyFn = (_path) => true;
+const emptyFn = (_entryInfo) => true;
 const normalizeFilter = (filter) => {
     if (filter === undefined)
@@ -44,5 +60,6 @@
     return emptyFn;
 };
-class ReaddirpStream extends stream_1.Readable {
+/** Readable readdir stream, emitting new files as they're being listed. */
+class ReaddirpStream extends node_stream_1.Readable {
     constructor(options = {}) {
         super({
@@ -51,5 +68,5 @@
             highWaterMark: options.highWaterMark,
         });
-        const opts = { ...defaultOptions(), ...options };
+        const opts = { ...defaultOptions, ...options };
         const { root, type } = opts;
         this._fileFilter = normalizeFilter(opts.fileFilter);
@@ -63,9 +80,9 @@
             this._stat = statMethod;
         }
-        this._maxDepth = opts.depth;
-        this._wantsDir = DIR_TYPES.has(type);
-        this._wantsFile = FILE_TYPES.has(type);
-        this._wantsEverything = type === EVERYTHING_TYPE;
-        this._root = (0, path_1.resolve)(root);
+        this._maxDepth = opts.depth ?? defaultOptions.depth;
+        this._wantsDir = type ? DIR_TYPES.has(type) : false;
+        this._wantsFile = type ? FILE_TYPES.has(type) : false;
+        this._wantsEverything = type === exports.EntryTypes.EVERYTHING_TYPE;
+        this._root = (0, node_path_1.resolve)(root);
         this._isDirent = !opts.alwaysStat;
         this._statsProp = this._isDirent ? 'dirent' : 'stats';
@@ -147,6 +164,6 @@
         const basename = this._isDirent ? dirent.name : dirent;
         try {
-            const fullPath = (0, path_1.resolve)((0, path_1.join)(path, basename));
-            entry = { path: (0, path_1.relative)(this._root, fullPath), fullPath, basename };
+            const fullPath = (0, node_path_1.resolve)((0, node_path_1.join)(path, basename));
+            entry = { path: (0, node_path_1.relative)(this._root, fullPath), fullPath, basename };
             entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath);
         }
@@ -186,5 +203,5 @@
                 if (entryRealPathStats.isDirectory()) {
                     const len = entryRealPath.length;
-                    if (full.startsWith(entryRealPath) && full.substr(len, 1) === path_1.sep) {
+                    if (full.startsWith(entryRealPath) && full.substr(len, 1) === node_path_1.sep) {
                         const recursiveError = new Error(`Circular symlink detected: "${full}" points to "${entryRealPath}"`);
                         // @ts-ignore
@@ -208,13 +225,14 @@
 exports.ReaddirpStream = ReaddirpStream;
 /**
- * Main function which ends up calling readdirRec and reads all files and directories in given root recursively.
+ * Streaming version: Reads all files and directories in given root recursively.
+ * Consumes ~constant small amount of RAM.
  * @param root Root directory
  * @param options Options to specify root (start directory), filters and recursion depth
  */
-const readdirp = (root, options = {}) => {
+function readdirp(root, options = {}) {
     // @ts-ignore
     let type = options.entryType || options.type;
     if (type === 'both')
-        type = FILE_DIR_TYPE; // backwards-compatibility
+        type = exports.EntryTypes.FILE_DIR_TYPE; // backwards-compatibility
     if (type)
         options.type = type;
@@ -230,15 +248,18 @@
     options.root = root;
     return new ReaddirpStream(options);
-};
-exports.readdirp = readdirp;
-const readdirpPromise = (root, options = {}) => {
+}
+/**
+ * Promise version: Reads all files and directories in given root recursively.
+ * Compared to streaming version, will consume a lot of RAM e.g. when 1 million files are listed.
+ * @returns array of paths and their entry infos
+ */
+function readdirpPromise(root, options = {}) {
     return new Promise((resolve, reject) => {
         const files = [];
-        (0, exports.readdirp)(root, options)
+        readdirp(root, options)
             .on('data', (entry) => files.push(entry))
             .on('end', () => resolve(files))
             .on('error', (error) => reject(error));
     });
-};
-exports.readdirpPromise = readdirpPromise;
-exports.default = exports.readdirp;
+}
+exports.default = readdirp;
Index: imaps-frontend/node_modules/readdirp/package.json
===================================================================
--- imaps-frontend/node_modules/readdirp/package.json	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/readdirp/package.json	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -1,22 +1,66 @@
 {
-  "name": "readdirp",
-  "description": "Recursive version of fs.readdir with streaming API.",
-  "version": "4.0.2",
-  "homepage": "https://github.com/paulmillr/readdirp",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/paulmillr/readdirp.git"
+  "_from": "readdirp@^4.0.1",
+  "_id": "readdirp@4.1.1",
+  "_inBundle": false,
+  "_integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==",
+  "_location": "/readdirp",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "readdirp@^4.0.1",
+    "name": "readdirp",
+    "escapedName": "readdirp",
+    "rawSpec": "^4.0.1",
+    "saveSpec": null,
+    "fetchSpec": "^4.0.1"
   },
-  "license": "MIT",
+  "_requiredBy": [
+    "/chokidar"
+  ],
+  "_resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz",
+  "_shasum": "bd115327129672dc47f87408f05df9bd9ca3ef55",
+  "_spec": "readdirp@^4.0.1",
+  "_where": "/home/stevetosak/Proekt/IMaps/imaps-frontend/node_modules/chokidar",
+  "author": {
+    "name": "Thorsten Lorenz",
+    "email": "thlorenz@gmx.de",
+    "url": "thlorenz.com"
+  },
   "bugs": {
     "url": "https://github.com/paulmillr/readdirp/issues"
   },
-  "author": "Thorsten Lorenz <thlorenz@gmx.de> (thlorenz.com)",
+  "bundleDependencies": false,
   "contributors": [
-    "Thorsten Lorenz <thlorenz@gmx.de> (thlorenz.com)",
-    "Paul Miller (https://paulmillr.com)"
+    {
+      "name": "Thorsten Lorenz",
+      "email": "thlorenz@gmx.de",
+      "url": "thlorenz.com"
+    },
+    {
+      "name": "Paul Miller",
+      "url": "https://paulmillr.com"
+    }
   ],
+  "deprecated": false,
+  "description": "Recursive version of fs.readdir with small RAM & CPU footprint.",
+  "devDependencies": {
+    "@paulmillr/jsbt": "0.2.1",
+    "@types/node": "20.14.8",
+    "c8": "10.1.3",
+    "chai": "4.3.4",
+    "chai-subset": "1.6.0",
+    "micro-should": "0.4.0",
+    "prettier": "3.1.1",
+    "typescript": "5.5.2"
+  },
   "engines": {
-    "node": ">= 14.16.0"
+    "node": ">= 14.18.0"
+  },
+  "exports": {
+    ".": {
+      "import": "./esm/index.js",
+      "require": "./index.js"
+    }
   },
   "files": [
@@ -27,14 +71,9 @@
     "esm"
   ],
-  "main": "./index.js",
-  "module": "./esm/index.js",
-  "types": "./index.d.ts",
-  "exports": {
-    ".": {
-      "import": "./esm/index.js",
-      "require": "./index.js"
-    }
+  "funding": {
+    "type": "individual",
+    "url": "https://paulmillr.com/funding/"
   },
-  "sideEffects": false,
+  "homepage": "https://github.com/paulmillr/readdirp",
   "keywords": [
     "recursive",
@@ -47,32 +86,21 @@
     "filter"
   ],
+  "license": "MIT",
+  "main": "./index.js",
+  "module": "./esm/index.js",
+  "name": "readdirp",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/paulmillr/readdirp.git"
+  },
   "scripts": {
     "build": "tsc && tsc -p tsconfig.esm.json",
-    "nyc": "nyc",
-    "mocha": "mocha --exit",
-    "lint": "prettier --check index.ts",
-    "format": "prettier --write index.ts",
-    "test": "nyc npm run mocha"
+    "format": "prettier --write index.ts test/index.test.js",
+    "lint": "prettier --check index.ts test/index.test.js",
+    "test": "node test/index.test.js",
+    "test:coverage": "c8 node test/index.test.js"
   },
-  "devDependencies": {
-    "@paulmillr/jsbt": "0.2.1",
-    "@types/node": "20.14.8",
-    "chai": "4.3.4",
-    "chai-subset": "1.6.0",
-    "mocha": "10.7.3",
-    "nyc": "15.0.1",
-    "prettier": "3.1.1",
-    "rimraf": "6.0.1",
-    "typescript": "5.5.2"
-  },
-  "nyc": {
-    "reporter": [
-      "html",
-      "text"
-    ]
-  },
-  "funding": {
-    "type": "individual",
-    "url": "https://paulmillr.com/funding/"
-  }
+  "sideEffects": false,
+  "types": "./index.d.ts",
+  "version": "4.1.1"
 }
