New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

random-access-layered-storage

Package Overview
Dependencies
Maintainers
0
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

random-access-layered-storage - npm Package Compare versions

Comparing version 1.0.31 to 1.0.32

54

lib/random-access-layered-storage.js

@@ -30,3 +30,2 @@ import RAS from 'random-access-storage';

// In-memory overlay data structures

@@ -125,3 +124,2 @@ this._pages = new Map(); // pageIndex -> { data, modified, pinned }

/**

@@ -185,3 +183,2 @@ * Implement storage read.

/**

@@ -193,3 +190,2 @@ * Implement storage write.

*/
// Fix in RandomAccessLayeredStorage.js
_write(req) {

@@ -233,3 +229,3 @@ console.log(`Write called on storage at offset ${req.offset}, size ${req.data.length}`);

const newPageData = b4a.alloc(pageOffset + bytesToWrite, 0); // Zero-filled buffer for growth
page.data.copy(newPageData);
b4a.copy(page.data, newPageData);
page.data = newPageData;

@@ -259,3 +255,2 @@ }

/**

@@ -291,3 +286,3 @@ * Implement storage delete.

if (page) {
page.data.fill(0, pageOffset, pageOffset + bytesToDelete);
b4a.fill(page.data, 0, pageOffset, pageOffset + bytesToDelete);
page.modified = true;

@@ -311,5 +306,2 @@ this._modifiedPages.add(pageIndex);

/**

@@ -381,3 +373,2 @@ * Implement storage truncate.

/**

@@ -437,3 +428,2 @@ * Implement storage stat.

/**

@@ -510,4 +500,2 @@ * Implement storage unlink.

/**

@@ -571,29 +559,3 @@ * Performs the actual flushing process of the data from memory to underlying storage.

/**
* Handles overlaying the in-memory page data and writing to the underlying storage.
*/
_overlayAndWrite(pageIndex, startOffsetInPage, endOffsetInPage, bufferToWrite, callback, flushNext) {
const page = this._pages.get(pageIndex);
if (page) {
// Overlay modified data from page into the buffer
page.data.copy(bufferToWrite, 0, startOffsetInPage, endOffsetInPage);
}
// Write the buffer back to underlying storage
this._underlying.write(pageIndex * this.pageSize + startOffsetInPage, bufferToWrite, (err) => {
if (err) return callback(err);
// Mark the page as flushed if it was modified
if (page && page.modified) {
page.modified = false;
this._modifiedPages.delete(pageIndex);
}
setImmediate(flushNext);
});
}
/**
* Evicts pages from the overlay.

@@ -638,8 +600,2 @@ * If flushBeforeEvict is true, flushes modified pages before eviction.

/**

@@ -740,4 +696,2 @@ * Pins a range of pages in the overlay.

/**

@@ -845,4 +799,2 @@ * Checks if the underlying storage supports a method.

/**

@@ -864,2 +816,2 @@ * Evicts a single page from the overlay.

export default RandomAccessLayeredStorage;
export default RandomAccessLayeredStorage;

2

package.json
{
"name": "random-access-layered-storage",
"version": "1.0.31",
"version": "1.0.32",
"description": "A flexible, layered storage solution building on the random-access-storage interface. Provides an in-memory overlay with configurable eviction, paging, and strict size enforcement options, designed for complex data management scenarios.",

@@ -5,0 +5,0 @@ "type": "module",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc