@togglely/sdk-core 1.1.11 → 1.2.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/dist/index.esm.js CHANGED
@@ -1,11 +1,14 @@
1
1
  /**
2
- * Togglely Core SDK - Framework agnostic
2
+ * Togglely Core SDK - Framework agnostic feature flag management
3
3
  *
4
- * Supports offline fallback via environment variables
5
- */
6
- /**
7
- * Core Togglely Client
4
+ * Features:
5
+ * - Real-time feature flag evaluation
6
+ * - Offline fallback via JSON file, environment variables, or window object
7
+ * - Multi-brand/tenant support
8
+ * - Type-safe flag access
9
+ * - Build-time JSON generation for offline-first deployment
8
10
  */
11
+ // ==================== Togglely Client ====================
9
12
  class TogglelyClient {
10
13
  constructor(config) {
11
14
  this.toggles = new Map();
@@ -23,6 +26,7 @@ class TogglelyClient {
23
26
  offlineFallback: true,
24
27
  envPrefix: 'TOGGLELY_',
25
28
  autoFetch: true,
29
+ offlineJsonPath: undefined,
26
30
  ...config
27
31
  };
28
32
  // Initialize event handlers
@@ -88,30 +92,49 @@ class TogglelyClient {
88
92
  return this.state.isOffline;
89
93
  }
90
94
  // ==================== Toggle Accessors ====================
95
+ /**
96
+ * Check if a boolean feature flag is enabled
97
+ * @param key - The flag key
98
+ * @param defaultValue - Default value if flag not found
99
+ * @returns Promise<boolean>
100
+ */
91
101
  async isEnabled(key, defaultValue = false) {
92
- console.log(`[Togglely SDK] isEnabled("${key}", default=${defaultValue})`);
93
102
  const value = await this.getValue(key);
94
- console.log(`[Togglely SDK] isEnabled result for "${key}":`, value);
95
103
  if (value === null) {
96
- console.log(`[Togglely SDK] "${key}" not found, returning default: ${defaultValue}`);
97
104
  return defaultValue;
98
105
  }
99
- const result = value.enabled && value.value === true;
100
- console.log(`[Togglely SDK] "${key}" enabled=${value.enabled}, value=${value.value} → returning ${result}`);
101
- return result;
106
+ return value.enabled && value.value === true;
102
107
  }
108
+ /**
109
+ * Get a string feature flag value
110
+ * @param key - The flag key
111
+ * @param defaultValue - Default value if flag not found or disabled
112
+ * @returns Promise<string>
113
+ */
103
114
  async getString(key, defaultValue = '') {
104
115
  const value = await this.getValue(key);
105
116
  if (value === null || !value.enabled)
106
117
  return defaultValue;
107
118
  return String(value.value);
108
119
  }
120
+ /**
121
+ * Get a number feature flag value
122
+ * @param key - The flag key
123
+ * @param defaultValue - Default value if flag not found or disabled
124
+ * @returns Promise<number>
125
+ */
109
126
  async getNumber(key, defaultValue = 0) {
110
127
  const value = await this.getValue(key);
111
128
  if (value === null || !value.enabled)
112
129
  return defaultValue;
113
130
  return Number(value.value);
114
131
  }
132
+ /**
133
+ * Get a JSON feature flag value
134
+ * @param key - The flag key
135
+ * @param defaultValue - Default value if flag not found or disabled
136
+ * @returns Promise<T>
137
+ */
115
138
  async getJSON(key, defaultValue = {}) {
116
139
  const value = await this.getValue(key);
117
140
  if (value === null || !value.enabled)
@@ -126,57 +149,41 @@ class TogglelyClient {
126
149
  }
127
150
  return value.value;
128
151
  }
152
+ /**
153
+ * Get raw toggle value
154
+ * @param key - The flag key
155
+ * @returns Promise<ToggleValue | null>
156
+ */
129
157
  async getValue(key) {
130
158
  // Try cache first - but only if no context is set
131
159
  if (Object.keys(this.context).length === 0) {
132
160
  const cached = this.toggles.get(key);
133
161
  if (cached) {
134
- console.log(`[Togglely SDK] Cache hit for "${key}":`, cached);
135
162
  return cached;
136
163
  }
137
164
  }
138
165
  // Fetch from server
139
166
  try {
140
167
  const params = new URLSearchParams();
141
- // Send API key as query parameter (required by backend)
142
168
  if (this.config.apiKey)
143
169
  params.set('apiKey', this.config.apiKey);
144
170
  const brandKey = this.context.tenantId || this.context.brandKey;
145
171
  if (brandKey)
146
172
  params.set('tenantId', String(brandKey));
147
- // Always send context if available (needed for targeting rules)
148
173
  if (Object.keys(this.context).length > 0) {
149
174
  params.set('context', JSON.stringify(this.context));
150
175
  }
151
176
  const query = params.toString() ? `?${params.toString()}` : '';
152
177
  const url = `${this.config.baseUrl}/sdk/flags/${encodeURIComponent(this.config.project)}/${encodeURIComponent(this.config.environment)}/${encodeURIComponent(key)}${query}`;
153
- console.log(`[Togglely SDK] Fetching: ${url}`);
154
178
  const response = await this.fetchWithTimeout(url, { headers: { 'Content-Type': 'application/json' } });
155
- console.log(`[Togglely SDK] Response status: ${response.status}`);
156
179
  if (!response.ok) {
157
- // Try to get error details from response
158
- let errorBody = '';
159
- try {
160
- errorBody = await response.text();
161
- console.error(`[Togglely SDK] Error response body:`, errorBody);
162
- }
163
- catch { }
164
180
  if (response.status === 404) {
165
- console.log(`[Togglely SDK] Flag "${key}" not found (404)`);
166
181
  return null;
167
182
  }
168
- if (response.status === 401) {
169
- console.error(`[Togglely SDK] Authentication failed (401) - Check your API key`);
170
- }
171
- if (response.status === 403) {
172
- console.error(`[Togglely SDK] Forbidden (403) - Origin not allowed`);
173
- }
174
- throw new Error(`HTTP ${response.status}: ${errorBody || response.statusText}`);
183
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
175
184
  }
176
185
  const data = await response.json();
177
- console.log(`[Togglely SDK] Received data for "${key}":`, data);
178
186
  this.toggles.set(key, data);
179
- // Update state if we were offline
180
187
  if (this.state.isOffline) {
181
188
  this.state.isOffline = false;
182
189
  this.emit('online');
@@ -184,20 +191,21 @@ class TogglelyClient {
184
191
  return data;
185
192
  }
186
193
  catch (error) {
187
- console.error(`[Togglely SDK] Network/Error for "${key}":`, error.message);
188
- // Try offline fallback only if enabled
194
+ // Try offline fallback
189
195
  if (this.config.offlineFallback) {
190
196
  const offlineValue = this.getOfflineToggle(key);
191
197
  if (offlineValue !== null) {
192
- console.log(`[Togglely SDK] Using offline fallback for "${key}":`, offlineValue);
193
198
  return offlineValue;
194
199
  }
195
200
  }
196
- // Return safe default instead of null
197
- console.warn(`[Togglely SDK] Returning default (disabled) for "${key}" due to error`);
201
+ // Return safe default
198
202
  return { value: false, enabled: false };
199
203
  }
200
204
  }
205
+ /**
206
+ * Get all toggles
207
+ * @returns Record<string, ToggleValue>
208
+ */
201
209
  getAllToggles() {
202
210
  const result = {};
203
211
  this.toggles.forEach((value, key) => {
@@ -207,12 +215,28 @@ class TogglelyClient {
207
215
  }
208
216
  // ==================== Offline Fallback ====================
209
217
  /**
210
- * Load toggles from environment variables
211
- * Format: TOGGLELY_<TOGGLE_KEY>=<value> or TOGGLELY_<TOGGLE_KEY>_ENABLED=true
218
+ * Load offline toggles from multiple sources (in priority order):
219
+ * 1. Inline offlineToggles from config
220
+ * 2. JSON file (if offlineJsonPath is set)
221
+ * 3. window.__TOGGLELY_TOGGLES (browser)
222
+ * 4. Environment variables (Node.js)
212
223
  */
213
224
  loadOfflineToggles() {
214
225
  try {
215
- // Browser environment - check window.__TOGGLELY_TOGGLES
226
+ // Priority 1: Inline offline toggles from config
227
+ if (this.config.offlineToggles && Object.keys(this.config.offlineToggles).length > 0) {
228
+ for (const [key, value] of Object.entries(this.config.offlineToggles)) {
229
+ this.toggles.set(key, value);
230
+ }
231
+ this.offlineTogglesLoaded = true;
232
+ console.log('[Togglely] Loaded offline toggles from config');
233
+ return;
234
+ }
235
+ // Priority 2: JSON file (browser only - fetch synchronously not possible, will try async)
236
+ if (this.config.offlineJsonPath && typeof window !== 'undefined') {
237
+ this.loadOfflineJsonFile(this.config.offlineJsonPath);
238
+ }
239
+ // Priority 3: Browser environment - check window.__TOGGLELY_TOGGLES
216
240
  if (typeof window !== 'undefined' && window.__TOGGLELY_TOGGLES) {
217
241
  const offlineToggles = window.__TOGGLELY_TOGGLES;
218
242
  for (const [key, value] of Object.entries(offlineToggles)) {
@@ -222,12 +246,11 @@ class TogglelyClient {
222
246
  console.log('[Togglely] Loaded offline toggles from window.__TOGGLELY_TOGGLES');
223
247
  return;
224
248
  }
225
- // Node.js / Bun / Deno environment - check process.env
249
+ // Priority 4: Node.js / Bun / Deno environment - check process.env
226
250
  if (typeof process !== 'undefined' && process.env) {
227
251
  const prefix = this.config.envPrefix;
228
252
  for (const [envKey, envValue] of Object.entries(process.env)) {
229
253
  if (envKey?.startsWith(prefix) && envValue !== undefined) {
230
- // Parse toggle key: TOGGLELY_MY_FEATURE -> my-feature
231
254
  const toggleKey = envKey
232
255
  .slice(prefix.length)
233
256
  .toLowerCase()
@@ -243,13 +266,47 @@ class TogglelyClient {
243
266
  console.warn('[Togglely] Failed to load offline toggles:', error);
244
267
  }
245
268
  }
269
+ /**
270
+ * Load offline toggles from JSON file (async)
271
+ */
272
+ async loadOfflineJsonFile(path) {
273
+ try {
274
+ if (typeof window !== 'undefined') {
275
+ // Browser - fetch the JSON file
276
+ const response = await fetch(path);
277
+ if (response.ok) {
278
+ const data = await response.json();
279
+ for (const [key, value] of Object.entries(data)) {
280
+ this.toggles.set(key, this.parseOfflineValue(value));
281
+ }
282
+ this.offlineTogglesLoaded = true;
283
+ console.log('[Togglely] Loaded offline toggles from JSON file:', path);
284
+ }
285
+ }
286
+ else if (typeof require !== 'undefined') {
287
+ // Node.js - require the JSON file
288
+ const fs = require('fs');
289
+ const pathModule = require('path');
290
+ const fullPath = pathModule.resolve(path);
291
+ if (fs.existsSync(fullPath)) {
292
+ const data = JSON.parse(fs.readFileSync(fullPath, 'utf-8'));
293
+ for (const [key, value] of Object.entries(data)) {
294
+ this.toggles.set(key, this.parseOfflineValue(value));
295
+ }
296
+ this.offlineTogglesLoaded = true;
297
+ console.log('[Togglely] Loaded offline toggles from JSON file:', fullPath);
298
+ }
299
+ }
300
+ }
301
+ catch (error) {
302
+ console.warn('[Togglely] Failed to load offline JSON file:', error);
303
+ }
304
+ }
246
305
  getOfflineToggle(key) {
247
306
  if (!this.config.offlineFallback)
248
307
  return null;
249
- // Try to get from already loaded offline toggles
250
308
  const cached = this.toggles.get(key);
251
309
  if (cached) {
252
- // If we haven't emitted offline event yet, do it now
253
310
  if (!this.state.isOffline) {
254
311
  this.state.isOffline = true;
255
312
  this.emit('offline');
@@ -259,40 +316,37 @@ class TogglelyClient {
259
316
  return null;
260
317
  }
261
318
  parseOfflineValue(value) {
262
- // Handle boolean strings
263
319
  if (typeof value === 'string') {
264
320
  const lower = value.toLowerCase();
265
321
  if (lower === 'true')
266
322
  return { value: true, enabled: true };
267
323
  if (lower === 'false')
268
324
  return { value: false, enabled: true };
269
- // Try to parse as number
270
325
  if (!isNaN(Number(value))) {
271
326
  return { value: Number(value), enabled: true };
272
327
  }
273
- // Try to parse as JSON
274
328
  try {
275
329
  const parsed = JSON.parse(value);
276
330
  return { value: parsed, enabled: true };
277
331
  }
278
332
  catch {
279
- // Return as string
280
333
  return { value, enabled: true };
281
334
  }
282
335
  }
283
336
  return { value, enabled: true };
284
337
  }
285
338
  // ==================== Refresh / Polling ====================
339
+ /**
340
+ * Refresh all toggles from the server
341
+ */
286
342
  async refresh() {
287
343
  try {
288
344
  const params = new URLSearchParams();
289
- // Send API key as query parameter (required by backend)
290
345
  if (this.config.apiKey)
291
346
  params.set('apiKey', this.config.apiKey);
292
347
  const brandKey = this.context.tenantId || this.context.brandKey;
293
348
  if (brandKey)
294
349
  params.set('tenantId', String(brandKey));
295
- // Always send context if available (needed for targeting rules)
296
350
  if (Object.keys(this.context).length > 0) {
297
351
  params.set('context', JSON.stringify(this.context));
298
352
  }
@@ -311,7 +365,6 @@ class TogglelyClient {
311
365
  this.state.isReady = true;
312
366
  this.emit('ready');
313
367
  }
314
- // If we were offline, go online
315
368
  if (this.state.isOffline) {
316
369
  this.state.isOffline = false;
317
370
  this.emit('online');
@@ -320,7 +373,6 @@ class TogglelyClient {
320
373
  }
321
374
  catch (error) {
322
375
  this.state.lastError = error;
323
- // If we have offline toggles, switch to offline mode
324
376
  if (this.config.offlineFallback && this.offlineTogglesLoaded) {
325
377
  if (!this.state.isOffline) {
326
378
  this.state.isOffline = true;
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}