@eaera-com/cms-sdk 0.1.67 → 0.1.68

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 (51) hide show
  1. package/LICENSE +28 -15
  2. package/THIRD-PARTY-NOTICES.md +135 -0
  3. package/dist/chunks/_shared-DZlTUzoa.js +0 -1
  4. package/dist/chunks/auth.constant-CMI1lqQc.js +0 -1
  5. package/dist/chunks/authz.constant-BAarvacV.js +0 -1
  6. package/dist/chunks/http.constant-BzH5tJTG.js +0 -1
  7. package/dist/chunks/mt5Retcode-DlZLQOLA.js +0 -1
  8. package/dist/chunks/storage.constant-CVWam5ls.js +0 -1
  9. package/dist/common/helpers/format.js +0 -1
  10. package/dist/common/helpers/mt5Retcode.js +0 -1
  11. package/dist/index.js +2 -3
  12. package/dist/nuxt.js +0 -1
  13. package/dist/runtime/plugin.js +0 -1
  14. package/dist/server/auth/cbs-callback.post.js +0 -1
  15. package/dist/server/auth/cbs-start.post.js +0 -1
  16. package/dist/server/auth/idp-callback.get.js +0 -1
  17. package/dist/server/auth/idp-link.post.js +0 -1
  18. package/dist/server/auth/idp-login.get.js +0 -1
  19. package/dist/server/auth/idp-unlink.delete.js +0 -1
  20. package/dist/server/auth/login.post.js +0 -1
  21. package/dist/server/auth/logout.post.js +0 -1
  22. package/dist/server/auth/refresh.post.js +0 -1
  23. package/dist/server/authz/portal-access.get.js +0 -1
  24. package/dist/server/clear-token.delete.js +0 -1
  25. package/dist/server/persist.post.js +0 -1
  26. package/dist/server/set-token.post.js +0 -1
  27. package/package.json +3 -2
  28. package/dist/chunks/_shared-DZlTUzoa.js.map +0 -1
  29. package/dist/chunks/auth.constant-CMI1lqQc.js.map +0 -1
  30. package/dist/chunks/authz.constant-BAarvacV.js.map +0 -1
  31. package/dist/chunks/http.constant-BzH5tJTG.js.map +0 -1
  32. package/dist/chunks/mt5Retcode-DlZLQOLA.js.map +0 -1
  33. package/dist/chunks/storage.constant-CVWam5ls.js.map +0 -1
  34. package/dist/common/helpers/format.js.map +0 -1
  35. package/dist/common/helpers/mt5Retcode.js.map +0 -1
  36. package/dist/index.js.map +0 -1
  37. package/dist/nuxt.js.map +0 -1
  38. package/dist/runtime/plugin.js.map +0 -1
  39. package/dist/server/auth/cbs-callback.post.js.map +0 -1
  40. package/dist/server/auth/cbs-start.post.js.map +0 -1
  41. package/dist/server/auth/idp-callback.get.js.map +0 -1
  42. package/dist/server/auth/idp-link.post.js.map +0 -1
  43. package/dist/server/auth/idp-login.get.js.map +0 -1
  44. package/dist/server/auth/idp-unlink.delete.js.map +0 -1
  45. package/dist/server/auth/login.post.js.map +0 -1
  46. package/dist/server/auth/logout.post.js.map +0 -1
  47. package/dist/server/auth/refresh.post.js.map +0 -1
  48. package/dist/server/authz/portal-access.get.js.map +0 -1
  49. package/dist/server/clear-token.delete.js.map +0 -1
  50. package/dist/server/persist.post.js.map +0 -1
  51. package/dist/server/set-token.post.js.map +0 -1
package/LICENSE CHANGED
@@ -1,19 +1,32 @@
1
1
  Copyright (c) 2026 EAERA. All rights reserved.
2
2
 
3
- Redistribution and use of this software in source and binary forms, with or
4
- without modification, are NOT permitted except as expressly provided in
5
- writing by EAERA. Installing and running this package from the public npm
6
- registry for the purpose of building applications that interact with EAERA
7
- services is permitted.
3
+ EAERA SOFTWARE LICENSE DRAFT v2
4
+ [PENDING FINAL REVIEW BY EAERA LEGAL DO NOT REMOVE THIS NOTICE UNTIL
5
+ THE TEXT IS APPROVED. CONSULT EAERA LEGAL BEFORE SWITCHING TO AN
6
+ OPEN-SOURCE LICENSE (MIT / APACHE-2.0).]
8
7
 
9
- THIS SOFTWARE IS PROVIDED BY EAERA "AS IS" AND ANY EXPRESS OR IMPLIED
10
- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
11
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
12
- EVENT SHALL EAERA BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
13
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF
14
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8
+ 1. Ownership. This software and its documentation are proprietary to
9
+ EAERA. All rights not expressly granted below are reserved.
15
10
 
