{"version":3,"file":"static/js/schemaFilter.63685354.chunk.js","mappings":"0FAQO,SAASA,EACdC,EACAC,G,QAGA,MAAkC,mBAAd,OAATA,QAAS,IAATA,OAAS,EAATA,EAAWC,SACbD,EAAUC,QAIY,QAAxB,EAAe,QAAf,EAAI,OAAJF,QAAI,IAAJA,OAAI,EAAJA,EAAMG,iBAAS,eAAED,eAAO,QACjC,C,uHC2BO,SAASE,EACdC,EACAC,GAEA,SAASC,EAAOC,GACd,IAAMR,EAAOK,EACPI,EAAKD,EAAIE,MAAMA,MAErB,GAAIV,GAAQS,EAAI,CACd,IAAMR,EAAYD,EAAKS,GACvB,KAAK,IAAAV,oBAAmBC,EAAMC,GAM5B,OALAO,EAAIG,YAAY,gBAAgB,gCAC3BH,EAAIE,MAAME,cAAY,CACzBC,KAAK,EACL,cAAc,KAETL,EAEP,IAAMM,EAzDd,SACEd,EACAM,G,QAEA,IAAKN,IAASe,OAAOC,KAAKhB,GACxB,MAAO,CAAC,EAGV,IAAMiB,EAAuBjB,EAAKY,aAC9BG,OAAOC,KAAKhB,EAAKY,cAAcL,QAC7B,SAACW,GAAM,OAA0B,IAA1BlB,EAAKY,aAAcM,EAAnB,IAET,GAIEC,EAAkC,GASxC,OARwB,QAAtB,EAAAb,EAASc,qBAAa,QAAI,IAAIC,SAAQ,SAACC,GACvCL,EAAqBI,SAAQ,SAACE,IACxBD,EAAEE,KAAKC,SAASF,IAAQA,EAAIE,SAASH,EAAEE,QACzCL,EAAsBO,KAAKJ,EAAEE,KAEjC,GACF,KAE8B,QAAtB,EAAAlB,EAASc,qBAAa,QAAI,IAAIO,QAAO,SAACC,EAAKN,GAUjD,OATIA,EAAEhB,SAAwB,eACxBa,EAAsBM,SAASH,EAAEE,OAEnCF,EAAEhB,SAAwB,cAAEe,SAE1B,SAACQ,GAAQ,OAACD,EAAI,UAAGN,EAAEE,KAAI,YAAIK,EAAIC,iBAAmB,CAAzC,IAIRF,CACT,GAAG,CAAC,EACN,CAoBgCG,CAA2B9B,EAAWK,GAE9DE,EAAIG,YAAY,gBAAgB,+CAC3BH,EAAIE,MAAME,cACD,OAATX,QAAS,IAATA,OAAS,EAATA,EAAWW,cACXE,G,CAKT,OAAON,CACT,CAEA,MAAO,CACLgB,KAAM,gBACNQ,QAAS,QACTC,SAAU,WAAM,UAChBC,KAAM,WAAM,OAAAC,QAAQC,SAAR,EACZC,KAAM,SACNC,KAAM/B,EACNgC,MAAOhC,EACPF,MAAOE,EACPiC,SAAUjC,EACVkC,MAAOlC,EAEX,C","sources":["node_modules/@segment/analytics-next/src/lib/is-plan-event-enabled.ts","node_modules/@segment/analytics-next/src/plugins/schema-filter/index.ts"],"sourcesContent":["import { PlanEvent, TrackPlan } from '../core/events/interfaces'\n\n/**\n * Determines whether a track event is allowed to be sent based on the\n * user's tracking plan.\n * If the user does not have a tracking plan or the event is allowed based\n * on the tracking plan configuration, returns true.\n */\nexport function isPlanEventEnabled(\n plan: TrackPlan | undefined,\n planEvent: PlanEvent | undefined\n): boolean {\n // Always prioritize the event's `enabled` status\n if (typeof planEvent?.enabled === 'boolean') {\n return planEvent.enabled\n }\n\n // Assume absence of a tracking plan means events are enabled\n return plan?.__default?.enabled ?? true\n}\n","import { LegacySettings } from '../../browser'\nimport { Context } from '../../core/context'\nimport { PlanEvent, TrackPlan } from '../../core/events/interfaces'\nimport { Plugin } from '../../core/plugin'\nimport { isPlanEventEnabled } from '../../lib/is-plan-event-enabled'\nimport { RemotePlugin } from '../remote-loader'\n\nfunction disabledActionDestinations(\n plan: PlanEvent | undefined,\n settings: LegacySettings\n): { [destination: string]: string[] } {\n if (!plan || !Object.keys(plan)) {\n return {}\n }\n\n const disabledIntegrations = plan.integrations\n ? Object.keys(plan.integrations).filter(\n (i) => plan.integrations![i] === false\n )\n : []\n\n // This accounts for cases like Fullstory, where the settings.integrations\n // contains a \"Fullstory\" object but settings.remotePlugins contains \"Fullstory (Actions)\"\n const disabledRemotePlugins: string[] = []\n ;(settings.remotePlugins ?? []).forEach((p: RemotePlugin) => {\n disabledIntegrations.forEach((int) => {\n if (p.name.includes(int) || int.includes(p.name)) {\n disabledRemotePlugins.push(p.name)\n }\n })\n })\n\n return (settings.remotePlugins ?? []).reduce((acc, p) => {\n if (p.settings['subscriptions']) {\n if (disabledRemotePlugins.includes(p.name)) {\n // @ts-expect-error element implicitly has an 'any' type because p.settings is a JSONObject\n p.settings['subscriptions'].forEach(\n // @ts-expect-error parameter 'sub' implicitly has an 'any' type\n (sub) => (acc[`${p.name} ${sub.partnerAction}`] = false)\n )\n }\n }\n return acc\n }, {})\n}\n\nexport function schemaFilter(\n track: TrackPlan | undefined,\n settings: LegacySettings\n): Plugin {\n function filter(ctx: Context): Context {\n const plan = track\n const ev = ctx.event.event\n\n if (plan && ev) {\n const planEvent = plan[ev]\n if (!isPlanEventEnabled(plan, planEvent)) {\n ctx.updateEvent('integrations', {\n ...ctx.event.integrations,\n All: false,\n 'Segment.io': true,\n })\n return ctx\n } else {\n const disabledActions = disabledActionDestinations(planEvent, settings)\n\n ctx.updateEvent('integrations', {\n ...ctx.event.integrations,\n ...planEvent?.integrations,\n ...disabledActions,\n })\n }\n }\n\n return ctx\n }\n\n return {\n name: 'Schema Filter',\n version: '0.1.0',\n isLoaded: () => true,\n load: () => Promise.resolve(),\n type: 'before',\n page: filter,\n alias: filter,\n track: filter,\n identify: filter,\n group: filter,\n }\n}\n"],"names":["isPlanEventEnabled","plan","planEvent","enabled","__default","schemaFilter","track","settings","filter","ctx","ev","event","updateEvent","integrations","All","disabledActions","Object","keys","disabledIntegrations","i","disabledRemotePlugins","remotePlugins","forEach","p","int","name","includes","push","reduce","acc","sub","partnerAction","disabledActionDestinations","version","isLoaded","load","Promise","resolve","type","page","alias","identify","group"],"sourceRoot":""}