@sudobility/svgr_lib 0.0.24 → 0.0.27
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/config/constants.d.ts +1 -0
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +1 -0
- package/dist/config/constants.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useImageConverter.d.ts +5 -2
- package/dist/hooks/useImageConverter.d.ts.map +1 -1
- package/dist/hooks/useImageConverter.js +20 -4
- package/dist/hooks/useImageConverter.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/scale-image.d.ts +2 -0
- package/dist/utils/scale-image.d.ts.map +1 -0
- package/dist/utils/scale-image.js +30 -0
- package/dist/utils/scale-image.js.map +1 -0
- package/package.json +5 -5
|
@@ -6,5 +6,6 @@ export declare const QUALITY_MIN = 1;
|
|
|
6
6
|
export declare const QUALITY_MAX = 10;
|
|
7
7
|
export declare const QUALITY_DEFAULT = 5;
|
|
8
8
|
export declare const SUPPORTED_IMAGE_TYPES: readonly ["image/png", "image/jpeg", "image/webp", "image/bmp", "image/gif"];
|
|
9
|
+
export declare const MAX_IMAGE_DIMENSION = 1024;
|
|
9
10
|
export type SupportedImageType = (typeof SUPPORTED_IMAGE_TYPES)[number];
|
|
10
11
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,QAAQ,SAAS,CAAC;AAG/B,eAAO,MAAM,UAAU,aAAa,CAAC;AAGrC,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAG9C,eAAO,MAAM,eAAe,yBAAyB,CAAC;AAGtD,eAAO,MAAM,WAAW,IAAI,CAAC;AAG7B,eAAO,MAAM,WAAW,KAAK,CAAC;AAG9B,eAAO,MAAM,eAAe,IAAI,CAAC;AAQjC,eAAO,MAAM,qBAAqB,8EAMxB,CAAC;AAGX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,QAAQ,SAAS,CAAC;AAG/B,eAAO,MAAM,UAAU,aAAa,CAAC;AAGrC,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAG9C,eAAO,MAAM,eAAe,yBAAyB,CAAC;AAGtD,eAAO,MAAM,WAAW,IAAI,CAAC;AAG7B,eAAO,MAAM,WAAW,KAAK,CAAC;AAG9B,eAAO,MAAM,eAAe,IAAI,CAAC;AAQjC,eAAO,MAAM,qBAAqB,8EAMxB,CAAC;AAGX,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAGxC,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
package/dist/config/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC;AAG/B,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;AAGrC,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAG9C,MAAM,CAAC,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAGtD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAG7B,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAG9B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAQjC,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,WAAW;CACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC;AAG/B,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;AAGrC,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAG9C,MAAM,CAAC,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAGtD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAG7B,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAG9B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAQjC,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,WAAW;CACH,CAAC;AAGX,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC"}
|
package/dist/config/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { SvgrAppConfig, FirebaseConfig, RevenueCatConfig } from './types';
|
|
2
|
-
export { APP_NAME, APP_DOMAIN, COMPANY_NAME, DEFAULT_API_URL, QUALITY_MIN, QUALITY_MAX, QUALITY_DEFAULT, SUPPORTED_IMAGE_TYPES, } from './constants';
|
|
2
|
+
export { APP_NAME, APP_DOMAIN, COMPANY_NAME, DEFAULT_API_URL, QUALITY_MIN, QUALITY_MAX, QUALITY_DEFAULT, SUPPORTED_IMAGE_TYPES, MAX_IMAGE_DIMENSION, } from './constants';
|
|
3
3
|
export type { SupportedImageType } from './constants';
|
|
4
4
|
export type { ConversionPreset } from './presets';
|
|
5
5
|
export { CONVERSION_PRESETS, DEFAULT_PRESET_ID, getPresetById, getDefaultPreset, } from './presets';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACX,eAAe,EACf,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,GACjB,MAAM,WAAW,CAAC"}
|
package/dist/config/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { APP_NAME, APP_DOMAIN, COMPANY_NAME, DEFAULT_API_URL, QUALITY_MIN, QUALITY_MAX, QUALITY_DEFAULT, SUPPORTED_IMAGE_TYPES, } from './constants';
|
|
1
|
+
export { APP_NAME, APP_DOMAIN, COMPANY_NAME, DEFAULT_API_URL, QUALITY_MIN, QUALITY_MAX, QUALITY_DEFAULT, SUPPORTED_IMAGE_TYPES, MAX_IMAGE_DIMENSION, } from './constants';
|
|
2
2
|
export { CONVERSION_PRESETS, DEFAULT_PRESET_ID, getPresetById, getDefaultPreset, } from './presets';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACX,eAAe,EACf,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,GACjB,MAAM,WAAW,CAAC"}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export type { ImageConverterState, UseImageConverterReturn, } from './useImageConverter';
|
|
1
|
+
export type { ImageConverterState, UseImageConverterReturn, ScaleImageFn, } from './useImageConverter';
|
|
2
2
|
export { useImageConverter } from './useImageConverter';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { SvgrClient } from '@sudobility/svgr_client';
|
|
1
|
+
import type { ImageType, SvgrClient } from '@sudobility/svgr_client';
|
|
2
2
|
export interface ImageConverterState {
|
|
3
3
|
quality: number;
|
|
4
4
|
transparentBg: boolean;
|
|
5
5
|
ocr: boolean;
|
|
6
6
|
mergePaths: boolean;
|
|
7
|
+
imageType: ImageType;
|
|
7
8
|
svgResult: string | null;
|
|
8
9
|
error: string | null;
|
|
9
10
|
isConverting: boolean;
|
|
@@ -13,8 +14,10 @@ export interface UseImageConverterReturn extends ImageConverterState {
|
|
|
13
14
|
setTransparentBg: (v: boolean) => void;
|
|
14
15
|
setOcr: (v: boolean) => void;
|
|
15
16
|
setMergePaths: (v: boolean) => void;
|
|
17
|
+
setImageType: (v: ImageType) => void;
|
|
16
18
|
convert: (base64: string, filename: string) => void;
|
|
17
19
|
reset: () => void;
|
|
18
20
|
}
|
|
19
|
-
export
|
|
21
|
+
export type ScaleImageFn = (base64: string, maxDimension: number) => Promise<string>;
|
|
22
|
+
export declare function useImageConverter(client: SvgrClient, scaleImage?: ScaleImageFn): UseImageConverterReturn;
|
|
20
23
|
//# sourceMappingURL=useImageConverter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useImageConverter.d.ts","sourceRoot":"","sources":["../../src/hooks/useImageConverter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"useImageConverter.d.ts","sourceRoot":"","sources":["../../src/hooks/useImageConverter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAUrE,MAAM,WAAW,mBAAmB;IAElC,OAAO,EAAE,MAAM,CAAC;IAEhB,aAAa,EAAE,OAAO,CAAC;IAEvB,GAAG,EAAE,OAAO,CAAC;IAEb,UAAU,EAAE,OAAO,CAAC;IAEpB,SAAS,EAAE,SAAS,CAAC;IAErB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,YAAY,EAAE,OAAO,CAAC;CACvB;AAQD,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAElE,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhC,gBAAgB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAEvC,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAE7B,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAEpC,YAAY,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IAMrC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AA0CD,MAAM,MAAM,YAAY,GAAG,CACzB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,KACjB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,UAAU,CAAC,EAAE,YAAY,GACxB,uBAAuB,CAgFzB"}
|
|
@@ -1,25 +1,30 @@
|
|
|
1
1
|
import { useCallback, useState } from 'react';
|
|
2
2
|
import { useConvert } from '@sudobility/svgr_client';
|
|
3
|
-
import { QUALITY_DEFAULT } from '../config/constants';
|
|
4
|
-
export function useImageConverter(client) {
|
|
3
|
+
import { MAX_IMAGE_DIMENSION, QUALITY_DEFAULT } from '../config/constants';
|
|
4
|
+
export function useImageConverter(client, scaleImage) {
|
|
5
5
|
const convertMutation = useConvert(client);
|
|
6
6
|
const [quality, setQuality] = useState(QUALITY_DEFAULT);
|
|
7
7
|
const [transparentBg, setTransparentBg] = useState(false);
|
|
8
8
|
const [ocr, setOcr] = useState(true);
|
|
9
9
|
const [mergePaths, setMergePaths] = useState(false);
|
|
10
|
+
const [imageType, setImageType] = useState('auto');
|
|
10
11
|
const [svgResult, setSvgResult] = useState(null);
|
|
11
12
|
const [error, setError] = useState(null);
|
|
12
13
|
const [isFetchingSvg, setIsFetchingSvg] = useState(false);
|
|
13
14
|
const convert = useCallback(async (base64, filename) => {
|
|
14
15
|
setError(null);
|
|
15
16
|
try {
|
|
17
|
+
const scaled = scaleImage
|
|
18
|
+
? await scaleImage(base64, MAX_IMAGE_DIMENSION)
|
|
19
|
+
: base64;
|
|
16
20
|
const response = await convertMutation.mutateAsync({
|
|
17
|
-
original:
|
|
21
|
+
original: scaled,
|
|
18
22
|
filename,
|
|
19
23
|
quality,
|
|
20
24
|
transparentBg,
|
|
21
25
|
ocr,
|
|
22
26
|
mergePaths,
|
|
27
|
+
imageType,
|
|
23
28
|
});
|
|
24
29
|
if (response.success && response.data) {
|
|
25
30
|
setIsFetchingSvg(true);
|
|
@@ -39,7 +44,16 @@ export function useImageConverter(client) {
|
|
|
39
44
|
setError(err instanceof Error ? err.message : 'Conversion failed');
|
|
40
45
|
setIsFetchingSvg(false);
|
|
41
46
|
}
|
|
42
|
-
}, [
|
|
47
|
+
}, [
|
|
48
|
+
convertMutation,
|
|
49
|
+
client,
|
|
50
|
+
scaleImage,
|
|
51
|
+
quality,
|
|
52
|
+
transparentBg,
|
|
53
|
+
ocr,
|
|
54
|
+
mergePaths,
|
|
55
|
+
imageType,
|
|
56
|
+
]);
|
|
43
57
|
const reset = useCallback(() => {
|
|
44
58
|
setSvgResult(null);
|
|
45
59
|
setError(null);
|
|
@@ -49,6 +63,7 @@ export function useImageConverter(client) {
|
|
|
49
63
|
transparentBg,
|
|
50
64
|
ocr,
|
|
51
65
|
mergePaths,
|
|
66
|
+
imageType,
|
|
52
67
|
svgResult,
|
|
53
68
|
error,
|
|
54
69
|
isConverting: convertMutation.isPending || isFetchingSvg,
|
|
@@ -56,6 +71,7 @@ export function useImageConverter(client) {
|
|
|
56
71
|
setTransparentBg,
|
|
57
72
|
setOcr,
|
|
58
73
|
setMergePaths,
|
|
74
|
+
setImageType,
|
|
59
75
|
convert,
|
|
60
76
|
reset,
|
|
61
77
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useImageConverter.js","sourceRoot":"","sources":["../../src/hooks/useImageConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useImageConverter.js","sourceRoot":"","sources":["../../src/hooks/useImageConverter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { SvgrAppConfig, FirebaseConfig, RevenueCatConfig } from './config';
|
|
2
|
-
export { APP_NAME, APP_DOMAIN, COMPANY_NAME, DEFAULT_API_URL, QUALITY_MIN, QUALITY_MAX, QUALITY_DEFAULT, SUPPORTED_IMAGE_TYPES, } from './config';
|
|
2
|
+
export { APP_NAME, APP_DOMAIN, COMPANY_NAME, DEFAULT_API_URL, QUALITY_MIN, QUALITY_MAX, QUALITY_DEFAULT, SUPPORTED_IMAGE_TYPES, MAX_IMAGE_DIMENSION, } from './config';
|
|
3
3
|
export type { SupportedImageType } from './config';
|
|
4
4
|
export type { ConversionPreset } from './config';
|
|
5
5
|
export { CONVERSION_PRESETS, DEFAULT_PRESET_ID, getPresetById, getDefaultPreset, } from './config';
|
|
@@ -9,6 +9,9 @@ export type { ValidationResult } from './utils';
|
|
|
9
9
|
export { isValidImageType, getBaseName, getImageTypeDisplayName, getSupportedFormatsDisplay, validateImageFile, getAcceptedFileExtensions, MAX_FILE_SIZE_BYTES, MAX_FILE_SIZE_MB, } from './utils';
|
|
10
10
|
export type { SvgDimensions } from './utils';
|
|
11
11
|
export { getSvgDimensions, getSvgFileSize, getSvgFileSizeKB } from './utils';
|
|
12
|
-
export
|
|
12
|
+
export { scaleImageWeb } from './utils';
|
|
13
|
+
export type { ImageConverterState, UseImageConverterReturn, ScaleImageFn, } from './hooks';
|
|
13
14
|
export { useImageConverter } from './hooks';
|
|
15
|
+
export type { ImageType } from '@sudobility/svgr_types';
|
|
16
|
+
export { IMAGE_TYPES } from '@sudobility/svgr_types';
|
|
14
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACX,eAAe,EACf,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,QAAQ,CAAC;AAGhB,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG5C,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
export { APP_NAME, APP_DOMAIN, COMPANY_NAME, DEFAULT_API_URL, QUALITY_MIN, QUALITY_MAX, QUALITY_DEFAULT, SUPPORTED_IMAGE_TYPES, } from './config';
|
|
1
|
+
export { APP_NAME, APP_DOMAIN, COMPANY_NAME, DEFAULT_API_URL, QUALITY_MIN, QUALITY_MAX, QUALITY_DEFAULT, SUPPORTED_IMAGE_TYPES, MAX_IMAGE_DIMENSION, } from './config';
|
|
2
2
|
export { CONVERSION_PRESETS, DEFAULT_PRESET_ID, getPresetById, getDefaultPreset, } from './config';
|
|
3
3
|
export { SUPPORTED_LANGUAGES, SUPPORTED_LANGUAGE_CODES, DEFAULT_LANGUAGE, I18N_NAMESPACES, DEFAULT_NAMESPACE, LANGUAGE_HREFLANG_MAP, } from './i18n';
|
|
4
4
|
export { isValidImageType, getBaseName, getImageTypeDisplayName, getSupportedFormatsDisplay, validateImageFile, getAcceptedFileExtensions, MAX_FILE_SIZE_BYTES, MAX_FILE_SIZE_MB, } from './utils';
|
|
5
5
|
export { getSvgDimensions, getSvgFileSize, getSvgFileSizeKB } from './utils';
|
|
6
|
+
export { scaleImageWeb } from './utils';
|
|
6
7
|
export { useImageConverter } from './hooks';
|
|
8
|
+
export { IMAGE_TYPES } from '@sudobility/svgr_types';
|
|
7
9
|
//# 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":"AAEA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACX,eAAe,EACf,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAIlB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,QAAQ,CAAC;AAIhB,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAQxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ export type { ValidationResult } from './validation';
|
|
|
2
2
|
export { isValidImageType, getBaseName, getImageTypeDisplayName, getSupportedFormatsDisplay, validateImageFile, getAcceptedFileExtensions, MAX_FILE_SIZE_BYTES, MAX_FILE_SIZE_MB, } from './validation';
|
|
3
3
|
export type { SvgDimensions } from './svg';
|
|
4
4
|
export { getSvgDimensions, getSvgFileSize, getSvgFileSizeKB } from './svg';
|
|
5
|
+
export { scaleImageWeb } from './scale-image';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { isValidImageType, getBaseName, getImageTypeDisplayName, getSupportedFormatsDisplay, validateImageFile, getAcceptedFileExtensions, MAX_FILE_SIZE_BYTES, MAX_FILE_SIZE_MB, } from './validation';
|
|
2
2
|
export { getSvgDimensions, getSvgFileSize, getSvgFileSizeKB } from './svg';
|
|
3
|
+
export { scaleImageWeb } from './scale-image';
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scale-image.d.ts","sourceRoot":"","sources":["../../src/utils/scale-image.ts"],"names":[],"mappings":"AAWA,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,MAA4B,GACzC,OAAO,CAAC,MAAM,CAAC,CAiCjB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { MAX_IMAGE_DIMENSION } from '../config/constants';
|
|
2
|
+
export async function scaleImageWeb(base64, maxDimension = MAX_IMAGE_DIMENSION) {
|
|
3
|
+
return new Promise((resolve, reject) => {
|
|
4
|
+
const img = new Image();
|
|
5
|
+
img.onload = () => {
|
|
6
|
+
const { naturalWidth: w, naturalHeight: h } = img;
|
|
7
|
+
if (w <= maxDimension && h <= maxDimension) {
|
|
8
|
+
resolve(base64);
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const scale = Math.min(maxDimension / w, maxDimension / h);
|
|
12
|
+
const newW = Math.round(w * scale);
|
|
13
|
+
const newH = Math.round(h * scale);
|
|
14
|
+
const canvas = document.createElement('canvas');
|
|
15
|
+
canvas.width = newW;
|
|
16
|
+
canvas.height = newH;
|
|
17
|
+
const ctx = canvas.getContext('2d');
|
|
18
|
+
if (!ctx) {
|
|
19
|
+
resolve(base64);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
ctx.drawImage(img, 0, 0, newW, newH);
|
|
23
|
+
const dataUrl = canvas.toDataURL('image/png');
|
|
24
|
+
resolve(dataUrl.split(',')[1]);
|
|
25
|
+
};
|
|
26
|
+
img.onerror = () => reject(new Error('Failed to load image for scaling'));
|
|
27
|
+
img.src = `data:image/png;base64,${base64}`;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=scale-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scale-image.js","sourceRoot":"","sources":["../../src/utils/scale-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAW1D,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,eAAuB,mBAAmB;IAE1C,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;YAChB,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC;YAGlD,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;gBAC3C,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YAEnC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAErC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC9C,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC1E,GAAG,CAAC,GAAG,GAAG,yBAAyB,MAAM,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sudobility/svgr_lib",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.27",
|
|
4
4
|
"description": "Shared business logic library for SVGR web and React Native apps",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -35,16 +35,16 @@
|
|
|
35
35
|
"author": "John Huang",
|
|
36
36
|
"license": "BUSL-1.1",
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@sudobility/svgr_client": "^1.0.
|
|
39
|
-
"@sudobility/svgr_types": "^1.0.
|
|
38
|
+
"@sudobility/svgr_client": "^1.0.28",
|
|
39
|
+
"@sudobility/svgr_types": "^1.0.18",
|
|
40
40
|
"@sudobility/types": "^1.9.61",
|
|
41
41
|
"@tanstack/react-query": ">=5.0.0",
|
|
42
42
|
"react": ">=18.0.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@eslint/js": "^9.39.2",
|
|
46
|
-
"@sudobility/svgr_client": "^1.0.
|
|
47
|
-
"@sudobility/svgr_types": "^1.0.
|
|
46
|
+
"@sudobility/svgr_client": "^1.0.28",
|
|
47
|
+
"@sudobility/svgr_types": "^1.0.18",
|
|
48
48
|
"@sudobility/types": "^1.9.61",
|
|
49
49
|
"@tanstack/react-query": "^5.90.5",
|
|
50
50
|
"@types/node": "^24.9.1",
|