@pixzle/node 0.1.2 → 0.1.4
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/block.js +14 -3
- package/dist/block.js.map +1 -1
- package/package.json +2 -2
package/dist/block.js
CHANGED
|
@@ -145,14 +145,25 @@ async function createPngFromImageBuffer(imageBuffer, width, height) {
|
|
|
145
145
|
* @returns Processed blocks
|
|
146
146
|
*/
|
|
147
147
|
function blocksPerImage(allBlocks, fragmentBlocksCount, seed, processFunc) {
|
|
148
|
-
|
|
148
|
+
// Pre-allocate array to avoid resizing and stack overflow issues with push(...processed)
|
|
149
|
+
// This assumes that processFunc preserves the number of blocks (which shuffle/unshuffle do)
|
|
150
|
+
const processedBlocks = new Array(allBlocks.length);
|
|
151
|
+
let globalOffset = 0;
|
|
149
152
|
let offset = 0;
|
|
150
153
|
for (const blockCount of fragmentBlocksCount) {
|
|
151
154
|
const imageBlocks = allBlocks.slice(offset, offset + blockCount);
|
|
152
155
|
const processed = processFunc(imageBlocks, seed);
|
|
153
|
-
|
|
156
|
+
// Copy processed blocks to the result array one by one to avoid stack overflow
|
|
157
|
+
for (let i = 0; i < processed.length; i++) {
|
|
158
|
+
processedBlocks[globalOffset + i] = processed[i];
|
|
159
|
+
}
|
|
160
|
+
globalOffset += processed.length;
|
|
154
161
|
offset += blockCount;
|
|
155
162
|
}
|
|
156
|
-
return
|
|
163
|
+
// If the total size matches, return as is. Otherwise slice (safety check)
|
|
164
|
+
if (globalOffset === processedBlocks.length) {
|
|
165
|
+
return processedBlocks;
|
|
166
|
+
}
|
|
167
|
+
return processedBlocks.slice(0, globalOffset);
|
|
157
168
|
}
|
|
158
169
|
//# sourceMappingURL=block.js.map
|
package/dist/block.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block.js","sourceRoot":"","sources":["../src/block.ts"],"names":[],"mappings":";;AAuDA,gDAQC;AAUD,kDAcC;AAQD,sCA4BC;AAUD,4CAcC;AAOD,8DAcC;AASD,4DAaC;AAUD,
|
|
1
|
+
{"version":3,"file":"block.js","sourceRoot":"","sources":["../src/block.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixzle/node",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Node.js implementation of image fragmentation and restoration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@tuki0918/seeded-shuffle": "^1.0.0",
|
|
30
30
|
"jimp": "^1.6.0",
|
|
31
|
-
"@pixzle/core": "0.1.
|
|
31
|
+
"@pixzle/core": "0.1.4"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/node": "^22.10.2",
|