{"version":3,"file":"propagation.cjs","names":["NoopTextMapPropagator","createBaggage","getBaggage","getActiveBaggage","setBaggage","deleteBaggage","registerGlobal","DiagAPI","defaultTextMapSetter","defaultTextMapGetter","getGlobal"],"sources":["../../src/api/propagation.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Context } from '../context/types';\nimport {\n  getGlobal,\n  registerGlobal,\n  unregisterGlobal,\n} from '../internal/global-utils';\nimport { NoopTextMapPropagator } from '../propagation/NoopTextMapPropagator';\nimport type {\n  TextMapGetter,\n  TextMapPropagator,\n  TextMapSetter,\n} from '../propagation/TextMapPropagator';\nimport {\n  defaultTextMapGetter,\n  defaultTextMapSetter,\n} from '../propagation/TextMapPropagator';\nimport {\n  getBaggage,\n  getActiveBaggage,\n  setBaggage,\n  deleteBaggage,\n} from '../baggage/context-helpers';\nimport { createBaggage } from '../baggage/utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'propagation';\nconst NOOP_TEXT_MAP_PROPAGATOR = new NoopTextMapPropagator();\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Propagation API\n *\n * @since 1.0.0\n */\nexport class PropagationAPI {\n  private static _instance?: PropagationAPI;\n\n  /** Empty private constructor prevents end users from constructing a new instance of the API */\n  private constructor() {}\n\n  /** Get the singleton instance of the Propagator API */\n  public static getInstance(): PropagationAPI {\n    if (!this._instance) {\n      this._instance = new PropagationAPI();\n    }\n\n    return this._instance;\n  }\n\n  /**\n   * Set the current propagator.\n   *\n   * @returns true if the propagator was successfully registered, else false\n   */\n  public setGlobalPropagator(propagator: TextMapPropagator): boolean {\n    return registerGlobal(API_NAME, propagator, DiagAPI.instance());\n  }\n\n  /**\n   * Inject context into a carrier to be propagated inter-process\n   *\n   * @param context Context carrying tracing data to inject\n   * @param carrier carrier to inject context into\n   * @param setter Function used to set values on the carrier\n   */\n  public inject<Carrier>(\n    context: Context,\n    carrier: Carrier,\n    setter: TextMapSetter<Carrier> = defaultTextMapSetter\n  ): void {\n    return this._getGlobalPropagator().inject(context, carrier, setter);\n  }\n\n  /**\n   * Extract context from a carrier\n   *\n   * @param context Context which the newly created context will inherit from\n   * @param carrier Carrier to extract context from\n   * @param getter Function used to extract keys from a carrier\n   */\n  public extract<Carrier>(\n    context: Context,\n    carrier: Carrier,\n    getter: TextMapGetter<Carrier> = defaultTextMapGetter\n  ): Context {\n    return this._getGlobalPropagator().extract(context, carrier, getter);\n  }\n\n  /**\n   * Return a list of all fields which may be used by the propagator.\n   */\n  public fields(): string[] {\n    return this._getGlobalPropagator().fields();\n  }\n\n  /** Remove the global propagator */\n  public disable() {\n    unregisterGlobal(API_NAME, DiagAPI.instance());\n  }\n\n  public createBaggage = createBaggage;\n\n  public getBaggage = getBaggage;\n\n  /** @since 1.4.0 */\n  public getActiveBaggage = getActiveBaggage;\n\n  public setBaggage = setBaggage;\n\n  public deleteBaggage = deleteBaggage;\n\n  private _getGlobalPropagator(): TextMapPropagator {\n    return getGlobal(API_NAME) || NOOP_TEXT_MAP_PROPAGATOR;\n  }\n}\n"],"mappings":";;;;;;;AA8BA,MAAM,WAAW;AACjB,MAAM,2BAA2B,IAAIA,8BAAAA,sBAAsB;;;;;;AAO3D,IAAa,iBAAb,MAAa,eAAe;;CAI1B,cAAsB;EA8DtB,KAAO,gBAAgBC,cAAAA;EAEvB,KAAO,aAAaC,wBAAAA;EAGpB,KAAO,mBAAmBC,wBAAAA;EAE1B,KAAO,aAAaC,wBAAAA;EAEpB,KAAO,gBAAgBC,wBAAAA;CAvEA;;CAGvB,OAAc,cAA8B;EAC1C,IAAI,CAAC,KAAK,WACR,KAAK,YAAY,IAAI,eAAe;EAGtC,OAAO,KAAK;CACd;;;;;;CAOA,oBAA2B,YAAwC;EACjE,OAAOC,qBAAAA,eAAe,UAAU,YAAYC,aAAAA,QAAQ,SAAS,CAAC;CAChE;;;;;;;;CASA,OACE,SACA,SACA,SAAiCC,0BAAAA,sBAC3B;EACN,OAAO,KAAK,qBAAqB,CAAC,CAAC,OAAO,SAAS,SAAS,MAAM;CACpE;;;;;;;;CASA,QACE,SACA,SACA,SAAiCC,0BAAAA,sBACxB;EACT,OAAO,KAAK,qBAAqB,CAAC,CAAC,QAAQ,SAAS,SAAS,MAAM;CACrE;;;;CAKA,SAA0B;EACxB,OAAO,KAAK,qBAAqB,CAAC,CAAC,OAAO;CAC5C;;CAGA,UAAiB;EACf,qBAAA,iBAAiB,UAAUF,aAAAA,QAAQ,SAAS,CAAC;CAC/C;CAaA,uBAAkD;EAChD,OAAOG,qBAAAA,UAAU,QAAQ,KAAK;CAChC;AACF"}