{"version":3,"file":"rpcPropagation.js","sources":["../../../src/utils/rpcPropagation.ts"],"sourcesContent":["import { stringMatchesSomePattern } from '@sentry/core';\nimport type { CloudflareOptions } from '../client';\nimport { getEffectiveRpcPropagation } from './rpcOptions';\n\nconst PROPAGATE_TO_NONE = (): boolean => false;\nconst PROPAGATE_TO_ALL = (): boolean => true;\n\n/**\n * Builds the per-binding predicate that decides whether a binding takes part in RPC trace\n * propagation.\n *\n * `rpcTracePropagationBindings` wins over `enableRpcTracePropagation` as soon as it is set, an\n * allow list is the more precise statement. An empty list therefore propagates to nothing, even\n * next to `enableRpcTracePropagation: true`, which is how a receiver opts out of being a caller.\n * Only leaving it unset falls back to the boolean.\n *\n * Callers only. Receivers continue an incoming trace whenever `enableRpcTracePropagation` is on,\n * so they have nothing to match against.\n */\nexport function createRpcPropagationResolver(options: CloudflareOptions | undefined): (bindingName: string) => boolean {\n const bindings = options?.rpcTracePropagationBindings;\n\n if (bindings === undefined) {\n return options && getEffectiveRpcPropagation(options) ? PROPAGATE_TO_ALL : PROPAGATE_TO_NONE;\n }\n\n if (!bindings.length) {\n return PROPAGATE_TO_NONE;\n }\n\n // Strings must match a binding name exactly, without this, an entry of `DB` would also enable\n // propagation for a binding named `MY_DB`. Regular expressions still give pattern matching.\n return (bindingName: string) => stringMatchesSomePattern(bindingName, bindings, true);\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,oBAAoB,MAAe,KAAA;AACzC,MAAM,mBAAmB,MAAe,IAAA;AAcjC,SAAS,6BAA6B,OAAA,EAA0E;AACrH,EAAA,MAAM,WAAW,OAAA,EAAS,2BAAA;AAE1B,EAAA,IAAI,aAAa,MAAA,EAAW;AAC1B,IAAA,OAAO,OAAA,IAAW,0BAAA,CAA2B,OAAO,CAAA,GAAI,gBAAA,GAAmB,iBAAA;AAAA,EAC7E;AAEA,EAAA,IAAI,CAAC,SAAS,MAAA,EAAQ;AACpB,IAAA,OAAO,iBAAA;AAAA,EACT;AAIA,EAAA,OAAO,CAAC,WAAA,KAAwB,wBAAA,CAAyB,WAAA,EAAa,UAAU,IAAI,CAAA;AACtF;;;;"}