@ops-ai/toggly-docusaurus-plugin 0.5.1 → 0.6.1

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.
@@ -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;AAWD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,IAAI,KAAK,GAAG,IAAI,CAepD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EAAE,cAAc,EACtB,QAAQ,GACT,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAiFnC;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,CAwB5B"}
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"}
@@ -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
- const out = {};
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
- // Seed from `window.__TOGGLY_EDGE_FLAGS__` synchronously when the edge
78
- // worker has injected it. This is what makes hydration match the
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
- // During SSR, render children with data-feature attribute
225
- // The Cloudflare Worker will strip disabled features at the edge
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.tsx"],"names":[],"mappings":"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"}
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,12 @@ 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;
58
64
  }
59
65
  /**
60
66
  * Docusaurus plugin for Toggly feature flag gating
@@ -87,6 +93,6 @@ export declare function resolveContentRoots(context: LoadContext, contentRootsOv
87
93
  * Exported for testing.
88
94
  */
89
95
  export declare function discoverContentRootsFromConfig(context: LoadContext): TogglyContentRoot[];
90
- export { TogglyProvider, useToggly, useFlag, Feature } from './client';
96
+ export { TogglyProvider, useToggly, useFlag, Feature, isStaticGatingMode, readBuildFlagsSnapshot } from './client';
91
97
  export type { TogglyProviderProps, TogglyContextValue, FeatureProps, } from './client';
92
98
  //# sourceMappingURL=index.d.ts.map
@@ -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,EAA8B,MAAM,mBAAmB,CAAC;AAMzF;;;;;;;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;CACpC;AAmBD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,mBAAmB,GAC3B,MAAM,CAoLR;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,MAAM,UAAU,CAAC;AACvE,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAC"}
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;AAS7D;;;;;;;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;CACxB;AAmBD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,mBAAmB,GAC3B,MAAM,CA4QR;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,17 @@ 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';
11
13
  /**
12
14
  * Docusaurus plugin for Toggly feature flag gating
13
15
  */
14
16
  export default function togglyPlugin(context, options) {
15
17
  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;
18
+ contentRoots, staticGating = false, } = options;
17
19
  // Store page feature mapping for postBuild
18
20
  let pageFeatureMapping = {};
