@depup/expo__image-utils 0.8.12-depup.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.
@@ -0,0 +1,13 @@
1
+ export type ResizeMode = 'contain' | 'cover' | 'fill' | 'inside' | 'outside';
2
+ export type ImageFormat = 'input' | 'jpeg' | 'jpg' | 'png' | 'raw' | 'tiff' | 'webp';
3
+ export type ImageOptions = {
4
+ src: string;
5
+ name?: string;
6
+ resizeMode: ResizeMode;
7
+ backgroundColor?: string;
8
+ removeTransparency?: boolean;
9
+ width: number;
10
+ height: number;
11
+ padding?: number;
12
+ borderRadius?: number;
13
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Image.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.types.js","sourceRoot":"","sources":["../src/Image.types.ts"],"names":[],"mappings":""}
package/build/env.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ declare class Env {
2
+ /** Enable image utils related debugging messages */
3
+ get EXPO_IMAGE_UTILS_DEBUG(): boolean;
4
+ /** Disable all Sharp related functionality. */
5
+ get EXPO_IMAGE_UTILS_NO_SHARP(): boolean;
6
+ }
7
+ export declare const env: Env;
8
+ export {};
package/build/env.js ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.env = void 0;
4
+ const getenv_1 = require("getenv");
5
+ class Env {
6
+ /** Enable image utils related debugging messages */
7
+ get EXPO_IMAGE_UTILS_DEBUG() {
8
+ return (0, getenv_1.boolish)('EXPO_IMAGE_UTILS_DEBUG', false);
9
+ }
10
+ /** Disable all Sharp related functionality. */
11
+ get EXPO_IMAGE_UTILS_NO_SHARP() {
12
+ return (0, getenv_1.boolish)('EXPO_IMAGE_UTILS_NO_SHARP', false);
13
+ }
14
+ }
15
+ exports.env = new Env();
16
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AAEjC,MAAM,GAAG;IACP,oDAAoD;IACpD,IAAI,sBAAsB;QACxB,OAAO,IAAA,gBAAO,EAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,+CAA+C;IAC/C,IAAI,yBAAyB;QAC3B,OAAO,IAAA,gBAAO,EAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;CACF;AAEY,QAAA,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as Cache from './Cache';
2
+ import { compositeImagesAsync, generateFaviconAsync, generateImageAsync, generateImageBackgroundAsync, getPngInfo } from './Image';
3
+ import { ImageFormat, ImageOptions, ResizeMode } from './Image.types';
4
+ import { jimpAsync, createSquareAsync } from './jimp';
5
+ import { findSharpInstanceAsync, isAvailableAsync, sharpAsync } from './sharp';
6
+ import { SharpCommandOptions, SharpGlobalOptions } from './sharp.types';
7
+ export declare function imageAsync(options: SharpGlobalOptions, commands?: SharpCommandOptions[]): Promise<Buffer<ArrayBufferLike> | string[]>;
8
+ export { jimpAsync, createSquareAsync, findSharpInstanceAsync, isAvailableAsync, sharpAsync, generateImageAsync, generateImageBackgroundAsync, generateFaviconAsync, Cache, compositeImagesAsync, getPngInfo, };
9
+ export { SharpGlobalOptions, SharpCommandOptions, ResizeMode, ImageFormat, ImageOptions };
package/build/index.js ADDED
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getPngInfo = exports.compositeImagesAsync = exports.Cache = exports.generateFaviconAsync = exports.generateImageBackgroundAsync = exports.generateImageAsync = exports.sharpAsync = exports.isAvailableAsync = exports.findSharpInstanceAsync = exports.createSquareAsync = exports.jimpAsync = void 0;
37
+ exports.imageAsync = imageAsync;
38
+ const Cache = __importStar(require("./Cache"));
39
+ exports.Cache = Cache;
40
+ const Image_1 = require("./Image");
41
+ Object.defineProperty(exports, "compositeImagesAsync", { enumerable: true, get: function () { return Image_1.compositeImagesAsync; } });
42
+ Object.defineProperty(exports, "generateFaviconAsync", { enumerable: true, get: function () { return Image_1.generateFaviconAsync; } });
43
+ Object.defineProperty(exports, "generateImageAsync", { enumerable: true, get: function () { return Image_1.generateImageAsync; } });
44
+ Object.defineProperty(exports, "generateImageBackgroundAsync", { enumerable: true, get: function () { return Image_1.generateImageBackgroundAsync; } });
45
+ Object.defineProperty(exports, "getPngInfo", { enumerable: true, get: function () { return Image_1.getPngInfo; } });
46
+ const jimp_1 = require("./jimp");
47
+ Object.defineProperty(exports, "jimpAsync", { enumerable: true, get: function () { return jimp_1.jimpAsync; } });
48
+ Object.defineProperty(exports, "createSquareAsync", { enumerable: true, get: function () { return jimp_1.createSquareAsync; } });
49
+ const sharp_1 = require("./sharp");
50
+ Object.defineProperty(exports, "findSharpInstanceAsync", { enumerable: true, get: function () { return sharp_1.findSharpInstanceAsync; } });
51
+ Object.defineProperty(exports, "isAvailableAsync", { enumerable: true, get: function () { return sharp_1.isAvailableAsync; } });
52
+ Object.defineProperty(exports, "sharpAsync", { enumerable: true, get: function () { return sharp_1.sharpAsync; } });
53
+ async function imageAsync(options, commands = []) {
54
+ if (await (0, sharp_1.isAvailableAsync)()) {
55
+ return (0, sharp_1.sharpAsync)(options, commands);
56
+ }
57
+ return (0, jimp_1.jimpAsync)({ ...options, format: (0, jimp_1.convertFormat)(options.format), originalInput: options.input }, commands);
58
+ }
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,gCAWC;AAxBD,+CAAiC;AAmC/B,sBAAK;AAlCP,mCAMiB;AA6Bf,qGAlCA,4BAAoB,OAkCA;AAFpB,qGA/BA,4BAAoB,OA+BA;AAFpB,mGA5BA,0BAAkB,OA4BA;AAClB,6GA5BA,oCAA4B,OA4BA;AAI5B,2FA/BA,kBAAU,OA+BA;AA5BZ,iCAAqE;AAkBnE,0FAlBsB,gBAAS,OAkBtB;AACT,kGAnBiC,wBAAiB,OAmBjC;AAlBnB,mCAA+E;AAmB7E,uGAnBO,8BAAsB,OAmBP;AACtB,iGApB+B,wBAAgB,OAoB/B;AAChB,2FArBiD,kBAAU,OAqBjD;AAlBL,KAAK,UAAU,UAAU,CAC9B,OAA2B,EAC3B,WAAkC,EAAE;IAEpC,IAAI,MAAM,IAAA,wBAAgB,GAAE,EAAE,CAAC;QAC7B,OAAO,IAAA,kBAAU,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAA,gBAAS,EACd,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAA,oBAAa,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,KAAK,EAAE,EACnF,QAAQ,CACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import Jimp from 'jimp-compact';
2
+ import { ResizeOptions, SharpCommandOptions, SharpGlobalOptions } from './sharp.types';
3
+ type JimpGlobalOptions = Omit<SharpGlobalOptions, 'input'> & {
4
+ input: string | Buffer | Jimp;
5
+ originalInput: string;
6
+ };
7
+ export declare function resizeBufferAsync(buffer: Buffer, sizes: number[]): Promise<Buffer[]>;
8
+ export declare function convertFormat(format?: string): string | undefined;
9
+ export declare function jimpAsync(options: JimpGlobalOptions, commands?: SharpCommandOptions[]): Promise<Buffer>;
10
+ export declare function isFolderAsync(path: string): Promise<boolean>;
11
+ export declare function circleAsync(jimp: Jimp): Promise<Jimp>;
12
+ /**
13
+ * Create a square image of a given size and color. Defaults to a white PNG.
14
+ */
15
+ export declare function createSquareAsync({ size, color, mime, }: {
16
+ size: number;
17
+ color?: string;
18
+ mime?: any;
19
+ }): Promise<Buffer>;
20
+ export declare function getJimpImageAsync(input: string | Buffer | Jimp): Promise<Jimp>;
21
+ export declare function resize({ input, quality }: JimpGlobalOptions, { background, position, fit, width, height }: Omit<ResizeOptions, 'operation'>): Promise<Jimp>;
22
+ export {};
package/build/jimp.js ADDED
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.resizeBufferAsync = resizeBufferAsync;
40
+ exports.convertFormat = convertFormat;
41
+ exports.jimpAsync = jimpAsync;
42
+ exports.isFolderAsync = isFolderAsync;
43
+ exports.circleAsync = circleAsync;
44
+ exports.createSquareAsync = createSquareAsync;
45
+ exports.getJimpImageAsync = getJimpImageAsync;
46
+ exports.resize = resize;
47
+ const fs_1 = __importDefault(require("fs"));
48
+ // @ts-ignore
49
+ const jimp_compact_1 = __importDefault(require("jimp-compact"));
50
+ const path = __importStar(require("path"));
51
+ async function resizeBufferAsync(buffer, sizes) {
52
+ return Promise.all(sizes.map(async (size) => {
53
+ // Parse the buffer each time to prevent mutable copies.
54
+ // Parse the buffer each time to prevent mutable copies.
55
+ const jimpImage = await jimp_compact_1.default.read(buffer);
56
+ const mime = jimpImage.getMIME();
57
+ return jimpImage.resize(size, size).getBufferAsync(mime);
58
+ }));
59
+ }
60
+ function convertFormat(format) {
61
+ if (typeof format === 'undefined')
62
+ return format;
63
+ const input = format?.toLowerCase();
64
+ switch (input) {
65
+ case 'png':
66
+ case 'webp':
67
+ case 'jpeg':
68
+ return `image/${input}`;
69
+ case 'jpg':
70
+ return `image/jpeg`;
71
+ }
72
+ return undefined;
73
+ }
74
+ async function jimpAsync(options, commands = []) {
75
+ if (commands.length) {
76
+ const command = commands.shift();
77
+ if (command) {
78
+ let input;
79
+ if (command.operation === 'resize') {
80
+ input = await resize(options, command);
81
+ }
82
+ else if (command.operation === 'flatten') {
83
+ input = await flatten(options, command);
84
+ }
85
+ else {
86
+ throw new Error(`The operation: '${command.operation}' is not supported with Jimp`);
87
+ }
88
+ // @ts-ignore
89
+ return jimpAsync({ ...options, input }, commands);
90
+ }
91
+ }
92
+ const image = await getJimpImageAsync(options.input);
93
+ const mime = typeof options.format === 'string' ? options.format : image.getMIME();
94
+ const imgBuffer = await image.getBufferAsync(mime);
95
+ if (typeof options.output === 'string') {
96
+ if (await isFolderAsync(options.output)) {
97
+ await fs_1.default.promises.writeFile(path.join(options.output, path.basename(options.originalInput)), imgBuffer);
98
+ }
99
+ else {
100
+ await fs_1.default.promises.writeFile(options.output, imgBuffer);
101
+ }
102
+ }
103
+ return imgBuffer;
104
+ }
105
+ async function isFolderAsync(path) {
106
+ try {
107
+ return (await fs_1.default.promises.stat(path)).isDirectory();
108
+ }
109
+ catch {
110
+ return false;
111
+ }
112
+ }
113
+ function circleAsync(jimp) {
114
+ const diameter = Math.min(jimp.bitmap.width, jimp.bitmap.height);
115
+ const center = {
116
+ x: jimp.bitmap.width / 2,
117
+ y: jimp.bitmap.height / 2,
118
+ };
119
+ return new Promise((resolve) => {
120
+ jimp
121
+ .resize(diameter, diameter)
122
+ .crop((jimp.bitmap.width - diameter) / 2, (jimp.bitmap.height - diameter) / 2, diameter, diameter)
123
+ .scanQuiet(0, 0, diameter, diameter, (x, y, idx) => {
124
+ const radius = diameter / 2;
125
+ const curR = Math.sqrt(Math.pow(x - center.x, 2) + Math.pow(y - center.y, 2));
126
+ if (radius - curR <= 0.0) {
127
+ jimp.bitmap.data[idx + 3] = 0;
128
+ }
129
+ else if (radius - curR < 1.0) {
130
+ jimp.bitmap.data[idx + 3] = 255 * (radius - curR);
131
+ }
132
+ });
133
+ resolve(jimp);
134
+ });
135
+ }
136
+ /**
137
+ * Create a square image of a given size and color. Defaults to a white PNG.
138
+ */
139
+ async function createSquareAsync({ size, color = '#FFFFFF', mime = jimp_compact_1.default.MIME_PNG, }) {
140
+ const image = await new jimp_compact_1.default(size, size, color);
141
+ // Convert Jimp image to a Buffer
142
+ return await image.getBufferAsync(mime);
143
+ }
144
+ async function getJimpImageAsync(input) {
145
+ // @ts-ignore: Jimp types are broken
146
+ if (typeof input === 'string' || input instanceof Buffer)
147
+ return await jimp_compact_1.default.read(input);
148
+ return input;
149
+ }
150
+ async function resize({ input, quality = 100 }, { background, position, fit, width, height }) {
151
+ let initialImage = await getJimpImageAsync(input);
152
+ if (width && !height) {
153
+ height = jimp_compact_1.default.AUTO;
154
+ }
155
+ else if (!width && height) {
156
+ width = jimp_compact_1.default.AUTO;
157
+ }
158
+ else if (!width && !height) {
159
+ width = initialImage.bitmap.width;
160
+ height = initialImage.bitmap.height;
161
+ }
162
+ const jimpPosition = convertPosition(position);
163
+ const jimpQuality = typeof quality !== 'number' ? 100 : quality;
164
+ if (fit === 'cover') {
165
+ initialImage = initialImage.cover(width, height, jimpPosition);
166
+ }
167
+ else if (fit === 'contain') {
168
+ initialImage = initialImage.contain(width, height, jimpPosition);
169
+ }
170
+ else {
171
+ throw new Error(`Unsupported fit: ${fit}. Supported values are 'cover' or 'contain' when using Jimp`);
172
+ }
173
+ if (background) {
174
+ initialImage = initialImage.composite(new jimp_compact_1.default(width, height, background), 0, 0, {
175
+ mode: jimp_compact_1.default.BLEND_DESTINATION_OVER,
176
+ opacitySource: 1,
177
+ opacityDest: 1,
178
+ });
179
+ }
180
+ return await initialImage.quality(jimpQuality);
181
+ }
182
+ async function flatten({ input, quality = 100 }, { background }) {
183
+ const initialImage = await getJimpImageAsync(input);
184
+ const jimpQuality = typeof quality !== 'number' ? 100 : quality;
185
+ return initialImage.quality(jimpQuality).background(jimp_compact_1.default.cssColorToHex(background));
186
+ }
187
+ /**
188
+ * Convert sharp position to Jimp position.
189
+ *
190
+ * @param position
191
+ */
192
+ function convertPosition(position) {
193
+ if (!position)
194
+ return convertPosition('center');
195
+ switch (position) {
196
+ case 'center':
197
+ case 'centre':
198
+ return jimp_compact_1.default.VERTICAL_ALIGN_MIDDLE | jimp_compact_1.default.HORIZONTAL_ALIGN_CENTER;
199
+ case 'north':
200
+ case 'top':
201
+ return jimp_compact_1.default.VERTICAL_ALIGN_TOP | jimp_compact_1.default.HORIZONTAL_ALIGN_CENTER;
202
+ case 'east':
203
+ case 'right':
204
+ return jimp_compact_1.default.VERTICAL_ALIGN_MIDDLE | jimp_compact_1.default.HORIZONTAL_ALIGN_RIGHT;
205
+ case 'south':
206
+ case 'bottom':
207
+ return jimp_compact_1.default.VERTICAL_ALIGN_BOTTOM | jimp_compact_1.default.HORIZONTAL_ALIGN_CENTER;
208
+ case 'west':
209
+ case 'left':
210
+ return jimp_compact_1.default.VERTICAL_ALIGN_MIDDLE | jimp_compact_1.default.HORIZONTAL_ALIGN_LEFT;
211
+ case 'northeast':
212
+ case 'right top':
213
+ return jimp_compact_1.default.VERTICAL_ALIGN_TOP | jimp_compact_1.default.HORIZONTAL_ALIGN_RIGHT;
214
+ case 'southeast':
215
+ case 'right bottom':
216
+ return jimp_compact_1.default.VERTICAL_ALIGN_BOTTOM | jimp_compact_1.default.HORIZONTAL_ALIGN_RIGHT;
217
+ case 'southwest':
218
+ case 'left bottom':
219
+ return jimp_compact_1.default.VERTICAL_ALIGN_BOTTOM | jimp_compact_1.default.HORIZONTAL_ALIGN_LEFT;
220
+ case 'northwest':
221
+ case 'left top':
222
+ return jimp_compact_1.default.VERTICAL_ALIGN_TOP | jimp_compact_1.default.HORIZONTAL_ALIGN_LEFT;
223
+ case 'entropy':
224
+ case 'attention':
225
+ throw new Error(`Position: '${position}' is not supported`);
226
+ default:
227
+ throw new Error(`Unknown position: '${position}'`);
228
+ }
229
+ }
230
+ //# sourceMappingURL=jimp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jimp.js","sourceRoot":"","sources":["../src/jimp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ declare module 'module' {
2
+ namespace Module {
3
+ const globalPaths: readonly string[] | void;
4
+ }
5
+ }
6
+ /** Resolve a globally installed module before a locally installed one */
7
+ export declare const resolveGlobal: (id: string) => string;
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ // NOTE: This file is replicated to multiple packages! Keep these files in-sync:
3
+ // - packages/@expo/cli/src/utils/resolveGlobal.ts
4
+ // - packages/@expo/image-utils/src/resolveGlobal.ts
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.resolveGlobal = void 0;
10
+ const child_process_1 = require("child_process");
11
+ const fs_1 = __importDefault(require("fs"));
12
+ const module_1 = __importDefault(require("module"));
13
+ const os_1 = __importDefault(require("os"));
14
+ const path_1 = __importDefault(require("path"));
15
+ const memoize = (fn) => {
16
+ let result;
17
+ return (...args) => {
18
+ if (result === undefined) {
19
+ result = { value: fn(...args) };
20
+ }
21
+ return result.value;
22
+ };
23
+ };
24
+ const isWindows = process.platform === 'win32';
25
+ const getDelimitedPaths = (delimited) => delimited
26
+ .split(path_1.default.delimiter)
27
+ .map((target) => {
28
+ try {
29
+ const normalized = path_1.default.normalize(target.trim());
30
+ if (!normalized) {
31
+ return null;
32
+ }
33
+ else if (!path_1.default.isAbsolute(normalized)) {
34
+ return path_1.default.resolve(process.cwd(), normalized);
35
+ }
36
+ else {
37
+ return normalized;
38
+ }
39
+ }
40
+ catch {
41
+ return null;
42
+ }
43
+ })
44
+ .filter((target) => !!target);
45
+ const execGetPaths = (cmd, args) => {
46
+ const result = (0, child_process_1.spawnSync)(cmd, args, { encoding: 'utf8' });
47
+ if (!result.error && result.status === 0 && result.stdout) {
48
+ const paths = getDelimitedPaths(result.stdout.replace(/[\r\n]+/g, path_1.default.delimiter));
49
+ return paths.filter((target) => fs_1.default.existsSync(target));
50
+ }
51
+ return [];
52
+ };
53
+ const getNativeNodePaths = () => {
54
+ if (Array.isArray(module_1.default.globalPaths)) {
55
+ return module_1.default.globalPaths;
56
+ }
57
+ else {
58
+ return [];
59
+ }
60
+ };
61
+ const getHomePath = memoize(() => {
62
+ try {
63
+ return os_1.default.homedir();
64
+ }
65
+ catch {
66
+ return isWindows ? (process.env.UserProfile ?? process.env.USERPROFILE) : process.env.HOME;
67
+ }
68
+ });
69
+ const getNpmDefaultPaths = () => {
70
+ const prefix = [];
71
+ const localAppData = process.env.LocalAppData || process.env.LOCALAPPDATA;
72
+ if (isWindows && localAppData) {
73
+ prefix.push(path_1.default.resolve(localAppData, 'npm'));
74
+ }
75
+ else if (!isWindows) {
76
+ prefix.push('/usr/local/lib/node_modules');
77
+ }
78
+ return prefix.filter((target) => fs_1.default.existsSync(target));
79
+ };
80
+ const getNpmPrefixPaths = memoize(() => {
81
+ const npmPrefix = execGetPaths(isWindows ? 'npm.cmd' : 'npm', ['config', '-g', 'get', 'prefix']);
82
+ return npmPrefix.map((prefix) => path_1.default.resolve(prefix, 'lib'));
83
+ });
84
+ const getYarnDefaultPaths = () => {
85
+ const prefix = [];
86
+ const homePath = getHomePath();
87
+ const localAppData = process.env.LocalAppData || process.env.LOCALAPPDATA;
88
+ const dataHomePath = process.env.XDG_DATA_HOME || (homePath && path_1.default.join(homePath, '.local', 'share'));
89
+ if (isWindows && localAppData) {
90
+ prefix.push(path_1.default.resolve(localAppData, 'Yarn', 'global'));
91
+ }
92
+ if (dataHomePath) {
93
+ prefix.push(path_1.default.resolve(dataHomePath, 'yarn', 'global'));
94
+ }
95
+ if (homePath) {
96
+ prefix.push(path_1.default.resolve(homePath, '.yarn', 'global'));
97
+ }
98
+ return prefix.filter((target) => fs_1.default.existsSync(target));
99
+ };
100
+ const getYarnPrefixPaths = memoize(() => {
101
+ return execGetPaths(isWindows ? 'yarn.cmd' : 'yarn', ['global', 'dir']);
102
+ });
103
+ const getPnpmPrefixPaths = memoize(() => {
104
+ return execGetPaths(isWindows ? 'pnpm.cmd' : 'pnpm', ['root', '-g']);
105
+ });
106
+ const getBunPrefixPaths = memoize(() => {
107
+ const prefix = [];
108
+ const bunPath = execGetPaths(isWindows ? 'bun.cmd' : 'bun', ['pm', 'bin', '-g'])[0];
109
+ if (!bunPath) {
110
+ return [];
111
+ }
112
+ prefix.push(path_1.default.resolve(bunPath, 'global'));
113
+ const moduleEntry = fs_1.default.readdirSync(bunPath, { withFileTypes: true }).find((entry) => {
114
+ return entry.isSymbolicLink() && entry.name !== 'global';
115
+ });
116
+ if (moduleEntry) {
117
+ try {
118
+ const moduleTarget = fs_1.default.realpathSync(path_1.default.resolve(bunPath, moduleEntry.name));
119
+ const splitIdx = moduleTarget.indexOf(path_1.default.sep + 'node_modules' + path_1.default.sep);
120
+ if (splitIdx > -1) {
121
+ const modulePath = moduleTarget.slice(0, splitIdx);
122
+ prefix.push(modulePath);
123
+ }
124
+ }
125
+ catch { }
126
+ }
127
+ return prefix.filter((target) => fs_1.default.existsSync(target));
128
+ });
129
+ const getPaths = () => [
130
+ ...getNpmDefaultPaths(),
131
+ ...getNpmPrefixPaths(),
132
+ ...getYarnDefaultPaths(),
133
+ ...getYarnPrefixPaths(),
134
+ ...getPnpmPrefixPaths(),
135
+ ...getBunPrefixPaths(),
136
+ ...getNativeNodePaths(),
137
+ process.cwd(),
138
+ ];
139
+ /** Resolve a globally installed module before a locally installed one */
140
+ const resolveGlobal = (id) => {
141
+ return require.resolve(id, { paths: getPaths() });
142
+ };
143
+ exports.resolveGlobal = resolveGlobal;
144
+ //# sourceMappingURL=resolveGlobal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveGlobal.js","sourceRoot":"","sources":["../src/resolveGlobal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { SharpCommandOptions, SharpGlobalOptions } from './sharp.types';
2
+ export declare function resizeBufferAsync(buffer: Buffer, sizes: number[]): Promise<Buffer[]>;
3
+ /**
4
+ * Returns `true` if a global sharp instance can be found.
5
+ * This functionality can be overridden with `process.env.EXPO_IMAGE_UTILS_NO_SHARP=1`.
6
+ */
7
+ export declare function isAvailableAsync(): Promise<boolean>;
8
+ export declare function sharpAsync(options: SharpGlobalOptions, commands?: SharpCommandOptions[]): Promise<string[]>;
9
+ /**
10
+ * Returns the instance of `sharp` installed by the global `sharp-cli` package.
11
+ * This method will throw errors if the `sharp` instance cannot be found, these errors can be circumvented by ensuring `isAvailableAsync()` resolves to `true`.
12
+ */
13
+ export declare function findSharpInstanceAsync(): Promise<typeof import('sharp') | null>;