file-entry-cache 11.0.0-beta.4 → 11.0.0-beta.5
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.
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +19 -7
- package/dist/index.d.ts +19 -7
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var k=Object.create;var g=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var v=Object.getPrototypeOf,
|
|
1
|
+
"use strict";var k=Object.create;var g=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var v=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var z=(o,e)=>{for(var s in e)g(o,s,{get:e[s],enumerable:!0})},y=(o,e,s,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of w(e))!A.call(o,t)&&t!==s&&g(o,t,{get:()=>e[t],enumerable:!(i=C(e,t))||i.enumerable});return o};var p=(o,e,s)=>(s=o!=null?k(v(o)):{},y(e||!o||!o.__esModule?g(s,"default",{value:o,enumerable:!0}):s,o)),D=o=>y(g({},"__esModule",{value:!0}),o);var K={};z(K,{FileEntryCache:()=>m,create:()=>f,createFromFile:()=>_,default:()=>d});module.exports=D(K);var F=p(require("crypto"),1),u=p(require("fs"),1),c=p(require("path"),1),l=require("flat-cache");function _(o,e){let s=c.default.basename(o),i=c.default.dirname(o);return f(s,i,e)}function f(o,e,s){let i={...s,cache:{cacheId:o,cacheDir:e}},t=new m(i);if(e){let r=`${e}/${o}`;u.default.existsSync(r)&&(t.cache=(0,l.createFromFile)(r,i.cache))}return t}var d=class{static create=f;static createFromFile=_},m=class{_cache=new l.FlatCache({useClone:!1});_useCheckSum=!1;_hashAlgorithm="md5";_cwd=process.cwd();_strictPaths=!1;_logger;_useAbsolutePathAsKey=!1;constructor(e){e?.cache&&(this._cache=new l.FlatCache(e.cache)),e?.useCheckSum&&(this._useCheckSum=e.useCheckSum),e?.hashAlgorithm&&(this._hashAlgorithm=e.hashAlgorithm),e?.cwd&&(this._cwd=e.cwd),e?.strictPaths!==void 0&&(this._strictPaths=e.strictPaths),e?.useAbsolutePathAsKey!==void 0&&(this._useAbsolutePathAsKey=e.useAbsolutePathAsKey),e?.logger&&(this._logger=e.logger)}get cache(){return this._cache}set cache(e){this._cache=e}get logger(){return this._logger}set logger(e){this._logger=e}get useCheckSum(){return this._useCheckSum}set useCheckSum(e){this._useCheckSum=e}get hashAlgorithm(){return this._hashAlgorithm}set hashAlgorithm(e){this._hashAlgorithm=e}get cwd(){return this._cwd}set cwd(e){this._cwd=e}get strictPaths(){return this._strictPaths}set strictPaths(e){this._strictPaths=e}get useAbsolutePathAsKey(){return this._useAbsolutePathAsKey}set useAbsolutePathAsKey(e){this._useAbsolutePathAsKey=e}getHash(e){return F.default.createHash(this._hashAlgorithm).update(e).digest("hex")}createFileKey(e){let s=e;return this._useAbsolutePathAsKey&&this.isRelativePath(e)&&(s=this.getAbsolutePathWithCwd(e,this._cwd)),s}isRelativePath(e){return!c.default.isAbsolute(e)}deleteCacheFile(){return this._cache.removeCacheFile()}destroy(){this._cache.destroy()}removeEntry(e){let s=this.createFileKey(e);this._cache.removeKey(s)}reconcile(){let{items:e}=this._cache;for(let s of e)this.getFileDescriptor(s.key).notFound&&this._cache.removeKey(s.key);this._cache.save()}hasFileChanged(e){let s=!1,i=this.getFileDescriptor(e);return(!i.err||!i.notFound)&&i.changed&&(s=!0),s}getFileDescriptor(e,s){this._logger?.debug({filePath:e,options:s},"Getting file descriptor");let i,t={key:this.createFileKey(e),changed:!1,meta:{}};this._logger?.trace({key:t.key},"Created file key");let r=this._cache.getKey(t.key);r?this._logger?.trace({metaCache:r},"Found cached meta"):this._logger?.trace("No cached meta found"),t.meta=r?{...r}:{};let a=this.getAbsolutePath(e);this._logger?.trace({absolutePath:a},"Resolved absolute path");let n=s?.useCheckSum??this._useCheckSum;this._logger?.debug({useCheckSum:n},"Using checksum setting");try{if(i=u.default.statSync(a),t.meta.size=i.size,t.meta.mtime=i.mtime.getTime(),this._logger?.trace({size:t.meta.size,mtime:t.meta.mtime},"Read file stats"),n){let h=u.default.readFileSync(a);t.meta.hash=this.getHash(h),this._logger?.trace({hash:t.meta.hash},"Calculated file hash")}}catch(h){this._logger?.error({filePath:e,error:h},"Error reading file"),this.removeEntry(e);let b=!1;return h.message.includes("ENOENT")&&(b=!0,this._logger?.debug({filePath:e},"File not found")),{key:t.key,err:h,notFound:b,meta:{}}}return r?(n===!1&&r?.mtime!==t.meta?.mtime&&(t.changed=!0,this._logger?.debug({filePath:e,oldMtime:r.mtime,newMtime:t.meta.mtime},"File changed: mtime differs")),r?.size!==t.meta?.size&&(t.changed=!0,this._logger?.debug({filePath:e,oldSize:r.size,newSize:t.meta.size},"File changed: size differs")),n&&r?.hash!==t.meta?.hash&&(t.changed=!0,this._logger?.debug({filePath:e,oldHash:r.hash,newHash:t.meta.hash},"File changed: hash differs")),this._cache.setKey(t.key,t.meta),t.changed?this._logger?.info({filePath:e},"File has changed"):this._logger?.debug({filePath:e},"File unchanged"),t):(t.changed=!0,this._cache.setKey(t.key,t.meta),this._logger?.debug({filePath:e},"File not in cache, marked as changed"),t)}normalizeEntries(e){let s=[];if(e){for(let t of e){let r=this.getFileDescriptor(t);s.push(r)}return s}let i=this.cache.keys();for(let t of i){let r=this.getFileDescriptor(t);!r.notFound&&!r.err&&s.push(r)}return s}analyzeFiles(e){let s={changedFiles:[],notFoundFiles:[],notChangedFiles:[]},i=this.normalizeEntries(e);for(let t of i)t.notFound?s.notFoundFiles.push(t.key):t.changed?s.changedFiles.push(t.key):s.notChangedFiles.push(t.key);return s}getUpdatedFiles(e){let s=[],i=this.normalizeEntries(e);for(let t of i)t.changed&&s.push(t.key);return s}getFileDescriptorsByPath(e){let s=[],i=this._cache.keys();for(let t of i)if(t.startsWith(e)){let r=this.getFileDescriptor(t);s.push(r)}return s}getAbsolutePath(e){if(this.isRelativePath(e)){let s=e.replace(/\0/g,""),i=c.default.resolve(this._cwd,s);if(this._strictPaths){let t=c.default.normalize(i),r=c.default.normalize(this._cwd);if(!(t===r||t.startsWith(r+c.default.sep)))throw new Error(`Path traversal attempt blocked: "${e}" resolves outside of working directory "${this._cwd}"`)}return i}return e}getAbsolutePathWithCwd(e,s){if(this.isRelativePath(e)){let i=e.replace(/\0/g,""),t=c.default.resolve(s,i);if(this._strictPaths){let r=c.default.normalize(t),a=c.default.normalize(s);if(!(r===a||r.startsWith(a+c.default.sep)))throw new Error(`Path traversal attempt blocked: "${e}" resolves outside of working directory "${s}"`)}return t}return e}renameCacheKeys(e,s){let i=this._cache.keys();for(let t of i)if(t.startsWith(e)){let r=t.replace(e,s),a=this._cache.getKey(t);this._cache.removeKey(t),this._cache.setKey(r,a)}}};0&&(module.exports={FileEntryCache,create,createFromFile});
|
package/dist/index.d.cts
CHANGED
|
@@ -28,6 +28,8 @@ type FileEntryCacheOptions = {
|
|
|
28
28
|
cwd?: string;
|
|
29
29
|
/** Restrict file access to within cwd boundaries (default: true) */
|
|
30
30
|
strictPaths?: boolean;
|
|
31
|
+
/** Whether to use absolute path as cache key (default: false) */
|
|
32
|
+
useAbsolutePathAsKey?: boolean;
|
|
31
33
|
/** Logger instance for logging (default: undefined) */
|
|
32
34
|
logger?: ILogger;
|
|
33
35
|
/** Options for the underlying flat cache */
|
|
@@ -72,20 +74,19 @@ type AnalyzedFiles = {
|
|
|
72
74
|
/**
|
|
73
75
|
* Create a new FileEntryCache instance from a file path
|
|
74
76
|
* @param filePath - The path to the cache file
|
|
75
|
-
* @param
|
|
76
|
-
* @param cwd - The current working directory for resolving relative paths (default: process.cwd())
|
|
77
|
+
* @param options - create options such as useChecksum, cwd, and more
|
|
77
78
|
* @returns A new FileEntryCache instance
|
|
78
79
|
*/
|
|
79
|
-
declare function createFromFile(filePath: string,
|
|
80
|
+
declare function createFromFile(filePath: string, options?: CreateOptions): FileEntryCache;
|
|
81
|
+
type CreateOptions = Omit<FileEntryCacheOptions, "cache">;
|
|
80
82
|
/**
|
|
81
83
|
* Create a new FileEntryCache instance
|
|
82
84
|
* @param cacheId - The cache file name
|
|
83
85
|
* @param cacheDirectory - The directory to store the cache file (default: undefined, cache won't be persisted)
|
|
84
|
-
* @param
|
|
85
|
-
* @param cwd - The current working directory for resolving relative paths (default: process.cwd())
|
|
86
|
+
* @param options - Whether to use checksum to detect file changes (default: false)
|
|
86
87
|
* @returns A new FileEntryCache instance
|
|
87
88
|
*/
|
|
88
|
-
declare function create(cacheId: string, cacheDirectory?: string,
|
|
89
|
+
declare function create(cacheId: string, cacheDirectory?: string, options?: CreateOptions): FileEntryCache;
|
|
89
90
|
declare class FileEntryDefault {
|
|
90
91
|
static create: typeof create;
|
|
91
92
|
static createFromFile: typeof createFromFile;
|
|
@@ -97,6 +98,7 @@ declare class FileEntryCache {
|
|
|
97
98
|
private _cwd;
|
|
98
99
|
private _strictPaths;
|
|
99
100
|
private _logger?;
|
|
101
|
+
private _useAbsolutePathAsKey;
|
|
100
102
|
/**
|
|
101
103
|
* Create a new FileEntryCache instance
|
|
102
104
|
* @param options - The options for the FileEntryCache (all properties are optional with defaults)
|
|
@@ -162,6 +164,16 @@ declare class FileEntryCache {
|
|
|
162
164
|
* @param {boolean} value - The value to set
|
|
163
165
|
*/
|
|
164
166
|
set strictPaths(value: boolean);
|
|
167
|
+
/**
|
|
168
|
+
* Get whether to use absolute path as cache key
|
|
169
|
+
* @returns {boolean} Whether cache keys use absolute paths (default: false)
|
|
170
|
+
*/
|
|
171
|
+
get useAbsolutePathAsKey(): boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Set whether to use absolute path as cache key
|
|
174
|
+
* @param {boolean} value - The value to set
|
|
175
|
+
*/
|
|
176
|
+
set useAbsolutePathAsKey(value: boolean);
|
|
165
177
|
/**
|
|
166
178
|
* Given a buffer, calculate md5 hash of its content.
|
|
167
179
|
* @method getHash
|
|
@@ -276,4 +288,4 @@ declare class FileEntryCache {
|
|
|
276
288
|
renameCacheKeys(oldPath: string, newPath: string): void;
|
|
277
289
|
}
|
|
278
290
|
|
|
279
|
-
export { type AnalyzedFiles, type FileDescriptor, type FileDescriptorMeta, FileEntryCache, type FileEntryCacheOptions, type GetFileDescriptorOptions, type ILogger, create, createFromFile, FileEntryDefault as default };
|
|
291
|
+
export { type AnalyzedFiles, type CreateOptions, type FileDescriptor, type FileDescriptorMeta, FileEntryCache, type FileEntryCacheOptions, type GetFileDescriptorOptions, type ILogger, create, createFromFile, FileEntryDefault as default };
|
package/dist/index.d.ts
CHANGED
|
@@ -28,6 +28,8 @@ type FileEntryCacheOptions = {
|
|
|
28
28
|
cwd?: string;
|
|
29
29
|
/** Restrict file access to within cwd boundaries (default: true) */
|
|
30
30
|
strictPaths?: boolean;
|
|
31
|
+
/** Whether to use absolute path as cache key (default: false) */
|
|
32
|
+
useAbsolutePathAsKey?: boolean;
|
|
31
33
|
/** Logger instance for logging (default: undefined) */
|
|
32
34
|
logger?: ILogger;
|
|
33
35
|
/** Options for the underlying flat cache */
|
|
@@ -72,20 +74,19 @@ type AnalyzedFiles = {
|
|
|
72
74
|
/**
|
|
73
75
|
* Create a new FileEntryCache instance from a file path
|
|
74
76
|
* @param filePath - The path to the cache file
|
|
75
|
-
* @param
|
|
76
|
-
* @param cwd - The current working directory for resolving relative paths (default: process.cwd())
|
|
77
|
+
* @param options - create options such as useChecksum, cwd, and more
|
|
77
78
|
* @returns A new FileEntryCache instance
|
|
78
79
|
*/
|
|
79
|
-
declare function createFromFile(filePath: string,
|
|
80
|
+
declare function createFromFile(filePath: string, options?: CreateOptions): FileEntryCache;
|
|
81
|
+
type CreateOptions = Omit<FileEntryCacheOptions, "cache">;
|
|
80
82
|
/**
|
|
81
83
|
* Create a new FileEntryCache instance
|
|
82
84
|
* @param cacheId - The cache file name
|
|
83
85
|
* @param cacheDirectory - The directory to store the cache file (default: undefined, cache won't be persisted)
|
|
84
|
-
* @param
|
|
85
|
-
* @param cwd - The current working directory for resolving relative paths (default: process.cwd())
|
|
86
|
+
* @param options - Whether to use checksum to detect file changes (default: false)
|
|
86
87
|
* @returns A new FileEntryCache instance
|
|
87
88
|
*/
|
|
88
|
-
declare function create(cacheId: string, cacheDirectory?: string,
|
|
89
|
+
declare function create(cacheId: string, cacheDirectory?: string, options?: CreateOptions): FileEntryCache;
|
|
89
90
|
declare class FileEntryDefault {
|
|
90
91
|
static create: typeof create;
|
|
91
92
|
static createFromFile: typeof createFromFile;
|
|
@@ -97,6 +98,7 @@ declare class FileEntryCache {
|
|
|
97
98
|
private _cwd;
|
|
98
99
|
private _strictPaths;
|
|
99
100
|
private _logger?;
|
|
101
|
+
private _useAbsolutePathAsKey;
|
|
100
102
|
/**
|
|
101
103
|
* Create a new FileEntryCache instance
|
|
102
104
|
* @param options - The options for the FileEntryCache (all properties are optional with defaults)
|
|
@@ -162,6 +164,16 @@ declare class FileEntryCache {
|
|
|
162
164
|
* @param {boolean} value - The value to set
|
|
163
165
|
*/
|
|
164
166
|
set strictPaths(value: boolean);
|
|
167
|
+
/**
|
|
168
|
+
* Get whether to use absolute path as cache key
|
|
169
|
+
* @returns {boolean} Whether cache keys use absolute paths (default: false)
|
|
170
|
+
*/
|
|
171
|
+
get useAbsolutePathAsKey(): boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Set whether to use absolute path as cache key
|
|
174
|
+
* @param {boolean} value - The value to set
|
|
175
|
+
*/
|
|
176
|
+
set useAbsolutePathAsKey(value: boolean);
|
|
165
177
|
/**
|
|
166
178
|
* Given a buffer, calculate md5 hash of its content.
|
|
167
179
|
* @method getHash
|
|
@@ -276,4 +288,4 @@ declare class FileEntryCache {
|
|
|
276
288
|
renameCacheKeys(oldPath: string, newPath: string): void;
|
|
277
289
|
}
|
|
278
290
|
|
|
279
|
-
export { type AnalyzedFiles, type FileDescriptor, type FileDescriptorMeta, FileEntryCache, type FileEntryCacheOptions, type GetFileDescriptorOptions, type ILogger, create, createFromFile, FileEntryDefault as default };
|
|
291
|
+
export { type AnalyzedFiles, type CreateOptions, type FileDescriptor, type FileDescriptorMeta, FileEntryCache, type FileEntryCacheOptions, type GetFileDescriptorOptions, type ILogger, create, createFromFile, FileEntryDefault as default };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import f from"crypto";import l from"fs";import
|
|
1
|
+
import f from"crypto";import l from"fs";import o from"path";import{createFromFile as b,FlatCache as m}from"flat-cache";function y(a,e){let s=o.basename(a),r=o.dirname(a);return p(s,r,e)}function p(a,e,s){let r={...s,cache:{cacheId:a,cacheDir:e}},t=new u(r);if(e){let i=`${e}/${a}`;l.existsSync(i)&&(t.cache=b(i,r.cache))}return t}var g=class{static create=p;static createFromFile=y},u=class{_cache=new m({useClone:!1});_useCheckSum=!1;_hashAlgorithm="md5";_cwd=process.cwd();_strictPaths=!1;_logger;_useAbsolutePathAsKey=!1;constructor(e){e?.cache&&(this._cache=new m(e.cache)),e?.useCheckSum&&(this._useCheckSum=e.useCheckSum),e?.hashAlgorithm&&(this._hashAlgorithm=e.hashAlgorithm),e?.cwd&&(this._cwd=e.cwd),e?.strictPaths!==void 0&&(this._strictPaths=e.strictPaths),e?.useAbsolutePathAsKey!==void 0&&(this._useAbsolutePathAsKey=e.useAbsolutePathAsKey),e?.logger&&(this._logger=e.logger)}get cache(){return this._cache}set cache(e){this._cache=e}get logger(){return this._logger}set logger(e){this._logger=e}get useCheckSum(){return this._useCheckSum}set useCheckSum(e){this._useCheckSum=e}get hashAlgorithm(){return this._hashAlgorithm}set hashAlgorithm(e){this._hashAlgorithm=e}get cwd(){return this._cwd}set cwd(e){this._cwd=e}get strictPaths(){return this._strictPaths}set strictPaths(e){this._strictPaths=e}get useAbsolutePathAsKey(){return this._useAbsolutePathAsKey}set useAbsolutePathAsKey(e){this._useAbsolutePathAsKey=e}getHash(e){return f.createHash(this._hashAlgorithm).update(e).digest("hex")}createFileKey(e){let s=e;return this._useAbsolutePathAsKey&&this.isRelativePath(e)&&(s=this.getAbsolutePathWithCwd(e,this._cwd)),s}isRelativePath(e){return!o.isAbsolute(e)}deleteCacheFile(){return this._cache.removeCacheFile()}destroy(){this._cache.destroy()}removeEntry(e){let s=this.createFileKey(e);this._cache.removeKey(s)}reconcile(){let{items:e}=this._cache;for(let s of e)this.getFileDescriptor(s.key).notFound&&this._cache.removeKey(s.key);this._cache.save()}hasFileChanged(e){let s=!1,r=this.getFileDescriptor(e);return(!r.err||!r.notFound)&&r.changed&&(s=!0),s}getFileDescriptor(e,s){this._logger?.debug({filePath:e,options:s},"Getting file descriptor");let r,t={key:this.createFileKey(e),changed:!1,meta:{}};this._logger?.trace({key:t.key},"Created file key");let i=this._cache.getKey(t.key);i?this._logger?.trace({metaCache:i},"Found cached meta"):this._logger?.trace("No cached meta found"),t.meta=i?{...i}:{};let c=this.getAbsolutePath(e);this._logger?.trace({absolutePath:c},"Resolved absolute path");let n=s?.useCheckSum??this._useCheckSum;this._logger?.debug({useCheckSum:n},"Using checksum setting");try{if(r=l.statSync(c),t.meta.size=r.size,t.meta.mtime=r.mtime.getTime(),this._logger?.trace({size:t.meta.size,mtime:t.meta.mtime},"Read file stats"),n){let h=l.readFileSync(c);t.meta.hash=this.getHash(h),this._logger?.trace({hash:t.meta.hash},"Calculated file hash")}}catch(h){this._logger?.error({filePath:e,error:h},"Error reading file"),this.removeEntry(e);let d=!1;return h.message.includes("ENOENT")&&(d=!0,this._logger?.debug({filePath:e},"File not found")),{key:t.key,err:h,notFound:d,meta:{}}}return i?(n===!1&&i?.mtime!==t.meta?.mtime&&(t.changed=!0,this._logger?.debug({filePath:e,oldMtime:i.mtime,newMtime:t.meta.mtime},"File changed: mtime differs")),i?.size!==t.meta?.size&&(t.changed=!0,this._logger?.debug({filePath:e,oldSize:i.size,newSize:t.meta.size},"File changed: size differs")),n&&i?.hash!==t.meta?.hash&&(t.changed=!0,this._logger?.debug({filePath:e,oldHash:i.hash,newHash:t.meta.hash},"File changed: hash differs")),this._cache.setKey(t.key,t.meta),t.changed?this._logger?.info({filePath:e},"File has changed"):this._logger?.debug({filePath:e},"File unchanged"),t):(t.changed=!0,this._cache.setKey(t.key,t.meta),this._logger?.debug({filePath:e},"File not in cache, marked as changed"),t)}normalizeEntries(e){let s=[];if(e){for(let t of e){let i=this.getFileDescriptor(t);s.push(i)}return s}let r=this.cache.keys();for(let t of r){let i=this.getFileDescriptor(t);!i.notFound&&!i.err&&s.push(i)}return s}analyzeFiles(e){let s={changedFiles:[],notFoundFiles:[],notChangedFiles:[]},r=this.normalizeEntries(e);for(let t of r)t.notFound?s.notFoundFiles.push(t.key):t.changed?s.changedFiles.push(t.key):s.notChangedFiles.push(t.key);return s}getUpdatedFiles(e){let s=[],r=this.normalizeEntries(e);for(let t of r)t.changed&&s.push(t.key);return s}getFileDescriptorsByPath(e){let s=[],r=this._cache.keys();for(let t of r)if(t.startsWith(e)){let i=this.getFileDescriptor(t);s.push(i)}return s}getAbsolutePath(e){if(this.isRelativePath(e)){let s=e.replace(/\0/g,""),r=o.resolve(this._cwd,s);if(this._strictPaths){let t=o.normalize(r),i=o.normalize(this._cwd);if(!(t===i||t.startsWith(i+o.sep)))throw new Error(`Path traversal attempt blocked: "${e}" resolves outside of working directory "${this._cwd}"`)}return r}return e}getAbsolutePathWithCwd(e,s){if(this.isRelativePath(e)){let r=e.replace(/\0/g,""),t=o.resolve(s,r);if(this._strictPaths){let i=o.normalize(t),c=o.normalize(s);if(!(i===c||i.startsWith(c+o.sep)))throw new Error(`Path traversal attempt blocked: "${e}" resolves outside of working directory "${s}"`)}return t}return e}renameCacheKeys(e,s){let r=this._cache.keys();for(let t of r)if(t.startsWith(e)){let i=t.replace(e,s),c=this._cache.getKey(t);this._cache.removeKey(t),this._cache.setKey(i,c)}}};export{u as FileEntryCache,p as create,y as createFromFile,g as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "file-entry-cache",
|
|
3
|
-
"version": "11.0.0-beta.
|
|
3
|
+
"version": "11.0.0-beta.5",
|
|
4
4
|
"description": "A lightweight cache for file metadata, ideal for processes that work on a specific set of files and only need to reprocess files that have changed since the last run",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
],
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@biomejs/biome": "^2.2.5",
|
|
33
|
-
"@types/node": "^24.7.
|
|
33
|
+
"@types/node": "^24.7.1",
|
|
34
34
|
"@vitest/coverage-v8": "^3.2.4",
|
|
35
35
|
"pino": "^10.0.0",
|
|
36
36
|
"rimraf": "^6.0.1",
|