@withwiz/toolkit 0.2.7 → 0.3.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.
Files changed (128) hide show
  1. package/dist/auth/config.d.ts +13 -0
  2. package/dist/auth/config.js +13 -0
  3. package/dist/auth/index.js +18 -18
  4. package/dist/cache/cache-config.js +6 -3
  5. package/dist/cache/cache-env.d.ts +11 -20
  6. package/dist/cache/cache-env.js +5 -6
  7. package/dist/cache/cache-factory.js +14 -9
  8. package/dist/cache/cache-invalidation.js +15 -10
  9. package/dist/cache/cache-redis.js +8 -3
  10. package/dist/cache/cache-wrapper.js +15 -10
  11. package/dist/cache/cache.js +25 -17
  12. package/dist/cache/config.d.ts +113 -0
  13. package/dist/cache/config.js +13 -0
  14. package/dist/cache/hybrid-cache-manager.js +10 -5
  15. package/dist/cache/index.d.ts +2 -1
  16. package/dist/cache/index.js +25 -17
  17. package/dist/cache/inmemory-cache-manager.js +6 -2
  18. package/dist/cache/noop-cache-manager.js +7 -4
  19. package/dist/cache/redis-cache-manager.js +9 -4
  20. package/dist/chunk-2LCLLZME.js +122 -0
  21. package/dist/chunk-2QH66EVQ.js +11 -0
  22. package/dist/{chunk-YVF4RXOK.js → chunk-3GKJ763I.js} +12 -12
  23. package/dist/{chunk-XN4YP4XO.js → chunk-4CSSGCW5.js} +5 -5
  24. package/dist/{chunk-WZDS4QEC.js → chunk-576PAKLR.js} +1 -1
  25. package/dist/chunk-5MBKG2ZD.js +32 -0
  26. package/dist/{chunk-74MSBKYW.js → chunk-5P4E6SGV.js} +17 -13
  27. package/dist/{chunk-R5OFGX3C.js → chunk-6VNEAK73.js} +6 -6
  28. package/dist/{chunk-S73334QY.js → chunk-AWFY2HWG.js} +2 -2
  29. package/dist/{chunk-YMIDD4YE.js → chunk-BJWG3LH5.js} +6 -6
  30. package/dist/{chunk-BX5CNRVS.js → chunk-BY653UR3.js} +2 -2
  31. package/dist/{chunk-HCTNZM7D.js → chunk-C3WPAWID.js} +1 -1
  32. package/dist/{chunk-JOGXLVUZ.js → chunk-CZHFHEBG.js} +5 -5
  33. package/dist/{chunk-P6VSEFZE.js → chunk-DC2OFQ43.js} +18 -10
  34. package/dist/{chunk-HOMWLK62.js → chunk-FGA7VLYK.js} +2 -2
  35. package/dist/{chunk-T3YUJYBX.js → chunk-FIRLRKET.js} +1 -1
  36. package/dist/{chunk-LEWQBXN6.js → chunk-FO77EZCU.js} +1 -1
  37. package/dist/{chunk-WEDR5GJO.js → chunk-GRGOD3W5.js} +2 -2
  38. package/dist/{chunk-JWZSWMOM.js → chunk-HKJCBV3H.js} +6 -6
  39. package/dist/chunk-ITSXXSFN.js +42 -0
  40. package/dist/{chunk-6WVKLXVT.js → chunk-JGGGHEBC.js} +1 -1
  41. package/dist/chunk-JNB7MWG4.js +40 -0
  42. package/dist/chunk-JTPLPUI7.js +102 -0
  43. package/dist/chunk-K25ICPU4.js +8 -0
  44. package/dist/{chunk-IT43YQND.js → chunk-KAIGEZAL.js} +20 -5
  45. package/dist/{chunk-AOZVTVJG.js → chunk-L6M4DZV2.js} +1 -1
  46. package/dist/{chunk-GSUQE3SZ.js → chunk-LX2EYD74.js} +31 -16
  47. package/dist/{chunk-QMZ75GBU.js → chunk-M776IH4D.js} +3 -3
  48. package/dist/{chunk-DH2ZHGW2.js → chunk-MVH5ZPFD.js} +14 -2
  49. package/dist/{chunk-WDJLAZCW.js → chunk-NE33JZW3.js} +18 -3
  50. package/dist/{chunk-2NNLUXPF.js → chunk-NWAN2VRP.js} +12 -12
  51. package/dist/{chunk-I5PCM2JQ.js → chunk-PU2LFTI5.js} +4 -4
  52. package/dist/{chunk-4NWJ3WCZ.js → chunk-Q7NIAITA.js} +8 -1
  53. package/dist/chunk-RLXRDUBX.js +38 -0
  54. package/dist/{chunk-AZASEBSP.js → chunk-S54PFAEU.js} +1 -1
  55. package/dist/{chunk-5A2L6TXD.js → chunk-SNNXLA5F.js} +34 -15
  56. package/dist/{chunk-M5LIX3TD.js → chunk-STNIT65W.js} +1 -1
  57. package/dist/{chunk-MZRYR3UQ.js → chunk-TQJDNWBL.js} +4 -4
  58. package/dist/{chunk-NJXCFTOE.js → chunk-UD7YHLHI.js} +1 -1
  59. package/dist/{chunk-GCZOXUDV.js → chunk-USL5SQLZ.js} +50 -10
  60. package/dist/chunk-V33BEN6H.js +31 -0
  61. package/dist/chunk-X2QSMX3B.js +156 -0
  62. package/dist/{chunk-Y6IHEA3Q.js → chunk-XZ4HMXSK.js} +1 -1
  63. package/dist/chunk-YCIYDWJU.js +37 -0
  64. package/dist/{chunk-7KCWVRPR.js → chunk-ZBU2DYLD.js} +2 -2
  65. package/dist/{chunk-67KRDPIH.js → chunk-ZFFWKCHN.js} +2 -2
  66. package/dist/components/ui/DataTable.js +6 -6
  67. package/dist/components/ui/data-table/DataTable.js +6 -6
  68. package/dist/components/ui/data-table/DataTableFilters.js +2 -2
  69. package/dist/components/ui/data-table/DataTableSearch.js +2 -2
  70. package/dist/config/common.d.ts +9 -0
  71. package/dist/config/common.js +13 -0
  72. package/dist/config/errors.d.ts +3 -0
  73. package/dist/config/errors.js +7 -0
  74. package/dist/config/warn.d.ts +4 -0
  75. package/dist/config/warn.js +7 -0
  76. package/dist/constants/index.js +23 -23
  77. package/dist/error/error-display.js +5 -5
  78. package/dist/error/error-handler.js +7 -3
  79. package/dist/error/friendly-messages-v2.js +3 -3
  80. package/dist/error/index.js +20 -16
  81. package/dist/error/messages/index.js +2 -2
  82. package/dist/geolocation/batch-processor.js +6 -2
  83. package/dist/geolocation/config.d.ts +11 -0
  84. package/dist/geolocation/config.js +13 -0
  85. package/dist/geolocation/index.js +10 -5
  86. package/dist/geolocation/providers/index.js +6 -3
  87. package/dist/geolocation/providers/ipgeolocation-provider.js +4 -1
  88. package/dist/geolocation/providers/maxmind-provider.js +4 -1
  89. package/dist/initialize.d.ts +18 -0
  90. package/dist/initialize.js +41 -0
  91. package/dist/logger/config.d.ts +17 -0
  92. package/dist/logger/config.js +13 -0
  93. package/dist/logger/logger.js +5 -1
  94. package/dist/middleware/auth.js +8 -3
  95. package/dist/middleware/cors-config.d.ts +11 -0
  96. package/dist/middleware/cors-config.js +13 -0
  97. package/dist/middleware/cors.js +7 -2
  98. package/dist/middleware/error-handler.js +11 -7
  99. package/dist/middleware/index.js +25 -19
  100. package/dist/middleware/middleware-chain.js +6 -2
  101. package/dist/middleware/rate-limit.js +6 -2
  102. package/dist/middleware/response-logger.js +6 -2
  103. package/dist/middleware/security.js +6 -2
  104. package/dist/middleware/wrappers.js +20 -14
  105. package/dist/storage/config.d.ts +17 -0
  106. package/dist/storage/config.js +13 -0
  107. package/dist/storage/r2-storage.d.ts +4 -0
  108. package/dist/storage/r2-storage.js +19 -10
  109. package/dist/system/cpu.js +7 -3
  110. package/dist/system/disk.js +7 -3
  111. package/dist/system/environment.js +11 -3
  112. package/dist/system/health-check.js +9 -3
  113. package/dist/system/index.js +18 -10
  114. package/dist/system/memory.js +7 -3
  115. package/dist/system/network.js +7 -3
  116. package/dist/system/utils.js +6 -2
  117. package/dist/types/env.d.ts +12 -2
  118. package/dist/utils/cors.js +5 -1
  119. package/dist/utils/csv-export.js +6 -2
  120. package/dist/utils/error-processor.js +6 -2
  121. package/dist/utils/index.js +31 -26
  122. package/package.json +10 -1
  123. package/dist/chunk-N4XYQB2G.js +0 -193
  124. package/dist/chunk-OFPRBEO6.js +0 -93
  125. package/dist/{chunk-TH45RVP7.js → chunk-KHYY4KCV.js} +3 -3
  126. package/dist/{chunk-EBUEBEJX.js → chunk-QMCOX3DP.js} +0 -0
  127. package/dist/{chunk-LJEGM4OO.js → chunk-SEZJN4TC.js} +3 -3
  128. package/dist/{chunk-ASXZ2NZJ.js → chunk-Y2JYA2AR.js} +3 -3