16
- NOTE: This license text is a placeholder pending final legal review. The
17
- package will be published to the public npm registry; consult EAERA legal
18
- before changing this file or switching to an open-source license (MIT /
19
- Apache-2.0).
11
+ 2. Permitted use. You may obtain, install, cache, and run this package
12
+ from the public npm registry (registry.npmjs.org), including through
13
+ corporate registries, mirrors, and proxies that cache registry
14
+ content (e.g. Artifactory, Verdaccio), solely for the purpose of
15
+ building, deploying, and operating applications that interact with
16
+ EAERA services ("Permitted Applications"). You may copy and bundle
17
+ portions of this package into Permitted Applications, including
18
+ modifications made for internal use within such applications.
19
+
20
+ 3. Restrictions. Except as expressly permitted in Section 2 or provided
21
+ in writing by EAERA, you may NOT redistribute, publish, sublicense,
22
+ resell, or make available this software in source or binary form, in
23
+ whole or in part, and you may NOT use it to build products that
24
+ compete with EAERA services.
25
+
26
+ 4. No warranty. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR
27
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29
+ ARE DISCLAIMED. IN NO EVENT SHALL EAERA BE LIABLE FOR ANY DIRECT,
30
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
31
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
32
+ OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,135 @@
1
+ # Third-Party Software Notices
2
+
3
+ This package declares its dependencies in `package.json`; they are installed
4
+ by your package manager and are NOT bundled into the published artifacts.
5
+ Each dependency remains under its own license, listed below for the resolved
6
+ lockfile versions.
7
+
8
+ License metadata sourced from the npm registry (2026-09-17).
9
+
10
+ - `@babel/code-frame@7.29.7` — MIT
11
+ - `@babel/helper-string-parser@7.29.7` — MIT
12
+ - `@babel/helper-validator-identifier@7.29.7` — MIT
13
+ - `@babel/parser@7.29.7` — MIT
14
+ - `@babel/types@7.29.7` — MIT
15
+ - `@commitlint/cli@20.5.3` — MIT
16
+ - `@commitlint/config-validator@20.5.0` — MIT
17
+ - `@commitlint/ensure@20.5.3` — MIT
18
+ - `@commitlint/execute-rule@20.0.0` — MIT
19
+ - `@commitlint/format@20.5.0` — MIT
20
+ - `@commitlint/is-ignored@20.5.0` — MIT
21
+ - `@commitlint/lint@20.5.3` — MIT
22
+ - `@commitlint/load@20.5.3` — MIT
23
+ - `@commitlint/message@20.4.3` — MIT
24
+ - `@commitlint/parse@20.5.0` — MIT
25
+ - `@commitlint/read@20.5.0` — MIT
26
+ - `@commitlint/resolve-extends@20.5.3` — MIT
27
+ - `@commitlint/rules@20.5.3` — MIT
28
+ - `@commitlint/to-lines@20.0.0` — MIT
29
+ - `@commitlint/top-level@20.4.3` — MIT
30
+ - `@commitlint/types@20.5.0` — MIT
31
+ - `@conventional-changelog/git-client@2.7.0` — MIT
32
+ - `@esbuild/aix-ppc64@0.27.7` — MIT
33
+ - `@esbuild/android-arm@0.27.7` — MIT
34
+ - `@esbuild/android-arm64@0.27.7` — MIT
35
+ - `@esbuild/android-x64@0.27.7` — MIT
36
+ - `@esbuild/darwin-arm64@0.27.7` — MIT
37
+ - `@esbuild/darwin-x64@0.27.7` — MIT
38
+ - `@esbuild/freebsd-arm64@0.27.7` — MIT
39
+ - `@esbuild/freebsd-x64@0.27.7` — MIT
40
+ - `@esbuild/linux-arm@0.27.7` — MIT
41
+ - `@esbuild/linux-arm64@0.27.7` — MIT
42
+ - `@esbuild/linux-ia32@0.27.7` — MIT
43
+ - `@esbuild/linux-loong64@0.27.7` — MIT
44
+ - `@esbuild/linux-mips64el@0.27.7` — MIT
45
+ - `@esbuild/linux-ppc64@0.27.7` — MIT
46
+ - `@esbuild/linux-riscv64@0.27.7` — MIT
47
+ - `@esbuild/linux-s390x@0.27.7` — MIT
48
+ - `@esbuild/linux-x64@0.27.7` — MIT
49
+ - `@esbuild/netbsd-arm64@0.27.7` — MIT
50
+ - `@esbuild/netbsd-x64@0.27.7` — MIT
51
+ - `@esbuild/openbsd-arm64@0.27.7` — MIT
52
+ - `@esbuild/openbsd-x64@0.27.7` — MIT
53
+ - `@esbuild/openharmony-arm64@0.27.7` — MIT
54
+ - `@esbuild/sunos-x64@0.27.7` — MIT
55
+ - `@esbuild/win32-arm64@0.27.7` — MIT
56
+ - `@esbuild/win32-ia32@0.27.7` — MIT
57
+ - `@esbuild/win32-x64@0.27.7` — MIT
58
+ - `@jridgewell/gen-mapping@0.3.13` — MIT
59
+ - `@jridgewell/remapping@2.3.5` — MIT
60
+ - `@jridgewell/resolve-uri@3.1.2` — MIT
61
+ - `@jridgewell/sourcemap-codec@1.5.5` — MIT
62
+ - `@jridgewell/trace-mapping@0.3.31` — MIT
63
+ - `@nuxt/kit@4.4.8` — MIT
64
+ - `@nuxt/schema@4.4.8` — MIT
65
+ - `@pinia/nuxt@0.11.3` — MIT
66
+ - `@pnpm/exe.android-arm64@12.4.1` — MIT
67
+ - `@pnpm/exe.android-x64@12.4.1` — MIT
68
+ - `@pnpm/exe.darwin-arm64@12.4.1` — MIT
69
+ - `@pnpm/exe.darwin-x64@12.4.1` — MIT
70
+ - `@pnpm/exe.freebsd-x64@12.4.1` — MIT
71
+ - `@pnpm/exe.linux-arm64@12.4.1` — MIT
72
+ - `@pnpm/exe.linux-arm64-musl@12.4.1` — MIT
73
+ - `@pnpm/exe.linux-ppc64@12.4.1` — MIT
74
+ - `@pnpm/exe.linux-riscv64@12.4.1` — MIT
75
+ - `@pnpm/exe.linux-s390x@12.4.1` — MIT
76
+ - `@pnpm/exe.linux-x64@12.4.1` — MIT
77
+ - `@pnpm/exe.linux-x64-musl@12.4.1` — MIT
78
+ - `@pnpm/exe.win32-arm64@12.4.1` — MIT
79
+ - `@pnpm/exe.win32-x64@12.4.1` — MIT
80
+ - `@publint/pack@0.1.5` — MIT
81
+ - `@rollup/pluginutils@5.4.0` — MIT
82
+ - `@rollup/rollup-android-arm64@4.62.2` — MIT
83
+ - `@rollup/rollup-android-arm-eabi@4.62.2` — MIT
84
+ - `@rollup/rollup-darwin-arm64@4.62.2` — MIT
85
+ - `@rollup/rollup-darwin-x64@4.62.2` — MIT
86
+ - `@rollup/rollup-freebsd-arm64@4.62.2` — MIT
87
+ - `@rollup/rollup-freebsd-x64@4.62.2` — MIT
88
+ - `@rollup/rollup-linux-arm64-gnu@4.62.2` — MIT
89
+ - `@rollup/rollup-linux-arm64-musl@4.62.2` — MIT
90
+ - `@rollup/rollup-linux-arm-gnueabihf@4.62.2` — MIT
91
+ - `@rollup/rollup-linux-arm-musleabihf@4.62.2` — MIT
92
+ - `@rollup/rollup-linux-loong64-gnu@4.62.2` — MIT
93
+ - `@rollup/rollup-linux-loong64-musl@4.62.2` — MIT
94
+ - `@rollup/rollup-linux-ppc64-gnu@4.62.2` — MIT
95
+ - `@rollup/rollup-linux-ppc64-musl@4.62.2` — MIT
96
+ - `@rollup/rollup-linux-riscv64-gnu@4.62.2` — MIT
97
+ - `@rollup/rollup-linux-riscv64-musl@4.62.2` — MIT
98
+ - `@rollup/rollup-linux-s390x-gnu@4.62.2` — MIT
99
+ - `@rollup/rollup-linux-x64-gnu@4.62.2` — MIT
100
+ - `@rollup/rollup-linux-x64-musl@4.62.2` — MIT
101
+ - `@rollup/rollup-openbsd-x64@4.62.2` — MIT
102
+ - `@rollup/rollup-openharmony-arm64@4.62.2` — MIT
103
+ - `@rollup/rollup-win32-arm64-msvc@4.62.2` — MIT
104
+ - `@rollup/rollup-win32-ia32-msvc@4.62.2` — MIT
105
+ - `@rollup/rollup-win32-x64-gnu@4.62.2` — MIT
106
+ - `@rollup/rollup-win32-x64-msvc@4.62.2` — MIT
107
+ - `@simple-libs/child-process-utils@1.0.2` — MIT
108
+ - `@simple-libs/stream-utils@1.2.0` — MIT
109
+ - `@standard-schema/spec@1.1.0` — MIT
110
+ - `@types/chai@5.2.3` — MIT
111
+ - `@types/deep-eql@4.0.2` — MIT
112
+ - `@types/estree@1.0.9` — MIT
113
+ - `@types/node@22.20.0` — MIT
114
+ - `@vitest/expect@4.1.9` — MIT
115
+ - `@vitest/mocker@4.1.9` — MIT
116
+ - `@vitest/pretty-format@4.1.9` — MIT
117
+ - `@vitest/runner@4.1.9` — MIT
118
+ - `@vitest/snapshot@4.1.9` — MIT
119
+ - `@vitest/spy@4.1.9` — MIT
120
+ - `@vitest/utils@4.1.9` — MIT
121
+ - `@volar/language-core@2.4.28` — MIT
122
+ - `@volar/source-map@2.4.28` — MIT
123
+ - `@volar/typescript@2.4.28` — MIT
124
+ - `@vue/compiler-core@3.5.38` — MIT
125
+ - `@vue/compiler-dom@3.5.38` — MIT
126
+ - `@vue/compiler-sfc@3.5.38` — MIT
127
+ - `@vue/compiler-ssr@3.5.38` — MIT
128
+ - `@vue/devtools-api@7.7.9` — MIT
129
+ - `@vue/devtools-kit@7.7.9` — MIT
130
+ - `@vue/devtools-shared@7.7.9` — MIT
131
+ - `@vue/reactivity@3.5.38` — MIT
132
+ - `@vue/runtime-core@3.5.38` — MIT
133
+ - `@vue/runtime-dom@3.5.38` — MIT
134
+ - `@vue/server-renderer@3.5.38` — MIT
135
+ - `@vue/shared@3.5.38` — MIT
@@ -24,4 +24,3 @@ function readSdkConfig(event) {
24
24
  }
25
25
 
26
26
  export { TOKEN_COOKIE_OPTIONS as T, readSdkConfig as r };
27
- //# sourceMappingURL=_shared-DZlTUzoa.js.map
@@ -34,4 +34,3 @@ const AUTH_PROXY_PATH = {
34
34
  };
35
35
 
36
36
  export { AUTH_PROXY_PATH as A, AUTH_ENDPOINT as a };
37
- //# sourceMappingURL=auth.constant-CMI1lqQc.js.map
@@ -6,4 +6,3 @@ const AUTHZ_PROXY_PATH = {
6
6
  };
7
7
 
8
8
  export { AUTHZ_PROXY_PATH as A, AUTHZ_ENDPOINT as a };
