Rocky_Mountain_Vending/.pnpm-store/v10/files/3b/22afa478a9efb60e2999ad64227d611e0ee2573bf417b693fbd1b3143e80ef5f0167f9833837be0d156b7a3d42810c051cf69fa9fa679640f94d4c31414f8e
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

1 line
No EOL
4.3 KiB
Text

{"version":3,"file":"piiFiltering.js","sources":["../../../../src/integrations/mcp-server/piiFiltering.ts"],"sourcesContent":["/**\n * PII filtering for MCP server spans\n *\n * Removes sensitive data when sendDefaultPii is false.\n * Uses configurable attribute filtering to protect user privacy.\n */\nimport type { SpanAttributeValue } from '../../types-hoist/span';\nimport {\n CLIENT_ADDRESS_ATTRIBUTE,\n CLIENT_PORT_ATTRIBUTE,\n MCP_LOGGING_MESSAGE_ATTRIBUTE,\n MCP_PROMPT_RESULT_DESCRIPTION_ATTRIBUTE,\n MCP_PROMPT_RESULT_MESSAGE_CONTENT_ATTRIBUTE,\n MCP_PROMPT_RESULT_PREFIX,\n MCP_REQUEST_ARGUMENT,\n MCP_RESOURCE_URI_ATTRIBUTE,\n MCP_TOOL_RESULT_CONTENT_ATTRIBUTE,\n MCP_TOOL_RESULT_PREFIX,\n} from './attributes';\n\n/**\n * PII attributes that should be removed when sendDefaultPii is false\n * @internal\n */\nconst PII_ATTRIBUTES = new Set([\n CLIENT_ADDRESS_ATTRIBUTE,\n CLIENT_PORT_ATTRIBUTE,\n MCP_LOGGING_MESSAGE_ATTRIBUTE,\n MCP_PROMPT_RESULT_DESCRIPTION_ATTRIBUTE,\n MCP_PROMPT_RESULT_MESSAGE_CONTENT_ATTRIBUTE,\n MCP_RESOURCE_URI_ATTRIBUTE,\n MCP_TOOL_RESULT_CONTENT_ATTRIBUTE,\n]);\n\n/**\n * Checks if an attribute key should be considered PII.\n *\n * Returns true for:\n * - Explicit PII attributes (client.address, client.port, mcp.logging.message, etc.)\n * - All request arguments (mcp.request.argument.*)\n * - Tool and prompt result content (mcp.tool.result.*, mcp.prompt.result.*) except metadata\n *\n * Preserves metadata attributes ending with _count, _error, or .is_error as they don't contain sensitive data.\n *\n * @param key - Attribute key to evaluate\n * @returns true if the attribute should be filtered out (is PII), false if it should be preserved\n * @internal\n */\nfunction isPiiAttribute(key: string): boolean {\n if (PII_ATTRIBUTES.has(key)) {\n return true;\n }\n\n if (key.startsWith(`${MCP_REQUEST_ARGUMENT}.`)) {\n return true;\n }\n\n if (key.startsWith(`${MCP_TOOL_RESULT_PREFIX}.`) || key.startsWith(`${MCP_PROMPT_RESULT_PREFIX}.`)) {\n if (!key.endsWith('_count') && !key.endsWith('_error') && !key.endsWith('.is_error')) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Removes PII attributes from span data when sendDefaultPii is false\n * @param spanData - Raw span attributes\n * @param sendDefaultPii - Whether to include PII data\n * @returns Filtered span attributes\n */\nexport function filterMcpPiiFromSpanData(\n spanData: Record<string, unknown>,\n sendDefaultPii: boolean,\n): Record<string, SpanAttributeValue> {\n if (sendDefaultPii) {\n return spanData as Record<string, SpanAttributeValue>;\n }\n\n return Object.entries(spanData).reduce(\n (acc, [key, value]) => {\n if (!isPiiAttribute(key)) {\n acc[key] = value as SpanAttributeValue;\n }\n return acc;\n },\n {} as Record<string, SpanAttributeValue>,\n );\n}\n"],"names":["CLIENT_ADDRESS_ATTRIBUTE","CLIENT_PORT_ATTRIBUTE","MCP_LOGGING_MESSAGE_ATTRIBUTE","MCP_PROMPT_RESULT_DESCRIPTION_ATTRIBUTE","MCP_PROMPT_RESULT_MESSAGE_CONTENT_ATTRIBUTE","MCP_RESOURCE_URI_ATTRIBUTE","MCP_TOOL_RESULT_CONTENT_ATTRIBUTE","MCP_REQUEST_ARGUMENT","MCP_TOOL_RESULT_PREFIX","MCP_PROMPT_RESULT_PREFIX"],"mappings":";;;;AAoBA;AACA;AACA;AACA;AACA,MAAM,cAAA,GAAiB,IAAI,GAAG,CAAC;AAC/B,EAAEA,mCAAwB;AAC1B,EAAEC,gCAAqB;AACvB,EAAEC,wCAA6B;AAC/B,EAAEC,kDAAuC;AACzC,EAAEC,sDAA2C;AAC7C,EAAEC,qCAA0B;AAC5B,EAAEC,4CAAiC;AACnC,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,GAAG,EAAmB;AAC9C,EAAE,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC/B,IAAI,OAAO,IAAI;AACf;;AAEA,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,EAAAC,+BAAA,CAAA,CAAA,CAAA,CAAA,EAAA;AACA,IAAA,OAAA,IAAA;AACA;;AAEA,EAAA,IAAA,GAAA,CAAA,UAAA,CAAA,CAAA,EAAAC,iCAAA,CAAA,CAAA,CAAA,CAAA,IAAA,GAAA,CAAA,UAAA,CAAA,CAAA,EAAAC,mCAAA,CAAA,CAAA,CAAA,CAAA,EAAA;AACA,IAAA,IAAA,CAAA,GAAA,CAAA,QAAA,CAAA,QAAA,CAAA,IAAA,CAAA,GAAA,CAAA,QAAA,CAAA,QAAA,CAAA,IAAA,CAAA,GAAA,CAAA,QAAA,CAAA,WAAA,CAAA,EAAA;AACA,MAAA,OAAA,IAAA;AACA;AACA;;AAEA,EAAA,OAAA,KAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAA,wBAAA;AACA,EAAA,QAAA;AACA,EAAA,cAAA;AACA,EAAA;AACA,EAAA,IAAA,cAAA,EAAA;AACA,IAAA,OAAA,QAAA;AACA;;AAEA,EAAA,OAAA,MAAA,CAAA,OAAA,CAAA,QAAA,CAAA,CAAA,MAAA;AACA,IAAA,CAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,CAAA,KAAA;AACA,MAAA,IAAA,CAAA,cAAA,CAAA,GAAA,CAAA,EAAA;AACA,QAAA,GAAA,CAAA,GAAA,CAAA,GAAA,KAAA;AACA;AACA,MAAA,OAAA,GAAA;AACA,KAAA;AACA,IAAA,EAAA;AACA,GAAA;AACA;;;;"}