@lagoon-protocol/lagoon-mcp 0.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.
- package/LICENSE +201 -0
- package/README.md +618 -0
- package/dist/cache/index.d.ts +97 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +106 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/config.d.ts +34 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +40 -0
- package/dist/config.js.map +1 -0
- package/dist/core/cache-adapter.d.ts +73 -0
- package/dist/core/cache-adapter.d.ts.map +1 -0
- package/dist/core/cache-adapter.js +47 -0
- package/dist/core/cache-adapter.js.map +1 -0
- package/dist/core/cache-invalidation.d.ts +72 -0
- package/dist/core/cache-invalidation.d.ts.map +1 -0
- package/dist/core/cache-invalidation.js +114 -0
- package/dist/core/cache-invalidation.js.map +1 -0
- package/dist/core/container.d.ts +34 -0
- package/dist/core/container.d.ts.map +1 -0
- package/dist/core/container.js +75 -0
- package/dist/core/container.js.map +1 -0
- package/dist/graphql/client.d.ts +32 -0
- package/dist/graphql/client.d.ts.map +1 -0
- package/dist/graphql/client.js +49 -0
- package/dist/graphql/client.js.map +1 -0
- package/dist/graphql/fragments/apr-breakdown.fragment.d.ts +64 -0
- package/dist/graphql/fragments/apr-breakdown.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/apr-breakdown.fragment.js +62 -0
- package/dist/graphql/fragments/apr-breakdown.fragment.js.map +1 -0
- package/dist/graphql/fragments/asset-info.fragment.d.ts +18 -0
- package/dist/graphql/fragments/asset-info.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/asset-info.fragment.js +36 -0
- package/dist/graphql/fragments/asset-info.fragment.js.map +1 -0
- package/dist/graphql/fragments/chain-info.fragment.d.ts +18 -0
- package/dist/graphql/fragments/chain-info.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/chain-info.fragment.js +32 -0
- package/dist/graphql/fragments/chain-info.fragment.js.map +1 -0
- package/dist/graphql/fragments/index.d.ts +15 -0
- package/dist/graphql/fragments/index.d.ts.map +1 -0
- package/dist/graphql/fragments/index.js +21 -0
- package/dist/graphql/fragments/index.js.map +1 -0
- package/dist/graphql/fragments/pageinfo.fragment.d.ts +33 -0
- package/dist/graphql/fragments/pageinfo.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/pageinfo.fragment.js +47 -0
- package/dist/graphql/fragments/pageinfo.fragment.js.map +1 -0
- package/dist/graphql/fragments/transaction-base.fragment.d.ts +19 -0
- package/dist/graphql/fragments/transaction-base.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/transaction-base.fragment.js +32 -0
- package/dist/graphql/fragments/transaction-base.fragment.js.map +1 -0
- package/dist/graphql/fragments/vault-list.fragment.d.ts +53 -0
- package/dist/graphql/fragments/vault-list.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/vault-list.fragment.js +51 -0
- package/dist/graphql/fragments/vault-list.fragment.js.map +1 -0
- package/dist/graphql/fragments/vault-summary.fragment.d.ts +68 -0
- package/dist/graphql/fragments/vault-summary.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/vault-summary.fragment.js +66 -0
- package/dist/graphql/fragments/vault-summary.fragment.js.map +1 -0
- package/dist/graphql/fragments/vault.fragment.d.ts +133 -0
- package/dist/graphql/fragments/vault.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/vault.fragment.js +119 -0
- package/dist/graphql/fragments/vault.fragment.js.map +1 -0
- package/dist/graphql/fragments.d.ts +183 -0
- package/dist/graphql/fragments.d.ts.map +1 -0
- package/dist/graphql/fragments.js +297 -0
- package/dist/graphql/fragments.js.map +1 -0
- package/dist/graphql/queries/export.queries.d.ts +72 -0
- package/dist/graphql/queries/export.queries.d.ts.map +1 -0
- package/dist/graphql/queries/export.queries.js +202 -0
- package/dist/graphql/queries/export.queries.js.map +1 -0
- package/dist/graphql/queries/index.d.ts +15 -0
- package/dist/graphql/queries/index.d.ts.map +1 -0
- package/dist/graphql/queries/index.js +23 -0
- package/dist/graphql/queries/index.js.map +1 -0
- package/dist/graphql/queries/performance.queries.d.ts +63 -0
- package/dist/graphql/queries/performance.queries.d.ts.map +1 -0
- package/dist/graphql/queries/performance.queries.js +133 -0
- package/dist/graphql/queries/performance.queries.js.map +1 -0
- package/dist/graphql/queries/period-summaries.d.ts +15 -0
- package/dist/graphql/queries/period-summaries.d.ts.map +1 -0
- package/dist/graphql/queries/period-summaries.js +24 -0
- package/dist/graphql/queries/period-summaries.js.map +1 -0
- package/dist/graphql/queries/portfolio.queries.d.ts +78 -0
- package/dist/graphql/queries/portfolio.queries.d.ts.map +1 -0
- package/dist/graphql/queries/portfolio.queries.js +198 -0
- package/dist/graphql/queries/portfolio.queries.js.map +1 -0
- package/dist/graphql/queries/prediction.queries.d.ts +38 -0
- package/dist/graphql/queries/prediction.queries.d.ts.map +1 -0
- package/dist/graphql/queries/prediction.queries.js +100 -0
- package/dist/graphql/queries/prediction.queries.js.map +1 -0
- package/dist/graphql/queries/risk.queries.d.ts +37 -0
- package/dist/graphql/queries/risk.queries.d.ts.map +1 -0
- package/dist/graphql/queries/risk.queries.js +90 -0
- package/dist/graphql/queries/risk.queries.js.map +1 -0
- package/dist/graphql/queries/search.queries.d.ts +61 -0
- package/dist/graphql/queries/search.queries.d.ts.map +1 -0
- package/dist/graphql/queries/search.queries.js +103 -0
- package/dist/graphql/queries/search.queries.js.map +1 -0
- package/dist/graphql/queries/transaction.queries.d.ts +60 -0
- package/dist/graphql/queries/transaction.queries.d.ts.map +1 -0
- package/dist/graphql/queries/transaction.queries.js +252 -0
- package/dist/graphql/queries/transaction.queries.js.map +1 -0
- package/dist/graphql/queries/vault.queries.d.ts +54 -0
- package/dist/graphql/queries/vault.queries.d.ts.map +1 -0
- package/dist/graphql/queries/vault.queries.js +78 -0
- package/dist/graphql/queries/vault.queries.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/competitor-comparison.d.ts +8 -0
- package/dist/prompts/competitor-comparison.d.ts.map +1 -0
- package/dist/prompts/competitor-comparison.js +432 -0
- package/dist/prompts/competitor-comparison.js.map +1 -0
- package/dist/prompts/curator-performance.d.ts +8 -0
- package/dist/prompts/curator-performance.d.ts.map +1 -0
- package/dist/prompts/curator-performance.js +383 -0
- package/dist/prompts/curator-performance.js.map +1 -0
- package/dist/prompts/financial-analysis.d.ts +8 -0
- package/dist/prompts/financial-analysis.d.ts.map +1 -0
- package/dist/prompts/financial-analysis.js +480 -0
- package/dist/prompts/financial-analysis.js.map +1 -0
- package/dist/prompts/index.d.ts +21 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +50 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/onboarding-first-vault.d.ts +8 -0
- package/dist/prompts/onboarding-first-vault.d.ts.map +1 -0
- package/dist/prompts/onboarding-first-vault.js +317 -0
- package/dist/prompts/onboarding-first-vault.js.map +1 -0
- package/dist/prompts/portfolio-optimization.d.ts +8 -0
- package/dist/prompts/portfolio-optimization.d.ts.map +1 -0
- package/dist/prompts/portfolio-optimization.js +412 -0
- package/dist/prompts/portfolio-optimization.js.map +1 -0
- package/dist/prompts/protocol-overview.d.ts +8 -0
- package/dist/prompts/protocol-overview.d.ts.map +1 -0
- package/dist/prompts/protocol-overview.js +398 -0
- package/dist/prompts/protocol-overview.js.map +1 -0
- package/dist/prompts/shared/disclaimers.d.ts +54 -0
- package/dist/prompts/shared/disclaimers.d.ts.map +1 -0
- package/dist/prompts/shared/disclaimers.js +400 -0
- package/dist/prompts/shared/disclaimers.js.map +1 -0
- package/dist/resources/glossary.d.ts +8 -0
- package/dist/resources/glossary.d.ts.map +1 -0
- package/dist/resources/glossary.js +407 -0
- package/dist/resources/glossary.js.map +1 -0
- package/dist/resources/index.d.ts +18 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +29 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/schema.d.ts +22 -0
- package/dist/resources/schema.d.ts.map +1 -0
- package/dist/resources/schema.js +67 -0
- package/dist/resources/schema.js.map +1 -0
- package/dist/schemas/config.schema.d.ts +46 -0
- package/dist/schemas/config.schema.d.ts.map +1 -0
- package/dist/schemas/config.schema.js +48 -0
- package/dist/schemas/config.schema.js.map +1 -0
- package/dist/sdk/__tests__/apr-service.test.d.ts +7 -0
- package/dist/sdk/__tests__/apr-service.test.d.ts.map +1 -0
- package/dist/sdk/__tests__/apr-service.test.js +385 -0
- package/dist/sdk/__tests__/apr-service.test.js.map +1 -0
- package/dist/sdk/__tests__/math-utils.test.d.ts +7 -0
- package/dist/sdk/__tests__/math-utils.test.d.ts.map +1 -0
- package/dist/sdk/__tests__/math-utils.test.js +185 -0
- package/dist/sdk/__tests__/math-utils.test.js.map +1 -0
- package/dist/sdk/__tests__/simulation-service.test.d.ts +5 -0
- package/dist/sdk/__tests__/simulation-service.test.d.ts.map +1 -0
- package/dist/sdk/__tests__/simulation-service.test.js +397 -0
- package/dist/sdk/__tests__/simulation-service.test.js.map +1 -0
- package/dist/sdk/__tests__/vault-utils.test.d.ts +7 -0
- package/dist/sdk/__tests__/vault-utils.test.d.ts.map +1 -0
- package/dist/sdk/__tests__/vault-utils.test.js +189 -0
- package/dist/sdk/__tests__/vault-utils.test.js.map +1 -0
- package/dist/sdk/apr-service.d.ts +101 -0
- package/dist/sdk/apr-service.d.ts.map +1 -0
- package/dist/sdk/apr-service.js +175 -0
- package/dist/sdk/apr-service.js.map +1 -0
- package/dist/sdk/math-utils.d.ts +138 -0
- package/dist/sdk/math-utils.d.ts.map +1 -0
- package/dist/sdk/math-utils.js +218 -0
- package/dist/sdk/math-utils.js.map +1 -0
- package/dist/sdk/simulation-service.d.ts +106 -0
- package/dist/sdk/simulation-service.d.ts.map +1 -0
- package/dist/sdk/simulation-service.js +143 -0
- package/dist/sdk/simulation-service.js.map +1 -0
- package/dist/sdk/vault-utils.d.ts +125 -0
- package/dist/sdk/vault-utils.d.ts.map +1 -0
- package/dist/sdk/vault-utils.js +165 -0
- package/dist/sdk/vault-utils.js.map +1 -0
- package/dist/server.d.ts +21 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +225 -0
- package/dist/server.js.map +1 -0
- package/dist/services/analytics/protocol-overview.service.d.ts +61 -0
- package/dist/services/analytics/protocol-overview.service.d.ts.map +1 -0
- package/dist/services/analytics/protocol-overview.service.js +182 -0
- package/dist/services/analytics/protocol-overview.service.js.map +1 -0
- package/dist/services/analytics/risk.service.d.ts +92 -0
- package/dist/services/analytics/risk.service.d.ts.map +1 -0
- package/dist/services/analytics/risk.service.js +423 -0
- package/dist/services/analytics/risk.service.js.map +1 -0
- package/dist/services/base.service.d.ts +39 -0
- package/dist/services/base.service.d.ts.map +1 -0
- package/dist/services/base.service.js +37 -0
- package/dist/services/base.service.js.map +1 -0
- package/dist/services/index.d.ts +30 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +101 -0
- package/dist/services/index.js.map +1 -0
- package/dist/tools/__tests__/simulate-vault.test.d.ts +5 -0
- package/dist/tools/__tests__/simulate-vault.test.d.ts.map +1 -0
- package/dist/tools/__tests__/simulate-vault.test.js +363 -0
- package/dist/tools/__tests__/simulate-vault.test.js.map +1 -0
- package/dist/tools/analyze-risk.d.ts +34 -0
- package/dist/tools/analyze-risk.d.ts.map +1 -0
- package/dist/tools/analyze-risk.js +100 -0
- package/dist/tools/analyze-risk.js.map +1 -0
- package/dist/tools/compare-vaults.d.ts +29 -0
- package/dist/tools/compare-vaults.d.ts.map +1 -0
- package/dist/tools/compare-vaults.js +285 -0
- package/dist/tools/compare-vaults.js.map +1 -0
- package/dist/tools/export-data.d.ts +34 -0
- package/dist/tools/export-data.d.ts.map +1 -0
- package/dist/tools/export-data.js +309 -0
- package/dist/tools/export-data.js.map +1 -0
- package/dist/tools/get-price-history.d.ts +29 -0
- package/dist/tools/get-price-history.d.ts.map +1 -0
- package/dist/tools/get-price-history.js +236 -0
- package/dist/tools/get-price-history.js.map +1 -0
- package/dist/tools/get-transactions.d.ts +29 -0
- package/dist/tools/get-transactions.d.ts.map +1 -0
- package/dist/tools/get-transactions.js +181 -0
- package/dist/tools/get-transactions.js.map +1 -0
- package/dist/tools/index.d.ts +26 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +32 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/optimize-portfolio.d.ts +37 -0
- package/dist/tools/optimize-portfolio.d.ts.map +1 -0
- package/dist/tools/optimize-portfolio.js +459 -0
- package/dist/tools/optimize-portfolio.js.map +1 -0
- package/dist/tools/predict-yield.d.ts +30 -0
- package/dist/tools/predict-yield.d.ts.map +1 -0
- package/dist/tools/predict-yield.js +248 -0
- package/dist/tools/predict-yield.js.map +1 -0
- package/dist/tools/query-graphql.d.ts +35 -0
- package/dist/tools/query-graphql.d.ts.map +1 -0
- package/dist/tools/query-graphql.js +54 -0
- package/dist/tools/query-graphql.js.map +1 -0
- package/dist/tools/registry.d.ts +42 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +231 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/search-vaults.d.ts +40 -0
- package/dist/tools/search-vaults.d.ts.map +1 -0
- package/dist/tools/search-vaults.js +184 -0
- package/dist/tools/search-vaults.js.map +1 -0
- package/dist/tools/simulate-vault.d.ts +80 -0
- package/dist/tools/simulate-vault.d.ts.map +1 -0
- package/dist/tools/simulate-vault.js +281 -0
- package/dist/tools/simulate-vault.js.map +1 -0
- package/dist/tools/user-portfolio.d.ts +30 -0
- package/dist/tools/user-portfolio.d.ts.map +1 -0
- package/dist/tools/user-portfolio.js +142 -0
- package/dist/tools/user-portfolio.js.map +1 -0
- package/dist/tools/vault-data.d.ts +23 -0
- package/dist/tools/vault-data.d.ts.map +1 -0
- package/dist/tools/vault-data.js +68 -0
- package/dist/tools/vault-data.js.map +1 -0
- package/dist/tools/vault-performance.d.ts +30 -0
- package/dist/tools/vault-performance.d.ts.map +1 -0
- package/dist/tools/vault-performance.js +275 -0
- package/dist/tools/vault-performance.js.map +1 -0
- package/dist/types/generated.d.ts +1109 -0
- package/dist/types/generated.d.ts.map +1 -0
- package/dist/types/generated.js +2 -0
- package/dist/types/generated.js.map +1 -0
- package/dist/types/index.d.ts +46 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/comparison-metrics.d.ts +120 -0
- package/dist/utils/comparison-metrics.d.ts.map +1 -0
- package/dist/utils/comparison-metrics.js +215 -0
- package/dist/utils/comparison-metrics.js.map +1 -0
- package/dist/utils/config-loader.d.ts +17 -0
- package/dist/utils/config-loader.d.ts.map +1 -0
- package/dist/utils/config-loader.js +45 -0
- package/dist/utils/config-loader.js.map +1 -0
- package/dist/utils/csv-generator.d.ts +89 -0
- package/dist/utils/csv-generator.d.ts.map +1 -0
- package/dist/utils/csv-generator.js +97 -0
- package/dist/utils/csv-generator.js.map +1 -0
- package/dist/utils/disclaimers.d.ts +70 -0
- package/dist/utils/disclaimers.d.ts.map +1 -0
- package/dist/utils/disclaimers.js +161 -0
- package/dist/utils/disclaimers.js.map +1 -0
- package/dist/utils/errors.d.ts +66 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +86 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/execute-tool-with-cache.d.ts +97 -0
- package/dist/utils/execute-tool-with-cache.d.ts.map +1 -0
- package/dist/utils/execute-tool-with-cache.js +105 -0
- package/dist/utils/execute-tool-with-cache.js.map +1 -0
- package/dist/utils/portfolio-optimization.d.ts +100 -0
- package/dist/utils/portfolio-optimization.d.ts.map +1 -0
- package/dist/utils/portfolio-optimization.js +283 -0
- package/dist/utils/portfolio-optimization.js.map +1 -0
- package/dist/utils/risk-scoring.d.ts +226 -0
- package/dist/utils/risk-scoring.d.ts.map +1 -0
- package/dist/utils/risk-scoring.js +523 -0
- package/dist/utils/risk-scoring.js.map +1 -0
- package/dist/utils/tool-error-handler.d.ts +16 -0
- package/dist/utils/tool-error-handler.d.ts.map +1 -0
- package/dist/utils/tool-error-handler.js +43 -0
- package/dist/utils/tool-error-handler.js.map +1 -0
- package/dist/utils/tool-handler.d.ts +33 -0
- package/dist/utils/tool-handler.d.ts.map +1 -0
- package/dist/utils/tool-handler.js +59 -0
- package/dist/utils/tool-handler.js.map +1 -0
- package/dist/utils/tool-response.d.ts +16 -0
- package/dist/utils/tool-response.d.ts.map +1 -0
- package/dist/utils/tool-response.js +25 -0
- package/dist/utils/tool-response.js.map +1 -0
- package/dist/utils/validators.d.ts +359 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +233 -0
- package/dist/utils/validators.js.map +1 -0
- package/dist/utils/yield-prediction.d.ts +69 -0
- package/dist/utils/yield-prediction.d.ts.map +1 -0
- package/dist/utils/yield-prediction.js +290 -0
- package/dist/utils/yield-prediction.js.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../src/types/generated.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated.js","sourceRoot":"","sources":["../../src/types/generated.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type exports for Lagoon MCP server
|
|
3
|
+
*
|
|
4
|
+
* Re-exports commonly used types from generated GraphQL types
|
|
5
|
+
* and defines additional types for tool implementations
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* GraphQL Generated Types
|
|
9
|
+
*
|
|
10
|
+
* These types are generated from the Lagoon GraphQL schema introspection.
|
|
11
|
+
* They provide type safety for working with transaction data from the API.
|
|
12
|
+
*/
|
|
13
|
+
export type {
|
|
14
|
+
/** Transaction entity from the GraphQL schema */
|
|
15
|
+
Transaction,
|
|
16
|
+
/** Union type for transaction-specific data fields */
|
|
17
|
+
TransactionData,
|
|
18
|
+
/** Filter criteria for querying transactions */
|
|
19
|
+
TransactionFilterInput,
|
|
20
|
+
/** Available fields for ordering transaction results */
|
|
21
|
+
TransactionOrderBy,
|
|
22
|
+
/** Paginated transaction response with items and metadata */
|
|
23
|
+
TransactionPage,
|
|
24
|
+
/** Enum of all transaction types (SettleDeposit, SettleRedeem, etc.) */
|
|
25
|
+
TransactionType, } from './generated.js';
|
|
26
|
+
/**
|
|
27
|
+
* Tool Input Validation Types
|
|
28
|
+
*
|
|
29
|
+
* These types are inferred from Zod validation schemas and represent
|
|
30
|
+
* the validated input parameters for each MCP tool. They ensure type
|
|
31
|
+
* safety between tool registration and implementation.
|
|
32
|
+
*/
|
|
33
|
+
export type {
|
|
34
|
+
/** Input parameters for raw GraphQL query execution */
|
|
35
|
+
QueryGraphQLInput,
|
|
36
|
+
/** Input parameters for fetching detailed vault data */
|
|
37
|
+
GetVaultDataInput,
|
|
38
|
+
/** Input parameters for fetching user portfolio positions */
|
|
39
|
+
GetUserPortfolioInput,
|
|
40
|
+
/** Input parameters for searching and filtering vaults */
|
|
41
|
+
SearchVaultsInput,
|
|
42
|
+
/** Input parameters for analyzing vault performance over time */
|
|
43
|
+
GetVaultPerformanceInput,
|
|
44
|
+
/** Input parameters for querying vault transaction history */
|
|
45
|
+
GetTransactionsInput, } from '../utils/validators.js';
|
|
46
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,YAAY;AACV,iDAAiD;AACjD,WAAW;AACX,sDAAsD;AACtD,eAAe;AACf,gDAAgD;AAChD,sBAAsB;AACtB,wDAAwD;AACxD,kBAAkB;AAClB,6DAA6D;AAC7D,eAAe;AACf,wEAAwE;AACxE,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB;;;;;;GAMG;AACH,YAAY;AACV,uDAAuD;AACvD,iBAAiB;AACjB,wDAAwD;AACxD,iBAAiB;AACjB,6DAA6D;AAC7D,qBAAqB;AACrB,0DAA0D;AAC1D,iBAAiB;AACjB,iEAAiE;AACjE,wBAAwB;AACxB,8DAA8D;AAC9D,oBAAoB,GACrB,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comparison Metrics Utility
|
|
3
|
+
*
|
|
4
|
+
* Provides normalization, ranking, and comparison functions for multi-vault analysis
|
|
5
|
+
*/
|
|
6
|
+
import { RiskScoreBreakdown } from './risk-scoring.js';
|
|
7
|
+
/**
|
|
8
|
+
* Vault data structure for comparison
|
|
9
|
+
*/
|
|
10
|
+
export interface VaultComparisonData {
|
|
11
|
+
address: string;
|
|
12
|
+
name: string;
|
|
13
|
+
symbol: string;
|
|
14
|
+
chainId: number;
|
|
15
|
+
tvl: number;
|
|
16
|
+
apr: number;
|
|
17
|
+
totalShares?: string;
|
|
18
|
+
totalAssets?: string;
|
|
19
|
+
riskScore?: number;
|
|
20
|
+
riskLevel?: 'Low' | 'Medium' | 'High' | 'Critical';
|
|
21
|
+
riskBreakdown?: RiskScoreBreakdown;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Normalized vault metrics with rankings
|
|
25
|
+
*/
|
|
26
|
+
export interface NormalizedVault extends VaultComparisonData {
|
|
27
|
+
rank: number;
|
|
28
|
+
tvlPercentile: number;
|
|
29
|
+
aprPercentile: number;
|
|
30
|
+
riskPercentile?: number;
|
|
31
|
+
aprDelta: number;
|
|
32
|
+
tvlDelta: number;
|
|
33
|
+
riskDelta?: number;
|
|
34
|
+
overallScore: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Comparison summary statistics
|
|
38
|
+
*/
|
|
39
|
+
export interface ComparisonSummary {
|
|
40
|
+
totalVaults: number;
|
|
41
|
+
averageTvl: number;
|
|
42
|
+
averageApr: number;
|
|
43
|
+
averageRisk?: number;
|
|
44
|
+
bestPerformer: {
|
|
45
|
+
address: string;
|
|
46
|
+
name: string;
|
|
47
|
+
apr: number;
|
|
48
|
+
};
|
|
49
|
+
worstPerformer: {
|
|
50
|
+
address: string;
|
|
51
|
+
name: string;
|
|
52
|
+
apr: number;
|
|
53
|
+
};
|
|
54
|
+
highestTvl: {
|
|
55
|
+
address: string;
|
|
56
|
+
name: string;
|
|
57
|
+
tvl: number;
|
|
58
|
+
};
|
|
59
|
+
lowestTvl: {
|
|
60
|
+
address: string;
|
|
61
|
+
name: string;
|
|
62
|
+
tvl: number;
|
|
63
|
+
};
|
|
64
|
+
safestVault?: {
|
|
65
|
+
address: string;
|
|
66
|
+
name: string;
|
|
67
|
+
riskScore: number;
|
|
68
|
+
riskLevel: string;
|
|
69
|
+
};
|
|
70
|
+
riskiestVault?: {
|
|
71
|
+
address: string;
|
|
72
|
+
name: string;
|
|
73
|
+
riskScore: number;
|
|
74
|
+
riskLevel: string;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Calculate percentile rank for a value in an array
|
|
79
|
+
* @param value The value to calculate percentile for
|
|
80
|
+
* @param arr Array of all values
|
|
81
|
+
* @returns Percentile (0-100)
|
|
82
|
+
*/
|
|
83
|
+
export declare function calculatePercentile(value: number, arr: number[]): number;
|
|
84
|
+
/**
|
|
85
|
+
* Calculate delta from average
|
|
86
|
+
* @param value The value to calculate delta for
|
|
87
|
+
* @param average The average value
|
|
88
|
+
* @returns Delta as percentage
|
|
89
|
+
*/
|
|
90
|
+
export declare function calculateDelta(value: number, average: number): number;
|
|
91
|
+
/**
|
|
92
|
+
* Calculate overall score based on weighted metrics
|
|
93
|
+
* @param aprPercentile APR percentile (0-100)
|
|
94
|
+
* @param tvlPercentile TVL percentile (0-100)
|
|
95
|
+
* @param weights Optional weights for metrics
|
|
96
|
+
* @returns Overall score (0-100)
|
|
97
|
+
*/
|
|
98
|
+
export declare function calculateOverallScore(aprPercentile: number, tvlPercentile: number, weights?: {
|
|
99
|
+
apr: number;
|
|
100
|
+
tvl: number;
|
|
101
|
+
}): number;
|
|
102
|
+
/**
|
|
103
|
+
* Normalize and rank vaults for comparison
|
|
104
|
+
* @param vaults Array of vault data
|
|
105
|
+
* @returns Array of normalized vaults with rankings
|
|
106
|
+
*/
|
|
107
|
+
export declare function normalizeAndRankVaults(vaults: VaultComparisonData[]): NormalizedVault[];
|
|
108
|
+
/**
|
|
109
|
+
* Generate comparison summary statistics
|
|
110
|
+
* @param vaults Array of vault data
|
|
111
|
+
* @returns Summary statistics
|
|
112
|
+
*/
|
|
113
|
+
export declare function generateComparisonSummary(vaults: VaultComparisonData[]): ComparisonSummary;
|
|
114
|
+
/**
|
|
115
|
+
* Format comparison output as markdown table
|
|
116
|
+
* @param vaults Normalized vaults with rankings
|
|
117
|
+
* @returns Markdown formatted table
|
|
118
|
+
*/
|
|
119
|
+
export declare function formatComparisonTable(vaults: NormalizedVault[]): string;
|
|
120
|
+
//# sourceMappingURL=comparison-metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison-metrics.d.ts","sourceRoot":"","sources":["../../src/utils/comparison-metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comparison Metrics Utility
|
|
3
|
+
*
|
|
4
|
+
* Provides normalization, ranking, and comparison functions for multi-vault analysis
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Calculate percentile rank for a value in an array
|
|
8
|
+
* @param value The value to calculate percentile for
|
|
9
|
+
* @param arr Array of all values
|
|
10
|
+
* @returns Percentile (0-100)
|
|
11
|
+
*/
|
|
12
|
+
export function calculatePercentile(value, arr) {
|
|
13
|
+
const sorted = [...arr].sort((a, b) => a - b);
|
|
14
|
+
const index = sorted.indexOf(value);
|
|
15
|
+
if (index === -1)
|
|
16
|
+
return 0;
|
|
17
|
+
const percentile = (index / (sorted.length - 1)) * 100;
|
|
18
|
+
return Math.round(percentile * 100) / 100; // Round to 2 decimals
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Calculate delta from average
|
|
22
|
+
* @param value The value to calculate delta for
|
|
23
|
+
* @param average The average value
|
|
24
|
+
* @returns Delta as percentage
|
|
25
|
+
*/
|
|
26
|
+
export function calculateDelta(value, average) {
|
|
27
|
+
if (average === 0)
|
|
28
|
+
return 0;
|
|
29
|
+
const delta = ((value - average) / average) * 100;
|
|
30
|
+
return Math.round(delta * 100) / 100; // Round to 2 decimals
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Calculate overall score based on weighted metrics
|
|
34
|
+
* @param aprPercentile APR percentile (0-100)
|
|
35
|
+
* @param tvlPercentile TVL percentile (0-100)
|
|
36
|
+
* @param weights Optional weights for metrics
|
|
37
|
+
* @returns Overall score (0-100)
|
|
38
|
+
*/
|
|
39
|
+
export function calculateOverallScore(aprPercentile, tvlPercentile, weights = { apr: 0.6, tvl: 0.4 }) {
|
|
40
|
+
const score = aprPercentile * weights.apr + tvlPercentile * weights.tvl;
|
|
41
|
+
return Math.round(score * 100) / 100; // Round to 2 decimals
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Normalize and rank vaults for comparison
|
|
45
|
+
* @param vaults Array of vault data
|
|
46
|
+
* @returns Array of normalized vaults with rankings
|
|
47
|
+
*/
|
|
48
|
+
export function normalizeAndRankVaults(vaults) {
|
|
49
|
+
if (vaults.length === 0)
|
|
50
|
+
return [];
|
|
51
|
+
// Extract metrics
|
|
52
|
+
const tvls = vaults.map((v) => v.tvl);
|
|
53
|
+
const aprs = vaults.map((v) => v.apr);
|
|
54
|
+
const risks = vaults.map((v) => v.riskScore).filter((r) => r !== undefined);
|
|
55
|
+
// Calculate averages
|
|
56
|
+
const avgTvl = tvls.reduce((sum, val) => sum + val, 0) / tvls.length;
|
|
57
|
+
const avgApr = aprs.reduce((sum, val) => sum + val, 0) / aprs.length;
|
|
58
|
+
const avgRisk = risks.length > 0 ? risks.reduce((sum, val) => sum + val, 0) / risks.length : undefined;
|
|
59
|
+
// Check if we have risk data
|
|
60
|
+
const hasRiskData = risks.length > 0;
|
|
61
|
+
// Normalize each vault
|
|
62
|
+
const normalized = vaults.map((vault) => ({
|
|
63
|
+
...vault,
|
|
64
|
+
rank: 0, // Will be set below
|
|
65
|
+
tvlPercentile: calculatePercentile(vault.tvl, tvls),
|
|
66
|
+
aprPercentile: calculatePercentile(vault.apr, aprs),
|
|
67
|
+
riskPercentile: hasRiskData && vault.riskScore !== undefined
|
|
68
|
+
? 100 - calculatePercentile(vault.riskScore, risks) // Invert: lower risk = higher percentile
|
|
69
|
+
: undefined,
|
|
70
|
+
aprDelta: calculateDelta(vault.apr, avgApr),
|
|
71
|
+
tvlDelta: calculateDelta(vault.tvl, avgTvl),
|
|
72
|
+
riskDelta: avgRisk !== undefined && vault.riskScore !== undefined
|
|
73
|
+
? calculateDelta(vault.riskScore, avgRisk)
|
|
74
|
+
: undefined,
|
|
75
|
+
overallScore: 0, // Will be set below
|
|
76
|
+
}));
|
|
77
|
+
// Calculate overall scores (now includes risk if available)
|
|
78
|
+
normalized.forEach((vault) => {
|
|
79
|
+
if (hasRiskData && vault.riskPercentile !== undefined) {
|
|
80
|
+
// Include risk in scoring: 40% APR, 30% TVL, 30% Safety (inverted risk)
|
|
81
|
+
vault.overallScore =
|
|
82
|
+
calculateOverallScore(vault.aprPercentile, vault.tvlPercentile, { apr: 0.4, tvl: 0.3 }) +
|
|
83
|
+
vault.riskPercentile * 0.3;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
// Fallback to original weighting if no risk data
|
|
87
|
+
vault.overallScore = calculateOverallScore(vault.aprPercentile, vault.tvlPercentile);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
// Sort by overall score (descending) and assign ranks
|
|
91
|
+
normalized.sort((a, b) => b.overallScore - a.overallScore);
|
|
92
|
+
normalized.forEach((vault, index) => {
|
|
93
|
+
vault.rank = index + 1;
|
|
94
|
+
});
|
|
95
|
+
return normalized;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Generate comparison summary statistics
|
|
99
|
+
* @param vaults Array of vault data
|
|
100
|
+
* @returns Summary statistics
|
|
101
|
+
*/
|
|
102
|
+
export function generateComparisonSummary(vaults) {
|
|
103
|
+
if (vaults.length === 0) {
|
|
104
|
+
throw new Error('Cannot generate summary for empty vault list');
|
|
105
|
+
}
|
|
106
|
+
// Calculate averages
|
|
107
|
+
const totalTvl = vaults.reduce((sum, v) => sum + v.tvl, 0);
|
|
108
|
+
const totalApr = vaults.reduce((sum, v) => sum + v.apr, 0);
|
|
109
|
+
const averageTvl = totalTvl / vaults.length;
|
|
110
|
+
const averageApr = totalApr / vaults.length;
|
|
111
|
+
// Calculate average risk if available
|
|
112
|
+
const vaultsWithRisk = vaults.filter((v) => v.riskScore !== undefined);
|
|
113
|
+
const averageRisk = vaultsWithRisk.length > 0
|
|
114
|
+
? vaultsWithRisk.reduce((sum, v) => sum + (v.riskScore || 0), 0) / vaultsWithRisk.length
|
|
115
|
+
: undefined;
|
|
116
|
+
// Find extremes
|
|
117
|
+
const sortedByApr = [...vaults].sort((a, b) => b.apr - a.apr);
|
|
118
|
+
const sortedByTvl = [...vaults].sort((a, b) => b.tvl - a.tvl);
|
|
119
|
+
// Find safest and riskiest vaults if risk data available
|
|
120
|
+
let safestVault, riskiestVault;
|
|
121
|
+
if (vaultsWithRisk.length > 0) {
|
|
122
|
+
const sortedByRisk = [...vaultsWithRisk].sort((a, b) => (a.riskScore || 0) - (b.riskScore || 0));
|
|
123
|
+
safestVault = {
|
|
124
|
+
address: sortedByRisk[0].address,
|
|
125
|
+
name: sortedByRisk[0].name,
|
|
126
|
+
riskScore: sortedByRisk[0].riskScore || 0,
|
|
127
|
+
riskLevel: sortedByRisk[0].riskLevel || 'Unknown',
|
|
128
|
+
};
|
|
129
|
+
riskiestVault = {
|
|
130
|
+
address: sortedByRisk[sortedByRisk.length - 1].address,
|
|
131
|
+
name: sortedByRisk[sortedByRisk.length - 1].name,
|
|
132
|
+
riskScore: sortedByRisk[sortedByRisk.length - 1].riskScore || 0,
|
|
133
|
+
riskLevel: sortedByRisk[sortedByRisk.length - 1].riskLevel || 'Unknown',
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
totalVaults: vaults.length,
|
|
138
|
+
averageTvl,
|
|
139
|
+
averageApr,
|
|
140
|
+
averageRisk,
|
|
141
|
+
bestPerformer: {
|
|
142
|
+
address: sortedByApr[0].address,
|
|
143
|
+
name: sortedByApr[0].name,
|
|
144
|
+
apr: sortedByApr[0].apr,
|
|
145
|
+
},
|
|
146
|
+
worstPerformer: {
|
|
147
|
+
address: sortedByApr[sortedByApr.length - 1].address,
|
|
148
|
+
name: sortedByApr[sortedByApr.length - 1].name,
|
|
149
|
+
apr: sortedByApr[sortedByApr.length - 1].apr,
|
|
150
|
+
},
|
|
151
|
+
highestTvl: {
|
|
152
|
+
address: sortedByTvl[0].address,
|
|
153
|
+
name: sortedByTvl[0].name,
|
|
154
|
+
tvl: sortedByTvl[0].tvl,
|
|
155
|
+
},
|
|
156
|
+
lowestTvl: {
|
|
157
|
+
address: sortedByTvl[sortedByTvl.length - 1].address,
|
|
158
|
+
name: sortedByTvl[sortedByTvl.length - 1].name,
|
|
159
|
+
tvl: sortedByTvl[sortedByTvl.length - 1].tvl,
|
|
160
|
+
},
|
|
161
|
+
safestVault,
|
|
162
|
+
riskiestVault,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Format comparison output as markdown table
|
|
167
|
+
* @param vaults Normalized vaults with rankings
|
|
168
|
+
* @returns Markdown formatted table
|
|
169
|
+
*/
|
|
170
|
+
export function formatComparisonTable(vaults) {
|
|
171
|
+
// Check if we have risk data
|
|
172
|
+
const hasRiskData = vaults.some((v) => v.riskScore !== undefined);
|
|
173
|
+
// Risk level emoji helper
|
|
174
|
+
const riskEmoji = (level) => {
|
|
175
|
+
switch (level) {
|
|
176
|
+
case 'Low':
|
|
177
|
+
return 'š¢';
|
|
178
|
+
case 'Medium':
|
|
179
|
+
return 'š”';
|
|
180
|
+
case 'High':
|
|
181
|
+
return 'š ';
|
|
182
|
+
case 'Critical':
|
|
183
|
+
return 'š“';
|
|
184
|
+
default:
|
|
185
|
+
return '';
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
// Build header based on data availability
|
|
189
|
+
const header = hasRiskData
|
|
190
|
+
? '| Rank | Vault | TVL | APR | Risk | Score | TVL Ī | APR Ī | Risk Ī |\n|------|-------|-----|-----|------|-------|-------|-------|--------|\n'
|
|
191
|
+
: '| Rank | Vault | TVL | APR | Score | TVL Ī | APR Ī |\n|------|-------|-----|-----|-------|-------|-------|\n';
|
|
192
|
+
const rows = vaults
|
|
193
|
+
.map((v) => {
|
|
194
|
+
const tvlFormatted = `$${(v.tvl / 1000000).toFixed(2)}M`;
|
|
195
|
+
const aprFormatted = `${(v.apr * 100).toFixed(2)}%`;
|
|
196
|
+
const scoreFormatted = v.overallScore.toFixed(1);
|
|
197
|
+
const tvlDeltaFormatted = `${v.tvlDelta > 0 ? '+' : ''}${v.tvlDelta.toFixed(1)}%`;
|
|
198
|
+
const aprDeltaFormatted = `${v.aprDelta > 0 ? '+' : ''}${v.aprDelta.toFixed(1)}%`;
|
|
199
|
+
if (hasRiskData) {
|
|
200
|
+
const riskFormatted = v.riskScore !== undefined
|
|
201
|
+
? `${riskEmoji(v.riskLevel)} ${(v.riskScore * 100).toFixed(1)}%`
|
|
202
|
+
: 'N/A';
|
|
203
|
+
const riskDeltaFormatted = v.riskDelta !== undefined
|
|
204
|
+
? `${v.riskDelta > 0 ? '+' : ''}${v.riskDelta.toFixed(1)}%`
|
|
205
|
+
: 'N/A';
|
|
206
|
+
return `| ${v.rank} | ${v.name} (${v.symbol}) | ${tvlFormatted} | ${aprFormatted} | ${riskFormatted} | ${scoreFormatted} | ${tvlDeltaFormatted} | ${aprDeltaFormatted} | ${riskDeltaFormatted} |`;
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
return `| ${v.rank} | ${v.name} (${v.symbol}) | ${tvlFormatted} | ${aprFormatted} | ${scoreFormatted} | ${tvlDeltaFormatted} | ${aprDeltaFormatted} |`;
|
|
210
|
+
}
|
|
211
|
+
})
|
|
212
|
+
.join('\n');
|
|
213
|
+
return header + rows;
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=comparison-metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison-metrics.js","sourceRoot":"","sources":["../../src/utils/comparison-metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type Env } from '../schemas/config.schema.js';
|
|
2
|
+
/**
|
|
3
|
+
* Validates and loads environment variables using Zod schema.
|
|
4
|
+
*
|
|
5
|
+
* This function performs strict validation of all environment variables
|
|
6
|
+
* at application startup. If validation fails, it prints detailed error
|
|
7
|
+
* messages and exits the process.
|
|
8
|
+
*
|
|
9
|
+
* @returns Validated environment variables
|
|
10
|
+
* @throws Exits process with code 1 if validation fails
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* const env = loadAndValidateEnv();
|
|
14
|
+
* console.log(env.LAGOON_GRAPHQL_URL); // Type-safe access
|
|
15
|
+
*/
|
|
16
|
+
export declare function loadAndValidateEnv(): Env;
|
|
17
|
+
//# sourceMappingURL=config-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,IAAI,GAAG,CAiCxC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ZodError } from 'zod';
|
|
2
|
+
import { envSchema } from '../schemas/config.schema.js';
|
|
3
|
+
/**
|
|
4
|
+
* Validates and loads environment variables using Zod schema.
|
|
5
|
+
*
|
|
6
|
+
* This function performs strict validation of all environment variables
|
|
7
|
+
* at application startup. If validation fails, it prints detailed error
|
|
8
|
+
* messages and exits the process.
|
|
9
|
+
*
|
|
10
|
+
* @returns Validated environment variables
|
|
11
|
+
* @throws Exits process with code 1 if validation fails
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* const env = loadAndValidateEnv();
|
|
15
|
+
* console.log(env.LAGOON_GRAPHQL_URL); // Type-safe access
|
|
16
|
+
*/
|
|
17
|
+
export function loadAndValidateEnv() {
|
|
18
|
+
try {
|
|
19
|
+
// Parse and validate environment variables
|
|
20
|
+
const env = envSchema.parse({
|
|
21
|
+
LAGOON_GRAPHQL_URL: process.env.LAGOON_GRAPHQL_URL,
|
|
22
|
+
NODE_ENV: process.env.NODE_ENV,
|
|
23
|
+
CACHE_TTL: process.env.CACHE_TTL,
|
|
24
|
+
CACHE_MAX_KEYS: process.env.CACHE_MAX_KEYS,
|
|
25
|
+
});
|
|
26
|
+
return env;
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
if (error instanceof ZodError) {
|
|
30
|
+
// Format and display validation errors
|
|
31
|
+
console.error('ā Configuration validation failed:\n');
|
|
32
|
+
error.errors.forEach((err) => {
|
|
33
|
+
const path = err.path.join('.');
|
|
34
|
+
console.error(` ⢠${path}: ${err.message}`);
|
|
35
|
+
});
|
|
36
|
+
console.error('\nš” Check your .env file and ensure all required variables are set correctly.');
|
|
37
|
+
console.error('š See .env.example for reference.\n');
|
|
38
|
+
// Exit process with error code
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
// Re-throw unexpected errors
|
|
42
|
+
throw error;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=config-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAY,MAAM,6BAA6B,CAAC;AAElE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACH,2CAA2C;QAC3C,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC;YAC1B,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;YAClD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;YAC9B,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;YAChC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;SAC3C,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC9B,uCAAuC;YACvC,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAEtD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,KAAK,CACX,gFAAgF,CACjF,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAEtD,+BAA+B;YAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,6BAA6B;QAC7B,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|