@ops-ai/toggly-docusaurus-plugin 0.5.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/client/index.d.ts +8 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +65 -18
- package/dist/client/index.js.map +1 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +96 -27
- package/dist/index.js.map +1 -1
- package/dist/lib/fetch-build-flags.d.ts +23 -0
- package/dist/lib/fetch-build-flags.d.ts.map +1 -0
- package/dist/lib/fetch-build-flags.js +56 -0
- package/dist/lib/fetch-build-flags.js.map +1 -0
- package/dist/lib/route-to-html-path.d.ts +6 -0
- package/dist/lib/route-to-html-path.d.ts.map +1 -0
- package/dist/lib/route-to-html-path.js +13 -0
- package/dist/lib/route-to-html-path.js.map +1 -0
- package/dist/lib/signed-response.d.ts +7 -0
- package/dist/lib/signed-response.d.ts.map +1 -0
- package/dist/lib/signed-response.js +14 -0
- package/dist/lib/signed-response.js.map +1 -0
- package/dist/lib/toggly-client.d.ts +6 -0
- package/dist/lib/toggly-client.d.ts.map +1 -1
- package/dist/lib/toggly-client.js +12 -3
- package/dist/lib/toggly-client.js.map +1 -1
- package/package.json +6 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021-2026 opsAI LLC
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/client/index.d.ts
CHANGED
|
@@ -15,6 +15,14 @@ export interface TogglyContextValue {
|
|
|
15
15
|
getFlag: (key: string, defaultValue?: boolean) => Promise<boolean>;
|
|
16
16
|
error: Error | null;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Whether this bundle was built with `staticGating: true` (flags baked at build).
|
|
20
|
+
*/
|
|
21
|
+
export declare function isStaticGatingMode(): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Build-time flag map injected by the plugin when `staticGating` is enabled.
|
|
24
|
+
*/
|
|
25
|
+
export declare function readBuildFlagsSnapshot(): Flags | null;
|
|
18
26
|
/**
|
|
19
27
|
* Read the flag snapshot the edge worker injected into the page so the React
|
|
20
28
|
* tree on first client render can match the post-edge-strip DOM.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAc,EAOZ,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,EAAyC,KAAK,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE5G,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAc,EAOZ,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,EAAyC,KAAK,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE5G,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAOD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAeD;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,KAAK,GAAG,IAAI,CAWrD;AASD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,IAAI,KAAK,GAAG,IAAI,CAapD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EAAE,cAAc,EACtB,QAAQ,GACT,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CA2FnC;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,kBAAkB,CAM9C;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,OAAO,GACrB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAuBxC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,EAAE,SAAS,CAAC;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,iBAAiB,CAAC;CAClC;AAwDD,wBAAgB,OAAO,CAAC,EACtB,IAAI,EACJ,QAAQ,EACR,QAAe,EACf,YAAoB,EACpB,EAAE,EAAE,OAAe,GACpB,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAkC5B"}
|
package/dist/client/index.js
CHANGED
|
@@ -7,6 +7,39 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
|
7
7
|
import { createContext, useContext, useState, useEffect, useRef, } from 'react';
|
|
8
8
|
import { createTogglyClient } from '../lib/toggly-client';
|
|
9
9
|
const TogglyContext = createContext(null);
|
|
10
|
+
/**
|
|
11
|
+
* Whether this bundle was built with `staticGating: true` (flags baked at build).
|
|
12
|
+
*/
|
|
13
|
+
export function isStaticGatingMode() {
|
|
14
|
+
return typeof __TOGGLY_STATIC_GATING__ !== 'undefined' && __TOGGLY_STATIC_GATING__ === true;
|
|
15
|
+
}
|
|
16
|
+
function sanitizeFlags(raw) {
|
|
17
|
+
if (!raw || typeof raw !== 'object') {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
const out = {};
|
|
21
|
+
for (const [key, value] of Object.entries(raw)) {
|
|
22
|
+
if (typeof value === 'boolean') {
|
|
23
|
+
out[key] = value;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return out;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Build-time flag map injected by the plugin when `staticGating` is enabled.
|
|
30
|
+
*/
|
|
31
|
+
export function readBuildFlagsSnapshot() {
|
|
32
|
+
if (typeof __TOGGLY_BUILD_FLAGS__ === 'undefined') {
|
|
33
|
+
if (typeof window !== 'undefined') {
|
|
34
|
+
const fromWindow = window.__TOGGLY_BUILD_FLAGS__;
|
|
35
|
+
if (fromWindow) {
|
|
36
|
+
return sanitizeFlags(fromWindow);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
return sanitizeFlags(__TOGGLY_BUILD_FLAGS__);
|
|
42
|
+
}
|
|
10
43
|
/**
|
|
11
44
|
* Name of the global the edge worker (cloudflare/worker) writes the resolved
|
|
12
45
|
* flag map onto. Kept in sync with `SNAPSHOT_GLOBAL` in
|
|
@@ -25,6 +58,9 @@ const EDGE_FLAGS_GLOBAL = '__TOGGLY_EDGE_FLAGS__';
|
|
|
25
58
|
* tampered global cannot smuggle unexpected types into the React tree.
|
|
26
59
|
*/
|
|
27
60
|
export function readEdgeFlagsSnapshot() {
|
|
61
|
+
if (isStaticGatingMode()) {
|
|
62
|
+
return readBuildFlagsSnapshot();
|
|
63
|
+
}
|
|
28
64
|
if (typeof window === 'undefined') {
|
|
29
65
|
return null;
|
|
30
66
|
}
|
|
@@ -32,13 +68,7 @@ export function readEdgeFlagsSnapshot() {
|
|
|
32
68
|
if (!raw || typeof raw !== 'object') {
|
|
33
69
|
return null;
|
|
34
70
|
}
|
|
35
|
-
|
|
36
|
-
for (const [key, value] of Object.entries(raw)) {
|
|
37
|
-
if (typeof value === 'boolean') {
|
|
38
|
-
out[key] = value;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return out;
|
|
71
|
+
return sanitizeFlags(raw);
|
|
42
72
|
}
|
|
43
73
|
/**
|
|
44
74
|
* TogglyProvider - React context provider for Toggly feature flags
|
|
@@ -67,27 +97,29 @@ export function TogglyProvider({ config: providedConfig, children, }) {
|
|
|
67
97
|
(typeof window !== 'undefined'
|
|
68
98
|
? window.__TOGGLY_CONFIG__ || {}
|
|
69
99
|
: {});
|
|
100
|
+
const staticGating = isStaticGatingMode();
|
|
101
|
+
const initialFlags = readBuildFlagsSnapshot() ?? readEdgeFlagsSnapshot() ?? {};
|
|
70
102
|
const [client] = useState(() => {
|
|
103
|
+
if (staticGating) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
71
106
|
// Ensure we have a valid config
|
|
72
107
|
if (!config || (!config.appKey && Object.keys(config).length === 0)) {
|
|
73
108
|
console.warn('[Toggly] No config provided. Please configure the plugin in docusaurus.config.js or pass config to TogglyProvider');
|
|
74
109
|
}
|
|
75
110
|
return createTogglyClient(config);
|
|
76
111
|
});
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
// post-edge-strip DOM: Feature components on first client render evaluate
|
|
80
|
-
// the same flag map the edge used, so they emit the same wrapper-or-null
|
|
81
|
-
// shape as the static HTML the browser received.
|
|
82
|
-
const [flags, setFlags] = useState(() => readEdgeFlagsSnapshot() ?? {});
|
|
83
|
-
const [isReady, setIsReady] = useState(() => readEdgeFlagsSnapshot() !== null);
|
|
112
|
+
const [flags, setFlags] = useState(() => initialFlags);
|
|
113
|
+
const [isReady, setIsReady] = useState(() => staticGating || readEdgeFlagsSnapshot() !== null);
|
|
84
114
|
const [error, setError] = useState(null);
|
|
85
115
|
// Keep a ref to the latest flags so the polling interval can detect changes
|
|
86
116
|
const flagsRef = useRef(flags);
|
|
87
117
|
flagsRef.current = flags;
|
|
88
118
|
useEffect(() => {
|
|
119
|
+
if (staticGating || !client) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
89
122
|
let pollTimer = null;
|
|
90
|
-
// Initialize client and load flags
|
|
91
123
|
client
|
|
92
124
|
.getFlags()
|
|
93
125
|
.then((loadedFlags) => {
|
|
@@ -117,8 +149,14 @@ export function TogglyProvider({ config: providedConfig, children, }) {
|
|
|
117
149
|
clearInterval(pollTimer);
|
|
118
150
|
}
|
|
119
151
|
};
|
|
120
|
-
}, [client]);
|
|
152
|
+
}, [client, staticGating, config.featureFlagsRefreshInterval]);
|
|
121
153
|
const getFlag = async (key, defaultValue) => {
|
|
154
|
+
if (staticGating) {
|
|
155
|
+
return flags[key] ?? defaultValue ?? false;
|
|
156
|
+
}
|
|
157
|
+
if (!client) {
|
|
158
|
+
return defaultValue ?? false;
|
|
159
|
+
}
|
|
122
160
|
return client.getFlag(key, defaultValue);
|
|
123
161
|
};
|
|
124
162
|
const value = {
|
|
@@ -221,8 +259,17 @@ function getWrapperStyle(element) {
|
|
|
221
259
|
}
|
|
222
260
|
export function Feature({ flag, children, fallback = null, defaultValue = false, as: Element = 'div', }) {
|
|
223
261
|
const wrapperStyle = getWrapperStyle(Element);
|
|
224
|
-
|
|
225
|
-
//
|
|
262
|
+
const buildFlags = readBuildFlagsSnapshot();
|
|
263
|
+
// Build-time static gating: evaluate flags during SSG and on the client
|
|
264
|
+
// using the same baked-in map — no runtime API, no flash.
|
|
265
|
+
if (isStaticGatingMode() && buildFlags) {
|
|
266
|
+
const enabled = buildFlags[flag] ?? defaultValue;
|
|
267
|
+
if (!enabled) {
|
|
268
|
+
return _jsx(_Fragment, { children: fallback });
|
|
269
|
+
}
|
|
270
|
+
return _jsx(Element, { style: wrapperStyle, children: children });
|
|
271
|
+
}
|
|
272
|
+
// Edge mode: SSR emits data-feature wrappers for the worker to strip.
|
|
226
273
|
if (isSSR) {
|
|
227
274
|
return (_jsx(Element, { "data-feature": flag, style: wrapperStyle, children: children }));
|
|
228
275
|
}
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAc,EACZ,aAAa,EACb,UAAU,EACV,QAAQ,EACR,SAAS,EAET,MAAM,GAEP,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,kBAAkB,EAAoD,MAAM,sBAAsB,CAAC;AAc5G,MAAM,aAAa,GAAG,aAAa,CAA4B,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -55,6 +55,18 @@ export interface TogglyPluginOptions {
|
|
|
55
55
|
* Set this to take full manual control of discovery.
|
|
56
56
|
*/
|
|
57
57
|
contentRoots?: TogglyContentRoot[];
|
|
58
|
+
/**
|
|
59
|
+
* When true, fetch flags once at build time and bake gating into the static
|
|
60
|
+
* HTML. No runtime Toggly API calls, WebSocket, or edge worker required.
|
|
61
|
+
* Requires `TOGGLY_APP_KEY` (and related env) in the build environment.
|
|
62
|
+
*/
|
|
63
|
+
staticGating?: boolean;
|
|
64
|
+
/** When true, verify ES256 signed envelopes via JWKS before applying flags. */
|
|
65
|
+
verifySignatures?: boolean;
|
|
66
|
+
/** Optional allow-list of JWKS kid values when verifySignatures is enabled. */
|
|
67
|
+
allowedKeyIds?: string[];
|
|
68
|
+
/** Reject envelopes older than this many seconds; unset disables freshness. */
|
|
69
|
+
maxSignatureAgeSeconds?: number;
|
|
58
70
|
}
|
|
59
71
|
/**
|
|
60
72
|
* Docusaurus plugin for Toggly feature flag gating
|
|
@@ -87,6 +99,6 @@ export declare function resolveContentRoots(context: LoadContext, contentRootsOv
|
|
|
87
99
|
* Exported for testing.
|
|
88
100
|
*/
|
|
89
101
|
export declare function discoverContentRootsFromConfig(context: LoadContext): TogglyContentRoot[];
|
|
90
|
-
export { TogglyProvider, useToggly, useFlag, Feature } from './client';
|
|
102
|
+
export { TogglyProvider, useToggly, useFlag, Feature, isStaticGatingMode, readBuildFlagsSnapshot } from './client';
|
|
91
103
|
export type { TogglyProviderProps, TogglyContextValue, FeatureProps, } from './client';
|
|
92
104
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAU7D;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,mFAAmF;IACnF,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAmBD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,mBAAmB,GAC3B,MAAM,CAsRR;AAGD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EACpB,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,GACzC,iBAAiB,EAAE,CAkBrB;AAoBD;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,WAAW,GAAG,iBAAiB,EAAE,CAsBxF;AAmGD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACnH,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,14 +8,18 @@ import * as fs from 'fs';
|
|
|
8
8
|
import * as path from 'path';
|
|
9
9
|
import { glob } from 'glob';
|
|
10
10
|
import webpack from 'webpack';
|
|
11
|
+
import { fetchBuildTimeFlags } from './lib/fetch-build-flags';
|
|
12
|
+
import { routeToHtmlPath } from './lib/route-to-html-path';
|
|
13
|
+
import { serializeJsonForInlineScript } from '@ops-ai/toggly-hooks-types';
|
|
11
14
|
/**
|
|
12
15
|
* Docusaurus plugin for Toggly feature flag gating
|
|
13
16
|
*/
|
|
14
17
|
export default function togglyPlugin(context, options) {
|
|
15
18
|
const { baseURI = 'https://definitions.toggly.io', appKey, environment = 'Production', flagDefaults = {}, featureFlagsRefreshInterval = 3 * 60 * 1000, isDebug = false, connectTimeout = 5 * 1000, identity, renderAllDuringBuild = true, // Default to true for better DX
|
|
16
|
-
contentRoots, } = options;
|
|
19
|
+
contentRoots, staticGating = false, verifySignatures = false, allowedKeyIds, maxSignatureAgeSeconds, } = options;
|
|
17
20
|
// Store page feature mapping for postBuild
|
|
18
21
|
let pageFeatureMapping = {};
|
|
22
|
+
let buildTimeFlags = {};
|
|
19
23
|
return {
|
|
20
24
|
name: 'toggly-plugin',
|
|
21
25
|
/**
|
|
@@ -34,6 +38,10 @@ export default function togglyPlugin(context, options) {
|
|
|
34
38
|
connectTimeout,
|
|
35
39
|
identity,
|
|
36
40
|
renderAllDuringBuild,
|
|
41
|
+
staticGating,
|
|
42
|
+
verifySignatures,
|
|
43
|
+
allowedKeyIds,
|
|
44
|
+
maxSignatureAgeSeconds,
|
|
37
45
|
},
|
|
38
46
|
};
|
|
39
47
|
},
|
|
@@ -55,9 +63,23 @@ export default function togglyPlugin(context, options) {
|
|
|
55
63
|
.join(', ')}`);
|
|
56
64
|
}
|
|
57
65
|
pageFeatureMapping = await extractFromFiles(context, roots);
|
|
66
|
+
if (pluginConfig.staticGating) {
|
|
67
|
+
buildTimeFlags = await fetchBuildTimeFlags({
|
|
68
|
+
baseURI: pluginConfig.baseURI,
|
|
69
|
+
appKey: pluginConfig.appKey,
|
|
70
|
+
environment: pluginConfig.environment,
|
|
71
|
+
flagDefaults: pluginConfig.flagDefaults,
|
|
72
|
+
connectTimeout: pluginConfig.connectTimeout,
|
|
73
|
+
isDebug: pluginConfig.isDebug,
|
|
74
|
+
verifySignatures: pluginConfig.verifySignatures,
|
|
75
|
+
allowedKeyIds: pluginConfig.allowedKeyIds,
|
|
76
|
+
maxSignatureAgeSeconds: pluginConfig.maxSignatureAgeSeconds,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
58
79
|
// Store data for configureWebpack and postBuild
|
|
59
80
|
this.__togglyPluginData = {
|
|
60
81
|
pageFeatureMapping,
|
|
82
|
+
buildTimeFlags,
|
|
61
83
|
config: pluginConfig,
|
|
62
84
|
};
|
|
63
85
|
if (isDebug) {
|
|
@@ -87,32 +109,72 @@ export default function togglyPlugin(context, options) {
|
|
|
87
109
|
if (!pluginData) {
|
|
88
110
|
return;
|
|
89
111
|
}
|
|
90
|
-
const { pageFeatureMapping: mapping } = pluginData;
|
|
112
|
+
const { pageFeatureMapping: mapping, buildTimeFlags: flags, config: pluginConfig, } = pluginData;
|
|
91
113
|
// Write manifest to build output directory
|
|
92
114
|
const manifestPath = path.join(outDir, 'toggly-page-features.json');
|
|
93
115
|
fs.writeFileSync(manifestPath, JSON.stringify(mapping, null, 2), 'utf-8');
|
|
94
116
|
if (isDebug) {
|
|
95
117
|
console.log(`[Toggly Plugin] Generated page feature manifest: ${manifestPath}`);
|
|
96
118
|
}
|
|
119
|
+
if (!pluginConfig.staticGating) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const notFoundPath = path.join(outDir, '404.html');
|
|
123
|
+
const notFoundHtml = fs.existsSync(notFoundPath)
|
|
124
|
+
? fs.readFileSync(notFoundPath, 'utf-8')
|
|
125
|
+
: '<!DOCTYPE html><html><body><h1>404 Not Found</h1></body></html>';
|
|
126
|
+
let gatedPageCount = 0;
|
|
127
|
+
for (const [route, featureKey] of Object.entries(mapping)) {
|
|
128
|
+
if (flags[featureKey] === true) {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
const htmlPath = routeToHtmlPath(outDir, route);
|
|
132
|
+
if (!fs.existsSync(htmlPath)) {
|
|
133
|
+
if (isDebug) {
|
|
134
|
+
console.warn(`[Toggly Plugin] staticGating: no HTML for gated route ${route} (${htmlPath})`);
|
|
135
|
+
}
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
fs.writeFileSync(htmlPath, notFoundHtml, 'utf-8');
|
|
139
|
+
gatedPageCount++;
|
|
140
|
+
}
|
|
141
|
+
if (isDebug && gatedPageCount > 0) {
|
|
142
|
+
console.log(`[Toggly Plugin] staticGating: replaced ${gatedPageCount} disabled page(s) with 404 HTML`);
|
|
143
|
+
}
|
|
97
144
|
},
|
|
98
145
|
/**
|
|
99
146
|
* Configure Webpack: Inject Toggly config into client bundle
|
|
100
147
|
*/
|
|
101
148
|
configureWebpack(config, isServer) {
|
|
102
|
-
if (isServer) {
|
|
103
|
-
return {};
|
|
104
|
-
}
|
|
105
|
-
// Get stored data from contentLoaded
|
|
106
149
|
const pluginData = this.__togglyPluginData;
|
|
107
150
|
if (!pluginData) {
|
|
108
151
|
return {};
|
|
109
152
|
}
|
|
110
|
-
const { pageFeatureMapping, config: pluginConfig } = pluginData;
|
|
153
|
+
const { pageFeatureMapping, buildTimeFlags: flags, config: pluginConfig, } = pluginData;
|
|
154
|
+
// Static gating must define flags on both server and client bundles so
|
|
155
|
+
// Docusaurus SSG emits the correct HTML during `npm run build`.
|
|
156
|
+
if (pluginConfig.staticGating) {
|
|
157
|
+
return {
|
|
158
|
+
plugins: [
|
|
159
|
+
new webpack.DefinePlugin({
|
|
160
|
+
__TOGGLY_CONFIG__: JSON.stringify(pluginConfig),
|
|
161
|
+
__TOGGLY_PAGE_FEATURES__: JSON.stringify(pageFeatureMapping),
|
|
162
|
+
__TOGGLY_BUILD_FLAGS__: JSON.stringify(flags),
|
|
163
|
+
__TOGGLY_STATIC_GATING__: JSON.stringify(true),
|
|
164
|
+
}),
|
|
165
|
+
],
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
if (isServer) {
|
|
169
|
+
return {};
|
|
170
|
+
}
|
|
111
171
|
return {
|
|
112
172
|
plugins: [
|
|
113
173
|
new webpack.DefinePlugin({
|
|
114
174
|
__TOGGLY_CONFIG__: JSON.stringify(pluginConfig),
|
|
115
175
|
__TOGGLY_PAGE_FEATURES__: JSON.stringify(pageFeatureMapping),
|
|
176
|
+
__TOGGLY_BUILD_FLAGS__: JSON.stringify({}),
|
|
177
|
+
__TOGGLY_STATIC_GATING__: JSON.stringify(false),
|
|
116
178
|
}),
|
|
117
179
|
],
|
|
118
180
|
};
|
|
@@ -125,30 +187,37 @@ export default function togglyPlugin(context, options) {
|
|
|
125
187
|
if (!pluginData) {
|
|
126
188
|
return {};
|
|
127
189
|
}
|
|
128
|
-
const { config: pluginConfig, pageFeatureMapping } = pluginData;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
190
|
+
const { config: pluginConfig, pageFeatureMapping, buildTimeFlags: flags, } = pluginData;
|
|
191
|
+
// Keep in sync with @ops-ai/toggly-hooks-types serializeJsonForInlineScript
|
|
192
|
+
const headTags = [
|
|
193
|
+
{
|
|
194
|
+
tagName: 'script',
|
|
195
|
+
innerHTML: `window.__TOGGLY_CONFIG__ = ${serializeJsonForInlineScript(pluginConfig)};`,
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
tagName: 'script',
|
|
199
|
+
innerHTML: `window.__TOGGLY_PAGE_FEATURES__ = ${serializeJsonForInlineScript(pageFeatureMapping)};`,
|
|
200
|
+
},
|
|
201
|
+
];
|
|
202
|
+
if (pluginConfig.staticGating) {
|
|
203
|
+
headTags.push({
|
|
204
|
+
tagName: 'script',
|
|
205
|
+
innerHTML: `window.__TOGGLY_BUILD_FLAGS__ = ${serializeJsonForInlineScript(flags)};`,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
return { headTags };
|
|
141
209
|
},
|
|
142
210
|
/**
|
|
143
211
|
* Get client modules: Import the client setup module
|
|
144
212
|
*/
|
|
145
213
|
getClientModules() {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
path.resolve(__dirname, './client/nav-gate')
|
|
151
|
-
|
|
214
|
+
const pluginData = this.__togglyPluginData;
|
|
215
|
+
const modules = [path.resolve(__dirname, './client/setup')];
|
|
216
|
+
// Runtime navbar filtering fetches flags again — skip in staticGating mode.
|
|
217
|
+
if (!pluginData?.config?.staticGating) {
|
|
218
|
+
modules.push(path.resolve(__dirname, './client/nav-gate'));
|
|
219
|
+
}
|
|
220
|
+
return modules;
|
|
152
221
|
},
|
|
153
222
|
};
|
|
154
223
|
}
|
|
@@ -301,5 +370,5 @@ async function extractFromRoot(context, root) {
|
|
|
301
370
|
return pageFeatureMapping;
|
|
302
371
|
}
|
|
303
372
|
// Export React components and hooks
|
|
304
|
-
export { TogglyProvider, useToggly, useFlag, Feature } from './client';
|
|
373
|
+
export { TogglyProvider, useToggly, useFlag, Feature, isStaticGatingMode, readBuildFlagsSnapshot } from './client';
|
|
305
374
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-side flag fetch for static (build-time) gating.
|
|
3
|
+
* Used only from the Docusaurus plugin during `contentLoaded` / `postBuild`.
|
|
4
|
+
*/
|
|
5
|
+
import type { Flags } from './toggly-client';
|
|
6
|
+
export interface BuildFlagFetchOptions {
|
|
7
|
+
baseURI?: string;
|
|
8
|
+
appKey?: string;
|
|
9
|
+
environment?: string;
|
|
10
|
+
flagDefaults?: Record<string, boolean>;
|
|
11
|
+
connectTimeout?: number;
|
|
12
|
+
isDebug?: boolean;
|
|
13
|
+
/** When true, verify ES256 signed envelopes via JWKS before applying flags. */
|
|
14
|
+
verifySignatures?: boolean;
|
|
15
|
+
allowedKeyIds?: string[];
|
|
16
|
+
maxSignatureAgeSeconds?: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Fetch the evaluated flag map from Toggly at build time.
|
|
20
|
+
* Merges `flagDefaults` underneath API values so callers can supply fallbacks.
|
|
21
|
+
*/
|
|
22
|
+
export declare function fetchBuildTimeFlags(options: BuildFlagFetchOptions): Promise<Flags>;
|
|
23
|
+
//# sourceMappingURL=fetch-build-flags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-build-flags.d.ts","sourceRoot":"","sources":["../../src/lib/fetch-build-flags.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAO7C,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,KAAK,CAAC,CAuEhB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { parseEvaluatedResponseBody, readResponseBody, unwrapDefsPayload, } from './signed-response.js';
|
|
2
|
+
/**
|
|
3
|
+
* Fetch the evaluated flag map from Toggly at build time.
|
|
4
|
+
* Merges `flagDefaults` underneath API values so callers can supply fallbacks.
|
|
5
|
+
*/
|
|
6
|
+
export async function fetchBuildTimeFlags(options) {
|
|
7
|
+
const { baseURI = 'https://definitions.toggly.io', appKey, environment = 'Production', flagDefaults = {}, connectTimeout = 5_000, isDebug = false, verifySignatures = false, allowedKeyIds, maxSignatureAgeSeconds, } = options;
|
|
8
|
+
const merged = { ...flagDefaults };
|
|
9
|
+
if (!appKey) {
|
|
10
|
+
if (isDebug) {
|
|
11
|
+
console.warn('[Toggly Plugin] staticGating: TOGGLY_APP_KEY missing; using flagDefaults only');
|
|
12
|
+
}
|
|
13
|
+
return merged;
|
|
14
|
+
}
|
|
15
|
+
const baseUrl = baseURI.replace(/\/$/, '');
|
|
16
|
+
const url = `${baseUrl}/evaluated-signed/${encodeURIComponent(appKey)}/${encodeURIComponent(environment)}`;
|
|
17
|
+
const controller = new AbortController();
|
|
18
|
+
const timer = setTimeout(() => controller.abort(), connectTimeout);
|
|
19
|
+
try {
|
|
20
|
+
const response = await fetch(url, {
|
|
21
|
+
method: 'GET',
|
|
22
|
+
headers: { Accept: 'application/json' },
|
|
23
|
+
signal: controller.signal,
|
|
24
|
+
});
|
|
25
|
+
if (!response.ok) {
|
|
26
|
+
throw new Error(`Toggly API returned ${response.status}`);
|
|
27
|
+
}
|
|
28
|
+
const bodyText = await readResponseBody(response);
|
|
29
|
+
const parsed = await parseEvaluatedResponseBody(bodyText, {
|
|
30
|
+
verifySignatures,
|
|
31
|
+
baseURI,
|
|
32
|
+
allowedKeyIds,
|
|
33
|
+
maxSignatureAgeSeconds,
|
|
34
|
+
headers: { Accept: 'application/json' },
|
|
35
|
+
});
|
|
36
|
+
const apiFlags = (verifySignatures ? parsed : unwrapDefsPayload(parsed));
|
|
37
|
+
for (const [key, value] of Object.entries(apiFlags)) {
|
|
38
|
+
if (typeof value === 'boolean') {
|
|
39
|
+
merged[key] = value;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (isDebug) {
|
|
43
|
+
const enabled = Object.entries(merged).filter(([, v]) => v).length;
|
|
44
|
+
console.log(`[Toggly Plugin] staticGating: loaded ${Object.keys(merged).length} flags (${enabled} enabled)`);
|
|
45
|
+
}
|
|
46
|
+
return merged;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
console.error('[Toggly Plugin] staticGating: failed to fetch flags:', error);
|
|
50
|
+
return merged;
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
clearTimeout(timer);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=fetch-build-flags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-build-flags.js","sourceRoot":"","sources":["../../src/lib/fetch-build-flags.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-to-html-path.d.ts","sourceRoot":"","sources":["../../src/lib/route-to-html-path.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
/**
|
|
3
|
+
* Map a Docusaurus route (e.g. `/sdks/java`) to a built HTML file path
|
|
4
|
+
* under the output directory.
|
|
5
|
+
*/
|
|
6
|
+
export function routeToHtmlPath(outDir, route) {
|
|
7
|
+
const normalized = route === '/' ? '' : route.replace(/^\/+/, '').replace(/\/+$/, '');
|
|
8
|
+
if (!normalized) {
|
|
9
|
+
return path.join(outDir, 'index.html');
|
|
10
|
+
}
|
|
11
|
+
return path.join(outDir, normalized, 'index.html');
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=route-to-html-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-to-html-path.js","sourceRoot":"","sources":["../../src/lib/route-to-html-path.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,KAAa;IAC3D,MAAM,UAAU,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-export shared evaluated-signed response helpers.
|
|
3
|
+
*/
|
|
4
|
+
export { readResponseBody, parseEvaluatedResponseBody, type VerifySignatureOptions, } from '@ops-ai/toggly-signed-defs';
|
|
5
|
+
/** Unwrap `{ defs }` when present; otherwise treat payload as the defs map. */
|
|
6
|
+
export declare function unwrapDefsPayload(payload: unknown): Record<string, boolean>;
|
|
7
|
+
//# sourceMappingURL=signed-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signed-response.d.ts","sourceRoot":"","sources":["../../src/lib/signed-response.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,4BAA4B,CAAA;AAGnC,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM3E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-export shared evaluated-signed response helpers.
|
|
3
|
+
*/
|
|
4
|
+
export { readResponseBody, parseEvaluatedResponseBody, } from '@ops-ai/toggly-signed-defs';
|
|
5
|
+
import { unwrapDefsPayload as unwrapShared } from '@ops-ai/toggly-signed-defs';
|
|
6
|
+
/** Unwrap `{ defs }` when present; otherwise treat payload as the defs map. */
|
|
7
|
+
export function unwrapDefsPayload(payload) {
|
|
8
|
+
const unwrapped = unwrapShared(payload);
|
|
9
|
+
if (unwrapped && typeof unwrapped === 'object') {
|
|
10
|
+
return unwrapped;
|
|
11
|
+
}
|
|
12
|
+
return {};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=signed-response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signed-response.js","sourceRoot":"","sources":["../../src/lib/signed-response.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,gBAAgB,EAChB,0BAA0B,GAE3B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,iBAAiB,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9E,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACvC,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO,SAAoC,CAAA;IAC7C,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC"}
|
|
@@ -29,6 +29,12 @@ export interface TogglyConfig {
|
|
|
29
29
|
fetch?: typeof fetch;
|
|
30
30
|
/** User identity for targeting (optional) */
|
|
31
31
|
identity?: string;
|
|
32
|
+
/** When true, verify ES256 signed envelopes via JWKS before applying flags. */
|
|
33
|
+
verifySignatures?: boolean;
|
|
34
|
+
/** Optional allow-list of JWKS kid values when verifySignatures is enabled. */
|
|
35
|
+
allowedKeyIds?: string[];
|
|
36
|
+
/** Reject envelopes older than this many seconds; unset disables freshness. */
|
|
37
|
+
maxSignatureAgeSeconds?: number;
|
|
32
38
|
}
|
|
33
39
|
/**
|
|
34
40
|
* Map of feature flag keys to their boolean values
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggly-client.d.ts","sourceRoot":"","sources":["../../src/lib/toggly-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"toggly-client.d.ts","sourceRoot":"","sources":["../../src/lib/toggly-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,mFAAmF;IACnF,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IAE3B;;;;;OAKG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/D;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B;;;;OAIG;IACH,cAAc,IAAI,IAAI,CAAC;IAEvB;;OAEG;IACH,aAAa,IAAI,IAAI,CAAC;CACvB;AAOD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,YAAiB,GAAG,YAAY,CAqS1E"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Bundled directly into the Docusaurus plugin to avoid module resolution issues.
|
|
5
5
|
* Original source: @ops-ai/toggly-client-core
|
|
6
6
|
*/
|
|
7
|
+
import { parseEvaluatedResponseBody, readResponseBody, unwrapDefsPayload, } from './signed-response.js';
|
|
7
8
|
/**
|
|
8
9
|
* Creates a new Toggly client instance
|
|
9
10
|
*
|
|
@@ -13,7 +14,7 @@
|
|
|
13
14
|
export function createTogglyClient(config = {}) {
|
|
14
15
|
const { baseURI = 'https://definitions.toggly.io', appKey, environment = 'Production', flagDefaults = {}, featureFlagsRefreshInterval = 3 * 60 * 1000, // 3 minutes
|
|
15
16
|
isDebug = false, connectTimeout = 5 * 1000, // 5 seconds
|
|
16
|
-
fetch: fetchImpl, identity, } = config;
|
|
17
|
+
fetch: fetchImpl, identity, verifySignatures = false, allowedKeyIds, maxSignatureAgeSeconds, } = config;
|
|
17
18
|
// Resolve fetch implementation: use provided, then globalThis.fetch, then throw
|
|
18
19
|
let resolvedFetch;
|
|
19
20
|
if (fetchImpl) {
|
|
@@ -80,8 +81,16 @@ export function createTogglyClient(config = {}) {
|
|
|
80
81
|
if (!response.ok) {
|
|
81
82
|
throw new Error(`Failed to fetch flags from Toggly API: ${response.status} ${response.statusText}`);
|
|
82
83
|
}
|
|
83
|
-
const
|
|
84
|
-
const
|
|
84
|
+
const bodyText = await readResponseBody(response);
|
|
85
|
+
const parsed = await parseEvaluatedResponseBody(bodyText, {
|
|
86
|
+
verifySignatures,
|
|
87
|
+
baseURI,
|
|
88
|
+
allowedKeyIds,
|
|
89
|
+
maxSignatureAgeSeconds,
|
|
90
|
+
headers: { Accept: 'application/json' },
|
|
91
|
+
fetchImpl: resolvedFetch,
|
|
92
|
+
});
|
|
93
|
+
const flags = (verifySignatures ? parsed : unwrapDefsPayload(parsed));
|
|
85
94
|
if (isDebug) {
|
|
86
95
|
console.log(`Toggly.fetchFeatureFlags - ${JSON.stringify(flags)}`);
|
|
87
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggly-client.js","sourceRoot":"","sources":["../../src/lib/toggly-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"toggly-client.js","sourceRoot":"","sources":["../../src/lib/toggly-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ops-ai/toggly-docusaurus-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Docusaurus plugin and React bindings for Toggly feature flag gating",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -48,12 +48,14 @@
|
|
|
48
48
|
},
|
|
49
49
|
"homepage": "https://github.com/ops-ai/Toggly.FeatureManagement#readme",
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"
|
|
51
|
+
"@ops-ai/toggly-hooks-types": "file:../../../toggly-hooks-types",
|
|
52
|
+
"glob": "^10.3.10",
|
|
53
|
+
"@ops-ai/toggly-signed-defs": "file:../../../toggly-signed-defs"
|
|
52
54
|
},
|
|
53
55
|
"peerDependencies": {
|
|
54
56
|
"@docusaurus/core": "^3.0.0",
|
|
55
|
-
"react": "^18.0.0",
|
|
56
|
-
"react-dom": "^18.0.0"
|
|
57
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
58
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
57
59
|
},
|
|
58
60
|
"devDependencies": {
|
|
59
61
|
"@docusaurus/core": "^3.9.2",
|