@forgecharts/sdk 1.2.5 → 1.2.6

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 (33) hide show
  1. package/dist/index.d.ts +3 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +245 -50
  4. package/dist/index.js.map +1 -1
  5. package/dist/internal.js +245 -50
  6. package/dist/internal.js.map +1 -1
  7. package/dist/licensing/ChartRuntimeResolver.d.ts +55 -24
  8. package/dist/licensing/ChartRuntimeResolver.d.ts.map +1 -1
  9. package/dist/licensing/LicenseManager.d.ts +17 -2
  10. package/dist/licensing/LicenseManager.d.ts.map +1 -1
  11. package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts +3 -0
  12. package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts.map +1 -1
  13. package/dist/licensing/__tests__/LicenseManager.test.d.ts +3 -0
  14. package/dist/licensing/__tests__/LicenseManager.test.d.ts.map +1 -1
  15. package/dist/licensing/__tests__/capabilityMatrix.test.d.ts +11 -0
  16. package/dist/licensing/__tests__/capabilityMatrix.test.d.ts.map +1 -0
  17. package/dist/licensing/capabilityMatrix.d.ts +77 -0
  18. package/dist/licensing/capabilityMatrix.d.ts.map +1 -0
  19. package/dist/licensing/licenseTypes.d.ts +29 -2
  20. package/dist/licensing/licenseTypes.d.ts.map +1 -1
  21. package/dist/node.d.ts +3 -1
  22. package/dist/node.d.ts.map +1 -1
  23. package/dist/react/index.js +234 -55
  24. package/dist/react/index.js.map +1 -1
  25. package/dist/react/internal.js +237 -57
  26. package/dist/react/internal.js.map +1 -1
  27. package/dist/react/shell/ManagedAppShell.d.ts.map +1 -1
  28. package/dist/trading/__tests__/managedCapabilities.test.d.ts +11 -0
  29. package/dist/trading/__tests__/managedCapabilities.test.d.ts.map +1 -0
  30. package/dist/trading/managed/ManagedTradingController.d.ts.map +1 -1
  31. package/dist/trading/managed/managedCapabilities.d.ts +45 -13
  32. package/dist/trading/managed/managedCapabilities.d.ts.map +1 -1
  33. package/package.json +1 -1
@@ -2,26 +2,31 @@
2
2
  * ChartRuntimeResolver
3
3
  *
4
4
  * Single source of truth for runtime capability queries.
5
- * Mode is always derived from the installed LicenseManager state — it is
6
- * never passed in by chart config, ensuring clients cannot bypass the
7
- * license-driven mode selection.
5
+ * Mode and productTier are always derived from the installed LicenseManager
6
+ * state — never passed in by chart config, ensuring clients cannot bypass
7
+ * license-driven gating.
8
8
  *
9
- * Capability resolution (post-v2 platform features):
10
- * 1. Mode gate trading features require managed mode.
11
- * 2. Feature flag — the license payload's `features` map gates granular access.
12
- * 3. Default omitted flags fall back to mode-based convention:
13
- * managed → all features default true
14
- * unmanaged trading features default false, everything else true
15
- *
16
- * The tier concept is deprecated — mode + features is the canonical resolution path.
9
+ * Capability resolution (3-model schema — deploymentMode × productTier):
10
+ * 1. The 8 canonical capabilities (orderEntry, managedTrading,
11
+ * draggableOrders, bracketOrders, externalIngestion,
12
+ * symbolResolverRequired, tradingBridgeRequired, fullAppShell) are
13
+ * read directly from `LicenseManager.getCapabilities()`, which was
14
+ * resolved once at license-load time by `capabilityMatrix.ts`'s
15
+ * tier × mode matrix. No capability is ever gated on `deploymentMode`
16
+ * alone here.
17
+ * 2. Other granular features (trailingStops, positionsOverlay, and the
18
+ * generic charting/data/scripting/workspace flags) use the license
19
+ * payload's `features` map, gated on `productTier` (not mode) where
20
+ * trading-adjacent, defaulting to allowed when omitted.
17
21
  *