@@ -1,6 +1,11 @@
1
1
  import {
2
2
  AppError
3
3
  } from "../chunk-KXXROUA5.js";
4
+ import {
5
+ getStorageConfig
6
+ } from "../chunk-YCIYDWJU.js";
7
+ import "../chunk-K25ICPU4.js";
8
+ import "../chunk-2QH66EVQ.js";
4
9
  import "../chunk-SNVGJPPX.js";
5
10
  import "../chunk-ORMEWXMH.js";
6
11
 
@@ -10,19 +15,18 @@ var r2Client = null;
10
15
  var r2Config = null;
11
16
  function getConfig() {
12
17
  if (r2Config) return r2Config;
13
- const accountId = process.env.R2_ACCOUNT_ID;
14
- const accessKeyId = process.env.R2_ACCESS_KEY_ID;
15
- const secretAccessKey = process.env.R2_SECRET_ACCESS_KEY;
16
- const bucketName = process.env.R2_BUCKET_NAME;
17
- if (!accountId || !accessKeyId || !secretAccessKey || !bucketName) {
18
+ let storageConfig;
19
+ try {
20
+ storageConfig = getStorageConfig();
21
+ } catch (e) {
18
22
  return null;
19
23
  }
20
24
  r2Config = {
21
- accountId,
22
- accessKeyId,
23
- secretAccessKey,
24
- bucketName,
25
- publicUrl: process.env.R2_PUBLIC_URL
25
+ accountId: storageConfig.accountId,
26
+ accessKeyId: storageConfig.accessKeyId,
27
+ secretAccessKey: storageConfig.secretAccessKey,
28
+ bucketName: storageConfig.bucketName,
29
+ publicUrl: storageConfig.publicUrl
26
30
  };
27
31
  return r2Config;
28
32
  }
@@ -44,6 +48,10 @@ function getClient() {
44
48
  function isR2Enabled() {
45
49
  return getConfig() !== null;
46
50
  }
51
+ function resetR2() {
52
+ r2Client = null;
53
+ r2Config = null;
54
+ }
47
55
  async function uploadToR2(key, body, contentType) {
48
56
  const client = getClient();
49
57
  const config = getConfig();
@@ -105,5 +113,6 @@ export {
105
113
  deleteFromR2,
106
114
  getFromR2,
107
115
  isR2Enabled,
116
+ resetR2,
108
117
  uploadToR2
109
118
  };
@@ -1,8 +1,12 @@
1
1
  import {
2
2
  getCpuInfo
3
- } from "../chunk-WEDR5GJO.js";
4
- import "../chunk-6WVKLXVT.js";
5
- import "../chunk-5A2L6TXD.js";
3
+ } from "../chunk-GRGOD3W5.js";
4
+ import "../chunk-JGGGHEBC.js";
5
+ import "../chunk-SNNXLA5F.js";
6
+ import "../chunk-RLXRDUBX.js";
7
+ import "../chunk-5MBKG2ZD.js";
8
+ import "../chunk-K25ICPU4.js";
9
+ import "../chunk-2QH66EVQ.js";
6
10
  import "../chunk-ORMEWXMH.js";
7
11
  export {
8
12
  getCpuInfo
@@ -1,8 +1,12 @@
1
1
  import {
2
2
  getDiskInfo
3
- } from "../chunk-BX5CNRVS.js";
4
- import "../chunk-6WVKLXVT.js";
5
- import "../chunk-5A2L6TXD.js";
3
+ } from "../chunk-BY653UR3.js";
4
+ import "../chunk-JGGGHEBC.js";
5
+ import "../chunk-SNNXLA5F.js";
6
+ import "../chunk-RLXRDUBX.js";
7
+ import "../chunk-5MBKG2ZD.js";
8
+ import "../chunk-K25ICPU4.js";
9
+ import "../chunk-2QH66EVQ.js";
6
10
  import "../chunk-ORMEWXMH.js";
7
11
  export {
8
12
  getDiskInfo
@@ -1,8 +1,16 @@
1
1
  import {
2
2
  checkEnvironmentVariables
3
- } from "../chunk-OFPRBEO6.js";
4
- import "../chunk-6WVKLXVT.js";
5
- import "../chunk-5A2L6TXD.js";
3
+ } from "../chunk-2LCLLZME.js";
4
+ import "../chunk-JGGGHEBC.js";
5
+ import "../chunk-SNNXLA5F.js";
6
+ import "../chunk-V33BEN6H.js";
7
+ import "../chunk-RLXRDUBX.js";
8
+ import "../chunk-JTPLPUI7.js";
9
+ import "../chunk-5MBKG2ZD.js";
10
+ import "../chunk-IQQKKUAV.js";
11
+ import "../chunk-ITSXXSFN.js";
12
+ import "../chunk-K25ICPU4.js";
13
+ import "../chunk-2QH66EVQ.js";
6
14
  import "../chunk-ORMEWXMH.js";
7
15
  export {
8
16
  checkEnvironmentVariables
@@ -1,9 +1,15 @@
1
1
  import {
2
2
  checkServiceHealth
3
- } from "../chunk-IT43YQND.js";
3
+ } from "../chunk-KAIGEZAL.js";
4
4
  import "../chunk-OIVXOT2X.js";
5
- import "../chunk-6WVKLXVT.js";
6
- import "../chunk-5A2L6TXD.js";
5
+ import "../chunk-JGGGHEBC.js";
6
+ import "../chunk-SNNXLA5F.js";
7
+ import "../chunk-RLXRDUBX.js";
8
+ import "../chunk-JTPLPUI7.js";
9
+ import "../chunk-5MBKG2ZD.js";
10
+ import "../chunk-IQQKKUAV.js";
11
+ import "../chunk-K25ICPU4.js";
12
+ import "../chunk-2QH66EVQ.js";
7
13
  import "../chunk-ORMEWXMH.js";
8
14
  export {
9
15
  checkServiceHealth
@@ -1,29 +1,37 @@
1
+ import {
2
+ getCpuInfo
3
+ } from "../chunk-GRGOD3W5.js";
1
4
  import {
2
5
  getDiskInfo
3
- } from "../chunk-BX5CNRVS.js";
6
+ } from "../chunk-BY653UR3.js";
4
7
  import {
5
8
  checkEnvironmentVariables
6
- } from "../chunk-OFPRBEO6.js";
9
+ } from "../chunk-2LCLLZME.js";
7
10
  import {
8
11
  checkServiceHealth
9
- } from "../chunk-IT43YQND.js";
12
+ } from "../chunk-KAIGEZAL.js";
10
13
  import "../chunk-OIVXOT2X.js";
