@sudobility/svgr_lib 0.0.3

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.
Files changed (45) hide show
  1. package/dist/config/constants.d.ts +10 -0
  2. package/dist/config/constants.d.ts.map +1 -0
  3. package/dist/config/constants.js +15 -0
  4. package/dist/config/constants.js.map +1 -0
  5. package/dist/config/index.d.ts +4 -0
  6. package/dist/config/index.d.ts.map +1 -0
  7. package/dist/config/index.js +2 -0
  8. package/dist/config/index.js.map +1 -0
  9. package/dist/config/types.d.ts +24 -0
  10. package/dist/config/types.d.ts.map +1 -0
  11. package/dist/config/types.js +2 -0
  12. package/dist/config/types.js.map +1 -0
  13. package/dist/hooks/index.d.ts +3 -0
  14. package/dist/hooks/index.d.ts.map +1 -0
  15. package/dist/hooks/index.js +2 -0
  16. package/dist/hooks/index.js.map +1 -0
  17. package/dist/hooks/useImageConverter.d.ts +16 -0
  18. package/dist/hooks/useImageConverter.d.ts.map +1 -0
  19. package/dist/hooks/useImageConverter.js +42 -0
  20. package/dist/hooks/useImageConverter.js.map +1 -0
  21. package/dist/i18n/config.d.ts +13 -0
  22. package/dist/i18n/config.d.ts.map +1 -0
  23. package/dist/i18n/config.js +94 -0
  24. package/dist/i18n/config.js.map +1 -0
  25. package/dist/i18n/index.d.ts +3 -0
  26. package/dist/i18n/index.d.ts.map +1 -0
  27. package/dist/i18n/index.js +2 -0
  28. package/dist/i18n/index.js.map +1 -0
  29. package/dist/index.d.ts +11 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +6 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/utils/index.d.ts +4 -0
  34. package/dist/utils/index.d.ts.map +1 -0
  35. package/dist/utils/index.js +3 -0
  36. package/dist/utils/index.js.map +1 -0
  37. package/dist/utils/svg.d.ts +8 -0
  38. package/dist/utils/svg.d.ts.map +1 -0
  39. package/dist/utils/svg.js +27 -0
  40. package/dist/utils/svg.js.map +1 -0
  41. package/dist/utils/validation.d.ts +3 -0
  42. package/dist/utils/validation.d.ts.map +1 -0
  43. package/dist/utils/validation.js +8 -0
  44. package/dist/utils/validation.js.map +1 -0
  45. package/package.json +63 -0
