wasm-image-optimization 1.1.7 → 1.1.9
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 +48 -14
- package/dist/cjs/lib/optimizeImage.js.map +1 -1
- package/dist/cjs/node/index.js.map +1 -1
- package/dist/esm/worker.js +3988 -0
- package/dist/lib/optimizeImage.js.map +1 -1
- package/dist/vite/dummy.d.ts +2 -0
- package/dist/vite/dummy.js +3 -0
- package/dist/vite/dummy.js.map +1 -0
- package/dist/vite/index.js +2 -2
- package/dist/vite/index.js.map +1 -1
- package/dist/vite-plugin/index.d.ts +3 -0
- package/dist/vite-plugin/index.js +29 -0
- package/dist/vite-plugin/index.js.map +1 -0
- package/dist/webworker/index.d.ts +9 -0
- package/dist/webworker/index.js +5 -0
- package/dist/webworker/index.js.map +1 -0
- package/package.json +28 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimizeImage.js","sourceRoot":"","sources":["../../src/lib/optimizeImage.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,GAAG,CACb,MAAsD,EACtD,aAAyB,EACzB,EAAE;IACF,MAAM,CAAC,GAAG,MAAM;QACd,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACnD,CAAC,CAAC,SAAS,CAAC;IACd,aAAa,EAAE,CAAC;IAChB,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,EACnC,KAAK,EACL,KAAK,GAAG,CAAC,EACT,MAAM,GAAG,CAAC,EACV,OAAO,GAAG,GAAG,EACb,MAAM,GAAG,MAAM,EACf,QAAQ,GAGT,EAAE,EAAE,CACH,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CACzE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CACf,CAAC;AAEJ,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACtC,KAAK,EACL,KAAK,GAAG,CAAC,EACT,MAAM,GAAG,CAAC,EACV,OAAO,GAAG,GAAG,EACb,MAAM,GAAG,MAAM,EACf,QAAQ,GAGT,EAAE,EAAE,CACH,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,CAC5C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,CACvE,CAAC","sourcesContent":["import { type ModuleType } from \"../esm/libImage.js\";\n\nexport type OptimizeParams = {\n image: BufferSource | string; // The input image data\n width?: number; // The desired output width (optional)\n height?: number; // The desired output height (optional)\n quality?: number; // The desired output quality (0-100, optional)\n format?: \"jpeg\" | \"png\" | \"webp\" | \"avif\"; // The desired output format (optional)\n};\n\nconst result = (\n result: ReturnType<ModuleType[\"optimize\"]> | undefined,\n releaseResult: () => void
|
|
1
|
+
{"version":3,"file":"optimizeImage.js","sourceRoot":"","sources":["../../src/lib/optimizeImage.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,GAAG,CACb,MAAsD,EACtD,aAAyB,EACzB,EAAE;IACF,MAAM,CAAC,GAAG,MAAM;QACd,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACnD,CAAC,CAAC,SAAS,CAAC;IACd,aAAa,EAAE,CAAC;IAChB,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,EACnC,KAAK,EACL,KAAK,GAAG,CAAC,EACT,MAAM,GAAG,CAAC,EACV,OAAO,GAAG,GAAG,EACb,MAAM,GAAG,MAAM,EACf,QAAQ,GAGT,EAAE,EAAE,CACH,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,CACzE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CACf,CAAC;AAEJ,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACtC,KAAK,EACL,KAAK,GAAG,CAAC,EACT,MAAM,GAAG,CAAC,EACV,OAAO,GAAG,GAAG,EACb,MAAM,GAAG,MAAM,EACf,QAAQ,GAGT,EAAE,EAAE,CACH,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,CAC5C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,CACvE,CAAC","sourcesContent":["import { type ModuleType } from \"../esm/libImage.js\";\n\nexport type OptimizeParams = {\n image: BufferSource | string; // The input image data\n width?: number; // The desired output width (optional)\n height?: number; // The desired output height (optional)\n quality?: number; // The desired output quality (0-100, optional)\n format?: \"jpeg\" | \"png\" | \"webp\" | \"avif\"; // The desired output format (optional)\n};\n\nconst result = (\n result: ReturnType<ModuleType[\"optimize\"]> | undefined,\n releaseResult: () => void,\n) => {\n const r = result\n ? { ...result, data: Uint8Array.from(result.data) }\n : undefined;\n releaseResult();\n return r;\n};\nexport const _optimizeImage = async ({\n image,\n width = 0,\n height = 0,\n quality = 100,\n format = \"avif\",\n libImage,\n}: OptimizeParams & {\n libImage: Promise<ModuleType>;\n}) =>\n _optimizeImageExt({ image, width, height, quality, format, libImage }).then(\n (r) => r?.data,\n );\n\nexport const _optimizeImageExt = async ({\n image,\n width = 0,\n height = 0,\n quality = 100,\n format = \"avif\",\n libImage,\n}: OptimizeParams & {\n libImage: Promise<ModuleType>;\n}) =>\n libImage.then(({ optimize, releaseResult }) =>\n result(optimize(image, width, height, quality, format), releaseResult),\n );\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dummy.js","sourceRoot":"","sources":["../../src/vite/dummy.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC","sourcesContent":["export const optimizeImage = null;\nexport const optimizeImageExt = null;\n"]}
|
package/dist/vite/index.js
CHANGED
|
@@ -10,6 +10,6 @@ const getLibImage = async () => {
|
|
|
10
10
|
}
|
|
11
11
|
return libImage;
|
|
12
12
|
};
|
|
13
|
-
export const optimizeImage =
|
|
14
|
-
export const optimizeImageExt =
|
|
13
|
+
export const optimizeImage = (params) => _optimizeImage({ ...params, libImage: getLibImage() });
|
|
14
|
+
export const optimizeImageExt = (params) => _optimizeImageExt({ ...params, libImage: getLibImage() });
|
|
15
15
|
//# sourceMappingURL=index.js.map
|
package/dist/vite/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,0BAA0B,CAAC;AAE5C,OAAO,EACL,cAAc,EACd,iBAAiB,GAElB,MAAM,yBAAyB,CAAC;AACjC,OAAO,QAA6B,MAAM,wBAAwB,CAAC;AAEnE,IAAI,QAA6B,CAAC;AAClC,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;IAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,QAAQ,CAAC;YAClB,UAAU,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC3D,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAsB,EAAE,EAAE,CACtD,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAsB,EAAE,EAAE,CACzD,iBAAiB,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC","sourcesContent":["import WASM from \"../esm/libImage.wasm?url\";\n\nimport {\n _optimizeImage,\n _optimizeImageExt,\n type OptimizeParams,\n} from \"../lib/optimizeImage.js\";\nimport LibImage, { type ModuleType } from \"../workers/libImage.js\";\n\nlet libImage: Promise<ModuleType>;\nconst getLibImage = async () => {\n if (!libImage) {\n libImage = LibImage({\n wasmBinary: await fetch(WASM).then((v) => v.arrayBuffer()),\n });\n }\n return libImage;\n};\n\nexport const optimizeImage = (params: OptimizeParams) =>\n _optimizeImage({ ...params, libImage: getLibImage() });\n\nexport const optimizeImageExt = (params: OptimizeParams) =>\n _optimizeImageExt({ ...params, libImage: getLibImage() });\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
export default () => {
|
|
4
|
+
let config;
|
|
5
|
+
return [
|
|
6
|
+
{
|
|
7
|
+
name: "wasm-image-optimization-serve",
|
|
8
|
+
apply: "serve",
|
|
9
|
+
config: () => {
|
|
10
|
+
return {
|
|
11
|
+
optimizeDeps: {
|
|
12
|
+
exclude: ["wasm-image-optimization"],
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: "wasm-image-optimization-build",
|
|
19
|
+
apply: "build",
|
|
20
|
+
configResolved(_config) {
|
|
21
|
+
config = _config;
|
|
22
|
+
},
|
|
23
|
+
writeBundle() {
|
|
24
|
+
fs.copyFileSync("node_modules/wasm-image-optimization/dist/esm/libImage.wasm", path.resolve(config.build.outDir, "assets/libImage.wasm"));
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vite-plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,eAAe,GAAa,EAAE;IAC5B,IAAI,MAAsB,CAAC;IAC3B,OAAO;QACL;YACE,IAAI,EAAE,+BAA+B;YACrC,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,GAAG,EAAE;gBACX,OAAO;oBACL,YAAY,EAAE;wBACZ,OAAO,EAAE,CAAC,yBAAyB,CAAC;qBACrC;iBACF,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,+BAA+B;YACrC,KAAK,EAAE,OAAO;YACd,cAAc,CAAC,OAAO;gBACpB,MAAM,GAAG,OAAO,CAAC;YACnB,CAAC;YACD,WAAW;gBACT,EAAE,CAAC,YAAY,CACb,6DAA6D,EAC7D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAC1D,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import fs from \"node:fs\";\nimport path from \"node:path\";\nimport type { Plugin, ResolvedConfig } from \"vite\";\n\nexport default (): Plugin[] => {\n let config: ResolvedConfig;\n return [\n {\n name: \"wasm-image-optimization-serve\",\n apply: \"serve\",\n config: () => {\n return {\n optimizeDeps: {\n exclude: [\"wasm-image-optimization\"],\n },\n };\n },\n },\n {\n name: \"wasm-image-optimization-build\",\n apply: \"build\",\n configResolved(_config) {\n config = _config;\n },\n writeBundle() {\n fs.copyFileSync(\n \"node_modules/wasm-image-optimization/dist/esm/libImage.wasm\",\n path.resolve(config.build.outDir, \"assets/libImage.wasm\")\n );\n },\n },\n ];\n};\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type OptimizeParams } from "../lib/optimizeImage.js";
|
|
2
|
+
export declare const optimizeImage: (params: OptimizeParams) => Promise<Uint8Array<ArrayBuffer> | undefined>;
|
|
3
|
+
export declare const optimizeImageExt: (params: OptimizeParams) => Promise<{
|
|
4
|
+
data: Uint8Array<ArrayBuffer>;
|
|
5
|
+
originalWidth: number;
|
|
6
|
+
originalHeight: number;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
} | undefined>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { createWorker } from "worker-lib";
|
|
2
|
+
const execute = createWorker(() => new Worker(new URL("../esm/worker.js", import.meta.url)), 5);
|
|
3
|
+
export const optimizeImage = async (params) => execute("optimizeImage", params);
|
|
4
|
+
export const optimizeImageExt = async (params) => execute("optimizeImageExt", params);
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/webworker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ1C,MAAM,OAAO,GAAG,YAAY,CAC1B,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC9D,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,MAAsB,EAAE,EAAE,CAC5D,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAAsB,EAAE,EAAE,CAC/D,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC","sourcesContent":["import { createWorker } from \"worker-lib\";\nimport {\n _optimizeImage,\n _optimizeImageExt,\n type OptimizeParams,\n} from \"../lib/optimizeImage.js\";\nimport type { WorkerType } from \"../esm/_worker.js\";\n\nconst execute = createWorker<WorkerType>(\n () => new Worker(new URL(\"../esm/worker.js\", import.meta.url)),\n 5\n);\n\nexport const optimizeImage = async (params: OptimizeParams) =>\n execute(\"optimizeImage\", params);\n\nexport const optimizeImageExt = async (params: OptimizeParams) =>\n execute(\"optimizeImageExt\", params);\n"]}
|
package/package.json
CHANGED
|
@@ -1,36 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wasm-image-optimization",
|
|
3
3
|
"description": "Optimize images with wasm on edge runtime",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.9",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./esm": {
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
"types": "./dist/esm/index.d.ts"
|
|
10
|
-
}
|
|
7
|
+
"import": "./dist/esm/index.js",
|
|
8
|
+
"types": "./dist/esm/index.d.ts"
|
|
11
9
|
},
|
|
12
10
|
"./next": {
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
"types": "./dist/next/index.d.ts"
|
|
16
|
-
}
|
|
11
|
+
"import": "./dist/next/index.js",
|
|
12
|
+
"types": "./dist/next/index.d.ts"
|
|
17
13
|
},
|
|
18
14
|
"./node": {
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
"default": "./dist/cjs/node/index.js"
|
|
22
|
-
}
|
|
15
|
+
"types": "./dist/cjs/node/index.d.ts",
|
|
16
|
+
"default": "./dist/cjs/node/index.js"
|
|
23
17
|
},
|
|
24
18
|
"./vite": {
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
19
|
+
"types": "./dist/vite/index.d.ts",
|
|
20
|
+
"browser": "./dist/vite/index.js",
|
|
21
|
+
"node": "./dist/vite/dummy.js",
|
|
22
|
+
"default": "./dist/vite/dummy.js"
|
|
29
23
|
},
|
|
30
|
-
"./
|
|
31
|
-
"
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
"./vite-plugin": {
|
|
25
|
+
"types": "./dist/vite-plugin/index.d.ts",
|
|
26
|
+
"default": "./dist/vite-plugin/index.js"
|
|
27
|
+
},
|
|
28
|
+
"./webworker": {
|
|
29
|
+
"types": "./dist/webworker/index.d.ts",
|
|
30
|
+
"browser": "./dist/webworker/index.js",
|
|
31
|
+
"node": "./dist/vite/dummy.js"
|
|
34
32
|
},
|
|
35
33
|
".": {
|
|
36
34
|
"require": {
|
|
@@ -78,23 +76,30 @@
|
|
|
78
76
|
"scripts": {
|
|
79
77
|
"test": "yarn ts-node test",
|
|
80
78
|
"lint:fix": "eslint --fix src/ && prettier -w src",
|
|
81
|
-
"build": "tsc && tsc -p ./tsconfig.csj.json && cpy esm dist",
|
|
79
|
+
"build": "tsc && tsc -p ./tsconfig.csj.json && cpy esm dist && tsx bin/build",
|
|
82
80
|
"build:wasm": "docker compose -f docker/docker-compose.yml run --build --rm emcc make -j",
|
|
83
81
|
"docker:shell": "docker compose -f docker/docker-compose.yml run --build --rm emcc bash -l"
|
|
84
82
|
},
|
|
83
|
+
"dependencies": {
|
|
84
|
+
"worker-lib": "1.0.2"
|
|
85
|
+
},
|
|
85
86
|
"devDependencies": {
|
|
87
|
+
"@eslint/js": "9.20.0",
|
|
86
88
|
"@types/node": "^22.13.4",
|
|
87
89
|
"@typescript-eslint/eslint-plugin": "^8.24.0",
|
|
88
90
|
"@typescript-eslint/parser": "^8.24.0",
|
|
89
91
|
"cpy-cli": "^5.0.0",
|
|
92
|
+
"esbuild": "0.25.0",
|
|
90
93
|
"eslint": "9.20.1",
|
|
91
94
|
"eslint-config-prettier": "^10.0.1",
|
|
92
95
|
"eslint-import-resolver-typescript": "^3.8.0",
|
|
93
96
|
"eslint-plugin-import": "^2.31.0",
|
|
94
97
|
"prettier": "^3.5.1",
|
|
95
98
|
"ts-node": "^10.9.2",
|
|
99
|
+
"tsx": "4.19.3",
|
|
96
100
|
"typescript": "^5.7.3",
|
|
97
|
-
"typescript-eslint": "^8.24.0"
|
|
101
|
+
"typescript-eslint": "^8.24.0",
|
|
102
|
+
"vite": "6.1.1"
|
|
98
103
|
},
|
|
99
104
|
"publishConfig": {
|
|
100
105
|
"access": "public"
|