{"version":3,"file":"GrowthBookClient.mjs","names":["loadSDKVersion","clearAutoRefresh","configureCache","refreshFeatures","startStreaming","unsubscribe","decryptPayload","evalFeature","_evalFeature","getAllStickyBucketAssignmentDocs","getApiHosts","getTrackingUserContext","runExperiment","SDK_VERSION","GrowthBookClient","constructor","options","version","_options","debug","ready","_features","_experiments","log","bind","plugins","plugin","setPayload","payload","_payload","data","decryptionKey","_decryptedPayload","features","experiments","savedGroups","contextualBandits","initSync","encryptedExperiments","encryptedFeatures","Error","init","cacheSettings","success","source","_await$this$_refresh","_refresh","_objectSpread","allowStale","res","_objectWithoutProperties","_excluded","getApiInfo","apiHost","getClientKey","clientKey","getPayload","getFeatures","getDecryptedPayload","_ref","timeout","skipCache","streaming","instance","disableCache","backgroundSync","getGlobalAttributes","globalAttributes","setGlobalAttributes","attributes","destroy","_destroyed","destroyAllStreams","undefined","isDestroyed","setEventLogger","logger","eventLogger","logEvent","eventName","properties","userContext","ctx","_getEvalContext","user","runInlineExperiment","experiment","result","global","_getGlobalContext","stack","evaluatedFeatures","Set","enabled","qaMode","forcedFeatureValues","forcedVariations","trackingCallback","onFeatureUsage","isOn","key","on","isOff","off","getFeatureValue","defaultValue","value","id","msg","console","setTrackingCallback","callback","setFeatureUsageCallback","applyStickyBuckets","partialContext","stickyBucketService","stickyBucketAssignmentDocs","saveStickyBucketAssignmentDoc","doc","saveAssignments","createScopedInstance","userPlugins","UserScopedGrowthBook","gb","_gb","_userContext","logs","trackedExperiments","trackedFeatureUsage","devLogs","enableDevMode","push","timestamp","Date","now","toString","logType","cb","setURL","url","updateAttributes","setAttributeOverrides","overrides","attributeOverrides","setForcedVariations","vars","setForcedFeatures","map","getUserContext","getVersion","inDevMode"],"sources":["../../src/GrowthBookClient.ts"],"sourcesContent":["import type {\n  ApiHost,\n  Attributes,\n  AutoExperiment,\n  ClientKey,\n  ClientOptions,\n  DestroyOptions,\n  EvalContext,\n  EventLogger,\n  EventProperties,\n  Experiment,\n  FeatureApiResponse,\n  FeatureDefinitions,\n  FeatureResult,\n  FeatureUsageCallback,\n  GlobalContext,\n  InitOptions,\n  InitResponse,\n  InitSyncOptions,\n  LogUnion,\n  Plugin,\n  RefreshFeaturesOptions,\n  Result,\n  TrackingCallback,\n  TrackingCallbackWithUser,\n  UserContext,\n  WidenPrimitives,\n} from \"./types/growthbook\";\nimport { loadSDKVersion } from \"./util\";\nimport {\n  clearAutoRefresh,\n  configureCache,\n  refreshFeatures,\n  startStreaming,\n  unsubscribe,\n} from \"./feature-repository\";\nimport {\n  decryptPayload,\n  evalFeature as _evalFeature,\n  getAllStickyBucketAssignmentDocs,\n  getApiHosts,\n  getTrackingUserContext,\n  runExperiment,\n} from \"./core\";\nimport { StickyBucketService } from \"./sticky-bucket-service\";\n\nconst SDK_VERSION = loadSDKVersion();\n\nexport class GrowthBookClient<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  AppFeatures extends Record<string, any> = Record<string, any>,\n> {\n  public debug: boolean;\n  public ready: boolean;\n  public version: string;\n\n  // Properties and methods that start with \"_\" are mangled by Terser (saves ~150 bytes)\n  private _options: ClientOptions;\n\n  private _features: FeatureDefinitions;\n  private _experiments: AutoExperiment[];\n  private _payload: FeatureApiResponse | undefined;\n  private _decryptedPayload: FeatureApiResponse | undefined;\n  private _destroyed?: boolean;\n\n  constructor(options?: ClientOptions) {\n    options = options || {};\n    // These properties are all initialized in the constructor instead of above\n    // This saves ~80 bytes in the final output\n    this.version = SDK_VERSION;\n    this._options = options;\n    this.debug = !!options.debug;\n    this.ready = false;\n    this._features = {};\n    this._experiments = [];\n\n    this.log = this.log.bind(this);\n\n    if (options.plugins) {\n      for (const plugin of options.plugins) {\n        plugin(this);\n      }\n    }\n  }\n\n  public async setPayload(payload: FeatureApiResponse): Promise<void> {\n    this._payload = payload;\n    const data = await decryptPayload(payload, this._options.decryptionKey);\n    this._decryptedPayload = data;\n    if (data.features) {\n      this._features = data.features;\n    }\n    if (data.experiments) {\n      this._experiments = data.experiments;\n    }\n    if (data.savedGroups) {\n      this._options.savedGroups = data.savedGroups;\n    }\n    if (data.contextualBandits) {\n      this._options.contextualBandits = data.contextualBandits;\n    }\n    this.ready = true;\n  }\n\n  public initSync(options: InitSyncOptions): GrowthBookClient<AppFeatures> {\n    const payload = options.payload;\n\n    if (payload.encryptedExperiments || payload.encryptedFeatures) {\n      throw new Error(\"initSync does not support encrypted payloads\");\n    }\n\n    this._payload = payload;\n    this._decryptedPayload = payload;\n    if (payload.features) {\n      this._features = payload.features;\n    }\n    if (payload.savedGroups) {\n      this._options.savedGroups = payload.savedGroups;\n    }\n    if (payload.contextualBandits) {\n      this._options.contextualBandits = payload.contextualBandits;\n    }\n    if (payload.experiments) {\n      this._experiments = payload.experiments;\n    }\n\n    this.ready = true;\n\n    startStreaming(this, options);\n\n    return this;\n  }\n\n  public async init(options?: InitOptions): Promise<InitResponse> {\n    options = options || {};\n\n    if (options.cacheSettings) {\n      configureCache(options.cacheSettings);\n    }\n\n    if (options.payload) {\n      await this.setPayload(options.payload);\n      startStreaming(this, options);\n      return {\n        success: true,\n        source: \"init\",\n      };\n    } else {\n      const { data, ...res } = await this._refresh({\n        ...options,\n        allowStale: true,\n      });\n      startStreaming(this, options);\n      await this.setPayload(data || {});\n      return res;\n    }\n  }\n\n  public async refreshFeatures(\n    options?: RefreshFeaturesOptions,\n  ): Promise<void> {\n    const res = await this._refresh({\n      ...(options || {}),\n      allowStale: false,\n    });\n    if (res.data) {\n      await this.setPayload(res.data);\n    }\n  }\n\n  public getApiInfo(): [ApiHost, ClientKey] {\n    return [this.getApiHosts().apiHost, this.getClientKey()];\n  }\n  public getApiHosts() {\n    return getApiHosts(this._options);\n  }\n  public getClientKey(): string {\n    return this._options.clientKey || \"\";\n  }\n  public getPayload(): FeatureApiResponse {\n    return (\n      this._payload || {\n        features: this.getFeatures(),\n        experiments: this._experiments || [],\n      }\n    );\n  }\n  public getDecryptedPayload(): FeatureApiResponse {\n    return this._decryptedPayload || this.getPayload();\n  }\n\n  private async _refresh({\n    timeout,\n    skipCache,\n    allowStale,\n    streaming,\n  }: RefreshFeaturesOptions & {\n    allowStale?: boolean;\n    streaming?: boolean;\n  }) {\n    if (!this._options.clientKey) {\n      throw new Error(\"Missing clientKey\");\n    }\n    // Trigger refresh in feature repository\n    return refreshFeatures({\n      instance: this,\n      timeout,\n      skipCache: skipCache || this._options.disableCache,\n      allowStale,\n      backgroundSync: streaming ?? true,\n    });\n  }\n\n  public getFeatures() {\n    return this._features || {};\n  }\n\n  public getGlobalAttributes(): Attributes {\n    return this._options.globalAttributes || {};\n  }\n  public setGlobalAttributes(attributes: Attributes) {\n    this._options.globalAttributes = attributes;\n  }\n\n  public destroy(options?: DestroyOptions) {\n    options = options || {};\n    this._destroyed = true;\n    unsubscribe(this);\n    if (options.destroyAllStreams) {\n      clearAutoRefresh();\n    }\n\n    // Release references to save memory\n    this._features = {};\n    this._experiments = [];\n    this._decryptedPayload = undefined;\n    this._payload = undefined;\n    this._options = {};\n  }\n\n  public isDestroyed() {\n    return !!this._destroyed;\n  }\n\n  public setEventLogger(logger: EventLogger) {\n    this._options.eventLogger = logger;\n  }\n\n  public logEvent(\n    eventName: string,\n    properties: EventProperties,\n    userContext: UserContext,\n  ) {\n    if (this._options.eventLogger) {\n      const ctx = this._getEvalContext(userContext);\n      this._options.eventLogger(\n        eventName,\n        properties,\n        getTrackingUserContext(ctx.user),\n      );\n    }\n  }\n\n  public runInlineExperiment<T>(\n    experiment: Experiment<T>,\n    userContext: UserContext,\n  ): Result<T> {\n    const { result } = runExperiment(\n      experiment,\n      null,\n      this._getEvalContext(userContext),\n    );\n    return result;\n  }\n\n  private _getEvalContext(userContext: UserContext): EvalContext {\n    if (this._options.globalAttributes) {\n      userContext = {\n        ...userContext,\n        attributes: {\n          ...this._options.globalAttributes,\n          ...userContext.attributes,\n        },\n      };\n    }\n\n    return {\n      user: userContext,\n      global: this._getGlobalContext(),\n      stack: {\n        evaluatedFeatures: new Set(),\n      },\n    };\n  }\n\n  private _getGlobalContext(): GlobalContext {\n    return {\n      features: this._features,\n      experiments: this._experiments,\n      log: this.log,\n      enabled: this._options.enabled,\n      qaMode: this._options.qaMode,\n      savedGroups: this._options.savedGroups,\n      contextualBandits: this._options.contextualBandits,\n      forcedFeatureValues: this._options.forcedFeatureValues,\n      forcedVariations: this._options.forcedVariations,\n      trackingCallback: this._options.trackingCallback,\n      onFeatureUsage: this._options.onFeatureUsage,\n      eventLogger: this._options.eventLogger,\n    };\n  }\n\n  public isOn<K extends string & keyof AppFeatures = string>(\n    key: K,\n    userContext: UserContext,\n  ): boolean {\n    return this.evalFeature(key, userContext).on;\n  }\n\n  public isOff<K extends string & keyof AppFeatures = string>(\n    key: K,\n    userContext: UserContext,\n  ): boolean {\n    return this.evalFeature(key, userContext).off;\n  }\n\n  public getFeatureValue<\n    V extends AppFeatures[K],\n    K extends string & keyof AppFeatures = string,\n  >(key: K, defaultValue: V, userContext: UserContext): WidenPrimitives<V> {\n    const value = this.evalFeature<WidenPrimitives<V>, K>(\n      key,\n      userContext,\n    ).value;\n    return value === null ? (defaultValue as WidenPrimitives<V>) : value;\n  }\n\n  public evalFeature<\n    V extends AppFeatures[K],\n    K extends string & keyof AppFeatures = string,\n  >(id: K, userContext: UserContext): FeatureResult<V | null> {\n    return _evalFeature(id, this._getEvalContext(userContext));\n  }\n\n  log(msg: string, ctx: Record<string, unknown>) {\n    if (!this.debug) return;\n    if (this._options.log) this._options.log(msg, ctx);\n    else console.log(msg, ctx);\n  }\n\n  public setTrackingCallback(callback: TrackingCallbackWithUser) {\n    this._options.trackingCallback = callback;\n  }\n\n  public setFeatureUsageCallback(callback: FeatureUsageCallback) {\n    this._options.onFeatureUsage = callback;\n  }\n\n  public async applyStickyBuckets(\n    partialContext: Omit<\n      UserContext,\n      \"stickyBucketService\" | \"stickyBucketAssignmentDocs\"\n    >,\n    stickyBucketService: StickyBucketService,\n  ): Promise<UserContext> {\n    const ctx = this._getEvalContext(partialContext);\n\n    const stickyBucketAssignmentDocs = await getAllStickyBucketAssignmentDocs(\n      ctx,\n      stickyBucketService,\n    );\n\n    return {\n      ...partialContext,\n      stickyBucketAssignmentDocs,\n      saveStickyBucketAssignmentDoc: (doc) =>\n        stickyBucketService.saveAssignments(doc),\n    };\n  }\n\n  public createScopedInstance(\n    userContext: UserContext,\n    userPlugins?: Plugin[],\n  ) {\n    return new UserScopedGrowthBook(this, userContext, [\n      ...(this._options.plugins || []),\n      ...(userPlugins || []),\n    ]);\n  }\n}\n\nexport class UserScopedGrowthBook<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  AppFeatures extends Record<string, any> = Record<string, any>,\n> {\n  private _gb: GrowthBookClient;\n  private _userContext: UserContext;\n  public logs: Array<LogUnion>;\n\n  constructor(\n    gb: GrowthBookClient<AppFeatures>,\n    userContext: UserContext,\n    plugins?: Plugin[],\n  ) {\n    this._gb = gb;\n    this._userContext = userContext;\n    this.logs = [];\n\n    this._userContext.trackedExperiments =\n      this._userContext.trackedExperiments || new Set();\n    this._userContext.trackedFeatureUsage =\n      this._userContext.trackedFeatureUsage || {};\n    this._userContext.devLogs = this.logs;\n\n    if (plugins) {\n      for (const plugin of plugins) {\n        plugin(this);\n      }\n    }\n  }\n\n  public runInlineExperiment<T>(experiment: Experiment<T>): Result<T> {\n    return this._gb.runInlineExperiment(experiment, this._userContext);\n  }\n\n  public isOn<K extends string & keyof AppFeatures = string>(key: K): boolean {\n    return this._gb.isOn(key, this._userContext);\n  }\n\n  public isOff<K extends string & keyof AppFeatures = string>(key: K): boolean {\n    return this._gb.isOff(key, this._userContext);\n  }\n\n  public getFeatureValue<\n    V extends AppFeatures[K],\n    K extends string & keyof AppFeatures = string,\n  >(key: K, defaultValue: V): WidenPrimitives<V> {\n    return this._gb.getFeatureValue(key, defaultValue, this._userContext);\n  }\n\n  public evalFeature<\n    V extends AppFeatures[K],\n    K extends string & keyof AppFeatures = string,\n  >(id: K): FeatureResult<V | null> {\n    return this._gb.evalFeature(id, this._userContext);\n  }\n\n  public logEvent(eventName: string, properties?: EventProperties) {\n    if (this._userContext.enableDevMode) {\n      this.logs.push({\n        eventName,\n        properties,\n        timestamp: Date.now().toString(),\n        logType: \"event\",\n      });\n    }\n    this._gb.logEvent(eventName, properties || {}, this._userContext);\n  }\n\n  public setTrackingCallback(cb: TrackingCallback) {\n    this._userContext.trackingCallback = cb;\n  }\n  public setFeatureUsageCallback(cb: FeatureUsageCallback) {\n    this._userContext.onFeatureUsage = cb;\n  }\n  public getApiInfo(): [ApiHost, ClientKey] {\n    return this._gb.getApiInfo();\n  }\n  public getClientKey() {\n    return this._gb.getClientKey();\n  }\n  public setURL(url: string) {\n    this._userContext.url = url;\n  }\n  public updateAttributes(attributes: Attributes) {\n    this._userContext.attributes = {\n      ...this._userContext.attributes,\n      ...attributes,\n    };\n  }\n  public setAttributeOverrides(overrides: Attributes) {\n    this._userContext.attributeOverrides = overrides;\n  }\n  public async setForcedVariations(vars: Record<string, number>) {\n    this._userContext.forcedVariations = vars || {};\n  }\n  // eslint-disable-next-line\n  public setForcedFeatures(map: Map<string, any>) {\n    this._userContext.forcedFeatureValues = map;\n  }\n  public getUserContext() {\n    return this._userContext;\n  }\n  public getVersion() {\n    return SDK_VERSION;\n  }\n  public getDecryptedPayload() {\n    return this._gb.getDecryptedPayload();\n  }\n  public inDevMode(): boolean {\n    return !!this._userContext.enableDevMode;\n  }\n}\n"],"mappings":"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","ignoreList":[]}