@forgecharts/sdk 1.3.7 → 1.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -12
- package/dist/index.js.map +1 -1
- package/dist/internal.js +45 -12
- package/dist/internal.js.map +1 -1
- package/dist/licensing/ChartRuntimeResolver.d.ts.map +1 -1
- package/dist/licensing/LicenseManager.d.ts +23 -1
- package/dist/licensing/LicenseManager.d.ts.map +1 -1
- package/dist/licensing/__tests__/lockdownPolicy.test.d.ts +2 -0
- package/dist/licensing/__tests__/lockdownPolicy.test.d.ts.map +1 -0
- package/dist/react/index.js +45 -12
- package/dist/react/index.js.map +1 -1
- package/dist/react/internal.js +45 -12
- package/dist/react/internal.js.map +1 -1
- package/package.json +1 -1
|
@@ -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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"}
|
|
@@ -9,10 +9,23 @@ import type { CapabilitySet, LegacyPayloadShape, ProductTier } from './capabilit
|
|
|
9
9
|
* lm.getMode(); // 'managed' | 'unmanaged'
|
|
10
10
|
* lm.hasFeature('orderEntry');
|
|
11
11
|
*/
|
|
12
|
+
/**
|
|
13
|
+
* Validation lifecycle:
|
|
14
|
+
* 'idle' — validateLicense never attempted (dev/tests/direct loadLicense).
|
|
15
|
+
* Permissive "omitted = allowed" defaults apply.
|
|
16
|
+
* 'pending' — validation in flight. LOCKED DOWN: gated features denied
|
|
17
|
+
* until the verify resolves (no permissive flash).
|
|
18
|
+
* 'valid' — a license is loaded; its flags/tier decide everything.
|
|
19
|
+
* 'failed' — validation was attempted and failed (bad key, revoked,
|
|
20
|
+
* server unreachable). LOCKED DOWN: gated features denied —
|
|
21
|
+
* a failed verify must never yield more than a valid one.
|
|
22
|
+
*/
|
|
23
|
+
export type LicenseValidationStatus = 'idle' | 'pending' | 'valid' | 'failed';
|
|
12
24
|
export declare class LicenseManager {
|
|
13
25
|
#private;
|
|
14
26
|
private static instance;
|
|
15
27
|
private payload;
|
|
28
|
+
private status;
|
|
16
29
|
private readonly subscribers;
|
|
17
30
|
private constructor();
|
|
18
31
|
/**
|
|
@@ -39,6 +52,15 @@ export declare class LicenseManager {
|
|
|
39
52
|
validateLicense(key: string, verifyUrl: string): Promise<LicensePayload>;
|
|
40
53
|
/** Load a pre-validated payload (e.g. from cache / localStorage). Runs through the same migration + guardrail pipeline as `validateLicense`. */
|
|
41
54
|
loadLicense(payload: LegacyPayloadShape): void;
|
|
55
|
+
/** Where the license is in its validation lifecycle. */
|
|
56
|
+
getValidationStatus(): LicenseValidationStatus;
|
|
57
|
+
/**
|
|
58
|
+
* True when a validation attempt is pending or has failed — every
|
|
59
|
+
* license-gated feature must be denied. 'idle' (validation never
|
|
60
|
+
* attempted) is NOT locked down: dev/test usage keeps the permissive
|
|
61
|
+
* "omitted = allowed" defaults.
|
|
62
|
+
*/
|
|
63
|
+
isLockedDown(): boolean;
|
|
42
64
|
/** Return the currently loaded payload, or null if none. */
|
|
43
65
|
getLicense(): LicensePayload | null;
|
|
44
66
|
/**
|
|
@@ -64,7 +86,7 @@ export declare class LicenseManager {
|
|
|
64
86
|
getCapabilities(): CapabilitySet;
|
|
65
87
|
/** Check whether a specific capability is enabled on the active license. */
|
|
66
88
|
hasCapability(name: keyof CapabilitySet): boolean;
|
|
67
|
-
/** Clear the current license state (returns to safe unmanaged defaults). */
|
|
89
|
+
/** Clear the current license state (returns to safe unmanaged defaults and 'idle' status). */
|
|
68
90
|
clear(): void;
|
|
69
91
|
}
|
|
70
92
|
//# sourceMappingURL=LicenseManager.d.ts.map
|
|
@@ -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;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;
|
|
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;;;;;;;;;;GAUG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE9E,qBAAa,cAAc;;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IAEtD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,MAAM,CAAmC;IACjD,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;IAgE9E,gJAAgJ;IAChJ,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAM9C,wDAAwD;IACxD,mBAAmB,IAAI,uBAAuB;IAI9C;;;;;OAKG;IACH,YAAY,IAAI,OAAO;IAoBvB,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,8FAA8F;IAC9F,KAAK,IAAI,IAAI;CAKd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockdownPolicy.test.d.ts","sourceRoot":"","sources":["../../../src/licensing/__tests__/lockdownPolicy.test.ts"],"names":[],"mappings":""}
|
package/dist/react/index.js
CHANGED
|
@@ -10732,6 +10732,7 @@ var DEFAULT_FEATURES = {};
|
|
|
10732
10732
|
var LicenseManager = class _LicenseManager {
|
|
10733
10733
|
static instance = null;
|
|
10734
10734
|
payload = null;
|
|
10735
|
+
status = "idle";
|
|
10735
10736
|
subscribers = /* @__PURE__ */ new Set();
|
|
10736
10737
|
constructor() {
|
|
10737
10738
|
}
|
|
@@ -10778,17 +10779,27 @@ var LicenseManager = class _LicenseManager {
|
|
|
10778
10779
|
if (!verifyUrl) {
|
|
10779
10780
|
throw new Error("LicenseManager: verifyUrl is required");
|
|
10780
10781
|
}
|
|
10781
|
-
|
|
10782
|
-
|
|
10783
|
-
|
|
10784
|
-
|
|
10785
|
-
|
|
10786
|
-
|
|
10787
|
-
|
|
10788
|
-
|
|
10789
|
-
|
|
10790
|
-
|
|
10791
|
-
|
|
10782
|
+
this.status = "pending";
|
|
10783
|
+
this.notify();
|
|
10784
|
+
let data;
|
|
10785
|
+
try {
|
|
10786
|
+
const res = await fetch(verifyUrl, {
|
|
10787
|
+
method: "POST",
|
|
10788
|
+
headers: { "Content-Type": "application/json" },
|
|
10789
|
+
body: JSON.stringify({ licenseKey: key.trim().toUpperCase() })
|
|
10790
|
+
});
|
|
10791
|
+
if (!res.ok) {
|
|
10792
|
+
throw new Error(`License server error: ${res.status} ${res.statusText}`);
|
|
10793
|
+
}
|
|
10794
|
+
data = await res.json();
|
|
10795
|
+
if (!data.valid) {
|
|
10796
|
+
throw new Error(data.reason ?? "License invalid");
|
|
10797
|
+
}
|
|
10798
|
+
} catch (err) {
|
|
10799
|
+
this.payload = null;
|
|
10800
|
+
this.status = "failed";
|
|
10801
|
+
this.notify();
|
|
10802
|
+
throw err;
|
|
10792
10803
|
}
|
|
10793
10804
|
const raw = {
|
|
10794
10805
|
licenseKey: data.licenseKey ?? key.trim().toUpperCase(),
|
|
@@ -10803,14 +10814,29 @@ var LicenseManager = class _LicenseManager {
|
|
|
10803
10814
|
};
|
|
10804
10815
|
const payload = this.#applyPolicyPipeline(raw);
|
|
10805
10816
|
this.payload = payload;
|
|
10817
|
+
this.status = "valid";
|
|
10806
10818
|
this.notify();
|
|
10807
10819
|
return payload;
|
|
10808
10820
|
}
|
|
10809
10821
|
/** Load a pre-validated payload (e.g. from cache / localStorage). Runs through the same migration + guardrail pipeline as `validateLicense`. */
|
|
10810
10822
|
loadLicense(payload) {
|
|
10811
10823
|
this.payload = this.#applyPolicyPipeline(payload);
|
|
10824
|
+
this.status = "valid";
|
|
10812
10825
|
this.notify();
|
|
10813
10826
|
}
|
|
10827
|
+
/** Where the license is in its validation lifecycle. */
|
|
10828
|
+
getValidationStatus() {
|
|
10829
|
+
return this.status;
|
|
10830
|
+
}
|
|
10831
|
+
/**
|
|
10832
|
+
* True when a validation attempt is pending or has failed — every
|
|
10833
|
+
* license-gated feature must be denied. 'idle' (validation never
|
|
10834
|
+
* attempted) is NOT locked down: dev/test usage keeps the permissive
|
|
10835
|
+
* "omitted = allowed" defaults.
|
|
10836
|
+
*/
|
|
10837
|
+
isLockedDown() {
|
|
10838
|
+
return this.status === "pending" || this.status === "failed";
|
|
10839
|
+
}
|
|
10814
10840
|
/**
|
|
10815
10841
|
* Runs a raw/legacy/partial payload through `migrateLegacyPayload` (fills
|
|
10816
10842
|
* missing productTier/capabilities/schemaVersion, deterministically, with
|
|
@@ -10865,9 +10891,10 @@ var LicenseManager = class _LicenseManager {
|
|
|
10865
10891
|
hasCapability(name) {
|
|
10866
10892
|
return this.getCapabilities()[name] === true;
|
|
10867
10893
|
}
|
|
10868
|
-
/** Clear the current license state (returns to safe unmanaged defaults). */
|
|
10894
|
+
/** Clear the current license state (returns to safe unmanaged defaults and 'idle' status). */
|
|
10869
10895
|
clear() {
|
|
10870
10896
|
this.payload = null;
|
|
10897
|
+
this.status = "idle";
|
|
10871
10898
|
this.notify();
|
|
10872
10899
|
}
|
|
10873
10900
|
};
|
|
@@ -11234,8 +11261,14 @@ var ChartRuntimeResolver = class _ChartRuntimeResolver {
|
|
|
11234
11261
|
* If the active license has an explicit feature flag, use it.
|
|
11235
11262
|
* Otherwise fall back to `defaultValue` (allows capability even without an
|
|
11236
11263
|
* explicit flag, matching the "omitted = allowed" convention).
|
|
11264
|
+
*
|
|
11265
|
+
* Lockdown override: while a validation attempt is pending or has failed,
|
|
11266
|
+
* every gated feature is denied — a failed verify must never yield more
|
|
11267
|
+
* than a valid one. 'idle' (validation never attempted) keeps the
|
|
11268
|
+
* permissive defaults for dev/test usage.
|
|
11237
11269
|
*/
|
|
11238
11270
|
#featureOrDefault(name, defaultValue) {
|
|
11271
|
+
if (this.lm.isLockedDown()) return false;
|
|
11239
11272
|
const features = this.lm.getFeatures();
|
|
11240
11273
|
const flag = features[name];
|
|
11241
11274
|
return flag === void 0 ? defaultValue : flag === true;
|