@pixzle/node 0.0.29 → 0.1.0
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/README.md +6 -6
- package/dist/block.d.ts +2 -2
- package/dist/block.js +2 -2
- package/dist/block.js.map +1 -1
- package/dist/file.d.ts +20 -8
- package/dist/file.js +48 -12
- package/dist/file.js.map +1 -1
- package/dist/fragmenter.js +2 -2
- package/dist/fragmenter.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +17 -16
- package/dist/index.js.map +1 -1
- package/dist/restorer.js +3 -3
- package/dist/restorer.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -11,15 +11,15 @@ npm i @pixzle/node
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
13
13
|
```ts
|
|
14
|
-
import
|
|
14
|
+
import pixzle from "@pixzle/node";
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
**Shuffle**
|
|
18
18
|
|
|
19
19
|
```ts
|
|
20
|
-
await
|
|
20
|
+
await pixzle.shuffle({
|
|
21
21
|
// config: { /** FragmentationConfig */ },
|
|
22
|
-
|
|
22
|
+
images: [
|
|
23
23
|
"./input_1.png",
|
|
24
24
|
"./input_2.png",
|
|
25
25
|
"./input_3.png",
|
|
@@ -55,9 +55,9 @@ output
|
|
|
55
55
|
**Restore**
|
|
56
56
|
|
|
57
57
|
```ts
|
|
58
|
-
await
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
await pixzle.restore({
|
|
59
|
+
manifest: "./output/fragmented/manifest.json",
|
|
60
|
+
images: [
|
|
61
61
|
"./output/fragmented/img_1_fragmented.png",
|
|
62
62
|
"./output/fragmented/img_2_fragmented.png",
|
|
63
63
|
"./output/fragmented/img_3_fragmented.png",
|
package/dist/block.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
interface
|
|
1
|
+
interface ImageToBlocksResult {
|
|
2
2
|
blocks: Buffer[];
|
|
3
3
|
width: number;
|
|
4
4
|
height: number;
|
|
@@ -30,7 +30,7 @@ export declare function blocksToImageBuffer(blocks: Buffer[], width: number, hei
|
|
|
30
30
|
* @param blockSize Block size in pixels
|
|
31
31
|
* @returns Promise resolving to block data and image metadata
|
|
32
32
|
*/
|
|
33
|
-
export declare function
|
|
33
|
+
export declare function imageToBlocks(input: string | Buffer, blockSize: number): Promise<ImageToBlocksResult>;
|
|
34
34
|
/**
|
|
35
35
|
* Reconstruct a PNG image from blocks
|
|
36
36
|
* @param blocks Array of block buffers
|
package/dist/block.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.splitImageToBlocks = splitImageToBlocks;
|
|
4
4
|
exports.blocksToImageBuffer = blocksToImageBuffer;
|
|
5
|
-
exports.
|
|
5
|
+
exports.imageToBlocks = imageToBlocks;
|
|
6
6
|
exports.blocksToPngImage = blocksToPngImage;
|
|
7
7
|
exports.extractImageBufferFromPng = extractImageBufferFromPng;
|
|
8
8
|
exports.createPngFromImageBuffer = createPngFromImageBuffer;
|
|
@@ -64,7 +64,7 @@ function blocksToImageBuffer(blocks, width, height, blockSize) {
|
|
|
64
64
|
* @param blockSize Block size in pixels
|
|
65
65
|
* @returns Promise resolving to block data and image metadata
|
|
66
66
|
*/
|
|
67
|
-
async function
|
|
67
|
+
async function imageToBlocks(input, blockSize) {
|
|
68
68
|
try {
|
|
69
69
|
// Load and process image with Jimp (automatically converts to RGBA)
|
|
70
70
|
const image = await jimp_1.Jimp.read(input);
|
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,
|
|
1
|
+
{"version":3,"file":"block.js","sourceRoot":"","sources":["../src/block.ts"],"names":[],"mappings":"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"}
|
package/dist/file.d.ts
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if a string is a URL
|
|
3
|
+
* @param str String to check
|
|
4
|
+
* @returns true if the string is a valid URL
|
|
5
|
+
*/
|
|
6
|
+
export declare function isUrl(str: string): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Fetch data from a URL and return as Buffer
|
|
9
|
+
* @param url URL to fetch
|
|
10
|
+
* @returns Buffer containing the fetched data
|
|
11
|
+
*/
|
|
12
|
+
export declare function fetchBuffer(url: string): Promise<Buffer>;
|
|
1
13
|
/**
|
|
2
14
|
* Create a directory
|
|
3
15
|
* @param dir Directory path
|
|
@@ -13,17 +25,17 @@ export declare function createDir(dir: string, recursive?: boolean): Promise<voi
|
|
|
13
25
|
*/
|
|
14
26
|
export declare function writeFile(dir: string, filename: string, data: string | Buffer): Promise<string>;
|
|
15
27
|
/**
|
|
16
|
-
* Read a JSON file and return its content
|
|
17
|
-
* @param
|
|
18
|
-
* @returns
|
|
28
|
+
* Read a JSON from file or URL and return its content
|
|
29
|
+
* @param source Path to the file or URL
|
|
30
|
+
* @returns Parsed JSON content
|
|
19
31
|
*/
|
|
20
|
-
export declare function
|
|
32
|
+
export declare function loadJson<T>(source: string): Promise<T>;
|
|
21
33
|
/**
|
|
22
|
-
*
|
|
23
|
-
* @param
|
|
24
|
-
* @returns Content
|
|
34
|
+
* Load data from a file or URL and return as Buffer
|
|
35
|
+
* @param source Path to the file or URL
|
|
36
|
+
* @returns Content as Buffer
|
|
25
37
|
*/
|
|
26
|
-
export declare function
|
|
38
|
+
export declare function loadBuffer(source: string): Promise<Buffer>;
|
|
27
39
|
/**
|
|
28
40
|
* Get the filename without the extension
|
|
29
41
|
* @param filePath Path to the file
|
package/dist/file.js
CHANGED
|
@@ -3,13 +3,42 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isUrl = isUrl;
|
|
7
|
+
exports.fetchBuffer = fetchBuffer;
|
|
6
8
|
exports.createDir = createDir;
|
|
7
9
|
exports.writeFile = writeFile;
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
+
exports.loadJson = loadJson;
|
|
11
|
+
exports.loadBuffer = loadBuffer;
|
|
10
12
|
exports.fileNameWithoutExtension = fileNameWithoutExtension;
|
|
11
13
|
const node_fs_1 = require("node:fs");
|
|
12
14
|
const node_path_1 = __importDefault(require("node:path"));
|
|
15
|
+
/**
|
|
16
|
+
* Check if a string is a URL
|
|
17
|
+
* @param str String to check
|
|
18
|
+
* @returns true if the string is a valid URL
|
|
19
|
+
*/
|
|
20
|
+
function isUrl(str) {
|
|
21
|
+
try {
|
|
22
|
+
const url = new URL(str);
|
|
23
|
+
return url.protocol === "http:" || url.protocol === "https:";
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Fetch data from a URL and return as Buffer
|
|
31
|
+
* @param url URL to fetch
|
|
32
|
+
* @returns Buffer containing the fetched data
|
|
33
|
+
*/
|
|
34
|
+
async function fetchBuffer(url) {
|
|
35
|
+
const response = await fetch(url);
|
|
36
|
+
if (!response.ok) {
|
|
37
|
+
throw new Error(`Failed to fetch ${url}: ${response.status} ${response.statusText}`);
|
|
38
|
+
}
|
|
39
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
40
|
+
return Buffer.from(arrayBuffer);
|
|
41
|
+
}
|
|
13
42
|
/**
|
|
14
43
|
* Create a directory
|
|
15
44
|
* @param dir Directory path
|
|
@@ -31,20 +60,27 @@ async function writeFile(dir, filename, data) {
|
|
|
31
60
|
return filePath;
|
|
32
61
|
}
|
|
33
62
|
/**
|
|
34
|
-
* Read a JSON file and return its content
|
|
35
|
-
* @param
|
|
36
|
-
* @returns
|
|
63
|
+
* Read a JSON from file or URL and return its content
|
|
64
|
+
* @param source Path to the file or URL
|
|
65
|
+
* @returns Parsed JSON content
|
|
37
66
|
*/
|
|
38
|
-
async function
|
|
39
|
-
|
|
67
|
+
async function loadJson(source) {
|
|
68
|
+
if (isUrl(source)) {
|
|
69
|
+
const buffer = await fetchBuffer(source);
|
|
70
|
+
return JSON.parse(buffer.toString("utf8"));
|
|
71
|
+
}
|
|
72
|
+
return JSON.parse(await node_fs_1.promises.readFile(source, "utf8"));
|
|
40
73
|
}
|
|
41
74
|
/**
|
|
42
|
-
*
|
|
43
|
-
* @param
|
|
44
|
-
* @returns Content
|
|
75
|
+
* Load data from a file or URL and return as Buffer
|
|
76
|
+
* @param source Path to the file or URL
|
|
77
|
+
* @returns Content as Buffer
|
|
45
78
|
*/
|
|
46
|
-
async function
|
|
47
|
-
|
|
79
|
+
async function loadBuffer(source) {
|
|
80
|
+
if (isUrl(source)) {
|
|
81
|
+
return await fetchBuffer(source);
|
|
82
|
+
}
|
|
83
|
+
return await node_fs_1.promises.readFile(source);
|
|
48
84
|
}
|
|
49
85
|
/**
|
|
50
86
|
* Get the filename without the extension
|
package/dist/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":";;;;;AAQA,8BAEC;AASD,8BAQC;AAOD,
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":";;;;;AAQA,sBAOC;AAOD,kCASC;AAOD,8BAEC;AASD,8BAQC;AAOD,4BAMC;AAOD,gCAKC;AAOD,4DAEC;AA3FD,qCAAyC;AACzC,0DAA6B;AAE7B;;;;GAIG;AACH,SAAgB,KAAK,CAAC,GAAW;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,mBAAmB,GAAG,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACpE,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;IACjD,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,SAAS,GAAG,KAAK;IAC5D,MAAM,kBAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,QAAgB,EAChB,IAAqB;IAErB,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,QAAQ,CAAI,MAAc;IAC9C,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,kBAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,UAAU,CAAC,MAAc;IAC7C,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,OAAO,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,kBAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,SAAgB,wBAAwB,CAAC,QAAgB;IACvD,OAAO,mBAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzD,CAAC"}
|
package/dist/fragmenter.js
CHANGED
|
@@ -69,8 +69,8 @@ class ImageFragmenter {
|
|
|
69
69
|
return { imageInfos, blocks };
|
|
70
70
|
}
|
|
71
71
|
async _processImage(path) {
|
|
72
|
-
const buffer = await (0, file_1.
|
|
73
|
-
const { blocks, width, height } = await (0, block_1.
|
|
72
|
+
const buffer = await (0, file_1.loadBuffer)(path);
|
|
73
|
+
const { blocks, width, height } = await (0, block_1.imageToBlocks)(buffer, this.config.blockSize);
|
|
74
74
|
const imageInfo = {
|
|
75
75
|
w: width,
|
|
76
76
|
h: height,
|
package/dist/fragmenter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragmenter.js","sourceRoot":"","sources":["../src/fragmenter.ts"],"names":[],"mappings":";;;AAAA,uCAWsB;AACtB,6DAAiE;AACjE,
|
|
1
|
+
{"version":3,"file":"fragmenter.js","sourceRoot":"","sources":["../src/fragmenter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type FragmentationConfig, type ManifestData, type RestoreOptions, type ShuffleOptions } from "@pixzle/core";
|
|
2
|
+
import { isUrl } from "./file";
|
|
2
3
|
import { ImageFragmenter } from "./fragmenter";
|
|
3
4
|
import { ImageRestorer } from "./restorer";
|
|
4
|
-
export { ImageFragmenter, ImageRestorer, type FragmentationConfig, type ManifestData, };
|
|
5
|
+
export { ImageFragmenter, ImageRestorer, isUrl, type FragmentationConfig, type ManifestData, };
|
|
5
6
|
declare function shuffle(options: ShuffleOptions): Promise<ManifestData>;
|
|
6
7
|
declare function restore(options: RestoreOptions): Promise<void>;
|
|
7
8
|
declare const pixzle: {
|
package/dist/index.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ImageRestorer = exports.ImageFragmenter = void 0;
|
|
3
|
+
exports.isUrl = exports.ImageRestorer = exports.ImageFragmenter = void 0;
|
|
4
4
|
const core_1 = require("@pixzle/core");
|
|
5
5
|
const file_1 = require("./file");
|
|
6
|
+
Object.defineProperty(exports, "isUrl", { enumerable: true, get: function () { return file_1.isUrl; } });
|
|
6
7
|
const fragmenter_1 = require("./fragmenter");
|
|
7
8
|
Object.defineProperty(exports, "ImageFragmenter", { enumerable: true, get: function () { return fragmenter_1.ImageFragmenter; } });
|
|
8
9
|
const restorer_1 = require("./restorer");
|
|
9
10
|
Object.defineProperty(exports, "ImageRestorer", { enumerable: true, get: function () { return restorer_1.ImageRestorer; } });
|
|
10
11
|
async function shuffle(options) {
|
|
11
|
-
const {
|
|
12
|
+
const { images, config, outputDir } = validateShuffleOptions(options);
|
|
12
13
|
const fragmenter = new fragmenter_1.ImageFragmenter(config ?? {});
|
|
13
|
-
const { manifest, fragmentedImages } = await fragmenter.fragmentImages(
|
|
14
|
+
const { manifest, fragmentedImages } = await fragmenter.fragmentImages(images);
|
|
14
15
|
await (0, file_1.createDir)(outputDir, true);
|
|
15
16
|
await (0, file_1.writeFile)(outputDir, core_1.MANIFEST_FILE_NAME, JSON.stringify(manifest, null, 2));
|
|
16
17
|
await Promise.all(fragmentedImages.map((img, i) => {
|
|
@@ -20,20 +21,20 @@ async function shuffle(options) {
|
|
|
20
21
|
return manifest;
|
|
21
22
|
}
|
|
22
23
|
async function restore(options) {
|
|
23
|
-
const {
|
|
24
|
+
const { images, manifest: manifestSource, manifestData, outputDir, } = validateRestoreOptions(options);
|
|
24
25
|
let manifest;
|
|
25
26
|
if (manifestData) {
|
|
26
27
|
manifest = manifestData;
|
|
27
28
|
}
|
|
28
|
-
else if (
|
|
29
|
-
manifest = await (0, file_1.
|
|
29
|
+
else if (manifestSource) {
|
|
30
|
+
manifest = await (0, file_1.loadJson)(manifestSource);
|
|
30
31
|
}
|
|
31
32
|
else {
|
|
32
33
|
throw new Error("Manifest not provided");
|
|
33
34
|
}
|
|
34
|
-
(0, core_1.validateFragmentImageCount)(
|
|
35
|
+
(0, core_1.validateFragmentImageCount)(images, manifest);
|
|
35
36
|
const restorer = new restorer_1.ImageRestorer();
|
|
36
|
-
const restoredImages = await restorer.restoreImages(
|
|
37
|
+
const restoredImages = await restorer.restoreImages(images, manifest);
|
|
37
38
|
await (0, file_1.createDir)(outputDir, true);
|
|
38
39
|
const imageInfos = manifest.images;
|
|
39
40
|
await Promise.all(restoredImages.map((img, i) => {
|
|
@@ -50,9 +51,9 @@ exports.default = pixzle;
|
|
|
50
51
|
function validateCommonOptions(options, context) {
|
|
51
52
|
if (!options)
|
|
52
53
|
throw new Error(`[${context}] Options object is required.`);
|
|
53
|
-
const {
|
|
54
|
-
if (!
|
|
55
|
-
throw new Error(`[${context}]
|
|
54
|
+
const { images, outputDir } = options;
|
|
55
|
+
if (!images || !Array.isArray(images) || images.length === 0)
|
|
56
|
+
throw new Error(`[${context}] images must be a non-empty array.`);
|
|
56
57
|
if (!outputDir || typeof outputDir !== "string")
|
|
57
58
|
throw new Error(`[${context}] outputDir is required and must be a string.`);
|
|
58
59
|
return options;
|
|
@@ -61,11 +62,11 @@ function validateShuffleOptions(options) {
|
|
|
61
62
|
return validateCommonOptions(options, "shuffle");
|
|
62
63
|
}
|
|
63
64
|
function validateRestoreOptions(options) {
|
|
64
|
-
const {
|
|
65
|
-
if (!
|
|
66
|
-
throw new Error("[restore] Either
|
|
67
|
-
if (
|
|
68
|
-
throw new Error("[restore]
|
|
65
|
+
const { manifest, manifestData } = options;
|
|
66
|
+
if (!manifest && !manifestData)
|
|
67
|
+
throw new Error("[restore] Either manifest or manifestData is required.");
|
|
68
|
+
if (manifest && typeof manifest !== "string")
|
|
69
|
+
throw new Error("[restore] manifest must be a string.");
|
|
69
70
|
return validateCommonOptions(options, "restore");
|
|
70
71
|
}
|
|
71
72
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAUsB;AACtB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/restorer.js
CHANGED
|
@@ -37,9 +37,9 @@ class ImageRestorer {
|
|
|
37
37
|
async _readBlocksFromFragment(fragment, manifest, expectedCount) {
|
|
38
38
|
const buffer = Buffer.isBuffer(fragment)
|
|
39
39
|
? fragment
|
|
40
|
-
: await (0, file_1.
|
|
41
|
-
const { blocks } = await (0, block_1.
|
|
42
|
-
return
|
|
40
|
+
: await (0, file_1.loadBuffer)(fragment);
|
|
41
|
+
const { blocks } = await (0, block_1.imageToBlocks)(buffer, manifest.config.blockSize);
|
|
42
|
+
return (0, core_1.takeBlocks)(blocks, expectedCount);
|
|
43
43
|
}
|
|
44
44
|
async _readBlocks(fragments, manifest, blockCounts) {
|
|
45
45
|
const blockGroups = await Promise.all(fragments.map((fragment, i) => this._readBlocksFromFragment(fragment, manifest, blockCounts[i])));
|
package/dist/restorer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restorer.js","sourceRoot":"","sources":["../src/restorer.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"restorer.js","sourceRoot":"","sources":["../src/restorer.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.0
|
|
3
|
+
"version": "0.1.0",
|
|
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.0
|
|
31
|
+
"@pixzle/core": "0.1.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/node": "^22.10.2",
|