18
22
  * Usage:
19
23
  * import { ChartRuntimeResolver } from '@forgecharts/sdk';
20
24
  * const resolver = ChartRuntimeResolver.getInstance();
21
- * resolver.isManagedMode();
25
+ * resolver.getProductTier();
22
26
  * resolver.canUseOrderEntry();
23
27
  * resolver.hasFeature('barReplay');
24
28
  */
29
+ import type { ProductTier } from './capabilityMatrix';
25
30
  export declare class ChartRuntimeResolver {
26
31
  #private;
27
32
  private static instance;
@@ -36,12 +41,14 @@ export declare class ChartRuntimeResolver {
36
41
  /**
37
42
  * Check whether a specific platform feature is enabled.
38
43
  *
39
- * Resolution:
40
- * 1. If the feature is a trading feature and mode is unmanaged → false.
44
+ * Resolution (capability-driven — never gated on deploymentMode alone):
45
+ * 1. If the feature is a trading feature and productTier is 'core' → false.
41
46
  * 2. If the feature has an explicit flag in the license → use it.
42
- * 3. Default: true for managed, true for non-trading unmanaged features.
47
+ * 3. Default: true for platform/trading tier, true for non-trading features.
43
48
  */
44
49
  hasFeature(name: string): boolean;
50
+ /** The entitlement tier driven by the active license. */
51
+ getProductTier(): ProductTier;
45
52
  /** Chart type selection (candlestick, bar, line, area, etc.). */
46
53
  canUseChartTypes(): boolean;
47
54
  /** Basic drawing tools (trend lines, horizontal lines, etc.). */
@@ -68,32 +75,47 @@ export declare class ChartRuntimeResolver {
68
75
  canUseDataExport(): boolean;
69
76
  /**
70
77
  * Built-in order entry UI hooks.
71
- * Requires managed mode unmanaged licenses cannot use order entry.
78
+ * Ceiling driven by `productTier` (core = false, trading/platform = true) —
79
+ * available in both Unmanaged Trading and Managed Platform. An explicit
80
+ * `features.orderEntry` flag on the payload may only narrow below the
81
+ * ceiling, never elevate above it.
72
82
  */
73
83
  canUseOrderEntry(): boolean;
74
84
  /**
75
85
  * Managed trading service hooks (broker execution, position management).
76
- * Requires managed mode.
86
+ * Only true for Managed Platform — `managedTrading` is forced off under
87
+ * unmanaged deployment regardless of tier (see capabilityMatrix).
77
88
  */
78
89
  canUseManagedTrading(): boolean;
79
90
  /**
80
91
  * Drag-to-price order placement.
81
- * Requires managed mode.
92
+ * Ceiling driven by `productTier` — available in Unmanaged Trading and
93
+ * Managed Platform.
82
94
  */
83
95
  canUseDraggableOrders(): boolean;
84
96
  /**
85
97
  * Bracket / OCO order support.
86
- * Requires managed mode.
98
+ * Ceiling driven by `productTier` — available in Unmanaged Trading and
99
+ * Managed Platform.
87
100
  */
88
101
  canUseBracketOrders(): boolean;
89
102
  /**
90
- * Trailing stop orders.
91
- * Requires managed mode.
103
+ * Whether trading UI must route execution through host-supplied intent
104
+ * handlers rather than a managed backend (Unmanaged Trading only).
105
+ */
106
+ requiresTradingBridge(): boolean;
107
+ /** Whether the host must supply an `ISymbolResolver` (unmanaged tiers). */
108
+ requiresSymbolResolver(): boolean;
109
+ /** Whether the full managed app shell should render (Managed Platform only). */
110
+ hasFullAppShell(): boolean;
111
+ /**
112
+ * Trailing stop orders. Not part of the core capability set — gated on
113
+ * productTier (not deploymentMode) to keep the two axes independent.
92
114
  */
93
115
  canUseTrailingStops(): boolean;
94
116
  /**
95
- * Positions overlay on chart.
96
- * Requires managed mode.
117
+ * Positions overlay on chart. Not part of the core capability set — gated
118
+ * on productTier (not deploymentMode) to keep the two axes independent.
97
119
  */
98
120
  canUsePositionsOverlay(): boolean;
99
121
  /** ForgeScript scripting engine. */
@@ -114,7 +136,8 @@ export declare class ChartRuntimeResolver {
114
136
  canUseMultiChartLayout(): boolean;
115
137
  /**
116
138
  * External data ingestion APIs (e.g. pushing tick data from an external broker).
117
- * Available in unmanaged mode only — in managed mode the built-in feed owns data.
139
+ * Driven by `productTier`/`deploymentMode` via `capabilities.externalIngestion`
140
+ * — true for core/trading, false for Managed Platform (the managed feed owns data).
118
141
  */
119
142
  canUseExternalIngestion(): boolean;
120
143
  /** Whether to render the order entry tool in the toolbar. */
@@ -149,6 +172,10 @@ export declare class ChartRuntimeResolver {
149
172
  }
150
173
  export interface ChartCapabilities {
151
174
  mode: 'managed' | 'unmanaged';
175
+ productTier: ProductTier;
176
+ symbolResolverRequired: boolean;
177
+ tradingBridgeRequired: boolean;
178
+ fullAppShell: boolean;
152
179
  chartTypes: boolean;
153
180
  drawingTools: boolean;
154
181
  extendedDrawings: boolean;
@@ -203,6 +230,10 @@ export interface ChartCapabilities {
203
230
  }
204
231
  export declare const isManagedMode: () => boolean;
205
232
  export declare const isUnmanagedMode: () => boolean;
233
+ export declare const getProductTier: () => ProductTier;
234
+ export declare const requiresTradingBridge: () => boolean;
235
+ export declare const requiresSymbolResolver: () => boolean;
236
+ export declare const hasFullAppShell: () => boolean;
206
237
  export declare const canUseChartTypes: () => boolean;
207
238
  export declare const canUseDrawingTools: () => boolean;
208
239
  export declare const canUseExtendedDrawings: () => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ChartRuntimeResolver.d.ts","sourceRoot":"","sources":["../../src/licensing/ChartRuntimeResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChartRuntimeResolver.d.ts","sourceRoot":"","sources":["../../src/licensing/ChartRuntimeResolver.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { LicenseFeatures, LicenseMode, LicensePayload } from './licenseTypes';
2
+ import type { CapabilitySet, LegacyPayloadShape, ProductTier } from './capabilityMatrix';
2
3
  /**
3
4
  * LicenseManager — single source of truth for chart mode and feature access.
4
5
  *
@@ -9,6 +10,7 @@ import type { LicenseFeatures, LicenseMode, LicensePayload } from './licenseType
9
10
  * lm.hasFeature('orderEntry');
10
11
  */
11
12
  export declare class LicenseManager {
13
+ #private;
12
14
  private static instance;
13
15
  private payload;
14
16
  private readonly subscribers;
@@ -35,8 +37,8 @@ export declare class LicenseManager {
35
37
  * e.g. "http://licenses.example.com:4100/api/public/license/verify"
36
38
  */
37
39
  validateLicense(key: string, verifyUrl: string): Promise<LicensePayload>;
38
- /** Load a pre-validated payload (e.g. from cache / localStorage). */
39
- loadLicense(payload: LicensePayload): void;
40
+ /** Load a pre-validated payload (e.g. from cache / localStorage). Runs through the same migration + guardrail pipeline as `validateLicense`. */
41
+ loadLicense(payload: LegacyPayloadShape): void;
40
42
  /** Return the currently loaded payload, or null if none. */
41
43
  getLicense(): LicensePayload | null;
42
44
  /**
@@ -49,6 +51,19 @@ export declare class LicenseManager {
49
51
  getFeatures(): LicenseFeatures;
50
52
  /** Check whether a specific feature is enabled on the active license. */
51
53
  hasFeature(name: keyof LicenseFeatures): boolean;
54
+ /**
55
+ * The entitlement tier driven by the active license.
56
+ * Defaults to 'core' — the most restrictive tier — so no trading/managed
57
+ * capability appears without a valid license.
58
+ */
59
+ getProductTier(): ProductTier;
60
+ /**
61
+ * The resolved capability set for the active license (or the safest
62
+ * defaults — unmanaged/core — when no license is loaded yet).
63
+ */
64
+ getCapabilities(): CapabilitySet;
65
+ /** Check whether a specific capability is enabled on the active license. */
66
+ hasCapability(name: keyof CapabilitySet): boolean;
52
67
  /** Clear the current license state (returns to safe unmanaged defaults). */
53
68
  clear(): void;
54
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LicenseManager.d.ts","sourceRoot":"","sources":["../../src/licensing/LicenseManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKnF;;;;;;;;GAQG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IAEtD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;IAE1D,OAAO;IAEP;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAKrC,OAAO,CAAC,MAAM;IAMd,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC;;;;;;OAMG;IACG,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAsC9E,qEAAqE;IACrE,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAK1C,4DAA4D;IAC5D,UAAU,IAAI,cAAc,GAAG,IAAI;IAInC;;;;OAIG;IACH,OAAO,IAAI,WAAW;IAItB,uDAAuD;IACvD,WAAW,IAAI,eAAe;IAI9B,yEAAyE;IACzE,UAAU,CAAC,IAAI,EAAE,MAAM,eAAe,GAAG,OAAO;IAIhD,4EAA4E;IAC5E,KAAK,IAAI,IAAI;CAId"}
1
+ {"version":3,"file":"LicenseManager.d.ts","sourceRoot":"","sources":["../../src/licensing/LicenseManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAEhG,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMzF;;;;;;;;GAQG;AACH,qBAAa,cAAc;;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IAEtD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;IAE1D,OAAO;IAEP;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAKrC,OAAO,CAAC,MAAM;IAMd,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC;;;;;;OAMG;IACG,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAiD9E,gJAAgJ;IAChJ,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAqB9C,4DAA4D;IAC5D,UAAU,IAAI,cAAc,GAAG,IAAI;IAInC;;;;OAIG;IACH,OAAO,IAAI,WAAW;IAItB,uDAAuD;IACvD,WAAW,IAAI,eAAe;IAI9B,yEAAyE;IACzE,UAAU,CAAC,IAAI,EAAE,MAAM,eAAe,GAAG,OAAO;IAIhD;;;;OAIG;IACH,cAAc,IAAI,WAAW;IAI7B;;;OAGG;IACH,eAAe,IAAI,aAAa;IAIhC,4EAA4E;IAC5E,aAAa,CAAC,IAAI,EAAE,MAAM,aAAa,GAAG,OAAO;IAIjD,4EAA4E;IAC5E,KAAK,IAAI,IAAI;CAId"}
@@ -10,6 +10,9 @@
10
10
  * - Trading features gated to managed mode
11
11
  * - getCapabilities() snapshot is consistent with individual methods
12
12
  * - Module-level convenience functions alias correctly
13
+ * - Unmanaged Trading (productTier='trading') gets order UI + tradingBridgeRequired
14
+ * without any deploymentMode==='managed' check (capability-driven, not mode-hardwired)
15
+ * - Managed Platform is the only combination with fullAppShell/managedTrading
13
16
  */
14
17
  export {};
15
18
  //# sourceMappingURL=ChartRuntimeResolver.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartRuntimeResolver.test.d.ts","sourceRoot":"","sources":["../../../src/licensing/__tests__/ChartRuntimeResolver.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
1
+ {"version":3,"file":"ChartRuntimeResolver.test.d.ts","sourceRoot":"","sources":["../../../src/licensing/__tests__/ChartRuntimeResolver.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
@@ -7,6 +7,9 @@
7
7
  * - validateLicense resolves a payload (placeholder logic)
8
8
  * - clear() resets to safe unmanaged defaults
9
9
  * - subscribe/unsubscribe fires on every mutation
10
+ * - legacy payloads (no productTier/capabilities/schemaVersion) are
11
+ * migrated deterministically, with warnings, on every load path
12
+ * - the managed+non-platform guardrail is normalized with a warning
10
13
  */
11
14
  export {};
12
15
  //# sourceMappingURL=LicenseManager.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LicenseManager.test.d.ts","sourceRoot":"","sources":["../../../src/licensing/__tests__/LicenseManager.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
1
+ {"version":3,"file":"LicenseManager.test.d.ts","sourceRoot":"","sources":["../../../src/licensing/__tests__/LicenseManager.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * capabilityMatrix — unit tests
3
+ *
4
+ * Covers:
5
+ * - getDefaultCapabilities() for all 6 productTier x deploymentMode combos
6
+ * - no capability is ever true purely "because mode matches" (tier drives it)
7
+ * - isValidCombination() / validateLicensePolicy() guardrail behaviour
8
+ * - migrateLegacyPayload() deterministic inference + warnings
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=capabilityMatrix.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilityMatrix.test.d.ts","sourceRoot":"","sources":["../../../src/licensing/__tests__/capabilityMatrix.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * capabilityMatrix — the single source of truth for deriving capabilities
3
+ * from a license payload's two independent axes:
4
+ *
5
+ * deploymentMode : 'managed' | 'unmanaged' (wiring concern — who hosts the runtime)
6
+ * productTier : 'core' | 'trading' | 'platform' (entitlement concern — what's sold)
7
+ *
8
+ * No capability may be enabled purely because deploymentMode matches — tier
9
+ * drives the matrix; deploymentMode only vetoes the two capabilities that are
10
+ * inherently managed-stack concepts (`managedTrading`, `fullAppShell`).
11
+ *
12
+ * Server-side (ForgeCharts-admin) keeps a hand-synced copy of this file at
13
+ * `server/src/shared/capabilityMatrix.ts` — keep both in sync when editing.
14
+ */
15
+ import type { LicenseFeatures, LicenseMode, LicensePayload, LicenseTier } from './licenseTypes';
16
+ export type ProductTier = 'core' | 'trading' | 'platform';
17
+ export declare const PRODUCT_TIERS: readonly ProductTier[];
18
+ export declare const CURRENT_SCHEMA_VERSION = 2;
19
+ export interface CapabilitySet {
20
+ orderEntry: boolean;
21
+ managedTrading: boolean;
22
+ draggableOrders: boolean;
23
+ bracketOrders: boolean;
24
+ externalIngestion: boolean;
25
+ symbolResolverRequired: boolean;
26
+ tradingBridgeRequired: boolean;
27
+ fullAppShell: boolean;
28
+ }
29
+ /**
30
+ * Resolve the default capability set for a given tier + mode.
31
+ * `managedTrading` and `fullAppShell` are inherently managed-stack concepts —
32
+ * they are forced off under unmanaged deployment regardless of tier. Every
33
+ * other capability is decided by tier alone.
34
+ */
35
+ export declare function getDefaultCapabilities(productTier: ProductTier, deploymentMode: LicenseMode): CapabilitySet;
36
+ /**
37
+ * The only structurally invalid combination: a managed deployment that
38
+ * doesn't run the full managed shell. Managed Platform is the sole managed
39
+ * offering — there is no "managed core"/"managed trading" product.
40
+ */
41
+ export declare function isValidCombination(deploymentMode: LicenseMode, capabilities: CapabilitySet): boolean;
42
+ export interface LegacyPayloadShape {
43
+ licenseKey?: string;
44
+ mode?: LicenseMode;
45
+ deploymentMode?: LicenseMode;
46
+ tier?: LicenseTier;
47
+ productTier?: ProductTier;
48
+ plan?: string;
49
+ expires?: string;
50
+ features?: LicenseFeatures;
51
+ capabilities?: CapabilitySet;
52
+ schemaVersion?: number;
53
+ }
54
+ /**
55
+ * Upgrade any payload (current or legacy) to the current schema: ensures
56
+ * `deploymentMode`, `productTier`, `capabilities`, and `schemaVersion` are
57
+ * always present. Never throws — always returns a usable payload plus a
58
+ * list of human-readable warnings describing any defaults that were applied.
59
+ */
60
+ export declare function migrateLegacyPayload(raw: LegacyPayloadShape): {
61
+ payload: LicensePayload;
62
+ warnings: string[];
63
+ };
64
+ export interface PolicyValidationResult {
65
+ valid: boolean;
66
+ normalized: LicensePayload;
67
+ warnings: string[];
68
+ }
69
+ /**
70
+ * Guardrail check for structurally invalid mode/tier/capability combinations.
71
+ * Consumption-side policy (SDK): normalize with a warning rather than throw,
72
+ * so a single bad payload can't break chart mounting for an end user.
73
+ * Issuance-side policy (ForgeCharts-admin) should reject instead — see the
74
+ * server-side `capabilityMatrix.ts` copy.
75
+ */
76
+ export declare function validateLicensePolicy(payload: LicensePayload): PolicyValidationResult;
77
+ //# sourceMappingURL=capabilityMatrix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilityMatrix.d.ts","sourceRoot":"","sources":["../../src/licensing/capabilityMatrix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGhG,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1D,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAAoC,CAAC;AAErF,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,EAAE,OAAO,CAAC;IAChC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;CACvB;AAoCD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,GAAG,aAAa,CAM3G;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,GAAG,OAAO,CAGpG;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAyBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,kBAAkB,GAAG;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAqC7G;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,sBAAsB,CAkBrF"}
@@ -1,3 +1,4 @@
1
+ import type { ProductTier, CapabilitySet } from './capabilityMatrix';
1
2
  export type LicenseMode = 'managed' | 'unmanaged';
2
3
  /**
3
4
  * @deprecated Tier is no longer used — mode + features is sufficient.
@@ -62,16 +63,42 @@ export interface LicenseFeatures {
62
63
  }
63
64
  /** Trading feature keys — the subset gated to managed mode by default. */
64
65
  export declare const TRADING_FEATURE_KEYS: ReadonlySet<string>;
66
+ /**
67
+ * A license payload as it may arrive from any source — a fresh v2 verify
68
+ * response, a v1 payload cached in localStorage, or a hand-built object in
69
+ * older host/test code. Only `licenseKey` and `mode` are guaranteed.
70
+ *
71
+ * `deploymentMode`/`productTier`/`capabilities`/`schemaVersion` are optional
72
+ * here (existing callers constructing `{ licenseKey, mode }` literals must
73
+ * keep type-checking — that's the backward-compat contract). Always pass
74
+ * payloads through `LicenseManager.loadLicense()`/`validateLicense()`, which
75
+ * runs `migrateLegacyPayload` + `validateLicensePolicy` and guarantees
76
+ * `LicenseManager.getCapabilities()`/`getProductTier()` never see gaps —
77
+ * never read `payload.capabilities` directly off a raw payload.
78
+ */
65
79
  export interface LicensePayload {
66
80
  licenseKey: string;
81
+ /**
82
+ * @deprecated Use `deploymentMode` — kept in sync for backward compatibility
83
+ * with code that still reads `.mode`.
84
+ */
67
85
  mode: LicenseMode;
86
+ /** Wiring axis — who hosts the runtime. Independent of `productTier`. */
87
+ deploymentMode?: LicenseMode;
88
+ /** Entitlement axis — what's sold. Independent of `deploymentMode`. */
89
+ productTier?: ProductTier;
90
+ /** Resolved capability set for this payload's tier + mode combination. */
91
+ capabilities?: CapabilitySet;
92
+ /** Payload contract version. Absent/less-than-current implies a legacy (v1) payload — see `migrateLegacyPayload`. */
93
+ schemaVersion?: number;
68
94
  /**
69
- * @deprecated Tier is no longer used for capability resolution.
70
- * Kept for backward compatibility with cached payloads.
95
+ * @deprecated Superseded by `productTier`. Kept for backward compatibility
96
+ * with cached payloads; no longer drives capability resolution.
71
97
  */
72
98
  tier?: LicenseTier;
73
99
  plan?: string;
74
100
  expires?: string;
75
101
  features?: LicenseFeatures;
76
102
  }
103
+ export type { ProductTier, CapabilitySet };
77
104
  //# sourceMappingURL=licenseTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"licenseTypes.d.ts","sourceRoot":"","sources":["../../src/licensing/licenseTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAElD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;AAE7D;;GAEG;AACH,QAAA,MAAM,aAAa,kBAA2C,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,eAAe;IAE9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,2EAA2E;IAC3E,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACpC;AAED,0EAA0E;AAC1E,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAGnD,CAAC;AAEH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B"}
1
+ {"version":3,"file":"licenseTypes.d.ts","sourceRoot":"","sources":["../../src/licensing/licenseTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAElD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;AAE7D;;GAEG;AACH,QAAA,MAAM,aAAa,kBAA2C,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,eAAe;IAE9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,2EAA2E;IAC3E,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACpC;AAED,0EAA0E;AAC1E,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAGnD,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,EAAE,WAAW,CAAC;IAClB,yEAAyE;IACzE,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,uEAAuE;IACvE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,0EAA0E;IAC1E,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,qHAAqH;IACrH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAID,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"}
package/dist/node.d.ts CHANGED
@@ -42,7 +42,9 @@ export { ManagedTradingController } from './trading/managed/ManagedTradingContro
42
42
  export type { IExecutionProvider, PlaceOrderInput, ModifyOrderInput, PlaceBracketOrderInput, OrderAck, BracketOrderAck, ManagedOrderType, TimeInForce, } from './trading/managed/managedTypes';
43
43
  export { assertManagedMode, assertCanPlaceOrders, assertCanUseBrackets, assertCanUseDraggableOrders, assertCanUseManagedTrading, isManagedCapable, canPlaceOrders, canPlaceBrackets, canUseDraggable, canUseManagedTradingHook, } from './trading/managed/managedCapabilities';
44
44
  export { LicenseManager } from './licensing/LicenseManager';
45
- export type { LicenseMode, LicenseFeatures, LicensePayload } from './licensing/licenseTypes';
45
+ export type { LicenseMode, LicenseFeatures, LicensePayload, ProductTier, CapabilitySet } from './licensing/licenseTypes';
46
+ export { getDefaultCapabilities, isValidCombination, migrateLegacyPayload, validateLicensePolicy, CURRENT_SCHEMA_VERSION, PRODUCT_TIERS, } from './licensing/capabilityMatrix';
47
+ export type { PolicyValidationResult, LegacyPayloadShape } from './licensing/capabilityMatrix';
46
48
  export { ChartRuntimeResolver } from './licensing/ChartRuntimeResolver';
47
49
  export type { ChartCapabilities } from './licensing/ChartRuntimeResolver';
48
50
  export { isManagedMode, isUnmanagedMode, canUseChartTypes, canUseDrawingTools, canUseExtendedDrawings, canUseIndicators, canUseMultiPane, canUseBarReplay, canUseCustomTimeframes, canRenderOverlays, canUseHistoricalData, canUseRealtimeData, canUseMultipleProviders, canUseDataExport, canUseOrderEntry, canUseManagedTrading, canUseDraggableOrders, canUseBracketOrders, canUseTrailingStops, canUsePositionsOverlay, canUseForgeScript, canUseCustomIndicators, canUseAiAgent, canUseSavedLayouts, canUseMultipleWorkspaces, canUseWatchlists, canUseAlerts, canUseMultiChartLayout, canUseExternalIngestion, hasFeature, getCapabilities, canRenderOrderEntry, canRenderBuySellButtons, canRenderOrderTicket, canRenderBracketControls, canRenderOrderModificationControls, canRenderManagedTradingControls, canRenderExternalOverlayOnlyMode, canRenderPositions, canRenderFills, canRenderCandles, canRenderIndicators, canRenderDrawings, } from './licensing/ChartRuntimeResolver';
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}