9
- //# sourceMappingURL=authz.constant-BAarvacV.js.map
@@ -30,4 +30,3 @@ const HTTP_DEFAULTS = {
30
30
  const HTTP_RETRY_STATUS_CODES = [408, 425, 429, 500, 502, 503, 504];
31
31
 
32
32
  export { HTTP_DEFAULTS as H, RESPONSE_CASING_VALUE as R, SERIALIZATION_FORMAT as S, HTTP_RETRY_STATUS_CODES as a, HTTP_HEADER as b };
33
- //# sourceMappingURL=http.constant-BzH5tJTG.js.map
@@ -175,4 +175,3 @@ function viewMt5Retcode(retcode) {
175
175
  }
176
176
 
177
177
  export { viewMt5Retcode as A, MT5_RETCODE as M, WS_RECONNECT_INITIAL_MS as W, WS_RECONNECT_MAX_MS as a, WS_CONNECTION_STATE as b, WS_PING_INTERVAL_MS as c, WS_MESSAGE_TYPE as d, WS_CLOSE_CODE as e, WS_MAX_RECONNECT_ATTEMPTS as f, WS_AUTH_TIMEOUT_MS as g, WS_RECONNECT_JITTER_MS as h, WS_PING_WATCHDOG_CHECK_MS as i, WS_MAX_SUBSCRIPTIONS as j, WS_PING_WATCHDOG_FACTOR as k, WS_ACTION_ACCEPTED_ERROR_CODE as l, WS_ACTION_ERROR_CODE as m, WS_ACTION_RESULT_ERROR_CODE as n, WS_ACTION_RESULT_TTL_MS as o, WS_AUTH_ERROR_CODE as p, WS_CLOSE_REASON as q, WS_MT5_EVENT_TYPE as r, WS_TOPIC as s, WS_TOPIC_NAMESPACE as t, accountTopic as u, adminTopic as v, mt5Topic as w, streamTopic as x, symbolTopic as y, userTopic as z };
178
- //# sourceMappingURL=mt5Retcode-DlZLQOLA.js.map
@@ -42,4 +42,3 @@ const COOKIE_SAME_SITE = {
42
42
  };
43
43
 
44
44
  export { COOKIE_SAME_SITE as C, PERSIST_KEY as P, REFRESH_TOKEN_STORAGE_KEY as R, STORE_PERSIST_KEY as S, TOKEN_STORAGE_KEY as T, COOKIE_DEFAULTS as a, PERSIST_ALLOWED_KEYS as b, PERSIST_MAX_BYTES as c, PERSIST_PREFIX as d, STORAGE_NAME as e };
45
- //# sourceMappingURL=storage.constant-CVWam5ls.js.map
@@ -17,4 +17,3 @@ function categoryLabel(category) {
17
17
  }
18
18
 
19
19
  export { categoryLabel, computeSpread, formatPrice };
20
- //# sourceMappingURL=format.js.map
@@ -1,2 +1 @@
1
1
  export { A as viewMt5Retcode } from '../../chunks/mt5Retcode-DlZLQOLA.js';
2
- //# sourceMappingURL=mt5Retcode.js.map
package/dist/index.js CHANGED
@@ -3053,8 +3053,8 @@ const _MOCK_PROVIDERS = [
3053
3053
  {
3054
3054
  name: "openai-default",
3055
3055
  providerType: LLM_PROVIDER_TYPE.OPENAI,
3056
- baseUrl: "https://api.xiaomimimo.com/v1",
3057
- models: ["mimo-v2.5-pro", "mimo-v2.5"],
3056
+ baseUrl: "https://llm.mock.example/v1",
3057
+ models: ["mock-model-pro", "mock-model-basic"],
3058
3058
  config: { timeout: 180 },
3059
3059
  isEnabled: true,
3060
3060
  isHealthy: true
@@ -8658,4 +8658,3 @@ const buildFilter = (conditions) => {
8658
8658
  };
8659
8659
 
8660
8660
  export { ACTION_KIND, ACTION_KINDS, ACTION_RESULT_FIELDS, AUTHZ_ENDPOINT, AUTHZ_PROXY_PATH, AUTH_ENDPOINT, BARS_DEFAULTS, BARS_ENDPOINT, CBS_STATE_KEY_STORAGE, CHART_INTERVAL, CONDITION_FIELDS, CONDITION_OPERATORS, CONDITION_OPERATOR_LABELS, CONDITION_OPERATOR_SYMBOL_TO_WORD, CONDITION_OPERATOR_VALUE_KINDS, CONDITION_TYPE, CONTENT_DEFAULTS, CONTENT_ENDPOINT, CONTENT_FILTER_OPERATOR, CONTENT_FILTER_SCALAR_OPERATOR, CONTENT_TYPE, CONTENT_TYPES_DEFAULTS, CONTENT_TYPES_ENDPOINT, CONTENT_TYPE_CATEGORY, CONTENT_TYPE_NAMES, COOKIE_SAME_SITE, CRON_PRESETS, CmsError, DEFAULT_CRON_SCHEDULE, DEFAULT_EVENT_CONTENT_TYPE, DEFAULT_LLM_QUERY_TOOLS, EVENT_PAYLOAD_FIELDS, EVENT_TYPE, EVENT_TYPE_OPTIONS, EXECUTIONS_DEFAULTS, EXECUTIONS_ENDPOINT, EXECUTION_STATUS, EXECUTION_STATUSES, EXECUTION_TRANSITION, EXECUTION_TYPE, GOV_ACTION_BY_CT, GOV_ACTION_NAME, GOV_CONTENT_TYPE, GOV_CONTENT_TYPE_NAMES, GOV_COST_GROUP, GOV_DEFAULTS, GOV_ENDPOINT, GOV_USAGE_WINDOW, HISTORY_DEAL_ENTRY, HISTORY_DEFAULTS, HISTORY_ENDPOINT, HISTORY_ORDER_STATUS, HISTORY_SORT_BY, HISTORY_SORT_DIRECTION, HISTORY_TAB, HTTP_DEFAULTS, HTTP_HEADER, HTTP_RETRY_STATUS_CODES, KALSHI_CHART_INTERVAL, KALSHI_ENDPOINT, KALSHI_FUTURE_STATUS, KALSHI_LAST_TICKS_DEFAULTS, KALSHI_LIFECYCLE_STATUS, KALSHI_SERVER_STATUS, KALSHI_SETTLEMENT_RESULT, KALSHI_SYMBOL_TICKS_DEFAULTS, KALSHI_TRENDING_DEFAULTS, LEVERAGE_OPTIONS, LLM_ENDPOINT, LLM_EVAL_BOUNDS, LLM_PROVIDER_TYPE, LLM_QUERY_TOOL, LLM_QUERY_TOOL_OPTIONS, MONITORED_GROUPS_TYPE, MT5_ACCOUNT_STATUS, MT5_ACTION_NAME, MT5_ALL_ACTIONS, MT5_CHART_BAR_SOURCE, MT5_COMMISSION_MODE, MT5_COMMISSION_VOLUME_TYPE, MT5_DEAL_ENTRY, MT5_EXECUTION_MODE, MT5_FINANCIAL_ACTIONS, MT5_INTERVAL, MT5_LOCAL_ACTIONS, MT5_MARKET_STATUS, MT5_OPERATIONAL_ACTIONS, MT5_ORDER_DURATION, MT5_ORDER_KIND, MT5_ORDER_STATE, MT5_ORDER_STATE_NAME, MT5_ORDER_TYPE, MT5_POSITION_TYPE, MT5_SERVER_NAME, MT5_SERVER_STATE, MT5_SYNC_PHASE, MT5_TRADE_MODE, MT5_TRADE_SIDE, MT5_TRADING_ACTIONS, MT5_VIEWER_ACTIONS, NOTIFICATIONS_ENDPOINT, NOTIFICATION_FALLBACK_POLICY, NOTIFICATION_TEMPLATE_STATE, PACKS_AUDIT_ENDPOINT, PACKS_ENDPOINT, PEOPLE_ACTION_BY_CT, PEOPLE_ACTION_NAME, PEOPLE_CONTENT_TYPE, PEOPLE_CONTENT_TYPE_NAMES, PEOPLE_COPILOT_ENDPOINT, PEOPLE_DEFAULTS, PEOPLE_ENDPOINT, PEOPLE_PACK_ID, PEOPLE_SUBJECT_KIND, PEOPLE_SYSTEM_ONLY_ACTIONS, PEOPLE_TARGET_TYPE, PERSIST_KEY, PUBLIC_MARKETS_TYPE, REPORT_TEMPLATES_ENDPOINT, RULES_DEFAULTS, RULES_ENDPOINT, SETTINGS_ENDPOINT, SILENT_LOGIN_MESSAGE, SORT_DIRECTION, STORE_PERSIST_KEY, SUM_WITHIN_DAYS, TOKEN_STORAGE_KEY, TRIGGER_MODE, TRIGGER_TYPE, TokenManager, WS_AUTH_TIMEOUT_MS, WS_CLOSE_CODE, WS_CONNECTION_STATE, WS_EVENT_NAME, WS_MAX_SUBSCRIPTIONS, WS_MESSAGE_TYPE, WS_PING_INTERVAL_MS, WS_RECONNECT_INITIAL_MS, WS_RECONNECT_JITTER_MS, WS_RECONNECT_MAX_MS, actionDefByActionName, actionDefByKind, actionsFromExecution, actionsToExecutionParams, buildCronTrigger, buildEventTrigger, buildFilter, buildSignalTrigger, clearCbsStateKey, coerceEventType, cookieStorage, createApi, createAuthService, createAuthzService, createBarsService, createCmsSDK, createContentService, createContentTypesService, createEaeraWebSocket, createExecutionsService, createGovService, createHistoryService, createKalshiService, createLlmService, createNotificationsService, createPeopleService, createPersistPlugin, createSettingsService, eventPayloadFieldsFor, isKnownEventType, isSystemOnlyAction, llmEvalOf, localStorageAdapter, memoryStorage, normalizeChartInterval, normalizeConditionOperator, promptNameOf, queryToolsOf, readCbsStateKey, resolveStorage, resultOutputOf, scheduleOf, serializeAction, serializeActionParams, signalNameOf, triggerModeOf, useAuthStore, useAuthzStore, useBarsStore, useContentStore, useExecutionsStore, useGovStore, useHistoryStore, useKalshiStore, useLlmProvidersStore, useLlmStore, usePeopleStore, useRulesStore, useSettingsStore, useWsStore };
8661
- //# sourceMappingURL=index.js.map
package/dist/nuxt.js CHANGED
@@ -45,4 +45,3 @@ const nuxt = defineNuxtModule({
45
45
  });
46
46
 
47
47
  export { nuxt as default };
48
- //# sourceMappingURL=nuxt.js.map
@@ -194,4 +194,3 @@ const plugin = defineNuxtPlugin(async (nuxtApp) => {
194
194
  });
195
195
 
196
196
  export { plugin as default };
197
- //# sourceMappingURL=plugin.js.map
@@ -40,4 +40,3 @@ const cbsCallback_post = defineEventHandler(async (event) => {
40
40
  });
41
41
 
42
42
  export { cbsCallback_post as default };
43
- //# sourceMappingURL=cbs-callback.post.js.map
@@ -32,4 +32,3 @@ const cbsStart_post = defineEventHandler(async (event) => {
32
32
  });
33
33
 
34
34
  export { cbsStart_post as default };
35
- //# sourceMappingURL=cbs-start.post.js.map
@@ -50,4 +50,3 @@ const idpCallback_get = defineEventHandler(async (event) => {
50
50
  });
51
51
 
52
52
  export { idpCallback_get as default };
53
- //# sourceMappingURL=idp-callback.get.js.map
@@ -36,4 +36,3 @@ const idpLink_post = defineEventHandler(async (event) => {
36
36
  });
37
37
 
38
38
  export { idpLink_post as default };
39
- //# sourceMappingURL=idp-link.post.js.map
@@ -40,4 +40,3 @@ const idpLogin_get = defineEventHandler(async (event) => {
40
40
  });
41
41
 
42
42
  export { idpLogin_get as default };
43
- //# sourceMappingURL=idp-login.get.js.map
@@ -36,4 +36,3 @@ const idpUnlink_delete = defineEventHandler(async (event) => {
36
36
  });
37
37
 
38
38
  export { idpUnlink_delete as default };
39
- //# sourceMappingURL=idp-unlink.delete.js.map
@@ -43,4 +43,3 @@ const login_post = defineEventHandler(async (event) => {
43
43
  });
44
44
 
45
45
  export { login_post as default };
46
- //# sourceMappingURL=login.post.js.map
@@ -29,4 +29,3 @@ const logout_post = defineEventHandler(async (event) => {
29
29
  });
30
30
 
31
31
  export { logout_post as default };
32
- //# sourceMappingURL=logout.post.js.map
@@ -44,4 +44,3 @@ const refresh_post = defineEventHandler(async (event) => {
44
44
  });
45
45
 
46
46
  export { refresh_post as default };
47
- //# sourceMappingURL=refresh.post.js.map
@@ -40,4 +40,3 @@ const portalAccess_get = defineEventHandler(async (event) => {
40
40
  });
41
41
 
42
42
  export { portalAccess_get as default };
43
- //# sourceMappingURL=portal-access.get.js.map
@@ -9,4 +9,3 @@ const clearToken_delete = defineEventHandler(async (event) => {
9
9
  });
10
10
 
11
11
  export { clearToken_delete as default };
12
- //# sourceMappingURL=clear-token.delete.js.map
@@ -28,4 +28,3 @@ const persist_post = defineEventHandler(async (event) => {
28
28
  });
29
29
 
30
30
  export { persist_post as default };
31
- //# sourceMappingURL=persist.post.js.map
@@ -24,4 +24,3 @@ const setToken_post = defineEventHandler(async (event) => {
24
24
  });
25
25
 
26
26
  export { setToken_post as default };
27
- //# sourceMappingURL=set-token.post.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eaera-com/cms-sdk",
3
- "version": "0.1.67",
3
+ "version": "0.1.68",
4
4
  "description": "EAERA CMS SDK — data access layer for Nuxt 3 apps (ofetch + Pinia + typed services)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -17,7 +17,8 @@
17
17
  }
18
18
  },
19
19
  "files": [
20
- "dist"
20
+ "dist",
21
+ "THIRD-PARTY-NOTICES.md"
21
22
  ],
22
23
  "keywords": [
23
24
  "eaera",
@@ -1 +0,0 @@
1
- {"version":3,"file":"_shared-DZlTUzoa.js","sources":["../../src/server/auth/_shared.ts"],"sourcesContent":["import {\n COOKIE_DEFAULTS,\n REFRESH_TOKEN_STORAGE_KEY,\n TOKEN_STORAGE_KEY,\n} from '../../common/constants/storage.constant';\nimport type { RequestCasing, ResponseCasing } from '../../common/constants/http.constant';\nimport { useRuntimeConfig } from '#imports';\n\n/** Cookie options for the httpOnly access-token cookie (server-side set). */\nexport const TOKEN_COOKIE_OPTIONS = {\n httpOnly: COOKIE_DEFAULTS.HTTP_ONLY,\n secure: COOKIE_DEFAULTS.SECURE,\n sameSite: COOKIE_DEFAULTS.SAME_SITE.toLowerCase() as 'lax',\n path: COOKIE_DEFAULTS.PATH,\n maxAge: COOKIE_DEFAULTS.MAX_AGE_SECONDS,\n};\n\nexport { TOKEN_STORAGE_KEY, REFRESH_TOKEN_STORAGE_KEY };\n\n/**\n * Resolve the CMS backend URL + client id from the module options the Nuxt\n * module stored on `runtimeConfig.public.cmsSdkOptions` (mirrors the plugin\n * resolution). Runs inside the consumer's Nitro server where `useRuntimeConfig`\n * is auto-imported.\n */\nexport function readSdkConfig(event: unknown): {\n cmsUrl: string;\n clientId: string;\n /** Default portal id for portal-scoped flows (module option `cmsSdk.portal`). */\n portal?: string;\n requestCasing?: RequestCasing;\n responseCasing?: ResponseCasing;\n} {\n const config = useRuntimeConfig(event) as { public?: Record<string, any> } | undefined;\n const pub = (config?.public ?? {}) as Record<string, any>;\n const opts = (pub.cmsSdkOptions ?? {}) as {\n endpoints?: Record<string, string>;\n clientId?: string;\n portal?: string;\n requestCasing?: RequestCasing;\n responseCasing?: ResponseCasing;\n };\n const cmsUrl = pub[opts.endpoints?.cms ?? 'cmsUrl'];\n const clientId = pub[opts.clientId ?? 'clientId'];\n return {\n cmsUrl,\n clientId,\n portal: opts.portal,\n requestCasing: opts.requestCasing,\n responseCasing: opts.responseCasing,\n };\n}\n"],"names":[],"mappings":";;;AASO,MAAM,oBAAA,GAAuB;AAAA,EAClC,UAAU,eAAA,CAAgB,SAAA;AAAA,EAC1B,QAAQ,eAAA,CAAgB,MAAA;AAAA,EACxB,QAAA,EAAU,eAAA,CAAgB,SAAA,CAAU,WAAA,EAAY;AAAA,EAChD,MAAM,eAAA,CAAgB,IAAA;AAAA,EACtB,QAAQ,eAAA,CAAgB;AAC1B;AAUO,SAAS,cAAc,KAAA,EAO5B;AACA,EAAA,MAAM,MAAA,GAAS,iBAAiB,KAAK,CAAA;AACrC,EAAA,MAAM,GAAA,GAAO,MAAA,EAAQ,MAAA,IAAU,EAAC;AAChC,EAAA,MAAM,IAAA,GAAQ,GAAA,CAAI,aAAA,IAAiB,EAAC;AAOpC,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,IAAA,CAAK,SAAA,EAAW,OAAO,QAAQ,CAAA;AAClD,EAAA,MAAM,QAAA,GAAW,GAAA,CAAI,IAAA,CAAK,QAAA,IAAY,UAAU,CAAA;AAChD,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAQ,IAAA,CAAK,MAAA;AAAA,IACb,eAAe,IAAA,CAAK,aAAA;AAAA,IACpB,gBAAgB,IAAA,CAAK;AAAA,GACvB;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.constant-CMI1lqQc.js","sources":["../../src/common/constants/auth.constant.ts"],"sourcesContent":["/**\n * Auth backend endpoints.\n *\n * The CMS backend exposes exactly three auth endpoints:\n * - LOGIN (POST /api/auth/login) — confirmed against the real backend\n * - LOGOUT (POST /api/auth/logout) — confirmed (real backend logout is POST)\n * - REFRESH (POST /api/oauth/token) — confirmed — OAuth token endpoint;\n * grant_type=refresh_token\n *\n * Path params are appended at call sites.\n */\nexport const AUTH_ENDPOINT = {\n LOGIN: '/api/auth/login',\n LOGOUT: '/api/auth/logout',\n REFRESH: '/api/oauth/token',\n /** User registry (GET /api/auth/users) — list of the CMS auth users. */\n USERS: '/api/auth/users',\n /** \"Login with CBS\" — init (PKCE verifier + state stay server-side). */\n CBS_START: '/api/v1/auth/oauth/cbs/start',\n /** \"Login with CBS\" — complete (exchange code → CMS session JWT). */\n CBS_CALLBACK: '/api/v1/auth/oauth/cbs/callback',\n /** IdP SSO — init (`GET /api/auth/{provider}/login?redirect_uri=…`). */\n idpLogin: (provider: string): string => `/api/auth/${provider}/login`,\n /** IdP SSO — callback (`GET /api/auth/{provider}/callback?code&state&redirect_uri`). */\n idpCallback: (provider: string): string => `/api/auth/${provider}/callback`,\n /** IdP SSO — link an already-authenticated user to the provider (needs Bearer). */\n idpLink: (provider: string): string => `/api/auth/${provider}/link`,\n /** IdP SSO — unlink the provider from the current user (needs Bearer). */\n idpUnlink: (provider: string): string => `/api/auth/${provider}/unlink`,\n} as const;\n\n/**\n * Client→proxy route paths for token-lifecycle flows.\n *\n * When the Nuxt module is in use, login/logout/token route through the\n * app-origin server proxies (`/api/cms/*`) so the httpOnly cookies are\n * set/cleared/rotated atomically. These are the paths the auth service calls\n * on its `routeApi` (whose baseURL is `/api/cms`).\n */\nexport const AUTH_PROXY_PATH = {\n LOGIN: '/login',\n LOGOUT: '/logout',\n REFRESH: '/refresh',\n CBS_START: '/cbs-start',\n CBS_CALLBACK: '/cbs-callback',\n /** IdP SSO — init (query: `provider`, `redirect_uri`). */\n IDP_LOGIN: '/idp-login',\n /** IdP SSO — callback (query: `provider`, `code`, `state`, `redirect_uri`). */\n IDP_CALLBACK: '/idp-callback',\n /** IdP SSO — link (body: `{ provider }`; forwards the token cookie as Bearer). */\n IDP_LINK: '/idp-link',\n /** IdP SSO — unlink (query: `provider`; forwards the token cookie as Bearer). */\n IDP_UNLINK: '/idp-unlink',\n} as const;\n"],"names":[],"mappings":"AAWO,MAAM,aAAA,GAAgB;AAAA,EAC3B,KAAA,EAAO,iBAAA;AAAA,EACP,MAAA,EAAQ,kBAAA;AAAA,EACR,OAAA,EAAS,kBAAA;AAAA;AAAA,EAET,KAAA,EAAO,iBAAA;AAAA;AAAA,EAEP,SAAA,EAAW,8BAAA;AAAA;AAAA,EAEX,YAAA,EAAc,iCAAA;AAAA;AAAA,EAEd,QAAA,EAAU,CAAC,QAAA,KAA6B,CAAA,UAAA,EAAa,QAAQ,CAAA,MAAA,CAAA;AAAA;AAAA,EAE7D,WAAA,EAAa,CAAC,QAAA,KAA6B,CAAA,UAAA,EAAa,QAAQ,CAAA,SAAA,CAAA;AAAA;AAAA,EAEhE,OAAA,EAAS,CAAC,QAAA,KAA6B,CAAA,UAAA,EAAa,QAAQ,CAAA,KAAA,CAAA;AAAA;AAAA,EAE5D,SAAA,EAAW,CAAC,QAAA,KAA6B,CAAA,UAAA,EAAa,QAAQ,CAAA,OAAA;AAChE;AAUO,MAAM,eAAA,GAAkB;AAAA,EAC7B,KAAA,EAAO,QAAA;AAAA,EACP,MAAA,EAAQ,SAAA;AAAA,EACR,OAAA,EAAS,UAAA;AAAA,EACT,SAAA,EAAW,YAAA;AAAA,EACX,YAAA,EAAc,eAAA;AAAA;AAAA,EAEd,SAAA,EAAW,YAAA;AAAA;AAAA,EAEX,YAAA,EAAc,eAAA;AAAA;AAAA,EAEd,QAAA,EAAU,WAAA;AAAA;AAAA,EAEV,UAAA,EAAY;AACd;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"authz.constant-BAarvacV.js","sources":["../../src/common/constants/authz.constant.ts"],"sourcesContent":["/**\n * Authz backend endpoints (engine RBAC surface).\n *\n * GET /api/v1/authz/me/portals/{portal} — the caller's access to ONE\n * portal: `{ portal, has_access, permissions[], roles[] }`.\n *\n * Error contract:\n * 401 UNAUTHENTICATED — token invalid/expired\n * 401 INVALID_TOKEN_AUDIENCE — token valid but minted for another portal\n * 403 PORTAL_ACCESS_DENIED — authenticated, no grant for this portal\n *\n * Path params are appended at call sites.\n */\nexport const AUTHZ_ENDPOINT = {\n portalAccess: (portal: string): string => `/api/v1/authz/me/portals/${portal}`,\n} as const;\n\n/**\n * Client→proxy route paths for authz flows (mirror of `AUTH_PROXY_PATH`).\n *\n * When the Nuxt module is in use the check routes through the app-origin\n * server proxy (`/api/cms/portal-access`) so the httpOnly token cookie is\n * forwarded server-side — the client never needs the raw token.\n */\nexport const AUTHZ_PROXY_PATH = {\n PORTAL_ACCESS: '/portal-access',\n} as const;\n"],"names":[],"mappings":"AAaO,MAAM,cAAA,GAAiB;AAAA,EAC5B,YAAA,EAAc,CAAC,MAAA,KAA2B,CAAA,yBAAA,EAA4B,MAAM,CAAA;AAC9E;AASO,MAAM,gBAAA,GAAmB;AAAA,EAC9B,aAAA,EAAe;AACjB;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.constant-BzH5tJTG.js","sources":["../../src/common/constants/http.constant.ts"],"sourcesContent":["/**\n * HTTP-layer constants shared by the core `createApi` factory.\n */\n\n/** Canonical request/response header names used across the SDK. */\nexport const HTTP_HEADER = {\n AUTHORIZATION: 'Authorization',\n DEVICE_ID: 'DeviceID',\n DEVICE_IP: 'DeviceIP',\n CLIENT_ID: 'X-Client-Id',\n USER_AGENT: 'user-agent',\n REQUEST_ID: 'x-request-id',\n /**\n * Backend response-casing selector. Default backend casing is camelCase\n * (omit the header); send `snake` to receive snake_case bodies.\n */\n RESPONSE_CASING: 'x-response-casing',\n /**\n * Backend request-casing selector. Default is camelCase (omit the header);\n * send `snake` to declare a snake_case request body.\n */\n REQUEST_CASING: 'x-request-casing',\n} as const;\n\n/** Supported response-casing values. camelCase is the backend default. */\nexport const RESPONSE_CASING_VALUE = {\n CAMEL: 'camel',\n SNAKE: 'snake',\n} as const;\nexport type ResponseCasing = (typeof RESPONSE_CASING_VALUE)[keyof typeof RESPONSE_CASING_VALUE];\nexport type RequestCasing = ResponseCasing;\n\n/**\n * Serialization format discriminator. Accepted by content / rules /\n * lenses list endpoints via `?format=json|yaml`.\n */\nexport const SERIALIZATION_FORMAT = {\n JSON: 'json',\n YAML: 'yaml',\n} as const;\nexport type SerializationFormat = (typeof SERIALIZATION_FORMAT)[keyof typeof SERIALIZATION_FORMAT];\n\n/** Default per-request tuning (overridable via `createCmsSDK` options). */\nexport const HTTP_DEFAULTS = {\n TIMEOUT_MS: 30000,\n RETRY: 0,\n} as const;\n\n/** Status codes eligible for automatic retry (transient failures). */\nexport const HTTP_RETRY_STATUS_CODES = [408, 425, 429, 500, 502, 503, 504] as const;\n"],"names":[],"mappings":"AAKO,MAAM,WAAA,GAAc;AAAA,EACzB,aAAA,EAAe,eAAA;AAAA,EACf,SAAA,EAAW,UAAA;AAAA,EACX,SAAA,EAAW,UAAA;AAAA,EACX,SAAA,EAAW,aAAA;AAAA,EACX,UAAA,EAAY,YAAA;AAAA,EACZ,UAAA,EAAY,cAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKZ,eAAA,EAAiB,mBAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjB,cAAA,EAAgB;AAClB;AAGO,MAAM,qBAAA,GAAwB;AAAA,EAEnC,KAAA,EAAO;AACT;AAQO,MAAM,oBAAA,GAAuB;AAAA,EAClC,IAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAM;AACR;AAIO,MAAM,aAAA,GAAgB;AAAA,EAC3B,UAAA,EAAY,GAAA;AAAA,EACZ,KAAA,EAAO;AACT;AAGO,MAAM,uBAAA,GAA0B,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,KAAK,GAAG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mt5Retcode-DlZLQOLA.js","sources":["../../src/core/ws/ws.constants.ts","../../src/common/helpers/mt5Retcode.ts"],"sourcesContent":["/**\n * WebSocket-layer defaults + protocol constants.\n *\n * Pattern (per FE coding rules §1.5):\n * `export const X = { FOO: 'foo', BAR: 'bar' } as const;`\n * `export type XKey = (typeof X)[keyof typeof X];`\n *\n * See `eaera-docs/cbs/eaera-cms/docs/eaera-cms-websocket-integration-guide.md`\n * for the wire protocol this client implements.\n */\n\n/* ───────────────────────── Re-exports ─────────────────────────────────── */\n\n/**\n * Re-export the MT5 domain constants so WS consumers can grab the server\n * name + interval enum from the same place they import the topic builders.\n */\nexport { MT5_INTERVAL, MT5_SERVER_NAME } from '../../common/constants/mt5.constant';\nexport type { MT5Interval, MT5ServerName } from '../../common/constants/mt5.constant';\n\n/* ───────────────────────── Connection lifecycle ───────────────────────── */\n\n/** Lifecycle states surfaced by `IWsClient.connectionState`. */\nexport const WS_CONNECTION_STATE = {\n IDLE: 'idle',\n OPENING: 'opening',\n AUTHENTICATING: 'authenticating',\n OPEN: 'open',\n RECONNECTING: 'reconnecting',\n CLOSED: 'closed',\n} as const;\nexport type WsConnectionState = (typeof WS_CONNECTION_STATE)[keyof typeof WS_CONNECTION_STATE];\n\n/* ───────────────────────── WebSocket close codes ─────────────────────── */\n\n/**\n * WebSocket close codes. `NORMAL` is the only one the client sends; the\n * rest mirror what the CMS server uses (see FEAT-010 guide §3).\n */\nexport const WS_CLOSE_CODE = {\n /** RFC 6455 — clean shutdown (e.g. user logout). */\n NORMAL: 1000,\n /** RFC 6455 — `invalid_token` / `token_expired` / `auth_timeout`. */\n POLICY_VIOLATION: 1008,\n /** RFC 6455 — `service_unavailable` (token service not configured). */\n INTERNAL_ERROR: 1011,\n /** RFC 6455 — graceful server shutdown. */\n TRY_AGAIN_LATER: 1013,\n /**\n * Non-standard — client-side deadline: server did not reply to `auth`\n * within `WS_AUTH_TIMEOUT_MS`. Closes the socket so the consumer can\n * react.\n */\n CLIENT_AUTH_TIMEOUT: 4000,\n} as const;\nexport type WsCloseCode = (typeof WS_CLOSE_CODE)[keyof typeof WS_CLOSE_CODE];\n\n/* ───────────────────────── Auth error codes ──────────────────────────── */\n\n/** Server-emitted error codes during the `auth` handshake / mid-session (ws-guide §3.4). */\nexport const WS_AUTH_ERROR_CODE = {\n INVALID_TOKEN: 'invalid_token',\n TOKEN_EXPIRED: 'token_expired',\n AUTH_TIMEOUT: 'auth_timeout',\n INVALID_MESSAGE: 'invalid_message',\n SERVICE_UNAVAILABLE: 'service_unavailable',\n} as const;\nexport type WsAuthErrorCode = (typeof WS_AUTH_ERROR_CODE)[keyof typeof WS_AUTH_ERROR_CODE];\n\n/**\n * Close-frame reason strings (ws-guide §4.1). These accompany the RFC 6455\n * close codes in `WS_CLOSE_CODE` — they are NOT auth error codes. Surfaced so\n * consumers can match `CloseEvent.reason` against stable strings.\n */\nexport const WS_CLOSE_REASON = {\n NORMAL: 'normal',\n INVALID_TOKEN: 'invalid_token',\n TOKEN_EXPIRED: 'token_expired',\n AUTH_TIMEOUT: 'auth_timeout',\n PING_TIMEOUT: 'ping_timeout',\n AUTH_REQUIRED: 'auth required',\n AUTH_SERVICE_UNAVAILABLE: 'auth service unavailable',\n SERVER_SHUTTING_DOWN: 'server shutting down',\n} as const;\nexport type WsCloseReason = (typeof WS_CLOSE_REASON)[keyof typeof WS_CLOSE_REASON];\n\n/* ───────────────────────── Action error codes ────────────────────────── */\n\n/** Server-emitted error codes on the action invocation path (FEAT-008). */\n/** Accepted-stage error codes — returned on `action_accepted` (ws-guide §9.3). */\nexport const WS_ACTION_ACCEPTED_ERROR_CODE = {\n VALIDATION_ERROR: 'validation_error',\n NOT_FOUND: 'not_found',\n PERMISSION_DENIED: 'permission_denied',\n DUPLICATE: 'duplicate',\n INTERNAL_ERROR: 'internal_error',\n CONFIGURATION_ERROR: 'configuration_error',\n} as const;\nexport type WsActionAcceptedErrorCode =\n (typeof WS_ACTION_ACCEPTED_ERROR_CODE)[keyof typeof WS_ACTION_ACCEPTED_ERROR_CODE];\n\n/** Result-stage error codes — returned on `action_result` (ws-guide §9.4). */\nexport const WS_ACTION_RESULT_ERROR_CODE = {\n TIMEOUT: 'timeout',\n} as const;\nexport type WsActionResultErrorCode =\n (typeof WS_ACTION_RESULT_ERROR_CODE)[keyof typeof WS_ACTION_RESULT_ERROR_CODE];\n\n/**\n * All action error codes — union of the accepted-stage and result-stage maps\n * (ws-guide §9.3 + §9.4). Kept for back-compat with consumers that do not yet\n * distinguish the stage; prefer the stage-specific maps above for new code.\n */\nexport const WS_ACTION_ERROR_CODE = {\n ...WS_ACTION_ACCEPTED_ERROR_CODE,\n ...WS_ACTION_RESULT_ERROR_CODE,\n} as const;\nexport type WsActionErrorCode = (typeof WS_ACTION_ERROR_CODE)[keyof typeof WS_ACTION_ERROR_CODE];\n\n/* ───────────────────────── Message type discriminators ────────────────── */\n\n/**\n * Wire `type` field for every server→client and client→server message.\n *\n * TypeScript discriminated unions require the `type` field to be a string\n * literal (not a const reference) on each interface — so these constants are\n * used for **runtime comparisons** (`switch (msg.type)`) and the interfaces\n * in `ws.type.ts` keep their literal `type: '…'` annotations for narrowing.\n */\nexport const WS_MESSAGE_TYPE = {\n // server → client\n AUTH_OK: 'auth_ok',\n AUTH_FAIL: 'auth_fail',\n AUTH_EXPIRED: 'auth_expired',\n SUB_OK: 'sub_ok',\n SUB_ERROR: 'sub_error',\n UNSUB_OK: 'unsub_ok',\n PING: 'ping',\n EVENT: 'event',\n ACTION_ACCEPTED: 'action_accepted',\n ACTION_RESULT: 'action_result',\n ERROR: 'error',\n ADMIN_DISCONNECT: 'admin_disconnect',\n // client → server\n AUTH: 'auth',\n SUBSCRIBE: 'subscribe',\n UNSUBSCRIBE: 'unsubscribe',\n UNSUBSCRIBE_ALL: 'unsubscribe_all',\n PONG: 'pong',\n ACTION: 'action',\n FETCH_RESULT: 'fetch_result',\n} as const;\nexport type WsMessageType = (typeof WS_MESSAGE_TYPE)[keyof typeof WS_MESSAGE_TYPE];\n\n/* ───────────────────────── Built-in topic namespaces ─────────────────── */\n\n/**\n * Built-in topic namespaces (guide §5.4). Server-side permissions are\n * enforced (`risk:*` requires `content:read`, `mt5:*` requires `mt5:viewer`,\n * etc.). Use these as the first segment of every topic you publish /\n * subscribe to.\n */\nexport const WS_TOPIC_NAMESPACE = {\n RISK: 'risk',\n MT5: 'mt5',\n SYMBOL: 'symbol',\n ACCOUNT: 'account',\n USER: 'user',\n STREAM: 'stream',\n ADMIN: 'admin',\n} as const;\nexport type WsTopicNamespace = (typeof WS_TOPIC_NAMESPACE)[keyof typeof WS_TOPIC_NAMESPACE];\n\n/**\n * Canonical topic strings for the built-in namespaces. The server-side\n * authz pipeline (FEAT-011) checks the prefix against the user's effective\n * permissions.\n *\n * MT5 topics must be built with `mt5Topic(server, eventType)` — the server\n * segment must match `MT5_SERVER_NAME` exactly (including spaces).\n */\nexport const WS_TOPIC = {\n RISK_RULES: 'risk:rules',\n RISK_EXECUTIONS: 'risk:executions',\n} as const;\nexport type WsTopic = (typeof WS_TOPIC)[keyof typeof WS_TOPIC];\n\n/** MT5 event types — third segment of `mt5:events:{server}:{event_type}`. */\nexport const WS_MT5_EVENT_TYPE = {\n TICK: 'tick',\n ORDER: 'order',\n POSITION: 'position',\n STATEMENT: 'statement',\n DEAL: 'deal',\n} as const;\nexport type WsMt5EventType = (typeof WS_MT5_EVENT_TYPE)[keyof typeof WS_MT5_EVENT_TYPE];\n\n/**\n * Build an MT5 topic for a specific server + event type. The server segment\n * MUST match `MT5_SERVER_NAME` exactly (including spaces).\n */\nexport const mt5Topic = (serverName: string, eventType: WsMt5EventType): string =>\n `mt5:events:${serverName}:${eventType}`;\n\n/**\n * Build a per-account state topic: `account:<Mt5Account.uuid>`.\n * Subscribe with the account's UUID (NOT the numeric login) [ws§7.4, api-inventory §9.9].\n */\nexport const accountTopic = (accountUuid: string): string => `account:${accountUuid}`;\n\n/**\n * Build a per-symbol tick topic: `symbol:<server>:<SYMBOL>`.\n * The preferred live-tick path for charts (one topic per (server, symbol) isolates\n * per-connection cost to one symbol's tick rate) [ws§7.3, api-inventory §9.3].\n */\nexport const symbolTopic = (serverName: string, symbol: string): string =>\n `symbol:${serverName}:${symbol}`;\n\n/**\n * Build a user-scoped notification topic: `user:<id>` [ws§5].\n */\nexport const userTopic = (userId: number | string): string => `user:${userId}`;\n\n/**\n * Build a stream-processor output topic: `stream:<id>` [ws§5].\n */\nexport const streamTopic = (streamId: string): string => `stream:${streamId}`;\n\n/**\n * Build an admin topic: `admin:<name>` [ws§5].\n */\nexport const adminTopic = (name: string): string => `admin:${name}`;\n\n/* ───────────────────────── Numeric defaults ──────────────────────────── */\n\n/** Hard cap on topics per connection (server-side default). */\nexport const WS_MAX_SUBSCRIPTIONS = 50;\n\n/** Reconnect backoff schedule (matches the integration guide's recommendation). */\nexport const WS_RECONNECT_INITIAL_MS = 1000;\nexport const WS_RECONNECT_MAX_MS = 30000;\n/** Random jitter added to each reconnect delay, in milliseconds. */\nexport const WS_RECONNECT_JITTER_MS = 250;\n\n/** Server-driven ping interval (server sends `ping` every N seconds). */\nexport const WS_PING_INTERVAL_MS = 30000;\n\n/**\n * Client-side ping-watchdog multiplier. The watchdog force-closes the socket\n * after `pingIntervalMs * WS_PING_WATCHDOG_FACTOR` without a server `ping`,\n * catching half-open (sleep / NAT-timeout) connections before the server's\n * own 2-missed-pong timeout (ws-guide §8).\n */\nexport const WS_PING_WATCHDOG_FACTOR = 1.5;\n/** Floor for the watchdog interval check (never probe more often than this). */\nexport const WS_PING_WATCHDOG_CHECK_MS = 15000;\n\n/**\n * Max reconnect attempts before the client transitions to terminal `CLOSED`\n * (ws-guide §10). Prevents an infinite `RECONNECTING` loop on a prolonged\n * outage so consumers (e.g. the Nuxt recovery plugin) can surface a\n * \"connection lost\" notification instead of retrying silently forever.\n */\nexport const WS_MAX_RECONNECT_ATTEMPTS = 10;\n\n/** Window in which the server expects the first `auth` message. */\nexport const WS_AUTH_TIMEOUT_MS = 10000;\n\n/**\n * Server-side TTL for an in-flight `action` after disconnect. The client\n * uses `fetch_result` within this window to recover a missed `action_result`.\n */\nexport const WS_ACTION_RESULT_TTL_MS = 5 * 60 * 1000;\n\n/* ───────────────────────── MT5 broker retcodes ───────────────────────── */\n\n/**\n * MT5 broker retcodes surfaced through `action_result.output.data.retcode`.\n * Source: eaera-docs §7.5 / ws-guide §12.6.\n */\nexport const MT5_RETCODE = {\n REQ_REJECT: 10004,\n REQ_CANCELLED: 10006,\n PRICE_OFF_QUOTES: 10016,\n REQUEST_CHANGED: 10024,\n PRICE_OFF: 10030,\n CONNECTION_LOST: 10031,\n NETWORK_ERROR: 10032,\n} as const;\nexport type Mt5Retcode = (typeof MT5_RETCODE)[keyof typeof MT5_RETCODE];\n","/**\n * MT5 broker retcode → human-friendly message + suggested FE action.\n *\n * Source: eaera-docs/cbs/eaera-cms/docs/eaera-cms-api-inventory.md §7.5,\n * §12.3, §12.6 (mirrored in ws-guide §12.6).\n *\n * The retcode is delivered INSIDE `output.data.retcode` (NOT top-level\n * output) — pass the full `action_result.output.data` object here.\n */\nimport { MT5_RETCODE } from '../../core/ws/ws.constants';\n\nexport interface IMt5RetcodeView {\n /** Stable machine code (one of the MT5_RETCODE values). */\n code: number;\n /** Short human label, e.g. `PRICE_OFF_QUOTES`. */\n label: string;\n /** One-line FE-facing message. */\n message: string;\n /** What the FE should do — surface a toast, re-quote, retry, etc. */\n suggestion:\n | 'show-as-rejected'\n | 'show-as-cancelled'\n | 're-quote-and-retry'\n | 'show-new-params'\n | 'show-no-quotes'\n | 'retry-shortly';\n}\n\n/**\n * Look up an MT5 broker retcode. Returns `null` if the code is unknown —\n * FE should fall back to `error.message` from `action_result.error`.\n *\n * @param retcode — the integer from `action_result.output.data.retcode`\n */\nexport function viewMt5Retcode(retcode: number | null | undefined): IMt5RetcodeView | null {\n if (retcode == null) return null;\n switch (retcode) {\n case MT5_RETCODE.REQ_REJECT:\n return {\n code: retcode,\n label: 'REQ_REJECT',\n message: 'Order rejected by broker.',\n suggestion: 'show-as-rejected',\n };\n case MT5_RETCODE.REQ_CANCELLED:\n return {\n code: retcode,\n label: 'REQ_CANCELLED',\n message: 'Order cancelled by dealer.',\n suggestion: 'show-as-cancelled',\n };\n case MT5_RETCODE.PRICE_OFF_QUOTES:\n return {\n code: retcode,\n label: 'PRICE_OFF_QUOTES',\n message: 'Price moved past the band — please re-quote and try again.',\n suggestion: 're-quote-and-retry',\n };\n case MT5_RETCODE.REQUEST_CHANGED:\n return {\n code: retcode,\n label: 'REQUEST_CHANGED',\n message: 'The dealer mutated your order — refreshing the order book now.',\n suggestion: 'show-new-params',\n };\n case MT5_RETCODE.PRICE_OFF:\n return {\n code: retcode,\n label: 'PRICE_OFF',\n message: 'No quotes available — the market may be closed.',\n suggestion: 'show-no-quotes',\n };\n case MT5_RETCODE.CONNECTION_LOST:\n case MT5_RETCODE.NETWORK_ERROR:\n return {\n code: retcode,\n label: 'CONNECTION_LOST',\n message: 'Broker connection issue — please retry shortly.',\n suggestion: 'retry-shortly',\n };\n default:\n return null;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.constant-CVWam5ls.js","sources":["../../src/common/constants/storage.constant.ts"],"sourcesContent":["/**\n * Token storage constants — the single source for the storage key so the\n * memory/localStorage/cookie adapters never drift apart.\n */\nexport const TOKEN_STORAGE_KEY = 'cms_access_token' as const;\n\n/**\n * Refresh-token cookie key. Stored as an httpOnly cookie (parallel to the access\n * token) so the SDK can silently rotate the access token when it expires.\n */\nexport const REFRESH_TOKEN_STORAGE_KEY = 'cms_refresh_token' as const;\n\n/** Cookie adapter defaults (overridable via `credentials.cookie`). */\nexport const COOKIE_DEFAULTS = {\n MAX_AGE_SECONDS: 60 * 60 * 24 * 30, // 30 days\n PATH: '/',\n SECURE: true,\n SAME_SITE: 'Lax',\n HTTP_ONLY: true,\n} as const;\n\n/** Pinia persistence keys (versioned for schema migration). */\nexport const STORE_PERSIST_KEY = {\n AUTH: 'cms-auth-v1',\n AUTHZ: 'cms-authz-v1',\n CONTENT: 'cms-content-v1',\n RULES: 'cms-rules-v1',\n EXECUTIONS: 'cms-executions-v1',\n SETTINGS: 'cms-settings-v1',\n LLM: 'cms-llm-v1',\n LLM_PROVIDERS: 'cms-llm-providers-v1',\n BARS: 'cms-bars-v1',\n HISTORY: 'cms-history-v1',\n KALSHI: 'cms-kalshi-v1',\n GOV: 'cms-gov-v1',\n PEOPLE: 'cms-people-v1',\n} as const;\n\n/**\n * Internal cookie persistence (replaces pinia-plugin-persistedstate).\n *\n * Each persisted state → its own cookie `${PERSIST_KEY.<store>}.${field}`.\n * The common `/api/cms-sdk/persist` endpoint may only set keys in\n * `PERSIST_ALLOWED_KEYS` (single source of truth, shared by the plugin + the\n * endpoint). The token key is always excluded as a belt-and-suspenders guard.\n */\nexport const PERSIST_PREFIX = 'cms-persist-' as const;\n\nexport const PERSIST_KEY = {\n AUTH: 'cms-persist-auth',\n} as const;\n\n/** Max bytes per persisted cookie value (~4KB cookie cap, with headroom). */\nexport const PERSIST_MAX_BYTES = 3500;\n\n/** Allowlist of cookie keys the persist endpoint may set. */\nexport const PERSIST_ALLOWED_KEYS = [`${PERSIST_KEY.AUTH}.authUser`] as const;\n\n/**\n * Storage backend names accepted by `TokenManager`. Kept in sync with\n * `IStorageName` in `core/credentials/credential.type.ts`. The\n * `httpOnlyBridge` value is the recommended production backend (delegates\n * to a Nuxt server route).\n */\nexport const STORAGE_NAME = {\n MEMORY: 'memory',\n LOCAL_STORAGE: 'localStorage',\n COOKIE: 'cookie',\n HTTP_ONLY_BRIDGE: 'httpOnlyBridge',\n} as const;\nexport type StorageName = (typeof STORAGE_NAME)[keyof typeof STORAGE_NAME];\n\n/**\n * `Cookie SameSite` values (RFC 6265). Used by `cookieStorage` and the\n * SDK Nuxt module when setting the httpOnly access-token cookie. Mirrors\n * the `CookieSameSite` type in `core/credentials/storages/cookieStorage.ts`.\n */\nexport const COOKIE_SAME_SITE = {\n STRICT: 'Strict',\n LAX: 'Lax',\n NONE: 'None',\n} as const;\nexport type CookieSameSite = (typeof COOKIE_SAME_SITE)[keyof typeof COOKIE_SAME_SITE];\n"],"names":[],"mappings":"AAIO,MAAM,iBAAA,GAAoB;AAM1B,MAAM,yBAAA,GAA4B;AAGlC,MAAM,eAAA,GAAkB;AAAA,EAC7B,eAAA,EAAiB,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,EAAA;AAAA;AAAA,EAChC,IAAA,EAAM,GAAA;AAAA,EACN,MAAA,EAAQ,IAAA;AAAA,EACR,SAAA,EAAW,KAAA;AAAA,EACX,SAAA,EAAW;AACb;AAGO,MAAM,iBAAA,GAAoB;AAAA,EAC/B,IAAA,EAAM,aAAA;AAAA,EACN,KAAA,EAAO,cAAA;AAAA,EACP,OAAA,EAAS,gBAAA;AAAA,EACT,KAAA,EAAO,cAAA;AAAA,EACP,UAAA,EAAY,mBAAA;AAAA,EACZ,QAAA,EAAU,iBAAA;AAAA,EACV,GAAA,EAAK,YAAA;AAAA,EACL,aAAA,EAAe,sBAAA;AAAA,EACf,IAAA,EAAM,aAAA;AAAA,EACN,OAAA,EAAS,gBAAA;AAAA,EACT,MAAA,EAAQ,eAAA;AAAA,EACR,GAAA,EAAK,YAAA;AAAA,EACL,MAAA,EAAQ;AACV;AAUO,MAAM,cAAA,GAAiB;AAEvB,MAAM,WAAA,GAAc;AAAA,EACzB,IAAA,EAAM;AACR;AAGO,MAAM,iBAAA,GAAoB;AAG1B,MAAM,oBAAA,GAAuB,CAAC,CAAA,EAAG,WAAA,CAAY,IAAI,CAAA,SAAA,CAAW;AAQ5D,MAAM,YAAA,GAAe;AAAA,EAC1B,MAAA,EAAQ,QAAA;AAAA,EACR,aAAA,EAAe,cAAA;AAAA,EACf,MAAA,EAAQ,QAAA;AAAA,EACR,gBAAA,EAAkB;AACpB;AAQO,MAAM,gBAAA,GAAmB;AAAA,EAC9B,MAAA,EAAQ,QAAA;AAAA,EACR,GAAA,EAAK,KAAA;AAAA,EACL,IAAA,EAAM;AACR;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.js","sources":["../../../src/common/helpers/format.ts"],"sourcesContent":["/** Format a price to a symbol's digit precision. */\nexport function formatPrice(value: number, digits = 5): string {\n return value.toFixed(digits);\n}\n\n/** Compute spread from bid/ask at a given precision. */\nexport function computeSpread(bid: number, ask: number, digits = 5): number {\n return Number((ask - bid).toFixed(digits));\n}\n\n/** Human label for a symbol category. */\nexport function categoryLabel(category: string): string {\n const map: Record<string, string> = {\n fx: 'Forex',\n metal: 'Metals',\n crypto: 'Crypto',\n index: 'Indices',\n stock: 'Stocks',\n energy: 'Energy',\n };\n return map[category] ?? category;\n}\n"],"names":[],"mappings":"AACO,SAAS,WAAA,CAAY,KAAA,EAAe,MAAA,GAAS,CAAA,EAAW;AAC7D,EAAA,OAAO,KAAA,CAAM,QAAQ,MAAM,CAAA;AAC7B;AAGO,SAAS,aAAA,CAAc,GAAA,EAAa,GAAA,EAAa,MAAA,GAAS,CAAA,EAAW;AAC1E,EAAA,OAAO,MAAA,CAAA,CAAQ,GAAA,GAAM,GAAA,EAAK,OAAA,CAAQ,MAAM,CAAC,CAAA;AAC3C;AAGO,SAAS,cAAc,QAAA,EAA0B;AACtD,EAAA,MAAM,GAAA,GAA8B;AAAA,IAClC,EAAA,EAAI,OAAA;AAAA,IACJ,KAAA,EAAO,QAAA;AAAA,IACP,MAAA,EAAQ,QAAA;AAAA,IACR,KAAA,EAAO,SAAA;AAAA,IACP,KAAA,EAAO,QAAA;AAAA,IACP,MAAA,EAAQ;AAAA,GACV;AACA,EAAA,OAAO,GAAA,CAAI,QAAQ,CAAA,IAAK,QAAA;AAC1B;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mt5Retcode.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}