torque-intelligence 0.1.1 → 0.1.2
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/README.md +2 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +8 -0
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -55,6 +55,8 @@ const ti = createTorqueIntelligence({
|
|
|
55
55
|
| `getHappeningNow` | Timely signals | `GET /api/v1/intelligence/happening-now` |
|
|
56
56
|
| `getYieldOpportunities` | Yield Spotlight + idle-cash ideas | `GET /api/v1/opportunities/yield` |
|
|
57
57
|
| `getLendingOpportunities` | Lend/Borrow catalog APY + APR | `GET /api/v1/opportunities/lending` |
|
|
58
|
+
| `getFundingRadarWidget` | Funding radar (Home widget) | `GET /api/v1/widgets/funding-radar` |
|
|
59
|
+
| `getEarningsSpotlightWidget` | Earnings spotlight (Home widget) | `GET /api/v1/widgets/earnings-spotlight` |
|
|
58
60
|
| `getCapabilities` | Manifest probe | `GET /api/v1/capabilities` |
|
|
59
61
|
|
|
60
62
|
## Errors
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GetHappeningNowParams, GetIntelligenceFeedParams, GetTradeAnglesParams, HappeningNowResponseV1, IntelligenceFeedResponseV1, TradeAnglesResponseV1 } from '@torquefi/types/intelligence';
|
|
2
2
|
import type { GetLendingOpportunitiesParams, GetYieldOpportunitiesParams, LendingOpportunitiesResponseV1, YieldOpportunitiesResponseV1 } from '@torquefi/types/opportunities';
|
|
3
|
+
import type { EarningsSpotlightWidgetResponseV1, FundingRadarWidgetResponseV1 } from '@torquefi/types/widgets';
|
|
3
4
|
import type { TorqueCapabilitiesProbe, TorquePlatformClientConfig } from '@torquefi/types/platform';
|
|
4
5
|
import { TorqueIntelligenceError } from './errors';
|
|
5
6
|
export interface TorqueIntelligenceOptions extends TorquePlatformClientConfig {
|
|
@@ -10,6 +11,7 @@ export type { TorquePlatformClientConfig as TorqueIntelligenceConfig } from '@to
|
|
|
10
11
|
export { TorqueIntelligenceError };
|
|
11
12
|
export type { GetHappeningNowParams, GetIntelligenceFeedParams, GetTradeAnglesParams, HappeningNowResponseV1, IntelligenceFeedResponseV1, IntelligenceItemV1, TradeAnglesResponseV1, } from '@torquefi/types/intelligence';
|
|
12
13
|
export type { GetLendingOpportunitiesParams, GetYieldOpportunitiesParams, LendingOpportunitiesResponseV1, YieldOpportunitiesResponseV1, } from '@torquefi/types/opportunities';
|
|
14
|
+
export type { EarningsSpotlightWidgetResponseV1, EarningsSpotlightRowV1, FundingRadarWidgetResponseV1, FundingRadarRowV1, WidgetMetaV1, } from '@torquefi/types/widgets';
|
|
13
15
|
export declare class TorqueIntelligence {
|
|
14
16
|
private readonly http;
|
|
15
17
|
constructor(config: TorqueIntelligenceOptions);
|
|
@@ -32,6 +34,10 @@ export declare class TorqueIntelligence {
|
|
|
32
34
|
* GET /api/v1/opportunities/lending
|
|
33
35
|
*/
|
|
34
36
|
getLendingOpportunities(params?: GetLendingOpportunitiesParams): Promise<LendingOpportunitiesResponseV1>;
|
|
37
|
+
/** Hyperliquid funding radar — GET /api/v1/widgets/funding-radar */
|
|
38
|
+
getFundingRadarWidget(): Promise<FundingRadarWidgetResponseV1>;
|
|
39
|
+
/** Upcoming earnings spotlight — GET /api/v1/widgets/earnings-spotlight */
|
|
40
|
+
getEarningsSpotlightWidget(): Promise<EarningsSpotlightWidgetResponseV1>;
|
|
35
41
|
/** Capability manifest probe. GET /api/v1/capabilities */
|
|
36
42
|
getCapabilities(): Promise<TorqueCapabilitiesProbe>;
|
|
37
43
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EACV,6BAA6B,EAC7B,2BAA2B,EAC3B,8BAA8B,EAC9B,4BAA4B,EAC7B,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAA;AAGnG,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAUlD,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;IAC3E,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,YAAY,EAAE,0BAA0B,IAAI,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEtG,OAAO,EAAE,uBAAuB,EAAE,CAAA;AAClC,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACV,6BAA6B,EAC7B,2BAA2B,EAC3B,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EACV,6BAA6B,EAC7B,2BAA2B,EAC3B,8BAA8B,EAC9B,4BAA4B,EAC7B,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EACV,iCAAiC,EACjC,4BAA4B,EAC7B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAA;AAGnG,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAUlD,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;IAC3E,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,YAAY,EAAE,0BAA0B,IAAI,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEtG,OAAO,EAAE,uBAAuB,EAAE,CAAA;AAClC,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACV,6BAA6B,EAC7B,2BAA2B,EAC3B,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,+BAA+B,CAAA;AACtC,YAAY,EACV,iCAAiC,EACjC,sBAAsB,EACtB,4BAA4B,EAC5B,iBAAiB,EACjB,YAAY,GACb,MAAM,yBAAyB,CAAA;AAmChC,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA8B;gBAEvC,MAAM,EAAE,yBAAyB;IAK7C;;;OAGG;IACG,OAAO,CAAC,MAAM,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAOtF,6EAA6E;IACvE,cAAc,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAOnF,0EAA0E;IACpE,eAAe,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAOtF;;;OAGG;IACG,qBAAqB,CACzB,MAAM,CAAC,EAAE,2BAA2B,GACnC,OAAO,CAAC,4BAA4B,CAAC;IAOxC;;;OAGG;IACG,uBAAuB,CAC3B,MAAM,CAAC,EAAE,6BAA6B,GACrC,OAAO,CAAC,8BAA8B,CAAC;IAO1C,oEAAoE;IAC9D,qBAAqB,IAAI,OAAO,CAAC,4BAA4B,CAAC;IAOpE,2EAA2E;IACrE,0BAA0B,IAAI,OAAO,CAAC,iCAAiC,CAAC;IAO9E,0DAA0D;IACpD,eAAe,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAIzD;;OAEG;IACH,2BAA2B,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;CAe3D;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,yBAAyB,GAAG,kBAAkB,CAE9F;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,SAAS,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAC7C,kBAAkB,CAepB"}
|
package/dist/index.esm.js
CHANGED
|
@@ -224,6 +224,14 @@ class TorqueIntelligence {
|
|
|
224
224
|
async getLendingOpportunities(params) {
|
|
225
225
|
return torqueIntelligenceGet(this.http, `/api/v1/opportunities/lending${buildLendingOpportunitiesQuery(params)}`);
|
|
226
226
|
}
|
|
227
|
+
/** Hyperliquid funding radar — GET /api/v1/widgets/funding-radar */
|
|
228
|
+
async getFundingRadarWidget() {
|
|
229
|
+
return torqueIntelligenceGet(this.http, '/api/v1/widgets/funding-radar');
|
|
230
|
+
}
|
|
231
|
+
/** Upcoming earnings spotlight — GET /api/v1/widgets/earnings-spotlight */
|
|
232
|
+
async getEarningsSpotlightWidget() {
|
|
233
|
+
return torqueIntelligenceGet(this.http, '/api/v1/widgets/earnings-spotlight');
|
|
234
|
+
}
|
|
227
235
|
/** Capability manifest probe. GET /api/v1/capabilities */
|
|
228
236
|
async getCapabilities() {
|
|
229
237
|
return torqueIntelligenceGet(this.http, '/api/v1/capabilities');
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/errors.ts","../src/http.ts","../src/query.ts","../src/index.ts"],"sourcesContent":["export interface TorqueIntelligenceErrorDetails {\n code: string\n statusCode: number\n details?: Record<string, unknown>\n retryAfterMs?: number\n}\n\nexport class TorqueIntelligenceError extends Error {\n code: string\n statusCode: number\n details?: Record<string, unknown>\n retryAfterMs?: number\n\n constructor(message: string, options: TorqueIntelligenceErrorDetails) {\n super(message)\n this.name = 'TorqueIntelligenceError'\n this.code = options.code\n this.statusCode = options.statusCode\n this.details = options.details\n this.retryAfterMs = options.retryAfterMs\n Object.setPrototypeOf(this, TorqueIntelligenceError.prototype)\n }\n}\n\nexport function parseTorqueV1ErrorBody(\n body: unknown,\n statusCode: number,\n fallbackMessage: string,\n): TorqueIntelligenceError {\n const envelope = body as { error?: { code?: string; message?: string; details?: Record<string, unknown> } } | null\n const err = envelope?.error\n const code = typeof err?.code === 'string' ? err.code : 'API_ERROR'\n const message = typeof err?.message === 'string' ? err.message : fallbackMessage\n const details = err?.details\n const retryAfterRaw = details?.retryAfterMs\n const retryAfterMs =\n code === 'COOLDOWN' && typeof retryAfterRaw === 'number' && Number.isFinite(retryAfterRaw)\n ? retryAfterRaw\n : undefined\n\n return new TorqueIntelligenceError(message, {\n code,\n statusCode,\n details,\n retryAfterMs,\n })\n}\n","import { parseTorqueV1ErrorBody, TorqueIntelligenceError } from './errors'\n\nexport interface TorqueIntelligenceHttpConfig {\n apiKey: string\n baseUrl: string\n timeout: number\n cooldownRetries: number\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nexport async function torqueIntelligenceGet<T>(\n config: TorqueIntelligenceHttpConfig,\n path: string,\n attempt = 0,\n): Promise<T> {\n const url = `${config.baseUrl}${path}`\n const controller = new AbortController()\n const timeoutId = setTimeout(() => controller.abort(), config.timeout)\n\n try {\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n Authorization: `Bearer ${config.apiKey}`,\n },\n signal: controller.signal,\n })\n\n clearTimeout(timeoutId)\n\n const body: unknown = await response.json().catch(() => ({}))\n\n if (!response.ok) {\n const error = parseTorqueV1ErrorBody(\n body,\n response.status,\n `HTTP ${response.status}: ${response.statusText}`,\n )\n\n if (\n error.code === 'COOLDOWN' &&\n error.retryAfterMs != null &&\n attempt < config.cooldownRetries\n ) {\n await sleep(error.retryAfterMs)\n return torqueIntelligenceGet<T>(config, path, attempt + 1)\n }\n\n throw error\n }\n\n return body as T\n } catch (error) {\n clearTimeout(timeoutId)\n\n if (error instanceof TorqueIntelligenceError) {\n throw error\n }\n\n if (error instanceof Error) {\n if (error.name === 'AbortError') {\n throw new TorqueIntelligenceError('Request timeout', {\n code: 'TIMEOUT',\n statusCode: 408,\n })\n }\n throw new TorqueIntelligenceError(error.message, {\n code: 'NETWORK_ERROR',\n statusCode: 500,\n })\n }\n\n throw new TorqueIntelligenceError('Request failed', {\n code: 'UNKNOWN_ERROR',\n statusCode: 500,\n })\n }\n}\n","import type {\n GetHappeningNowParams,\n GetIntelligenceFeedParams,\n GetTradeAnglesParams,\n IntelligenceItemKind,\n IntelligenceLaneId,\n} from '@torquefi/types/intelligence'\nimport type {\n GetLendingOpportunitiesParams,\n GetYieldOpportunitiesParams,\n} from '@torquefi/types/opportunities'\n\nfunction appendCsv(\n params: URLSearchParams,\n key: string,\n values: readonly string[] | undefined,\n): void {\n if (values?.length) {\n params.set(key, values.join(','))\n }\n}\n\nexport function buildFeedQuery(params: GetIntelligenceFeedParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.walletAddress?.trim()) {\n sp.set('walletAddress', params.walletAddress.trim())\n }\n if (params.chainId != null && Number.isFinite(params.chainId)) {\n sp.set('chainId', String(params.chainId))\n }\n appendCsv(sp, 'lanes', params.lanes as IntelligenceLaneId[] | undefined)\n appendCsv(sp, 'kinds', params.kinds as IntelligenceItemKind[] | undefined)\n if (params.limit != null && Number.isFinite(params.limit)) {\n sp.set('limit', String(params.limit))\n }\n if (params.includeBrief) {\n sp.set('includeBrief', '1')\n }\n if (params.force) {\n sp.set('force', '1')\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildTradeAnglesQuery(params: GetTradeAnglesParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.walletAddress?.trim()) {\n sp.set('walletAddress', params.walletAddress.trim())\n }\n if (params.force) {\n sp.set('force', '1')\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildHappeningNowQuery(params: GetHappeningNowParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.chainId != null && Number.isFinite(params.chainId)) {\n sp.set('chainId', String(params.chainId))\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildYieldOpportunitiesQuery(params: GetYieldOpportunitiesParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.walletAddress?.trim()) {\n sp.set('walletAddress', params.walletAddress.trim())\n }\n if (params.minIdleUsd != null && Number.isFinite(params.minIdleUsd)) {\n sp.set('minIdleUsd', String(params.minIdleUsd))\n }\n if (params.maxPersonalized != null && Number.isFinite(params.maxPersonalized)) {\n sp.set('maxPersonalized', String(params.maxPersonalized))\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildLendingOpportunitiesQuery(params: GetLendingOpportunitiesParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.chainId != null && Number.isFinite(params.chainId)) {\n sp.set('chainId', String(params.chainId))\n }\n if (params.tokenFilter?.trim()) {\n sp.set('tokenFilter', params.tokenFilter.trim())\n }\n if (params.protocol?.trim()) {\n sp.set('protocol', params.protocol.trim())\n }\n if (params.limit != null && Number.isFinite(params.limit)) {\n sp.set('limit', String(params.limit))\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n","import type {\n GetHappeningNowParams,\n GetIntelligenceFeedParams,\n GetTradeAnglesParams,\n HappeningNowResponseV1,\n IntelligenceFeedResponseV1,\n TradeAnglesResponseV1,\n} from '@torquefi/types/intelligence'\nimport type {\n GetLendingOpportunitiesParams,\n GetYieldOpportunitiesParams,\n LendingOpportunitiesResponseV1,\n YieldOpportunitiesResponseV1,\n} from '@torquefi/types/opportunities'\nimport type { TorqueCapabilitiesProbe, TorquePlatformClientConfig } from '@torquefi/types/platform'\nimport { INTELLIGENCE_MANIFEST_VERSION } from '@torquefi/types/intelligence'\n\nimport { TorqueIntelligenceError } from './errors'\nimport { torqueIntelligenceGet, type TorqueIntelligenceHttpConfig } from './http'\nimport {\n buildFeedQuery,\n buildHappeningNowQuery,\n buildTradeAnglesQuery,\n buildYieldOpportunitiesQuery,\n buildLendingOpportunitiesQuery,\n} from './query'\n\nexport interface TorqueIntelligenceOptions extends TorquePlatformClientConfig {\n /** Automatic retries after 429 COOLDOWN (default 1). */\n cooldownRetries?: number\n}\n\nexport type { TorquePlatformClientConfig as TorqueIntelligenceConfig } from '@torquefi/types/platform'\n\nexport { TorqueIntelligenceError }\nexport type {\n GetHappeningNowParams,\n GetIntelligenceFeedParams,\n GetTradeAnglesParams,\n HappeningNowResponseV1,\n IntelligenceFeedResponseV1,\n IntelligenceItemV1,\n TradeAnglesResponseV1,\n} from '@torquefi/types/intelligence'\nexport type {\n GetLendingOpportunitiesParams,\n GetYieldOpportunitiesParams,\n LendingOpportunitiesResponseV1,\n YieldOpportunitiesResponseV1,\n} from '@torquefi/types/opportunities'\n\nfunction validateConfig(config: TorqueIntelligenceOptions): void {\n if (!config.apiKey?.trim()) {\n throw new TorqueIntelligenceError('API key is required', {\n code: 'INVALID_CONFIG',\n statusCode: 400,\n })\n }\n if (config.timeout != null && (typeof config.timeout !== 'number' || config.timeout <= 0)) {\n throw new TorqueIntelligenceError('Timeout must be a positive number', {\n code: 'INVALID_CONFIG',\n statusCode: 400,\n })\n }\n if (\n config.cooldownRetries != null &&\n (typeof config.cooldownRetries !== 'number' || config.cooldownRetries < 0)\n ) {\n throw new TorqueIntelligenceError('cooldownRetries must be a non-negative number', {\n code: 'INVALID_CONFIG',\n statusCode: 400,\n })\n }\n}\n\nfunction toHttpConfig(config: TorqueIntelligenceOptions): TorqueIntelligenceHttpConfig {\n return {\n apiKey: config.apiKey.trim(),\n baseUrl: (config.baseUrl || 'https://app.torque.fi').replace(/\\/$/, ''),\n timeout: config.timeout ?? 30_000,\n cooldownRetries: config.cooldownRetries ?? 1,\n }\n}\n\nexport class TorqueIntelligence {\n private readonly http: TorqueIntelligenceHttpConfig\n\n constructor(config: TorqueIntelligenceOptions) {\n validateConfig(config)\n this.http = toHttpConfig(config)\n }\n\n /**\n * Primary integrator feed — normalized IntelligenceItemV1[], lanes, optional brief.\n * GET /api/v1/intelligence/feed\n */\n async getFeed(params?: GetIntelligenceFeedParams): Promise<IntelligenceFeedResponseV1> {\n return torqueIntelligenceGet<IntelligenceFeedResponseV1>(\n this.http,\n `/api/v1/intelligence/feed${buildFeedQuery(params)}`,\n )\n }\n\n /** Ranked trade angles (desk lane). GET /api/v1/intelligence/trade-angles */\n async getTradeAngles(params?: GetTradeAnglesParams): Promise<TradeAnglesResponseV1> {\n return torqueIntelligenceGet<TradeAnglesResponseV1>(\n this.http,\n `/api/v1/intelligence/trade-angles${buildTradeAnglesQuery(params)}`,\n )\n }\n\n /** Timely macro/crypto signals. GET /api/v1/intelligence/happening-now */\n async getHappeningNow(params?: GetHappeningNowParams): Promise<HappeningNowResponseV1> {\n return torqueIntelligenceGet<HappeningNowResponseV1>(\n this.http,\n `/api/v1/intelligence/happening-now${buildHappeningNowQuery(params)}`,\n )\n }\n\n /**\n * Yield Spotlight market APY + optional personalized idle-cash ideas.\n * GET /api/v1/opportunities/yield\n */\n async getYieldOpportunities(\n params?: GetYieldOpportunitiesParams,\n ): Promise<YieldOpportunitiesResponseV1> {\n return torqueIntelligenceGet<YieldOpportunitiesResponseV1>(\n this.http,\n `/api/v1/opportunities/yield${buildYieldOpportunitiesQuery(params)}`,\n )\n }\n\n /**\n * Lend/Borrow catalog rates — supply APY and borrow APR per market row.\n * GET /api/v1/opportunities/lending\n */\n async getLendingOpportunities(\n params?: GetLendingOpportunitiesParams,\n ): Promise<LendingOpportunitiesResponseV1> {\n return torqueIntelligenceGet<LendingOpportunitiesResponseV1>(\n this.http,\n `/api/v1/opportunities/lending${buildLendingOpportunitiesQuery(params)}`,\n )\n }\n\n /** Capability manifest probe. GET /api/v1/capabilities */\n async getCapabilities(): Promise<TorqueCapabilitiesProbe> {\n return torqueIntelligenceGet<TorqueCapabilitiesProbe>(this.http, '/api/v1/capabilities')\n }\n\n /**\n * Throws if the server manifest is older than the SDK's expected Intelligence schema version.\n */\n assertManifestCompatibility(manifestVersion: number): void {\n if (manifestVersion < INTELLIGENCE_MANIFEST_VERSION) {\n throw new TorqueIntelligenceError(\n `Server manifest v${manifestVersion} is older than client expectation v${INTELLIGENCE_MANIFEST_VERSION}`,\n {\n code: 'MANIFEST_MISMATCH',\n statusCode: 400,\n details: {\n serverVersion: manifestVersion,\n clientVersion: INTELLIGENCE_MANIFEST_VERSION,\n },\n },\n )\n }\n }\n}\n\nexport function createTorqueIntelligence(config: TorqueIntelligenceOptions): TorqueIntelligence {\n return new TorqueIntelligence(config)\n}\n\n/**\n * Reads TORQUE_API_KEY and optional TORQUE_BASE_URL from the environment.\n */\nexport function createTorqueIntelligenceFromEnv(\n overrides?: Partial<TorqueIntelligenceOptions>,\n): TorqueIntelligence {\n const apiKey = process.env.TORQUE_API_KEY || overrides?.apiKey\n if (!apiKey) {\n throw new TorqueIntelligenceError('TORQUE_API_KEY environment variable is required', {\n code: 'MISSING_ENV_VARS',\n statusCode: 400,\n })\n }\n\n return new TorqueIntelligence({\n apiKey,\n baseUrl: process.env.TORQUE_BASE_URL || overrides?.baseUrl,\n timeout: overrides?.timeout,\n cooldownRetries: overrides?.cooldownRetries,\n })\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/errors.ts","../src/http.ts","../src/query.ts","../src/index.ts"],"sourcesContent":["export interface TorqueIntelligenceErrorDetails {\n code: string\n statusCode: number\n details?: Record<string, unknown>\n retryAfterMs?: number\n}\n\nexport class TorqueIntelligenceError extends Error {\n code: string\n statusCode: number\n details?: Record<string, unknown>\n retryAfterMs?: number\n\n constructor(message: string, options: TorqueIntelligenceErrorDetails) {\n super(message)\n this.name = 'TorqueIntelligenceError'\n this.code = options.code\n this.statusCode = options.statusCode\n this.details = options.details\n this.retryAfterMs = options.retryAfterMs\n Object.setPrototypeOf(this, TorqueIntelligenceError.prototype)\n }\n}\n\nexport function parseTorqueV1ErrorBody(\n body: unknown,\n statusCode: number,\n fallbackMessage: string,\n): TorqueIntelligenceError {\n const envelope = body as { error?: { code?: string; message?: string; details?: Record<string, unknown> } } | null\n const err = envelope?.error\n const code = typeof err?.code === 'string' ? err.code : 'API_ERROR'\n const message = typeof err?.message === 'string' ? err.message : fallbackMessage\n const details = err?.details\n const retryAfterRaw = details?.retryAfterMs\n const retryAfterMs =\n code === 'COOLDOWN' && typeof retryAfterRaw === 'number' && Number.isFinite(retryAfterRaw)\n ? retryAfterRaw\n : undefined\n\n return new TorqueIntelligenceError(message, {\n code,\n statusCode,\n details,\n retryAfterMs,\n })\n}\n","import { parseTorqueV1ErrorBody, TorqueIntelligenceError } from './errors'\n\nexport interface TorqueIntelligenceHttpConfig {\n apiKey: string\n baseUrl: string\n timeout: number\n cooldownRetries: number\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nexport async function torqueIntelligenceGet<T>(\n config: TorqueIntelligenceHttpConfig,\n path: string,\n attempt = 0,\n): Promise<T> {\n const url = `${config.baseUrl}${path}`\n const controller = new AbortController()\n const timeoutId = setTimeout(() => controller.abort(), config.timeout)\n\n try {\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n Authorization: `Bearer ${config.apiKey}`,\n },\n signal: controller.signal,\n })\n\n clearTimeout(timeoutId)\n\n const body: unknown = await response.json().catch(() => ({}))\n\n if (!response.ok) {\n const error = parseTorqueV1ErrorBody(\n body,\n response.status,\n `HTTP ${response.status}: ${response.statusText}`,\n )\n\n if (\n error.code === 'COOLDOWN' &&\n error.retryAfterMs != null &&\n attempt < config.cooldownRetries\n ) {\n await sleep(error.retryAfterMs)\n return torqueIntelligenceGet<T>(config, path, attempt + 1)\n }\n\n throw error\n }\n\n return body as T\n } catch (error) {\n clearTimeout(timeoutId)\n\n if (error instanceof TorqueIntelligenceError) {\n throw error\n }\n\n if (error instanceof Error) {\n if (error.name === 'AbortError') {\n throw new TorqueIntelligenceError('Request timeout', {\n code: 'TIMEOUT',\n statusCode: 408,\n })\n }\n throw new TorqueIntelligenceError(error.message, {\n code: 'NETWORK_ERROR',\n statusCode: 500,\n })\n }\n\n throw new TorqueIntelligenceError('Request failed', {\n code: 'UNKNOWN_ERROR',\n statusCode: 500,\n })\n }\n}\n","import type {\n GetHappeningNowParams,\n GetIntelligenceFeedParams,\n GetTradeAnglesParams,\n IntelligenceItemKind,\n IntelligenceLaneId,\n} from '@torquefi/types/intelligence'\nimport type {\n GetLendingOpportunitiesParams,\n GetYieldOpportunitiesParams,\n} from '@torquefi/types/opportunities'\n\nfunction appendCsv(\n params: URLSearchParams,\n key: string,\n values: readonly string[] | undefined,\n): void {\n if (values?.length) {\n params.set(key, values.join(','))\n }\n}\n\nexport function buildFeedQuery(params: GetIntelligenceFeedParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.walletAddress?.trim()) {\n sp.set('walletAddress', params.walletAddress.trim())\n }\n if (params.chainId != null && Number.isFinite(params.chainId)) {\n sp.set('chainId', String(params.chainId))\n }\n appendCsv(sp, 'lanes', params.lanes as IntelligenceLaneId[] | undefined)\n appendCsv(sp, 'kinds', params.kinds as IntelligenceItemKind[] | undefined)\n if (params.limit != null && Number.isFinite(params.limit)) {\n sp.set('limit', String(params.limit))\n }\n if (params.includeBrief) {\n sp.set('includeBrief', '1')\n }\n if (params.force) {\n sp.set('force', '1')\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildTradeAnglesQuery(params: GetTradeAnglesParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.walletAddress?.trim()) {\n sp.set('walletAddress', params.walletAddress.trim())\n }\n if (params.force) {\n sp.set('force', '1')\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildHappeningNowQuery(params: GetHappeningNowParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.chainId != null && Number.isFinite(params.chainId)) {\n sp.set('chainId', String(params.chainId))\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildYieldOpportunitiesQuery(params: GetYieldOpportunitiesParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.walletAddress?.trim()) {\n sp.set('walletAddress', params.walletAddress.trim())\n }\n if (params.minIdleUsd != null && Number.isFinite(params.minIdleUsd)) {\n sp.set('minIdleUsd', String(params.minIdleUsd))\n }\n if (params.maxPersonalized != null && Number.isFinite(params.maxPersonalized)) {\n sp.set('maxPersonalized', String(params.maxPersonalized))\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildLendingOpportunitiesQuery(params: GetLendingOpportunitiesParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.chainId != null && Number.isFinite(params.chainId)) {\n sp.set('chainId', String(params.chainId))\n }\n if (params.tokenFilter?.trim()) {\n sp.set('tokenFilter', params.tokenFilter.trim())\n }\n if (params.protocol?.trim()) {\n sp.set('protocol', params.protocol.trim())\n }\n if (params.limit != null && Number.isFinite(params.limit)) {\n sp.set('limit', String(params.limit))\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n","import type {\n GetHappeningNowParams,\n GetIntelligenceFeedParams,\n GetTradeAnglesParams,\n HappeningNowResponseV1,\n IntelligenceFeedResponseV1,\n TradeAnglesResponseV1,\n} from '@torquefi/types/intelligence'\nimport type {\n GetLendingOpportunitiesParams,\n GetYieldOpportunitiesParams,\n LendingOpportunitiesResponseV1,\n YieldOpportunitiesResponseV1,\n} from '@torquefi/types/opportunities'\nimport type {\n EarningsSpotlightWidgetResponseV1,\n FundingRadarWidgetResponseV1,\n} from '@torquefi/types/widgets'\nimport type { TorqueCapabilitiesProbe, TorquePlatformClientConfig } from '@torquefi/types/platform'\nimport { INTELLIGENCE_MANIFEST_VERSION } from '@torquefi/types/intelligence'\n\nimport { TorqueIntelligenceError } from './errors'\nimport { torqueIntelligenceGet, type TorqueIntelligenceHttpConfig } from './http'\nimport {\n buildFeedQuery,\n buildHappeningNowQuery,\n buildTradeAnglesQuery,\n buildYieldOpportunitiesQuery,\n buildLendingOpportunitiesQuery,\n} from './query'\n\nexport interface TorqueIntelligenceOptions extends TorquePlatformClientConfig {\n /** Automatic retries after 429 COOLDOWN (default 1). */\n cooldownRetries?: number\n}\n\nexport type { TorquePlatformClientConfig as TorqueIntelligenceConfig } from '@torquefi/types/platform'\n\nexport { TorqueIntelligenceError }\nexport type {\n GetHappeningNowParams,\n GetIntelligenceFeedParams,\n GetTradeAnglesParams,\n HappeningNowResponseV1,\n IntelligenceFeedResponseV1,\n IntelligenceItemV1,\n TradeAnglesResponseV1,\n} from '@torquefi/types/intelligence'\nexport type {\n GetLendingOpportunitiesParams,\n GetYieldOpportunitiesParams,\n LendingOpportunitiesResponseV1,\n YieldOpportunitiesResponseV1,\n} from '@torquefi/types/opportunities'\nexport type {\n EarningsSpotlightWidgetResponseV1,\n EarningsSpotlightRowV1,\n FundingRadarWidgetResponseV1,\n FundingRadarRowV1,\n WidgetMetaV1,\n} from '@torquefi/types/widgets'\n\nfunction validateConfig(config: TorqueIntelligenceOptions): void {\n if (!config.apiKey?.trim()) {\n throw new TorqueIntelligenceError('API key is required', {\n code: 'INVALID_CONFIG',\n statusCode: 400,\n })\n }\n if (config.timeout != null && (typeof config.timeout !== 'number' || config.timeout <= 0)) {\n throw new TorqueIntelligenceError('Timeout must be a positive number', {\n code: 'INVALID_CONFIG',\n statusCode: 400,\n })\n }\n if (\n config.cooldownRetries != null &&\n (typeof config.cooldownRetries !== 'number' || config.cooldownRetries < 0)\n ) {\n throw new TorqueIntelligenceError('cooldownRetries must be a non-negative number', {\n code: 'INVALID_CONFIG',\n statusCode: 400,\n })\n }\n}\n\nfunction toHttpConfig(config: TorqueIntelligenceOptions): TorqueIntelligenceHttpConfig {\n return {\n apiKey: config.apiKey.trim(),\n baseUrl: (config.baseUrl || 'https://app.torque.fi').replace(/\\/$/, ''),\n timeout: config.timeout ?? 30_000,\n cooldownRetries: config.cooldownRetries ?? 1,\n }\n}\n\nexport class TorqueIntelligence {\n private readonly http: TorqueIntelligenceHttpConfig\n\n constructor(config: TorqueIntelligenceOptions) {\n validateConfig(config)\n this.http = toHttpConfig(config)\n }\n\n /**\n * Primary integrator feed — normalized IntelligenceItemV1[], lanes, optional brief.\n * GET /api/v1/intelligence/feed\n */\n async getFeed(params?: GetIntelligenceFeedParams): Promise<IntelligenceFeedResponseV1> {\n return torqueIntelligenceGet<IntelligenceFeedResponseV1>(\n this.http,\n `/api/v1/intelligence/feed${buildFeedQuery(params)}`,\n )\n }\n\n /** Ranked trade angles (desk lane). GET /api/v1/intelligence/trade-angles */\n async getTradeAngles(params?: GetTradeAnglesParams): Promise<TradeAnglesResponseV1> {\n return torqueIntelligenceGet<TradeAnglesResponseV1>(\n this.http,\n `/api/v1/intelligence/trade-angles${buildTradeAnglesQuery(params)}`,\n )\n }\n\n /** Timely macro/crypto signals. GET /api/v1/intelligence/happening-now */\n async getHappeningNow(params?: GetHappeningNowParams): Promise<HappeningNowResponseV1> {\n return torqueIntelligenceGet<HappeningNowResponseV1>(\n this.http,\n `/api/v1/intelligence/happening-now${buildHappeningNowQuery(params)}`,\n )\n }\n\n /**\n * Yield Spotlight market APY + optional personalized idle-cash ideas.\n * GET /api/v1/opportunities/yield\n */\n async getYieldOpportunities(\n params?: GetYieldOpportunitiesParams,\n ): Promise<YieldOpportunitiesResponseV1> {\n return torqueIntelligenceGet<YieldOpportunitiesResponseV1>(\n this.http,\n `/api/v1/opportunities/yield${buildYieldOpportunitiesQuery(params)}`,\n )\n }\n\n /**\n * Lend/Borrow catalog rates — supply APY and borrow APR per market row.\n * GET /api/v1/opportunities/lending\n */\n async getLendingOpportunities(\n params?: GetLendingOpportunitiesParams,\n ): Promise<LendingOpportunitiesResponseV1> {\n return torqueIntelligenceGet<LendingOpportunitiesResponseV1>(\n this.http,\n `/api/v1/opportunities/lending${buildLendingOpportunitiesQuery(params)}`,\n )\n }\n\n /** Hyperliquid funding radar — GET /api/v1/widgets/funding-radar */\n async getFundingRadarWidget(): Promise<FundingRadarWidgetResponseV1> {\n return torqueIntelligenceGet<FundingRadarWidgetResponseV1>(\n this.http,\n '/api/v1/widgets/funding-radar',\n )\n }\n\n /** Upcoming earnings spotlight — GET /api/v1/widgets/earnings-spotlight */\n async getEarningsSpotlightWidget(): Promise<EarningsSpotlightWidgetResponseV1> {\n return torqueIntelligenceGet<EarningsSpotlightWidgetResponseV1>(\n this.http,\n '/api/v1/widgets/earnings-spotlight',\n )\n }\n\n /** Capability manifest probe. GET /api/v1/capabilities */\n async getCapabilities(): Promise<TorqueCapabilitiesProbe> {\n return torqueIntelligenceGet<TorqueCapabilitiesProbe>(this.http, '/api/v1/capabilities')\n }\n\n /**\n * Throws if the server manifest is older than the SDK's expected Intelligence schema version.\n */\n assertManifestCompatibility(manifestVersion: number): void {\n if (manifestVersion < INTELLIGENCE_MANIFEST_VERSION) {\n throw new TorqueIntelligenceError(\n `Server manifest v${manifestVersion} is older than client expectation v${INTELLIGENCE_MANIFEST_VERSION}`,\n {\n code: 'MANIFEST_MISMATCH',\n statusCode: 400,\n details: {\n serverVersion: manifestVersion,\n clientVersion: INTELLIGENCE_MANIFEST_VERSION,\n },\n },\n )\n }\n }\n}\n\nexport function createTorqueIntelligence(config: TorqueIntelligenceOptions): TorqueIntelligence {\n return new TorqueIntelligence(config)\n}\n\n/**\n * Reads TORQUE_API_KEY and optional TORQUE_BASE_URL from the environment.\n */\nexport function createTorqueIntelligenceFromEnv(\n overrides?: Partial<TorqueIntelligenceOptions>,\n): TorqueIntelligence {\n const apiKey = process.env.TORQUE_API_KEY || overrides?.apiKey\n if (!apiKey) {\n throw new TorqueIntelligenceError('TORQUE_API_KEY environment variable is required', {\n code: 'MISSING_ENV_VARS',\n statusCode: 400,\n })\n }\n\n return new TorqueIntelligence({\n apiKey,\n baseUrl: process.env.TORQUE_BASE_URL || overrides?.baseUrl,\n timeout: overrides?.timeout,\n cooldownRetries: overrides?.cooldownRetries,\n })\n}\n"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -226,6 +226,14 @@ class TorqueIntelligence {
|
|
|
226
226
|
async getLendingOpportunities(params) {
|
|
227
227
|
return torqueIntelligenceGet(this.http, `/api/v1/opportunities/lending${buildLendingOpportunitiesQuery(params)}`);
|
|
228
228
|
}
|
|
229
|
+
/** Hyperliquid funding radar — GET /api/v1/widgets/funding-radar */
|
|
230
|
+
async getFundingRadarWidget() {
|
|
231
|
+
return torqueIntelligenceGet(this.http, '/api/v1/widgets/funding-radar');
|
|
232
|
+
}
|
|
233
|
+
/** Upcoming earnings spotlight — GET /api/v1/widgets/earnings-spotlight */
|
|
234
|
+
async getEarningsSpotlightWidget() {
|
|
235
|
+
return torqueIntelligenceGet(this.http, '/api/v1/widgets/earnings-spotlight');
|
|
236
|
+
}
|
|
229
237
|
/** Capability manifest probe. GET /api/v1/capabilities */
|
|
230
238
|
async getCapabilities() {
|
|
231
239
|
return torqueIntelligenceGet(this.http, '/api/v1/capabilities');
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/errors.ts","../src/http.ts","../src/query.ts","../src/index.ts"],"sourcesContent":["export interface TorqueIntelligenceErrorDetails {\n code: string\n statusCode: number\n details?: Record<string, unknown>\n retryAfterMs?: number\n}\n\nexport class TorqueIntelligenceError extends Error {\n code: string\n statusCode: number\n details?: Record<string, unknown>\n retryAfterMs?: number\n\n constructor(message: string, options: TorqueIntelligenceErrorDetails) {\n super(message)\n this.name = 'TorqueIntelligenceError'\n this.code = options.code\n this.statusCode = options.statusCode\n this.details = options.details\n this.retryAfterMs = options.retryAfterMs\n Object.setPrototypeOf(this, TorqueIntelligenceError.prototype)\n }\n}\n\nexport function parseTorqueV1ErrorBody(\n body: unknown,\n statusCode: number,\n fallbackMessage: string,\n): TorqueIntelligenceError {\n const envelope = body as { error?: { code?: string; message?: string; details?: Record<string, unknown> } } | null\n const err = envelope?.error\n const code = typeof err?.code === 'string' ? err.code : 'API_ERROR'\n const message = typeof err?.message === 'string' ? err.message : fallbackMessage\n const details = err?.details\n const retryAfterRaw = details?.retryAfterMs\n const retryAfterMs =\n code === 'COOLDOWN' && typeof retryAfterRaw === 'number' && Number.isFinite(retryAfterRaw)\n ? retryAfterRaw\n : undefined\n\n return new TorqueIntelligenceError(message, {\n code,\n statusCode,\n details,\n retryAfterMs,\n })\n}\n","import { parseTorqueV1ErrorBody, TorqueIntelligenceError } from './errors'\n\nexport interface TorqueIntelligenceHttpConfig {\n apiKey: string\n baseUrl: string\n timeout: number\n cooldownRetries: number\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nexport async function torqueIntelligenceGet<T>(\n config: TorqueIntelligenceHttpConfig,\n path: string,\n attempt = 0,\n): Promise<T> {\n const url = `${config.baseUrl}${path}`\n const controller = new AbortController()\n const timeoutId = setTimeout(() => controller.abort(), config.timeout)\n\n try {\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n Authorization: `Bearer ${config.apiKey}`,\n },\n signal: controller.signal,\n })\n\n clearTimeout(timeoutId)\n\n const body: unknown = await response.json().catch(() => ({}))\n\n if (!response.ok) {\n const error = parseTorqueV1ErrorBody(\n body,\n response.status,\n `HTTP ${response.status}: ${response.statusText}`,\n )\n\n if (\n error.code === 'COOLDOWN' &&\n error.retryAfterMs != null &&\n attempt < config.cooldownRetries\n ) {\n await sleep(error.retryAfterMs)\n return torqueIntelligenceGet<T>(config, path, attempt + 1)\n }\n\n throw error\n }\n\n return body as T\n } catch (error) {\n clearTimeout(timeoutId)\n\n if (error instanceof TorqueIntelligenceError) {\n throw error\n }\n\n if (error instanceof Error) {\n if (error.name === 'AbortError') {\n throw new TorqueIntelligenceError('Request timeout', {\n code: 'TIMEOUT',\n statusCode: 408,\n })\n }\n throw new TorqueIntelligenceError(error.message, {\n code: 'NETWORK_ERROR',\n statusCode: 500,\n })\n }\n\n throw new TorqueIntelligenceError('Request failed', {\n code: 'UNKNOWN_ERROR',\n statusCode: 500,\n })\n }\n}\n","import type {\n GetHappeningNowParams,\n GetIntelligenceFeedParams,\n GetTradeAnglesParams,\n IntelligenceItemKind,\n IntelligenceLaneId,\n} from '@torquefi/types/intelligence'\nimport type {\n GetLendingOpportunitiesParams,\n GetYieldOpportunitiesParams,\n} from '@torquefi/types/opportunities'\n\nfunction appendCsv(\n params: URLSearchParams,\n key: string,\n values: readonly string[] | undefined,\n): void {\n if (values?.length) {\n params.set(key, values.join(','))\n }\n}\n\nexport function buildFeedQuery(params: GetIntelligenceFeedParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.walletAddress?.trim()) {\n sp.set('walletAddress', params.walletAddress.trim())\n }\n if (params.chainId != null && Number.isFinite(params.chainId)) {\n sp.set('chainId', String(params.chainId))\n }\n appendCsv(sp, 'lanes', params.lanes as IntelligenceLaneId[] | undefined)\n appendCsv(sp, 'kinds', params.kinds as IntelligenceItemKind[] | undefined)\n if (params.limit != null && Number.isFinite(params.limit)) {\n sp.set('limit', String(params.limit))\n }\n if (params.includeBrief) {\n sp.set('includeBrief', '1')\n }\n if (params.force) {\n sp.set('force', '1')\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildTradeAnglesQuery(params: GetTradeAnglesParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.walletAddress?.trim()) {\n sp.set('walletAddress', params.walletAddress.trim())\n }\n if (params.force) {\n sp.set('force', '1')\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildHappeningNowQuery(params: GetHappeningNowParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.chainId != null && Number.isFinite(params.chainId)) {\n sp.set('chainId', String(params.chainId))\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildYieldOpportunitiesQuery(params: GetYieldOpportunitiesParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.walletAddress?.trim()) {\n sp.set('walletAddress', params.walletAddress.trim())\n }\n if (params.minIdleUsd != null && Number.isFinite(params.minIdleUsd)) {\n sp.set('minIdleUsd', String(params.minIdleUsd))\n }\n if (params.maxPersonalized != null && Number.isFinite(params.maxPersonalized)) {\n sp.set('maxPersonalized', String(params.maxPersonalized))\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildLendingOpportunitiesQuery(params: GetLendingOpportunitiesParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.chainId != null && Number.isFinite(params.chainId)) {\n sp.set('chainId', String(params.chainId))\n }\n if (params.tokenFilter?.trim()) {\n sp.set('tokenFilter', params.tokenFilter.trim())\n }\n if (params.protocol?.trim()) {\n sp.set('protocol', params.protocol.trim())\n }\n if (params.limit != null && Number.isFinite(params.limit)) {\n sp.set('limit', String(params.limit))\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n","import type {\n GetHappeningNowParams,\n GetIntelligenceFeedParams,\n GetTradeAnglesParams,\n HappeningNowResponseV1,\n IntelligenceFeedResponseV1,\n TradeAnglesResponseV1,\n} from '@torquefi/types/intelligence'\nimport type {\n GetLendingOpportunitiesParams,\n GetYieldOpportunitiesParams,\n LendingOpportunitiesResponseV1,\n YieldOpportunitiesResponseV1,\n} from '@torquefi/types/opportunities'\nimport type { TorqueCapabilitiesProbe, TorquePlatformClientConfig } from '@torquefi/types/platform'\nimport { INTELLIGENCE_MANIFEST_VERSION } from '@torquefi/types/intelligence'\n\nimport { TorqueIntelligenceError } from './errors'\nimport { torqueIntelligenceGet, type TorqueIntelligenceHttpConfig } from './http'\nimport {\n buildFeedQuery,\n buildHappeningNowQuery,\n buildTradeAnglesQuery,\n buildYieldOpportunitiesQuery,\n buildLendingOpportunitiesQuery,\n} from './query'\n\nexport interface TorqueIntelligenceOptions extends TorquePlatformClientConfig {\n /** Automatic retries after 429 COOLDOWN (default 1). */\n cooldownRetries?: number\n}\n\nexport type { TorquePlatformClientConfig as TorqueIntelligenceConfig } from '@torquefi/types/platform'\n\nexport { TorqueIntelligenceError }\nexport type {\n GetHappeningNowParams,\n GetIntelligenceFeedParams,\n GetTradeAnglesParams,\n HappeningNowResponseV1,\n IntelligenceFeedResponseV1,\n IntelligenceItemV1,\n TradeAnglesResponseV1,\n} from '@torquefi/types/intelligence'\nexport type {\n GetLendingOpportunitiesParams,\n GetYieldOpportunitiesParams,\n LendingOpportunitiesResponseV1,\n YieldOpportunitiesResponseV1,\n} from '@torquefi/types/opportunities'\n\nfunction validateConfig(config: TorqueIntelligenceOptions): void {\n if (!config.apiKey?.trim()) {\n throw new TorqueIntelligenceError('API key is required', {\n code: 'INVALID_CONFIG',\n statusCode: 400,\n })\n }\n if (config.timeout != null && (typeof config.timeout !== 'number' || config.timeout <= 0)) {\n throw new TorqueIntelligenceError('Timeout must be a positive number', {\n code: 'INVALID_CONFIG',\n statusCode: 400,\n })\n }\n if (\n config.cooldownRetries != null &&\n (typeof config.cooldownRetries !== 'number' || config.cooldownRetries < 0)\n ) {\n throw new TorqueIntelligenceError('cooldownRetries must be a non-negative number', {\n code: 'INVALID_CONFIG',\n statusCode: 400,\n })\n }\n}\n\nfunction toHttpConfig(config: TorqueIntelligenceOptions): TorqueIntelligenceHttpConfig {\n return {\n apiKey: config.apiKey.trim(),\n baseUrl: (config.baseUrl || 'https://app.torque.fi').replace(/\\/$/, ''),\n timeout: config.timeout ?? 30_000,\n cooldownRetries: config.cooldownRetries ?? 1,\n }\n}\n\nexport class TorqueIntelligence {\n private readonly http: TorqueIntelligenceHttpConfig\n\n constructor(config: TorqueIntelligenceOptions) {\n validateConfig(config)\n this.http = toHttpConfig(config)\n }\n\n /**\n * Primary integrator feed — normalized IntelligenceItemV1[], lanes, optional brief.\n * GET /api/v1/intelligence/feed\n */\n async getFeed(params?: GetIntelligenceFeedParams): Promise<IntelligenceFeedResponseV1> {\n return torqueIntelligenceGet<IntelligenceFeedResponseV1>(\n this.http,\n `/api/v1/intelligence/feed${buildFeedQuery(params)}`,\n )\n }\n\n /** Ranked trade angles (desk lane). GET /api/v1/intelligence/trade-angles */\n async getTradeAngles(params?: GetTradeAnglesParams): Promise<TradeAnglesResponseV1> {\n return torqueIntelligenceGet<TradeAnglesResponseV1>(\n this.http,\n `/api/v1/intelligence/trade-angles${buildTradeAnglesQuery(params)}`,\n )\n }\n\n /** Timely macro/crypto signals. GET /api/v1/intelligence/happening-now */\n async getHappeningNow(params?: GetHappeningNowParams): Promise<HappeningNowResponseV1> {\n return torqueIntelligenceGet<HappeningNowResponseV1>(\n this.http,\n `/api/v1/intelligence/happening-now${buildHappeningNowQuery(params)}`,\n )\n }\n\n /**\n * Yield Spotlight market APY + optional personalized idle-cash ideas.\n * GET /api/v1/opportunities/yield\n */\n async getYieldOpportunities(\n params?: GetYieldOpportunitiesParams,\n ): Promise<YieldOpportunitiesResponseV1> {\n return torqueIntelligenceGet<YieldOpportunitiesResponseV1>(\n this.http,\n `/api/v1/opportunities/yield${buildYieldOpportunitiesQuery(params)}`,\n )\n }\n\n /**\n * Lend/Borrow catalog rates — supply APY and borrow APR per market row.\n * GET /api/v1/opportunities/lending\n */\n async getLendingOpportunities(\n params?: GetLendingOpportunitiesParams,\n ): Promise<LendingOpportunitiesResponseV1> {\n return torqueIntelligenceGet<LendingOpportunitiesResponseV1>(\n this.http,\n `/api/v1/opportunities/lending${buildLendingOpportunitiesQuery(params)}`,\n )\n }\n\n /** Capability manifest probe. GET /api/v1/capabilities */\n async getCapabilities(): Promise<TorqueCapabilitiesProbe> {\n return torqueIntelligenceGet<TorqueCapabilitiesProbe>(this.http, '/api/v1/capabilities')\n }\n\n /**\n * Throws if the server manifest is older than the SDK's expected Intelligence schema version.\n */\n assertManifestCompatibility(manifestVersion: number): void {\n if (manifestVersion < INTELLIGENCE_MANIFEST_VERSION) {\n throw new TorqueIntelligenceError(\n `Server manifest v${manifestVersion} is older than client expectation v${INTELLIGENCE_MANIFEST_VERSION}`,\n {\n code: 'MANIFEST_MISMATCH',\n statusCode: 400,\n details: {\n serverVersion: manifestVersion,\n clientVersion: INTELLIGENCE_MANIFEST_VERSION,\n },\n },\n )\n }\n }\n}\n\nexport function createTorqueIntelligence(config: TorqueIntelligenceOptions): TorqueIntelligence {\n return new TorqueIntelligence(config)\n}\n\n/**\n * Reads TORQUE_API_KEY and optional TORQUE_BASE_URL from the environment.\n */\nexport function createTorqueIntelligenceFromEnv(\n overrides?: Partial<TorqueIntelligenceOptions>,\n): TorqueIntelligence {\n const apiKey = process.env.TORQUE_API_KEY || overrides?.apiKey\n if (!apiKey) {\n throw new TorqueIntelligenceError('TORQUE_API_KEY environment variable is required', {\n code: 'MISSING_ENV_VARS',\n statusCode: 400,\n })\n }\n\n return new TorqueIntelligence({\n apiKey,\n baseUrl: process.env.TORQUE_BASE_URL || overrides?.baseUrl,\n timeout: overrides?.timeout,\n cooldownRetries: overrides?.cooldownRetries,\n })\n}\n"],"names":["INTELLIGENCE_MANIFEST_VERSION"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/errors.ts","../src/http.ts","../src/query.ts","../src/index.ts"],"sourcesContent":["export interface TorqueIntelligenceErrorDetails {\n code: string\n statusCode: number\n details?: Record<string, unknown>\n retryAfterMs?: number\n}\n\nexport class TorqueIntelligenceError extends Error {\n code: string\n statusCode: number\n details?: Record<string, unknown>\n retryAfterMs?: number\n\n constructor(message: string, options: TorqueIntelligenceErrorDetails) {\n super(message)\n this.name = 'TorqueIntelligenceError'\n this.code = options.code\n this.statusCode = options.statusCode\n this.details = options.details\n this.retryAfterMs = options.retryAfterMs\n Object.setPrototypeOf(this, TorqueIntelligenceError.prototype)\n }\n}\n\nexport function parseTorqueV1ErrorBody(\n body: unknown,\n statusCode: number,\n fallbackMessage: string,\n): TorqueIntelligenceError {\n const envelope = body as { error?: { code?: string; message?: string; details?: Record<string, unknown> } } | null\n const err = envelope?.error\n const code = typeof err?.code === 'string' ? err.code : 'API_ERROR'\n const message = typeof err?.message === 'string' ? err.message : fallbackMessage\n const details = err?.details\n const retryAfterRaw = details?.retryAfterMs\n const retryAfterMs =\n code === 'COOLDOWN' && typeof retryAfterRaw === 'number' && Number.isFinite(retryAfterRaw)\n ? retryAfterRaw\n : undefined\n\n return new TorqueIntelligenceError(message, {\n code,\n statusCode,\n details,\n retryAfterMs,\n })\n}\n","import { parseTorqueV1ErrorBody, TorqueIntelligenceError } from './errors'\n\nexport interface TorqueIntelligenceHttpConfig {\n apiKey: string\n baseUrl: string\n timeout: number\n cooldownRetries: number\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nexport async function torqueIntelligenceGet<T>(\n config: TorqueIntelligenceHttpConfig,\n path: string,\n attempt = 0,\n): Promise<T> {\n const url = `${config.baseUrl}${path}`\n const controller = new AbortController()\n const timeoutId = setTimeout(() => controller.abort(), config.timeout)\n\n try {\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n Authorization: `Bearer ${config.apiKey}`,\n },\n signal: controller.signal,\n })\n\n clearTimeout(timeoutId)\n\n const body: unknown = await response.json().catch(() => ({}))\n\n if (!response.ok) {\n const error = parseTorqueV1ErrorBody(\n body,\n response.status,\n `HTTP ${response.status}: ${response.statusText}`,\n )\n\n if (\n error.code === 'COOLDOWN' &&\n error.retryAfterMs != null &&\n attempt < config.cooldownRetries\n ) {\n await sleep(error.retryAfterMs)\n return torqueIntelligenceGet<T>(config, path, attempt + 1)\n }\n\n throw error\n }\n\n return body as T\n } catch (error) {\n clearTimeout(timeoutId)\n\n if (error instanceof TorqueIntelligenceError) {\n throw error\n }\n\n if (error instanceof Error) {\n if (error.name === 'AbortError') {\n throw new TorqueIntelligenceError('Request timeout', {\n code: 'TIMEOUT',\n statusCode: 408,\n })\n }\n throw new TorqueIntelligenceError(error.message, {\n code: 'NETWORK_ERROR',\n statusCode: 500,\n })\n }\n\n throw new TorqueIntelligenceError('Request failed', {\n code: 'UNKNOWN_ERROR',\n statusCode: 500,\n })\n }\n}\n","import type {\n GetHappeningNowParams,\n GetIntelligenceFeedParams,\n GetTradeAnglesParams,\n IntelligenceItemKind,\n IntelligenceLaneId,\n} from '@torquefi/types/intelligence'\nimport type {\n GetLendingOpportunitiesParams,\n GetYieldOpportunitiesParams,\n} from '@torquefi/types/opportunities'\n\nfunction appendCsv(\n params: URLSearchParams,\n key: string,\n values: readonly string[] | undefined,\n): void {\n if (values?.length) {\n params.set(key, values.join(','))\n }\n}\n\nexport function buildFeedQuery(params: GetIntelligenceFeedParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.walletAddress?.trim()) {\n sp.set('walletAddress', params.walletAddress.trim())\n }\n if (params.chainId != null && Number.isFinite(params.chainId)) {\n sp.set('chainId', String(params.chainId))\n }\n appendCsv(sp, 'lanes', params.lanes as IntelligenceLaneId[] | undefined)\n appendCsv(sp, 'kinds', params.kinds as IntelligenceItemKind[] | undefined)\n if (params.limit != null && Number.isFinite(params.limit)) {\n sp.set('limit', String(params.limit))\n }\n if (params.includeBrief) {\n sp.set('includeBrief', '1')\n }\n if (params.force) {\n sp.set('force', '1')\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildTradeAnglesQuery(params: GetTradeAnglesParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.walletAddress?.trim()) {\n sp.set('walletAddress', params.walletAddress.trim())\n }\n if (params.force) {\n sp.set('force', '1')\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildHappeningNowQuery(params: GetHappeningNowParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.chainId != null && Number.isFinite(params.chainId)) {\n sp.set('chainId', String(params.chainId))\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildYieldOpportunitiesQuery(params: GetYieldOpportunitiesParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.walletAddress?.trim()) {\n sp.set('walletAddress', params.walletAddress.trim())\n }\n if (params.minIdleUsd != null && Number.isFinite(params.minIdleUsd)) {\n sp.set('minIdleUsd', String(params.minIdleUsd))\n }\n if (params.maxPersonalized != null && Number.isFinite(params.maxPersonalized)) {\n sp.set('maxPersonalized', String(params.maxPersonalized))\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n\nexport function buildLendingOpportunitiesQuery(params: GetLendingOpportunitiesParams = {}): string {\n const sp = new URLSearchParams()\n\n if (params.chainId != null && Number.isFinite(params.chainId)) {\n sp.set('chainId', String(params.chainId))\n }\n if (params.tokenFilter?.trim()) {\n sp.set('tokenFilter', params.tokenFilter.trim())\n }\n if (params.protocol?.trim()) {\n sp.set('protocol', params.protocol.trim())\n }\n if (params.limit != null && Number.isFinite(params.limit)) {\n sp.set('limit', String(params.limit))\n }\n\n const qs = sp.toString()\n return qs ? `?${qs}` : ''\n}\n","import type {\n GetHappeningNowParams,\n GetIntelligenceFeedParams,\n GetTradeAnglesParams,\n HappeningNowResponseV1,\n IntelligenceFeedResponseV1,\n TradeAnglesResponseV1,\n} from '@torquefi/types/intelligence'\nimport type {\n GetLendingOpportunitiesParams,\n GetYieldOpportunitiesParams,\n LendingOpportunitiesResponseV1,\n YieldOpportunitiesResponseV1,\n} from '@torquefi/types/opportunities'\nimport type {\n EarningsSpotlightWidgetResponseV1,\n FundingRadarWidgetResponseV1,\n} from '@torquefi/types/widgets'\nimport type { TorqueCapabilitiesProbe, TorquePlatformClientConfig } from '@torquefi/types/platform'\nimport { INTELLIGENCE_MANIFEST_VERSION } from '@torquefi/types/intelligence'\n\nimport { TorqueIntelligenceError } from './errors'\nimport { torqueIntelligenceGet, type TorqueIntelligenceHttpConfig } from './http'\nimport {\n buildFeedQuery,\n buildHappeningNowQuery,\n buildTradeAnglesQuery,\n buildYieldOpportunitiesQuery,\n buildLendingOpportunitiesQuery,\n} from './query'\n\nexport interface TorqueIntelligenceOptions extends TorquePlatformClientConfig {\n /** Automatic retries after 429 COOLDOWN (default 1). */\n cooldownRetries?: number\n}\n\nexport type { TorquePlatformClientConfig as TorqueIntelligenceConfig } from '@torquefi/types/platform'\n\nexport { TorqueIntelligenceError }\nexport type {\n GetHappeningNowParams,\n GetIntelligenceFeedParams,\n GetTradeAnglesParams,\n HappeningNowResponseV1,\n IntelligenceFeedResponseV1,\n IntelligenceItemV1,\n TradeAnglesResponseV1,\n} from '@torquefi/types/intelligence'\nexport type {\n GetLendingOpportunitiesParams,\n GetYieldOpportunitiesParams,\n LendingOpportunitiesResponseV1,\n YieldOpportunitiesResponseV1,\n} from '@torquefi/types/opportunities'\nexport type {\n EarningsSpotlightWidgetResponseV1,\n EarningsSpotlightRowV1,\n FundingRadarWidgetResponseV1,\n FundingRadarRowV1,\n WidgetMetaV1,\n} from '@torquefi/types/widgets'\n\nfunction validateConfig(config: TorqueIntelligenceOptions): void {\n if (!config.apiKey?.trim()) {\n throw new TorqueIntelligenceError('API key is required', {\n code: 'INVALID_CONFIG',\n statusCode: 400,\n })\n }\n if (config.timeout != null && (typeof config.timeout !== 'number' || config.timeout <= 0)) {\n throw new TorqueIntelligenceError('Timeout must be a positive number', {\n code: 'INVALID_CONFIG',\n statusCode: 400,\n })\n }\n if (\n config.cooldownRetries != null &&\n (typeof config.cooldownRetries !== 'number' || config.cooldownRetries < 0)\n ) {\n throw new TorqueIntelligenceError('cooldownRetries must be a non-negative number', {\n code: 'INVALID_CONFIG',\n statusCode: 400,\n })\n }\n}\n\nfunction toHttpConfig(config: TorqueIntelligenceOptions): TorqueIntelligenceHttpConfig {\n return {\n apiKey: config.apiKey.trim(),\n baseUrl: (config.baseUrl || 'https://app.torque.fi').replace(/\\/$/, ''),\n timeout: config.timeout ?? 30_000,\n cooldownRetries: config.cooldownRetries ?? 1,\n }\n}\n\nexport class TorqueIntelligence {\n private readonly http: TorqueIntelligenceHttpConfig\n\n constructor(config: TorqueIntelligenceOptions) {\n validateConfig(config)\n this.http = toHttpConfig(config)\n }\n\n /**\n * Primary integrator feed — normalized IntelligenceItemV1[], lanes, optional brief.\n * GET /api/v1/intelligence/feed\n */\n async getFeed(params?: GetIntelligenceFeedParams): Promise<IntelligenceFeedResponseV1> {\n return torqueIntelligenceGet<IntelligenceFeedResponseV1>(\n this.http,\n `/api/v1/intelligence/feed${buildFeedQuery(params)}`,\n )\n }\n\n /** Ranked trade angles (desk lane). GET /api/v1/intelligence/trade-angles */\n async getTradeAngles(params?: GetTradeAnglesParams): Promise<TradeAnglesResponseV1> {\n return torqueIntelligenceGet<TradeAnglesResponseV1>(\n this.http,\n `/api/v1/intelligence/trade-angles${buildTradeAnglesQuery(params)}`,\n )\n }\n\n /** Timely macro/crypto signals. GET /api/v1/intelligence/happening-now */\n async getHappeningNow(params?: GetHappeningNowParams): Promise<HappeningNowResponseV1> {\n return torqueIntelligenceGet<HappeningNowResponseV1>(\n this.http,\n `/api/v1/intelligence/happening-now${buildHappeningNowQuery(params)}`,\n )\n }\n\n /**\n * Yield Spotlight market APY + optional personalized idle-cash ideas.\n * GET /api/v1/opportunities/yield\n */\n async getYieldOpportunities(\n params?: GetYieldOpportunitiesParams,\n ): Promise<YieldOpportunitiesResponseV1> {\n return torqueIntelligenceGet<YieldOpportunitiesResponseV1>(\n this.http,\n `/api/v1/opportunities/yield${buildYieldOpportunitiesQuery(params)}`,\n )\n }\n\n /**\n * Lend/Borrow catalog rates — supply APY and borrow APR per market row.\n * GET /api/v1/opportunities/lending\n */\n async getLendingOpportunities(\n params?: GetLendingOpportunitiesParams,\n ): Promise<LendingOpportunitiesResponseV1> {\n return torqueIntelligenceGet<LendingOpportunitiesResponseV1>(\n this.http,\n `/api/v1/opportunities/lending${buildLendingOpportunitiesQuery(params)}`,\n )\n }\n\n /** Hyperliquid funding radar — GET /api/v1/widgets/funding-radar */\n async getFundingRadarWidget(): Promise<FundingRadarWidgetResponseV1> {\n return torqueIntelligenceGet<FundingRadarWidgetResponseV1>(\n this.http,\n '/api/v1/widgets/funding-radar',\n )\n }\n\n /** Upcoming earnings spotlight — GET /api/v1/widgets/earnings-spotlight */\n async getEarningsSpotlightWidget(): Promise<EarningsSpotlightWidgetResponseV1> {\n return torqueIntelligenceGet<EarningsSpotlightWidgetResponseV1>(\n this.http,\n '/api/v1/widgets/earnings-spotlight',\n )\n }\n\n /** Capability manifest probe. GET /api/v1/capabilities */\n async getCapabilities(): Promise<TorqueCapabilitiesProbe> {\n return torqueIntelligenceGet<TorqueCapabilitiesProbe>(this.http, '/api/v1/capabilities')\n }\n\n /**\n * Throws if the server manifest is older than the SDK's expected Intelligence schema version.\n */\n assertManifestCompatibility(manifestVersion: number): void {\n if (manifestVersion < INTELLIGENCE_MANIFEST_VERSION) {\n throw new TorqueIntelligenceError(\n `Server manifest v${manifestVersion} is older than client expectation v${INTELLIGENCE_MANIFEST_VERSION}`,\n {\n code: 'MANIFEST_MISMATCH',\n statusCode: 400,\n details: {\n serverVersion: manifestVersion,\n clientVersion: INTELLIGENCE_MANIFEST_VERSION,\n },\n },\n )\n }\n }\n}\n\nexport function createTorqueIntelligence(config: TorqueIntelligenceOptions): TorqueIntelligence {\n return new TorqueIntelligence(config)\n}\n\n/**\n * Reads TORQUE_API_KEY and optional TORQUE_BASE_URL from the environment.\n */\nexport function createTorqueIntelligenceFromEnv(\n overrides?: Partial<TorqueIntelligenceOptions>,\n): TorqueIntelligence {\n const apiKey = process.env.TORQUE_API_KEY || overrides?.apiKey\n if (!apiKey) {\n throw new TorqueIntelligenceError('TORQUE_API_KEY environment variable is required', {\n code: 'MISSING_ENV_VARS',\n statusCode: 400,\n })\n }\n\n return new TorqueIntelligence({\n apiKey,\n baseUrl: process.env.TORQUE_BASE_URL || overrides?.baseUrl,\n timeout: overrides?.timeout,\n cooldownRetries: overrides?.cooldownRetries,\n })\n}\n"],"names":["INTELLIGENCE_MANIFEST_VERSION"],"mappings":";;;;AAOM,MAAO,uBAAwB,SAAQ,KAAK,CAAA;IAMhD,WAAA,CAAY,OAAe,EAAE,OAAuC,EAAA;QAClE,KAAK,CAAC,OAAO,CAAC;AACd,QAAA,IAAI,CAAC,IAAI,GAAG,yBAAyB;AACrC,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;AACpC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;AAC9B,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY;QACxC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC;IAChE;AACD;SAEe,sBAAsB,CACpC,IAAa,EACb,UAAkB,EAClB,eAAuB,EAAA;IAEvB,MAAM,QAAQ,GAAG,IAAiG;AAClH,IAAA,MAAM,GAAG,GAAG,QAAQ,EAAE,KAAK;AAC3B,IAAA,MAAM,IAAI,GAAG,OAAO,GAAG,EAAE,IAAI,KAAK,QAAQ,GAAG,GAAG,CAAC,IAAI,GAAG,WAAW;AACnE,IAAA,MAAM,OAAO,GAAG,OAAO,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,GAAG,CAAC,OAAO,GAAG,eAAe;AAChF,IAAA,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO;AAC5B,IAAA,MAAM,aAAa,GAAG,OAAO,EAAE,YAAY;AAC3C,IAAA,MAAM,YAAY,GAChB,IAAI,KAAK,UAAU,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa;AACvF,UAAE;UACA,SAAS;AAEf,IAAA,OAAO,IAAI,uBAAuB,CAAC,OAAO,EAAE;QAC1C,IAAI;QACJ,UAAU;QACV,OAAO;QACP,YAAY;AACb,KAAA,CAAC;AACJ;;ACrCA,SAAS,KAAK,CAAC,EAAU,EAAA;AACvB,IAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC1D;AAEO,eAAe,qBAAqB,CACzC,MAAoC,EACpC,IAAY,EACZ,OAAO,GAAG,CAAC,EAAA;IAEX,MAAM,GAAG,GAAG,CAAA,EAAG,MAAM,CAAC,OAAO,CAAA,EAAG,IAAI,CAAA,CAAE;AACtC,IAAA,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;AACxC,IAAA,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC;AAEtE,IAAA,IAAI;AACF,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;AAChC,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;AACP,gBAAA,MAAM,EAAE,kBAAkB;AAC1B,gBAAA,aAAa,EAAE,CAAA,OAAA,EAAU,MAAM,CAAC,MAAM,CAAA,CAAE;AACzC,aAAA;YACD,MAAM,EAAE,UAAU,CAAC,MAAM;AAC1B,SAAA,CAAC;QAEF,YAAY,CAAC,SAAS,CAAC;AAEvB,QAAA,MAAM,IAAI,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAE7D,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,MAAM,KAAK,GAAG,sBAAsB,CAClC,IAAI,EACJ,QAAQ,CAAC,MAAM,EACf,QAAQ,QAAQ,CAAC,MAAM,CAAA,EAAA,EAAK,QAAQ,CAAC,UAAU,CAAA,CAAE,CAClD;AAED,YAAA,IACE,KAAK,CAAC,IAAI,KAAK,UAAU;gBACzB,KAAK,CAAC,YAAY,IAAI,IAAI;AAC1B,gBAAA,OAAO,GAAG,MAAM,CAAC,eAAe,EAChC;AACA,gBAAA,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC/B,OAAO,qBAAqB,CAAI,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC;YAC5D;AAEA,YAAA,MAAM,KAAK;QACb;AAEA,QAAA,OAAO,IAAS;IAClB;IAAE,OAAO,KAAK,EAAE;QACd,YAAY,CAAC,SAAS,CAAC;AAEvB,QAAA,IAAI,KAAK,YAAY,uBAAuB,EAAE;AAC5C,YAAA,MAAM,KAAK;QACb;AAEA,QAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AAC1B,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAC/B,gBAAA,MAAM,IAAI,uBAAuB,CAAC,iBAAiB,EAAE;AACnD,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,UAAU,EAAE,GAAG;AAChB,iBAAA,CAAC;YACJ;AACA,YAAA,MAAM,IAAI,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE;AAC/C,gBAAA,IAAI,EAAE,eAAe;AACrB,gBAAA,UAAU,EAAE,GAAG;AAChB,aAAA,CAAC;QACJ;AAEA,QAAA,MAAM,IAAI,uBAAuB,CAAC,gBAAgB,EAAE;AAClD,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,UAAU,EAAE,GAAG;AAChB,SAAA,CAAC;IACJ;AACF;;ACrEA,SAAS,SAAS,CAChB,MAAuB,EACvB,GAAW,EACX,MAAqC,EAAA;AAErC,IAAA,IAAI,MAAM,EAAE,MAAM,EAAE;AAClB,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC;AACF;AAEM,SAAU,cAAc,CAAC,MAAA,GAAoC,EAAE,EAAA;AACnE,IAAA,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE;AAEhC,IAAA,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE;AAChC,QAAA,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IACtD;AACA,IAAA,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AAC7D,QAAA,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C;IACA,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAyC,CAAC;IACxE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAA2C,CAAC;AAC1E,IAAA,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACzD,QAAA,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC;AACA,IAAA,IAAI,MAAM,CAAC,YAAY,EAAE;AACvB,QAAA,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC;IAC7B;AACA,IAAA,IAAI,MAAM,CAAC,KAAK,EAAE;AAChB,QAAA,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB;AAEA,IAAA,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;IACxB,OAAO,EAAE,GAAG,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,GAAG,EAAE;AAC3B;AAEM,SAAU,qBAAqB,CAAC,MAAA,GAA+B,EAAE,EAAA;AACrE,IAAA,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE;AAEhC,IAAA,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE;AAChC,QAAA,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IACtD;AACA,IAAA,IAAI,MAAM,CAAC,KAAK,EAAE;AAChB,QAAA,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB;AAEA,IAAA,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;IACxB,OAAO,EAAE,GAAG,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,GAAG,EAAE;AAC3B;AAEM,SAAU,sBAAsB,CAAC,MAAA,GAAgC,EAAE,EAAA;AACvE,IAAA,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE;AAEhC,IAAA,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AAC7D,QAAA,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C;AAEA,IAAA,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;IACxB,OAAO,EAAE,GAAG,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,GAAG,EAAE;AAC3B;AAEM,SAAU,4BAA4B,CAAC,MAAA,GAAsC,EAAE,EAAA;AACnF,IAAA,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE;AAEhC,IAAA,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE;AAChC,QAAA,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IACtD;AACA,IAAA,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACnE,QAAA,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACjD;AACA,IAAA,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;AAC7E,QAAA,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC3D;AAEA,IAAA,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;IACxB,OAAO,EAAE,GAAG,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,GAAG,EAAE;AAC3B;AAEM,SAAU,8BAA8B,CAAC,MAAA,GAAwC,EAAE,EAAA;AACvF,IAAA,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE;AAEhC,IAAA,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AAC7D,QAAA,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C;AACA,IAAA,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE;AAC9B,QAAA,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAClD;AACA,IAAA,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE;AAC3B,QAAA,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC5C;AACA,IAAA,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACzD,QAAA,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC;AAEA,IAAA,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;IACxB,OAAO,EAAE,GAAG,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,GAAG,EAAE;AAC3B;;AC7CA,SAAS,cAAc,CAAC,MAAiC,EAAA;IACvD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;AAC1B,QAAA,MAAM,IAAI,uBAAuB,CAAC,qBAAqB,EAAE;AACvD,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,UAAU,EAAE,GAAG;AAChB,SAAA,CAAC;IACJ;IACA,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,KAAK,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE;AACzF,QAAA,MAAM,IAAI,uBAAuB,CAAC,mCAAmC,EAAE;AACrE,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,UAAU,EAAE,GAAG;AAChB,SAAA,CAAC;IACJ;AACA,IAAA,IACE,MAAM,CAAC,eAAe,IAAI,IAAI;AAC9B,SAAC,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,EAC1E;AACA,QAAA,MAAM,IAAI,uBAAuB,CAAC,+CAA+C,EAAE;AACjF,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,UAAU,EAAE,GAAG;AAChB,SAAA,CAAC;IACJ;AACF;AAEA,SAAS,YAAY,CAAC,MAAiC,EAAA;IACrD,OAAO;AACL,QAAA,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;AAC5B,QAAA,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,uBAAuB,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACvE,QAAA,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAM;AACjC,QAAA,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,CAAC;KAC7C;AACH;MAEa,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CAAY,MAAiC,EAAA;QAC3C,cAAc,CAAC,MAAM,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC;IAClC;AAEA;;;AAGG;IACH,MAAM,OAAO,CAAC,MAAkC,EAAA;AAC9C,QAAA,OAAO,qBAAqB,CAC1B,IAAI,CAAC,IAAI,EACT,CAAA,yBAAA,EAA4B,cAAc,CAAC,MAAM,CAAC,CAAA,CAAE,CACrD;IACH;;IAGA,MAAM,cAAc,CAAC,MAA6B,EAAA;AAChD,QAAA,OAAO,qBAAqB,CAC1B,IAAI,CAAC,IAAI,EACT,CAAA,iCAAA,EAAoC,qBAAqB,CAAC,MAAM,CAAC,CAAA,CAAE,CACpE;IACH;;IAGA,MAAM,eAAe,CAAC,MAA8B,EAAA;AAClD,QAAA,OAAO,qBAAqB,CAC1B,IAAI,CAAC,IAAI,EACT,CAAA,kCAAA,EAAqC,sBAAsB,CAAC,MAAM,CAAC,CAAA,CAAE,CACtE;IACH;AAEA;;;AAGG;IACH,MAAM,qBAAqB,CACzB,MAAoC,EAAA;AAEpC,QAAA,OAAO,qBAAqB,CAC1B,IAAI,CAAC,IAAI,EACT,CAAA,2BAAA,EAA8B,4BAA4B,CAAC,MAAM,CAAC,CAAA,CAAE,CACrE;IACH;AAEA;;;AAGG;IACH,MAAM,uBAAuB,CAC3B,MAAsC,EAAA;AAEtC,QAAA,OAAO,qBAAqB,CAC1B,IAAI,CAAC,IAAI,EACT,CAAA,6BAAA,EAAgC,8BAA8B,CAAC,MAAM,CAAC,CAAA,CAAE,CACzE;IACH;;AAGA,IAAA,MAAM,qBAAqB,GAAA;QACzB,OAAO,qBAAqB,CAC1B,IAAI,CAAC,IAAI,EACT,+BAA+B,CAChC;IACH;;AAGA,IAAA,MAAM,0BAA0B,GAAA;QAC9B,OAAO,qBAAqB,CAC1B,IAAI,CAAC,IAAI,EACT,oCAAoC,CACrC;IACH;;AAGA,IAAA,MAAM,eAAe,GAAA;QACnB,OAAO,qBAAqB,CAA0B,IAAI,CAAC,IAAI,EAAE,sBAAsB,CAAC;IAC1F;AAEA;;AAEG;AACH,IAAA,2BAA2B,CAAC,eAAuB,EAAA;AACjD,QAAA,IAAI,eAAe,GAAGA,0CAA6B,EAAE;YACnD,MAAM,IAAI,uBAAuB,CAC/B,CAAA,iBAAA,EAAoB,eAAe,CAAA,mCAAA,EAAsCA,0CAA6B,EAAE,EACxG;AACE,gBAAA,IAAI,EAAE,mBAAmB;AACzB,gBAAA,UAAU,EAAE,GAAG;AACf,gBAAA,OAAO,EAAE;AACP,oBAAA,aAAa,EAAE,eAAe;AAC9B,oBAAA,aAAa,EAAEA,0CAA6B;AAC7C,iBAAA;AACF,aAAA,CACF;QACH;IACF;AACD;AAEK,SAAU,wBAAwB,CAAC,MAAiC,EAAA;AACxE,IAAA,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC;AACvC;AAEA;;AAEG;AACG,SAAU,+BAA+B,CAC7C,SAA8C,EAAA;IAE9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,SAAS,EAAE,MAAM;IAC9D,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,MAAM,IAAI,uBAAuB,CAAC,iDAAiD,EAAE;AACnF,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,UAAU,EAAE,GAAG;AAChB,SAAA,CAAC;IACJ;IAEA,OAAO,IAAI,kBAAkB,CAAC;QAC5B,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS,EAAE,OAAO;QAC1D,OAAO,EAAE,SAAS,EAAE,OAAO;QAC3B,eAAe,EAAE,SAAS,EAAE,eAAe;AAC5C,KAAA,CAAC;AACJ;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "torque-intelligence",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Official Torque Intelligence SDK — read-only feed client for Platform API v1",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"directory": "packages/torque-intelligence"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@torquefi/types": "^0.1.
|
|
45
|
+
"@torquefi/types": "^0.1.2"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@rollup/plugin-typescript": "^12.1.4",
|