{
  "version": 3,
  "sources": ["../../../../node_modules/@sniptt/guards/lib/guards/primitives.ts", "../../../../node_modules/@sniptt/guards/lib/guards/structural.ts", "../../../../node_modules/@sniptt/guards/lib/guards/convenience.ts", "../../../../node_modules/@sniptt/guards/lib/index.ts", "../../../../src/logic-functions/apollo-phone-webhook.function.ts", "twenty-sdk-define-stub:__twenty-sdk-define-stub__", "../../../../src/constants/universal-identifiers.ts", "../../../../src/logic-functions/utils/build-phones.ts", "../../../../src/logic-functions/utils/to-text.ts", "../../../../src/utils/is-defined.ts", "../../../../src/logic-functions/utils/extract-apollo-phone-numbers.ts", "../../../../src/logic-functions/utils/find-person-id-by-request-id.ts", "../../../../src/logic-functions/utils/get-apollo-webhook-secret.ts", "../../../../src/logic-functions/utils/update-person-record.ts", "../../../../src/utils/prune-undefined.ts", "../../../../src/logic-functions/handlers/apollo-phone-webhook-handler.ts"],
  "sourcesContent": [null, null, null, null, "import { CoreApiClient } from 'twenty-client-sdk/core';\nimport { defineLogicFunction, type RoutePayload } from 'twenty-sdk/define';\n\nimport { APOLLO_LOGIC_FUNCTION_CONSTANTS } from 'src/constants/universal-identifiers';\nimport { apolloPhoneWebhookHandler } from 'src/logic-functions/handlers/apollo-phone-webhook-handler';\nimport {\n  type ApolloPhoneWebhookPayload,\n  type ApolloPhoneWebhookResult,\n} from 'src/types/apollo-phone-webhook-payload';\nimport { isDefined } from 'src/utils/is-defined';\n\nconst apolloPhoneWebhookRouteHandler = async (\n  routePayload: RoutePayload<ApolloPhoneWebhookPayload>,\n): Promise<ApolloPhoneWebhookResult> => {\n  const body = routePayload.body;\n\n  if (!isDefined(body)) {\n    return { error: 'Apollo phone webhook payload was empty' };\n  }\n\n  const providedSecret =\n    routePayload.queryStringParameters?.secret ??\n    routePayload.headers?.['x-apollo-webhook-secret'];\n\n  return apolloPhoneWebhookHandler({\n    payload: body,\n    client: new CoreApiClient(),\n    providedSecret,\n  });\n};\n\nexport default defineLogicFunction({\n  universalIdentifier:\n    APOLLO_LOGIC_FUNCTION_CONSTANTS.phoneWebhook.universalIdentifier,\n  name: 'apollo-phone-webhook',\n  description:\n    'Receives Apollo async phone-reveal callbacks and writes the revealed phone number onto the correlated Person, matched by apolloRequestId.',\n  timeoutSeconds: 60,\n  handler: apolloPhoneWebhookRouteHandler,\n  httpRouteTriggerSettings: {\n    path: APOLLO_LOGIC_FUNCTION_CONSTANTS.phoneWebhook.path,\n    httpMethod: 'POST',\n    isAuthRequired: false,\n  },\n});\n", "\n// Auto-generated stub for twenty-sdk/define injected by the SDK CLI build.\n// Real implementations would pull in zod, twenty-shared and ~1MB of code; at\n// runtime only `default.config.handler` is consumed, so tiny no-ops suffice.\nconst __defineFactoryStub = (config) => ({\n  success: true,\n  config,\n  errors: [],\n});\n\nconst __anyHandler = {\n  get(_target, prop) {\n    if (prop === '__esModule') return true;\n    if (prop === Symbol.toPrimitive) return () => '';\n    if (typeof prop === 'symbol') return undefined;\n    return new Proxy(() => undefined, __anyHandler);\n  },\n  apply() {\n    return new Proxy(() => undefined, __anyHandler);\n  },\n};\nconst __anyStub = new Proxy(() => undefined, __anyHandler);\n\nexport const createValidationResult = __defineFactoryStub;\nexport const defineAgent = __defineFactoryStub;\nexport const defineApplication = __defineFactoryStub;\nexport const defineApplicationRole = __defineFactoryStub;\nexport const defineCommandMenuItem = __defineFactoryStub;\nexport const defineConnectionProvider = __defineFactoryStub;\nexport const defineField = __defineFactoryStub;\nexport const defineFrontComponent = __defineFactoryStub;\nexport const defineIndex = __defineFactoryStub;\nexport const defineLogicFunction = __defineFactoryStub;\nexport const defineNavigationMenuItem = __defineFactoryStub;\nexport const defineObject = __defineFactoryStub;\nexport const definePageLayout = __defineFactoryStub;\nexport const definePageLayoutTab = __defineFactoryStub;\nexport const definePermissionFlag = __defineFactoryStub;\nexport const definePostInstallLogicFunction = __defineFactoryStub;\nexport const definePreInstallLogicFunction = __defineFactoryStub;\nexport const defineRole = __defineFactoryStub;\nexport const defineSkill = __defineFactoryStub;\nexport const defineView = __defineFactoryStub;\nexport const defineViewField = __defineFactoryStub;\nexport const AggregateOperations = __anyStub;\nexport const DateDisplayFormat = __anyStub;\nexport const FieldMetadataSettingsOnClickAction = __anyStub;\nexport const FieldType = __anyStub;\nexport const HTTPMethod = __anyStub;\nexport const NavigationMenuItemType = __anyStub;\nexport const NumberDataType = __anyStub;\nexport const ObjectRecordGroupByDateGranularity = __anyStub;\nexport const OnDeleteAction = __anyStub;\nexport const PageLayoutTabLayoutMode = __anyStub;\nexport const PageLayoutType = __anyStub;\nexport const RelationType = __anyStub;\nexport const RowLevelPermissionPredicateGroupLogicalOperator = __anyStub;\nexport const RowLevelPermissionPredicateOperand = __anyStub;\nexport const STANDARD_OBJECT = __anyStub;\nexport const STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS = __anyStub;\nexport const STANDARD_PAGE_LAYOUT = __anyStub;\nexport const STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS = __anyStub;\nexport const SystemPermissionFlag = __anyStub;\nexport const ViewCalendarLayout = __anyStub;\nexport const ViewFilterGroupLogicalOperator = __anyStub;\nexport const ViewFilterOperand = __anyStub;\nexport const ViewKey = __anyStub;\nexport const ViewOpenRecordIn = __anyStub;\nexport const ViewSortDirection = __anyStub;\nexport const ViewType = __anyStub;\nexport const ViewVisibility = __anyStub;\nexport const canAccessFullAdminPanel = __anyStub;\nexport const canImpersonate = __anyStub;\nexport const every = __anyStub;\nexport const everyDefined = __anyStub;\nexport const everyEquals = __anyStub;\nexport const favoriteRecordIds = __anyStub;\nexport const featureFlags = __anyStub;\nexport const hasAnySoftDeleteFilterOnView = __anyStub;\nexport const includes = __anyStub;\nexport const includesEvery = __anyStub;\nexport const isDashboardPageLayoutInEditMode = __anyStub;\nexport const isDefined = __anyStub;\nexport const isInSidePanel = __anyStub;\nexport const isLayoutCustomizationModeEnabled = __anyStub;\nexport const isNonEmptyString = __anyStub;\nexport const isSelectAll = __anyStub;\nexport const none = __anyStub;\nexport const noneDefined = __anyStub;\nexport const noneEquals = __anyStub;\nexport const numberOfSelectedRecords = __anyStub;\nexport const objectMetadataItem = __anyStub;\nexport const objectMetadataLabel = __anyStub;\nexport const objectPermissions = __anyStub;\nexport const pageType = __anyStub;\nexport const selectedRecords = __anyStub;\nexport const some = __anyStub;\nexport const someDefined = __anyStub;\nexport const someEquals = __anyStub;\nexport const someNonEmptyString = __anyStub;\nexport const targetObjectReadPermissions = __anyStub;\nexport const targetObjectWritePermissions = __anyStub;\nexport const validateFields = __anyStub;\n", "export const APPLICATION_UNIVERSAL_IDENTIFIER =\n  '542f6e42-3811-4ea6-956c-99211b8a5de1';\n\nexport const DEFAULT_ROLE_UNIVERSAL_IDENTIFIER =\n  'eff0dd10-5535-4af1-8cdf-1e9288faf8bd';\n\n// Assignable role that gates who may trigger enrichment (spends Apollo credits).\nexport const ENRICHMENT_ROLE_UNIVERSAL_IDENTIFIER =\n  '9393797d-19eb-4f36-9679-374426f25704';\n\nexport const APOLLO_API_KEY_VARIABLE_UNIVERSAL_IDENTIFIER =\n  'ed335dda-2c2c-4740-ba3f-81edf67890fa';\n\nexport const APOLLO_PHONE_WEBHOOK_URL_VARIABLE_UNIVERSAL_IDENTIFIER =\n  'd32cfe36-b362-4521-8ae1-d05cb80f854d';\n\nexport const APOLLO_WEBHOOK_SECRET_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '98d378ea-e8a7-4b8a-bf1f-e23e5b04c077';\n\nexport const APOLLO_MAX_BULK_ENRICH_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '2da425fc-fffa-444f-9bcc-bbff78c637c1';\n\nexport const APOLLO_AUTO_ENRICH_COMPANIES_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '8928c545-46a1-4446-a2b6-01682139bad6';\n\nexport const APOLLO_LOGIC_FUNCTION_CONSTANTS = {\n  enrichPeople: { universalIdentifier: 'a77baf5a-8664-47ea-8dd2-079688e3f2be', path: '/apollo/enrich-people' },\n  enrichPerson: { universalIdentifier: '06bc1839-9239-4de8-b189-ee54cdc5241f', path: '/apollo/enrich-person' },\n  enrichCompanies: { universalIdentifier: '896b2acb-9814-444e-9c0e-efc233614ebc', path: '/apollo/enrich-companies' },\n  enrichCompany: { universalIdentifier: '9a845649-40ea-4a59-97f9-cb22beb6fb77', path: '/apollo/enrich-company' },\n  autoEnrichCompany: { universalIdentifier: '8b5a3147-4bf5-46c2-aa8e-9e5af6a76941' },\n  postInstall: { universalIdentifier: '1b2fe555-1cd3-457e-993c-4cc8c4cacd72' },\n  phoneWebhook: { universalIdentifier: '4532acfd-77dc-4391-9427-ae219bed9e48', path: '/webhook/apollo-phone' },\n} as const;\n\nexport const APOLLO_FIELD_UNIVERSAL_IDENTIFIERS = {\n  person: {\n    apolloId: '3704636b-b293-4df8-a48a-8805e6a8091f',\n    apolloHeadline: 'a76dcdbf-6e73-4f63-b5c8-fd5de9b36e7b',\n    apolloSeniority: '9dce53b3-2caf-4ade-af8a-261429b991f7',\n    apolloDepartments: '92b4c56e-a7f9-4ebe-a78f-e1cdd46cf613',\n    apolloEmailStatus: '36ffbb70-4a97-4620-bc20-3d73c384be87',\n    apolloPhotoUrl: '4d974d8a-8c9e-45d6-aeff-5a49607b4019',\n    apolloEmploymentHistory: '3dad622b-4f3e-4ed3-b83b-663458add97d',\n    apolloPersonalEmails: 'c2c44e21-978e-4c13-ae67-0e6354b003aa',\n    apolloPhone: 'd766473e-38d5-4a8f-b454-6080a5bd88ea',\n    apolloPhoneStatus: 'bcddf586-5bc9-4e27-8798-ddfd7c28997a',\n    apolloRequestId: '81f4bc6e-f96a-4e3c-8311-dac54911ce17',\n    apolloEnrichmentStatus: '57c1a067-4f03-4ff3-bd81-23fe0cb1109b',\n    apolloLastEnrichedAt: 'ded5615f-bc7d-41a3-8965-6ab6c109da0a',\n    apolloRawPayload: '7f186737-cd22-43bb-9939-fb7848879256',\n  },\n  company: {\n    apolloId: 'd2293217-8822-4d50-bf1f-dc16238cbb60',\n    apolloIndustry: '60bf2068-a5ee-45d3-a6e5-fd8734cd04c3',\n    apolloEmployees: '134cb7a3-92d8-4f38-9799-26026d39044f',\n    apolloAnnualRevenue: '50c6a1a9-e710-4b3d-a87d-d89cfa5af43d',\n    apolloFoundedYear: 'f9c71381-6e7b-4e4b-bc5a-bad6ed75e43f',\n    apolloKeywords: 'af879dda-bbd0-408f-ac6f-50e11e8f2c53',\n    apolloTechnologies: 'd9849f05-5726-466c-92ff-ad02ddb3a538',\n    apolloTotalFunding: '0d962e01-d737-4330-9161-078421c3a5e3',\n    apolloLatestFundingStage: 'ae7824a2-839b-4e41-b872-f85e8143125e',\n    apolloLinkedinUrl: 'bac70564-38db-4efb-8afd-91753e4adeac',\n    apolloPhone: '6e889e80-c7c9-44ca-af9c-953175ff5b3c',\n    apolloLocation: '18e5b4e5-86ee-41de-99a9-f2c16a97c01f',\n    apolloHeadcountGrowth6mo: '6024a0df-a9a3-43bd-ac48-9f0864f3e5c5',\n    apolloHeadcountGrowth12mo: '6916fb0a-e440-402a-b272-24314bac4df7',\n    apolloNaicsCodes: '6a851361-37cf-4aa5-859c-3080f9eec9e8',\n    apolloEnrichmentStatus: '09dbbab3-4b06-400b-ae94-66950ef557f8',\n    apolloLastEnrichedAt: '0116d85f-43eb-4826-a344-3a475674df28',\n    apolloRawPayload: 'd31f9326-db94-4c48-8b7c-d2a5dabeb844',\n  },\n} as const;\n\nexport const APOLLO_VIEW_UNIVERSAL_IDENTIFIERS = {\n  enrichedCompanies: 'a1c0f35b-0fdd-466c-8dfb-5ec82cfd5a7e',\n  enrichedPeople: '75cd5bbb-ad41-4e42-b3a2-3b103ff4c944',\n} as const;\n\nexport const APOLLO_FRONT_COMPONENT_UNIVERSAL_IDENTIFIERS = {\n  enrichCompanies: '90cefc28-06b8-4906-839b-93e21f4c55d8',\n  enrichPeople: '41f99952-b612-4a79-8a07-4b7af6201b77',\n};\n\nexport const APOLLO_COMMAND_MENU_ITEM_UNIVERSAL_IDENTIFIERS = {\n  enrichCompanies: '66630fbd-b5d4-4c1c-8354-045848ab5a36',\n  enrichPeople: 'c1b8c22a-80b6-4142-a02c-6fa7189e4598',\n};\n\nexport const APOLLO_SELECT_OPTION_UNIVERSAL_IDENTIFIERS = {\n  personEnrichmentStatus: {\n    matched: '4a85006d-b385-414b-9819-cb938b0af0e0',\n    notFound: '7e5880eb-230b-42d9-9c03-31bfa5c6d767',\n    error: 'c043d25e-72d1-4f5b-b3f4-74d2af9821d8',\n  },\n  companyEnrichmentStatus: {\n    matched: '83878d08-22ed-4ce4-ae72-71dd9a7cfacd',\n    notFound: '58f1b921-0e50-46c2-a736-664b5de5e20d',\n    error: 'a6ead429-930c-48fe-b096-47c7717afa11',\n  },\n  seniority: {\n    owner: 'a19fdc3d-75e6-4a0d-8e7b-f9d2d214f177',\n    founder: '25311648-f73e-4873-8bbb-bcbcb7572330',\n    cSuite: '68b90894-4b71-48f8-b7c0-10911a90761f',\n    partner: '9b628d6d-edc5-4c60-a096-aa554433f7d1',\n    vp: '97bab39b-2d3a-473c-ac49-3a82fe87f79f',\n    head: '81eec4f7-a33f-4362-809c-e920c0678941',\n    director: '254c929e-ff9c-4377-90a7-d21699207813',\n    manager: '2312114c-01b9-4784-a13b-63d298e3e05e',\n    senior: '860a9f68-6c80-4906-8e55-36e7a7a3c907',\n    entry: '27bfe3f6-d789-46f4-af63-599f823e17c4',\n    intern: 'b03af194-342a-4fd1-b2a5-443f09ff817c',\n    unpaid: '70f4d88f-f7e6-40ca-a6ac-93fdbb6fd96e',\n  },\n  emailStatus: {\n    verified: '93967d65-6a5f-4540-a428-6abd43b0141e',\n    guessed: '592c83ef-4c31-4b20-9827-61a2335da6a1',\n    unavailable: 'd0a72c06-b808-4092-b568-109cf3b1f0a4',\n    bounced: '5a5968a6-6e52-46ef-976c-c2a55690ae2e',\n    pendingManualFulfillment: '741dd3f0-ca83-475e-a33c-f459f95223ce',\n  },\n  phoneStatus: {\n    none: '2226684c-c5a1-46b2-b4d2-f4887c8cba77',\n    pending: '74372233-dca6-40fd-9f76-0b1425a8fb73',\n    revealed: '2143d2f1-b6da-46b4-a4c2-d11f18219926',\n    failed: '3e9faee6-ca0c-426b-89eb-5b5db840ac86',\n  },\n} as const;\n", "import { isNonEmptyArray } from '@sniptt/guards';\n\nimport { toText } from 'src/logic-functions/utils/to-text';\nimport { type PhonesValue } from 'src/types/phones-value';\nimport { isDefined } from 'src/utils/is-defined';\n\nexport const buildPhones = (\n  phoneCandidates: (string | null | undefined)[],\n): PhonesValue | undefined => {\n  const uniquePhoneNumbers: string[] = [];\n  const seenPhoneNumbers = new Set<string>();\n\n  for (const candidate of phoneCandidates) {\n    const phoneNumber = toText(candidate);\n    if (!isDefined(phoneNumber) || seenPhoneNumbers.has(phoneNumber)) {\n      continue;\n    }\n\n    seenPhoneNumbers.add(phoneNumber);\n    uniquePhoneNumbers.push(phoneNumber);\n  }\n\n  const [primaryPhoneNumber, ...additionalPhoneNumbers] = uniquePhoneNumbers;\n  if (!isDefined(primaryPhoneNumber)) {\n    return undefined;\n  }\n\n  return {\n    primaryPhoneNumber,\n    primaryPhoneCountryCode: '',\n    primaryPhoneCallingCode: '',\n    additionalPhones: isNonEmptyArray(additionalPhoneNumbers)\n      ? additionalPhoneNumbers.map((phoneNumber) => ({\n          number: phoneNumber,\n          countryCode: '',\n          callingCode: '',\n        }))\n      : null,\n  };\n};\n", "import { isNonEmptyString, isString } from '@sniptt/guards';\n\nexport const toText = (value: unknown): string | undefined => {\n  if (!isString(value)) {\n    return undefined;\n  }\n\n  const trimmed = value.trim();\n\n  return isNonEmptyString(trimmed) ? trimmed : undefined;\n};\n", "import { isNull, isUndefined } from '@sniptt/guards';\n\nexport const isDefined = <T>(\n  value: T | null | undefined,\n): value is NonNullable<T> => !isUndefined(value) && !isNull(value);\n", "import { isArray, isObject, isString } from '@sniptt/guards';\n\nimport { toText } from 'src/logic-functions/utils/to-text';\nimport { type ApolloPhoneWebhookPayload } from 'src/types/apollo-phone-webhook-payload';\nimport { isDefined } from 'src/utils/is-defined';\n\nconst MAX_PHONE_NUMBERS = 25;\n\nconst toPhoneList = (value: unknown): unknown[] => (isArray(value) ? value : []);\n\n// Pulls phone-number strings out of an Apollo phone-reveal webhook payload,\n// tolerating both bare strings and Apollo's phone objects.\nexport const extractApolloPhoneNumbers = (\n  payload: ApolloPhoneWebhookPayload,\n): string[] => {\n  const rawEntries = [\n    ...toPhoneList(payload.phone_numbers),\n    ...toPhoneList(payload.person?.phone_numbers),\n    ...toPhoneList(payload.people).flatMap((person) =>\n      isObject(person) ? toPhoneList((person as ApolloPhonePayload).phone_numbers) : [],\n    ),\n  ];\n\n  const numbers: string[] = [];\n  for (const entry of rawEntries.slice(0, MAX_PHONE_NUMBERS)) {\n    if (isString(entry)) {\n      const value = toText(entry);\n      if (isDefined(value)) {\n        numbers.push(value);\n      }\n      continue;\n    }\n\n    if (isObject(entry)) {\n      const record = entry as Record<string, unknown>;\n      const value =\n        toText(record.sanitized_number) ??\n        toText(record.raw_number) ??\n        toText(record.number);\n      if (isDefined(value)) {\n        numbers.push(value);\n      }\n    }\n  }\n\n  return numbers;\n};\n\ntype ApolloPhonePayload = { phone_numbers?: unknown[] | null };\n", "import { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { toText } from 'src/logic-functions/utils/to-text';\n\nexport const findPersonIdByRequestId = async ({\n  client,\n  requestId,\n}: {\n  client: CoreApiClient;\n  requestId: string;\n}): Promise<string | undefined> => {\n  const result = (await client.query({\n    people: {\n      __args: {\n        // Only match a Person that is actually awaiting a reveal, so a replayed\n        // or duplicate webhook delivery for an already-resolved id is a no-op.\n        filter: {\n          apolloRequestId: { eq: requestId },\n          apolloPhoneStatus: { eq: 'PENDING' },\n        },\n        first: 1,\n      },\n      edges: { node: { id: true } },\n    },\n  })) as { people?: { edges?: { node?: { id?: string } }[] } };\n\n  return toText(result.people?.edges?.[0]?.node?.id);\n};\n", "import { toText } from 'src/logic-functions/utils/to-text';\n\n// Optional shared secret for the public phone webhook. When set, the webhook\n// handler requires callers to present a matching secret (via ?secret=<value>\n// query param or x-apollo-webhook-secret header). When unset, the webhook stays\n// open (backward compatible).\nexport const getApolloWebhookSecret = (): string | undefined =>\n  toText(process.env.APOLLO_WEBHOOK_SECRET);\n", "import { type CoreApiClient } from 'twenty-client-sdk/core';\n\nexport const updatePersonRecord = async ({\n  client,\n  recordId,\n  data,\n}: {\n  client: CoreApiClient;\n  recordId: string;\n  data: Record<string, unknown>;\n}): Promise<void> => {\n  await client.mutation({\n    updatePerson: { __args: { id: recordId, data }, id: true },\n  });\n};\n", "import { isUndefined } from '@sniptt/guards';\n\nexport const pruneUndefined = <TValue>(\n  record: Record<string, TValue | undefined>,\n): Record<string, TValue> => {\n  const prunedRecord: Record<string, TValue> = {};\n\n  for (const [key, value] of Object.entries(record)) {\n    if (!isUndefined(value)) {\n      prunedRecord[key] = value;\n    }\n  }\n\n  return prunedRecord;\n};\n", "import { type CoreApiClient } from 'twenty-client-sdk/core';\n\nimport { buildPhones } from 'src/logic-functions/utils/build-phones';\nimport { extractApolloPhoneNumbers } from 'src/logic-functions/utils/extract-apollo-phone-numbers';\nimport { findPersonIdByRequestId } from 'src/logic-functions/utils/find-person-id-by-request-id';\nimport { getApolloWebhookSecret } from 'src/logic-functions/utils/get-apollo-webhook-secret';\nimport { toText } from 'src/logic-functions/utils/to-text';\nimport { updatePersonRecord } from 'src/logic-functions/utils/update-person-record';\nimport {\n  type ApolloPhoneWebhookPayload,\n  type ApolloPhoneWebhookResult,\n} from 'src/types/apollo-phone-webhook-payload';\nimport { isDefined } from 'src/utils/is-defined';\nimport { pruneUndefined } from 'src/utils/prune-undefined';\n\nexport const apolloPhoneWebhookHandler = async ({\n  payload,\n  client,\n  providedSecret,\n}: {\n  payload: ApolloPhoneWebhookPayload;\n  client: CoreApiClient;\n  providedSecret?: string;\n}): Promise<ApolloPhoneWebhookResult> => {\n  const configuredSecret = getApolloWebhookSecret();\n  if (isDefined(configuredSecret) && providedSecret !== configuredSecret) {\n    return {\n      skipped: true,\n      reason: 'Apollo phone webhook secret is missing or does not match',\n    };\n  }\n\n  const requestId = toText(payload.request_id);\n  if (!isDefined(requestId)) {\n    return { error: 'Apollo phone webhook payload is missing request_id' };\n  }\n\n  const personId = await findPersonIdByRequestId({ client, requestId });\n  if (!isDefined(personId)) {\n    return {\n      skipped: true,\n      reason: 'No Person is awaiting a phone reveal for this request_id',\n      requestId,\n    };\n  }\n\n  const phoneNumbers = extractApolloPhoneNumbers(payload);\n  const primaryPhone = phoneNumbers[0];\n  const wasRevealed = isDefined(primaryPhone);\n\n  await updatePersonRecord({\n    client,\n    recordId: personId,\n    data: pruneUndefined({\n      phones: buildPhones(phoneNumbers),\n      apolloPhone: primaryPhone,\n      apolloPhoneStatus: wasRevealed ? 'REVEALED' : 'FAILED',\n      // Clear the request id so this reveal can't be replayed/re-matched: the\n      // record leaves the PENDING state and no longer satisfies the lookup.\n      apolloRequestId: null,\n    }),\n  });\n\n  return { action: 'updated', recordId: personId, requestId, phone: primaryPhone };\n};\n"],
  "mappings": "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",
  "names": ["isUndefined", "isString", "isNull", "isObject", "isArray", "isNonEmptyArray", "isNonEmptyString", "import_guards", "import_guards", "import_guards", "import_guards"]
}