11
14
  import {
12
15
  getMemoryInfo
13
- } from "../chunk-7KCWVRPR.js";
16
+ } from "../chunk-ZBU2DYLD.js";
14
17
  import {
15
18
  getNetworkInfo
16
- } from "../chunk-67KRDPIH.js";
17
- import {
18
- getCpuInfo
19
- } from "../chunk-WEDR5GJO.js";
19
+ } from "../chunk-ZFFWKCHN.js";
20
20
  import {
21
21
  getPlatform,
22
22
  getRecommendedCommands
23
- } from "../chunk-6WVKLXVT.js";
23
+ } from "../chunk-JGGGHEBC.js";
24
24
  import {
25
25
  logger
26
- } from "../chunk-5A2L6TXD.js";
26
+ } from "../chunk-SNNXLA5F.js";
27
+ import "../chunk-V33BEN6H.js";
28
+ import "../chunk-RLXRDUBX.js";
29
+ import "../chunk-JTPLPUI7.js";
30
+ import "../chunk-5MBKG2ZD.js";
31
+ import "../chunk-IQQKKUAV.js";
32
+ import "../chunk-ITSXXSFN.js";
33
+ import "../chunk-K25ICPU4.js";
34
+ import "../chunk-2QH66EVQ.js";
27
35
  import "../chunk-ORMEWXMH.js";
