@ops-ai/toggly-docusaurus-plugin 0.3.0 → 0.4.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.
package/dist/index.d.ts CHANGED
@@ -5,6 +5,20 @@
5
5
  * for gating documentation content with Toggly feature flags.
6
6
  */
7
7
  import type { Plugin, LoadContext } from '@docusaurus/types';
8
+ /**
9
+ * A docs-style content directory that the plugin should scan for x-feature frontmatter.
10
+ *
11
+ * Mirrors @docusaurus/plugin-content-docs's `path` and `routeBasePath` options.
12
+ * Use this when your site has multiple plugin-content-docs instances
13
+ * (e.g. `docs/`, `sdks/`, `guides/`) — by default the plugin auto-detects them
14
+ * from `siteConfig.plugins`, but you can override the discovery here.
15
+ */
16
+ export interface TogglyContentRoot {
17
+ /** Directory (relative to siteDir) containing MD/MDX files. */
18
+ path: string;
19
+ /** URL prefix for routes generated from this directory (no leading/trailing slash needed). */
20
+ routeBasePath: string;
21
+ }
8
22
  export interface TogglyPluginOptions {
9
23
  /** Base URI for the Toggly API (default: 'https://client.toggly.io') */
10
24
  baseURI?: string;
@@ -34,11 +48,45 @@ export interface TogglyPluginOptions {
34
48
  * (default: true)
35
49
  */
36
50
  renderAllDuringBuild?: boolean;
51
+ /**
52
+ * Explicit list of docs-style content directories to scan. When omitted,
53
+ * the plugin auto-detects content-docs plugin instances from `siteConfig.plugins`
54
+ * and always includes the classic preset's default `{ path: 'docs', routeBasePath: 'docs' }`.
55
+ * Set this to take full manual control of discovery.
56
+ */
57
+ contentRoots?: TogglyContentRoot[];
37
58
  }
38
59
  /**
39
60
  * Docusaurus plugin for Toggly feature flag gating
40
61
  */
41
62
  export default function togglyPlugin(context: LoadContext, options: TogglyPluginOptions): Plugin;
63
+ /**
64
+ * Resolve the set of content roots the plugin should scan.
65
+ *
66
+ * Strategy:
67
+ * 1. If `contentRootsOverride` is provided, use it verbatim (caller knows best).
68
+ * 2. Otherwise, auto-detect by scanning `siteConfig.plugins` for
69
+ * `@docusaurus/plugin-content-docs` instances and reading each one's
70
+ * `path`/`routeBasePath` options. The classic preset's default
71
+ * `{ path: 'docs', routeBasePath: 'docs' }` is always included so existing
72
+ * sites keep working without configuration.
73
+ *
74
+ * Exported for testing.
75
+ */
76
+ export declare function resolveContentRoots(context: LoadContext, contentRootsOverride?: TogglyContentRoot[]): TogglyContentRoot[];
77
+ /**
78
+ * Inspect `siteConfig.plugins` for plugin-content-docs instances and return
79
+ * their { path, routeBasePath } pairs. Plugin entries can be:
80
+ * - 'plugin-id' → no options
81
+ * - ['plugin-id', { path, routeBasePath }] → options inline
82
+ * - a function/object plugin → not introspectable, skip
83
+ *
84
+ * If a plugin omits `path` or `routeBasePath`, those default to 'docs'
85
+ * (matching @docusaurus/plugin-content-docs's own defaults).
86
+ *
87
+ * Exported for testing.
88
+ */
89
+ export declare function discoverContentRootsFromConfig(context: LoadContext): TogglyContentRoot[];
42
90
  export { TogglyProvider, useToggly, useFlag, Feature } from './client';
43
91
  export type { TogglyProviderProps, TogglyContextValue, FeatureProps, } from './client';
44
92
  //# 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,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,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;CAChC;AAmBD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,mBAAmB,GAC3B,MAAM,CAyKR;AA4FD,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,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,wEAAwE;IACxE,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"}
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ import webpack from 'webpack';
13
13
  */
14
14
  export default function togglyPlugin(context, options) {
15
15
  const { baseURI = 'https://client.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
- } = options;
16
+ contentRoots, } = options;
17
17
  // Store page feature mapping for postBuild
18
18
  let pageFeatureMapping = {};
19
19
  return {
@@ -43,10 +43,18 @@ export default function togglyPlugin(context, options) {
43
43
  async contentLoaded({ content, actions }) {
44
44
  try {
45
45
  const { config: pluginConfig } = content;
46
- // Extract page feature mapping from files
47
- // We parse files directly to get x-feature frontmatter
48
- // and will map to routes using Docusaurus's routing structure
49
- pageFeatureMapping = await extractFromFiles(context);
46
+ // Extract page feature mapping from files.
47
+ // We parse files directly to get x-feature frontmatter and map to
48
+ // routes using each content root's routeBasePath. Roots are either
49
+ // supplied explicitly via `contentRoots` or auto-detected from
50
+ // `siteConfig.plugins` (with the classic preset's `docs/` always included).
51
+ const roots = resolveContentRoots(context, contentRoots);
52
+ if (isDebug) {
53
+ console.log(`[Toggly Plugin] Scanning content roots: ${roots
54
+ .map(r => `${r.path} -> /${r.routeBasePath}`)
55
+ .join(', ')}`);
56
+ }
57
+ pageFeatureMapping = await extractFromFiles(context, roots);
50
58
  // Store data for configureWebpack and postBuild
51
59
  this.__togglyPluginData = {
52
60
  pageFeatureMapping,
@@ -145,74 +153,150 @@ export default function togglyPlugin(context, options) {
145
153
  };
146
154
  }
147
155
  /**
148
- * Extract page feature mapping by parsing files directly
149
- * Maps file paths to Docusaurus route paths
156
+ * Resolve the set of content roots the plugin should scan.
157
+ *
158
+ * Strategy:
159
+ * 1. If `contentRootsOverride` is provided, use it verbatim (caller knows best).
160
+ * 2. Otherwise, auto-detect by scanning `siteConfig.plugins` for
161
+ * `@docusaurus/plugin-content-docs` instances and reading each one's
162
+ * `path`/`routeBasePath` options. The classic preset's default
163
+ * `{ path: 'docs', routeBasePath: 'docs' }` is always included so existing
164
+ * sites keep working without configuration.
165
+ *
166
+ * Exported for testing.
150
167
  */
151
- async function extractFromFiles(context) {
168
+ export function resolveContentRoots(context, contentRootsOverride) {
169
+ if (contentRootsOverride && contentRootsOverride.length > 0) {
170
+ return contentRootsOverride.map(normalizeContentRoot);
171
+ }
172
+ const discovered = discoverContentRootsFromConfig(context);
173
+ const roots = new Map();
174
+ // Always include the classic preset's docs root.
175
+ const fallback = normalizeContentRoot({ path: 'docs', routeBasePath: 'docs' });
176
+ roots.set(rootKey(fallback), fallback);
177
+ for (const root of discovered) {
178
+ const normalized = normalizeContentRoot(root);
179
+ roots.set(rootKey(normalized), normalized);
180
+ }
181
+ return Array.from(roots.values());
182
+ }
183
+ function normalizeContentRoot(root) {
184
+ const trimmedPath = root.path.replace(/^[/\\]+|[/\\]+$/g, '');
185
+ const trimmedRouteBasePath = root.routeBasePath.replace(/^\/+|\/+$/g, '');
186
+ return {
187
+ path: trimmedPath,
188
+ routeBasePath: trimmedRouteBasePath,
189
+ };
190
+ }
191
+ function rootKey(root) {
192
+ return `${root.path}|${root.routeBasePath}`;
193
+ }
194
+ const CONTENT_DOCS_PLUGIN_NAMES = new Set([
195
+ '@docusaurus/plugin-content-docs',
196
+ 'plugin-content-docs',
197
+ ]);
198
+ /**
199
+ * Inspect `siteConfig.plugins` for plugin-content-docs instances and return
200
+ * their { path, routeBasePath } pairs. Plugin entries can be:
201
+ * - 'plugin-id' → no options
202
+ * - ['plugin-id', { path, routeBasePath }] → options inline
203
+ * - a function/object plugin → not introspectable, skip
204
+ *
205
+ * If a plugin omits `path` or `routeBasePath`, those default to 'docs'
206
+ * (matching @docusaurus/plugin-content-docs's own defaults).
207
+ *
208
+ * Exported for testing.
209
+ */
210
+ export function discoverContentRootsFromConfig(context) {
211
+ const result = [];
212
+ const plugins = (context.siteConfig?.plugins ?? []);
213
+ for (const entry of plugins) {
214
+ if (!Array.isArray(entry) || entry.length === 0) {
215
+ continue;
216
+ }
217
+ const [name, opts] = entry;
218
+ if (typeof name !== 'string')
219
+ continue;
220
+ if (!CONTENT_DOCS_PLUGIN_NAMES.has(name))
221
+ continue;
222
+ const options = (opts && typeof opts === 'object' ? opts : {});
223
+ const pathValue = typeof options.path === 'string' ? options.path : 'docs';
224
+ const routeBasePathValue = typeof options.routeBasePath === 'string' ? options.routeBasePath : 'docs';
225
+ result.push({ path: pathValue, routeBasePath: routeBasePathValue });
226
+ }
227
+ return result;
228
+ }
229
+ /**
230
+ * Extract page feature mapping by parsing MD/MDX files in the given content roots.
231
+ * Maps file paths to Docusaurus route paths using each root's `routeBasePath`.
232
+ */
233
+ async function extractFromFiles(context, roots) {
234
+ const pageFeatureMapping = {};
235
+ for (const root of roots) {
236
+ const rootMappings = await extractFromRoot(context, root);
237
+ Object.assign(pageFeatureMapping, rootMappings);
238
+ }
239
+ return pageFeatureMapping;
240
+ }
241
+ async function extractFromRoot(context, root) {
152
242
  const { siteDir, baseUrl } = context;
153
- const docsDir = path.join(siteDir, 'docs');
243
+ const rootDir = path.isAbsolute(root.path)
244
+ ? root.path
245
+ : path.join(siteDir, root.path);
154
246
  const pageFeatureMapping = {};
155
- // Check if docs directory exists
156
- if (!fs.existsSync(docsDir)) {
247
+ if (!fs.existsSync(rootDir)) {
157
248
  return pageFeatureMapping;
158
249
  }
159
- // Find all MD/MDX files in the docs directory
160
250
  const files = await glob('**/*.{md,mdx}', {
161
- cwd: docsDir,
251
+ cwd: rootDir,
162
252
  absolute: false,
163
253
  ignore: ['node_modules/**'],
164
254
  });
165
255
  const stripOrderPrefix = (seg) => seg.replace(/^\d+-/, '');
256
+ const normalizedRouteBase = root.routeBasePath; // already trimmed of slashes
166
257
  for (const file of files) {
167
- const filePath = path.join(docsDir, file);
258
+ const filePath = path.join(rootDir, file);
168
259
  const content = fs.readFileSync(filePath, 'utf-8');
169
- // Extract frontmatter
170
260
  const frontmatterMatch = content.match(/^---\s*\n([\s\S]*?)\n---\s*\n/);
171
- if (frontmatterMatch) {
172
- const frontmatter = frontmatterMatch[1];
173
- // Extract x-feature property (supports YAML with or without quotes)
174
- const xFeatureMatch = frontmatter.match(/^x-feature:\s*(.+)$/m);
175
- if (xFeatureMatch) {
176
- let featureKey = xFeatureMatch[1].trim();
177
- // Remove quotes if present
178
- featureKey = featureKey.replace(/^["']|["']$/g, '');
179
- // Normalize path similar to Docusaurus: remove numeric order prefixes (NN-)
180
- const normalized = file
181
- .replace(/\\/g, '/')
182
- .split('/')
183
- .map(stripOrderPrefix)
184
- .join('/');
185
- // Convert file path to Docusaurus route path
186
- // Docusaurus routes docs as: /docs/<path>
187
- // File structure: docs/<category>/<file>.md -> /docs/<category>/<file>
188
- let routePath = normalized.replace(/\.(md|mdx)$/, '');
189
- // Handle index files - they become the parent directory route
190
- if (path.basename(routePath) === 'index') {
191
- routePath = path.dirname(routePath);
192
- if (routePath === '.') {
193
- routePath = '';
194
- }
195
- }
196
- // Ensure path starts with /
197
- if (!routePath.startsWith('/')) {
198
- routePath = '/' + routePath;
199
- }
200
- // Prepend /docs/ if not already there
201
- if (!routePath.startsWith('/docs')) {
202
- routePath = '/docs' + routePath;
203
- }
204
- // Remove trailing slash (except for root /docs)
205
- routePath = routePath.replace(/\/$/, '') || '/docs';
206
- // Prepend baseUrl if not root
207
- // baseUrl is typically '/' but can be '/project-name/' for GitHub Pages
208
- let fullRoutePath = routePath;
209
- if (baseUrl !== '/') {
210
- const normalizedBaseUrl = baseUrl.replace(/\/$/, '');
211
- fullRoutePath = normalizedBaseUrl + routePath;
212
- }
213
- pageFeatureMapping[fullRoutePath] = featureKey;
261
+ if (!frontmatterMatch)
262
+ continue;
263
+ const xFeatureMatch = frontmatterMatch[1].match(/^x-feature:\s*(.+)$/m);
264
+ if (!xFeatureMatch)
265
+ continue;
266
+ const featureKey = xFeatureMatch[1].trim().replace(/^["']|["']$/g, '');
267
+ const normalized = file
268
+ .replace(/\\/g, '/')
269
+ .split('/')
270
+ .map(stripOrderPrefix)
271
+ .join('/');
272
+ let relativeRoute = normalized.replace(/\.(md|mdx)$/, '');
273
+ // Index files become the parent directory route
274
+ if (path.basename(relativeRoute) === 'index') {
275
+ relativeRoute = path.dirname(relativeRoute);
276
+ if (relativeRoute === '.') {
277
+ relativeRoute = '';
214
278
  }
215
279
  }
280
+ relativeRoute = relativeRoute.replace(/^\/+/, '');
281
+ let routePath;
282
+ if (normalizedRouteBase === '') {
283
+ // Root-level routes (routeBasePath: '/') — file paths map directly under '/'.
284
+ routePath = relativeRoute === '' ? '/' : `/${relativeRoute}`;
285
+ }
286
+ else if (relativeRoute === '') {
287
+ routePath = `/${normalizedRouteBase}`;
288
+ }
289
+ else {
290
+ routePath = `/${normalizedRouteBase}/${relativeRoute}`;
291
+ }
292
+ routePath = routePath.replace(/\/+$/, '') || '/';
293
+ // Prepend baseUrl when the site is served from a subpath (e.g. GitHub Pages).
294
+ let fullRoutePath = routePath;
295
+ if (baseUrl && baseUrl !== '/') {
296
+ const normalizedBaseUrl = baseUrl.replace(/\/+$/, '');
297
+ fullRoutePath = routePath === '/' ? normalizedBaseUrl || '/' : normalizedBaseUrl + routePath;
298
+ }
299
+ pageFeatureMapping[fullRoutePath] = featureKey;
216
300
  }
217
301
  return pageFeatureMapping;
218
302
  }
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ops-ai/toggly-docusaurus-plugin",
3
- "version": "0.3.0",
3
+ "version": "0.4.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",
@@ -26,8 +26,9 @@
26
26
  "clean": "rm -rf dist",
27
27
  "typecheck": "tsc --noEmit",
28
28
  "lint": "eslint src --ext .ts,.tsx",
29
- "test": "jest --coverage --passWithNoTests",
30
- "test:watch": "jest --watch"
29
+ "test": "vitest run",
30
+ "test:watch": "vitest --watch",
31
+ "test:coverage": "vitest run --coverage"
31
32
  },
32
33
  "keywords": [
33
34
  "toggly",
@@ -59,7 +60,6 @@
59
60
  "@docusaurus/types": "^3.9.2",
60
61
  "@testing-library/jest-dom": "^6.0.0",
61
62
  "@testing-library/react": "^14.0.0",
62
- "@types/jest": "^29.0.0",
63
63
  "@types/node": "^20.0.0",
64
64
  "@types/react": "^18.2.0",
65
65
  "@types/react-dom": "^18.2.0",
@@ -69,11 +69,10 @@
69
69
  "@typescript-eslint/parser": "^6.0.0",
70
70
  "eslint": "^8.57.0",
71
71
  "eslint-config-prettier": "^9.1.0",
72
- "jest": "^29.0.0",
73
- "jest-environment-jsdom": "^29.0.0",
74
72
  "react": "^18.3.1",
75
- "ts-jest": "^29.0.0",
76
73
  "typescript": "^5.3.3",
74
+ "vitest": "^1.6.0",
75
+ "@vitest/coverage-v8": "^1.6.0",
77
76
  "webpack": "^5.104.1",
78
77
  "ws": "^8.0.0"
79
78
  }