@windrun-huaiin/lib 6.2.1 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,8 +16,8 @@ declare const ALL_LOCALE_LABELS: {
16
16
  readonly th: "ไทย";
17
17
  readonly vi: "Tiếng Việt";
18
18
  };
19
- type SupportedLocale = keyof typeof ALL_LOCALE_LABELS;
20
- declare function createCommonAppConfig(options?: {
19
+ export type SupportedLocale = keyof typeof ALL_LOCALE_LABELS;
20
+ export declare function createCommonAppConfig(options?: {
21
21
  locales?: string[];
22
22
  defaultLocale?: string;
23
23
  }): {
@@ -89,7 +89,7 @@ declare function createCommonAppConfig(options?: {
89
89
  legal: string;
90
90
  };
91
91
  };
92
- declare function createI18nHelpers(i18nConfig: ReturnType<typeof createCommonAppConfig>['i18n']): {
92
+ export declare function createI18nHelpers(i18nConfig: ReturnType<typeof createCommonAppConfig>['i18n']): {
93
93
  isSupportedLocale: (locale: string) => locale is (typeof i18nConfig.locales)[number];
94
94
  getValidLocale: (locale: string) => (typeof i18nConfig.locales)[number];
95
95
  generatedLocales: {
@@ -97,7 +97,7 @@ declare function createI18nHelpers(i18nConfig: ReturnType<typeof createCommonApp
97
97
  locale: string;
98
98
  }[];
99
99
  };
100
- declare const LOCALE_PRESETS: {
100
+ export declare const LOCALE_PRESETS: {
101
101
  EN_ONLY: {
102
102
  locales: string[];
103
103
  defaultLocale: string;
@@ -123,5 +123,5 @@ declare const LOCALE_PRESETS: {
123
123
  defaultLocale: string;
124
124
  };
125
125
  };
126
-
127
- export { LOCALE_PRESETS, type SupportedLocale, createCommonAppConfig, createI18nHelpers };
126
+ export {};
127
+ //# sourceMappingURL=common-app-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-app-config.d.ts","sourceRoot":"","sources":["../src/common-app-config.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAiBb,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAa7D,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE;IAE9C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;iBAqByB,SAAS,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgE1C;AAGD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC;gCACzD,MAAM,KAAG,MAAM,IAAI,CAAA,OAAO,UAAU,CAAC,OAAO,EAAC,MAAM,CAAC;6BAIvD,MAAM,KAAG,CAAA,OAAO,UAAU,CAAC,OAAO,EAAC,MAAM,CAAC;;;;;EAc3E;AAGD,eAAO,MAAM,cAAc;;iBAEK,MAAM,EAAE;uBAAyB,MAAM;;;iBAGnC,MAAM,EAAE;uBAAyB,MAAM;;;iBAG5B,MAAM,EAAE;uBAAyB,MAAM;;;iBAG/B,MAAM,EAAE;uBAAyB,MAAM;;;iBAGT,MAAM,EAAE;uBAAyB,MAAM;;;iBAGnG,MAAM,EAAE;uBAAyB,MAAM;;CAC/D,CAAC"}
@@ -1,157 +1,137 @@
1
1
  'use strict';
2
2
 
3
- var __defProp = Object.defineProperty;
4
- var __defProps = Object.defineProperties;
5
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
- var __spreadValues = (a, b) => {
11
- for (var prop in b || (b = {}))
12
- if (__hasOwnProp.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- if (__getOwnPropSymbols)
15
- for (var prop of __getOwnPropSymbols(b)) {
16
- if (__propIsEnum.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- }
19
- return a;
20
- };
21
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
-
23
- // src/common-app-config.ts
24
- var ALL_LOCALE_LABELS = {
25
- en: "English",
26
- zh: "\u7B80\u4F53\u4E2D\u6587",
27
- ja: "\u65E5\u672C\u8A9E",
28
- ko: "\uD55C\uAD6D\uC5B4",
29
- fr: "Fran\xE7ais",
30
- de: "Deutsch",
31
- es: "Espa\xF1ol",
32
- it: "Italiano",
33
- pt: "Portugu\xEAs",
34
- tr: "T\xFCrk\xE7e",
35
- pl: "Polski",
36
- ru: "\u0420\u0443\u0441\u0441\u043A\u0438\u0439",
37
- ar: "\u0627\u0644\u0639\u0631\u0628\u064A\u0629",
38
- hi: "\u0939\u093F\u0928\u094D\u0926\u0940",
39
- th: "\u0E44\u0E17\u0E22",
40
- vi: "Ti\u1EBFng Vi\u1EC7t"
3
+ // Supported languages and their labels
4
+ const ALL_LOCALE_LABELS = {
5
+ en: "English",
6
+ zh: "简体中文",
7
+ ja: "日本語",
8
+ ko: "한국어",
9
+ fr: "Français",
10
+ de: "Deutsch",
11
+ es: "Español",
12
+ it: "Italiano",
13
+ pt: "Português",
14
+ tr: "Türkçe",
15
+ pl: "Polski",
16
+ ru: "Русский",
17
+ ar: "العربية",
18
+ hi: "हिन्दी",
19
+ th: "ไทย",
20
+ vi: "Tiếng Việt",
41
21
  };
22
+ // Helper function to get language configuration from environment variables
42
23
  function getLocaleLabels(locales) {
43
- return Object.fromEntries(
44
- locales.map((locale) => [
45
- locale,
46
- ALL_LOCALE_LABELS[locale] || locale
47
- ])
48
- );
24
+ return Object.fromEntries(locales.map(locale => [
25
+ locale,
26
+ ALL_LOCALE_LABELS[locale] || locale
27
+ ]));
49
28
  }
29
+ // Common application configuration creation function
50
30
  function createCommonAppConfig(options) {
51
- var _a, _b, _c, _d, _e;
52
- const locales = (_c = (_b = options == null ? void 0 : options.locales) != null ? _b : (_a = process.env.NEXT_PUBLIC_I18N_LOCALES) == null ? void 0 : _a.split(",").map((s) => s.trim())) != null ? _c : ["en", "zh"];
53
- const defaultLocale = (_e = (_d = options == null ? void 0 : options.defaultLocale) != null ? _d : process.env.NEXT_PUBLIC_I18N_DEFAULT_LOCALE) != null ? _e : "en";
54
- const storagePrefix = process.env.NEXT_PUBLIC_I18N_STORAGE_PREFIX || "WINDRUN-HUAIIN";
55
- const config = {
56
- // Basic configuration
57
- baseUrl: process.env.NEXT_PUBLIC_BASE_URL || "",
58
- githubBaseUrl: process.env.NEXT_PUBLIC_GITHUB_BASE_URL || "",
59
- github: process.env.NEXT_PUBLIC_GITHUB || "",
60
- githubInfoToken: process.env.NEXT_PUBLIC_FUMA_GITHUB_TOKEN || "",
61
- // Internationalization configuration
62
- i18n: {
63
- locales,
64
- defaultLocale,
65
- localeLabels: getLocaleLabels(locales),
66
- detector: {
67
- storageKey: process.env.NEXT_PUBLIC_I18N_STORAGE_KEY || "language-preference-status",
68
- autoCloseTimeout: parseInt(process.env.NEXT_PUBLIC_I18N_AUTO_CLOSE_TIMEOUT || "10000"),
69
- expirationDays: parseInt(process.env.NEXT_PUBLIC_I18N_EXPIRATION_DAYS || "30"),
70
- storagePrefix
71
- },
72
- messageRoot: process.env.NEXT_PUBLIC_I18N_MESSAGE_ROOT || "messages"
73
- },
74
- // Style configuration
75
- style: {
76
- icon: {
77
- uniformColor: process.env.NEXT_PUBLIC_STYLE_ICON_COLOR || "text-purple-500"
78
- },
79
- showBanner: process.env.NEXT_PUBLIC_STYLE_SHOW_BANNER === "true",
80
- clerkAuthInModal: process.env.NEXT_PUBLIC_STYLE_CLERK_AUTH_IN_MODAL === "true",
81
- clerkPageBanner: process.env.NEXT_PUBLIC_STYLE_CLERK_PAGE_BANNER === "true",
82
- watermark: {
83
- enabled: process.env.NEXT_PUBLIC_STYLE_WATERMARK_ENABLED === "true",
84
- text: process.env.NEXT_PUBLIC_STYLE_WATERMARK_TEXT || "\u5DFD\u5DDD\xB7\u6000\u56E0"
85
- },
86
- cdnBaseUrl: process.env.NEXT_PUBLIC_STYLE_CDN_BASE_URL || "https://r2.d8ger.com",
87
- cdnProxyUrl: process.env.NEXT_PUBLIC_STYLE_CDN_PROXY_URL || "https://r2-explorer-template.zcy777et.workers.dev/proxy",
88
- placeHolder: {
89
- image: process.env.NEXT_PUBLIC_STYLE_PLACEHOLDER_IMAGE || "/default.webp"
90
- }
91
- },
92
- // Clerk configuration
93
- clerk: {
94
- signInUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_IN_URL || "/sign-in",
95
- fallbackSignInUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL || "/",
96
- signUpUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_UP_URL || "/sign-up",
97
- fallbackSignUpUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL || "/",
98
- waitlistUrl: process.env.NEXT_PUBLIC_CLERK_WAITLIST_URL || "/waitlist",
99
- debug: process.env.CLERK_DEBUG === "true"
100
- },
101
- // MDX source file directory configuration
102
- mdxSourceDir: {
103
- docs: process.env.NEXT_PUBLIC_MDX_DOCS_DIR || "src/mdx/docs",
104
- blog: process.env.NEXT_PUBLIC_MDX_BLOG_DIR || "src/mdx/blog",
105
- legal: process.env.NEXT_PUBLIC_MDX_LEGAL_DIR || "src/mdx/legal"
106
- }
107
- };
108
- const shortcuts = {
109
- iconColor: config.style.icon.uniformColor,
110
- watermark: config.style.watermark,
111
- showBanner: config.style.showBanner,
112
- clerkPageBanner: config.style.clerkPageBanner,
113
- clerkAuthInModal: config.style.clerkAuthInModal,
114
- placeHolderImage: config.style.placeHolder.image,
115
- clerk: config.clerk
116
- };
117
- return __spreadProps(__spreadValues({}, config), {
118
- shortcuts
119
- });
31
+ var _a, _b, _c, _d, _e;
32
+ // Priority: manual configuration > environment variables > default values
33
+ const locales = (_c = (_a = options === null || options === void 0 ? void 0 : options.locales) !== null && _a !== void 0 ? _a : (_b = process.env.NEXT_PUBLIC_I18N_LOCALES) === null || _b === void 0 ? void 0 : _b.split(',').map(s => s.trim())) !== null && _c !== void 0 ? _c : ['en', 'zh'];
34
+ const defaultLocale = (_e = (_d = options === null || options === void 0 ? void 0 : options.defaultLocale) !== null && _d !== void 0 ? _d : process.env.NEXT_PUBLIC_I18N_DEFAULT_LOCALE) !== null && _e !== void 0 ? _e : 'en';
35
+ const storagePrefix = process.env.NEXT_PUBLIC_I18N_STORAGE_PREFIX || 'WINDRUN-HUAIIN';
36
+ const config = {
37
+ // Basic configuration
38
+ baseUrl: process.env.NEXT_PUBLIC_BASE_URL || '',
39
+ githubBaseUrl: process.env.NEXT_PUBLIC_GITHUB_BASE_URL || '',
40
+ github: process.env.NEXT_PUBLIC_GITHUB || '',
41
+ githubInfoToken: process.env.NEXT_PUBLIC_FUMA_GITHUB_TOKEN || '',
42
+ // Internationalization configuration
43
+ i18n: {
44
+ locales: locales,
45
+ defaultLocale,
46
+ localeLabels: getLocaleLabels(locales),
47
+ detector: {
48
+ storageKey: process.env.NEXT_PUBLIC_I18N_STORAGE_KEY || 'language-preference-status',
49
+ autoCloseTimeout: parseInt(process.env.NEXT_PUBLIC_I18N_AUTO_CLOSE_TIMEOUT || '10000'),
50
+ expirationDays: parseInt(process.env.NEXT_PUBLIC_I18N_EXPIRATION_DAYS || '30'),
51
+ storagePrefix
52
+ },
53
+ messageRoot: process.env.NEXT_PUBLIC_I18N_MESSAGE_ROOT || 'messages',
54
+ },
55
+ // Style configuration
56
+ style: {
57
+ icon: {
58
+ uniformColor: process.env.NEXT_PUBLIC_STYLE_ICON_COLOR || "text-purple-500"
59
+ },
60
+ showBanner: process.env.NEXT_PUBLIC_STYLE_SHOW_BANNER === 'true',
61
+ clerkAuthInModal: process.env.NEXT_PUBLIC_STYLE_CLERK_AUTH_IN_MODAL === 'true',
62
+ clerkPageBanner: process.env.NEXT_PUBLIC_STYLE_CLERK_PAGE_BANNER === 'true',
63
+ watermark: {
64
+ enabled: process.env.NEXT_PUBLIC_STYLE_WATERMARK_ENABLED === 'true',
65
+ text: process.env.NEXT_PUBLIC_STYLE_WATERMARK_TEXT || "巽川·怀因"
66
+ },
67
+ cdnBaseUrl: process.env.NEXT_PUBLIC_STYLE_CDN_BASE_URL || "https://r2.d8ger.com",
68
+ cdnProxyUrl: process.env.NEXT_PUBLIC_STYLE_CDN_PROXY_URL || "https://r2-explorer-template.zcy777et.workers.dev/proxy",
69
+ placeHolder: {
70
+ image: process.env.NEXT_PUBLIC_STYLE_PLACEHOLDER_IMAGE || "/default.webp"
71
+ }
72
+ },
73
+ // Clerk configuration
74
+ clerk: {
75
+ signInUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_IN_URL || "/sign-in",
76
+ fallbackSignInUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL || "/",
77
+ signUpUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_UP_URL || "/sign-up",
78
+ fallbackSignUpUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL || "/",
79
+ waitlistUrl: process.env.NEXT_PUBLIC_CLERK_WAITLIST_URL || "/waitlist",
80
+ debug: process.env.CLERK_DEBUG === 'true',
81
+ },
82
+ // MDX source file directory configuration
83
+ mdxSourceDir: {
84
+ docs: process.env.NEXT_PUBLIC_MDX_DOCS_DIR || "src/mdx/docs",
85
+ blog: process.env.NEXT_PUBLIC_MDX_BLOG_DIR || "src/mdx/blog",
86
+ legal: process.env.NEXT_PUBLIC_MDX_LEGAL_DIR || "src/mdx/legal"
87
+ },
88
+ };
89
+ // Convenient constants - avoid deep nested access
90
+ const shortcuts = {
91
+ iconColor: config.style.icon.uniformColor,
92
+ watermark: config.style.watermark,
93
+ showBanner: config.style.showBanner,
94
+ clerkPageBanner: config.style.clerkPageBanner,
95
+ clerkAuthInModal: config.style.clerkAuthInModal,
96
+ placeHolderImage: config.style.placeHolder.image,
97
+ clerk: config.clerk,
98
+ };
99
+ return Object.assign(Object.assign({}, config), { shortcuts });
120
100
  }
101
+ // Create internationalization helper functions
121
102
  function createI18nHelpers(i18nConfig) {
122
- function isSupportedLocale(locale) {
123
- return i18nConfig.locales.includes(locale);
124
- }
125
- function getValidLocale(locale) {
126
- return isSupportedLocale(locale) ? locale : i18nConfig.defaultLocale;
127
- }
128
- const generatedLocales = i18nConfig.locales.map((loc) => ({
129
- name: i18nConfig.localeLabels[loc] || loc,
130
- locale: loc
131
- }));
132
- return {
133
- isSupportedLocale,
134
- getValidLocale,
135
- generatedLocales
136
- };
103
+ function isSupportedLocale(locale) {
104
+ return i18nConfig.locales.includes(locale);
105
+ }
106
+ function getValidLocale(locale) {
107
+ return isSupportedLocale(locale) ? locale : i18nConfig.defaultLocale;
108
+ }
109
+ const generatedLocales = i18nConfig.locales.map((loc) => ({
110
+ name: i18nConfig.localeLabels[loc] || loc,
111
+ locale: loc,
112
+ }));
113
+ return {
114
+ isSupportedLocale,
115
+ getValidLocale,
116
+ generatedLocales
117
+ };
137
118
  }
138
- var LOCALE_PRESETS = {
139
- // Only support English
140
- EN_ONLY: { locales: ["en"], defaultLocale: "en" },
141
- // English and Chinese
142
- EN_ZH: { locales: ["en", "zh"], defaultLocale: "en" },
143
- // Main Asian languages
144
- ASIA: { locales: ["en", "zh", "ja", "ko"], defaultLocale: "en" },
145
- // Main European languages
146
- EUROPE: { locales: ["en", "fr", "de", "es", "it"], defaultLocale: "en" },
147
- // Globalization
148
- GLOBAL: { locales: ["en", "zh", "ja", "ko", "fr", "de", "es", "it", "pt", "ru"], defaultLocale: "en" },
149
- // No internationalization (only default language)
150
- NONE: { locales: [], defaultLocale: "en" }
119
+ // Convenient configuration presets
120
+ const LOCALE_PRESETS = {
121
+ // Only support English
122
+ EN_ONLY: { locales: ['en'], defaultLocale: 'en' },
123
+ // English and Chinese
124
+ EN_ZH: { locales: ['en', 'zh'], defaultLocale: 'en' },
125
+ // Main Asian languages
126
+ ASIA: { locales: ['en', 'zh', 'ja', 'ko'], defaultLocale: 'en' },
127
+ // Main European languages
128
+ EUROPE: { locales: ['en', 'fr', 'de', 'es', 'it'], defaultLocale: 'en' },
129
+ // Globalization
130
+ GLOBAL: { locales: ['en', 'zh', 'ja', 'ko', 'fr', 'de', 'es', 'it', 'pt', 'ru'], defaultLocale: 'en' },
131
+ // No internationalization (only default language)
132
+ NONE: { locales: [], defaultLocale: 'en' }
151
133
  };
152
134
 
153
135
  exports.LOCALE_PRESETS = LOCALE_PRESETS;
154
136
  exports.createCommonAppConfig = createCommonAppConfig;
155
137
  exports.createI18nHelpers = createI18nHelpers;
156
- //# sourceMappingURL=common-app-config.js.map
157
- //# sourceMappingURL=common-app-config.js.map
@@ -1,153 +1,133 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
-
21
- // src/common-app-config.ts
22
- var ALL_LOCALE_LABELS = {
23
- en: "English",
24
- zh: "\u7B80\u4F53\u4E2D\u6587",
25
- ja: "\u65E5\u672C\u8A9E",
26
- ko: "\uD55C\uAD6D\uC5B4",
27
- fr: "Fran\xE7ais",
28
- de: "Deutsch",
29
- es: "Espa\xF1ol",
30
- it: "Italiano",
31
- pt: "Portugu\xEAs",
32
- tr: "T\xFCrk\xE7e",
33
- pl: "Polski",
34
- ru: "\u0420\u0443\u0441\u0441\u043A\u0438\u0439",
35
- ar: "\u0627\u0644\u0639\u0631\u0628\u064A\u0629",
36
- hi: "\u0939\u093F\u0928\u094D\u0926\u0940",
37
- th: "\u0E44\u0E17\u0E22",
38
- vi: "Ti\u1EBFng Vi\u1EC7t"
1
+ // Supported languages and their labels
2
+ const ALL_LOCALE_LABELS = {
3
+ en: "English",
4
+ zh: "简体中文",
5
+ ja: "日本語",
6
+ ko: "한국어",
7
+ fr: "Français",
8
+ de: "Deutsch",
9
+ es: "Español",
10
+ it: "Italiano",
11
+ pt: "Português",
12
+ tr: "Türkçe",
13
+ pl: "Polski",
14
+ ru: "Русский",
15
+ ar: "العربية",
16
+ hi: "हिन्दी",
17
+ th: "ไทย",
18
+ vi: "Tiếng Việt",
39
19
  };
20
+ // Helper function to get language configuration from environment variables
40
21
  function getLocaleLabels(locales) {
41
- return Object.fromEntries(
42
- locales.map((locale) => [
43
- locale,
44
- ALL_LOCALE_LABELS[locale] || locale
45
- ])
46
- );
22
+ return Object.fromEntries(locales.map(locale => [
23
+ locale,
24
+ ALL_LOCALE_LABELS[locale] || locale
25
+ ]));
47
26
  }
27
+ // Common application configuration creation function
48
28
  function createCommonAppConfig(options) {
49
- var _a, _b, _c, _d, _e;
50
- const locales = (_c = (_b = options == null ? void 0 : options.locales) != null ? _b : (_a = process.env.NEXT_PUBLIC_I18N_LOCALES) == null ? void 0 : _a.split(",").map((s) => s.trim())) != null ? _c : ["en", "zh"];
51
- const defaultLocale = (_e = (_d = options == null ? void 0 : options.defaultLocale) != null ? _d : process.env.NEXT_PUBLIC_I18N_DEFAULT_LOCALE) != null ? _e : "en";
52
- const storagePrefix = process.env.NEXT_PUBLIC_I18N_STORAGE_PREFIX || "WINDRUN-HUAIIN";
53
- const config = {
54
- // Basic configuration
55
- baseUrl: process.env.NEXT_PUBLIC_BASE_URL || "",
56
- githubBaseUrl: process.env.NEXT_PUBLIC_GITHUB_BASE_URL || "",
57
- github: process.env.NEXT_PUBLIC_GITHUB || "",
58
- githubInfoToken: process.env.NEXT_PUBLIC_FUMA_GITHUB_TOKEN || "",
59
- // Internationalization configuration
60
- i18n: {
61
- locales,
62
- defaultLocale,
63
- localeLabels: getLocaleLabels(locales),
64
- detector: {
65
- storageKey: process.env.NEXT_PUBLIC_I18N_STORAGE_KEY || "language-preference-status",
66
- autoCloseTimeout: parseInt(process.env.NEXT_PUBLIC_I18N_AUTO_CLOSE_TIMEOUT || "10000"),
67
- expirationDays: parseInt(process.env.NEXT_PUBLIC_I18N_EXPIRATION_DAYS || "30"),
68
- storagePrefix
69
- },
70
- messageRoot: process.env.NEXT_PUBLIC_I18N_MESSAGE_ROOT || "messages"
71
- },
72
- // Style configuration
73
- style: {
74
- icon: {
75
- uniformColor: process.env.NEXT_PUBLIC_STYLE_ICON_COLOR || "text-purple-500"
76
- },
77
- showBanner: process.env.NEXT_PUBLIC_STYLE_SHOW_BANNER === "true",
78
- clerkAuthInModal: process.env.NEXT_PUBLIC_STYLE_CLERK_AUTH_IN_MODAL === "true",
79
- clerkPageBanner: process.env.NEXT_PUBLIC_STYLE_CLERK_PAGE_BANNER === "true",
80
- watermark: {
81
- enabled: process.env.NEXT_PUBLIC_STYLE_WATERMARK_ENABLED === "true",
82
- text: process.env.NEXT_PUBLIC_STYLE_WATERMARK_TEXT || "\u5DFD\u5DDD\xB7\u6000\u56E0"
83
- },
84
- cdnBaseUrl: process.env.NEXT_PUBLIC_STYLE_CDN_BASE_URL || "https://r2.d8ger.com",
85
- cdnProxyUrl: process.env.NEXT_PUBLIC_STYLE_CDN_PROXY_URL || "https://r2-explorer-template.zcy777et.workers.dev/proxy",
86
- placeHolder: {
87
- image: process.env.NEXT_PUBLIC_STYLE_PLACEHOLDER_IMAGE || "/default.webp"
88
- }
89
- },
90
- // Clerk configuration
91
- clerk: {
92
- signInUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_IN_URL || "/sign-in",
93
- fallbackSignInUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL || "/",
94
- signUpUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_UP_URL || "/sign-up",
95
- fallbackSignUpUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL || "/",
96
- waitlistUrl: process.env.NEXT_PUBLIC_CLERK_WAITLIST_URL || "/waitlist",
97
- debug: process.env.CLERK_DEBUG === "true"
98
- },
99
- // MDX source file directory configuration
100
- mdxSourceDir: {
101
- docs: process.env.NEXT_PUBLIC_MDX_DOCS_DIR || "src/mdx/docs",
102
- blog: process.env.NEXT_PUBLIC_MDX_BLOG_DIR || "src/mdx/blog",
103
- legal: process.env.NEXT_PUBLIC_MDX_LEGAL_DIR || "src/mdx/legal"
104
- }
105
- };
106
- const shortcuts = {
107
- iconColor: config.style.icon.uniformColor,
108
- watermark: config.style.watermark,
109
- showBanner: config.style.showBanner,
110
- clerkPageBanner: config.style.clerkPageBanner,
111
- clerkAuthInModal: config.style.clerkAuthInModal,
112
- placeHolderImage: config.style.placeHolder.image,
113
- clerk: config.clerk
114
- };
115
- return __spreadProps(__spreadValues({}, config), {
116
- shortcuts
117
- });
29
+ var _a, _b, _c, _d, _e;
30
+ // Priority: manual configuration > environment variables > default values
31
+ const locales = (_c = (_a = options === null || options === void 0 ? void 0 : options.locales) !== null && _a !== void 0 ? _a : (_b = process.env.NEXT_PUBLIC_I18N_LOCALES) === null || _b === void 0 ? void 0 : _b.split(',').map(s => s.trim())) !== null && _c !== void 0 ? _c : ['en', 'zh'];
32
+ const defaultLocale = (_e = (_d = options === null || options === void 0 ? void 0 : options.defaultLocale) !== null && _d !== void 0 ? _d : process.env.NEXT_PUBLIC_I18N_DEFAULT_LOCALE) !== null && _e !== void 0 ? _e : 'en';
33
+ const storagePrefix = process.env.NEXT_PUBLIC_I18N_STORAGE_PREFIX || 'WINDRUN-HUAIIN';
34
+ const config = {
35
+ // Basic configuration
36
+ baseUrl: process.env.NEXT_PUBLIC_BASE_URL || '',
37
+ githubBaseUrl: process.env.NEXT_PUBLIC_GITHUB_BASE_URL || '',
38
+ github: process.env.NEXT_PUBLIC_GITHUB || '',
39
+ githubInfoToken: process.env.NEXT_PUBLIC_FUMA_GITHUB_TOKEN || '',
40
+ // Internationalization configuration
41
+ i18n: {
42
+ locales: locales,
43
+ defaultLocale,
44
+ localeLabels: getLocaleLabels(locales),
45
+ detector: {
46
+ storageKey: process.env.NEXT_PUBLIC_I18N_STORAGE_KEY || 'language-preference-status',
47
+ autoCloseTimeout: parseInt(process.env.NEXT_PUBLIC_I18N_AUTO_CLOSE_TIMEOUT || '10000'),
48
+ expirationDays: parseInt(process.env.NEXT_PUBLIC_I18N_EXPIRATION_DAYS || '30'),
49
+ storagePrefix
50
+ },
51
+ messageRoot: process.env.NEXT_PUBLIC_I18N_MESSAGE_ROOT || 'messages',
52
+ },
53
+ // Style configuration
54
+ style: {
55
+ icon: {
56
+ uniformColor: process.env.NEXT_PUBLIC_STYLE_ICON_COLOR || "text-purple-500"
57
+ },
58
+ showBanner: process.env.NEXT_PUBLIC_STYLE_SHOW_BANNER === 'true',
59
+ clerkAuthInModal: process.env.NEXT_PUBLIC_STYLE_CLERK_AUTH_IN_MODAL === 'true',
60
+ clerkPageBanner: process.env.NEXT_PUBLIC_STYLE_CLERK_PAGE_BANNER === 'true',
61
+ watermark: {
62
+ enabled: process.env.NEXT_PUBLIC_STYLE_WATERMARK_ENABLED === 'true',
63
+ text: process.env.NEXT_PUBLIC_STYLE_WATERMARK_TEXT || "巽川·怀因"
64
+ },
65
+ cdnBaseUrl: process.env.NEXT_PUBLIC_STYLE_CDN_BASE_URL || "https://r2.d8ger.com",
66
+ cdnProxyUrl: process.env.NEXT_PUBLIC_STYLE_CDN_PROXY_URL || "https://r2-explorer-template.zcy777et.workers.dev/proxy",
67
+ placeHolder: {
68
+ image: process.env.NEXT_PUBLIC_STYLE_PLACEHOLDER_IMAGE || "/default.webp"
69
+ }
70
+ },
71
+ // Clerk configuration
72
+ clerk: {
73
+ signInUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_IN_URL || "/sign-in",
74
+ fallbackSignInUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL || "/",
75
+ signUpUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_UP_URL || "/sign-up",
76
+ fallbackSignUpUrl: process.env.NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL || "/",
77
+ waitlistUrl: process.env.NEXT_PUBLIC_CLERK_WAITLIST_URL || "/waitlist",
78
+ debug: process.env.CLERK_DEBUG === 'true',
79
+ },
80
+ // MDX source file directory configuration
81
+ mdxSourceDir: {
82
+ docs: process.env.NEXT_PUBLIC_MDX_DOCS_DIR || "src/mdx/docs",
83
+ blog: process.env.NEXT_PUBLIC_MDX_BLOG_DIR || "src/mdx/blog",
84
+ legal: process.env.NEXT_PUBLIC_MDX_LEGAL_DIR || "src/mdx/legal"
85
+ },
86
+ };
87
+ // Convenient constants - avoid deep nested access
88
+ const shortcuts = {
89
+ iconColor: config.style.icon.uniformColor,
90
+ watermark: config.style.watermark,
91
+ showBanner: config.style.showBanner,
92
+ clerkPageBanner: config.style.clerkPageBanner,
93
+ clerkAuthInModal: config.style.clerkAuthInModal,
94
+ placeHolderImage: config.style.placeHolder.image,
95
+ clerk: config.clerk,
96
+ };
97
+ return Object.assign(Object.assign({}, config), { shortcuts });
118
98
  }
99
+ // Create internationalization helper functions
119
100
  function createI18nHelpers(i18nConfig) {
120
- function isSupportedLocale(locale) {
121
- return i18nConfig.locales.includes(locale);
122
- }
123
- function getValidLocale(locale) {
124
- return isSupportedLocale(locale) ? locale : i18nConfig.defaultLocale;
125
- }
126
- const generatedLocales = i18nConfig.locales.map((loc) => ({
127
- name: i18nConfig.localeLabels[loc] || loc,
128
- locale: loc
129
- }));
130
- return {
131
- isSupportedLocale,
132
- getValidLocale,
133
- generatedLocales
134
- };
101
+ function isSupportedLocale(locale) {
102
+ return i18nConfig.locales.includes(locale);
103
+ }
104
+ function getValidLocale(locale) {
105
+ return isSupportedLocale(locale) ? locale : i18nConfig.defaultLocale;
106
+ }
107
+ const generatedLocales = i18nConfig.locales.map((loc) => ({
108
+ name: i18nConfig.localeLabels[loc] || loc,
109
+ locale: loc,
110
+ }));
111
+ return {
112
+ isSupportedLocale,
113
+ getValidLocale,
114
+ generatedLocales
115
+ };
135
116
  }
136
- var LOCALE_PRESETS = {
137
- // Only support English
138
- EN_ONLY: { locales: ["en"], defaultLocale: "en" },
139
- // English and Chinese
140
- EN_ZH: { locales: ["en", "zh"], defaultLocale: "en" },
141
- // Main Asian languages
142
- ASIA: { locales: ["en", "zh", "ja", "ko"], defaultLocale: "en" },
143
- // Main European languages
144
- EUROPE: { locales: ["en", "fr", "de", "es", "it"], defaultLocale: "en" },
145
- // Globalization
146
- GLOBAL: { locales: ["en", "zh", "ja", "ko", "fr", "de", "es", "it", "pt", "ru"], defaultLocale: "en" },
147
- // No internationalization (only default language)
148
- NONE: { locales: [], defaultLocale: "en" }
117
+ // Convenient configuration presets
118
+ const LOCALE_PRESETS = {
119
+ // Only support English
120
+ EN_ONLY: { locales: ['en'], defaultLocale: 'en' },
121
+ // English and Chinese
122
+ EN_ZH: { locales: ['en', 'zh'], defaultLocale: 'en' },
123
+ // Main Asian languages
124
+ ASIA: { locales: ['en', 'zh', 'ja', 'ko'], defaultLocale: 'en' },
125
+ // Main European languages
126
+ EUROPE: { locales: ['en', 'fr', 'de', 'es', 'it'], defaultLocale: 'en' },
127
+ // Globalization
128
+ GLOBAL: { locales: ['en', 'zh', 'ja', 'ko', 'fr', 'de', 'es', 'it', 'pt', 'ru'], defaultLocale: 'en' },
129
+ // No internationalization (only default language)
130
+ NONE: { locales: [], defaultLocale: 'en' }
149
131
  };
150
132
 
151
133
  export { LOCALE_PRESETS, createCommonAppConfig, createI18nHelpers };
152
- //# sourceMappingURL=common-app-config.mjs.map
153
- //# sourceMappingURL=common-app-config.mjs.map
package/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- export { cn, formatTimestamp, handlePastePlainText } from './utils.js';
2
- export { getLLMText } from './llm-utils.js';
3
- export { LOCALE_PRESETS, SupportedLocale, createCommonAppConfig, createI18nHelpers } from './common-app-config.js';
4
- import 'react';
5
- import 'clsx';
1
+ export * from './utils';
2
+ export * from './llm-utils';
3
+ export * from './common-app-config';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,qBAAqB,CAAC"}