21
+ let buildTimeFlags = {};
19
22
  return {
20
23
  name: 'toggly-plugin',
21
24
  /**
@@ -34,6 +37,7 @@ export default function togglyPlugin(context, options) {
34
37
  connectTimeout,
35
38
  identity,
36
39
  renderAllDuringBuild,
40
+ staticGating,
37
41
  },
38
42
  };
39
43
  },
@@ -55,9 +59,20 @@ export default function togglyPlugin(context, options) {
55
59
  .join(', ')}`);
56
60
  }
57
61
  pageFeatureMapping = await extractFromFiles(context, roots);
62
+ if (pluginConfig.staticGating) {
63
+ buildTimeFlags = await fetchBuildTimeFlags({
64
+ baseURI: pluginConfig.baseURI,
65
+ appKey: pluginConfig.appKey,
66
+ environment: pluginConfig.environment,
67
+ flagDefaults: pluginConfig.flagDefaults,
68
+ connectTimeout: pluginConfig.connectTimeout,
69
+ isDebug: pluginConfig.isDebug,
70
+ });
71
+ }
58
72
  // Store data for configureWebpack and postBuild
59
73
  this.__togglyPluginData = {
60
74
  pageFeatureMapping,
75
+ buildTimeFlags,
61
76
  config: pluginConfig,
62
77
  };
63
78
  if (isDebug) {
@@ -87,32 +102,72 @@ export default function togglyPlugin(context, options) {
87
102
  if (!pluginData) {
88
103
  return;
89
104
  }
90
- const { pageFeatureMapping: mapping } = pluginData;
105
+ const { pageFeatureMapping: mapping, buildTimeFlags: flags, config: pluginConfig, } = pluginData;
91
106
  // Write manifest to build output directory
92
107
  const manifestPath = path.join(outDir, 'toggly-page-features.json');
93
108
  fs.writeFileSync(manifestPath, JSON.stringify(mapping, null, 2), 'utf-8');
94
109
  if (isDebug) {
95
110
  console.log(`[Toggly Plugin] Generated page feature manifest: ${manifestPath}`);
96
111
  }
112
+ if (!pluginConfig.staticGating) {
113
+ return;
114
+ }
115
+ const notFoundPath = path.join(outDir, '404.html');
116
+ const notFoundHtml = fs.existsSync(notFoundPath)
117
+ ? fs.readFileSync(notFoundPath, 'utf-8')
118
+ : '<!DOCTYPE html><html><body><h1>404 Not Found</h1></body></html>';
119
+ let gatedPageCount = 0;
120
+ for (const [route, featureKey] of Object.entries(mapping)) {
121
+ if (flags[featureKey] === true) {
122
+ continue;
123
+ }
124
+ const htmlPath = routeToHtmlPath(outDir, route);
125
+ if (!fs.existsSync(htmlPath)) {
126
+ if (isDebug) {
127
+ console.warn(`[Toggly Plugin] staticGating: no HTML for gated route ${route} (${htmlPath})`);
128
+ }
129
+ continue;
130
+ }
131
+ fs.writeFileSync(htmlPath, notFoundHtml, 'utf-8');
132
+ gatedPageCount++;
133
+ }
134
+ if (isDebug && gatedPageCount > 0) {
135
+ console.log(`[Toggly Plugin] staticGating: replaced ${gatedPageCount} disabled page(s) with 404 HTML`);
136
+ }
97
137
  },
98
138
  /**
99
139
  * Configure Webpack: Inject Toggly config into client bundle
100
140
  */
101
141
  configureWebpack(config, isServer) {
102
- if (isServer) {
103
- return {};
104
- }
105
- // Get stored data from contentLoaded
106
142
  const pluginData = this.__togglyPluginData;
107
143
  if (!pluginData) {
108
144
  return {};
109
145
  }
110
- const { pageFeatureMapping, config: pluginConfig } = pluginData;
146
+ const { pageFeatureMapping, buildTimeFlags: flags, config: pluginConfig, } = pluginData;
147
+ // Static gating must define flags on both server and client bundles so
148
+ // Docusaurus SSG emits the correct HTML during `npm run build`.
149
+ if (pluginConfig.staticGating) {
150
+ return {
151
+ plugins: [
152
+ new webpack.DefinePlugin({
153
+ __TOGGLY_CONFIG__: JSON.stringify(pluginConfig),
154
+ __TOGGLY_PAGE_FEATURES__: JSON.stringify(pageFeatureMapping),
155
+ __TOGGLY_BUILD_FLAGS__: JSON.stringify(flags),
156
+ __TOGGLY_STATIC_GATING__: JSON.stringify(true),
157
+ }),
158
+ ],
159
+ };
160
+ }
161
+ if (isServer) {
162
+ return {};
163
+ }
111
164
  return {
112
165
  plugins: [
113
166
  new webpack.DefinePlugin({
114
167
  __TOGGLY_CONFIG__: JSON.stringify(pluginConfig),
115
168
  __TOGGLY_PAGE_FEATURES__: JSON.stringify(pageFeatureMapping),
169
+ __TOGGLY_BUILD_FLAGS__: JSON.stringify({}),
170
+ __TOGGLY_STATIC_GATING__: JSON.stringify(false),
116
171
  }),
117
172
  ],
118
173
  };
@@ -125,30 +180,36 @@ export default function togglyPlugin(context, options) {
125
180
  if (!pluginData) {
126
181
  return {};
127
182
  }
128
- const { config: pluginConfig, pageFeatureMapping } = pluginData;
129
- return {
130
- headTags: [
131
- {
132
- tagName: 'script',
133
- innerHTML: `window.__TOGGLY_CONFIG__ = ${JSON.stringify(pluginConfig)};`,
134
- },
135
- {
136
- tagName: 'script',
137
- innerHTML: `window.__TOGGLY_PAGE_FEATURES__ = ${JSON.stringify(pageFeatureMapping)};`,
138
- },
139
- ],
140
- };
183
+ const { config: pluginConfig, pageFeatureMapping, buildTimeFlags: flags, } = pluginData;
184
+ const headTags = [
185
+ {
186
+ tagName: 'script',
187
+ innerHTML: `window.__TOGGLY_CONFIG__ = ${JSON.stringify(pluginConfig)};`,
188
+ },
189
+ {
190
+ tagName: 'script',
191
+ innerHTML: `window.__TOGGLY_PAGE_FEATURES__ = ${JSON.stringify(pageFeatureMapping)};`,
192
+ },
193
+ ];
194
+ if (pluginConfig.staticGating) {
195
+ headTags.push({
196
+ tagName: 'script',
197
+ innerHTML: `window.__TOGGLY_BUILD_FLAGS__ = ${JSON.stringify(flags)};`,
198
+ });
199
+ }
200
+ return { headTags };
141
201
  },
142
202
  /**
143
203
  * Get client modules: Import the client setup module
144
204
  */
145
205
  getClientModules() {
146
- // Return path relative to the dist directory
147
- // Both index.js and client/setup.js are in dist/
148
- return [
149
- path.resolve(__dirname, './client/setup'),
150
- path.resolve(__dirname, './client/nav-gate'),
151
- ];
206
+ const pluginData = this.__togglyPluginData;
207
+ const modules = [path.resolve(__dirname, './client/setup')];
208
+ // Runtime navbar filtering fetches flags again — skip in staticGating mode.
209
+ if (!pluginData?.config?.staticGating) {
210
+ modules.push(path.resolve(__dirname, './client/nav-gate'));
211
+ }
212
+ return modules;
152
213
  },
153
214
  };
154
215
  }