@@ -0,0 +1,10 @@
1
+ export declare const APP_NAME = "SVGR";
2
+ export declare const APP_DOMAIN = "svgr.app";
3
+ export declare const COMPANY_NAME = "Sudobility Inc.";
4
+ export declare const DEFAULT_API_URL = "https://api.svgr.app";
5
+ export declare const QUALITY_MIN = 1;
6
+ export declare const QUALITY_MAX = 10;
7
+ export declare const QUALITY_DEFAULT = 5;
8
+ export declare const SUPPORTED_IMAGE_TYPES: readonly ["image/png", "image/jpeg", "image/webp", "image/bmp", "image/gif"];
9
+ export type SupportedImageType = (typeof SUPPORTED_IMAGE_TYPES)[number];
10
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,UAAU,aAAa,CAAC;AACrC,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAE9C,eAAO,MAAM,eAAe,yBAAyB,CAAC;AAEtD,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,eAAO,MAAM,qBAAqB,8EAMxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ export const APP_NAME = 'SVGR';
2
+ export const APP_DOMAIN = 'svgr.app';
3
+ export const COMPANY_NAME = 'Sudobility Inc.';
4
+ export const DEFAULT_API_URL = 'https://api.svgr.app';
5
+ export const QUALITY_MIN = 1;
6
+ export const QUALITY_MAX = 10;
7
+ export const QUALITY_DEFAULT = 5;
8
+ export const SUPPORTED_IMAGE_TYPES = [
9
+ 'image/png',
10
+ 'image/jpeg',
11
+ 'image/webp',
12
+ 'image/bmp',
13
+ 'image/gif',
14
+ ];
15
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC/B,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAEtD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,WAAW;CACH,CAAC"}
@@ -0,0 +1,4 @@
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';
3
+ export type { SupportedImageType } from './constants';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { APP_NAME, APP_DOMAIN, COMPANY_NAME, DEFAULT_API_URL, QUALITY_MIN, QUALITY_MAX, QUALITY_DEFAULT, SUPPORTED_IMAGE_TYPES, } from './constants';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,GACtB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,24 @@
1
+ export interface SvgrAppConfig {
2
+ apiUrl: string;
3
+ appName: string;
4
+ appDomain: string;
5
+ companyName: string;
6
+ firebase: FirebaseConfig;
7
+ revenueCat?: RevenueCatConfig;
8
+ }
9
+ export interface FirebaseConfig {
10
+ apiKey: string;
11
+ authDomain: string;
12
+ projectId: string;
13
+ storageBucket: string;
14
+ messagingSenderId: string;
15
+ appId: string;
16
+ measurementId?: string;
17
+ }
18
+ export interface RevenueCatConfig {
19
+ apiKeyApple?: string;
20
+ apiKeyGoogle?: string;
21
+ offerId: string;
22
+ entitlementId: string;
23
+ }
24
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export type { ImageConverterState, UseImageConverterReturn, } from './useImageConverter';
2
+ export { useImageConverter } from './useImageConverter';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useImageConverter } from './useImageConverter';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { SvgrClient } from '@sudobility/svgr_client';
2
+ export interface ImageConverterState {
3
+ quality: number;
4
+ transparentBg: boolean;
5
+ svgResult: string | null;
6
+ error: string | null;
7
+ isConverting: boolean;
8
+ }
9
+ export interface UseImageConverterReturn extends ImageConverterState {
10
+ setQuality: (q: number) => void;
11
+ setTransparentBg: (v: boolean) => void;
12
+ convert: (base64: string, filename: string) => void;
13
+ reset: () => void;
14
+ }
15
+ export declare function useImageConverter(client: SvgrClient): UseImageConverterReturn;
16
+ //# sourceMappingURL=useImageConverter.d.ts.map
@@ -0,0 +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;AAG1D,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,gBAAgB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,uBAAuB,CAgD7E"}
@@ -0,0 +1,42 @@
1
+ import { useCallback, useState } from 'react';
2
+ import { useConvert } from '@sudobility/svgr_client';
3
+ import { QUALITY_DEFAULT } from '../config/constants';
4
+ export function useImageConverter(client) {
5
+ const convertMutation = useConvert(client);
6
+ const [quality, setQuality] = useState(QUALITY_DEFAULT);
7
+ const [transparentBg, setTransparentBg] = useState(false);
8
+ const [svgResult, setSvgResult] = useState(null);
9
+ const [error, setError] = useState(null);
10
+ const convert = useCallback((base64, filename) => {
11
+ setError(null);
12
+ convertMutation.mutate({ original: base64, filename, quality, transparentBg }, {
13
+ onSuccess: response => {
14
+ if (response.success && response.data) {
15
+ setSvgResult(response.data.svg);
16
+ }
17
+ else {
18
+ setError(response.error || 'Conversion failed');
19
+ }
20
+ },
21
+ onError: err => {
22
+ setError(err instanceof Error ? err.message : 'Conversion failed');
23
+ },
24
+ });
25
+ }, [convertMutation, quality, transparentBg]);
26
+ const reset = useCallback(() => {
27
+ setSvgResult(null);
28
+ setError(null);
29
+ }, []);
30
+ return {
31
+ quality,
32
+ transparentBg,
33
+ svgResult,
34
+ error,
35
+ isConverting: convertMutation.isPending,
36
+ setQuality,
37
+ setTransparentBg,
38
+ convert,
39
+ reset,
40
+ };
41
+ }
42
+ //# sourceMappingURL=useImageConverter.js.map
@@ -0,0 +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;AAiBtD,MAAM,UAAU,iBAAiB,CAAC,MAAkB;IAClD,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAE3C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IACxD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,MAAc,EAAE,QAAgB,EAAE,EAAE;QACnC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,eAAe,CAAC,MAAM,CACpB,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,EACtD;YACE,SAAS,EAAE,QAAQ,CAAC,EAAE;gBACpB,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACtC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,QAAQ,CACL,QAA+B,CAAC,KAAK,IAAI,mBAAmB,CAC9D,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,EAAE,GAAG,CAAC,EAAE;gBACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;YACrE,CAAC;SACF,CACF,CAAC;IACJ,CAAC,EACD,CAAC,eAAe,EAAE,OAAO,EAAE,aAAa,CAAC,CAC1C,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,OAAO;QACP,aAAa;QACb,SAAS;QACT,KAAK;QACL,YAAY,EAAE,eAAe,CAAC,SAAS;QACvC,UAAU;QACV,gBAAgB;QAChB,OAAO;QACP,KAAK;KACN,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ export interface LanguageInfo {
2
+ code: string;
3
+ name: string;
4
+ nativeName: string;
5
+ hreflang: string;
6
+ }
7
+ export declare const SUPPORTED_LANGUAGES: LanguageInfo[];
8
+ export declare const SUPPORTED_LANGUAGE_CODES: string[];
9
+ export declare const DEFAULT_LANGUAGE = "en";
10
+ export declare const I18N_NAMESPACES: readonly ["svgr", "auth"];
11
+ export declare const DEFAULT_NAMESPACE = "svgr";
12
+ export declare const LANGUAGE_HREFLANG_MAP: Record<string, string>;
13
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/i18n/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,EAAE,YAAY,EAuF7C,CAAC;AAEF,eAAO,MAAM,wBAAwB,UAAuC,CAAC;AAE7E,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,eAAO,MAAM,eAAe,2BAA4B,CAAC;AACzD,eAAO,MAAM,iBAAiB,SAAS,CAAC;AAExC,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAExD,CAAC"}
@@ -0,0 +1,94 @@
1
+ export const SUPPORTED_LANGUAGES = [
2
+ { code: 'en', name: 'English', nativeName: 'English', hreflang: 'en' },
3
+ {
4
+ code: 'zh',
5
+ name: 'Chinese (Simplified)',
6
+ nativeName: '\u4e2d\u6587(\u7b80\u4f53)',
7
+ hreflang: 'zh-Hans',
8
+ },
9
+ {
10
+ code: 'zh-hant',
11
+ name: 'Chinese (Traditional)',
12
+ nativeName: '\u4e2d\u6587(\u7e41\u9ad4)',
13
+ hreflang: 'zh-Hant',
14
+ },
15
+ {
16
+ code: 'ja',
17
+ name: 'Japanese',
18
+ nativeName: '\u65e5\u672c\u8a9e',
19
+ hreflang: 'ja',
20
+ },
21
+ {
22
+ code: 'ko',
23
+ name: 'Korean',
24
+ nativeName: '\ud55c\uad6d\uc5b4',
25
+ hreflang: 'ko',
26
+ },
27
+ {
28
+ code: 'es',
29
+ name: 'Spanish',
30
+ nativeName: 'Espa\u00f1ol',
31
+ hreflang: 'es',
32
+ },
33
+ {
34
+ code: 'fr',
35
+ name: 'French',
36
+ nativeName: 'Fran\u00e7ais',
37
+ hreflang: 'fr',
38
+ },
39
+ { code: 'de', name: 'German', nativeName: 'Deutsch', hreflang: 'de' },
40
+ {
41
+ code: 'it',
42
+ name: 'Italian',
43
+ nativeName: 'Italiano',
44
+ hreflang: 'it',
45
+ },
46
+ {
47
+ code: 'pt',
48
+ name: 'Portuguese',
49
+ nativeName: 'Portugu\u00eas',
50
+ hreflang: 'pt',
51
+ },
52
+ {
53
+ code: 'ru',
54
+ name: 'Russian',
55
+ nativeName: '\u0420\u0443\u0441\u0441\u043a\u0438\u0439',
56
+ hreflang: 'ru',
57
+ },
58
+ {
59
+ code: 'ar',
60
+ name: 'Arabic',
61
+ nativeName: '\u0627\u0644\u0639\u0631\u0628\u064a\u0629',
62
+ hreflang: 'ar',
63
+ },
64
+ {
65
+ code: 'sv',
66
+ name: 'Swedish',
67
+ nativeName: 'Svenska',
68
+ hreflang: 'sv',
69
+ },
70
+ {
71
+ code: 'th',
72
+ name: 'Thai',
73
+ nativeName: '\u0e44\u0e17\u0e22',
74
+ hreflang: 'th',
75
+ },
76
+ {
77
+ code: 'uk',
78
+ name: 'Ukrainian',
79
+ nativeName: '\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430',
80
+ hreflang: 'uk',
81
+ },
82
+ {
83
+ code: 'vi',
84
+ name: 'Vietnamese',
85
+ nativeName: 'Ti\u1ebfng Vi\u1ec7t',
86
+ hreflang: 'vi',
87
+ },
88
+ ];
89
+ export const SUPPORTED_LANGUAGE_CODES = SUPPORTED_LANGUAGES.map(l => l.code);
90
+ export const DEFAULT_LANGUAGE = 'en';
91
+ export const I18N_NAMESPACES = ['svgr', 'auth'];
92
+ export const DEFAULT_NAMESPACE = 'svgr';
93
+ export const LANGUAGE_HREFLANG_MAP = Object.fromEntries(SUPPORTED_LANGUAGES.map(l => [l.code, l.hreflang]));
94
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/i18n/config.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IACjD,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtE;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,sBAAsB;QAC5B,UAAU,EAAE,4BAA4B;QACxC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,uBAAuB;QAC7B,UAAU,EAAE,4BAA4B;QACxC,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,oBAAoB;QAChC,QAAQ,EAAE,IAAI;KACf;IACD;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,oBAAoB;QAChC,QAAQ,EAAE,IAAI;KACf;IACD;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,IAAI;KACf;IACD;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,eAAe;QAC3B,QAAQ,EAAE,IAAI;KACf;IACD,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrE;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,IAAI;KACf;IACD;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,gBAAgB;QAC5B,QAAQ,EAAE,IAAI;KACf;IACD;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,4CAA4C;QACxD,QAAQ,EAAE,IAAI;KACf;IACD;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,4CAA4C;QACxD,QAAQ,EAAE,IAAI;KACf;IACD;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,IAAI;KACf;IACD;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,oBAAoB;QAChC,QAAQ,EAAE,IAAI;KACf;IACD;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,8DAA8D;QAC1E,QAAQ,EAAE,IAAI;KACf;IACD;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,sBAAsB;QAClC,QAAQ,EAAE,IAAI;KACf;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAErC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AACzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAExC,MAAM,CAAC,MAAM,qBAAqB,GAA2B,MAAM,CAAC,WAAW,CAC7E,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CACnD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type { LanguageInfo } from './config';
2
+ export { SUPPORTED_LANGUAGES, SUPPORTED_LANGUAGE_CODES, DEFAULT_LANGUAGE, I18N_NAMESPACES, DEFAULT_NAMESPACE, LANGUAGE_HREFLANG_MAP, } from './config';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { SUPPORTED_LANGUAGES, SUPPORTED_LANGUAGE_CODES, DEFAULT_LANGUAGE, I18N_NAMESPACES, DEFAULT_NAMESPACE, LANGUAGE_HREFLANG_MAP, } from './config';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,11 @@
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';
3
+ export type { SupportedImageType } from './config';
4
+ export type { LanguageInfo } from './i18n';
5
+ export { SUPPORTED_LANGUAGES, SUPPORTED_LANGUAGE_CODES, DEFAULT_LANGUAGE, I18N_NAMESPACES, DEFAULT_NAMESPACE, LANGUAGE_HREFLANG_MAP, } from './i18n';
6
+ export { isValidImageType, getBaseName } from './utils';
7
+ export type { SvgDimensions } from './utils';
8
+ export { getSvgDimensions, getSvgFileSize, getSvgFileSizeKB } from './utils';
9
+ export type { ImageConverterState, UseImageConverterReturn } from './hooks';
10
+ export { useImageConverter } from './hooks';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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,GACtB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,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,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACxD,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG7E,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export { APP_NAME, APP_DOMAIN, COMPANY_NAME, DEFAULT_API_URL, QUALITY_MIN, QUALITY_MAX, QUALITY_DEFAULT, SUPPORTED_IMAGE_TYPES, } from './config';
2
+ export { SUPPORTED_LANGUAGES, SUPPORTED_LANGUAGE_CODES, DEFAULT_LANGUAGE, I18N_NAMESPACES, DEFAULT_NAMESPACE, LANGUAGE_HREFLANG_MAP, } from './i18n';
3
+ export { isValidImageType, getBaseName } from './utils';
4
+ export { getSvgDimensions, getSvgFileSize, getSvgFileSizeKB } from './utils';
5
+ export { useImageConverter } from './hooks';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,GACtB,MAAM,UAAU,CAAC;AAKlB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAI7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { isValidImageType, getBaseName } from './validation';
2
+ export type { SvgDimensions } from './svg';
3
+ export { getSvgDimensions, getSvgFileSize, getSvgFileSizeKB } from './svg';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { isValidImageType, getBaseName } from './validation';
2
+ export { getSvgDimensions, getSvgFileSize, getSvgFileSizeKB } from './svg';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface SvgDimensions {
2
+ width: number;
3
+ height: number;
4
+ }
5
+ export declare function getSvgDimensions(svgString: string): SvgDimensions;
6
+ export declare function getSvgFileSize(svgString: string): number;
7
+ export declare function getSvgFileSizeKB(svgString: string): string;
8
+ //# sourceMappingURL=svg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../src/utils/svg.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAuBjE;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D"}
@@ -0,0 +1,27 @@
1
+ const DEFAULT_DIMENSIONS = { width: 800, height: 600 };
2
+ export function getSvgDimensions(svgString) {
3
+ const widthMatch = svgString.match(/<svg[^>]*\bwidth=["']([^"']+)["']/);
4
+ const heightMatch = svgString.match(/<svg[^>]*\bheight=["']([^"']+)["']/);
5
+ if (widthMatch && heightMatch) {
6
+ const width = parseFloat(widthMatch[1]);
7
+ const height = parseFloat(heightMatch[1]);
8
+ if (width > 0 && height > 0) {
9
+ return { width, height };
10
+ }
11
+ }
12
+ const viewBoxMatch = svgString.match(/<svg[^>]*\bviewBox=["']([^"']+)["']/);
13
+ if (viewBoxMatch) {
14
+ const parts = viewBoxMatch[1].split(/[\s,]+/).map(Number);
15
+ if (parts.length === 4 && parts[2] > 0 && parts[3] > 0) {
16
+ return { width: parts[2], height: parts[3] };
17
+ }
18
+ }
19
+ return DEFAULT_DIMENSIONS;
20
+ }
21
+ export function getSvgFileSize(svgString) {
22
+ return new TextEncoder().encode(svgString).byteLength;
23
+ }
24
+ export function getSvgFileSizeKB(svgString) {
25
+ return (getSvgFileSize(svgString) / 1024).toFixed(1);
26
+ }
27
+ //# sourceMappingURL=svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg.js","sourceRoot":"","sources":["../../src/utils/svg.ts"],"names":[],"mappings":"AAKA,MAAM,kBAAkB,GAAkB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAEtE,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAEhD,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAE1E,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAGD,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC5E,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function isValidImageType(mimeType: string): boolean;
2
+ export declare function getBaseName(filename?: string): string;
3
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAErD"}
@@ -0,0 +1,8 @@
1
+ import { SUPPORTED_IMAGE_TYPES } from '../config/constants';
2
+ export function isValidImageType(mimeType) {
3
+ return SUPPORTED_IMAGE_TYPES.includes(mimeType);
4
+ }
5
+ export function getBaseName(filename) {
6
+ return filename ? filename.replace(/\.[^.]+$/, '') : 'converted';
7
+ }
8
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAQ,qBAA2C,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAiB;IAC3C,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AACnE,CAAC"}
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@sudobility/svgr_lib",
3
+ "version": "0.0.3",
4
+ "description": "Shared business logic library for SVGR web and React Native apps",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "publishConfig": {
9
+ "access": "restricted"
10
+ },
11
+ "files": [
12
+ "dist/**/*"
13
+ ],
14
+ "scripts": {
15
+ "build": "bunx tsc -p tsconfig.build.json",
16
+ "build:watch": "bunx tsc --watch",
17
+ "clean": "rm -rf dist",
18
+ "prepublishOnly": "bun run clean && bun run build",
19
+ "test": "vitest run",
20
+ "test:watch": "vitest",
21
+ "lint": "bunx eslint src --ext .ts,.tsx",
22
+ "lint:fix": "bunx eslint src --ext .ts,.tsx --fix",
23
+ "format": "bunx prettier --write src/**/*.ts",
24
+ "format:check": "bunx prettier --check src/**/*.ts",
25
+ "typecheck": "bunx tsc --noEmit"
26
+ },
27
+ "keywords": [
28
+ "svgr",
29
+ "svg",
30
+ "converter",
31
+ "business-logic",
32
+ "react",
33
+ "typescript"
34
+ ],
35
+ "author": "John Huang",
36
+ "license": "BUSL-1.1",
37
+ "peerDependencies": {
38
+ "@sudobility/svgr_client": "^1.0.8",
39
+ "@sudobility/svgr_types": "^1.0.3",
40
+ "@sudobility/types": "^1.9.50",
41
+ "@tanstack/react-query": ">=5.0.0",
42
+ "react": ">=18.0.0"
43
+ },
44
+ "devDependencies": {
45
+ "@eslint/js": "^9.39.2",
46
+ "@sudobility/svgr_client": "^1.0.8",
47
+ "@sudobility/svgr_types": "^1.0.3",
48
+ "@sudobility/types": "^1.9.50",
49
+ "@tanstack/react-query": "^5.90.5",
50
+ "@types/node": "^24.9.1",
51
+ "@types/react": "^19.2.2",
52
+ "@typescript-eslint/eslint-plugin": "^8.46.2",
53
+ "@typescript-eslint/parser": "^8.46.2",
54
+ "eslint": "^9.38.0",
55
+ "eslint-config-prettier": "^10.1.8",
56
+ "eslint-plugin-prettier": "^5.5.4",
57
+ "eslint-plugin-react-hooks": "^7.0.1",
58
+ "prettier": "^3.6.2",
59
+ "react": "^19.2.1",
60
+ "typescript": "^5.9.3",
61
+ "vitest": "^4.0.4"
62
+ }
63
+ }