@eaera-com/cms-sdk 0.1.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +19 -0
- package/README.md +479 -0
- package/dist/chunks/_shared-DdBWuPm_.js +27 -0
- package/dist/chunks/_shared-DdBWuPm_.js.map +1 -0
- package/dist/chunks/auth.constant-CMI1lqQc.js +37 -0
- package/dist/chunks/auth.constant-CMI1lqQc.js.map +1 -0
- package/dist/chunks/authz.constant-BAarvacV.js +9 -0
- package/dist/chunks/authz.constant-BAarvacV.js.map +1 -0
- package/dist/chunks/http.constant-BzH5tJTG.js +33 -0
- package/dist/chunks/http.constant-BzH5tJTG.js.map +1 -0
- package/dist/chunks/mt5Retcode-DlZLQOLA.js +178 -0
- package/dist/chunks/mt5Retcode-DlZLQOLA.js.map +1 -0
- package/dist/chunks/storage.constant--64BDSPW.js +44 -0
- package/dist/chunks/storage.constant--64BDSPW.js.map +1 -0
- package/dist/common/constants/auth.constant.d.ts +54 -0
- package/dist/common/constants/auth.constant.d.ts.map +1 -0
- package/dist/common/constants/authz.constant.d.ts +27 -0
- package/dist/common/constants/authz.constant.d.ts.map +1 -0
- package/dist/common/constants/bars.constant.d.ts +15 -0
- package/dist/common/constants/bars.constant.d.ts.map +1 -0
- package/dist/common/constants/content-types.constant.d.ts +31 -0
- package/dist/common/constants/content-types.constant.d.ts.map +1 -0
- package/dist/common/constants/content.constant.d.ts +114 -0
- package/dist/common/constants/content.constant.d.ts.map +1 -0
- package/dist/common/constants/executions.constant.d.ts +56 -0
- package/dist/common/constants/executions.constant.d.ts.map +1 -0
- package/dist/common/constants/gov.constant.d.ts +118 -0
- package/dist/common/constants/gov.constant.d.ts.map +1 -0
- package/dist/common/constants/history.constant.d.ts +108 -0
- package/dist/common/constants/history.constant.d.ts.map +1 -0
- package/dist/common/constants/http.constant.d.ts +46 -0
- package/dist/common/constants/http.constant.d.ts.map +1 -0
- package/dist/common/constants/index.d.ts +16 -0
- package/dist/common/constants/index.d.ts.map +1 -0
- package/dist/common/constants/kalshi.constant.d.ts +35 -0
- package/dist/common/constants/kalshi.constant.d.ts.map +1 -0
- package/dist/common/constants/llm.constant.d.ts +37 -0
- package/dist/common/constants/llm.constant.d.ts.map +1 -0
- package/dist/common/constants/mt5-action.constant.d.ts +131 -0
- package/dist/common/constants/mt5-action.constant.d.ts.map +1 -0
- package/dist/common/constants/mt5.constant.d.ts +254 -0
- package/dist/common/constants/mt5.constant.d.ts.map +1 -0
- package/dist/common/constants/notifications.constant.d.ts +45 -0
- package/dist/common/constants/notifications.constant.d.ts.map +1 -0
- package/dist/common/constants/people.constant.d.ts +269 -0
- package/dist/common/constants/people.constant.d.ts.map +1 -0
- package/dist/common/constants/rules.constant.d.ts +14 -0
- package/dist/common/constants/rules.constant.d.ts.map +1 -0
- package/dist/common/constants/settings.constant.d.ts +17 -0
- package/dist/common/constants/settings.constant.d.ts.map +1 -0
- package/dist/common/constants/sort.constant.d.ts +14 -0
- package/dist/common/constants/sort.constant.d.ts.map +1 -0
- package/dist/common/constants/storage.constant.d.ts +74 -0
- package/dist/common/constants/storage.constant.d.ts.map +1 -0
- package/dist/common/helpers/format.d.ts +7 -0
- package/dist/common/helpers/format.d.ts.map +1 -0
- package/dist/common/helpers/format.js +20 -0
- package/dist/common/helpers/format.js.map +1 -0
- package/dist/common/helpers/mt5Retcode.d.ts +18 -0
- package/dist/common/helpers/mt5Retcode.d.ts.map +1 -0
- package/dist/common/helpers/mt5Retcode.js +2 -0
- package/dist/common/helpers/mt5Retcode.js.map +1 -0
- package/dist/common/utils/case.d.ts +12 -0
- package/dist/common/utils/case.d.ts.map +1 -0
- package/dist/common/utils/clone.d.ts +9 -0
- package/dist/common/utils/clone.d.ts.map +1 -0
- package/dist/composables/cbsStateKey.d.ts +27 -0
- package/dist/composables/cbsStateKey.d.ts.map +1 -0
- package/dist/core/createApi.d.ts +69 -0
- package/dist/core/createApi.d.ts.map +1 -0
- package/dist/core/createCmsSDK.d.ts +19 -0
- package/dist/core/createCmsSDK.d.ts.map +1 -0
- package/dist/core/credentials/TokenManager.d.ts +38 -0
- package/dist/core/credentials/TokenManager.d.ts.map +1 -0
- package/dist/core/credentials/credential.type.d.ts +16 -0
- package/dist/core/credentials/credential.type.d.ts.map +1 -0
- package/dist/core/credentials/resolveStorage.d.ts +6 -0
- package/dist/core/credentials/resolveStorage.d.ts.map +1 -0
- package/dist/core/credentials/storages/cookieStorage.d.ts +18 -0
- package/dist/core/credentials/storages/cookieStorage.d.ts.map +1 -0
- package/dist/core/credentials/storages/localStorageAdapter.d.ts +8 -0
- package/dist/core/credentials/storages/localStorageAdapter.d.ts.map +1 -0
- package/dist/core/credentials/storages/memoryStorage.d.ts +7 -0
- package/dist/core/credentials/storages/memoryStorage.d.ts.map +1 -0
- package/dist/core/errors.d.ts +26 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/sdk.type.d.ts +123 -0
- package/dist/core/sdk.type.d.ts.map +1 -0
- package/dist/core/ws/createEaeraWebSocket.d.ts +21 -0
- package/dist/core/ws/createEaeraWebSocket.d.ts.map +1 -0
- package/dist/core/ws/index.d.ts +4 -0
- package/dist/core/ws/index.d.ts.map +1 -0
- package/dist/core/ws/ws.constants.d.ts +246 -0
- package/dist/core/ws/ws.constants.d.ts.map +1 -0
- package/dist/core/ws/ws.events.d.ts +264 -0
- package/dist/core/ws/ws.events.d.ts.map +1 -0
- package/dist/core/ws/ws.type.d.ts +225 -0
- package/dist/core/ws/ws.type.d.ts.map +1 -0
- package/dist/index.d.ts +135 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8608 -0
- package/dist/index.js.map +1 -0
- package/dist/nuxt.d.ts +55 -0
- package/dist/nuxt.d.ts.map +1 -0
- package/dist/nuxt.js +48 -0
- package/dist/nuxt.js.map +1 -0
- package/dist/runtime/plugin.d.ts +6 -0
- package/dist/runtime/plugin.js +197 -0
- package/dist/runtime/plugin.js.map +1 -0
- package/dist/server/auth/cbs-callback.post.js +43 -0
- package/dist/server/auth/cbs-callback.post.js.map +1 -0
- package/dist/server/auth/cbs-start.post.js +35 -0
- package/dist/server/auth/cbs-start.post.js.map +1 -0
- package/dist/server/auth/idp-callback.get.js +53 -0
- package/dist/server/auth/idp-callback.get.js.map +1 -0
- package/dist/server/auth/idp-link.post.js +39 -0
- package/dist/server/auth/idp-link.post.js.map +1 -0
- package/dist/server/auth/idp-login.get.js +43 -0
- package/dist/server/auth/idp-login.get.js.map +1 -0
- package/dist/server/auth/idp-unlink.delete.js +39 -0
- package/dist/server/auth/idp-unlink.delete.js.map +1 -0
- package/dist/server/auth/login.post.js +46 -0
- package/dist/server/auth/login.post.js.map +1 -0
- package/dist/server/auth/logout.post.js +32 -0
- package/dist/server/auth/logout.post.js.map +1 -0
- package/dist/server/auth/refresh.post.js +47 -0
- package/dist/server/auth/refresh.post.js.map +1 -0
- package/dist/server/authz/portal-access.get.js +43 -0
- package/dist/server/authz/portal-access.get.js.map +1 -0
- package/dist/server/clear-token.delete.js +12 -0
- package/dist/server/clear-token.delete.js.map +1 -0
- package/dist/server/persist.post.js +31 -0
- package/dist/server/persist.post.js.map +1 -0
- package/dist/server/set-token.post.js +27 -0
- package/dist/server/set-token.post.js.map +1 -0
- package/dist/services/auth/auth.type.d.ts +73 -0
- package/dist/services/auth/auth.type.d.ts.map +1 -0
- package/dist/services/auth/index.d.ts +127 -0
- package/dist/services/auth/index.d.ts.map +1 -0
- package/dist/services/auth/mock.d.ts +13 -0
- package/dist/services/auth/mock.d.ts.map +1 -0
- package/dist/services/authz/authz.type.d.ts +21 -0
- package/dist/services/authz/authz.type.d.ts.map +1 -0
- package/dist/services/authz/index.d.ts +43 -0
- package/dist/services/authz/index.d.ts.map +1 -0
- package/dist/services/bars/bars.type.d.ts +78 -0
- package/dist/services/bars/bars.type.d.ts.map +1 -0
- package/dist/services/bars/index.d.ts +24 -0
- package/dist/services/bars/index.d.ts.map +1 -0
- package/dist/services/bars/mock.d.ts +23 -0
- package/dist/services/bars/mock.d.ts.map +1 -0
- package/dist/services/content/content.type.d.ts +832 -0
- package/dist/services/content/content.type.d.ts.map +1 -0
- package/dist/services/content/filter.d.ts +46 -0
- package/dist/services/content/filter.d.ts.map +1 -0
- package/dist/services/content/index.d.ts +35 -0
- package/dist/services/content/index.d.ts.map +1 -0
- package/dist/services/content/mock.d.ts +16 -0
- package/dist/services/content/mock.d.ts.map +1 -0
- package/dist/services/content-types/content-types.type.d.ts +70 -0
- package/dist/services/content-types/content-types.type.d.ts.map +1 -0
- package/dist/services/content-types/index.d.ts +25 -0
- package/dist/services/content-types/index.d.ts.map +1 -0
- package/dist/services/content-types/mock.d.ts +15 -0
- package/dist/services/content-types/mock.d.ts.map +1 -0
- package/dist/services/executions/executions.type.d.ts +67 -0
- package/dist/services/executions/executions.type.d.ts.map +1 -0
- package/dist/services/executions/index.d.ts +30 -0
- package/dist/services/executions/index.d.ts.map +1 -0
- package/dist/services/executions/mock.d.ts +29 -0
- package/dist/services/executions/mock.d.ts.map +1 -0
- package/dist/services/gov/gov.type.d.ts +740 -0
- package/dist/services/gov/gov.type.d.ts.map +1 -0
- package/dist/services/gov/index.d.ts +84 -0
- package/dist/services/gov/index.d.ts.map +1 -0
- package/dist/services/history/history.type.d.ts +167 -0
- package/dist/services/history/history.type.d.ts.map +1 -0
- package/dist/services/history/index.d.ts +38 -0
- package/dist/services/history/index.d.ts.map +1 -0
- package/dist/services/history/mock.d.ts +21 -0
- package/dist/services/history/mock.d.ts.map +1 -0
- package/dist/services/kalshi/index.d.ts +19 -0
- package/dist/services/kalshi/index.d.ts.map +1 -0
- package/dist/services/kalshi/kalshi.type.d.ts +99 -0
- package/dist/services/kalshi/kalshi.type.d.ts.map +1 -0
- package/dist/services/kalshi/mock.d.ts +5 -0
- package/dist/services/kalshi/mock.d.ts.map +1 -0
- package/dist/services/llm/index.d.ts +38 -0
- package/dist/services/llm/index.d.ts.map +1 -0
- package/dist/services/llm/llm.type.d.ts +106 -0
- package/dist/services/llm/llm.type.d.ts.map +1 -0
- package/dist/services/notifications/index.d.ts +38 -0
- package/dist/services/notifications/index.d.ts.map +1 -0
- package/dist/services/notifications/mock.d.ts +39 -0
- package/dist/services/notifications/mock.d.ts.map +1 -0
- package/dist/services/notifications/notifications.type.d.ts +75 -0
- package/dist/services/notifications/notifications.type.d.ts.map +1 -0
- package/dist/services/people/_invoke.d.ts +26 -0
- package/dist/services/people/_invoke.d.ts.map +1 -0
- package/dist/services/people/copilot/index.d.ts +132 -0
- package/dist/services/people/copilot/index.d.ts.map +1 -0
- package/dist/services/people/identity/actions.d.ts +116 -0
- package/dist/services/people/identity/actions.d.ts.map +1 -0
- package/dist/services/people/identity/ct.types.d.ts +133 -0
- package/dist/services/people/identity/ct.types.d.ts.map +1 -0
- package/dist/services/people/identity/index.d.ts +14 -0
- package/dist/services/people/identity/index.d.ts.map +1 -0
- package/dist/services/people/identity/projections.d.ts +63 -0
- package/dist/services/people/identity/projections.d.ts.map +1 -0
- package/dist/services/people/index.d.ts +31 -0
- package/dist/services/people/index.d.ts.map +1 -0
- package/dist/services/people/legal/actions.d.ts +161 -0
- package/dist/services/people/legal/actions.d.ts.map +1 -0
- package/dist/services/people/legal/ct.types.d.ts +186 -0
- package/dist/services/people/legal/ct.types.d.ts.map +1 -0
- package/dist/services/people/legal/index.d.ts +15 -0
- package/dist/services/people/legal/index.d.ts.map +1 -0
- package/dist/services/people/packops/index.d.ts +79 -0
- package/dist/services/people/packops/index.d.ts.map +1 -0
- package/dist/services/people/packops/packops.type.d.ts +208 -0
- package/dist/services/people/packops/packops.type.d.ts.map +1 -0
- package/dist/services/people/perms/actions.d.ts +214 -0
- package/dist/services/people/perms/actions.d.ts.map +1 -0
- package/dist/services/people/perms/ct.types.d.ts +140 -0
- package/dist/services/people/perms/ct.types.d.ts.map +1 -0
- package/dist/services/people/perms/index.d.ts +14 -0
- package/dist/services/people/perms/index.d.ts.map +1 -0
- package/dist/services/people/perms/projections.d.ts +47 -0
- package/dist/services/people/perms/projections.d.ts.map +1 -0
- package/dist/services/people/process/actions.d.ts +154 -0
- package/dist/services/people/process/actions.d.ts.map +1 -0
- package/dist/services/people/process/ct.types.d.ts +304 -0
- package/dist/services/people/process/ct.types.d.ts.map +1 -0
- package/dist/services/people/process/index.d.ts +12 -0
- package/dist/services/people/process/index.d.ts.map +1 -0
- package/dist/services/people/shared.types.d.ts +36 -0
- package/dist/services/people/shared.types.d.ts.map +1 -0
- package/dist/services/rules/conditions.d.ts +264 -0
- package/dist/services/rules/conditions.d.ts.map +1 -0
- package/dist/services/rules/index.d.ts +49 -0
- package/dist/services/rules/index.d.ts.map +1 -0
- package/dist/services/rules/llm-rule.constant.d.ts +84 -0
- package/dist/services/rules/llm-rule.constant.d.ts.map +1 -0
- package/dist/services/rules/mock.d.ts +20 -0
- package/dist/services/rules/mock.d.ts.map +1 -0
- package/dist/services/rules/rules.type.d.ts +262 -0
- package/dist/services/rules/rules.type.d.ts.map +1 -0
- package/dist/services/rules/triggers.d.ts +140 -0
- package/dist/services/rules/triggers.d.ts.map +1 -0
- package/dist/services/settings/index.d.ts +36 -0
- package/dist/services/settings/index.d.ts.map +1 -0
- package/dist/services/settings/mock.d.ts +14 -0
- package/dist/services/settings/mock.d.ts.map +1 -0
- package/dist/services/settings/settings.type.d.ts +39 -0
- package/dist/services/settings/settings.type.d.ts.map +1 -0
- package/dist/stores/auth.d.ts +192 -0
- package/dist/stores/auth.d.ts.map +1 -0
- package/dist/stores/authz.d.ts +116 -0
- package/dist/stores/authz.d.ts.map +1 -0
- package/dist/stores/bars.d.ts +288 -0
- package/dist/stores/bars.d.ts.map +1 -0
- package/dist/stores/content.d.ts +4101 -0
- package/dist/stores/content.d.ts.map +1 -0
- package/dist/stores/executions.d.ts +249 -0
- package/dist/stores/executions.d.ts.map +1 -0
- package/dist/stores/gov.d.ts +238 -0
- package/dist/stores/gov.d.ts.map +1 -0
- package/dist/stores/history.d.ts +833 -0
- package/dist/stores/history.d.ts.map +1 -0
- package/dist/stores/index.d.ts +16 -0
- package/dist/stores/index.d.ts.map +1 -0
- package/dist/stores/kalshi.d.ts +728 -0
- package/dist/stores/kalshi.d.ts.map +1 -0
- package/dist/stores/llm-providers.d.ts +97 -0
- package/dist/stores/llm-providers.d.ts.map +1 -0
- package/dist/stores/llm.d.ts +102 -0
- package/dist/stores/llm.d.ts.map +1 -0
- package/dist/stores/people.d.ts +596 -0
- package/dist/stores/people.d.ts.map +1 -0
- package/dist/stores/persist.d.ts +58 -0
- package/dist/stores/persist.d.ts.map +1 -0
- package/dist/stores/rules.d.ts +485 -0
- package/dist/stores/rules.d.ts.map +1 -0
- package/dist/stores/settings.d.ts +36 -0
- package/dist/stores/settings.d.ts.map +1 -0
- package/dist/stores/ws.d.ts +66 -0
- package/dist/stores/ws.d.ts.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { $Fetch } from 'ofetch';
|
|
2
|
+
import { IPortalAccess } from './authz.type';
|
|
3
|
+
export type { IPortalAccess } from './authz.type';
|
|
4
|
+
export interface IAuthzServiceOptions {
|
|
5
|
+
/** The CMS `$Fetch` instance (one of `sdk.apis`). */
|
|
6
|
+
api: $Fetch;
|
|
7
|
+
/**
|
|
8
|
+
* Optional `$Fetch` pointed at the app-origin `/api/cms` proxy (Nuxt
|
|
9
|
+
* module). When set, the portal-access check routes through
|
|
10
|
+
* `/api/cms/portal-access` so the httpOnly token cookie is forwarded
|
|
11
|
+
* server-side and the raw token never reaches the client. When omitted,
|
|
12
|
+
* the backend is called directly via `api` (Bearer attached by the
|
|
13
|
+
* transport's TokenManager).
|
|
14
|
+
*/
|
|
15
|
+
routeApi?: $Fetch;
|
|
16
|
+
/** Lazy flag — when true, the service returns fake data. */
|
|
17
|
+
mock: () => boolean;
|
|
18
|
+
/** Default portal id (Nuxt module option `cmsSdk.portal`). Per-call override wins. */
|
|
19
|
+
portal?: () => string | undefined;
|
|
20
|
+
}
|
|
21
|
+
export interface IAuthzService {
|
|
22
|
+
/**
|
|
23
|
+
* Resolve the caller's access to a portal
|
|
24
|
+
* (`GET /api/v1/authz/me/portals/{portal}`).
|
|
25
|
+
*
|
|
26
|
+
* Throws on the documented error statuses so callers can branch:
|
|
27
|
+
* 401 `UNAUTHENTICATED` / `INVALID_TOKEN_AUDIENCE`,
|
|
28
|
+
* 403 `PORTAL_ACCESS_DENIED` (codes survive in the error payload's
|
|
29
|
+
* `data` via the proxy's `authBackendError` / `extractAuthError`).
|
|
30
|
+
*/
|
|
31
|
+
portalAccess(portal?: string): Promise<IPortalAccess>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Authz domain service. Mirrors the engine RBAC surface used by every
|
|
35
|
+
* portal: "am I allowed into THIS portal, and with which permissions/roles".
|
|
36
|
+
*
|
|
37
|
+
* The result is cheap to refetch and MUST be re-resolved on login and on
|
|
38
|
+
* session restore (page refresh) — caching across sessions is deliberately
|
|
39
|
+
* left to the consumer (see `useAuthzStore` for the canonical fetch-once
|
|
40
|
+
* cache with login/logout invalidation).
|
|
41
|
+
*/
|
|
42
|
+
export declare function createAuthzService(opts: IAuthzServiceOptions): IAuthzService;
|
|
43
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/authz/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,OAAO,CAAC;IACpB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;;;;OAQG;IACH,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,GAAG,aAAa,CA6B5E"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { MT5_INTERVAL, MT5Interval } from '../../common/constants/mt5.constant';
|
|
2
|
+
/** Single source-interval value (always M1; doc §5.5.2). */
|
|
3
|
+
type M1Only = typeof MT5_INTERVAL.M1;
|
|
4
|
+
/**
|
|
5
|
+
* Chart-bars query — mirrors BE `GET /api/v1/chart/bars` (doc §5.5.1).
|
|
6
|
+
* All fields use camelCase; the service forwards them verbatim to the backend.
|
|
7
|
+
*/
|
|
8
|
+
export interface BarsQuery {
|
|
9
|
+
symbol: string;
|
|
10
|
+
/**
|
|
11
|
+
* Accepts FE-style ('1m','5m','15m','30m','1h','4h','1d','1w','1M')
|
|
12
|
+
* OR MT5-style ('M1'…'MN1'). Passed through verbatim; the backend maps
|
|
13
|
+
* both to the same bucket width.
|
|
14
|
+
*/
|
|
15
|
+
interval: MT5Interval | ChartIntervalFe | (string & {});
|
|
16
|
+
/** ISO-8601, inclusive lower bound. */
|
|
17
|
+
fromTime: string;
|
|
18
|
+
/** ISO-8601, exclusive upper bound, strictly > fromTime. */
|
|
19
|
+
toTime: string;
|
|
20
|
+
/** MT5 server filter. Defaults to MT5_SERVER_NAME when omitted. */
|
|
21
|
+
serverName?: string;
|
|
22
|
+
/** 1..5000, applied AFTER aggregation. Default 1000. */
|
|
23
|
+
limit?: number;
|
|
24
|
+
/** 'asc' (oldest first, default) | 'desc' (newest first). */
|
|
25
|
+
sortDirection?: BarsSortDirection;
|
|
26
|
+
}
|
|
27
|
+
export type BarsSortDirection = 'asc' | 'desc';
|
|
28
|
+
/** Aggregation-source label for a derived bar (doc §5.5.2). Distinct from
|
|
29
|
+
* MT5ChartBarSource (raw Mt5ChartBar.data.source, doc §4.6). */
|
|
30
|
+
export type BarsItemSource = 'aggregated' | 'live' | 'backfill';
|
|
31
|
+
export interface BarItem {
|
|
32
|
+
symbol: string;
|
|
33
|
+
/** Canonical MT5-style bucket width. */
|
|
34
|
+
interval: MT5Interval;
|
|
35
|
+
/** ISO-8601 UTC; bucket-start for aggregated bars. */
|
|
36
|
+
mt5Ts: string;
|
|
37
|
+
open: number;
|
|
38
|
+
high: number;
|
|
39
|
+
low: number;
|
|
40
|
+
close: number;
|
|
41
|
+
tickVolume: number | null;
|
|
42
|
+
volume: number | null;
|
|
43
|
+
spread: number | null;
|
|
44
|
+
source: BarsItemSource | null;
|
|
45
|
+
}
|
|
46
|
+
export interface BarsResponse {
|
|
47
|
+
items: BarItem[];
|
|
48
|
+
symbol: string;
|
|
49
|
+
/** Canonical label returned by the backend. */
|
|
50
|
+
interval: MT5Interval;
|
|
51
|
+
/** ISO-8601 UTC (= parsed fromTime). */
|
|
52
|
+
fromTime: string;
|
|
53
|
+
/** ISO-8601 UTC (= parsed toTime). */
|
|
54
|
+
toTime: string;
|
|
55
|
+
/** Always 'M1' — the only persisted interval. */
|
|
56
|
+
sourceInterval: M1Only;
|
|
57
|
+
/** items.length. */
|
|
58
|
+
count: number;
|
|
59
|
+
/** true iff interval !== 'M1' and bucketing occurred. */
|
|
60
|
+
aggregated: boolean;
|
|
61
|
+
}
|
|
62
|
+
/** FE-style timeframe labels accepted by GET /api/v1/chart/bars (doc §5.5.1). */
|
|
63
|
+
export declare const CHART_INTERVAL: {
|
|
64
|
+
readonly M1: "1m";
|
|
65
|
+
readonly M5: "5m";
|
|
66
|
+
readonly M15: "15m";
|
|
67
|
+
readonly M30: "30m";
|
|
68
|
+
readonly H1: "1h";
|
|
69
|
+
readonly H4: "4h";
|
|
70
|
+
readonly D1: "1d";
|
|
71
|
+
readonly W1: "1w";
|
|
72
|
+
readonly MN1: "1M";
|
|
73
|
+
};
|
|
74
|
+
export type ChartIntervalFe = (typeof CHART_INTERVAL)[keyof typeof CHART_INTERVAL];
|
|
75
|
+
/** Map either dialect to the canonical MT5 label. */
|
|
76
|
+
export declare function normalizeChartInterval(input: MT5Interval | ChartIntervalFe | string): MT5Interval;
|
|
77
|
+
export {};
|
|
78
|
+
//# sourceMappingURL=bars.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bars.type.d.ts","sourceRoot":"","sources":["../../../src/services/bars/bars.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAErF,4DAA4D;AAC5D,KAAK,MAAM,GAAG,OAAO,YAAY,CAAC,EAAE,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,EAAE,WAAW,GAAG,eAAe,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACxD,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,aAAa,CAAC,EAAE,iBAAiB,CAAC;CACnC;AAED,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,MAAM,CAAC;AAE/C;iEACiE;AACjE,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;AAEhE,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,QAAQ,EAAE,WAAW,CAAC;IACtB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,QAAQ,EAAE,WAAW,CAAC;IACtB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,iFAAiF;AACjF,eAAO,MAAM,cAAc;;;;;;;;;;CAUjB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAenF,qDAAqD;AACrD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,GAAG,MAAM,GAAG,WAAW,CAGjG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { $Fetch } from 'ofetch';
|
|
2
|
+
import { BarsQuery, BarsResponse } from './bars.type';
|
|
3
|
+
export interface IBarsServiceOptions {
|
|
4
|
+
/** The CMS `$Fetch` instance (one of `sdk.apis`). */
|
|
5
|
+
api: $Fetch;
|
|
6
|
+
/** Lazy flag — when true, the service returns fake data. */
|
|
7
|
+
mock: () => boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface IBarsService {
|
|
10
|
+
getBars(query: BarsQuery): Promise<BarsResponse>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Chart-bars service (read-only). Wraps `GET /api/v1/chart/bars` — the
|
|
14
|
+
* canonical OHLC read path for chart rendering of any timeframe. Storage
|
|
15
|
+
* is always M1; larger timeframes are derived on demand via bucket-and-reduce.
|
|
16
|
+
*
|
|
17
|
+
* Endpoint contract (`eaera_cms/chart/routes.py`, doc §5.5):
|
|
18
|
+
* GET /api/v1/chart/bars → BarsResponse
|
|
19
|
+
*
|
|
20
|
+
* While `mock()` returns true, all methods resolve against the local fake
|
|
21
|
+
* dataset and never touch `api`.
|
|
22
|
+
*/
|
|
23
|
+
export declare function createBarsService(opts: IBarsServiceOptions): IBarsService;
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/bars/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,IAAI,EAAE,MAAM,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAClD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAmCzE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BarItem, BarsResponse } from './bars.type';
|
|
2
|
+
/**
|
|
3
|
+
* Fake OHLC bars for EURUSD spanning both M1 and H1 buckets.
|
|
4
|
+
* Includes rows with null fields to exercise nullability.
|
|
5
|
+
*/
|
|
6
|
+
export declare const MOCK_BARS: BarItem[];
|
|
7
|
+
interface MockBarsParams {
|
|
8
|
+
symbol: string;
|
|
9
|
+
interval: string;
|
|
10
|
+
fromTime?: string;
|
|
11
|
+
toTime?: string;
|
|
12
|
+
serverName?: string;
|
|
13
|
+
limit?: number;
|
|
14
|
+
sortDirection?: 'asc' | 'desc';
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Build a fake BarsResponse matching the requested interval.
|
|
18
|
+
* Filters MOCK_BARS by interval, echoes symbol/interval, sets
|
|
19
|
+
* sourceInterval='M1', aggregated=(interval!=='M1'), count=items.length.
|
|
20
|
+
*/
|
|
21
|
+
export declare function mockBars(params: MockBarsParams): BarsResponse;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=mock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../src/services/bars/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIzD;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,OAAO,EAqD9B,CAAC;AAEF,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,CAiB7D"}
|