@@ -301,5 +362,5 @@ async function extractFromRoot(context, root) {
301
362
  return pageFeatureMapping;
302
363
  }
303
364
  // Export React components and hooks
304
- export { TogglyProvider, useToggly, useFlag, Feature } from './client';
365
+ export { TogglyProvider, useToggly, useFlag, Feature, isStaticGatingMode, readBuildFlagsSnapshot } from './client';
305
366
  //# 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,19 @@
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
+ }
14
+ /**
15
+ * Fetch the evaluated flag map from Toggly at build time.
16
+ * Merges `flagDefaults` underneath API values so callers can supply fallbacks.
17
+ */
18
+ export declare function fetchBuildTimeFlags(options: BuildFlagFetchOptions): Promise<Flags>;
19
+ //# 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;AAE7C,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;CACnB;AAOD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,KAAK,CAAC,CA4DhB"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Fetch the evaluated flag map from Toggly at build time.
3
+ * Merges `flagDefaults` underneath API values so callers can supply fallbacks.
4
+ */
5
+ export async function fetchBuildTimeFlags(options) {
6
+ const { baseURI = 'https://definitions.toggly.io', appKey, environment = 'Production', flagDefaults = {}, connectTimeout = 5_000, isDebug = false, } = options;
7
+ const merged = { ...flagDefaults };
8
+ if (!appKey) {
9
+ if (isDebug) {
10
+ console.warn('[Toggly Plugin] staticGating: TOGGLY_APP_KEY missing; using flagDefaults only');
11
+ }
12
+ return merged;
13
+ }
14
+ const baseUrl = baseURI.replace(/\/$/, '');
15
+ const url = `${baseUrl}/evaluated-signed/${encodeURIComponent(appKey)}/${encodeURIComponent(environment)}`;
16
+ const controller = new AbortController();
17
+ const timer = setTimeout(() => controller.abort(), connectTimeout);
18
+ try {
19
+ const response = await fetch(url, {
20
+ method: 'GET',
21
+ headers: { Accept: 'application/json' },
22
+ signal: controller.signal,
23
+ });
24
+ if (!response.ok) {
25
+ throw new Error(`Toggly API returned ${response.status}`);
26
+ }
27
+ const payload = (await response.json());
28
+ const defs = payload.defs;
29
+ const apiFlags = (defs ?? payload);
30
+ for (const [key, value] of Object.entries(apiFlags)) {
31
+ if (typeof value === 'boolean') {
32
+ merged[key] = value;
33
+ }
34
+ }
35
+ if (isDebug) {
36
+ const enabled = Object.entries(merged).filter(([, v]) => v).length;
37
+ console.log(`[Toggly Plugin] staticGating: loaded ${Object.keys(merged).length} flags (${enabled} enabled)`);
38
+ }
39
+ return merged;
40
+ }
41
+ catch (error) {
42
+ console.error('[Toggly Plugin] staticGating: failed to fetch flags:', error);
43
+ return merged;
44
+ }
45
+ finally {
46
+ clearTimeout(timer);
47
+ }
48
+ }
49
+ //# 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":"AAoBA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA8B;IAE9B,MAAM,EACJ,OAAO,GAAG,+BAA+B,EACzC,MAAM,EACN,WAAW,GAAG,YAAY,EAC1B,YAAY,GAAG,EAAE,EACjB,cAAc,GAAG,KAAK,EACtB,OAAO,GAAG,KAAK,GAChB,GAAG,OAAO,CAAC;IAEZ,MAAM,MAAM,GAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,GAAG,OAAO,qBAAqB,kBAAkB,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;IAE3G,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,cAAc,CAAC,CAAC;IAEnE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACvC,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAC;QACpE,MAAM,IAAI,GAAI,OAA4B,CAAC,IAAI,CAAC;QAChD,MAAM,QAAQ,GAAG,CAAC,IAAI,IAAI,OAAO,CAAU,CAAC;QAE5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACnE,OAAO,CAAC,GAAG,CACT,wCAAwC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,WAAW,OAAO,WAAW,CAChG,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAE,KAAK,CAAC,CAAC;QAC7E,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Map a Docusaurus route (e.g. `/sdks/java`) to a built HTML file path
3
+ * under the output directory.
4
+ */
5
+ export declare function routeToHtmlPath(outDir: string, route: string): string;
6
+ //# sourceMappingURL=route-to-html-path.d.ts.map
@@ -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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ops-ai/toggly-docusaurus-plugin",
3
- "version": "0.5.1",
3
+ "version": "0.6.1",
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",