cortex-risk-sdk 1.0.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.
@@ -0,0 +1,73 @@
1
+ import type { RiskEngineConfig, CalibrateRequest, CalibrateResponse, RegimeResponse, VaRResponse, VolatilityForecastResponse, BacktestSummaryResponse, TailProbResponse, RegimeDurationsResponse, RegimeHistoryResponse, TransitionAlertResponse, RegimeStatisticsResponse, CompareRequest, CompareResponse, ComparisonReportResponse, PortfolioCalibrateRequest, PortfolioVaRResponse, MarginalVaRResponse, StressVaRResponse, CopulaPortfolioVaRResponse, CopulaCompareResponse, CopulaDiagnosticsResponse, RegimeDependentCopulaVaRResponse, EVTCalibrateRequest, EVTCalibrateResponse, EVTVaRResponse, EVTDiagnosticsResponse, HawkesCalibrateRequest, HawkesCalibrateResponse, HawkesIntensityResponse, HawkesClustersResponse, HawkesVaRRequest, HawkesVaRResponse, HawkesSimulateRequest, HawkesSimulateResponse, HurstResponse, MultifractalSpectrumResponse, RegimeHurstResponse, FractalDiagnosticsResponse, RoughCalibrateRequest, RoughCalibrateResponse, RoughForecastResponse, RoughDiagnosticsResponse, RoughCompareMSMResponse, SVJCalibrateRequest, SVJCalibrateResponse, SVJVaRResponse, SVJJumpRiskResponse, SVJDiagnosticsResponse, NewsFeedResponse, NewsMarketSignal, GuardianAssessRequest, GuardianAssessResponse } from "./types";
2
+ export declare class RiskEngineClient {
3
+ private readonly baseUrl;
4
+ private readonly timeout;
5
+ private readonly policy;
6
+ private readonly validate;
7
+ constructor(config: RiskEngineConfig);
8
+ private request;
9
+ private get;
10
+ private post;
11
+ private parsed;
12
+ private qs;
13
+ /** Calibrate MSM model for a token */
14
+ calibrate(req: CalibrateRequest): Promise<CalibrateResponse>;
15
+ /** Get current regime state */
16
+ regime(token: string): Promise<RegimeResponse>;
17
+ /** Get VaR at given confidence level */
18
+ var(token: string, confidence: number, opts?: {
19
+ use_student_t?: boolean;
20
+ nu?: number;
21
+ }): Promise<VaRResponse>;
22
+ /** Get volatility forecast */
23
+ volatilityForecast(token: string): Promise<VolatilityForecastResponse>;
24
+ /** Get backtest summary */
25
+ backtestSummary(token: string): Promise<BacktestSummaryResponse>;
26
+ /** Get tail probabilities */
27
+ tailProbs(token: string, threshold?: number): Promise<TailProbResponse>;
28
+ regimeDurations(token: string): Promise<RegimeDurationsResponse>;
29
+ regimeHistory(token: string): Promise<RegimeHistoryResponse>;
30
+ regimeStatistics(token: string): Promise<RegimeStatisticsResponse>;
31
+ transitionAlert(token: string, threshold?: number): Promise<TransitionAlertResponse>;
32
+ compare(req: CompareRequest): Promise<CompareResponse>;
33
+ comparisonReport(token: string): Promise<ComparisonReportResponse>;
34
+ portfolioCalibrate(req: PortfolioCalibrateRequest): Promise<PortfolioVaRResponse>;
35
+ portfolioVar(key: string, alpha?: number): Promise<PortfolioVaRResponse>;
36
+ marginalVar(key: string): Promise<MarginalVaRResponse>;
37
+ stressVar(key: string, forced_regime: number): Promise<StressVaRResponse>;
38
+ copulaVar(key: string, opts?: {
39
+ alpha?: number;
40
+ n_simulations?: number;
41
+ }): Promise<CopulaPortfolioVaRResponse>;
42
+ copulaCompare(key: string): Promise<CopulaCompareResponse>;
43
+ copulaDiagnostics(key: string): Promise<CopulaDiagnosticsResponse>;
44
+ regimeDependentCopulaVar(key: string, opts?: {
45
+ alpha?: number;
46
+ n_simulations?: number;
47
+ }): Promise<RegimeDependentCopulaVaRResponse>;
48
+ evtCalibrate(req: EVTCalibrateRequest): Promise<EVTCalibrateResponse>;
49
+ evtVar(token: string, confidence: number): Promise<EVTVaRResponse>;
50
+ evtDiagnostics(token: string): Promise<EVTDiagnosticsResponse>;
51
+ hawkesCalibrate(req: HawkesCalibrateRequest): Promise<HawkesCalibrateResponse>;
52
+ hawkesIntensity(token: string): Promise<HawkesIntensityResponse>;
53
+ hawkesClusters(token: string): Promise<HawkesClustersResponse>;
54
+ hawkesVar(req: HawkesVaRRequest): Promise<HawkesVaRResponse>;
55
+ hawkesSimulate(req: HawkesSimulateRequest): Promise<HawkesSimulateResponse>;
56
+ hurst(token: string, method?: string): Promise<HurstResponse>;
57
+ spectrum(token: string): Promise<MultifractalSpectrumResponse>;
58
+ regimeHurst(token: string): Promise<RegimeHurstResponse>;
59
+ fractalDiagnostics(token: string): Promise<FractalDiagnosticsResponse>;
60
+ roughCalibrate(req: RoughCalibrateRequest): Promise<RoughCalibrateResponse>;
61
+ roughForecast(token: string, horizon?: number): Promise<RoughForecastResponse>;
62
+ roughDiagnostics(token: string): Promise<RoughDiagnosticsResponse>;
63
+ roughCompareMsm(token: string): Promise<RoughCompareMSMResponse>;
64
+ svjCalibrate(req: SVJCalibrateRequest): Promise<SVJCalibrateResponse>;
65
+ svjVar(token: string, confidence?: number): Promise<SVJVaRResponse>;
66
+ svjJumpRisk(token: string): Promise<SVJJumpRiskResponse>;
67
+ svjDiagnostics(token: string): Promise<SVJDiagnosticsResponse>;
68
+ newsFeed(token: string): Promise<NewsFeedResponse>;
69
+ newsSentiment(token: string): Promise<NewsMarketSignal>;
70
+ newsSignal(token: string): Promise<NewsMarketSignal>;
71
+ guardianAssess(req: GuardianAssessRequest): Promise<GuardianAssessResponse>;
72
+ }
73
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js ADDED
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RiskEngineClient = void 0;
4
+ const types_1 = require("./types");
5
+ const errors_1 = require("./errors");
6
+ const utils_1 = require("./utils");
7
+ const DEFAULTS = {
8
+ timeout: 30_000,
9
+ retries: 2,
10
+ retryDelay: 500,
11
+ circuitBreakerThreshold: 5,
12
+ circuitBreakerResetMs: 30_000,
13
+ validateResponses: false,
14
+ };
15
+ class RiskEngineClient {
16
+ baseUrl;
17
+ timeout;
18
+ policy;
19
+ validate;
20
+ constructor(config) {
21
+ this.baseUrl = config.baseUrl.replace(/\/+$/, "");
22
+ this.timeout = config.timeout ?? DEFAULTS.timeout;
23
+ this.validate = config.validateResponses ?? false;
24
+ this.policy = (0, utils_1.createResiliencePolicy)({
25
+ timeoutMs: this.timeout,
26
+ maxRetries: config.retries ?? DEFAULTS.retries,
27
+ retryBaseDelay: config.retryDelay ?? DEFAULTS.retryDelay,
28
+ cbThreshold: config.circuitBreakerThreshold ?? DEFAULTS.circuitBreakerThreshold,
29
+ cbResetMs: config.circuitBreakerResetMs ?? DEFAULTS.circuitBreakerResetMs,
30
+ });
31
+ }
32
+ // ── Internal HTTP helpers ──
33
+ async request(method, path, body, schema) {
34
+ const url = `${this.baseUrl}${path}`;
35
+ return (0, utils_1.executeWithResilience)(this.policy, async (signal) => {
36
+ const init = {
37
+ method,
38
+ headers: { "Content-Type": "application/json" },
39
+ signal,
40
+ };
41
+ if (body !== undefined)
42
+ init.body = JSON.stringify(body);
43
+ const res = await fetch(url, init);
44
+ const text = await res.text();
45
+ if (!res.ok)
46
+ throw (0, errors_1.mapHttpError)(res.status, text, url);
47
+ return this.parsed(JSON.parse(text), schema);
48
+ }, url, this.timeout);
49
+ }
50
+ get(path, schema) {
51
+ return this.request("GET", path, undefined, schema);
52
+ }
53
+ post(path, body, schema) {
54
+ return this.request("POST", path, body, schema);
55
+ }
56
+ parsed(data, schema) {
57
+ if (!this.validate || !schema)
58
+ return data;
59
+ return schema.parse(data);
60
+ }
61
+ qs(params) {
62
+ const parts = [];
63
+ for (const [k, v] of Object.entries(params)) {
64
+ if (v !== undefined && v !== null)
65
+ parts.push(`${k}=${encodeURIComponent(String(v))}`);
66
+ }
67
+ return parts.length ? `?${parts.join("&")}` : "";
68
+ }
69
+ // ── Core MSM ──
70
+ /** Calibrate MSM model for a token */
71
+ async calibrate(req) {
72
+ return this.post("/api/v1/calibrate", req);
73
+ }
74
+ /** Get current regime state */
75
+ async regime(token) {
76
+ return this.get(`/api/v1/regime/current${this.qs({ token })}`, types_1.RegimeResponseSchema);
77
+ }
78
+ /** Get VaR at given confidence level */
79
+ async var(token, confidence, opts) {
80
+ return this.get(`/api/v1/var/${confidence}${this.qs({ token, ...opts })}`, types_1.VaRResponseSchema);
81
+ }
82
+ /** Get volatility forecast */
83
+ async volatilityForecast(token) {
84
+ return this.get(`/api/v1/volatility/forecast${this.qs({ token })}`);
85
+ }
86
+ /** Get backtest summary */
87
+ async backtestSummary(token) {
88
+ return this.get(`/api/v1/backtest/summary${this.qs({ token })}`);
89
+ }
90
+ /** Get tail probabilities */
91
+ async tailProbs(token, threshold) {
92
+ return this.get(`/api/v1/tail-probs${this.qs({ token, threshold })}`);
93
+ }
94
+ // ── Regime Analytics ──
95
+ async regimeDurations(token) {
96
+ return this.get(`/api/v1/regime/durations${this.qs({ token })}`);
97
+ }
98
+ async regimeHistory(token) {
99
+ return this.get(`/api/v1/regime/history${this.qs({ token })}`);
100
+ }
101
+ async regimeStatistics(token) {
102
+ return this.get(`/api/v1/regime/statistics${this.qs({ token })}`);
103
+ }
104
+ async transitionAlert(token, threshold) {
105
+ return this.get(`/api/v1/regime/transition-alert${this.qs({ token, threshold })}`);
106
+ }
107
+ // ── Model Comparison ──
108
+ async compare(req) {
109
+ return this.post("/api/v1/compare", req);
110
+ }
111
+ async comparisonReport(token) {
112
+ return this.get(`/api/v1/compare/report/${encodeURIComponent(token)}`);
113
+ }
114
+ // ── Portfolio VaR ──
115
+ async portfolioCalibrate(req) {
116
+ return this.post("/api/v1/portfolio/calibrate", req);
117
+ }
118
+ async portfolioVar(key, alpha) {
119
+ return this.get(`/api/v1/portfolio/var${this.qs({ key, alpha })}`);
120
+ }
121
+ async marginalVar(key) {
122
+ return this.get(`/api/v1/portfolio/marginal-var${this.qs({ key })}`);
123
+ }
124
+ async stressVar(key, forced_regime) {
125
+ return this.get(`/api/v1/portfolio/stress-var${this.qs({ key, forced_regime })}`);
126
+ }
127
+ // ── Copula Portfolio VaR ──
128
+ async copulaVar(key, opts) {
129
+ return this.get(`/api/v1/portfolio/copula/var${this.qs({ key, ...opts })}`);
130
+ }
131
+ async copulaCompare(key) {
132
+ return this.get(`/api/v1/portfolio/copula/compare${this.qs({ key })}`);
133
+ }
134
+ async copulaDiagnostics(key) {
135
+ return this.get(`/api/v1/portfolio/copula/diagnostics${this.qs({ key })}`);
136
+ }
137
+ async regimeDependentCopulaVar(key, opts) {
138
+ return this.get(`/api/v1/portfolio/copula/regime-var${this.qs({ key, ...opts })}`);
139
+ }
140
+ // ── EVT ──
141
+ async evtCalibrate(req) {
142
+ return this.post("/api/v1/evt/calibrate", req);
143
+ }
144
+ async evtVar(token, confidence) {
145
+ return this.get(`/api/v1/evt/var/${confidence}${this.qs({ token })}`);
146
+ }
147
+ async evtDiagnostics(token) {
148
+ return this.get(`/api/v1/evt/diagnostics${this.qs({ token })}`);
149
+ }
150
+ // ── Hawkes Process ──
151
+ async hawkesCalibrate(req) {
152
+ return this.post("/api/v1/hawkes/calibrate", req);
153
+ }
154
+ async hawkesIntensity(token) {
155
+ return this.get(`/api/v1/hawkes/intensity${this.qs({ token })}`);
156
+ }
157
+ async hawkesClusters(token) {
158
+ return this.get(`/api/v1/hawkes/clusters${this.qs({ token })}`);
159
+ }
160
+ async hawkesVar(req) {
161
+ return this.post("/api/v1/hawkes/var", req);
162
+ }
163
+ async hawkesSimulate(req) {
164
+ return this.post("/api/v1/hawkes/simulate", req);
165
+ }
166
+ // ── Multifractal / Hurst ──
167
+ async hurst(token, method) {
168
+ return this.get(`/api/v1/fractal/hurst${this.qs({ token, method })}`);
169
+ }
170
+ async spectrum(token) {
171
+ return this.get(`/api/v1/fractal/spectrum${this.qs({ token })}`);
172
+ }
173
+ async regimeHurst(token) {
174
+ return this.get(`/api/v1/fractal/regime-hurst${this.qs({ token })}`);
175
+ }
176
+ async fractalDiagnostics(token) {
177
+ return this.get(`/api/v1/fractal/diagnostics${this.qs({ token })}`);
178
+ }
179
+ // ── Rough Volatility ──
180
+ async roughCalibrate(req) {
181
+ return this.post("/api/v1/rough/calibrate", req);
182
+ }
183
+ async roughForecast(token, horizon) {
184
+ return this.get(`/api/v1/rough/forecast${this.qs({ token, horizon })}`);
185
+ }
186
+ async roughDiagnostics(token) {
187
+ return this.get(`/api/v1/rough/diagnostics${this.qs({ token })}`);
188
+ }
189
+ async roughCompareMsm(token) {
190
+ return this.get(`/api/v1/rough/compare-msm${this.qs({ token })}`);
191
+ }
192
+ // ── SVJ ──
193
+ async svjCalibrate(req) {
194
+ return this.post("/api/v1/svj/calibrate", req);
195
+ }
196
+ async svjVar(token, confidence) {
197
+ return this.get(`/api/v1/svj/var${this.qs({ token, confidence })}`);
198
+ }
199
+ async svjJumpRisk(token) {
200
+ return this.get(`/api/v1/svj/jump-risk${this.qs({ token })}`);
201
+ }
202
+ async svjDiagnostics(token) {
203
+ return this.get(`/api/v1/svj/diagnostics${this.qs({ token })}`);
204
+ }
205
+ // ── News ──
206
+ async newsFeed(token) {
207
+ return this.get(`/api/v1/news/feed${this.qs({ token })}`);
208
+ }
209
+ async newsSentiment(token) {
210
+ return this.get(`/api/v1/news/sentiment${this.qs({ token })}`);
211
+ }
212
+ async newsSignal(token) {
213
+ return this.get(`/api/v1/news/signal${this.qs({ token })}`);
214
+ }
215
+ // ── Guardian ──
216
+ async guardianAssess(req) {
217
+ return this.post("/api/v1/guardian/assess", req, types_1.GuardianAssessResponseSchema);
218
+ }
219
+ }
220
+ exports.RiskEngineClient = RiskEngineClient;
221
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export declare class RiskEngineError extends Error {
2
+ readonly statusCode?: number | undefined;
3
+ readonly errorCode?: string | undefined;
4
+ constructor(message: string, statusCode?: number | undefined, errorCode?: string | undefined);
5
+ }
6
+ export declare class RiskEngineTimeout extends RiskEngineError {
7
+ constructor(url: string, timeoutMs: number);
8
+ }
9
+ export declare class ModelCalibrationError extends RiskEngineError {
10
+ constructor(token: string, detail?: string);
11
+ }
12
+ export declare class InvalidTokenError extends RiskEngineError {
13
+ constructor(token: string);
14
+ }
15
+ export declare class CircuitBreakerOpenError extends RiskEngineError {
16
+ constructor(resetMs: number);
17
+ }
18
+ export declare function mapHttpError(status: number, body: string, url: string): RiskEngineError;
19
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,UAAU,CAAC,EAAE,MAAM;aACnB,SAAS,CAAC,EAAE,MAAM;gBAFlC,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,SAAS,CAAC,EAAE,MAAM,YAAA;CAKrC;AAED,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAI3C;AAED,qBAAa,qBAAsB,SAAQ,eAAe;gBAC5C,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAQ3C;AAED,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,KAAK,EAAE,MAAM;CAI1B;AAED,qBAAa,uBAAwB,SAAQ,eAAe;gBAC9C,OAAO,EAAE,MAAM;CAQ5B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,CAcvF"}
package/dist/errors.js ADDED
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CircuitBreakerOpenError = exports.InvalidTokenError = exports.ModelCalibrationError = exports.RiskEngineTimeout = exports.RiskEngineError = void 0;
4
+ exports.mapHttpError = mapHttpError;
5
+ class RiskEngineError extends Error {
6
+ statusCode;
7
+ errorCode;
8
+ constructor(message, statusCode, errorCode) {
9
+ super(message);
10
+ this.statusCode = statusCode;
11
+ this.errorCode = errorCode;
12
+ this.name = "RiskEngineError";
13
+ }
14
+ }
15
+ exports.RiskEngineError = RiskEngineError;
16
+ class RiskEngineTimeout extends RiskEngineError {
17
+ constructor(url, timeoutMs) {
18
+ super(`Request to ${url} timed out after ${timeoutMs}ms`, 408, "TIMEOUT");
19
+ this.name = "RiskEngineTimeout";
20
+ }
21
+ }
22
+ exports.RiskEngineTimeout = RiskEngineTimeout;
23
+ class ModelCalibrationError extends RiskEngineError {
24
+ constructor(token, detail) {
25
+ super(`Calibration failed for ${token}${detail ? `: ${detail}` : ""}`, 400, "CALIBRATION_FAILED");
26
+ this.name = "ModelCalibrationError";
27
+ }
28
+ }
29
+ exports.ModelCalibrationError = ModelCalibrationError;
30
+ class InvalidTokenError extends RiskEngineError {
31
+ constructor(token) {
32
+ super(`Token '${token}' not found or not calibrated`, 404, "TOKEN_NOT_FOUND");
33
+ this.name = "InvalidTokenError";
34
+ }
35
+ }
36
+ exports.InvalidTokenError = InvalidTokenError;
37
+ class CircuitBreakerOpenError extends RiskEngineError {
38
+ constructor(resetMs) {
39
+ super(`Circuit breaker open — retrying in ${Math.round(resetMs / 1000)}s`, 503, "CIRCUIT_BREAKER_OPEN");
40
+ this.name = "CircuitBreakerOpenError";
41
+ }
42
+ }
43
+ exports.CircuitBreakerOpenError = CircuitBreakerOpenError;
44
+ function mapHttpError(status, body, url) {
45
+ let detail = body;
46
+ try {
47
+ const parsed = JSON.parse(body);
48
+ detail = parsed.detail || parsed.message || body;
49
+ }
50
+ catch {
51
+ // raw body
52
+ }
53
+ if (status === 404)
54
+ return new InvalidTokenError(detail);
55
+ if (status === 400 && detail.toLowerCase().includes("calibrat")) {
56
+ return new ModelCalibrationError("unknown", detail);
57
+ }
58
+ return new RiskEngineError(detail, status, `HTTP_${status}`);
59
+ }
60
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AA+CA,oCAcC;AA7DD,MAAa,eAAgB,SAAQ,KAAK;IAGtB;IACA;IAHlB,YACE,OAAe,EACC,UAAmB,EACnB,SAAkB;QAElC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,eAAU,GAAV,UAAU,CAAS;QACnB,cAAS,GAAT,SAAS,CAAS;QAGlC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AATD,0CASC;AAED,MAAa,iBAAkB,SAAQ,eAAe;IACpD,YAAY,GAAW,EAAE,SAAiB;QACxC,KAAK,CAAC,cAAc,GAAG,oBAAoB,SAAS,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AALD,8CAKC;AAED,MAAa,qBAAsB,SAAQ,eAAe;IACxD,YAAY,KAAa,EAAE,MAAe;QACxC,KAAK,CACH,0BAA0B,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAC/D,GAAG,EACH,oBAAoB,CACrB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AATD,sDASC;AAED,MAAa,iBAAkB,SAAQ,eAAe;IACpD,YAAY,KAAa;QACvB,KAAK,CAAC,UAAU,KAAK,+BAA+B,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAC9E,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AALD,8CAKC;AAED,MAAa,uBAAwB,SAAQ,eAAe;IAC1D,YAAY,OAAe;QACzB,KAAK,CACH,sCAAsC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EACnE,GAAG,EACH,sBAAsB,CACvB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AATD,0DASC;AAED,SAAgB,YAAY,CAAC,MAAc,EAAE,IAAY,EAAE,GAAW;IACpE,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,WAAW;IACb,CAAC;IAED,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACzD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,MAAM,EAAE,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { RiskEngineClient } from "./client";
2
+ export { RegimeStreamClient } from "./websocket";
3
+ export type { RegimeStreamConfig, RegimeHandler, ErrorHandler } from "./websocket";
4
+ export * from "./types";
5
+ export * from "./errors";
6
+ export { createResiliencePolicy, executeWithResilience } from "./utils";
7
+ export type { ResilienceConfig } from "./utils";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnF,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.executeWithResilience = exports.createResiliencePolicy = exports.RegimeStreamClient = exports.RiskEngineClient = void 0;
18
+ var client_1 = require("./client");
19
+ Object.defineProperty(exports, "RiskEngineClient", { enumerable: true, get: function () { return client_1.RiskEngineClient; } });
20
+ var websocket_1 = require("./websocket");
21
+ Object.defineProperty(exports, "RegimeStreamClient", { enumerable: true, get: function () { return websocket_1.RegimeStreamClient; } });
22
+ __exportStar(require("./types"), exports);
23
+ __exportStar(require("./errors"), exports);
24
+ var utils_1 = require("./utils");
25
+ Object.defineProperty(exports, "createResiliencePolicy", { enumerable: true, get: function () { return utils_1.createResiliencePolicy; } });
26
+ Object.defineProperty(exports, "executeWithResilience", { enumerable: true, get: function () { return utils_1.executeWithResilience; } });
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAA4C;AAAnC,0GAAA,gBAAgB,OAAA;AACzB,yCAAiD;AAAxC,+GAAA,kBAAkB,OAAA;AAE3B,0CAAwB;AACxB,2CAAyB;AACzB,iCAAwE;AAA/D,+GAAA,sBAAsB,OAAA;AAAE,8GAAA,qBAAqB,OAAA"}