@ops-ai/feature-flags-toggly 1.0.4 → 1.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/README.md CHANGED
@@ -2,6 +2,13 @@ Lightweight package that provides feature flags support for javascript applicati
2
2
 
3
3
  Can be used *WITH* or *WITHOUT* [Toggly.io](https://toggly.io).
4
4
 
5
+ <p align="center">
6
+ <a href="https://www.npmjs.com/package/@ops-ai/feature-flags-toggly"><img src="https://img.shields.io/npm/v/@ops-ai/feature-flags-toggly.svg" alt="npm version"></a>
7
+ <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
8
+ <a href="https://docs.toggly.io"><img src="https://img.shields.io/badge/docs-docs.toggly.io-blue.svg" alt="Documentation"></a>
9
+ <a href="https://toggly.io"><img src="https://img.shields.io/badge/website-toggly.io-0A66C2.svg" alt="Website"></a>
10
+ </p>
11
+
5
12
  ## What is a Feature Flag
6
13
 
7
14
  A feature flag (or toggle) in software development provides an alternative to maintaining multiple feature branches in source code. A condition within the code enables or disables a feature during runtime.
@@ -273,6 +280,26 @@ const performanceHook = {
273
280
  };
274
281
  ```
275
282
 
283
+ ## Entity context
284
+
285
+ Target features by **page entity** (order, product, puppy) in addition to user rollouts. Pass the entity on each `isFeatureOn` / `evaluateFeatureGate` call — not on global user identity.
286
+
287
+ ```js
288
+ Toggly.registerContext('Puppy', function (puppy) {
289
+ return {
290
+ kind: 'Puppy',
291
+ key: String(puppy.id),
292
+ attributes: { Color: puppy.color },
293
+ };
294
+ });
295
+
296
+ if (Toggly.isFeatureOn('PuppyBadge', puppy, 'Puppy')) {
297
+ // enabled for this puppy instance
298
+ }
299
+ ```
300
+
301
+ Evaluated-signed defs may be `boolean | EntityGate`. Use `isFeatureOn` (not `=== true`) so gate objects resolve offline. See [Entity & page context](https://docs.toggly.io/docs/core-concepts/entity-context).
302
+
276
303
  ## Find out more about Toggly.io
277
304
 
278
305
  Visit [our official website](https://toggly.io) or [check out a video overview of our product](https://docs.toggly.io/).
@@ -1 +1 @@
1
- (()=>{"use strict";var e,t,r,n,o={257(e,t){var r=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(o,a){function u(e){try{i(n.next(e))}catch(e){a(e)}}function c(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(u,c)}i((n=n.apply(e,t||[])).next())})},n=this&&this.__generator||function(e,t){var r,n,o,a,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(i){return function(c){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(u=0)),u;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return u.label++,{value:c[1],done:!1};case 5:u.label++,n=c[1],c=[0];continue;case 7:c=u.ops.pop(),u.trys.pop();continue;default:if(!((o=(o=u.trys).length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){u=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){u.label=c[1];break}if(6===c[0]&&u.label<o[1]){u.label=o[1],o=c;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(c);break}o[2]&&u.ops.pop(),u.trys.pop();continue}c=t.call(e,u)}catch(e){c=[6,e],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,i])}}};Object.defineProperty(t,"__esModule",{value:!0}),t.HookExecutor=void 0;var o=function(){function e(){this.hooks=[]}return e.prototype.addHook=function(e){var t=e.getMetadata();this.hooks.find(function(e){return e.getMetadata().name===t.name})?console.warn('[Toggly] Hook with name "'.concat(t.name,'" already registered. Skipping.')):this.hooks.push(e)},e.prototype.removeHook=function(e){var t=this.hooks.findIndex(function(t){return t.getMetadata().name===e});return t>-1&&(this.hooks.splice(t,1),!0)},e.prototype.executeBeforeEvaluation=function(e,t){return r(this,void 0,void 0,function(){var r,o,a,u,c,i;return n(this,function(n){switch(n.label){case 0:r=new Map,o=0,a=this.hooks,n.label=1;case 1:if(!(o<a.length))return[3,6];if(!(u=a[o]).beforeEvaluation)return[3,5];n.label=2;case 2:return n.trys.push([2,4,,5]),[4,u.beforeEvaluation(e,t)];case 3:return c=n.sent(),r.set(u.getMetadata().name,c),[3,5];case 4:return i=n.sent(),console.error('[Toggly] Error in hook "'.concat(u.getMetadata().name,'.beforeEvaluation":'),i),[3,5];case 5:return o++,[3,1];case 6:return[2,r]}})})},e.prototype.executeAfterEvaluation=function(e,t,o){return r(this,void 0,void 0,function(){var r,a,u,c;return n(this,function(n){switch(n.label){case 0:r=this.hooks.length-1,n.label=1;case 1:if(!(r>=0))return[3,6];if(!(a=this.hooks[r]).afterEvaluation)return[3,5];n.label=2;case 2:return n.trys.push([2,4,,5]),u=t.get(a.getMetadata().name),[4,a.afterEvaluation(e,u,o)];case 3:return n.sent(),[3,5];case 4:return c=n.sent(),console.error('[Toggly] Error in hook "'.concat(a.getMetadata().name,'.afterEvaluation":'),c),[3,5];case 5:return r--,[3,1];case 6:return[2]}})})},e.prototype.executeBeforeIdentify=function(e){return r(this,void 0,void 0,function(){var t,r,o,a,u,c;return n(this,function(n){switch(n.label){case 0:t=new Map,r=0,o=this.hooks,n.label=1;case 1:if(!(r<o.length))return[3,6];if(!(a=o[r]).beforeIdentify)return[3,5];n.label=2;case 2:return n.trys.push([2,4,,5]),[4,a.beforeIdentify(e)];case 3:return u=n.sent(),t.set(a.getMetadata().name,u),[3,5];case 4:return c=n.sent(),console.error('[Toggly] Error in hook "'.concat(a.getMetadata().name,'.beforeIdentify":'),c),[3,5];case 5:return r++,[3,1];case 6:return[2,t]}})})},e.prototype.executeAfterIdentify=function(e,t){return r(this,void 0,void 0,function(){var r,o,a,u;return n(this,function(n){switch(n.label){case 0:r=this.hooks.length-1,n.label=1;case 1:if(!(r>=0))return[3,6];if(!(o=this.hooks[r]).afterIdentify)return[3,5];n.label=2;case 2:return n.trys.push([2,4,,5]),a=t.get(o.getMetadata().name),[4,o.afterIdentify(e,a)];case 3:return n.sent(),[3,5];case 4:return u=n.sent(),console.error('[Toggly] Error in hook "'.concat(o.getMetadata().name,'.afterIdentify":'),u),[3,5];case 5:return r--,[3,1];case 6:return[2]}})})},e.prototype.executeAfterRefresh=function(e){return r(this,void 0,void 0,function(){var t,r,o,a;return n(this,function(n){switch(n.label){case 0:t=0,r=this.hooks,n.label=1;case 1:if(!(t<r.length))return[3,6];if(!(o=r[t]).afterRefresh)return[3,5];n.label=2;case 2:return n.trys.push([2,4,,5]),[4,o.afterRefresh(e)];case 3:return n.sent(),[3,5];case 4:return a=n.sent(),console.error('[Toggly] Error in hook "'.concat(o.getMetadata().name,'.afterRefresh":'),a),[3,5];case 5:return t++,[3,1];case 6:return[2]}})})},e}();t.HookExecutor=o},424(e,t){var r;Object.defineProperty(t,"__esModule",{value:!0}),t.FeatureRequirement=void 0,(r=t.FeatureRequirement||(t.FeatureRequirement={}))[r.all=0]="all",r[r.any=1]="any"},264(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(565),t),o(r(93),t),o(r(424),t),o(r(726),t)},726(e,t){var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StorageKeys=void 0,(r=t.StorageKeys||(t.StorageKeys={}))[r.togglyIdentityKey=0]="togglyIdentityKey",r[r.togglyFeatureFlagsKey=1]="togglyFeatureFlagsKey"},565(e,t){Object.defineProperty(t,"__esModule",{value:!0})},93(e,t){var r;Object.defineProperty(t,"__esModule",{value:!0}),t.TogglyInitResponse=t.TogglyLoadFeatureFlagsResponse=void 0,(r=t.TogglyLoadFeatureFlagsResponse||(t.TogglyLoadFeatureFlagsResponse={}))[r.fetched=0]="fetched",r[r.cached=1]="cached",r[r.defaults=2]="defaults",r[r.error=3]="error";t.TogglyInitResponse=function(e){this.status=e}},831(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"NIL",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"v1",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(t,"v3",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"v4",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"v5",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"validate",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"version",{enumerable:!0,get:function(){return i.default}});var n=d(r(518)),o=d(r(948)),a=d(r(73)),u=d(r(186)),c=d(r(808)),i=d(r(775)),l=d(r(37)),s=d(r(910)),f=d(r(792));function d(e){return e&&e.__esModule?e:{default:e}}},311(e,t){function r(e){return 14+(e+64>>>9<<4)+1}function n(e,t){const r=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(r>>16)<<16|65535&r}function o(e,t,r,o,a,u){return n((c=n(n(t,e),n(o,u)))<<(i=a)|c>>>32-i,r);var c,i}function a(e,t,r,n,a,u,c){return o(t&r|~t&n,e,t,a,u,c)}function u(e,t,r,n,a,u,c){return o(t&n|r&~n,e,t,a,u,c)}function c(e,t,r,n,a,u,c){return o(t^r^n,e,t,a,u,c)}function i(e,t,r,n,a,u,c){return o(r^(t|~n),e,t,a,u,c)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(e){if("string"==typeof e){const t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(let r=0;r<t.length;++r)e[r]=t.charCodeAt(r)}return function(e){const t=[],r=32*e.length,n="0123456789abcdef";for(let o=0;o<r;o+=8){const r=e[o>>5]>>>o%32&255,a=parseInt(n.charAt(r>>>4&15)+n.charAt(15&r),16);t.push(a)}return t}(function(e,t){e[t>>5]|=128<<t%32,e[r(t)-1]=t;let o=1732584193,l=-271733879,s=-1732584194,f=271733878;for(let t=0;t<e.length;t+=16){const r=o,d=l,g=s,y=f;o=a(o,l,s,f,e[t],7,-680876936),f=a(f,o,l,s,e[t+1],12,-389564586),s=a(s,f,o,l,e[t+2],17,606105819),l=a(l,s,f,o,e[t+3],22,-1044525330),o=a(o,l,s,f,e[t+4],7,-176418897),f=a(f,o,l,s,e[t+5],12,1200080426),s=a(s,f,o,l,e[t+6],17,-1473231341),l=a(l,s,f,o,e[t+7],22,-45705983),o=a(o,l,s,f,e[t+8],7,1770035416),f=a(f,o,l,s,e[t+9],12,-1958414417),s=a(s,f,o,l,e[t+10],17,-42063),l=a(l,s,f,o,e[t+11],22,-1990404162),o=a(o,l,s,f,e[t+12],7,1804603682),f=a(f,o,l,s,e[t+13],12,-40341101),s=a(s,f,o,l,e[t+14],17,-1502002290),l=a(l,s,f,o,e[t+15],22,1236535329),o=u(o,l,s,f,e[t+1],5,-165796510),f=u(f,o,l,s,e[t+6],9,-1069501632),s=u(s,f,o,l,e[t+11],14,643717713),l=u(l,s,f,o,e[t],20,-373897302),o=u(o,l,s,f,e[t+5],5,-701558691),f=u(f,o,l,s,e[t+10],9,38016083),s=u(s,f,o,l,e[t+15],14,-660478335),l=u(l,s,f,o,e[t+4],20,-405537848),o=u(o,l,s,f,e[t+9],5,568446438),f=u(f,o,l,s,e[t+14],9,-1019803690),s=u(s,f,o,l,e[t+3],14,-187363961),l=u(l,s,f,o,e[t+8],20,1163531501),o=u(o,l,s,f,e[t+13],5,-1444681467),f=u(f,o,l,s,e[t+2],9,-51403784),s=u(s,f,o,l,e[t+7],14,1735328473),l=u(l,s,f,o,e[t+12],20,-1926607734),o=c(o,l,s,f,e[t+5],4,-378558),f=c(f,o,l,s,e[t+8],11,-2022574463),s=c(s,f,o,l,e[t+11],16,1839030562),l=c(l,s,f,o,e[t+14],23,-35309556),o=c(o,l,s,f,e[t+1],4,-1530992060),f=c(f,o,l,s,e[t+4],11,1272893353),s=c(s,f,o,l,e[t+7],16,-155497632),l=c(l,s,f,o,e[t+10],23,-1094730640),o=c(o,l,s,f,e[t+13],4,681279174),f=c(f,o,l,s,e[t],11,-358537222),s=c(s,f,o,l,e[t+3],16,-722521979),l=c(l,s,f,o,e[t+6],23,76029189),o=c(o,l,s,f,e[t+9],4,-640364487),f=c(f,o,l,s,e[t+12],11,-421815835),s=c(s,f,o,l,e[t+15],16,530742520),l=c(l,s,f,o,e[t+2],23,-995338651),o=i(o,l,s,f,e[t],6,-198630844),f=i(f,o,l,s,e[t+7],10,1126891415),s=i(s,f,o,l,e[t+14],15,-1416354905),l=i(l,s,f,o,e[t+5],21,-57434055),o=i(o,l,s,f,e[t+12],6,1700485571),f=i(f,o,l,s,e[t+3],10,-1894986606),s=i(s,f,o,l,e[t+10],15,-1051523),l=i(l,s,f,o,e[t+1],21,-2054922799),o=i(o,l,s,f,e[t+8],6,1873313359),f=i(f,o,l,s,e[t+15],10,-30611744),s=i(s,f,o,l,e[t+6],15,-1560198380),l=i(l,s,f,o,e[t+13],21,1309151649),o=i(o,l,s,f,e[t+4],6,-145523070),f=i(f,o,l,s,e[t+11],10,-1120210379),s=i(s,f,o,l,e[t+2],15,718787259),l=i(l,s,f,o,e[t+9],21,-343485551),o=n(o,r),l=n(l,d),s=n(s,g),f=n(f,y)}return[o,l,s,f]}(function(e){if(0===e.length)return[];const t=8*e.length,n=new Uint32Array(r(t));for(let r=0;r<t;r+=8)n[r>>5]|=(255&e[r/8])<<r%32;return n}(e),8*e.length))}},140(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};t.default=r},808(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default="00000000-0000-0000-0000-000000000000"},792(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n,o=(n=r(37))&&n.__esModule?n:{default:n};t.default=function(e){if(!(0,o.default)(e))throw TypeError("Invalid UUID");let t;const r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=255&t,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=255&t,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=255&t,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=255&t,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=255&t,r}},656(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i},858(e,t){let r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){if(!r&&(r="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!r))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return r(n)};const n=new Uint8Array(16)},42(e,t){function r(e,t,r,n){switch(e){case 0:return t&r^~t&n;case 1:case 3:return t^r^n;case 2:return t&r^t&n^r&n}}function n(e,t){return e<<t|e>>>32-t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(e){const t=[1518500249,1859775393,2400959708,3395469782],o=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){const t=unescape(encodeURIComponent(e));e=[];for(let r=0;r<t.length;++r)e.push(t.charCodeAt(r))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);const a=e.length/4+2,u=Math.ceil(a/16),c=new Array(u);for(let t=0;t<u;++t){const r=new Uint32Array(16);for(let n=0;n<16;++n)r[n]=e[64*t+4*n]<<24|e[64*t+4*n+1]<<16|e[64*t+4*n+2]<<8|e[64*t+4*n+3];c[t]=r}c[u-1][14]=8*(e.length-1)/Math.pow(2,32),c[u-1][14]=Math.floor(c[u-1][14]),c[u-1][15]=8*(e.length-1)&4294967295;for(let e=0;e<u;++e){const a=new Uint32Array(80);for(let t=0;t<16;++t)a[t]=c[e][t];for(let e=16;e<80;++e)a[e]=n(a[e-3]^a[e-8]^a[e-14]^a[e-16],1);let u=o[0],i=o[1],l=o[2],s=o[3],f=o[4];for(let e=0;e<80;++e){const o=Math.floor(e/20),c=n(u,5)+r(o,i,l,s)+f+t[o]+a[e]>>>0;f=s,s=l,l=n(i,30)>>>0,i=u,u=c}o[0]=o[0]+u>>>0,o[1]=o[1]+i>>>0,o[2]=o[2]+l>>>0,o[3]=o[3]+s>>>0,o[4]=o[4]+f>>>0}return[o[0]>>24&255,o[0]>>16&255,o[0]>>8&255,255&o[0],o[1]>>24&255,o[1]>>16&255,o[1]>>8&255,255&o[1],o[2]>>24&255,o[2]>>16&255,o[2]>>8&255,255&o[2],o[3]>>24&255,o[3]>>16&255,o[3]>>8&255,255&o[3],o[4]>>24&255,o[4]>>16&255,o[4]>>8&255,255&o[4]]}},910(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.unsafeStringify=u;var n,o=(n=r(37))&&n.__esModule?n:{default:n};const a=[];for(let e=0;e<256;++e)a.push((e+256).toString(16).slice(1));function u(e,t=0){return(a[e[t+0]]+a[e[t+1]]+a[e[t+2]]+a[e[t+3]]+"-"+a[e[t+4]]+a[e[t+5]]+"-"+a[e[t+6]]+a[e[t+7]]+"-"+a[e[t+8]]+a[e[t+9]]+"-"+a[e[t+10]]+a[e[t+11]]+a[e[t+12]]+a[e[t+13]]+a[e[t+14]]+a[e[t+15]]).toLowerCase()}t.default=function(e,t=0){const r=u(e,t);if(!(0,o.default)(r))throw TypeError("Stringified UUID is invalid");return r}},518(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n,o=(n=r(858))&&n.__esModule?n:{default:n},a=r(910);let u,c,i=0,l=0;t.default=function(e,t,r){let n=t&&r||0;const s=t||new Array(16);let f=(e=e||{}).node||u,d=void 0!==e.clockseq?e.clockseq:c;if(null==f||null==d){const t=e.random||(e.rng||o.default)();null==f&&(f=u=[1|t[0],t[1],t[2],t[3],t[4],t[5]]),null==d&&(d=c=16383&(t[6]<<8|t[7]))}let g=void 0!==e.msecs?e.msecs:Date.now(),y=void 0!==e.nsecs?e.nsecs:l+1;const h=g-i+(y-l)/1e4;if(h<0&&void 0===e.clockseq&&(d=d+1&16383),(h<0||g>i)&&void 0===e.nsecs&&(y=0),y>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");i=g,l=y,c=d,g+=122192928e5;const v=(1e4*(268435455&g)+y)%4294967296;s[n++]=v>>>24&255,s[n++]=v>>>16&255,s[n++]=v>>>8&255,s[n++]=255&v;const p=g/4294967296*1e4&268435455;s[n++]=p>>>8&255,s[n++]=255&p,s[n++]=p>>>24&15|16,s[n++]=p>>>16&255,s[n++]=d>>>8|128,s[n++]=255&d;for(let e=0;e<6;++e)s[n+e]=f[e];return t||(0,a.unsafeStringify)(s)}},948(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=a(r(25)),o=a(r(311));function a(e){return e&&e.__esModule?e:{default:e}}var u=(0,n.default)("v3",48,o.default);t.default=u},25(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.URL=t.DNS=void 0,t.default=function(e,t,r){function n(e,n,u,c){var i;if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));const t=[];for(let r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t}(e)),"string"==typeof n&&(n=(0,a.default)(n)),16!==(null===(i=n)||void 0===i?void 0:i.length))throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let l=new Uint8Array(16+e.length);if(l.set(n),l.set(e,n.length),l=r(l),l[6]=15&l[6]|t,l[8]=63&l[8]|128,u){c=c||0;for(let e=0;e<16;++e)u[c+e]=l[e];return u}return(0,o.unsafeStringify)(l)}try{n.name=e}catch(e){}return n.DNS=u,n.URL=c,n};var n,o=r(910),a=(n=r(792))&&n.__esModule?n:{default:n};const u="6ba7b810-9dad-11d1-80b4-00c04fd430c8";t.DNS=u;const c="6ba7b811-9dad-11d1-80b4-00c04fd430c8";t.URL=c},73(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=u(r(140)),o=u(r(858)),a=r(910);function u(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t,r){if(n.default.randomUUID&&!t&&!e)return n.default.randomUUID();const u=(e=e||{}).random||(e.rng||o.default)();if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){r=r||0;for(let e=0;e<16;++e)t[r+e]=u[e];return t}return(0,a.unsafeStringify)(u)}},186(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=a(r(25)),o=a(r(42));function a(e){return e&&e.__esModule?e:{default:e}}var u=(0,n.default)("v5",80,o.default);t.default=u},37(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n,o=(n=r(656))&&n.__esModule?n:{default:n};t.default=function(e){return"string"==typeof e&&o.default.test(e)}},775(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n,o=(n=r(37))&&n.__esModule?n:{default:n};t.default=function(e){if(!(0,o.default)(e))throw TypeError("Invalid UUID");return parseInt(e.slice(14,15),16)}}},a={};function u(e){var t=a[e];if(void 0!==t)return t.exports;var r=a[e]={exports:{}};return o[e].call(r.exports,r,r.exports,u),r.exports}e=u(831),t=u(264),r=u(257),n=function(){function n(){}return n.init=function(t){return void 0===t&&(t={}),n._config=Object.assign({baseURI:"https://definitions.toggly.io",verifySignatures:!1,reloadOnFeatureFlagValidation:!1,connectTimeout:5e3,featureFlagsRefreshInterval:18e4,isDebug:!1,environment:"Production",flagDefaults:{},hooks:[]},t),n._config.hooks&&n._config.hooks.forEach(function(e){return n._hookExecutor.addHook(e)}),n.identity||(n.identity=(0,e.v4)()),n.clearFeatureFlagsCache(),n.startRefreshInterval(),n.startWebSocket(),n.refresh()},Object.defineProperty(n,"featureFlagsValue",{get:function(){var e,r,o,a,u=JSON.parse(null!==(e=localStorage.getItem(t.StorageKeys.togglyFeatureFlagsKey.toString()))&&void 0!==e?e:null);return(null===(r=n._config)||void 0===r?void 0:r.appKey)&&u?u:null!==(a=null===(o=n._config)||void 0===o?void 0:o.flagDefaults)&&void 0!==a?a:{}},enumerable:!1,configurable:!0}),Object.defineProperty(n,"identity",{get:function(){return localStorage.getItem(t.StorageKeys.togglyIdentityKey.toString())},set:function(e){var r=n._hookExecutor.executeBeforeIdentify(e);localStorage.setItem(t.StorageKeys.togglyIdentityKey.toString(),e),Promise.resolve(r).then(function(t){return n._hookExecutor.executeAfterIdentify(e,t)}).catch(function(e){return console.error("[Toggly] Hook execution error:",e)})},enumerable:!1,configurable:!0}),n.clearIdentity=function(){if(n.identity){var e=n._hookExecutor.executeBeforeIdentify("");localStorage.removeItem(t.StorageKeys.togglyIdentityKey.toString()),Promise.resolve(e).then(function(e){return n._hookExecutor.executeAfterIdentify("",e)}).catch(function(e){return console.error("[Toggly] Hook execution error:",e)})}else localStorage.removeItem(t.StorageKeys.togglyIdentityKey.toString())},Object.defineProperty(n,"_cachedFeatureFlags",{get:function(){var e;return JSON.parse(null!==(e=localStorage.getItem(t.StorageKeys.togglyFeatureFlagsKey.toString()))&&void 0!==e?e:null)},enumerable:!1,configurable:!0}),n.cacheFeatureFlags=function(e){localStorage.setItem(t.StorageKeys.togglyFeatureFlagsKey.toString(),JSON.stringify(e))},n.clearFeatureFlagsCache=function(){localStorage.removeItem(t.StorageKeys.togglyFeatureFlagsKey.toString())},n.fetchFeatureFlags=function(){return new Promise(function(e,t){var r="".concat(n._config.baseURI,"/evaluated-signed/").concat(n._config.appKey,"/").concat(n._config.environment);n.identity&&(r+="?u=".concat(n.identity)),fetch(r).then(function(e){return e.json()}).then(function(t){var r=t&&t.defs?t.defs:t;n.cacheFeatureFlags(r),e(r),n._config.isDebug&&console.log("Toggly.fetchFeatureFlags - ".concat(JSON.stringify(r)))}).catch(function(t){var r,o=null!==(r=n._cachedFeatureFlags)&&void 0!==r?r:n._config.flagDefaults;e(o),n._config.isDebug&&console.log("Toggly.loadedFromCache - ".concat(JSON.stringify(o)))})})},n.refresh=function(){if(n._config.isDebug&&console.log("Toggly.refresh"),!n._config.appKey){n._config.isDebug&&console.log("Toggly.usedFlagDefaults - ".concat(JSON.stringify(n._config.flagDefaults)));var e=n._config.flagDefaults;return Promise.resolve(n._hookExecutor.executeAfterRefresh(e)).catch(function(e){return console.error("[Toggly] Hook execution error:",e)}),new Promise(function(t,r){t(e)})}return n.fetchFeatureFlags().then(function(e){return Promise.resolve(n._hookExecutor.executeAfterRefresh(e)).catch(function(e){return console.error("[Toggly] Hook execution error:",e)}),e})},n._evaluateFeatureGate=function(e,r,o,a){var u;return void 0===e&&(e={}),void 0===o&&(o=t.FeatureRequirement.all),void 0===a&&(a=!1),u=o===t.FeatureRequirement.any?r.reduce(function(t,r){return t||e[r]&&!0===e[r]},!1):r.reduce(function(t,r){return t&&e[r]&&!0===e[r]},!0),n._config.isDebug&&console.log("Toggly._evaluateFeatureGate - ".concat(JSON.stringify(r))),a?!u:u},n.evaluateFeatureGate=function(e,r,o){if(void 0===r&&(r=t.FeatureRequirement.all),void 0===o&&(o=!1),0===e.length)return n._evaluateFeatureGate(n.featureFlagsValue,e,r,o);var a=e[0],u=n._hookExecutor.executeBeforeEvaluation(a),c=n._evaluateFeatureGate(n.featureFlagsValue,e,r,o);return Promise.resolve(u).then(function(e){return n._hookExecutor.executeAfterEvaluation(a,e,c)}).catch(function(e){return console.error("[Toggly] Hook execution error:",e)}),c},n.isFeatureOn=function(e){var t=n._hookExecutor.executeBeforeEvaluation(e),r=n._evaluateFeatureGate(n.featureFlagsValue,[e]);return Promise.resolve(t).then(function(t){return n._hookExecutor.executeAfterEvaluation(e,t,r)}).catch(function(e){return console.error("[Toggly] Hook execution error:",e)}),r},n.isFeatureOff=function(e){var r=n._hookExecutor.executeBeforeEvaluation(e),o=n._evaluateFeatureGate(n.featureFlagsValue,[e],t.FeatureRequirement.all,!0);return Promise.resolve(r).then(function(t){return n._hookExecutor.executeAfterEvaluation(e,t,o)}).catch(function(e){return console.error("[Toggly] Hook execution error:",e)}),o},n.addHook=function(e){n._hookExecutor.addHook(e)},n.removeHook=function(e){return n._hookExecutor.removeHook(e)},n.startWebSocket=function(){if(n._config.appKey&&!1!==n._config.enableLiveUpdates){n.stopWebSocket();var e=n._config.baseURI.replace("https://","wss://").replace("http://","ws://")+"/".concat(n._config.appKey,"/ws");n._config.isDebug&&console.log("[Toggly] WebSocket connecting to ".concat(e));var t=new WebSocket(e);t.onopen=function(){n._wsConnected=!0,n._lastFallbackRefresh=Date.now(),n._config.isDebug&&console.log("[Toggly] WebSocket connected")},t.onmessage=function(e){var t=e.data;if("string"==typeof t){if("update"===t||"flags-updated"===t)return n._config.isDebug&&console.log("[Toggly] WebSocket received text: ".concat(t)),void n.refresh();try{var r=JSON.parse(t);if("ping"===r.type)return;"flags-updated"!==r.type&&"update"!==r.type||(n._config.isDebug&&console.log("[Toggly] WebSocket received: ".concat(r.type)),n.refresh())}catch(e){n._config.isDebug&&console.log("[Toggly] WebSocket received unrecognized message: ".concat(t))}}},t.onclose=function(){n._wsConnected=!1,n._ws=null,n._config.isDebug&&console.log("[Toggly] WebSocket closed, reconnecting in 5s"),n._wsReconnectTimer=setTimeout(function(){n.startWebSocket()},5e3)},t.onerror=function(e){console.error("[Toggly] WebSocket error:",e)},n._ws=t}},n.stopWebSocket=function(){n._wsReconnectTimer&&(clearTimeout(n._wsReconnectTimer),n._wsReconnectTimer=null),n._ws&&(n._ws.onopen=null,n._ws.onmessage=null,n._ws.onclose=null,n._ws.onerror=null,n._ws.close(),n._ws=null),n._wsConnected=!1},n.cancelRefreshInterval=function(){window.clearInterval(n._refreshInterval),n._refreshInterval=void 0,n.stopWebSocket()},n.startRefreshInterval=function(){n.cancelRefreshInterval(),n._config.appKey&&n._config.featureFlagsRefreshInterval>0&&(n._refreshInterval=window.setInterval(function(){n._wsConnected&&Date.now()-n._lastFallbackRefresh<n._fallbackRefreshInterval?n._config.isDebug&&console.log("[Toggly] Skipping interval refresh, WebSocket is connected"):(n._lastFallbackRefresh=Date.now(),n.refresh())},n._config.featureFlagsRefreshInterval))},n._hookExecutor=new r.HookExecutor,n._ws=null,n._wsConnected=!1,n._wsReconnectTimer=null,n._lastFallbackRefresh=0,n._fallbackRefreshInterval=12e5,n}(),window.Toggly=n})();
1
+ (()=>{var e={149(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.emptyCacheLruIndex=function(){return{entries:{}}},t.parseCacheLruIndex=function(e){if(!e)return{entries:{}};try{const t=JSON.parse(e);if(!t||"object"!=typeof t||"object"!=typeof t.entries||!t.entries)return{entries:{}};const n={};for(const[e,r]of Object.entries(t.entries)){if(!r||"object"!=typeof r)continue;const t=r.lastAccessed;"number"==typeof t&&Number.isFinite(t)&&(n[e]={lastAccessed:t})}return{entries:n}}catch{return{entries:{}}}},t.serializeCacheLruIndex=function(e){return JSON.stringify({entries:e.entries})},t.touchCacheLruKey=function(e,t,n=Date.now()){return{entries:{...e.entries,[t]:{lastAccessed:n}}}},t.removeCacheLruKeys=function(e,t){const n={...e.entries};for(const e of t)delete n[e];return{entries:n}},t.selectCacheLruKeysToEvict=function(e,t,n){if(!Number.isFinite(t)||t<=0)return[];const r=Math.floor(t);if(r<=0)return[];const o=Object.keys(e.entries),i=o.length-r;if(i<=0)return[];const a=function(e){const t=new Set;if(e?.protectKey&&t.add(e.protectKey),e?.protectKeys)for(const n of e.protectKeys)n&&t.add(n);return t}(n),s=o.slice().sort((t,n)=>e.entries[t].lastAccessed-e.entries[n].lastAccessed||t.localeCompare(n)),u=[];for(const e of s){if(u.length>=i)break;a.has(e)||u.push(e)}return u},t.isCacheLruEnabled=function(e){return"number"==typeof e&&Number.isFinite(e)&&e>0}},438(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEntityGate=a,t.resolveEvaluatedDefinition=s,t.toBooleanDefinitions=function(e,t){const n={};for(const r of Object.keys(e))n[r]=s(e[r],t);return n},t.applyEntityGate=u,t.registerContext=function(e,t){d.set(e,t)},t.resolveEntityContext=g,t.mapEntityContext=y,t.clearRegisteredContexts=function(){d.clear()},t.normalizeEntityContext=function(e,t){return e?"object"==typeof e&&"kind"in e&&"key"in e&&"attributes"in e?e:t?y(t,e):null:null},t.evaluateResolvedKeys=h,t.evaluateStoredFeatureKeys=p,t.evaluateEvaluatedGate=function(e,t,n="all",r=!1,o){return p(e,t,n,r,t=>s(e[t],o))};const n=new Set(["eq","neq"]),r=new Set(["gt","gte","lt","lte"]),o=new Set(["in"]),i=new Set(["contains"]);function a(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.rules)&&(null==t.requirement||"all"===t.requirement||"any"===t.requirement)}function s(e,t,n=!1){return null==e?n:!0===e||!1!==e&&!!a(e)&&!!t&&u(e,t.attributes)}function u(e,t){if(0===e.rules.length)return!1;const a="any"===e.requirement?"any":"all",s=e.rules.map(e=>function(e,t){const a=function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return t;const n=t.toLowerCase();return Object.keys(e).find(e=>e.toLowerCase()===n)}(t,e.property);if(void 0===a)return!1;const s=t[a],u=e.op.toLowerCase(),d=e.type??"string";return n.has(u)?function(e,t,n){const r=(null==e?"":String(e)).toLowerCase()===t.toLowerCase();return n?r:!r}(s,e.value,"eq"===u):r.has(u)?function(e,t,n,r){if("datetime"===n){const n=l(e),o=l(t);return null!=n&&null!=o&&c(n,o,r)}if("number"!==n)return!1;const o=f(e),i=f(t);return null!=o&&null!=i&&c(o,i,r)}(s,e.value,d,u):o.has(u)?function(e,t){const n=null==e?"":String(e);return t.split(",").map(e=>e.trim()).filter(Boolean).some(e=>e.toLowerCase()===n.toLowerCase())}(s,e.value):!!i.has(u)&&function(e,t,n){if("string[]"===n&&Array.isArray(e))return e.some(e=>String(e).toLowerCase()===t.toLowerCase());return(null==e?"":String(e)).toLowerCase().includes(t.toLowerCase())}(s,e.value,d)}(e,t));return"all"===a?s.every(Boolean):s.some(Boolean)}function c(e,t,n){switch(n){case"gt":return e>t;case"gte":return e>=t;case"lt":return e<t;case"lte":return e<=t;default:return!1}}function l(e){if(e instanceof Date)return e.getTime();if("number"==typeof e)return e;const t=null==e?"":String(e);if(!t)return null;const n=Date.parse(t);return Number.isNaN(n)?null:n}function f(e){if("number"==typeof e&&Number.isFinite(e))return e;const t=null==e?"":String(e);if(!t)return null;const n=Number(t);return Number.isNaN(n)?null:n}const d=new Map;function g(e,t){const n=d.get(e);return n?n(t):null}function y(e,t,n){return n?n(t):g(e,t)}function h(e,t,n,r){if(0===e.length)return!n;const o="any"===t?e.some(r):e.every(r);return n?!o:o}function p(e,t,n,r,o){return t.length>0&&(!e||0===Object.keys(e).length)?r:h(t,n,r,o)}},99(e,t){"use strict";function n(e){if(!e)return;const n=Object.entries(e).filter(([e,t])=>e&&null!=t&&String(t).length>0).sort(([e],[t])=>e.localeCompare(t));return 0!==n.length?Object.fromEntries(n.slice(0,t.MAX_EVALUATION_CLAIMS)):void 0}Object.defineProperty(t,"__esModule",{value:!0}),t.MAX_EVALUATION_CLAIMS=void 0,t.normalizeEvaluationClaims=n,t.appendEvaluationContext=function(e,t,r="evaluated"){if(!t)return;if(t.identity&&("variants"===r?e.searchParams.set("userId",t.identity):e.searchParams.set("u",t.identity)),t.groups)for(const n of t.groups){const t=n.trim();t&&e.searchParams.append("g",t)}const o=n(t.claims);if(o)for(const[t,n]of Object.entries(o))e.searchParams.set(`claim.${t}`,String(n))},t.evaluationContextCacheKey=function(e){if(!e)return"";const t=[];if(e.identity&&t.push(`u:${e.identity}`),e.groups?.length&&t.push(`g:${[...e.groups].sort().join(",")}`),e.claims&&Object.keys(e.claims).length>0){const r=n(e.claims);if(r){const e=Object.entries(r).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>`${e}=${t}`);t.push(`c:${e.join("&")}`)}}return t.join("|")},t.MAX_EVALUATION_CLAIMS=20},467(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toBooleanDefinitions=t.resolveEvaluatedDefinition=t.resolveEntityContext=t.registerContext=t.normalizeEntityContext=t.mapEntityContext=t.isEntityGate=t.evaluateStoredFeatureKeys=t.evaluateResolvedKeys=t.evaluateEvaluatedGate=t.clearRegisteredContexts=t.applyEntityGate=t.serializeJsonForInlineScript=t.touchCacheLruKey=t.serializeCacheLruIndex=t.selectCacheLruKeysToEvict=t.removeCacheLruKeys=t.parseCacheLruIndex=t.isCacheLruEnabled=t.emptyCacheLruIndex=t.normalizeEvaluationClaims=t.evaluationContextCacheKey=t.appendEvaluationContext=t.MAX_EVALUATION_CLAIMS=void 0;var r=n(99);Object.defineProperty(t,"MAX_EVALUATION_CLAIMS",{enumerable:!0,get:function(){return r.MAX_EVALUATION_CLAIMS}}),Object.defineProperty(t,"appendEvaluationContext",{enumerable:!0,get:function(){return r.appendEvaluationContext}}),Object.defineProperty(t,"evaluationContextCacheKey",{enumerable:!0,get:function(){return r.evaluationContextCacheKey}}),Object.defineProperty(t,"normalizeEvaluationClaims",{enumerable:!0,get:function(){return r.normalizeEvaluationClaims}});var o=n(149);Object.defineProperty(t,"emptyCacheLruIndex",{enumerable:!0,get:function(){return o.emptyCacheLruIndex}}),Object.defineProperty(t,"isCacheLruEnabled",{enumerable:!0,get:function(){return o.isCacheLruEnabled}}),Object.defineProperty(t,"parseCacheLruIndex",{enumerable:!0,get:function(){return o.parseCacheLruIndex}}),Object.defineProperty(t,"removeCacheLruKeys",{enumerable:!0,get:function(){return o.removeCacheLruKeys}}),Object.defineProperty(t,"selectCacheLruKeysToEvict",{enumerable:!0,get:function(){return o.selectCacheLruKeysToEvict}}),Object.defineProperty(t,"serializeCacheLruIndex",{enumerable:!0,get:function(){return o.serializeCacheLruIndex}}),Object.defineProperty(t,"touchCacheLruKey",{enumerable:!0,get:function(){return o.touchCacheLruKey}});var i=n(373);Object.defineProperty(t,"serializeJsonForInlineScript",{enumerable:!0,get:function(){return i.serializeJsonForInlineScript}});var a=n(438);Object.defineProperty(t,"applyEntityGate",{enumerable:!0,get:function(){return a.applyEntityGate}}),Object.defineProperty(t,"clearRegisteredContexts",{enumerable:!0,get:function(){return a.clearRegisteredContexts}}),Object.defineProperty(t,"evaluateEvaluatedGate",{enumerable:!0,get:function(){return a.evaluateEvaluatedGate}}),Object.defineProperty(t,"evaluateResolvedKeys",{enumerable:!0,get:function(){return a.evaluateResolvedKeys}}),Object.defineProperty(t,"evaluateStoredFeatureKeys",{enumerable:!0,get:function(){return a.evaluateStoredFeatureKeys}}),Object.defineProperty(t,"isEntityGate",{enumerable:!0,get:function(){return a.isEntityGate}}),Object.defineProperty(t,"mapEntityContext",{enumerable:!0,get:function(){return a.mapEntityContext}}),Object.defineProperty(t,"normalizeEntityContext",{enumerable:!0,get:function(){return a.normalizeEntityContext}}),Object.defineProperty(t,"registerContext",{enumerable:!0,get:function(){return a.registerContext}}),Object.defineProperty(t,"resolveEntityContext",{enumerable:!0,get:function(){return a.resolveEntityContext}}),Object.defineProperty(t,"resolveEvaluatedDefinition",{enumerable:!0,get:function(){return a.resolveEvaluatedDefinition}}),Object.defineProperty(t,"toBooleanDefinitions",{enumerable:!0,get:function(){return a.toBooleanDefinitions}})},373(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.serializeJsonForInlineScript=function(e){return JSON.stringify(e).replace(/<\/script/gi,"<\\/script")}},272(e,t){"use strict";function n(e){const t=new Map;for(const n of e)for(const e of n.flagKeys){const r=t.get(e);if(void 0!==r&&r!==n.id)throw new Error(`Flag key "${e}" is registered on multiple local gates ("${r}" and "${n.id}")`);t.set(e,n.id)}return t}function r(e,t,n){const r=n.get(e);if(void 0===r)return!0;const o=function(e,t){return e.find(e=>e.id===t)}(t,r);return o?.isEnabled()??!0}function o(e,t,n,o){return!!e&&r(t,n,o)}Object.defineProperty(t,"__esModule",{value:!0}),t.buildFlagGateIndex=n,t.isLocalPrerequisiteMet=r,t.applyLocalGate=o,t.applyLocalGatesToMap=function(e,t,r){const i=r??n(t),a={};for(const[n,r]of Object.entries(e))a[n]=o(r,n,t,i);return a}},856(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEvaluatedDefinitions=function(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)},t.isEntityGate=function(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.rules)&&(null==t.requirement||"all"===t.requirement||"any"===t.requirement)}},301(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assertEnvelopeFreshness=function(e,t){const n=t?.maxSignatureAgeSeconds;if(null==n||n<=0)return;if(!Number.isFinite(e))throw new Error("invalid signature timestamp");const r=t?.nowSeconds??Math.floor(Date.now()/1e3);if(e>r+(t?.maxClockSkewSeconds??60))throw new Error("signature timestamp is in the future");if(r-e>n)throw new Error("signature timestamp exceeded maxSignatureAgeSeconds")}},546(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEvaluatedDefinitions=t.isEntityGate=t.unwrapDefsPayload=t.parseEvaluatedResponseBody=t.readResponseBody=t.verifySignedDefinitions=t.computeKid=t.derSignatureToP1363=t.base64ToBytes=t.parseDefinitionsFromRaw=t.parseSignedEnvelope=t.extractRawJsonProperty=t.assertEnvelopeFreshness=void 0;var r=n(301);Object.defineProperty(t,"assertEnvelopeFreshness",{enumerable:!0,get:function(){return r.assertEnvelopeFreshness}});var o=n(627);Object.defineProperty(t,"extractRawJsonProperty",{enumerable:!0,get:function(){return o.extractRawJsonProperty}}),Object.defineProperty(t,"parseSignedEnvelope",{enumerable:!0,get:function(){return o.parseSignedEnvelope}}),Object.defineProperty(t,"parseDefinitionsFromRaw",{enumerable:!0,get:function(){return o.parseDefinitionsFromRaw}}),Object.defineProperty(t,"base64ToBytes",{enumerable:!0,get:function(){return o.base64ToBytes}}),Object.defineProperty(t,"derSignatureToP1363",{enumerable:!0,get:function(){return o.derSignatureToP1363}}),Object.defineProperty(t,"computeKid",{enumerable:!0,get:function(){return o.computeKid}}),Object.defineProperty(t,"verifySignedDefinitions",{enumerable:!0,get:function(){return o.verifySignedDefinitions}});var i=n(442);Object.defineProperty(t,"readResponseBody",{enumerable:!0,get:function(){return i.readResponseBody}}),Object.defineProperty(t,"parseEvaluatedResponseBody",{enumerable:!0,get:function(){return i.parseEvaluatedResponseBody}}),Object.defineProperty(t,"unwrapDefsPayload",{enumerable:!0,get:function(){return i.unwrapDefsPayload}});var a=n(856);Object.defineProperty(t,"isEntityGate",{enumerable:!0,get:function(){return a.isEntityGate}}),Object.defineProperty(t,"isEvaluatedDefinitions",{enumerable:!0,get:function(){return a.isEvaluatedDefinitions}})},627(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assertEnvelopeFreshness=void 0,t.extractRawJsonProperty=i,t.parseSignedEnvelope=function(e){const t=JSON.parse(e);if(null==t||"object"!=typeof t||"string"!=typeof t.signature||0===t.signature.length||"string"!=typeof t.kid||0===t.kid.length||"number"!=typeof t.timestamp)throw new Error("Invalid signed definitions envelope");const n=i(e,"defs")??i(e,"data");if(!n)throw new Error("Signed envelope missing defs");return{envelope:t,defsRaw:n}},t.parseDefinitionsFromRaw=function(e){return JSON.parse(e)},t.base64ToBytes=u,t.derSignatureToP1363=c,t.computeKid=d,t.verifySignedDefinitions=async function(e,t,o,i,a){if((0,r.assertEnvelopeFreshness)(t.timestamp,a),i?.length&&!i.includes(t.kid))throw new Error(`kid not allowed: ${t.kid}`);const s=o.keys.find(e=>e.kid===t.kid);if(!s)throw new Error(`no matching jwk for kid "${t.kid}"`);if("ES256"!==s.alg)throw new Error(`unsupported alg: ${s.alg??""}`);if("P-256"!==s.crv)throw new Error(`unsupported crv: ${s.crv??""}`);if(!s.x||!s.y)throw new Error("missing x or y coordinate");const g=await d(s.x,s.y);if(s.kid!==g)throw new Error(`invalid kid: expected ${g}, got ${s.kid}`);const y=(new TextEncoder).encode(`${e}|${t.timestamp}`),h=await f(y),p=await f(h),v=u(t.signature);if(l()){const e=n(715),t=e.createPublicKey({key:{kty:s.kty??"EC",crv:s.crv??"P-256",x:s.x,y:s.y},format:"jwk"}),r=64===v.length?"ieee-p1363":"der";if(!e.verify(null,p,{key:t,dsaEncoding:r},v))throw new Error("invalid signature");return}if("undefined"==typeof crypto||!crypto.subtle)throw new Error("WebCrypto is required to verify signed definitions");const b=await crypto.subtle.importKey("jwk",{kty:s.kty??"EC",crv:s.crv??"P-256",x:s.x,y:s.y,ext:!0},{name:"ECDSA",namedCurve:"P-256"},!1,["verify"]),_=function(e){return 64===e.length?e:c(e)}(v);if(!await crypto.subtle.verify({name:"ECDSA",hash:"SHA-256"},b,_,h))throw new Error("invalid signature")};const r=n(301);var o=n(301);function i(e,t){let n=0,r=0,o=!1,i=!1;for(;n<e.length;){const u=e[n];if(o)i?i=!1:"\\"===u?i=!0:'"'===u&&(o=!1),n+=1;else if('"'!==u)"{"===u||"["===u?r+=1:"}"!==u&&"]"!==u||(r-=1),n+=1;else{if(1===r){const r=a(e,n);if(null==r)return null;const o=e.slice(n+1,r);let i=r+1;for(;i<e.length&&/\s/.test(e[i]);)i+=1;if(o===t&&i<e.length&&":"===e[i]){for(i+=1;i<e.length&&/\s/.test(e[i]);)i+=1;return s(e,i)}n=r+1;continue}o=!0,n+=1}}return null}function a(e,t){let n=!1;for(let r=t+1;r<e.length;r++){const t=e[r];if(n)n=!1;else if("\\"!==t){if('"'===t)return r}else n=!0}return null}function s(e,t){if(t>=e.length)return null;const n=e[t];if("{"===n||"["===n){let n=0,r=!1,o=!1;for(let i=t;i<e.length;i++){const a=e[i];if(r)o?o=!1:"\\"===a?o=!0:'"'===a&&(r=!1);else if('"'===a)r=!0;else if("{"===a||"["===a)n+=1;else if(("}"===a||"]"===a)&&(n-=1,0===n))return e.slice(t,i+1)}return null}if('"'===n){const n=a(e,t);return null==n?null:e.slice(t,n+1)}let r=t;for(;r<e.length&&/[^\s,}\]]/.test(e[r]);)r+=1;return e.slice(t,r)}function u(e){const t=function(e){const t=e.length%4;return 0===t?e:e+"=".repeat(4-t)}(e.replace(/-/g,"+").replace(/_/g,"/")),n=globalThis.Buffer;if(n){const e=n.from(t,"base64");return Uint8Array.from(e)}if("function"!=typeof atob)throw new Error("base64 decoding is not available in this environment");const r=atob(t),o=new Uint8Array(r.length);for(let e=0;e<r.length;e++)o[e]=r.charCodeAt(e);return o}function c(e){if(e.length<8||48!==e[0])throw new Error("invalid DER signature");let t=1;const n=()=>{const n=e[t++];if(n<128)return n;const r=127&n;if(0===r||r>2||t+r>e.length)throw new Error("invalid DER length");let o=0;for(let n=0;n<r;n++)o=o<<8|e[t++];return o};n();const r=()=>{if(2!==e[t++])throw new Error("invalid DER integer");const r=n();if(t+r>e.length)throw new Error("invalid DER integer length");let o=t,i=t+r;for(;i-o>32&&0===e[o];)o+=1;const a=new Uint8Array(32),s=e.subarray(o,i);if(s.length>32)throw new Error("DER integer too large for P-256");return a.set(s,32-s.length),t=i,a},o=r(),i=r(),a=new Uint8Array(64);return a.set(o,0),a.set(i,32),a}function l(){return"undefined"!=typeof process&&"string"==typeof process.versions?.node}async function f(e){if(l()){const t=n(715);return Uint8Array.from(t.createHash("sha256").update(e).digest())}if("undefined"==typeof crypto||!crypto.subtle)throw new Error("WebCrypto is required to hash signed definitions");const t=await crypto.subtle.digest("SHA-256",e.slice());return new Uint8Array(t)}async function d(e,t){const r=u(e),o=u(t),i=new Uint8Array(r.length+o.length);return i.set(r,0),i.set(o,r.length),`${await async function(e){if(l())return n(715).createHash("sha1").update(e).digest("hex").toUpperCase();if("undefined"!=typeof crypto&&crypto.subtle){const t=e.slice(),n=await crypto.subtle.digest("SHA-1",t);return Array.from(new Uint8Array(n)).map(e=>e.toString(16).padStart(2,"0").toUpperCase()).join("")}throw new Error("WebCrypto is required to validate JWKs")}(i)}ES256`}Object.defineProperty(t,"assertEnvelopeFreshness",{enumerable:!0,get:function(){return o.assertEnvelopeFreshness}})},442(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.readResponseBody=async function(e){return"function"==typeof e.text?e.text():JSON.stringify(await e.json())},t.parseEvaluatedResponseBody=async function(e,t){if(!t.verifySignatures)return JSON.parse(e);const{envelope:n,defsRaw:o}=(0,r.parseSignedEnvelope)(e),i=await async function(e,t,n=fetch){const r=e.replace(/\/$/,""),o=await n(`${r}/.well-known/jwks`,{method:"GET",headers:t});if(!o.ok)throw new Error(`JWKS fetch failed: HTTP ${o.status}`);return await o.json()}(function(e){const t=e.baseURI??e.baseUri??e.baseUrl;if(!t)throw new Error("baseURI (or baseUri) is required when verifySignatures is enabled");return t}(t),t.headers,t.fetchImpl??fetch);return await(0,r.verifySignedDefinitions)(o,{signature:n.signature,timestamp:n.timestamp,kid:n.kid},i,t.allowedKeyIds,null!=t.maxSignatureAgeSeconds?{maxSignatureAgeSeconds:t.maxSignatureAgeSeconds}:null),(0,r.parseDefinitionsFromRaw)(o)},t.unwrapDefsPayload=function(e){if("object"==typeof e&&null!==e&&"defs"in e){const t=e.defs;if(void 0!==t)return t}return e};const r=n(627)},257(e,t){"use strict";var n=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}u((r=r.apply(e,t||[])).next())})},r=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(u){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,u])}}};Object.defineProperty(t,"__esModule",{value:!0}),t.HookExecutor=void 0;var o=function(){function e(){this.hooks=[]}return e.prototype.addHook=function(e){var t=e.getMetadata();this.hooks.find(function(e){return e.getMetadata().name===t.name})?console.warn('[Toggly] Hook with name "'.concat(t.name,'" already registered. Skipping.')):this.hooks.push(e)},e.prototype.removeHook=function(e){var t=this.hooks.findIndex(function(t){return t.getMetadata().name===e});return t>-1&&(this.hooks.splice(t,1),!0)},e.prototype.executeBeforeEvaluation=function(e,t){return n(this,void 0,void 0,function(){var n,o,i,a,s,u;return r(this,function(r){switch(r.label){case 0:n=new Map,o=0,i=this.hooks,r.label=1;case 1:if(!(o<i.length))return[3,6];if(!(a=i[o]).beforeEvaluation)return[3,5];r.label=2;case 2:return r.trys.push([2,4,,5]),[4,a.beforeEvaluation(e,t)];case 3:return s=r.sent(),n.set(a.getMetadata().name,s),[3,5];case 4:return u=r.sent(),console.error('[Toggly] Error in hook "'.concat(a.getMetadata().name,'.beforeEvaluation":'),u),[3,5];case 5:return o++,[3,1];case 6:return[2,n]}})})},e.prototype.executeAfterEvaluation=function(e,t,o){return n(this,void 0,void 0,function(){var n,i,a,s;return r(this,function(r){switch(r.label){case 0:n=this.hooks.length-1,r.label=1;case 1:if(!(n>=0))return[3,6];if(!(i=this.hooks[n]).afterEvaluation)return[3,5];r.label=2;case 2:return r.trys.push([2,4,,5]),a=t.get(i.getMetadata().name),[4,i.afterEvaluation(e,a,o)];case 3:return r.sent(),[3,5];case 4:return s=r.sent(),console.error('[Toggly] Error in hook "'.concat(i.getMetadata().name,'.afterEvaluation":'),s),[3,5];case 5:return n--,[3,1];case 6:return[2]}})})},e.prototype.executeBeforeIdentify=function(e){return n(this,void 0,void 0,function(){var t,n,o,i,a,s;return r(this,function(r){switch(r.label){case 0:t=new Map,n=0,o=this.hooks,r.label=1;case 1:if(!(n<o.length))return[3,6];if(!(i=o[n]).beforeIdentify)return[3,5];r.label=2;case 2:return r.trys.push([2,4,,5]),[4,i.beforeIdentify(e)];case 3:return a=r.sent(),t.set(i.getMetadata().name,a),[3,5];case 4:return s=r.sent(),console.error('[Toggly] Error in hook "'.concat(i.getMetadata().name,'.beforeIdentify":'),s),[3,5];case 5:return n++,[3,1];case 6:return[2,t]}})})},e.prototype.executeAfterIdentify=function(e,t){return n(this,void 0,void 0,function(){var n,o,i,a;return r(this,function(r){switch(r.label){case 0:n=this.hooks.length-1,r.label=1;case 1:if(!(n>=0))return[3,6];if(!(o=this.hooks[n]).afterIdentify)return[3,5];r.label=2;case 2:return r.trys.push([2,4,,5]),i=t.get(o.getMetadata().name),[4,o.afterIdentify(e,i)];case 3:return r.sent(),[3,5];case 4:return a=r.sent(),console.error('[Toggly] Error in hook "'.concat(o.getMetadata().name,'.afterIdentify":'),a),[3,5];case 5:return n--,[3,1];case 6:return[2]}})})},e.prototype.executeAfterRefresh=function(e){return n(this,void 0,void 0,function(){var t,n,o,i;return r(this,function(r){switch(r.label){case 0:t=0,n=this.hooks,r.label=1;case 1:if(!(t<n.length))return[3,6];if(!(o=n[t]).afterRefresh)return[3,5];r.label=2;case 2:return r.trys.push([2,4,,5]),[4,o.afterRefresh(e)];case 3:return r.sent(),[3,5];case 4:return i=r.sent(),console.error('[Toggly] Error in hook "'.concat(o.getMetadata().name,'.afterRefresh":'),i),[3,5];case 5:return t++,[3,1];case 6:return[2]}})})},e}();t.HookExecutor=o},424(e,t){"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.FeatureRequirement=void 0,(n=t.FeatureRequirement||(t.FeatureRequirement={}))[n.all=0]="all",n[n.any=1]="any"},264(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),o(n(565),t),o(n(93),t),o(n(424),t),o(n(726),t),o(n(963),t),o(n(291),t)},291(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},726(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StorageKeys=void 0;var n="toggly:";t.StorageKeys={identityKey:"".concat(n,"identity"),groupsKey:"".concat(n,"groups"),claimsKey:"".concat(n,"claims"),cacheLruKey:"".concat(n,"cache-lru"),flagsCacheKey:function(e,t,r){void 0===r&&(r="");var o=r?":".concat(r):"";return"".concat(n,"flags:").concat(e,":").concat(t).concat(o)},variantsCacheKey:function(e,t,r){void 0===r&&(r="");var o=r?":".concat(r):"";return"".concat(n,"variants:").concat(e,":").concat(t).concat(o)},definitionsRevisionCacheKey:function(e,t){return"".concat(n,"revision:").concat(e,":").concat(t)}}},565(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},93(e,t){"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.TogglyInitResponse=t.TogglyLoadFeatureFlagsResponse=void 0,(n=t.TogglyLoadFeatureFlagsResponse||(t.TogglyLoadFeatureFlagsResponse={}))[n.fetched=0]="fetched",n[n.cached=1]="cached",n[n.defaults=2]="defaults",n[n.error=3]="error";t.TogglyInitResponse=function(e){this.status=e}},963(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},336(e,t){"use strict";var n=this&&this.__assign||function(){return n=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)};function r(){return"toggly-".concat(t.SDK_ID,"/").concat(t.SDK_VERSION)}function o(){var e;return(e={})[t.SDK_HEADER_ID]=t.SDK_ID,e[t.SDK_HEADER_VERSION]=t.SDK_VERSION,e}function i(){var e,t=globalThis;return void 0!==t.window&&void 0!==t.document||"ReactNative"===(null===(e=t.navigator)||void 0===e?void 0:e.product)}Object.defineProperty(t,"__esModule",{value:!0}),t.buildDefinitionFetchHeaders=t.usesSdkCustomHeaders=t.appendSdkQueryParams=t.sdkCustomHeaders=t.sdkUserAgent=t.SDK_HEADER_VERSION=t.SDK_HEADER_ID=t.SDK_VERSION=t.SDK_ID=void 0,t.SDK_ID="javascript",t.SDK_VERSION="1.3.1",t.SDK_HEADER_ID="X-Toggly-Sdk",t.SDK_HEADER_VERSION="X-Toggly-Sdk-Version",t.sdkUserAgent=r,t.sdkCustomHeaders=o,t.appendSdkQueryParams=function(e){e.set("sdk",t.SDK_ID),e.set("sdkVersion",t.SDK_VERSION)},t.usesSdkCustomHeaders=i,t.buildDefinitionFetchHeaders=function(e){void 0===e&&(e={});var t=n({},e);return i()?Object.assign(t,o()):t["User-Agent"]=r(),t}},10(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.verifySignedDefinitions=t.computeKid=t.derSignatureToP1363=t.base64ToBytes=t.parseDefinitionsFromRaw=t.parseSignedEnvelope=t.extractRawJsonProperty=t.assertEnvelopeFreshness=void 0;var r=n(546);Object.defineProperty(t,"assertEnvelopeFreshness",{enumerable:!0,get:function(){return r.assertEnvelopeFreshness}}),Object.defineProperty(t,"extractRawJsonProperty",{enumerable:!0,get:function(){return r.extractRawJsonProperty}}),Object.defineProperty(t,"parseSignedEnvelope",{enumerable:!0,get:function(){return r.parseSignedEnvelope}}),Object.defineProperty(t,"parseDefinitionsFromRaw",{enumerable:!0,get:function(){return r.parseDefinitionsFromRaw}}),Object.defineProperty(t,"base64ToBytes",{enumerable:!0,get:function(){return r.base64ToBytes}}),Object.defineProperty(t,"derSignatureToP1363",{enumerable:!0,get:function(){return r.derSignatureToP1363}}),Object.defineProperty(t,"computeKid",{enumerable:!0,get:function(){return r.computeKid}}),Object.defineProperty(t,"verifySignedDefinitions",{enumerable:!0,get:function(){return r.verifySignedDefinitions}})},765(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},r.apply(this,arguments)},o=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}u((r=r.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(u){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,u])}}},a=this&&this.__spreadArray||function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))};Object.defineProperty(t,"__esModule",{value:!0}),t.Toggly=void 0;var s=n(831),u=n(264),c=n(257),l=n(467),f=n(272),d=n(23),g=n(336),y=n(10),h="undefined"!=typeof window&&void 0!==window.localStorage,p=function(){function e(){}return Object.defineProperty(e,"_revisionCacheKey",{get:function(){var t,n,r,o;return u.StorageKeys.definitionsRevisionCacheKey(null!==(n=null===(t=e._config)||void 0===t?void 0:t.appKey)&&void 0!==n?n:"",null!==(o=null===(r=e._config)||void 0===r?void 0:r.environment)&&void 0!==o?o:"Production")},enumerable:!1,configurable:!0}),Object.defineProperty(e,"definitionsRevision",{get:function(){if(e._cachedDefinitionsRevision)return e._cachedDefinitionsRevision;if(!e._persistCache)return null;try{return localStorage.getItem(e._revisionCacheKey)}catch(e){return null}},enumerable:!1,configurable:!0}),e.cacheDefinitionsRevision=function(t){if(t&&(e._cachedDefinitionsRevision=t,e._persistCache))try{localStorage.setItem(e._revisionCacheKey,t)}catch(t){e._reportError("Error writing definitions revision cache",t)}},e.scheduleDebouncedRefresh=function(t){void 0===t&&(t=!1),e._refreshDebounceTimer&&clearTimeout(e._refreshDebounceTimer),e._refreshDebounceTimer=setTimeout(function(){e._refreshDebounceTimer=null,t&&e._config.verifySignatures&&(e._cachedDefinitionsRevision=null,e._inMemoryJwks=null),e.refresh()},d.REFRESH_DEBOUNCE_MS)},e.handleWsSyncMessage=function(t){var n=e.definitionsRevision;(0,d.shouldFetchOnSync)(t,n)&&e.scheduleDebouncedRefresh(),t.etag&&e.cacheDefinitionsRevision(t.etag)},e.handleWsUpdateMessage=function(t){if((0,d.shouldFetchOnSigningKeyUpdated)(t))e.scheduleDebouncedRefresh(!0);else{var n=e.definitionsRevision;(0,d.shouldFetchOnFlagsUpdated)(t,n)&&e.scheduleDebouncedRefresh(),t.etag&&e.cacheDefinitionsRevision(t.etag)}},e.buildFetchHeaders=function(){return(0,g.buildDefinitionFetchHeaders)(e.definitionsRevision?{"If-None-Match":e.definitionsRevision}:{})},e.applyFetchRevision=function(t){var n=(0,d.extractDefinitionsRevision)(t);n&&e.cacheDefinitionsRevision(n.replace(/^"+|"+$/g,""))},Object.defineProperty(e,"_persistCache",{get:function(){var t;return!1!==(null===(t=e._config)||void 0===t?void 0:t.persistCache)&&h},enumerable:!1,configurable:!0}),Object.defineProperty(e,"_contextCacheKey",{get:function(){return(0,l.evaluationContextCacheKey)(e.evaluationContext)},enumerable:!1,configurable:!0}),Object.defineProperty(e,"_flagsCacheKey",{get:function(){var t,n,r,o;return u.StorageKeys.flagsCacheKey(null!==(n=null===(t=e._config)||void 0===t?void 0:t.appKey)&&void 0!==n?n:"",null!==(o=null===(r=e._config)||void 0===r?void 0:r.environment)&&void 0!==o?o:"Production",e._contextCacheKey)},enumerable:!1,configurable:!0}),Object.defineProperty(e,"lastError",{get:function(){return e._lastError},enumerable:!1,configurable:!0}),e._reportError=function(t,n){var r,o,i;e._lastError=t,null===(o=null===(r=e._config)||void 0===r?void 0:r.onError)||void 0===o||o.call(r,t,n),(null===(i=e._config)||void 0===i?void 0:i.isDebug)&&console.warn("[Toggly] ".concat(t),n)},e._getFallbackFlags=function(){var t,n,r;return e._hasLoadedFlags&&e._inMemoryFlags?e._inMemoryFlags:null!==(r=null!==(n=null!==(t=e._cachedFeatureFlags)&&void 0!==t?t:e._inMemoryFlags)&&void 0!==n?n:e._config.flagDefaults)&&void 0!==r?r:{}},Object.defineProperty(e,"_variantsCacheKey",{get:function(){var t,n,r,o;return u.StorageKeys.variantsCacheKey(null!==(n=null===(t=e._config)||void 0===t?void 0:t.appKey)&&void 0!==n?n:"",null!==(o=null===(r=e._config)||void 0===r?void 0:r.environment)&&void 0!==o?o:"Production",e._contextCacheKey)},enumerable:!1,configurable:!0}),e.init=function(t){return void 0===t&&(t={}),e._config=Object.assign({baseURI:"https://definitions.toggly.io",verifySignatures:!1,reloadOnFeatureFlagValidation:!1,connectTimeout:5e3,featureFlagsRefreshInterval:18e4,isDebug:!1,environment:"Production",flagDefaults:{},hooks:[],persistCache:!0},t),e._inMemoryFlags=e._config.flagDefaults?r({},e._config.flagDefaults):null,e._hasLoadedFlags=!1,e._lastError=void 0,e._cachedDefinitionsRevision=null,e._wsReconnectAttempt=0,e._config.hooks&&e._config.hooks.forEach(function(t){return e._hookExecutor.addHook(t)}),e._config.localGates&&e.setLocalGates(e._config.localGates),e.identity||(e.identity=(0,s.v4)()),e.startRefreshInterval(),e.startWebSocket(),e.refresh()},Object.defineProperty(e,"featureFlagsValue",{get:function(){var t,n,r;if(e._inMemoryFlags)return e._inMemoryFlags;var o=e._cachedFeatureFlags;return(null===(t=e._config)||void 0===t?void 0:t.appKey)&&o?(e._inMemoryFlags=o,e._hasLoadedFlags=!0,o):null!==(r=null===(n=e._config)||void 0===n?void 0:n.flagDefaults)&&void 0!==r?r:{}},enumerable:!1,configurable:!0}),Object.defineProperty(e,"identity",{get:function(){var e;return h&&null!==(e=localStorage.getItem(u.StorageKeys.identityKey))&&void 0!==e?e:""},set:function(t){var n=e._hookExecutor.executeBeforeIdentify(t);h&&localStorage.setItem(u.StorageKeys.identityKey,t),Promise.resolve(n).then(function(n){return e._hookExecutor.executeAfterIdentify(t,n)}).catch(function(e){return console.error("[Toggly] Hook execution error:",e)})},enumerable:!1,configurable:!0}),e.clearIdentity=function(){if(e.identity){var t=e._hookExecutor.executeBeforeIdentify("");h&&localStorage.removeItem(u.StorageKeys.identityKey),Promise.resolve(t).then(function(t){return e._hookExecutor.executeAfterIdentify("",t)}).catch(function(e){return console.error("[Toggly] Hook execution error:",e)})}else h&&localStorage.removeItem(u.StorageKeys.identityKey)},Object.defineProperty(e,"groups",{get:function(){var e;if(!h)return[];try{return JSON.parse(null!==(e=localStorage.getItem(u.StorageKeys.groupsKey))&&void 0!==e?e:"[]")}catch(e){return[]}},set:function(e){h&&localStorage.setItem(u.StorageKeys.groupsKey,JSON.stringify(null!=e?e:[]))},enumerable:!1,configurable:!0}),Object.defineProperty(e,"claims",{get:function(){var e;if(!h)return{};try{return JSON.parse(null!==(e=localStorage.getItem(u.StorageKeys.claimsKey))&&void 0!==e?e:"{}")}catch(e){return{}}},set:function(e){h&&localStorage.setItem(u.StorageKeys.claimsKey,JSON.stringify(null!=e?e:{}))},enumerable:!1,configurable:!0}),Object.defineProperty(e,"evaluationContext",{get:function(){var t=e.identity||void 0,n=e.groups,r=e.claims;return{identity:t,groups:n.length?n:void 0,claims:Object.keys(r).length?r:void 0}},enumerable:!1,configurable:!0}),e.setContext=function(t){return void 0!==t.identity&&(t.identity?e.identity=t.identity:e.clearIdentity()),void 0!==t.groups&&(e.groups=t.groups),void 0!==t.claims&&(e.claims=t.claims),e._inMemoryFlags=null,e._hasLoadedFlags=!1,e.refresh()},e.clearContext=function(){return e.clearIdentity(),e.groups=[],e.claims={},e._inMemoryFlags=null,e._hasLoadedFlags=!1,e.refresh()},e.buildEvaluatedUrl=function(t){var n="variants"===t?"evaluated-variants-signed":"evaluated-signed",r=new URL("".concat(e._config.baseURI,"/").concat(n,"/").concat(e._config.appKey,"/").concat(e._config.environment));return(0,l.appendEvaluationContext)(r,e.evaluationContext,t),r.toString()},e.fetchJwks=function(t){return void 0===t&&(t=!1),o(this,void 0,void 0,function(){var n,r;return i(this,function(o){switch(o.label){case 0:return!t&&e._inMemoryJwks?[2,e._inMemoryJwks]:[4,fetch("".concat(e._config.baseURI,"/.well-known/jwks"),{headers:e.buildFetchHeaders()})];case 1:if(!(n=o.sent()).ok)throw new Error("Failed to fetch JWKs: ".concat(n.status," ").concat(n.statusText));return[4,n.json()];case 2:return r=o.sent(),e._inMemoryJwks=r,[2,r]}})})},e.readResponseBody=function(e){return o(this,void 0,void 0,function(){var t,n;return i(this,function(r){switch(r.label){case 0:return"function"==typeof e.text?[2,e.text()]:(n=(t=JSON).stringify,[4,e.json()]);case 1:return[2,n.apply(t,[r.sent()])]}})})},e.parseEvaluatedSignedBody=function(t){var n;return o(this,void 0,void 0,function(){var r,o,a,s,u;return i(this,function(i){switch(i.label){case 0:return e._config.verifySignatures?(o=(0,y.parseSignedEnvelope)(t),a=o.envelope,s=o.defsRaw,[4,e.fetchJwks()]):(r=JSON.parse(t),[2,{defs:null!==(n=null==r?void 0:r.defs)&&void 0!==n?n:r}]);case 1:return u=i.sent(),[4,(0,y.verifySignedDefinitions)(s,{signature:a.signature,timestamp:a.timestamp,kid:a.kid},u,e._config.allowedKeyIds,{maxSignatureAgeSeconds:e._config.maxSignatureAgeSeconds})];case 2:return i.sent(),[2,{defs:(0,y.parseDefinitionsFromRaw)(s)}]}})})},Object.defineProperty(e,"_cachedFeatureFlags",{get:function(){if(!e._persistCache)return null;try{var t=localStorage.getItem(e._flagsCacheKey),n=JSON.parse(null!=t?t:"null");return null!=t&&null!=n&&e._touchCacheKey(e._flagsCacheKey),n}catch(t){return e._reportError("Error reading cached feature flags",t),null}},enumerable:!1,configurable:!0}),e.cacheFeatureFlags=function(t){if(e._inMemoryFlags=t,e._hasLoadedFlags=!0,e._persistCache)try{var n=e._flagsCacheKey;localStorage.setItem(n,JSON.stringify(t)),e._touchCacheKey(n),e._enforceMaxCacheKeys([n,e._variantsCacheKey])}catch(t){e._reportError("Error writing feature flags cache",t)}},e.clearFeatureFlagsCache=function(){if(e._inMemoryFlags=null,h)try{var t=e._flagsCacheKey,n=e._variantsCacheKey;localStorage.removeItem(t),localStorage.removeItem(n),localStorage.removeItem(e._revisionCacheKey),e._removeCacheKeysFromLruIndex([t,n])}catch(t){e._reportError("Error clearing feature flags cache",t)}},Object.defineProperty(e,"variantsValue",{get:function(){var t;if(!(null===(t=e._config)||void 0===t?void 0:t.enableVariants))return null;if(e._persistCache)try{var n=localStorage.getItem(e._variantsCacheKey),r=JSON.parse(null!=n?n:"null");return null!=n&&null!=r&&e._touchCacheKey(e._variantsCacheKey),r}catch(e){return null}return null},enumerable:!1,configurable:!0}),e.cacheVariants=function(t){if(e._persistCache)try{var n=e._variantsCacheKey;localStorage.setItem(n,JSON.stringify(t)),e._touchCacheKey(n),e._enforceMaxCacheKeys([e._flagsCacheKey,n])}catch(t){e._reportError("Error writing variants cache",t)}},e._isTrackedCacheKey=function(e){return e.startsWith("toggly:flags:")||e.startsWith("toggly:variants:")},e._loadLruIndex=function(){try{return(0,l.parseCacheLruIndex)(localStorage.getItem(u.StorageKeys.cacheLruKey))}catch(e){return(0,l.parseCacheLruIndex)(null)}},e._saveLruIndex=function(t){try{localStorage.setItem(u.StorageKeys.cacheLruKey,(0,l.serializeCacheLruIndex)(t))}catch(t){e._reportError("Error writing cache LRU index",t)}},e._touchCacheKey=function(t){var n;if(e._persistCache&&(0,l.isCacheLruEnabled)(null===(n=e._config)||void 0===n?void 0:n.maxCacheKeys)&&e._isTrackedCacheKey(t))try{var r=(0,l.touchCacheLruKey)(e._loadLruIndex(),t);e._saveLruIndex(r)}catch(t){e._reportError("Error updating cache LRU index",t)}},e._enforceMaxCacheKeys=function(t){var n,r=null===(n=e._config)||void 0===n?void 0:n.maxCacheKeys;if(e._persistCache&&(0,l.isCacheLruEnabled)(r))try{var o=e._loadLruIndex(),i=(0,l.selectCacheLruKeysToEvict)(o,r,{protectKeys:t}).filter(function(t){return e._isTrackedCacheKey(t)});if(0===i.length)return;for(var a=0,s=i;a<s.length;a++){var u=s[a];try{localStorage.removeItem(u)}catch(e){}}o=(0,l.removeCacheLruKeys)(o,i),e._saveLruIndex(o)}catch(t){e._reportError("Error enforcing cache LRU limit",t)}},e._removeCacheKeysFromLruIndex=function(t){var n;if(e._persistCache&&(0,l.isCacheLruEnabled)(null===(n=e._config)||void 0===n?void 0:n.maxCacheKeys))try{var r=(0,l.removeCacheLruKeys)(e._loadLruIndex(),t);e._saveLruIndex(r)}catch(t){e._reportError("Error updating cache LRU index",t)}},e.getVariant=function(t){var n=e.variantsValue;if(!n)return null;var r=n[t];return r&&r.variant&&e._isEffectiveFlagEnabled(t,!0===r.enabled)?{name:r.variant,configurationValue:r.configurationValue}:null},e.getVariantValue=function(t){var n,r=e.getVariant(t);return null!==(n=null==r?void 0:r.configurationValue)&&void 0!==n?n:null},e.fetchFeatureFlags=function(){var t=this;return e._config.enableVariants?e.fetchFeatureFlagsWithVariants():new Promise(function(n){var r=e.buildEvaluatedUrl("evaluated");Promise.resolve().then(function(){return fetch(r,{headers:e.buildFetchHeaders()})}).then(function(t){if(e.applyFetchRevision(t),304===t.status){var r=e._getFallbackFlags();return n((0,l.toBooleanDefinitions)(r)),null}if(!t.ok)throw new Error("Failed to fetch feature flags: ".concat(t.status," ").concat(t.statusText));return e.readResponseBody(t)}).then(function(r){return o(t,void 0,void 0,function(){var t,o,a;return i(this,function(i){switch(i.label){case 0:return r?[4,e.parseEvaluatedSignedBody(r)]:(t=e._getFallbackFlags(),n((0,l.toBooleanDefinitions)(t)),[2]);case 1:return o=i.sent().defs,a=o&&"object"==typeof o?o:{},e.cacheFeatureFlags(a),n((0,l.toBooleanDefinitions)(a)),e._config.isDebug&&console.log("Toggly.fetchFeatureFlags - ".concat(JSON.stringify(a))),[2]}})})}).catch(function(t){e._reportError("Error fetching feature flags",t);var r=e._getFallbackFlags();n((0,l.toBooleanDefinitions)(r)),e._config.isDebug&&console.log("Toggly.loadedFromCache - ".concat(JSON.stringify(r)))})})},e.fetchFeatureFlagsWithVariants=function(){var t=this;return new Promise(function(n){var r=e.buildEvaluatedUrl("variants");Promise.resolve().then(function(){return fetch(r,{headers:e.buildFetchHeaders()})}).then(function(t){if(e.applyFetchRevision(t),304===t.status){var r=e._getFallbackFlags();return n((0,l.toBooleanDefinitions)(r)),null}if(!t.ok)throw new Error("Failed to fetch feature flags: ".concat(t.status," ").concat(t.statusText));return e.readResponseBody(t)}).then(function(r){return o(t,void 0,void 0,function(){var t,o,a,s,u,c,f,d,g;return i(this,function(i){switch(i.label){case 0:return r?[4,e.parseEvaluatedSignedBody(r)]:(t=e._getFallbackFlags(),n((0,l.toBooleanDefinitions)(t)),[2]);case 1:for(o=i.sent().defs,a=o&&"object"==typeof o&&!Array.isArray(o)?o:{},e.cacheVariants(a),s={},u=0,c=Object.entries(a);u<c.length;u++)f=c[u],d=f[0],g=f[1],s[d]=g.enabled;return e.cacheFeatureFlags(s),n(s),e._config.isDebug&&console.log("Toggly.fetchFeatureFlagsWithVariants - ".concat(JSON.stringify(a))),[2]}})})}).catch(function(t){e._reportError("Error fetching feature flags",t);var r=e._getFallbackFlags();n((0,l.toBooleanDefinitions)(r)),e._config.isDebug&&console.log("Toggly.loadedFromCache - ".concat(JSON.stringify(r)))})})},e.refresh=function(){if(e._config.isDebug&&console.log("Toggly.refresh"),!e._config.appKey){e._config.isDebug&&console.log("Toggly.usedFlagDefaults - ".concat(JSON.stringify(e._config.flagDefaults)));var t=e._config.flagDefaults;return e._inMemoryFlags=t,Promise.resolve(e._hookExecutor.executeAfterRefresh(t)).catch(function(e){return console.error("[Toggly] Hook execution error:",e)}),new Promise(function(e,n){e(t)})}return e.fetchFeatureFlags().then(function(t){return Promise.resolve(e._hookExecutor.executeAfterRefresh(t)).catch(function(e){return console.error("[Toggly] Hook execution error:",e)}),t})},e._getEffectiveFlagValue=function(t,n,r){var o=(0,l.resolveEvaluatedDefinition)(t[n],r);return(0,f.applyLocalGate)(o,n,e._localGates,e._localGateIndex)},e._isEffectiveFlagEnabled=function(t,n,r){var o=r?(0,l.resolveEvaluatedDefinition)(e.featureFlagsValue[t],r):n;return(0,f.applyLocalGate)(o,t,e._localGates,e._localGateIndex)},e._evaluateFeatureGate=function(t,n,r,o,i){return void 0===t&&(t={}),void 0===r&&(r=u.FeatureRequirement.all),void 0===o&&(o=!1),n.length>0&&0===Object.keys(t).length?o:(a=r===u.FeatureRequirement.any?n.reduce(function(n,r){return n||e._getEffectiveFlagValue(t,r,i)},!1):n.reduce(function(n,r){return n&&e._getEffectiveFlagValue(t,r,i)},!0),e._config.isDebug&&console.log("Toggly._evaluateFeatureGate - ".concat(JSON.stringify(n))),a=o?!a:a);var a},e.evaluateFeatureGate=function(t,n,r,o,i){void 0===n&&(n=u.FeatureRequirement.all),void 0===r&&(r=!1);var a=(0,l.normalizeEntityContext)(o,i);if(0===t.length)return e._evaluateFeatureGate(e.featureFlagsValue,t,n,r,a);var s=t[0],c=e._hookExecutor.executeBeforeEvaluation(s),f=e._evaluateFeatureGate(e.featureFlagsValue,t,n,r,a);return Promise.resolve(c).then(function(t){return e._hookExecutor.executeAfterEvaluation(s,t,f)}).catch(function(e){return console.error("[Toggly] Hook execution error:",e)}),f},e.isFeatureOn=function(t,n,r){var o=(0,l.normalizeEntityContext)(n,r),i=e._hookExecutor.executeBeforeEvaluation(t),a=e._evaluateFeatureGate(e.featureFlagsValue,[t],u.FeatureRequirement.all,!1,o);return Promise.resolve(i).then(function(n){return e._hookExecutor.executeAfterEvaluation(t,n,a)}).catch(function(e){return console.error("[Toggly] Hook execution error:",e)}),a},e.registerContext=function(e,t){(0,l.registerContext)(e,t)},e.isFeatureOff=function(t){var n=e._hookExecutor.executeBeforeEvaluation(t),r=e._evaluateFeatureGate(e.featureFlagsValue,[t],u.FeatureRequirement.all,!0);return Promise.resolve(n).then(function(n){return e._hookExecutor.executeAfterEvaluation(t,n,r)}).catch(function(e){return console.error("[Toggly] Hook execution error:",e)}),r},e.addHook=function(t){e._hookExecutor.addHook(t)},e.removeHook=function(t){return e._hookExecutor.removeHook(t)},e.setLocalGates=function(t){e._localGates=a([],t,!0),e._localGateIndex=(0,f.buildFlagGateIndex)(e._localGates)},e.notifyLocalGatesChanged=function(){e._localGatesChangedListeners.forEach(function(e){try{e()}catch(e){console.error("[Toggly] Local gate listener error:",e)}})},e.subscribeLocalGatesChanged=function(t){return e._localGatesChangedListeners.add(t),function(){e._localGatesChangedListeners.delete(t)}},e.startWebSocket=function(){if(e._config.appKey&&!1!==e._config.enableLiveUpdates){e.stopWebSocket();var t=(0,d.buildWebSocketUrl)(e._config.baseURI,e._config.appKey,e.definitionsRevision);e._config.isDebug&&console.log("[Toggly] WebSocket connecting to ".concat(t));var n=new WebSocket(t);n.onopen=function(){e._wsConnected=!0,e._wsReconnectAttempt=0,e._lastFallbackRefresh=Date.now(),e._config.isDebug&&console.log("[Toggly] WebSocket connected")},n.onmessage=function(t){var n=t.data;if("string"==typeof n){if("update"===n||"flags-updated"===n)return e._config.isDebug&&console.log("[Toggly] WebSocket received text: ".concat(n)),void e.scheduleDebouncedRefresh();try{var r=JSON.parse(n);if("ping"===r.type)return;if("sync"===r.type)return e._config.isDebug&&console.log("[Toggly] WebSocket received sync"),void e.handleWsSyncMessage(r);"flags-updated"!==r.type&&"update"!==r.type&&"signing-key-updated"!==r.type||(e._config.isDebug&&console.log("[Toggly] WebSocket received: ".concat(r.type)),e.handleWsUpdateMessage(r))}catch(t){e._config.isDebug&&console.log("[Toggly] WebSocket received unrecognized message: ".concat(n))}}},n.onclose=function(){e._wsConnected=!1,e._ws=null;var t=(0,d.getNextReconnectDelayMs)(e._wsReconnectAttempt);e._wsReconnectAttempt+=1,e._config.isDebug&&console.log("[Toggly] WebSocket closed, reconnecting in ".concat(t,"ms")),e._wsReconnectTimer=setTimeout(function(){e.startWebSocket()},t)},n.onerror=function(e){console.error("[Toggly] WebSocket error:",e)},e._ws=n}},e.stopWebSocket=function(){e._wsReconnectTimer&&(clearTimeout(e._wsReconnectTimer),e._wsReconnectTimer=null),e._refreshDebounceTimer&&(clearTimeout(e._refreshDebounceTimer),e._refreshDebounceTimer=null),e._ws&&(e._ws.onopen=null,e._ws.onmessage=null,e._ws.onclose=null,e._ws.onerror=null,e._ws.close(),e._ws=null),e._wsConnected=!1},e.cancelRefreshInterval=function(){window.clearInterval(e._refreshInterval),e._refreshInterval=void 0,e.stopWebSocket()},e.startRefreshInterval=function(){e.cancelRefreshInterval(),e._config.appKey&&e._config.featureFlagsRefreshInterval>0&&(e._refreshInterval=window.setInterval(function(){e._wsConnected&&Date.now()-e._lastFallbackRefresh<e._fallbackRefreshInterval?e._config.isDebug&&console.log("[Toggly] Skipping interval refresh, WebSocket is connected"):(e._lastFallbackRefresh=Date.now(),e.refresh())},e._config.featureFlagsRefreshInterval))},e._hookExecutor=new c.HookExecutor,e._localGates=[],e._inMemoryJwks=null,e._localGateIndex=new Map,e._localGatesChangedListeners=new Set,e._inMemoryFlags=null,e._hasLoadedFlags=!1,e._ws=null,e._wsConnected=!1,e._wsReconnectTimer=null,e._wsReconnectAttempt=0,e._refreshDebounceTimer=null,e._cachedDefinitionsRevision=null,e._lastFallbackRefresh=0,e._fallbackRefreshInterval=12e5,e}();t.Toggly=p,"undefined"!=typeof window&&(window.Toggly=p)},23(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.extractDefinitionsRevision=t.shouldFetchOnSigningKeyUpdated=t.shouldFetchOnFlagsUpdated=t.shouldFetchOnSync=t.getNextReconnectDelayMs=t.buildWebSocketUrl=t.REFRESH_DEBOUNCE_MS=t.WS_RECONNECT_MAX_MS=t.WS_RECONNECT_BASE_MS=t.DEFINITIONS_REVISION_HEADER=void 0;var r=n(336);t.DEFINITIONS_REVISION_HEADER="X-Definitions-Revision",t.WS_RECONNECT_BASE_MS=5e3,t.WS_RECONNECT_MAX_MS=6e4,t.REFRESH_DEBOUNCE_MS=300,t.buildWebSocketUrl=function(e,t,n){var o=e.replace(/^https:\/\//,"wss://").replace(/^http:\/\//,"ws://").replace(/\/$/,""),i=new URLSearchParams;n&&i.set("rev",n),(0,r.appendSdkQueryParams)(i);var a=i.toString();return"".concat(o,"/").concat(t,"/ws").concat(a?"?".concat(a):"")},t.getNextReconnectDelayMs=function(e){return Math.min(t.WS_RECONNECT_BASE_MS*Math.pow(2,e),t.WS_RECONNECT_MAX_MS)},t.shouldFetchOnSync=function(e,t){return!("sync"!==e.type||!0===e.unchanged||t&&(!e.etag||e.etag===t))},t.shouldFetchOnFlagsUpdated=function(e,t){return!("flags-updated"!==e.type&&"update"!==e.type||e.etag&&t&&e.etag===t)},t.shouldFetchOnSigningKeyUpdated=function(e){return"signing-key-updated"===e.type},t.extractDefinitionsRevision=function(e){var n,r;return(null===(n=e.headers)||void 0===n?void 0:n.get)?null!==(r=e.headers.get(t.DEFINITIONS_REVISION_HEADER))&&void 0!==r?r:e.headers.get("ETag"):null}},831(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"NIL",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"v1",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"v3",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"v4",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"v5",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"validate",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"version",{enumerable:!0,get:function(){return u.default}});var r=d(n(518)),o=d(n(948)),i=d(n(73)),a=d(n(186)),s=d(n(808)),u=d(n(775)),c=d(n(37)),l=d(n(910)),f=d(n(792));function d(e){return e&&e.__esModule?e:{default:e}}},311(e,t){"use strict";function n(e){return 14+(e+64>>>9<<4)+1}function r(e,t){const n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function o(e,t,n,o,i,a){return r((s=r(r(t,e),r(o,a)))<<(u=i)|s>>>32-u,n);var s,u}function i(e,t,n,r,i,a,s){return o(t&n|~t&r,e,t,i,a,s)}function a(e,t,n,r,i,a,s){return o(t&r|n&~r,e,t,i,a,s)}function s(e,t,n,r,i,a,s){return o(t^n^r,e,t,i,a,s)}function u(e,t,n,r,i,a,s){return o(n^(t|~r),e,t,i,a,s)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(e){if("string"==typeof e){const t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(let n=0;n<t.length;++n)e[n]=t.charCodeAt(n)}return function(e){const t=[],n=32*e.length,r="0123456789abcdef";for(let o=0;o<n;o+=8){const n=e[o>>5]>>>o%32&255,i=parseInt(r.charAt(n>>>4&15)+r.charAt(15&n),16);t.push(i)}return t}(function(e,t){e[t>>5]|=128<<t%32,e[n(t)-1]=t;let o=1732584193,c=-271733879,l=-1732584194,f=271733878;for(let t=0;t<e.length;t+=16){const n=o,d=c,g=l,y=f;o=i(o,c,l,f,e[t],7,-680876936),f=i(f,o,c,l,e[t+1],12,-389564586),l=i(l,f,o,c,e[t+2],17,606105819),c=i(c,l,f,o,e[t+3],22,-1044525330),o=i(o,c,l,f,e[t+4],7,-176418897),f=i(f,o,c,l,e[t+5],12,1200080426),l=i(l,f,o,c,e[t+6],17,-1473231341),c=i(c,l,f,o,e[t+7],22,-45705983),o=i(o,c,l,f,e[t+8],7,1770035416),f=i(f,o,c,l,e[t+9],12,-1958414417),l=i(l,f,o,c,e[t+10],17,-42063),c=i(c,l,f,o,e[t+11],22,-1990404162),o=i(o,c,l,f,e[t+12],7,1804603682),f=i(f,o,c,l,e[t+13],12,-40341101),l=i(l,f,o,c,e[t+14],17,-1502002290),c=i(c,l,f,o,e[t+15],22,1236535329),o=a(o,c,l,f,e[t+1],5,-165796510),f=a(f,o,c,l,e[t+6],9,-1069501632),l=a(l,f,o,c,e[t+11],14,643717713),c=a(c,l,f,o,e[t],20,-373897302),o=a(o,c,l,f,e[t+5],5,-701558691),f=a(f,o,c,l,e[t+10],9,38016083),l=a(l,f,o,c,e[t+15],14,-660478335),c=a(c,l,f,o,e[t+4],20,-405537848),o=a(o,c,l,f,e[t+9],5,568446438),f=a(f,o,c,l,e[t+14],9,-1019803690),l=a(l,f,o,c,e[t+3],14,-187363961),c=a(c,l,f,o,e[t+8],20,1163531501),o=a(o,c,l,f,e[t+13],5,-1444681467),f=a(f,o,c,l,e[t+2],9,-51403784),l=a(l,f,o,c,e[t+7],14,1735328473),c=a(c,l,f,o,e[t+12],20,-1926607734),o=s(o,c,l,f,e[t+5],4,-378558),f=s(f,o,c,l,e[t+8],11,-2022574463),l=s(l,f,o,c,e[t+11],16,1839030562),c=s(c,l,f,o,e[t+14],23,-35309556),o=s(o,c,l,f,e[t+1],4,-1530992060),f=s(f,o,c,l,e[t+4],11,1272893353),l=s(l,f,o,c,e[t+7],16,-155497632),c=s(c,l,f,o,e[t+10],23,-1094730640),o=s(o,c,l,f,e[t+13],4,681279174),f=s(f,o,c,l,e[t],11,-358537222),l=s(l,f,o,c,e[t+3],16,-722521979),c=s(c,l,f,o,e[t+6],23,76029189),o=s(o,c,l,f,e[t+9],4,-640364487),f=s(f,o,c,l,e[t+12],11,-421815835),l=s(l,f,o,c,e[t+15],16,530742520),c=s(c,l,f,o,e[t+2],23,-995338651),o=u(o,c,l,f,e[t],6,-198630844),f=u(f,o,c,l,e[t+7],10,1126891415),l=u(l,f,o,c,e[t+14],15,-1416354905),c=u(c,l,f,o,e[t+5],21,-57434055),o=u(o,c,l,f,e[t+12],6,1700485571),f=u(f,o,c,l,e[t+3],10,-1894986606),l=u(l,f,o,c,e[t+10],15,-1051523),c=u(c,l,f,o,e[t+1],21,-2054922799),o=u(o,c,l,f,e[t+8],6,1873313359),f=u(f,o,c,l,e[t+15],10,-30611744),l=u(l,f,o,c,e[t+6],15,-1560198380),c=u(c,l,f,o,e[t+13],21,1309151649),o=u(o,c,l,f,e[t+4],6,-145523070),f=u(f,o,c,l,e[t+11],10,-1120210379),l=u(l,f,o,c,e[t+2],15,718787259),c=u(c,l,f,o,e[t+9],21,-343485551),o=r(o,n),c=r(c,d),l=r(l,g),f=r(f,y)}return[o,c,l,f]}(function(e){if(0===e.length)return[];const t=8*e.length,r=new Uint32Array(n(t));for(let n=0;n<t;n+=8)r[n>>5]|=(255&e[n/8])<<n%32;return r}(e),8*e.length))}},140(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};t.default=n},808(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default="00000000-0000-0000-0000-000000000000"},792(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(37))&&r.__esModule?r:{default:r};t.default=function(e){if(!(0,o.default)(e))throw TypeError("Invalid UUID");let t;const n=new Uint8Array(16);return n[0]=(t=parseInt(e.slice(0,8),16))>>>24,n[1]=t>>>16&255,n[2]=t>>>8&255,n[3]=255&t,n[4]=(t=parseInt(e.slice(9,13),16))>>>8,n[5]=255&t,n[6]=(t=parseInt(e.slice(14,18),16))>>>8,n[7]=255&t,n[8]=(t=parseInt(e.slice(19,23),16))>>>8,n[9]=255&t,n[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,n[11]=t/4294967296&255,n[12]=t>>>24&255,n[13]=t>>>16&255,n[14]=t>>>8&255,n[15]=255&t,n}},656(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i},858(e,t){"use strict";let n;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){if(!n&&(n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!n))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(r)};const r=new Uint8Array(16)},42(e,t){"use strict";function n(e,t,n,r){switch(e){case 0:return t&n^~t&r;case 1:case 3:return t^n^r;case 2:return t&n^t&r^n&r}}function r(e,t){return e<<t|e>>>32-t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(e){const t=[1518500249,1859775393,2400959708,3395469782],o=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){const t=unescape(encodeURIComponent(e));e=[];for(let n=0;n<t.length;++n)e.push(t.charCodeAt(n))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);const i=e.length/4+2,a=Math.ceil(i/16),s=new Array(a);for(let t=0;t<a;++t){const n=new Uint32Array(16);for(let r=0;r<16;++r)n[r]=e[64*t+4*r]<<24|e[64*t+4*r+1]<<16|e[64*t+4*r+2]<<8|e[64*t+4*r+3];s[t]=n}s[a-1][14]=8*(e.length-1)/Math.pow(2,32),s[a-1][14]=Math.floor(s[a-1][14]),s[a-1][15]=8*(e.length-1)&4294967295;for(let e=0;e<a;++e){const i=new Uint32Array(80);for(let t=0;t<16;++t)i[t]=s[e][t];for(let e=16;e<80;++e)i[e]=r(i[e-3]^i[e-8]^i[e-14]^i[e-16],1);let a=o[0],u=o[1],c=o[2],l=o[3],f=o[4];for(let e=0;e<80;++e){const o=Math.floor(e/20),s=r(a,5)+n(o,u,c,l)+f+t[o]+i[e]>>>0;f=l,l=c,c=r(u,30)>>>0,u=a,a=s}o[0]=o[0]+a>>>0,o[1]=o[1]+u>>>0,o[2]=o[2]+c>>>0,o[3]=o[3]+l>>>0,o[4]=o[4]+f>>>0}return[o[0]>>24&255,o[0]>>16&255,o[0]>>8&255,255&o[0],o[1]>>24&255,o[1]>>16&255,o[1]>>8&255,255&o[1],o[2]>>24&255,o[2]>>16&255,o[2]>>8&255,255&o[2],o[3]>>24&255,o[3]>>16&255,o[3]>>8&255,255&o[3],o[4]>>24&255,o[4]>>16&255,o[4]>>8&255,255&o[4]]}},910(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.unsafeStringify=a;var r,o=(r=n(37))&&r.__esModule?r:{default:r};const i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));function a(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}t.default=function(e,t=0){const n=a(e,t);if(!(0,o.default)(n))throw TypeError("Stringified UUID is invalid");return n}},518(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(858))&&r.__esModule?r:{default:r},i=n(910);let a,s,u=0,c=0;t.default=function(e,t,n){let r=t&&n||0;const l=t||new Array(16);let f=(e=e||{}).node||a,d=void 0!==e.clockseq?e.clockseq:s;if(null==f||null==d){const t=e.random||(e.rng||o.default)();null==f&&(f=a=[1|t[0],t[1],t[2],t[3],t[4],t[5]]),null==d&&(d=s=16383&(t[6]<<8|t[7]))}let g=void 0!==e.msecs?e.msecs:Date.now(),y=void 0!==e.nsecs?e.nsecs:c+1;const h=g-u+(y-c)/1e4;if(h<0&&void 0===e.clockseq&&(d=d+1&16383),(h<0||g>u)&&void 0===e.nsecs&&(y=0),y>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");u=g,c=y,s=d,g+=122192928e5;const p=(1e4*(268435455&g)+y)%4294967296;l[r++]=p>>>24&255,l[r++]=p>>>16&255,l[r++]=p>>>8&255,l[r++]=255&p;const v=g/4294967296*1e4&268435455;l[r++]=v>>>8&255,l[r++]=255&v,l[r++]=v>>>24&15|16,l[r++]=v>>>16&255,l[r++]=d>>>8|128,l[r++]=255&d;for(let e=0;e<6;++e)l[r+e]=f[e];return t||(0,i.unsafeStringify)(l)}},948(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(25)),o=i(n(311));function i(e){return e&&e.__esModule?e:{default:e}}var a=(0,r.default)("v3",48,o.default);t.default=a},25(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.URL=t.DNS=void 0,t.default=function(e,t,n){function r(e,r,a,s){var u;if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));const t=[];for(let n=0;n<e.length;++n)t.push(e.charCodeAt(n));return t}(e)),"string"==typeof r&&(r=(0,i.default)(r)),16!==(null===(u=r)||void 0===u?void 0:u.length))throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let c=new Uint8Array(16+e.length);if(c.set(r),c.set(e,r.length),c=n(c),c[6]=15&c[6]|t,c[8]=63&c[8]|128,a){s=s||0;for(let e=0;e<16;++e)a[s+e]=c[e];return a}return(0,o.unsafeStringify)(c)}try{r.name=e}catch(e){}return r.DNS=a,r.URL=s,r};var r,o=n(910),i=(r=n(792))&&r.__esModule?r:{default:r};const a="6ba7b810-9dad-11d1-80b4-00c04fd430c8";t.DNS=a;const s="6ba7b811-9dad-11d1-80b4-00c04fd430c8";t.URL=s},73(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(140)),o=a(n(858)),i=n(910);function a(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t,n){if(r.default.randomUUID&&!t&&!e)return r.default.randomUUID();const a=(e=e||{}).random||(e.rng||o.default)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=a[e];return t}return(0,i.unsafeStringify)(a)}},186(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(25)),o=i(n(42));function i(e){return e&&e.__esModule?e:{default:e}}var a=(0,r.default)("v5",80,o.default);t.default=a},37(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(656))&&r.__esModule?r:{default:r};t.default=function(e){return"string"==typeof e&&o.default.test(e)}},775(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(37))&&r.__esModule?r:{default:r};t.default=function(e){if(!(0,o.default)(e))throw TypeError("Invalid UUID");return parseInt(e.slice(14,15),16)}},715(){}},t={};!function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}(765)})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ops-ai/feature-flags-toggly",
3
- "version": "1.0.4",
3
+ "version": "1.7.0",
4
4
  "description": "Provides feature flags support for Javascript applications allowing you to enable and disable features easily. Can be used with or without Toggly.io.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -25,7 +25,9 @@
25
25
  "dist"
26
26
  ],
27
27
  "dependencies": {
28
- "@ops-ai/toggly-hooks-types": "^1.1.0",
28
+ "@ops-ai/toggly-hooks-types": "file:../../toggly-hooks-types",
29
+ "@ops-ai/toggly-local-gates": "file:../../toggly-local-gates",
30
+ "@ops-ai/toggly-signed-defs": "file:../../toggly-signed-defs",
29
31
  "rxjs": "^7.5.7",
30
32
  "uuid": "^9.0.0"
31
33
  },