28
36
 
29
37
  // src/system/index.ts
@@ -1,8 +1,12 @@
1
1
  import {
2
2
  getMemoryInfo
3
- } from "../chunk-7KCWVRPR.js";
4
- import "../chunk-6WVKLXVT.js";
5
- import "../chunk-5A2L6TXD.js";
3
+ } from "../chunk-ZBU2DYLD.js";
4
+ import "../chunk-JGGGHEBC.js";
5
+ import "../chunk-SNNXLA5F.js";
6
+ import "../chunk-RLXRDUBX.js";
7
+ import "../chunk-5MBKG2ZD.js";
8
+ import "../chunk-K25ICPU4.js";
9
+ import "../chunk-2QH66EVQ.js";
6
10
  import "../chunk-ORMEWXMH.js";
7
11
  export {
8
12
  getMemoryInfo
@@ -1,8 +1,12 @@
1
1
  import {
2
2
  getNetworkInfo
3
- } from "../chunk-67KRDPIH.js";
4
- import "../chunk-6WVKLXVT.js";
5
- import "../chunk-5A2L6TXD.js";
3
+ } from "../chunk-ZFFWKCHN.js";
4
+ import "../chunk-JGGGHEBC.js";
5
+ import "../chunk-SNNXLA5F.js";
6
+ import "../chunk-RLXRDUBX.js";
7
+ import "../chunk-5MBKG2ZD.js";
8
+ import "../chunk-K25ICPU4.js";
9
+ import "../chunk-2QH66EVQ.js";
6
10
  import "../chunk-ORMEWXMH.js";
7
11
  export {
8
12
  getNetworkInfo
@@ -9,8 +9,12 @@ import {
9
9
  runMacCommand,
10
10
  runPlatformCommand,
11
11
  runSafeCommand
12
- } from "../chunk-6WVKLXVT.js";
13
- import "../chunk-5A2L6TXD.js";
12
+ } from "../chunk-JGGGHEBC.js";
13
+ import "../chunk-SNNXLA5F.js";
14
+ import "../chunk-RLXRDUBX.js";
15
+ import "../chunk-5MBKG2ZD.js";
16
+ import "../chunk-K25ICPU4.js";
17
+ import "../chunk-2QH66EVQ.js";
14
18
  import "../chunk-ORMEWXMH.js";
