{"version":3,"sources":["/home/runner/work/flags/flags/packages/vercel-flags-core/dist/openfeature.default.cjs","../src/openfeature.make.ts","../src/openfeature.default.ts"],"names":["createClient"],"mappings":"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","file":"/home/runner/work/flags/flags/packages/vercel-flags-core/dist/openfeature.default.cjs","sourcesContent":[null,"/**\n * OpenFeature provider for Next.js App Router\n *\n * There is also openfeature.default.ts which targets default runtimes.\n * If you update this file, please update openfeature.default.ts as well.\n *\n * This file should stay equivalent to openfeature.default.ts, except that it\n * imports from index.next-js to get cached functions.\n */\n\nimport {\n  ErrorCode,\n  type EvaluationContext,\n  type JsonValue,\n  type Provider,\n  type ProviderMetadata,\n  type ResolutionDetails,\n  type ResolutionReason,\n  StandardResolutionReasons,\n} from '@openfeature/server-sdk';\nimport { type FlagsClient, ResolutionReason as Reason } from './types';\n\nfunction mapReason(reason: Reason): ResolutionReason {\n  switch (reason) {\n    case Reason.ERROR:\n      return StandardResolutionReasons.ERROR;\n    case Reason.PAUSED:\n      return StandardResolutionReasons.STATIC;\n    case Reason.FALLTHROUGH:\n      return StandardResolutionReasons.DEFAULT;\n    case Reason.TARGET_MATCH:\n    case Reason.RULE_MATCH:\n      return StandardResolutionReasons.TARGETING_MATCH;\n    default:\n      return StandardResolutionReasons.UNKNOWN;\n  }\n}\n\nexport function make(\n  createClient: (sdkKeyOrConnectionString: string) => FlagsClient,\n  defaultFlagsClient: FlagsClient,\n) {\n  return class VercelProvider implements Provider {\n    readonly metadata: ProviderMetadata = {\n      name: 'vercel-nodejs-provider',\n    } as const;\n\n    readonly runsOn = 'server';\n    readonly client: FlagsClient;\n\n    constructor();\n    constructor(client: FlagsClient);\n    constructor(connectionString: string);\n    constructor(\n      clientOrConnectionString: FlagsClient | string = defaultFlagsClient,\n    ) {\n      if (typeof clientOrConnectionString === 'string') {\n        this.client = createClient(clientOrConnectionString);\n      } else {\n        this.client = clientOrConnectionString;\n      }\n    }\n\n    async initialize(context?: EvaluationContext): Promise<void> {\n      await this.client.initialize();\n    }\n\n    async onClose() {\n      await this.client.shutdown();\n    }\n\n    async resolveBooleanEvaluation(\n      flagKey: string,\n      defaultValue: boolean,\n      context: EvaluationContext,\n    ): Promise<ResolutionDetails<boolean>> {\n      const result = await this.client.evaluate<boolean>(\n        flagKey,\n        defaultValue,\n        context,\n      );\n\n      if (result.reason === Reason.ERROR) {\n        return {\n          value: defaultValue,\n          reason: StandardResolutionReasons.ERROR,\n          errorCode: ErrorCode.GENERAL,\n          errorMessage: result.errorMessage,\n        };\n      }\n\n      if (typeof result.value !== 'boolean') {\n        return {\n          value: defaultValue,\n          reason: StandardResolutionReasons.ERROR,\n          errorCode: ErrorCode.TYPE_MISMATCH,\n          errorMessage: `Expected boolean value for flag \"${flagKey}\"`,\n        };\n      }\n\n      return {\n        value: result.value,\n        reason: mapReason(result.reason),\n      };\n    }\n\n    async resolveStringEvaluation(\n      flagKey: string,\n      defaultValue: string,\n      context: EvaluationContext,\n    ): Promise<ResolutionDetails<string>> {\n      const result = await this.client.evaluate<string>(\n        flagKey,\n        defaultValue,\n        context,\n      );\n\n      if (result.reason === Reason.ERROR) {\n        return {\n          value: defaultValue,\n          reason: StandardResolutionReasons.ERROR,\n          errorCode: ErrorCode.GENERAL,\n          errorMessage: result.errorMessage,\n        };\n      }\n\n      if (typeof result.value !== 'string') {\n        return {\n          value: defaultValue,\n          reason: StandardResolutionReasons.ERROR,\n          errorCode: ErrorCode.TYPE_MISMATCH,\n          errorMessage: `Expected string value for flag \"${flagKey}\"`,\n        };\n      }\n\n      return {\n        value: result.value,\n        reason: mapReason(result.reason),\n        errorMessage: result.errorMessage,\n      };\n    }\n\n    async resolveNumberEvaluation(\n      flagKey: string,\n      defaultValue: number,\n      context: EvaluationContext,\n    ): Promise<ResolutionDetails<number>> {\n      const result = await this.client.evaluate<number>(\n        flagKey,\n        defaultValue,\n        context,\n      );\n\n      if (result.reason === Reason.ERROR) {\n        return {\n          value: defaultValue,\n          reason: StandardResolutionReasons.ERROR,\n          errorCode: ErrorCode.GENERAL,\n          errorMessage: result.errorMessage,\n        };\n      }\n\n      if (typeof result.value !== 'number') {\n        return {\n          value: defaultValue,\n          reason: StandardResolutionReasons.ERROR,\n          errorCode: ErrorCode.TYPE_MISMATCH,\n          errorMessage: `Expected number value for flag \"${flagKey}\"`,\n        };\n      }\n\n      return {\n        value: result.value,\n        reason: mapReason(result.reason),\n        errorMessage: result.errorMessage,\n      };\n    }\n\n    async resolveObjectEvaluation<T extends JsonValue>(\n      flagKey: string,\n      defaultValue: T,\n      context: EvaluationContext,\n    ): Promise<ResolutionDetails<T>> {\n      const result = await this.client.evaluate<T>(\n        flagKey,\n        defaultValue,\n        context,\n      );\n\n      if (result.reason === Reason.ERROR) {\n        return {\n          value: defaultValue,\n          reason: StandardResolutionReasons.ERROR,\n          errorCode: ErrorCode.GENERAL,\n          errorMessage: result.errorMessage,\n        };\n      }\n\n      return {\n        value: result.value,\n        reason: mapReason(result.reason),\n        errorMessage: result.errorMessage,\n      };\n    }\n  };\n}\n","/**\n * OpenFeature provider for default runtimes\n *\n * There is also openfeature.next-js.ts which targets Next.js specifically.\n * If you update this file, please update openfeature.next-js.ts as well.\n *\n * Try keeping this file small. Export through openfeature.make.\n */\n\nimport { createClient, flagsClient } from './index.default';\nimport { make } from './openfeature.make';\n\nexport const VercelProvider = make(createClient, flagsClient);\n"]}