@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.
Files changed (288) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +479 -0
  3. package/dist/chunks/_shared-DdBWuPm_.js +27 -0
  4. package/dist/chunks/_shared-DdBWuPm_.js.map +1 -0
  5. package/dist/chunks/auth.constant-CMI1lqQc.js +37 -0
  6. package/dist/chunks/auth.constant-CMI1lqQc.js.map +1 -0
  7. package/dist/chunks/authz.constant-BAarvacV.js +9 -0
  8. package/dist/chunks/authz.constant-BAarvacV.js.map +1 -0
  9. package/dist/chunks/http.constant-BzH5tJTG.js +33 -0
  10. package/dist/chunks/http.constant-BzH5tJTG.js.map +1 -0
  11. package/dist/chunks/mt5Retcode-DlZLQOLA.js +178 -0
  12. package/dist/chunks/mt5Retcode-DlZLQOLA.js.map +1 -0
  13. package/dist/chunks/storage.constant--64BDSPW.js +44 -0
  14. package/dist/chunks/storage.constant--64BDSPW.js.map +1 -0
  15. package/dist/common/constants/auth.constant.d.ts +54 -0
  16. package/dist/common/constants/auth.constant.d.ts.map +1 -0
  17. package/dist/common/constants/authz.constant.d.ts +27 -0
  18. package/dist/common/constants/authz.constant.d.ts.map +1 -0
  19. package/dist/common/constants/bars.constant.d.ts +15 -0
  20. package/dist/common/constants/bars.constant.d.ts.map +1 -0
  21. package/dist/common/constants/content-types.constant.d.ts +31 -0
  22. package/dist/common/constants/content-types.constant.d.ts.map +1 -0
  23. package/dist/common/constants/content.constant.d.ts +114 -0
  24. package/dist/common/constants/content.constant.d.ts.map +1 -0
  25. package/dist/common/constants/executions.constant.d.ts +56 -0
  26. package/dist/common/constants/executions.constant.d.ts.map +1 -0
  27. package/dist/common/constants/gov.constant.d.ts +118 -0
  28. package/dist/common/constants/gov.constant.d.ts.map +1 -0
  29. package/dist/common/constants/history.constant.d.ts +108 -0
  30. package/dist/common/constants/history.constant.d.ts.map +1 -0
  31. package/dist/common/constants/http.constant.d.ts +46 -0
  32. package/dist/common/constants/http.constant.d.ts.map +1 -0
  33. package/dist/common/constants/index.d.ts +16 -0
  34. package/dist/common/constants/index.d.ts.map +1 -0
  35. package/dist/common/constants/kalshi.constant.d.ts +35 -0
  36. package/dist/common/constants/kalshi.constant.d.ts.map +1 -0
  37. package/dist/common/constants/llm.constant.d.ts +37 -0
  38. package/dist/common/constants/llm.constant.d.ts.map +1 -0
  39. package/dist/common/constants/mt5-action.constant.d.ts +131 -0
  40. package/dist/common/constants/mt5-action.constant.d.ts.map +1 -0
  41. package/dist/common/constants/mt5.constant.d.ts +254 -0
  42. package/dist/common/constants/mt5.constant.d.ts.map +1 -0
  43. package/dist/common/constants/notifications.constant.d.ts +45 -0
  44. package/dist/common/constants/notifications.constant.d.ts.map +1 -0
  45. package/dist/common/constants/people.constant.d.ts +269 -0
  46. package/dist/common/constants/people.constant.d.ts.map +1 -0
  47. package/dist/common/constants/rules.constant.d.ts +14 -0
  48. package/dist/common/constants/rules.constant.d.ts.map +1 -0
  49. package/dist/common/constants/settings.constant.d.ts +17 -0
  50. package/dist/common/constants/settings.constant.d.ts.map +1 -0
  51. package/dist/common/constants/sort.constant.d.ts +14 -0
  52. package/dist/common/constants/sort.constant.d.ts.map +1 -0
  53. package/dist/common/constants/storage.constant.d.ts +74 -0
  54. package/dist/common/constants/storage.constant.d.ts.map +1 -0
  55. package/dist/common/helpers/format.d.ts +7 -0
  56. package/dist/common/helpers/format.d.ts.map +1 -0
  57. package/dist/common/helpers/format.js +20 -0
  58. package/dist/common/helpers/format.js.map +1 -0
  59. package/dist/common/helpers/mt5Retcode.d.ts +18 -0
  60. package/dist/common/helpers/mt5Retcode.d.ts.map +1 -0
  61. package/dist/common/helpers/mt5Retcode.js +2 -0
  62. package/dist/common/helpers/mt5Retcode.js.map +1 -0
  63. package/dist/common/utils/case.d.ts +12 -0
  64. package/dist/common/utils/case.d.ts.map +1 -0
  65. package/dist/common/utils/clone.d.ts +9 -0
  66. package/dist/common/utils/clone.d.ts.map +1 -0
  67. package/dist/composables/cbsStateKey.d.ts +27 -0
  68. package/dist/composables/cbsStateKey.d.ts.map +1 -0
  69. package/dist/core/createApi.d.ts +69 -0
  70. package/dist/core/createApi.d.ts.map +1 -0
  71. package/dist/core/createCmsSDK.d.ts +19 -0
  72. package/dist/core/createCmsSDK.d.ts.map +1 -0
  73. package/dist/core/credentials/TokenManager.d.ts +38 -0
  74. package/dist/core/credentials/TokenManager.d.ts.map +1 -0
  75. package/dist/core/credentials/credential.type.d.ts +16 -0
  76. package/dist/core/credentials/credential.type.d.ts.map +1 -0
  77. package/dist/core/credentials/resolveStorage.d.ts +6 -0
  78. package/dist/core/credentials/resolveStorage.d.ts.map +1 -0
  79. package/dist/core/credentials/storages/cookieStorage.d.ts +18 -0
  80. package/dist/core/credentials/storages/cookieStorage.d.ts.map +1 -0
  81. package/dist/core/credentials/storages/localStorageAdapter.d.ts +8 -0
  82. package/dist/core/credentials/storages/localStorageAdapter.d.ts.map +1 -0
  83. package/dist/core/credentials/storages/memoryStorage.d.ts +7 -0
  84. package/dist/core/credentials/storages/memoryStorage.d.ts.map +1 -0
  85. package/dist/core/errors.d.ts +26 -0
  86. package/dist/core/errors.d.ts.map +1 -0
  87. package/dist/core/sdk.type.d.ts +123 -0
  88. package/dist/core/sdk.type.d.ts.map +1 -0
  89. package/dist/core/ws/createEaeraWebSocket.d.ts +21 -0
  90. package/dist/core/ws/createEaeraWebSocket.d.ts.map +1 -0
  91. package/dist/core/ws/index.d.ts +4 -0
  92. package/dist/core/ws/index.d.ts.map +1 -0
  93. package/dist/core/ws/ws.constants.d.ts +246 -0
  94. package/dist/core/ws/ws.constants.d.ts.map +1 -0
  95. package/dist/core/ws/ws.events.d.ts +264 -0
  96. package/dist/core/ws/ws.events.d.ts.map +1 -0
  97. package/dist/core/ws/ws.type.d.ts +225 -0
  98. package/dist/core/ws/ws.type.d.ts.map +1 -0
  99. package/dist/index.d.ts +135 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +8608 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/nuxt.d.ts +55 -0
  104. package/dist/nuxt.d.ts.map +1 -0
  105. package/dist/nuxt.js +48 -0
  106. package/dist/nuxt.js.map +1 -0
  107. package/dist/runtime/plugin.d.ts +6 -0
  108. package/dist/runtime/plugin.js +197 -0
  109. package/dist/runtime/plugin.js.map +1 -0
  110. package/dist/server/auth/cbs-callback.post.js +43 -0
  111. package/dist/server/auth/cbs-callback.post.js.map +1 -0
  112. package/dist/server/auth/cbs-start.post.js +35 -0
  113. package/dist/server/auth/cbs-start.post.js.map +1 -0
  114. package/dist/server/auth/idp-callback.get.js +53 -0
  115. package/dist/server/auth/idp-callback.get.js.map +1 -0
  116. package/dist/server/auth/idp-link.post.js +39 -0
  117. package/dist/server/auth/idp-link.post.js.map +1 -0
  118. package/dist/server/auth/idp-login.get.js +43 -0
  119. package/dist/server/auth/idp-login.get.js.map +1 -0
  120. package/dist/server/auth/idp-unlink.delete.js +39 -0
  121. package/dist/server/auth/idp-unlink.delete.js.map +1 -0
  122. package/dist/server/auth/login.post.js +46 -0
  123. package/dist/server/auth/login.post.js.map +1 -0
  124. package/dist/server/auth/logout.post.js +32 -0
  125. package/dist/server/auth/logout.post.js.map +1 -0
  126. package/dist/server/auth/refresh.post.js +47 -0
  127. package/dist/server/auth/refresh.post.js.map +1 -0
  128. package/dist/server/authz/portal-access.get.js +43 -0
  129. package/dist/server/authz/portal-access.get.js.map +1 -0
  130. package/dist/server/clear-token.delete.js +12 -0
  131. package/dist/server/clear-token.delete.js.map +1 -0
  132. package/dist/server/persist.post.js +31 -0
  133. package/dist/server/persist.post.js.map +1 -0
  134. package/dist/server/set-token.post.js +27 -0
  135. package/dist/server/set-token.post.js.map +1 -0
  136. package/dist/services/auth/auth.type.d.ts +73 -0
  137. package/dist/services/auth/auth.type.d.ts.map +1 -0
  138. package/dist/services/auth/index.d.ts +127 -0
  139. package/dist/services/auth/index.d.ts.map +1 -0
  140. package/dist/services/auth/mock.d.ts +13 -0
  141. package/dist/services/auth/mock.d.ts.map +1 -0
  142. package/dist/services/authz/authz.type.d.ts +21 -0
  143. package/dist/services/authz/authz.type.d.ts.map +1 -0
  144. package/dist/services/authz/index.d.ts +43 -0
  145. package/dist/services/authz/index.d.ts.map +1 -0
  146. package/dist/services/bars/bars.type.d.ts +78 -0
  147. package/dist/services/bars/bars.type.d.ts.map +1 -0
  148. package/dist/services/bars/index.d.ts +24 -0
  149. package/dist/services/bars/index.d.ts.map +1 -0
  150. package/dist/services/bars/mock.d.ts +23 -0
  151. package/dist/services/bars/mock.d.ts.map +1 -0
  152. package/dist/services/content/content.type.d.ts +832 -0
  153. package/dist/services/content/content.type.d.ts.map +1 -0
  154. package/dist/services/content/filter.d.ts +46 -0
  155. package/dist/services/content/filter.d.ts.map +1 -0
  156. package/dist/services/content/index.d.ts +35 -0
  157. package/dist/services/content/index.d.ts.map +1 -0
  158. package/dist/services/content/mock.d.ts +16 -0
  159. package/dist/services/content/mock.d.ts.map +1 -0
  160. package/dist/services/content-types/content-types.type.d.ts +70 -0
  161. package/dist/services/content-types/content-types.type.d.ts.map +1 -0
  162. package/dist/services/content-types/index.d.ts +25 -0
  163. package/dist/services/content-types/index.d.ts.map +1 -0
  164. package/dist/services/content-types/mock.d.ts +15 -0
  165. package/dist/services/content-types/mock.d.ts.map +1 -0
  166. package/dist/services/executions/executions.type.d.ts +67 -0
  167. package/dist/services/executions/executions.type.d.ts.map +1 -0
  168. package/dist/services/executions/index.d.ts +30 -0
  169. package/dist/services/executions/index.d.ts.map +1 -0
  170. package/dist/services/executions/mock.d.ts +29 -0
  171. package/dist/services/executions/mock.d.ts.map +1 -0
  172. package/dist/services/gov/gov.type.d.ts +740 -0
  173. package/dist/services/gov/gov.type.d.ts.map +1 -0
  174. package/dist/services/gov/index.d.ts +84 -0
  175. package/dist/services/gov/index.d.ts.map +1 -0
  176. package/dist/services/history/history.type.d.ts +167 -0
  177. package/dist/services/history/history.type.d.ts.map +1 -0
  178. package/dist/services/history/index.d.ts +38 -0
  179. package/dist/services/history/index.d.ts.map +1 -0
  180. package/dist/services/history/mock.d.ts +21 -0
  181. package/dist/services/history/mock.d.ts.map +1 -0
  182. package/dist/services/kalshi/index.d.ts +19 -0
  183. package/dist/services/kalshi/index.d.ts.map +1 -0
  184. package/dist/services/kalshi/kalshi.type.d.ts +99 -0
  185. package/dist/services/kalshi/kalshi.type.d.ts.map +1 -0
  186. package/dist/services/kalshi/mock.d.ts +5 -0
  187. package/dist/services/kalshi/mock.d.ts.map +1 -0
  188. package/dist/services/llm/index.d.ts +38 -0
  189. package/dist/services/llm/index.d.ts.map +1 -0
  190. package/dist/services/llm/llm.type.d.ts +106 -0
  191. package/dist/services/llm/llm.type.d.ts.map +1 -0
  192. package/dist/services/notifications/index.d.ts +38 -0
  193. package/dist/services/notifications/index.d.ts.map +1 -0
  194. package/dist/services/notifications/mock.d.ts +39 -0
  195. package/dist/services/notifications/mock.d.ts.map +1 -0
  196. package/dist/services/notifications/notifications.type.d.ts +75 -0
  197. package/dist/services/notifications/notifications.type.d.ts.map +1 -0
  198. package/dist/services/people/_invoke.d.ts +26 -0
  199. package/dist/services/people/_invoke.d.ts.map +1 -0
  200. package/dist/services/people/copilot/index.d.ts +132 -0
  201. package/dist/services/people/copilot/index.d.ts.map +1 -0
  202. package/dist/services/people/identity/actions.d.ts +116 -0
  203. package/dist/services/people/identity/actions.d.ts.map +1 -0
  204. package/dist/services/people/identity/ct.types.d.ts +133 -0
  205. package/dist/services/people/identity/ct.types.d.ts.map +1 -0
  206. package/dist/services/people/identity/index.d.ts +14 -0
  207. package/dist/services/people/identity/index.d.ts.map +1 -0
  208. package/dist/services/people/identity/projections.d.ts +63 -0
  209. package/dist/services/people/identity/projections.d.ts.map +1 -0
  210. package/dist/services/people/index.d.ts +31 -0
  211. package/dist/services/people/index.d.ts.map +1 -0
  212. package/dist/services/people/legal/actions.d.ts +161 -0
  213. package/dist/services/people/legal/actions.d.ts.map +1 -0
  214. package/dist/services/people/legal/ct.types.d.ts +186 -0
  215. package/dist/services/people/legal/ct.types.d.ts.map +1 -0
  216. package/dist/services/people/legal/index.d.ts +15 -0
  217. package/dist/services/people/legal/index.d.ts.map +1 -0
  218. package/dist/services/people/packops/index.d.ts +79 -0
  219. package/dist/services/people/packops/index.d.ts.map +1 -0
  220. package/dist/services/people/packops/packops.type.d.ts +208 -0
  221. package/dist/services/people/packops/packops.type.d.ts.map +1 -0
  222. package/dist/services/people/perms/actions.d.ts +214 -0
  223. package/dist/services/people/perms/actions.d.ts.map +1 -0
  224. package/dist/services/people/perms/ct.types.d.ts +140 -0
  225. package/dist/services/people/perms/ct.types.d.ts.map +1 -0
  226. package/dist/services/people/perms/index.d.ts +14 -0
  227. package/dist/services/people/perms/index.d.ts.map +1 -0
  228. package/dist/services/people/perms/projections.d.ts +47 -0
  229. package/dist/services/people/perms/projections.d.ts.map +1 -0
  230. package/dist/services/people/process/actions.d.ts +154 -0
  231. package/dist/services/people/process/actions.d.ts.map +1 -0
  232. package/dist/services/people/process/ct.types.d.ts +304 -0
  233. package/dist/services/people/process/ct.types.d.ts.map +1 -0
  234. package/dist/services/people/process/index.d.ts +12 -0
  235. package/dist/services/people/process/index.d.ts.map +1 -0
  236. package/dist/services/people/shared.types.d.ts +36 -0
  237. package/dist/services/people/shared.types.d.ts.map +1 -0
  238. package/dist/services/rules/conditions.d.ts +264 -0
  239. package/dist/services/rules/conditions.d.ts.map +1 -0
  240. package/dist/services/rules/index.d.ts +49 -0
  241. package/dist/services/rules/index.d.ts.map +1 -0
  242. package/dist/services/rules/llm-rule.constant.d.ts +84 -0
  243. package/dist/services/rules/llm-rule.constant.d.ts.map +1 -0
  244. package/dist/services/rules/mock.d.ts +20 -0
  245. package/dist/services/rules/mock.d.ts.map +1 -0
  246. package/dist/services/rules/rules.type.d.ts +262 -0
  247. package/dist/services/rules/rules.type.d.ts.map +1 -0
  248. package/dist/services/rules/triggers.d.ts +140 -0
  249. package/dist/services/rules/triggers.d.ts.map +1 -0
  250. package/dist/services/settings/index.d.ts +36 -0
  251. package/dist/services/settings/index.d.ts.map +1 -0
  252. package/dist/services/settings/mock.d.ts +14 -0
  253. package/dist/services/settings/mock.d.ts.map +1 -0
  254. package/dist/services/settings/settings.type.d.ts +39 -0
  255. package/dist/services/settings/settings.type.d.ts.map +1 -0
  256. package/dist/stores/auth.d.ts +192 -0
  257. package/dist/stores/auth.d.ts.map +1 -0
  258. package/dist/stores/authz.d.ts +116 -0
  259. package/dist/stores/authz.d.ts.map +1 -0
  260. package/dist/stores/bars.d.ts +288 -0
  261. package/dist/stores/bars.d.ts.map +1 -0
  262. package/dist/stores/content.d.ts +4101 -0
  263. package/dist/stores/content.d.ts.map +1 -0
  264. package/dist/stores/executions.d.ts +249 -0
  265. package/dist/stores/executions.d.ts.map +1 -0
  266. package/dist/stores/gov.d.ts +238 -0
  267. package/dist/stores/gov.d.ts.map +1 -0
  268. package/dist/stores/history.d.ts +833 -0
  269. package/dist/stores/history.d.ts.map +1 -0
  270. package/dist/stores/index.d.ts +16 -0
  271. package/dist/stores/index.d.ts.map +1 -0
  272. package/dist/stores/kalshi.d.ts +728 -0
  273. package/dist/stores/kalshi.d.ts.map +1 -0
  274. package/dist/stores/llm-providers.d.ts +97 -0
  275. package/dist/stores/llm-providers.d.ts.map +1 -0
  276. package/dist/stores/llm.d.ts +102 -0
  277. package/dist/stores/llm.d.ts.map +1 -0
  278. package/dist/stores/people.d.ts +596 -0
  279. package/dist/stores/people.d.ts.map +1 -0
  280. package/dist/stores/persist.d.ts +58 -0
  281. package/dist/stores/persist.d.ts.map +1 -0
  282. package/dist/stores/rules.d.ts +485 -0
  283. package/dist/stores/rules.d.ts.map +1 -0
  284. package/dist/stores/settings.d.ts +36 -0
  285. package/dist/stores/settings.d.ts.map +1 -0
  286. package/dist/stores/ws.d.ts +66 -0
  287. package/dist/stores/ws.d.ts.map +1 -0
  288. 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"}