15
19
  export {
16
20
  commandExists,
@@ -1,11 +1,21 @@
1
1
  /**
2
2
  * Shared Environment Configuration Types
3
3
  *
4
- * src/shared/ 모듈에서 사용하는 환경 설정 인터페이스
5
- * 외부에서 의존성 주입을 통해 제공되어야 합니다.
4
+ * @deprecated Use types from '@withwiz/toolkit/initialize' and individual config modules instead.
5
+ * These types are kept for backward compatibility and will be removed in 0.4.0.
6
+ *
7
+ * New config types:
8
+ * - AuthConfig from '@withwiz/toolkit/auth/config'
9
+ * - CacheConfigInput from '@withwiz/toolkit/cache/config'
10
+ * - LoggerConfig from '@withwiz/toolkit/logger/config'
11
+ * - StorageConfig from '@withwiz/toolkit/storage/config'
12
+ * - GeolocationConfig from '@withwiz/toolkit/geolocation/config'
13
+ * - CorsConfig from '@withwiz/toolkit/middleware/cors-config'
14
+ * - ToolkitConfig from '@withwiz/toolkit/initialize'
6
15
  */
7
16
  /**
8
17
  * Redis 환경 설정
18
+ * @deprecated Use CacheConfigInput from '@withwiz/toolkit/cache/config' instead
9
19
  */
10
20
  export interface IRedisEnv {
11
21
  URL?: string;
@@ -7,7 +7,11 @@ import {
7
7
  withCORS,
8
8
  withPublicCORS,
9
9
  withRestrictedCORS
10
- } from "../chunk-GCZOXUDV.js";
10
+ } from "../chunk-USL5SQLZ.js";
11
+ import "../chunk-JNB7MWG4.js";
12
+ import "../chunk-5MBKG2ZD.js";
13
+ import "../chunk-K25ICPU4.js";
14
+ import "../chunk-2QH66EVQ.js";
11
15
  import "../chunk-ORMEWXMH.js";
12
16
  export {
13
17
  getAllowedOrigins,
@@ -6,8 +6,12 @@ import {
6
6
  dateFormatter,
7
7
  escapeCsvField,
8
8
  rowToCsv
9
- } from "../chunk-T3YUJYBX.js";
10
- import "../chunk-5A2L6TXD.js";
9
+ } from "../chunk-FIRLRKET.js";
10
+ import "../chunk-SNNXLA5F.js";
11
+ import "../chunk-RLXRDUBX.js";
12
+ import "../chunk-5MBKG2ZD.js";
13
+ import "../chunk-K25ICPU4.js";
14
+ import "../chunk-2QH66EVQ.js";
11
15
  import "../chunk-ORMEWXMH.js";
12
16
  export {
13
17
  boolFormatter,
@@ -12,10 +12,14 @@ import {
12
12
  throwUnauthorizedError,
13
13
  throwValidationError,
14
14
  withErrorHandling
15
- } from "../chunk-JOGXLVUZ.js";
15
+ } from "../chunk-CZHFHEBG.js";
16
16
  import "../chunk-KXXROUA5.js";
17
+ import "../chunk-SNNXLA5F.js";
18
+ import "../chunk-RLXRDUBX.js";
19
+ import "../chunk-5MBKG2ZD.js";
20
+ import "../chunk-K25ICPU4.js";
21
+ import "../chunk-2QH66EVQ.js";
17
22
  import "../chunk-SNVGJPPX.js";
18
- import "../chunk-5A2L6TXD.js";
19
23
  import "../chunk-ORMEWXMH.js";
20
24
  export {
21
25
  ErrorProcessor,
@@ -1,11 +1,3 @@
1
- import {
2
- removeEventHandlers,
3
- sanitizeArray,
4
- sanitizeHtml,
5
- sanitizeInput,
6
- sanitizeObjectFields,
7
- sanitizeUrl
8
- } from "../chunk-SR65BF6X.js";
9
1
  import {
10
2
  isApiErrorResponse,
11
3
  isApiSuccessResponse,
@@ -34,6 +26,28 @@ import {
34
26
  isValidJSON,
35
27
  isValidUrl
36
28
  } from "../chunk-EUQATJLI.js";
29
+ import {
30
+ removeEventHandlers,
31
+ sanitizeArray,
32
+ sanitizeHtml,
33
+ sanitizeInput,
34
+ sanitizeObjectFields,
35
+ sanitizeUrl
36
+ } from "../chunk-SR65BF6X.js";
37
+ import {
38
+ createPaginatedResponse,
39
+ getReferer,
40
+ getSearchParam,
41
+ getUserAgent,
42
+ parseBooleanParam,
43
+ parseFilters,
44
+ parseNumberParam,
45
+ parsePagination,
46
+ parseRequestBody,
47
+ parseSort,
48
+ requireAdmin,
49
+ validateAndParse
50
+ } from "../chunk-7JWIX5BS.js";
37
51
  import {
38
52
  getAllowedOrigins,
39
53
  getCorsConfig,
@@ -43,7 +57,7 @@ import {
43
57
  withCORS,
44
58
  withPublicCORS,
45
59
  withRestrictedCORS
46
- } from "../chunk-GCZOXUDV.js";
60
+ } from "../chunk-USL5SQLZ.js";
47
61
  import {
48
62
  boolFormatter,
49
63
  createCsvHeader,
@@ -52,7 +66,7 @@ import {
52
66
  dateFormatter,
53
67
  escapeCsvField,
54
68
  rowToCsv
55
- } from "../chunk-T3YUJYBX.js";
69
+ } from "../chunk-FIRLRKET.js";
56
70
  import {
57
71
  ErrorProcessor,
58
72
  errorToResponse,
@@ -66,24 +80,15 @@ import {
66
80
  throwUnauthorizedError,
67
81
  throwValidationError,
68
82
  withErrorHandling
69
- } from "../chunk-JOGXLVUZ.js";
70
- import {
71
- createPaginatedResponse,
72
- getReferer,
73
- getSearchParam,
74
- getUserAgent,
75
- parseBooleanParam,
76
- parseFilters,
77
- parseNumberParam,
78
- parsePagination,
79
- parseRequestBody,
80
- parseSort,
81
- requireAdmin,
82
- validateAndParse
83
- } from "../chunk-7JWIX5BS.js";
83
+ } from "../chunk-CZHFHEBG.js";
84
84
  import "../chunk-KXXROUA5.js";
85
+ import "../chunk-SNNXLA5F.js";
86
+ import "../chunk-JNB7MWG4.js";
87
+ import "../chunk-RLXRDUBX.js";
88
+ import "../chunk-5MBKG2ZD.js";
89
+ import "../chunk-K25ICPU4.js";
90
+ import "../chunk-2QH66EVQ.js";
85
91
  import "../chunk-SNVGJPPX.js";
86
- import "../chunk-5A2L6TXD.js";
87
92
  import "../chunk-ORMEWXMH.js";
88
93
  export {
89
94
  ErrorProcessor,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@withwiz/toolkit",
3
- "version": "0.2.7",
3
+ "version": "0.3.0",
4
4
  "description": "Shared utility library for withwiz projects",
5
5
  "license": "MIT",
6
6
  "private": false,
@@ -15,6 +15,15 @@
15
15
  }
16
16
  },
17
17
  "exports": {
18
+ "./initialize": "./dist/initialize.js",
19
+ "./config/errors": "./dist/config/errors.js",
20
+ "./config/common": "./dist/config/common.js",
21
+ "./auth/config": "./dist/auth/config.js",
22
+ "./cache/config": "./dist/cache/config.js",
23
+ "./logger/config": "./dist/logger/config.js",
24
+ "./storage/config": "./dist/storage/config.js",
25
+ "./geolocation/config": "./dist/geolocation/config.js",
26
+ "./middleware/cors-config": "./dist/middleware/cors-config.js",
18
27
  "./auth": "./dist/auth/index.js",
19
28
  "./auth/core/jwt": "./dist/auth/core/jwt/index.js",
20
29
  "./auth/core/jwt/client": "./dist/auth/core/jwt/client.js",
@@ -1,193 +0,0 @@
1
- import {
2
- logger
3
- } from "./chunk-5A2L6TXD.js";
4
- import {
5
- CACHE_DURATION_DEFAULTS,
6
- CACHE_FALLBACK_DEFAULTS,
7
- CACHE_HEALTH_DEFAULTS,
8
- CACHE_TTL_DEFAULTS,
9
- INMEMORY_CACHE_DEFAULTS
10
- } from "./chunk-IQQKKUAV.js";
11
-
12
- // src/cache/cache-env.ts
13
- function _isRedisCacheEnabled() {
14
- return process.env.CACHE_REDIS_ENABLED !== "false";
15
- }
16
- function _isInmemoryCacheEnabled() {
17
- return process.env.CACHE_INMEMORY_ENABLED !== "false";
18
- }
19
- function _isRedisConfigured() {
20
- return !!(process.env.UPSTASH_REDIS_REST_URL && process.env.UPSTASH_REDIS_REST_TOKEN);
21
- }
22
- function _isRedisAvailable() {
23
- return _isRedisCacheEnabled() && _isRedisConfigured();
24
- }
25
- var _injectedConfig = null;
26
- function getDefaultConfig() {
27
- const nodeEnv = process.env.NODE_ENV || "development";
28
- const cacheEnabled = process.env.CACHE_ENABLED !== "false";
29
- const redisUrl = process.env.UPSTASH_REDIS_REST_URL;
30
- const redisToken = process.env.UPSTASH_REDIS_REST_TOKEN;
31
- const redisEnabled = _isRedisCacheEnabled();
32
- const inmemoryEnabled = _isInmemoryCacheEnabled();
33
- const redisAvailable = _isRedisAvailable();
34
- const defaultCategoryConfig = (enabled, duration) => ({
35
- ENABLED: enabled,
36
- DURATION: duration
37
- });
38
- return {
39
- env: {
40
- NODE_ENV: nodeEnv,
41
- UPSTASH_REDIS_REST_URL: redisUrl,
42
- UPSTASH_REDIS_REST_TOKEN: redisToken,
43
- CACHE_ENABLED: cacheEnabled
44
- },
45
- ENV: {
46
- REDIS: {
47
- URL: redisUrl,
48
- TOKEN: redisToken,
49
- IS_AVAILABLE: redisAvailable,
50
- ENABLED: redisEnabled
51
- },
52
- CACHE: {
53
- ENABLED: cacheEnabled,
54
- REDIS: {
55
- ENABLED: redisEnabled
56
- },
57
- INMEMORY: {
58
- ENABLED: inmemoryEnabled,
59
- MAX_SIZE: parseInt(process.env.CACHE_INMEMORY_MAX_SIZE || String(INMEMORY_CACHE_DEFAULTS.MAX_SIZE), 10),
60
- MAX_MB: parseInt(process.env.CACHE_INMEMORY_MAX_MB || String(INMEMORY_CACHE_DEFAULTS.MAX_MB), 10),
61
- EVICTION: process.env.CACHE_INMEMORY_EVICTION || INMEMORY_CACHE_DEFAULTS.EVICTION,
62
- CLEANUP_INTERVAL: parseInt(process.env.CACHE_INMEMORY_CLEANUP_INTERVAL || String(INMEMORY_CACHE_DEFAULTS.CLEANUP_INTERVAL), 10)
63
- },
64
- TTL: {
65
- DEFAULT: parseInt(process.env.CACHE_TTL_DEFAULT || String(CACHE_TTL_DEFAULTS.DEFAULT), 10),
66
- SHORT: parseInt(process.env.CACHE_TTL_SHORT || String(CACHE_TTL_DEFAULTS.SHORT), 10),
67
- LONG: parseInt(process.env.CACHE_TTL_LONG || String(CACHE_TTL_DEFAULTS.LONG), 10),
68
- GEOIP: parseInt(process.env.CACHE_TTL_GEOIP || String(CACHE_TTL_DEFAULTS.GEOIP), 10),
69
- SETTINGS: parseInt(process.env.CACHE_TTL_SETTINGS || String(CACHE_TTL_DEFAULTS.SETTINGS), 10),
70
- ANALYTICS: parseInt(process.env.CACHE_TTL_ANALYTICS || String(CACHE_TTL_DEFAULTS.ANALYTICS), 10),
71
- USER: parseInt(process.env.CACHE_TTL_USER || String(CACHE_TTL_DEFAULTS.USER), 10),
72
- LINK: parseInt(process.env.CACHE_TTL_LINK || String(CACHE_TTL_DEFAULTS.LINK), 10),
73
- ALIAS: parseInt(process.env.CACHE_TTL_ALIAS || String(CACHE_TTL_DEFAULTS.ALIAS), 10),
74
- COMMUNITY: parseInt(process.env.CACHE_TTL_COMMUNITY || String(CACHE_TTL_DEFAULTS.COMMUNITY), 10),
75
- RESERVED_WORDS: parseInt(process.env.CACHE_TTL_RESERVED_WORDS || String(CACHE_TTL_DEFAULTS.RESERVED_WORDS), 10)
76
- },
77
- ANALYTICS: defaultCategoryConfig(process.env.CACHE_ANALYTICS_ENABLED !== "false", parseInt(process.env.CACHE_ANALYTICS_DURATION || String(CACHE_DURATION_DEFAULTS.ANALYTICS), 10)),
78
- USER: defaultCategoryConfig(process.env.CACHE_USER_ENABLED !== "false", parseInt(process.env.CACHE_USER_DURATION || String(CACHE_DURATION_DEFAULTS.USER), 10)),
79
- GEOIP: defaultCategoryConfig(process.env.CACHE_GEOIP_ENABLED !== "false", parseInt(process.env.CACHE_GEOIP_DURATION || String(CACHE_DURATION_DEFAULTS.GEOIP), 10)),
80
- SETTINGS: defaultCategoryConfig(process.env.CACHE_SETTINGS_ENABLED !== "false", parseInt(process.env.CACHE_SETTINGS_DURATION || String(CACHE_DURATION_DEFAULTS.SETTINGS), 10)),
81
- RESERVED_WORDS: defaultCategoryConfig(process.env.CACHE_RESERVED_WORDS_ENABLED !== "false", parseInt(process.env.CACHE_RESERVED_WORDS_DURATION || String(CACHE_DURATION_DEFAULTS.RESERVED_WORDS), 10)),
82
- ALIAS: defaultCategoryConfig(process.env.CACHE_ALIAS_ENABLED !== "false", parseInt(process.env.CACHE_ALIAS_DURATION || String(CACHE_DURATION_DEFAULTS.ALIAS), 10)),
83
- COMMUNITY: defaultCategoryConfig(process.env.CACHE_COMMUNITY_ENABLED !== "false", parseInt(process.env.CACHE_COMMUNITY_DURATION || String(CACHE_DURATION_DEFAULTS.COMMUNITY), 10)),
84
- LINK: defaultCategoryConfig(process.env.CACHE_LINK_ENABLED !== "false", parseInt(process.env.CACHE_LINK_DURATION || process.env.CACHE_TTL_LINK || String(CACHE_DURATION_DEFAULTS.LINK), 10)),
85
- // RATE_LIMIT: ENABLED 제거됨 - Rate Limiting은 RATE_LIMIT_ENABLED로 제어, CACHE_ENABLED로 Redis 사용 여부 결정
86
- RATE_LIMIT: defaultCategoryConfig(true, parseInt(process.env.CACHE_RATE_LIMIT_DURATION || String(CACHE_DURATION_DEFAULTS.RATE_LIMIT), 10)),
87
- URL_TOKEN: defaultCategoryConfig(process.env.CACHE_URL_TOKEN_ENABLED !== "false", parseInt(process.env.CACHE_URL_TOKEN_DURATION || String(CACHE_DURATION_DEFAULTS.URL_TOKEN), 10)),
88
- API_KEY: defaultCategoryConfig(process.env.CACHE_API_KEY_ENABLED !== "false", parseInt(process.env.CACHE_API_KEY_DURATION || String(CACHE_DURATION_DEFAULTS.API_KEY), 10)),
89
- API_CONFIG: defaultCategoryConfig(process.env.CACHE_API_CONFIG_ENABLED !== "false", parseInt(process.env.CACHE_API_CONFIG_DURATION || String(CACHE_DURATION_DEFAULTS.API_CONFIG), 10))
90
- }
91
- },
92
- isCacheEnabled: () => cacheEnabled,
93
- isRedisAvailable: () => redisAvailable
94
- };
95
- }
96
- function getConfig() {
97
- if (_injectedConfig) {
98
- return _injectedConfig;
99
- }
100
- return getDefaultConfig();
101
- }
102
- var getEnv = () => getConfig().env;
103
- var getENV = () => getConfig().ENV;
104
- function initializeCache(config) {
105
- if (global.__cacheInitialized) {
106
- return;
107
- }
108
- _injectedConfig = config;
109
- global.__cacheInitialized = true;
110
- if (process.env.NODE_ENV === "production" && process.env.NEXT_BUILD_TIME !== "true") {
111
- logger.info("[Cache] Environment configuration injection complete", {
112
- cacheEnabled: config.isCacheEnabled(),
113
- redisAvailable: config.isRedisAvailable()
114
- });
115
- }
116
- }
117
- var isCacheEnabled = () => getConfig().isCacheEnabled();
118
- function validateRedisEnvironment() {
119
- const errors = [];
120
- const env = getEnv();
121
- if (!env.UPSTASH_REDIS_REST_URL) {
122
- errors.push("UPSTASH_REDIS_REST_URL is not configured.");
123
- } else if (env.UPSTASH_REDIS_REST_URL.trim() === "") {
124
- errors.push("UPSTASH_REDIS_REST_URL is an empty string.");
125
- }
126
- if (!env.UPSTASH_REDIS_REST_TOKEN) {
127
- errors.push("UPSTASH_REDIS_REST_TOKEN is not configured.");
128
- } else if (env.UPSTASH_REDIS_REST_TOKEN.trim() === "") {
129
- errors.push("UPSTASH_REDIS_REST_TOKEN is an empty string.");
130
- }
131
- return {
132
- isValid: errors.length === 0,
133
- errors
134
- };
135
- }
136
- function getCacheFallbackConfig() {
137
- return {
138
- redisErrorThresholdGlobal: parseInt(
139
- process.env.CACHE_REDIS_ERROR_THRESHOLD_GLOBAL || String(CACHE_FALLBACK_DEFAULTS.REDIS_ERROR_THRESHOLD_GLOBAL),
140
- 10
141
- ),
142
- redisErrorThresholdLocal: parseInt(
143
- process.env.CACHE_REDIS_ERROR_THRESHOLD_LOCAL || String(CACHE_FALLBACK_DEFAULTS.REDIS_ERROR_THRESHOLD_LOCAL),
144
- 10
145
- ),
146
- redisReconnectInterval: parseInt(
147
- process.env.CACHE_REDIS_RECONNECT_INTERVAL || String(CACHE_FALLBACK_DEFAULTS.REDIS_RECONNECT_INTERVAL),
148
- 10
149
- ),
150
- fallbackOnRedisError: process.env.CACHE_FALLBACK_ON_REDIS_ERROR !== "false",
151
- writeToMemory: process.env.CACHE_WRITE_TO_MEMORY !== "false"
152
- };
153
- }
154
- function getCacheHealthConfig() {
155
- return {
156
- errorRateThreshold: parseInt(
157
- process.env.CACHE_HEALTH_ERROR_RATE_THRESHOLD || String(CACHE_HEALTH_DEFAULTS.ERROR_RATE_THRESHOLD),
158
- 10
159
- ),
160
- hitRateThreshold: parseInt(
161
- process.env.CACHE_HEALTH_HIT_RATE_THRESHOLD || String(CACHE_HEALTH_DEFAULTS.HIT_RATE_THRESHOLD),
162
- 10
163
- ),
164
- reportHitRateThreshold: parseInt(
165
- process.env.CACHE_REPORT_HIT_RATE_THRESHOLD || String(CACHE_HEALTH_DEFAULTS.REPORT_HIT_RATE_THRESHOLD),
166
- 10
167
- ),
168
- reportResponseTimeThreshold: parseInt(
169
- process.env.CACHE_REPORT_RESPONSE_TIME_THRESHOLD || String(CACHE_HEALTH_DEFAULTS.REPORT_RESPONSE_TIME_THRESHOLD),
170
- 10
171
- ),
172
- reportInvalidationThreshold: parseInt(
173
- process.env.CACHE_REPORT_INVALIDATION_THRESHOLD || String(CACHE_HEALTH_DEFAULTS.REPORT_INVALIDATION_THRESHOLD),
174
- 10
175
- ),
176
- reportMinRequests: parseInt(
177
- process.env.CACHE_REPORT_MIN_REQUESTS || String(CACHE_HEALTH_DEFAULTS.REPORT_MIN_REQUESTS),
178
- 10
179
- )
180
- };
181
- }
182
-
183
- export {
184
- getDefaultConfig,
185
- getConfig,
186
- getEnv,
187
- getENV,
188
- initializeCache,
189
- isCacheEnabled,
190
- validateRedisEnvironment,
191
- getCacheFallbackConfig,
192
- getCacheHealthConfig
193
- };