@supabase/mcp-server-supabase 0.4.2 → 0.4.3-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/platform/types.ts","../src/util.ts","../src/regions.ts"],"sourcesContent":["import { z } from 'zod';\nimport { AWS_REGION_CODES } from '../regions.js';\nimport type { InitData } from '@supabase/mcp-utils';\n\nexport const organizationSchema = z.object({\n id: z.string(),\n name: z.string(),\n plan: z.string().optional(),\n allowed_release_channels: z.array(z.string()),\n opt_in_tags: z.array(z.string()),\n});\n\nexport const projectSchema = z.object({\n id: z.string(),\n organization_id: z.string(),\n name: z.string(),\n status: z.string(),\n created_at: z.string(),\n region: z.string(),\n});\n\nexport const branchSchema = z.object({\n id: z.string(),\n name: z.string(),\n project_ref: z.string(),\n parent_project_ref: z.string(),\n is_default: z.boolean(),\n git_branch: z.string().optional(),\n pr_number: z.number().optional(),\n latest_check_run_id: z.number().optional(),\n persistent: z.boolean(),\n status: z.enum([\n 'CREATING_PROJECT',\n 'RUNNING_MIGRATIONS',\n 'MIGRATIONS_PASSED',\n 'MIGRATIONS_FAILED',\n 'FUNCTIONS_DEPLOYED',\n 'FUNCTIONS_FAILED',\n ]),\n created_at: z.string(),\n updated_at: z.string(),\n});\n\nexport const edgeFunctionSchema = z.object({\n id: z.string(),\n slug: z.string(),\n name: z.string(),\n status: z.string(),\n version: z.number(),\n created_at: z.number().optional(),\n updated_at: z.number().optional(),\n verify_jwt: z.boolean().optional(),\n import_map: z.boolean().optional(),\n import_map_path: z.string().optional(),\n entrypoint_path: z.string().optional(),\n files: z.array(\n z.object({\n name: z.string(),\n content: z.string(),\n })\n ),\n});\n\nexport const createProjectOptionsSchema = z.object({\n name: z.string(),\n organization_id: z.string(),\n region: z.enum(AWS_REGION_CODES).optional(),\n db_pass: z.string().optional(),\n});\n\nexport const createBranchOptionsSchema = z.object({\n name: z.string(),\n});\n\nexport const resetBranchOptionsSchema = z.object({\n migration_version: z.string().optional(),\n});\n\nexport const deployEdgeFunctionOptionsSchema = z.object({\n name: z.string(),\n entrypoint_path: z.string(),\n import_map_path: z.string().optional(),\n files: z.array(\n z.object({\n name: z.string(),\n content: z.string(),\n })\n ),\n});\n\nexport const executeSqlOptionsSchema = z.object({\n query: z.string(),\n read_only: z.boolean().optional(),\n});\n\nexport const applyMigrationOptionsSchema = z.object({\n name: z.string(),\n query: z.string(),\n});\n\nexport const migrationSchema = z.object({\n version: z.string(),\n name: z.string().optional(),\n});\n\nexport const getLogsOptionsSchema = z.object({\n sql: z.string(),\n iso_timestamp_start: z.string().optional(),\n iso_timestamp_end: z.string().optional(),\n});\n\nexport const generateTypescriptTypesResultSchema = z.object({\n types: z.string(),\n});\n\nexport type Organization = z.infer<typeof organizationSchema>;\nexport type Project = z.infer<typeof projectSchema>;\nexport type Branch = z.infer<typeof branchSchema>;\nexport type EdgeFunction = z.infer<typeof edgeFunctionSchema>;\n\nexport type CreateProjectOptions = z.infer<typeof createProjectOptionsSchema>;\nexport type CreateBranchOptions = z.infer<typeof createBranchOptionsSchema>;\nexport type ResetBranchOptions = z.infer<typeof resetBranchOptionsSchema>;\nexport type DeployEdgeFunctionOptions = z.infer<\n typeof deployEdgeFunctionOptionsSchema\n>;\n\nexport type ExecuteSqlOptions = z.infer<typeof executeSqlOptionsSchema>;\nexport type ApplyMigrationOptions = z.infer<typeof applyMigrationOptionsSchema>;\nexport type Migration = z.infer<typeof migrationSchema>;\nexport type ListMigrationsResult = z.infer<typeof migrationSchema>;\n\nexport type GetLogsOptions = z.infer<typeof getLogsOptionsSchema>;\nexport type GenerateTypescriptTypesResult = z.infer<\n typeof generateTypescriptTypesResultSchema\n>;\n\nexport type SupabasePlatform = {\n init?(info: InitData): Promise<void>;\n\n // Database operations\n executeSql<T>(projectId: string, options: ExecuteSqlOptions): Promise<T[]>;\n listMigrations(projectId: string): Promise<Migration[]>;\n applyMigration<T>(\n projectId: string,\n options: ApplyMigrationOptions\n ): Promise<T[]>;\n\n // Project management\n listOrganizations(): Promise<Pick<Organization, 'id' | 'name'>[]>;\n getOrganization(organizationId: string): Promise<Organization>;\n listProjects(): Promise<Project[]>;\n getProject(projectId: string): Promise<Project>;\n createProject(options: CreateProjectOptions): Promise<Project>;\n pauseProject(projectId: string): Promise<void>;\n restoreProject(projectId: string): Promise<void>;\n\n // Edge functions\n listEdgeFunctions(projectId: string): Promise<EdgeFunction[]>;\n getEdgeFunction(\n projectId: string,\n functionSlug: string\n ): Promise<EdgeFunction>;\n deployEdgeFunction(\n projectId: string,\n options: DeployEdgeFunctionOptions\n ): Promise<Omit<EdgeFunction, 'files'>>;\n\n // Debugging\n getLogs(projectId: string, options: GetLogsOptions): Promise<unknown>;\n getSecurityAdvisors(projectId: string): Promise<unknown>;\n getPerformanceAdvisors(projectId: string): Promise<unknown>;\n\n // Development\n getProjectUrl(projectId: string): Promise<string>;\n getAnonKey(projectId: string): Promise<string>;\n generateTypescriptTypes(\n projectId: string\n ): Promise<GenerateTypescriptTypesResult>;\n\n // Branching\n listBranches(projectId: string): Promise<Branch[]>;\n createBranch(\n projectId: string,\n options: CreateBranchOptions\n ): Promise<Branch>;\n deleteBranch(branchId: string): Promise<void>;\n mergeBranch(branchId: string): Promise<void>;\n resetBranch(branchId: string, options: ResetBranchOptions): Promise<void>;\n rebaseBranch(branchId: string): Promise<void>;\n};\n","export type ValueOf<T> = T[keyof T];\n\n// UnionToIntersection<A | B> = A & B\nexport type UnionToIntersection<U> = (\n U extends unknown\n ? (arg: U) => 0\n : never\n) extends (arg: infer I) => 0\n ? I\n : never;\n\n// LastInUnion<A | B> = B\nexport type LastInUnion<U> = UnionToIntersection<\n U extends unknown ? (x: U) => 0 : never\n> extends (x: infer L) => 0\n ? L\n : never;\n\n// UnionToTuple<A, B> = [A, B]\nexport type UnionToTuple<T, Last = LastInUnion<T>> = [T] extends [never]\n ? []\n : [Last, ...UnionToTuple<Exclude<T, Last>>];\n\n/**\n * Parses a key-value string into an object.\n *\n * @returns An object representing the key-value pairs\n *\n * @example\n * const result = parseKeyValueList(\"key1=value1\\nkey2=value2\");\n * console.log(result); // { key1: \"value1\", key2: \"value2\" }\n */\nexport function parseKeyValueList(data: string): { [key: string]: string } {\n return Object.fromEntries(\n data\n .split('\\n')\n .map((item) => item.split(/=(.*)/)) // split only on the first '='\n .filter(([key]) => key) // filter out empty keys\n .map(([key, value]) => [key, value ?? '']) // ensure value is not undefined\n );\n}\n\n/**\n * Creates a unique hash from a JavaScript object.\n * @param obj - The object to hash\n * @param length - Optional length to truncate the hash (default: full length)\n */\nexport async function hashObject(\n obj: Record<string, any>,\n length?: number\n): Promise<string> {\n // Sort object keys to ensure consistent output regardless of original key order\n const str = JSON.stringify(obj, (_, value) => {\n if (value && typeof value === 'object' && !Array.isArray(value)) {\n return Object.keys(value)\n .sort()\n .reduce<Record<string, any>>((result, key) => {\n result[key] = value[key];\n return result;\n }, {});\n }\n return value;\n });\n\n const buffer = await crypto.subtle.digest(\n 'SHA-256',\n new TextEncoder().encode(str)\n );\n\n // Convert to base64\n const base64Hash = btoa(String.fromCharCode(...new Uint8Array(buffer)));\n return base64Hash.slice(0, length);\n}\n","import { parseKeyValueList, type UnionToTuple, type ValueOf } from './util.js';\n\nexport type AwsRegion = {\n code: string;\n displayName: string;\n location: Location;\n};\n\nexport type Location = {\n lat: number;\n lng: number;\n};\n\nexport const EARTH_RADIUS = 6371; // in kilometers\nexport const TRACE_URL = 'https://www.cloudflare.com/cdn-cgi/trace';\n\nexport const COUNTRY_COORDINATES = {\n AF: { lat: 33, lng: 65 },\n AX: { lat: 60.116667, lng: 19.9 },\n AL: { lat: 41, lng: 20 },\n DZ: { lat: 28, lng: 3 },\n AS: { lat: -14.3333, lng: -170 },\n AD: { lat: 42.5, lng: 1.6 },\n AO: { lat: -12.5, lng: 18.5 },\n AI: { lat: 18.25, lng: -63.1667 },\n AQ: { lat: -90, lng: 0 },\n AG: { lat: 17.05, lng: -61.8 },\n AR: { lat: -34, lng: -64 },\n AM: { lat: 40, lng: 45 },\n AW: { lat: 12.5, lng: -69.9667 },\n AU: { lat: -27, lng: 133 },\n AT: { lat: 47.3333, lng: 13.3333 },\n AZ: { lat: 40.5, lng: 47.5 },\n BS: { lat: 24.25, lng: -76 },\n BH: { lat: 26, lng: 50.55 },\n BD: { lat: 24, lng: 90 },\n BB: { lat: 13.1667, lng: -59.5333 },\n BY: { lat: 53, lng: 28 },\n BE: { lat: 50.8333, lng: 4 },\n BZ: { lat: 17.25, lng: -88.75 },\n BJ: { lat: 9.5, lng: 2.25 },\n BM: { lat: 32.3333, lng: -64.75 },\n BT: { lat: 27.5, lng: 90.5 },\n BO: { lat: -17, lng: -65 },\n BQ: { lat: 12.183333, lng: -68.233333 },\n BA: { lat: 44, lng: 18 },\n BW: { lat: -22, lng: 24 },\n BV: { lat: -54.4333, lng: 3.4 },\n BR: { lat: -10, lng: -55 },\n IO: { lat: -6, lng: 71.5 },\n BN: { lat: 4.5, lng: 114.6667 },\n BG: { lat: 43, lng: 25 },\n BF: { lat: 13, lng: -2 },\n MM: { lat: 22, lng: 98 },\n BI: { lat: -3.5, lng: 30 },\n KH: { lat: 13, lng: 105 },\n CM: { lat: 6, lng: 12 },\n CA: { lat: 60, lng: -95 },\n CV: { lat: 16, lng: -24 },\n KY: { lat: 19.5, lng: -80.5 },\n CF: { lat: 7, lng: 21 },\n TD: { lat: 15, lng: 19 },\n CL: { lat: -30, lng: -71 },\n CN: { lat: 35, lng: 105 },\n CX: { lat: -10.5, lng: 105.6667 },\n CC: { lat: -12.5, lng: 96.8333 },\n CO: { lat: 4, lng: -72 },\n KM: { lat: -12.1667, lng: 44.25 },\n CD: { lat: 0, lng: 25 },\n CG: { lat: -1, lng: 15 },\n CK: { lat: -21.2333, lng: -159.7667 },\n CR: { lat: 10, lng: -84 },\n CI: { lat: 8, lng: -5 },\n HR: { lat: 45.1667, lng: 15.5 },\n CU: { lat: 21.5, lng: -80 },\n CW: { lat: 12.166667, lng: -68.966667 },\n CY: { lat: 35, lng: 33 },\n CZ: { lat: 49.75, lng: 15.5 },\n DK: { lat: 56, lng: 10 },\n DJ: { lat: 11.5, lng: 43 },\n DM: { lat: 15.4167, lng: -61.3333 },\n DO: { lat: 19, lng: -70.6667 },\n EC: { lat: -2, lng: -77.5 },\n EG: { lat: 27, lng: 30 },\n SV: { lat: 13.8333, lng: -88.9167 },\n GQ: { lat: 2, lng: 10 },\n ER: { lat: 15, lng: 39 },\n EE: { lat: 59, lng: 26 },\n ET: { lat: 8, lng: 38 },\n FK: { lat: -51.75, lng: -59 },\n FO: { lat: 62, lng: -7 },\n FJ: { lat: -18, lng: 175 },\n FI: { lat: 64, lng: 26 },\n FR: { lat: 46, lng: 2 },\n GF: { lat: 4, lng: -53 },\n PF: { lat: -15, lng: -140 },\n TF: { lat: -43, lng: 67 },\n GA: { lat: -1, lng: 11.75 },\n GM: { lat: 13.4667, lng: -16.5667 },\n GE: { lat: 42, lng: 43.5 },\n DE: { lat: 51, lng: 9 },\n GH: { lat: 8, lng: -2 },\n GI: { lat: 36.1833, lng: -5.3667 },\n GR: { lat: 39, lng: 22 },\n GL: { lat: 72, lng: -40 },\n GD: { lat: 12.1167, lng: -61.6667 },\n GP: { lat: 16.25, lng: -61.5833 },\n GU: { lat: 13.4667, lng: 144.7833 },\n GT: { lat: 15.5, lng: -90.25 },\n GG: { lat: 49.5, lng: -2.56 },\n GW: { lat: 12, lng: -15 },\n GN: { lat: 11, lng: -10 },\n GY: { lat: 5, lng: -59 },\n HT: { lat: 19, lng: -72.4167 },\n HM: { lat: -53.1, lng: 72.5167 },\n VA: { lat: 41.9, lng: 12.45 },\n HN: { lat: 15, lng: -86.5 },\n HK: { lat: 22.25, lng: 114.1667 },\n HU: { lat: 47, lng: 20 },\n IS: { lat: 65, lng: -18 },\n IN: { lat: 20, lng: 77 },\n ID: { lat: -5, lng: 120 },\n IR: { lat: 32, lng: 53 },\n IQ: { lat: 33, lng: 44 },\n IE: { lat: 53, lng: -8 },\n IM: { lat: 54.23, lng: -4.55 },\n IL: { lat: 31.5, lng: 34.75 },\n IT: { lat: 42.8333, lng: 12.8333 },\n JM: { lat: 18.25, lng: -77.5 },\n JP: { lat: 36, lng: 138 },\n JE: { lat: 49.21, lng: -2.13 },\n JO: { lat: 31, lng: 36 },\n KZ: { lat: 48, lng: 68 },\n KE: { lat: 1, lng: 38 },\n KI: { lat: 1.4167, lng: 173 },\n KP: { lat: 40, lng: 127 },\n KR: { lat: 37, lng: 127.5 },\n XK: { lat: 42.583333, lng: 21 },\n KW: { lat: 29.3375, lng: 47.6581 },\n KG: { lat: 41, lng: 75 },\n LA: { lat: 18, lng: 105 },\n LV: { lat: 57, lng: 25 },\n LB: { lat: 33.8333, lng: 35.8333 },\n LS: { lat: -29.5, lng: 28.5 },\n LR: { lat: 6.5, lng: -9.5 },\n LY: { lat: 25, lng: 17 },\n LI: { lat: 47.1667, lng: 9.5333 },\n LT: { lat: 56, lng: 24 },\n LU: { lat: 49.75, lng: 6.1667 },\n MO: { lat: 22.1667, lng: 113.55 },\n MK: { lat: 41.8333, lng: 22 },\n MG: { lat: -20, lng: 47 },\n MW: { lat: -13.5, lng: 34 },\n MY: { lat: 2.5, lng: 112.5 },\n MV: { lat: 3.25, lng: 73 },\n ML: { lat: 17, lng: -4 },\n MT: { lat: 35.8333, lng: 14.5833 },\n MH: { lat: 9, lng: 168 },\n MQ: { lat: 14.6667, lng: -61 },\n MR: { lat: 20, lng: -12 },\n MU: { lat: -20.2833, lng: 57.55 },\n YT: { lat: -12.8333, lng: 45.1667 },\n MX: { lat: 23, lng: -102 },\n FM: { lat: 6.9167, lng: 158.25 },\n MD: { lat: 47, lng: 29 },\n MC: { lat: 43.7333, lng: 7.4 },\n MN: { lat: 46, lng: 105 },\n ME: { lat: 42, lng: 19 },\n MS: { lat: 16.75, lng: -62.2 },\n MA: { lat: 32, lng: -5 },\n MZ: { lat: -18.25, lng: 35 },\n NA: { lat: -22, lng: 17 },\n NR: { lat: -0.5333, lng: 166.9167 },\n NP: { lat: 28, lng: 84 },\n AN: { lat: 12.25, lng: -68.75 },\n NL: { lat: 52.5, lng: 5.75 },\n NC: { lat: -21.5, lng: 165.5 },\n NZ: { lat: -41, lng: 174 },\n NI: { lat: 13, lng: -85 },\n NE: { lat: 16, lng: 8 },\n NG: { lat: 10, lng: 8 },\n NU: { lat: -19.0333, lng: -169.8667 },\n NF: { lat: -29.0333, lng: 167.95 },\n MP: { lat: 15.2, lng: 145.75 },\n NO: { lat: 62, lng: 10 },\n OM: { lat: 21, lng: 57 },\n PK: { lat: 30, lng: 70 },\n PW: { lat: 7.5, lng: 134.5 },\n PS: { lat: 32, lng: 35.25 },\n PA: { lat: 9, lng: -80 },\n PG: { lat: -6, lng: 147 },\n PY: { lat: -23, lng: -58 },\n PE: { lat: -10, lng: -76 },\n PH: { lat: 13, lng: 122 },\n PN: { lat: -24.7, lng: -127.4 },\n PL: { lat: 52, lng: 20 },\n PT: { lat: 39.5, lng: -8 },\n PR: { lat: 18.25, lng: -66.5 },\n QA: { lat: 25.5, lng: 51.25 },\n RE: { lat: -21.1, lng: 55.6 },\n RO: { lat: 46, lng: 25 },\n RU: { lat: 60, lng: 100 },\n RW: { lat: -2, lng: 30 },\n BL: { lat: 17.897728, lng: -62.834244 },\n SH: { lat: -15.9333, lng: -5.7 },\n KN: { lat: 17.3333, lng: -62.75 },\n LC: { lat: 13.8833, lng: -61.1333 },\n MF: { lat: 18.075278, lng: -63.06 },\n PM: { lat: 46.8333, lng: -56.3333 },\n VC: { lat: 13.25, lng: -61.2 },\n WS: { lat: -13.5833, lng: -172.3333 },\n SM: { lat: 43.7667, lng: 12.4167 },\n ST: { lat: 1, lng: 7 },\n SA: { lat: 25, lng: 45 },\n SN: { lat: 14, lng: -14 },\n RS: { lat: 44, lng: 21 },\n SC: { lat: -4.5833, lng: 55.6667 },\n SL: { lat: 8.5, lng: -11.5 },\n SG: { lat: 1.3667, lng: 103.8 },\n SX: { lat: 18.033333, lng: -63.05 },\n SK: { lat: 48.6667, lng: 19.5 },\n SI: { lat: 46, lng: 15 },\n SB: { lat: -8, lng: 159 },\n SO: { lat: 10, lng: 49 },\n ZA: { lat: -29, lng: 24 },\n GS: { lat: -54.5, lng: -37 },\n SS: { lat: 8, lng: 30 },\n ES: { lat: 40, lng: -4 },\n LK: { lat: 7, lng: 81 },\n SD: { lat: 15, lng: 30 },\n SR: { lat: 4, lng: -56 },\n SJ: { lat: 78, lng: 20 },\n SZ: { lat: -26.5, lng: 31.5 },\n SE: { lat: 62, lng: 15 },\n CH: { lat: 47, lng: 8 },\n SY: { lat: 35, lng: 38 },\n TW: { lat: 23.5, lng: 121 },\n TJ: { lat: 39, lng: 71 },\n TZ: { lat: -6, lng: 35 },\n TH: { lat: 15, lng: 100 },\n TL: { lat: -8.55, lng: 125.5167 },\n TG: { lat: 8, lng: 1.1667 },\n TK: { lat: -9, lng: -172 },\n TO: { lat: -20, lng: -175 },\n TT: { lat: 11, lng: -61 },\n TN: { lat: 34, lng: 9 },\n TR: { lat: 39, lng: 35 },\n TM: { lat: 40, lng: 60 },\n TC: { lat: 21.75, lng: -71.5833 },\n TV: { lat: -8, lng: 178 },\n UG: { lat: 1, lng: 32 },\n UA: { lat: 49, lng: 32 },\n AE: { lat: 24, lng: 54 },\n GB: { lat: 54, lng: -2 },\n UM: { lat: 19.2833, lng: 166.6 },\n US: { lat: 38, lng: -97 },\n UY: { lat: -33, lng: -56 },\n UZ: { lat: 41, lng: 64 },\n VU: { lat: -16, lng: 167 },\n VE: { lat: 8, lng: -66 },\n VN: { lat: 16, lng: 106 },\n VG: { lat: 18.5, lng: -64.5 },\n VI: { lat: 18.3333, lng: -64.8333 },\n WF: { lat: -13.3, lng: -176.2 },\n EH: { lat: 24.5, lng: -13 },\n YE: { lat: 15, lng: 48 },\n ZM: { lat: -15, lng: 30 },\n ZW: { lat: -20, lng: 30 },\n} as const satisfies Record<string, Location>;\n\nexport const AWS_REGIONS = {\n WEST_US: {\n code: 'us-west-1',\n displayName: 'West US (North California)',\n location: { lat: 37.774929, lng: -122.419418 },\n },\n EAST_US: {\n code: 'us-east-1',\n displayName: 'East US (North Virginia)',\n location: { lat: 37.926868, lng: -78.024902 },\n },\n EAST_US_2: {\n code: 'us-east-2',\n displayName: 'East US (Ohio)',\n location: { lat: 39.9612, lng: -82.9988 },\n },\n CENTRAL_CANADA: {\n code: 'ca-central-1',\n displayName: 'Canada (Central)',\n location: { lat: 56.130367, lng: -106.346771 },\n },\n WEST_EU: {\n code: 'eu-west-1',\n displayName: 'West EU (Ireland)',\n location: { lat: 53.3498, lng: -6.2603 },\n },\n WEST_EU_2: {\n code: 'eu-west-2',\n displayName: 'West Europe (London)',\n location: { lat: 51.507351, lng: -0.127758 },\n },\n WEST_EU_3: {\n code: 'eu-west-3',\n displayName: 'West EU (Paris)',\n location: { lat: 2.352222, lng: 48.856613 },\n },\n CENTRAL_EU: {\n code: 'eu-central-1',\n displayName: 'Central EU (Frankfurt)',\n location: { lat: 50.110924, lng: 8.682127 },\n },\n CENTRAL_EU_2: {\n code: 'eu-central-2',\n displayName: 'Central Europe (Zurich)',\n location: { lat: 47.3744489, lng: 8.5410422 },\n },\n NORTH_EU: {\n code: 'eu-north-1',\n displayName: 'North EU (Stockholm)',\n location: { lat: 59.3251172, lng: 18.0710935 },\n },\n SOUTH_ASIA: {\n code: 'ap-south-1',\n displayName: 'South Asia (Mumbai)',\n location: { lat: 18.9733536, lng: 72.8281049 },\n },\n SOUTHEAST_ASIA: {\n code: 'ap-southeast-1',\n displayName: 'Southeast Asia (Singapore)',\n location: { lat: 1.357107, lng: 103.8194992 },\n },\n NORTHEAST_ASIA: {\n code: 'ap-northeast-1',\n displayName: 'Northeast Asia (Tokyo)',\n location: { lat: 35.6895, lng: 139.6917 },\n },\n NORTHEAST_ASIA_2: {\n code: 'ap-northeast-2',\n displayName: 'Northeast Asia (Seoul)',\n location: { lat: 37.5665, lng: 126.978 },\n },\n OCEANIA: {\n code: 'ap-southeast-2',\n displayName: 'Oceania (Sydney)',\n location: { lat: -33.8688, lng: 151.2093 },\n },\n SOUTH_AMERICA: {\n code: 'sa-east-1',\n displayName: 'South America (São Paulo)',\n location: { lat: -1.2043218, lng: -47.1583944 },\n },\n} as const satisfies Record<string, AwsRegion>;\n\nexport type RegionCodes = ValueOf<typeof AWS_REGIONS>['code'];\n\nexport const AWS_REGION_CODES = Object.values(AWS_REGIONS).map(\n (region) => region.code\n) as UnionToTuple<RegionCodes>;\n\n/**\n * Calculates the closest AWS region to a given location.\n */\nexport function getClosestAwsRegion(location: Location) {\n const distances = Object.entries(AWS_REGIONS).map<\n [region: string, distance: number]\n >(([name, region]) => {\n return [name, getDistance(location, region.location)] as const;\n });\n\n const closestRegion = distances.reduce<\n [region: string, distance: number] | undefined\n >(\n (min, current) =>\n min === undefined ? current : current[1] < min[1] ? current : min,\n undefined\n );\n\n if (!closestRegion) {\n throw new Error('no closest region found');\n }\n\n const [regionName] = closestRegion;\n\n return AWS_REGIONS[regionName as keyof typeof AWS_REGIONS];\n}\n\n/**\n * Fetches the user's country code based on their IP address.\n */\nexport async function getCountryCode() {\n const response = await fetch(TRACE_URL);\n const data = await response.text();\n const info = parseKeyValueList(data);\n const countryCode = info['loc'];\n\n if (!countryCode) {\n throw new Error('location not found');\n }\n\n return countryCode;\n}\n\n/**\n * Gets the approximate coordinates of a country based on its country code.\n */\nexport function getCountryCoordinates(countryCode: string) {\n const location: Location =\n COUNTRY_COORDINATES[countryCode as keyof typeof COUNTRY_COORDINATES];\n\n if (!location) {\n throw new Error(`unknown location code: ${countryCode}`);\n }\n\n return location;\n}\n\n/**\n * Calculates the distance between two points on Earth using the Haversine formula.\n *\n * @returns Distance between the points in kilometers\n */\nexport function getDistance(a: Location, b: Location): number {\n const lat = degreesToRadians(b.lat - a.lat);\n const lng = degreesToRadians(b.lng - a.lng);\n const a1 =\n Math.sin(lat / 2) * Math.sin(lat / 2) +\n Math.cos(degreesToRadians(a.lat)) *\n Math.cos(degreesToRadians(b.lat)) *\n Math.sin(lng / 2) *\n Math.sin(lng / 2);\n const c = 2 * Math.atan2(Math.sqrt(a1), Math.sqrt(1 - a1));\n return EARTH_RADIUS * c;\n}\n\n/**\n * Converts degrees to radians\n *\n * @returns The angle in radians\n */\nexport function degreesToRadians(deg: number): number {\n return deg * (Math.PI / 180);\n}\n"],"mappings":"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","names":["z","parseKeyValueList","data","item","key","value","hashObject","obj","length","str","_","result","buffer","EARTH_RADIUS","TRACE_URL","COUNTRY_COORDINATES","AWS_REGIONS","AWS_REGION_CODES","region","getClosestAwsRegion","location","closestRegion","name","getDistance","min","current","regionName","getCountryCode","data","countryCode","parseKeyValueList","getCountryCoordinates","a","b","lat","degreesToRadians","lng","a1","c","deg","organizationSchema","z","projectSchema","branchSchema","edgeFunctionSchema","createProjectOptionsSchema","AWS_REGION_CODES","createBranchOptionsSchema","resetBranchOptionsSchema","deployEdgeFunctionOptionsSchema","executeSqlOptionsSchema","applyMigrationOptionsSchema","migrationSchema","getLogsOptionsSchema","generateTypescriptTypesResultSchema"]}
@@ -1,3 +1,3 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _zod = require('zod');function d(n){return Object.fromEntries(n.split(`
2
- `).map(l=>l.split(/=(.*)/)).filter(([l])=>l).map(([l,a])=>[l,_nullishCoalesce(a, () => (""))]))}async function T(n,l){let a=JSON.stringify(n,(r,g)=>g&&typeof g=="object"&&!Array.isArray(g)?Object.keys(g).sort().reduce((c,p)=>(c[p]=g[p],c),{}):g),e=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(a));return btoa(String.fromCharCode(...new Uint8Array(e))).slice(0,l)}var S=6371,u="https://www.cloudflare.com/cdn-cgi/trace",y={AF:{lat:33,lng:65},AX:{lat:60.116667,lng:19.9},AL:{lat:41,lng:20},DZ:{lat:28,lng:3},AS:{lat:-14.3333,lng:-170},AD:{lat:42.5,lng:1.6},AO:{lat:-12.5,lng:18.5},AI:{lat:18.25,lng:-63.1667},AQ:{lat:-90,lng:0},AG:{lat:17.05,lng:-61.8},AR:{lat:-34,lng:-64},AM:{lat:40,lng:45},AW:{lat:12.5,lng:-69.9667},AU:{lat:-27,lng:133},AT:{lat:47.3333,lng:13.3333},AZ:{lat:40.5,lng:47.5},BS:{lat:24.25,lng:-76},BH:{lat:26,lng:50.55},BD:{lat:24,lng:90},BB:{lat:13.1667,lng:-59.5333},BY:{lat:53,lng:28},BE:{lat:50.8333,lng:4},BZ:{lat:17.25,lng:-88.75},BJ:{lat:9.5,lng:2.25},BM:{lat:32.3333,lng:-64.75},BT:{lat:27.5,lng:90.5},BO:{lat:-17,lng:-65},BQ:{lat:12.183333,lng:-68.233333},BA:{lat:44,lng:18},BW:{lat:-22,lng:24},BV:{lat:-54.4333,lng:3.4},BR:{lat:-10,lng:-55},IO:{lat:-6,lng:71.5},BN:{lat:4.5,lng:114.6667},BG:{lat:43,lng:25},BF:{lat:13,lng:-2},MM:{lat:22,lng:98},BI:{lat:-3.5,lng:30},KH:{lat:13,lng:105},CM:{lat:6,lng:12},CA:{lat:60,lng:-95},CV:{lat:16,lng:-24},KY:{lat:19.5,lng:-80.5},CF:{lat:7,lng:21},TD:{lat:15,lng:19},CL:{lat:-30,lng:-71},CN:{lat:35,lng:105},CX:{lat:-10.5,lng:105.6667},CC:{lat:-12.5,lng:96.8333},CO:{lat:4,lng:-72},KM:{lat:-12.1667,lng:44.25},CD:{lat:0,lng:25},CG:{lat:-1,lng:15},CK:{lat:-21.2333,lng:-159.7667},CR:{lat:10,lng:-84},CI:{lat:8,lng:-5},HR:{lat:45.1667,lng:15.5},CU:{lat:21.5,lng:-80},CW:{lat:12.166667,lng:-68.966667},CY:{lat:35,lng:33},CZ:{lat:49.75,lng:15.5},DK:{lat:56,lng:10},DJ:{lat:11.5,lng:43},DM:{lat:15.4167,lng:-61.3333},DO:{lat:19,lng:-70.6667},EC:{lat:-2,lng:-77.5},EG:{lat:27,lng:30},SV:{lat:13.8333,lng:-88.9167},GQ:{lat:2,lng:10},ER:{lat:15,lng:39},EE:{lat:59,lng:26},ET:{lat:8,lng:38},FK:{lat:-51.75,lng:-59},FO:{lat:62,lng:-7},FJ:{lat:-18,lng:175},FI:{lat:64,lng:26},FR:{lat:46,lng:2},GF:{lat:4,lng:-53},PF:{lat:-15,lng:-140},TF:{lat:-43,lng:67},GA:{lat:-1,lng:11.75},GM:{lat:13.4667,lng:-16.5667},GE:{lat:42,lng:43.5},DE:{lat:51,lng:9},GH:{lat:8,lng:-2},GI:{lat:36.1833,lng:-5.3667},GR:{lat:39,lng:22},GL:{lat:72,lng:-40},GD:{lat:12.1167,lng:-61.6667},GP:{lat:16.25,lng:-61.5833},GU:{lat:13.4667,lng:144.7833},GT:{lat:15.5,lng:-90.25},GG:{lat:49.5,lng:-2.56},GW:{lat:12,lng:-15},GN:{lat:11,lng:-10},GY:{lat:5,lng:-59},HT:{lat:19,lng:-72.4167},HM:{lat:-53.1,lng:72.5167},VA:{lat:41.9,lng:12.45},HN:{lat:15,lng:-86.5},HK:{lat:22.25,lng:114.1667},HU:{lat:47,lng:20},IS:{lat:65,lng:-18},IN:{lat:20,lng:77},ID:{lat:-5,lng:120},IR:{lat:32,lng:53},IQ:{lat:33,lng:44},IE:{lat:53,lng:-8},IM:{lat:54.23,lng:-4.55},IL:{lat:31.5,lng:34.75},IT:{lat:42.8333,lng:12.8333},JM:{lat:18.25,lng:-77.5},JP:{lat:36,lng:138},JE:{lat:49.21,lng:-2.13},JO:{lat:31,lng:36},KZ:{lat:48,lng:68},KE:{lat:1,lng:38},KI:{lat:1.4167,lng:173},KP:{lat:40,lng:127},KR:{lat:37,lng:127.5},XK:{lat:42.583333,lng:21},KW:{lat:29.3375,lng:47.6581},KG:{lat:41,lng:75},LA:{lat:18,lng:105},LV:{lat:57,lng:25},LB:{lat:33.8333,lng:35.8333},LS:{lat:-29.5,lng:28.5},LR:{lat:6.5,lng:-9.5},LY:{lat:25,lng:17},LI:{lat:47.1667,lng:9.5333},LT:{lat:56,lng:24},LU:{lat:49.75,lng:6.1667},MO:{lat:22.1667,lng:113.55},MK:{lat:41.8333,lng:22},MG:{lat:-20,lng:47},MW:{lat:-13.5,lng:34},MY:{lat:2.5,lng:112.5},MV:{lat:3.25,lng:73},ML:{lat:17,lng:-4},MT:{lat:35.8333,lng:14.5833},MH:{lat:9,lng:168},MQ:{lat:14.6667,lng:-61},MR:{lat:20,lng:-12},MU:{lat:-20.2833,lng:57.55},YT:{lat:-12.8333,lng:45.1667},MX:{lat:23,lng:-102},FM:{lat:6.9167,lng:158.25},MD:{lat:47,lng:29},MC:{lat:43.7333,lng:7.4},MN:{lat:46,lng:105},ME:{lat:42,lng:19},MS:{lat:16.75,lng:-62.2},MA:{lat:32,lng:-5},MZ:{lat:-18.25,lng:35},NA:{lat:-22,lng:17},NR:{lat:-.5333,lng:166.9167},NP:{lat:28,lng:84},AN:{lat:12.25,lng:-68.75},NL:{lat:52.5,lng:5.75},NC:{lat:-21.5,lng:165.5},NZ:{lat:-41,lng:174},NI:{lat:13,lng:-85},NE:{lat:16,lng:8},NG:{lat:10,lng:8},NU:{lat:-19.0333,lng:-169.8667},NF:{lat:-29.0333,lng:167.95},MP:{lat:15.2,lng:145.75},NO:{lat:62,lng:10},OM:{lat:21,lng:57},PK:{lat:30,lng:70},PW:{lat:7.5,lng:134.5},PS:{lat:32,lng:35.25},PA:{lat:9,lng:-80},PG:{lat:-6,lng:147},PY:{lat:-23,lng:-58},PE:{lat:-10,lng:-76},PH:{lat:13,lng:122},PN:{lat:-24.7,lng:-127.4},PL:{lat:52,lng:20},PT:{lat:39.5,lng:-8},PR:{lat:18.25,lng:-66.5},QA:{lat:25.5,lng:51.25},RE:{lat:-21.1,lng:55.6},RO:{lat:46,lng:25},RU:{lat:60,lng:100},RW:{lat:-2,lng:30},BL:{lat:17.897728,lng:-62.834244},SH:{lat:-15.9333,lng:-5.7},KN:{lat:17.3333,lng:-62.75},LC:{lat:13.8833,lng:-61.1333},MF:{lat:18.075278,lng:-63.06},PM:{lat:46.8333,lng:-56.3333},VC:{lat:13.25,lng:-61.2},WS:{lat:-13.5833,lng:-172.3333},SM:{lat:43.7667,lng:12.4167},ST:{lat:1,lng:7},SA:{lat:25,lng:45},SN:{lat:14,lng:-14},RS:{lat:44,lng:21},SC:{lat:-4.5833,lng:55.6667},SL:{lat:8.5,lng:-11.5},SG:{lat:1.3667,lng:103.8},SX:{lat:18.033333,lng:-63.05},SK:{lat:48.6667,lng:19.5},SI:{lat:46,lng:15},SB:{lat:-8,lng:159},SO:{lat:10,lng:49},ZA:{lat:-29,lng:24},GS:{lat:-54.5,lng:-37},SS:{lat:8,lng:30},ES:{lat:40,lng:-4},LK:{lat:7,lng:81},SD:{lat:15,lng:30},SR:{lat:4,lng:-56},SJ:{lat:78,lng:20},SZ:{lat:-26.5,lng:31.5},SE:{lat:62,lng:15},CH:{lat:47,lng:8},SY:{lat:35,lng:38},TW:{lat:23.5,lng:121},TJ:{lat:39,lng:71},TZ:{lat:-6,lng:35},TH:{lat:15,lng:100},TL:{lat:-8.55,lng:125.5167},TG:{lat:8,lng:1.1667},TK:{lat:-9,lng:-172},TO:{lat:-20,lng:-175},TT:{lat:11,lng:-61},TN:{lat:34,lng:9},TR:{lat:39,lng:35},TM:{lat:40,lng:60},TC:{lat:21.75,lng:-71.5833},TV:{lat:-8,lng:178},UG:{lat:1,lng:32},UA:{lat:49,lng:32},AE:{lat:24,lng:54},GB:{lat:54,lng:-2},UM:{lat:19.2833,lng:166.6},US:{lat:38,lng:-97},UY:{lat:-33,lng:-56},UZ:{lat:41,lng:64},VU:{lat:-16,lng:167},VE:{lat:8,lng:-66},VN:{lat:16,lng:106},VG:{lat:18.5,lng:-64.5},VI:{lat:18.3333,lng:-64.8333},WF:{lat:-13.3,lng:-176.2},EH:{lat:24.5,lng:-13},YE:{lat:15,lng:48},ZM:{lat:-15,lng:30},ZW:{lat:-20,lng:30}},s={WEST_US:{code:"us-west-1",displayName:"West US (North California)",location:{lat:37.774929,lng:-122.419418}},EAST_US:{code:"us-east-1",displayName:"East US (North Virginia)",location:{lat:37.926868,lng:-78.024902}},EAST_US_2:{code:"us-east-2",displayName:"East US (Ohio)",location:{lat:39.9612,lng:-82.9988}},CENTRAL_CANADA:{code:"ca-central-1",displayName:"Canada (Central)",location:{lat:56.130367,lng:-106.346771}},WEST_EU:{code:"eu-west-1",displayName:"West EU (Ireland)",location:{lat:53.3498,lng:-6.2603}},WEST_EU_2:{code:"eu-west-2",displayName:"West Europe (London)",location:{lat:51.507351,lng:-.127758}},WEST_EU_3:{code:"eu-west-3",displayName:"West EU (Paris)",location:{lat:2.352222,lng:48.856613}},CENTRAL_EU:{code:"eu-central-1",displayName:"Central EU (Frankfurt)",location:{lat:50.110924,lng:8.682127}},CENTRAL_EU_2:{code:"eu-central-2",displayName:"Central Europe (Zurich)",location:{lat:47.3744489,lng:8.5410422}},NORTH_EU:{code:"eu-north-1",displayName:"North EU (Stockholm)",location:{lat:59.3251172,lng:18.0710935}},SOUTH_ASIA:{code:"ap-south-1",displayName:"South Asia (Mumbai)",location:{lat:18.9733536,lng:72.8281049}},SOUTHEAST_ASIA:{code:"ap-southeast-1",displayName:"Southeast Asia (Singapore)",location:{lat:1.357107,lng:103.8194992}},NORTHEAST_ASIA:{code:"ap-northeast-1",displayName:"Northeast Asia (Tokyo)",location:{lat:35.6895,lng:139.6917}},NORTHEAST_ASIA_2:{code:"ap-northeast-2",displayName:"Northeast Asia (Seoul)",location:{lat:37.5665,lng:126.978}},OCEANIA:{code:"ap-southeast-2",displayName:"Oceania (Sydney)",location:{lat:-33.8688,lng:151.2093}},SOUTH_AMERICA:{code:"sa-east-1",displayName:"South America (S\xE3o Paulo)",location:{lat:-1.2043218,lng:-47.1583944}}},m= exports.b =Object.values(s).map(n=>n.code);function O(n){let a=Object.entries(s).map(([o,r])=>[o,h(n,r.location)]).reduce((o,r)=>o===void 0||r[1]<o[1]?r:o,void 0);if(!a)throw new Error("no closest region found");let[e]=a;return s[e]}async function A(){let l=await(await fetch(u)).text(),e=d(l).loc;if(!e)throw new Error("location not found");return e}function I(n){let l=y[n];if(!l)throw new Error(`unknown location code: ${n}`);return l}function h(n,l){let a=i(l.lat-n.lat),e=i(l.lng-n.lng),o=Math.sin(a/2)*Math.sin(a/2)+Math.cos(i(n.lat))*Math.cos(i(l.lat))*Math.sin(e/2)*Math.sin(e/2),r=2*Math.atan2(Math.sqrt(o),Math.sqrt(1-o));return S*r}function i(n){return n*(Math.PI/180)}var M=_zod.z.object({id:_zod.z.string(),name:_zod.z.string(),plan:_zod.z.string().optional(),allowed_release_channels:_zod.z.array(_zod.z.string()),opt_in_tags:_zod.z.array(_zod.z.string())}),R= exports.g =_zod.z.object({id:_zod.z.string(),organization_id:_zod.z.string(),name:_zod.z.string(),status:_zod.z.string(),created_at:_zod.z.string(),region:_zod.z.string()}),x= exports.h =_zod.z.object({id:_zod.z.string(),name:_zod.z.string(),project_ref:_zod.z.string(),parent_project_ref:_zod.z.string(),is_default:_zod.z.boolean(),git_branch:_zod.z.string().optional(),pr_number:_zod.z.number().optional(),latest_check_run_id:_zod.z.number().optional(),persistent:_zod.z.boolean(),status:_zod.z.enum(["CREATING_PROJECT","RUNNING_MIGRATIONS","MIGRATIONS_PASSED","MIGRATIONS_FAILED","FUNCTIONS_DEPLOYED","FUNCTIONS_FAILED"]),created_at:_zod.z.string(),updated_at:_zod.z.string()}),C= exports.i =_zod.z.object({id:_zod.z.string(),slug:_zod.z.string(),name:_zod.z.string(),status:_zod.z.string(),version:_zod.z.number(),created_at:_zod.z.number().optional(),updated_at:_zod.z.number().optional(),verify_jwt:_zod.z.boolean().optional(),import_map:_zod.z.boolean().optional(),import_map_path:_zod.z.string().optional(),entrypoint_path:_zod.z.string().optional(),files:_zod.z.array(_zod.z.object({name:_zod.z.string(),content:_zod.z.string()}))}),U= exports.j =_zod.z.object({name:_zod.z.string(),organization_id:_zod.z.string(),region:_zod.z.enum(m).optional(),db_pass:_zod.z.string().optional()}),b= exports.k =_zod.z.object({name:_zod.z.string()}),j= exports.l =_zod.z.object({migration_version:_zod.z.string().optional()}),L= exports.m =_zod.z.object({name:_zod.z.string(),entrypoint_path:_zod.z.string(),import_map_path:_zod.z.string().optional(),files:_zod.z.array(_zod.z.object({name:_zod.z.string(),content:_zod.z.string()}))}),G= exports.n =_zod.z.object({query:_zod.z.string(),read_only:_zod.z.boolean().optional()}),B= exports.o =_zod.z.object({name:_zod.z.string(),query:_zod.z.string()}),F= exports.p =_zod.z.object({version:_zod.z.string(),name:_zod.z.string().optional()}),D= exports.q =_zod.z.object({sql:_zod.z.string(),iso_timestamp_start:_zod.z.string().optional(),iso_timestamp_end:_zod.z.string().optional()}),w= exports.r =_zod.z.object({types:_zod.z.string()});exports.a = T; exports.b = m; exports.c = O; exports.d = A; exports.e = I; exports.f = M; exports.g = R; exports.h = x; exports.i = C; exports.j = U; exports.k = b; exports.l = j; exports.m = L; exports.n = G; exports.o = B; exports.p = F; exports.q = D; exports.r = w;
3
- //# sourceMappingURL=chunk-ILOQJ4GC.cjs.map
2
+ `).map(l=>l.split(/=(.*)/)).filter(([l])=>l).map(([l,a])=>[l,_nullishCoalesce(a, () => (""))]))}async function T(n,l){let a=JSON.stringify(n,(r,g)=>g&&typeof g=="object"&&!Array.isArray(g)?Object.keys(g).sort().reduce((c,p)=>(c[p]=g[p],c),{}):g),e=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(a));return btoa(String.fromCharCode(...new Uint8Array(e))).slice(0,l)}var S=6371,u="https://www.cloudflare.com/cdn-cgi/trace",y={AF:{lat:33,lng:65},AX:{lat:60.116667,lng:19.9},AL:{lat:41,lng:20},DZ:{lat:28,lng:3},AS:{lat:-14.3333,lng:-170},AD:{lat:42.5,lng:1.6},AO:{lat:-12.5,lng:18.5},AI:{lat:18.25,lng:-63.1667},AQ:{lat:-90,lng:0},AG:{lat:17.05,lng:-61.8},AR:{lat:-34,lng:-64},AM:{lat:40,lng:45},AW:{lat:12.5,lng:-69.9667},AU:{lat:-27,lng:133},AT:{lat:47.3333,lng:13.3333},AZ:{lat:40.5,lng:47.5},BS:{lat:24.25,lng:-76},BH:{lat:26,lng:50.55},BD:{lat:24,lng:90},BB:{lat:13.1667,lng:-59.5333},BY:{lat:53,lng:28},BE:{lat:50.8333,lng:4},BZ:{lat:17.25,lng:-88.75},BJ:{lat:9.5,lng:2.25},BM:{lat:32.3333,lng:-64.75},BT:{lat:27.5,lng:90.5},BO:{lat:-17,lng:-65},BQ:{lat:12.183333,lng:-68.233333},BA:{lat:44,lng:18},BW:{lat:-22,lng:24},BV:{lat:-54.4333,lng:3.4},BR:{lat:-10,lng:-55},IO:{lat:-6,lng:71.5},BN:{lat:4.5,lng:114.6667},BG:{lat:43,lng:25},BF:{lat:13,lng:-2},MM:{lat:22,lng:98},BI:{lat:-3.5,lng:30},KH:{lat:13,lng:105},CM:{lat:6,lng:12},CA:{lat:60,lng:-95},CV:{lat:16,lng:-24},KY:{lat:19.5,lng:-80.5},CF:{lat:7,lng:21},TD:{lat:15,lng:19},CL:{lat:-30,lng:-71},CN:{lat:35,lng:105},CX:{lat:-10.5,lng:105.6667},CC:{lat:-12.5,lng:96.8333},CO:{lat:4,lng:-72},KM:{lat:-12.1667,lng:44.25},CD:{lat:0,lng:25},CG:{lat:-1,lng:15},CK:{lat:-21.2333,lng:-159.7667},CR:{lat:10,lng:-84},CI:{lat:8,lng:-5},HR:{lat:45.1667,lng:15.5},CU:{lat:21.5,lng:-80},CW:{lat:12.166667,lng:-68.966667},CY:{lat:35,lng:33},CZ:{lat:49.75,lng:15.5},DK:{lat:56,lng:10},DJ:{lat:11.5,lng:43},DM:{lat:15.4167,lng:-61.3333},DO:{lat:19,lng:-70.6667},EC:{lat:-2,lng:-77.5},EG:{lat:27,lng:30},SV:{lat:13.8333,lng:-88.9167},GQ:{lat:2,lng:10},ER:{lat:15,lng:39},EE:{lat:59,lng:26},ET:{lat:8,lng:38},FK:{lat:-51.75,lng:-59},FO:{lat:62,lng:-7},FJ:{lat:-18,lng:175},FI:{lat:64,lng:26},FR:{lat:46,lng:2},GF:{lat:4,lng:-53},PF:{lat:-15,lng:-140},TF:{lat:-43,lng:67},GA:{lat:-1,lng:11.75},GM:{lat:13.4667,lng:-16.5667},GE:{lat:42,lng:43.5},DE:{lat:51,lng:9},GH:{lat:8,lng:-2},GI:{lat:36.1833,lng:-5.3667},GR:{lat:39,lng:22},GL:{lat:72,lng:-40},GD:{lat:12.1167,lng:-61.6667},GP:{lat:16.25,lng:-61.5833},GU:{lat:13.4667,lng:144.7833},GT:{lat:15.5,lng:-90.25},GG:{lat:49.5,lng:-2.56},GW:{lat:12,lng:-15},GN:{lat:11,lng:-10},GY:{lat:5,lng:-59},HT:{lat:19,lng:-72.4167},HM:{lat:-53.1,lng:72.5167},VA:{lat:41.9,lng:12.45},HN:{lat:15,lng:-86.5},HK:{lat:22.25,lng:114.1667},HU:{lat:47,lng:20},IS:{lat:65,lng:-18},IN:{lat:20,lng:77},ID:{lat:-5,lng:120},IR:{lat:32,lng:53},IQ:{lat:33,lng:44},IE:{lat:53,lng:-8},IM:{lat:54.23,lng:-4.55},IL:{lat:31.5,lng:34.75},IT:{lat:42.8333,lng:12.8333},JM:{lat:18.25,lng:-77.5},JP:{lat:36,lng:138},JE:{lat:49.21,lng:-2.13},JO:{lat:31,lng:36},KZ:{lat:48,lng:68},KE:{lat:1,lng:38},KI:{lat:1.4167,lng:173},KP:{lat:40,lng:127},KR:{lat:37,lng:127.5},XK:{lat:42.583333,lng:21},KW:{lat:29.3375,lng:47.6581},KG:{lat:41,lng:75},LA:{lat:18,lng:105},LV:{lat:57,lng:25},LB:{lat:33.8333,lng:35.8333},LS:{lat:-29.5,lng:28.5},LR:{lat:6.5,lng:-9.5},LY:{lat:25,lng:17},LI:{lat:47.1667,lng:9.5333},LT:{lat:56,lng:24},LU:{lat:49.75,lng:6.1667},MO:{lat:22.1667,lng:113.55},MK:{lat:41.8333,lng:22},MG:{lat:-20,lng:47},MW:{lat:-13.5,lng:34},MY:{lat:2.5,lng:112.5},MV:{lat:3.25,lng:73},ML:{lat:17,lng:-4},MT:{lat:35.8333,lng:14.5833},MH:{lat:9,lng:168},MQ:{lat:14.6667,lng:-61},MR:{lat:20,lng:-12},MU:{lat:-20.2833,lng:57.55},YT:{lat:-12.8333,lng:45.1667},MX:{lat:23,lng:-102},FM:{lat:6.9167,lng:158.25},MD:{lat:47,lng:29},MC:{lat:43.7333,lng:7.4},MN:{lat:46,lng:105},ME:{lat:42,lng:19},MS:{lat:16.75,lng:-62.2},MA:{lat:32,lng:-5},MZ:{lat:-18.25,lng:35},NA:{lat:-22,lng:17},NR:{lat:-.5333,lng:166.9167},NP:{lat:28,lng:84},AN:{lat:12.25,lng:-68.75},NL:{lat:52.5,lng:5.75},NC:{lat:-21.5,lng:165.5},NZ:{lat:-41,lng:174},NI:{lat:13,lng:-85},NE:{lat:16,lng:8},NG:{lat:10,lng:8},NU:{lat:-19.0333,lng:-169.8667},NF:{lat:-29.0333,lng:167.95},MP:{lat:15.2,lng:145.75},NO:{lat:62,lng:10},OM:{lat:21,lng:57},PK:{lat:30,lng:70},PW:{lat:7.5,lng:134.5},PS:{lat:32,lng:35.25},PA:{lat:9,lng:-80},PG:{lat:-6,lng:147},PY:{lat:-23,lng:-58},PE:{lat:-10,lng:-76},PH:{lat:13,lng:122},PN:{lat:-24.7,lng:-127.4},PL:{lat:52,lng:20},PT:{lat:39.5,lng:-8},PR:{lat:18.25,lng:-66.5},QA:{lat:25.5,lng:51.25},RE:{lat:-21.1,lng:55.6},RO:{lat:46,lng:25},RU:{lat:60,lng:100},RW:{lat:-2,lng:30},BL:{lat:17.897728,lng:-62.834244},SH:{lat:-15.9333,lng:-5.7},KN:{lat:17.3333,lng:-62.75},LC:{lat:13.8833,lng:-61.1333},MF:{lat:18.075278,lng:-63.06},PM:{lat:46.8333,lng:-56.3333},VC:{lat:13.25,lng:-61.2},WS:{lat:-13.5833,lng:-172.3333},SM:{lat:43.7667,lng:12.4167},ST:{lat:1,lng:7},SA:{lat:25,lng:45},SN:{lat:14,lng:-14},RS:{lat:44,lng:21},SC:{lat:-4.5833,lng:55.6667},SL:{lat:8.5,lng:-11.5},SG:{lat:1.3667,lng:103.8},SX:{lat:18.033333,lng:-63.05},SK:{lat:48.6667,lng:19.5},SI:{lat:46,lng:15},SB:{lat:-8,lng:159},SO:{lat:10,lng:49},ZA:{lat:-29,lng:24},GS:{lat:-54.5,lng:-37},SS:{lat:8,lng:30},ES:{lat:40,lng:-4},LK:{lat:7,lng:81},SD:{lat:15,lng:30},SR:{lat:4,lng:-56},SJ:{lat:78,lng:20},SZ:{lat:-26.5,lng:31.5},SE:{lat:62,lng:15},CH:{lat:47,lng:8},SY:{lat:35,lng:38},TW:{lat:23.5,lng:121},TJ:{lat:39,lng:71},TZ:{lat:-6,lng:35},TH:{lat:15,lng:100},TL:{lat:-8.55,lng:125.5167},TG:{lat:8,lng:1.1667},TK:{lat:-9,lng:-172},TO:{lat:-20,lng:-175},TT:{lat:11,lng:-61},TN:{lat:34,lng:9},TR:{lat:39,lng:35},TM:{lat:40,lng:60},TC:{lat:21.75,lng:-71.5833},TV:{lat:-8,lng:178},UG:{lat:1,lng:32},UA:{lat:49,lng:32},AE:{lat:24,lng:54},GB:{lat:54,lng:-2},UM:{lat:19.2833,lng:166.6},US:{lat:38,lng:-97},UY:{lat:-33,lng:-56},UZ:{lat:41,lng:64},VU:{lat:-16,lng:167},VE:{lat:8,lng:-66},VN:{lat:16,lng:106},VG:{lat:18.5,lng:-64.5},VI:{lat:18.3333,lng:-64.8333},WF:{lat:-13.3,lng:-176.2},EH:{lat:24.5,lng:-13},YE:{lat:15,lng:48},ZM:{lat:-15,lng:30},ZW:{lat:-20,lng:30}},s={WEST_US:{code:"us-west-1",displayName:"West US (North California)",location:{lat:37.774929,lng:-122.419418}},EAST_US:{code:"us-east-1",displayName:"East US (North Virginia)",location:{lat:37.926868,lng:-78.024902}},EAST_US_2:{code:"us-east-2",displayName:"East US (Ohio)",location:{lat:39.9612,lng:-82.9988}},CENTRAL_CANADA:{code:"ca-central-1",displayName:"Canada (Central)",location:{lat:56.130367,lng:-106.346771}},WEST_EU:{code:"eu-west-1",displayName:"West EU (Ireland)",location:{lat:53.3498,lng:-6.2603}},WEST_EU_2:{code:"eu-west-2",displayName:"West Europe (London)",location:{lat:51.507351,lng:-.127758}},WEST_EU_3:{code:"eu-west-3",displayName:"West EU (Paris)",location:{lat:2.352222,lng:48.856613}},CENTRAL_EU:{code:"eu-central-1",displayName:"Central EU (Frankfurt)",location:{lat:50.110924,lng:8.682127}},CENTRAL_EU_2:{code:"eu-central-2",displayName:"Central Europe (Zurich)",location:{lat:47.3744489,lng:8.5410422}},NORTH_EU:{code:"eu-north-1",displayName:"North EU (Stockholm)",location:{lat:59.3251172,lng:18.0710935}},SOUTH_ASIA:{code:"ap-south-1",displayName:"South Asia (Mumbai)",location:{lat:18.9733536,lng:72.8281049}},SOUTHEAST_ASIA:{code:"ap-southeast-1",displayName:"Southeast Asia (Singapore)",location:{lat:1.357107,lng:103.8194992}},NORTHEAST_ASIA:{code:"ap-northeast-1",displayName:"Northeast Asia (Tokyo)",location:{lat:35.6895,lng:139.6917}},NORTHEAST_ASIA_2:{code:"ap-northeast-2",displayName:"Northeast Asia (Seoul)",location:{lat:37.5665,lng:126.978}},OCEANIA:{code:"ap-southeast-2",displayName:"Oceania (Sydney)",location:{lat:-33.8688,lng:151.2093}},SOUTH_AMERICA:{code:"sa-east-1",displayName:"South America (S\xE3o Paulo)",location:{lat:-1.2043218,lng:-47.1583944}}},m= exports.b =Object.values(s).map(n=>n.code);function A(n){let a=Object.entries(s).map(([o,r])=>[o,h(n,r.location)]).reduce((o,r)=>o===void 0||r[1]<o[1]?r:o,void 0);if(!a)throw new Error("no closest region found");let[e]=a;return s[e]}async function O(){let l=await(await fetch(u)).text(),e=d(l).loc;if(!e)throw new Error("location not found");return e}function I(n){let l=y[n];if(!l)throw new Error(`unknown location code: ${n}`);return l}function h(n,l){let a=i(l.lat-n.lat),e=i(l.lng-n.lng),o=Math.sin(a/2)*Math.sin(a/2)+Math.cos(i(n.lat))*Math.cos(i(l.lat))*Math.sin(e/2)*Math.sin(e/2),r=2*Math.atan2(Math.sqrt(o),Math.sqrt(1-o));return S*r}function i(n){return n*(Math.PI/180)}var M=_zod.z.object({id:_zod.z.string(),name:_zod.z.string(),plan:_zod.z.string().optional(),allowed_release_channels:_zod.z.array(_zod.z.string()),opt_in_tags:_zod.z.array(_zod.z.string())}),R= exports.g =_zod.z.object({id:_zod.z.string(),organization_id:_zod.z.string(),name:_zod.z.string(),status:_zod.z.string(),created_at:_zod.z.string(),region:_zod.z.string()}),x= exports.h =_zod.z.object({id:_zod.z.string(),name:_zod.z.string(),project_ref:_zod.z.string(),parent_project_ref:_zod.z.string(),is_default:_zod.z.boolean(),git_branch:_zod.z.string().optional(),pr_number:_zod.z.number().optional(),latest_check_run_id:_zod.z.number().optional(),persistent:_zod.z.boolean(),status:_zod.z.enum(["CREATING_PROJECT","RUNNING_MIGRATIONS","MIGRATIONS_PASSED","MIGRATIONS_FAILED","FUNCTIONS_DEPLOYED","FUNCTIONS_FAILED"]),created_at:_zod.z.string(),updated_at:_zod.z.string()}),C= exports.i =_zod.z.object({id:_zod.z.string(),slug:_zod.z.string(),name:_zod.z.string(),status:_zod.z.string(),version:_zod.z.number(),created_at:_zod.z.number().optional(),updated_at:_zod.z.number().optional(),verify_jwt:_zod.z.boolean().optional(),import_map:_zod.z.boolean().optional(),import_map_path:_zod.z.string().optional(),entrypoint_path:_zod.z.string().optional(),files:_zod.z.array(_zod.z.object({name:_zod.z.string(),content:_zod.z.string()}))}),j= exports.j =_zod.z.object({name:_zod.z.string(),organization_id:_zod.z.string(),region:_zod.z.enum(m).optional(),db_pass:_zod.z.string().optional()}),U= exports.k =_zod.z.object({name:_zod.z.string()}),b= exports.l =_zod.z.object({migration_version:_zod.z.string().optional()}),L= exports.m =_zod.z.object({name:_zod.z.string(),entrypoint_path:_zod.z.string(),import_map_path:_zod.z.string().optional(),files:_zod.z.array(_zod.z.object({name:_zod.z.string(),content:_zod.z.string()}))}),G= exports.n =_zod.z.object({query:_zod.z.string(),read_only:_zod.z.boolean().optional()}),B= exports.o =_zod.z.object({name:_zod.z.string(),query:_zod.z.string()}),F= exports.p =_zod.z.object({version:_zod.z.string(),name:_zod.z.string().optional()}),D= exports.q =_zod.z.object({sql:_zod.z.string(),iso_timestamp_start:_zod.z.string().optional(),iso_timestamp_end:_zod.z.string().optional()}),w= exports.r =_zod.z.object({types:_zod.z.string()});exports.a = T; exports.b = m; exports.c = A; exports.d = O; exports.e = I; exports.f = M; exports.g = R; exports.h = x; exports.i = C; exports.j = j; exports.k = U; exports.l = b; exports.m = L; exports.n = G; exports.o = B; exports.p = F; exports.q = D; exports.r = w;
3
+ //# sourceMappingURL=chunk-T5KT73N4.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/platform/types.ts","../src/util.ts","../src/regions.ts"],"names":["parseKeyValueList","data","item","key","value","hashObject","obj","length","str","_","result","buffer","EARTH_RADIUS","TRACE_URL","COUNTRY_COORDINATES","AWS_REGIONS","AWS_REGION_CODES","region","getClosestAwsRegion","location","closestRegion","name","getDistance","min","current","regionName","getCountryCode","countryCode","getCountryCoordinates"],"mappings":"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","file":"/Users/grichardson/Documents/dev/supabase/mcp-server-supabase/packages/mcp-server-supabase/dist/chunk-ILOQJ4GC.cjs","sourcesContent":["import { z } from 'zod';\nimport { AWS_REGION_CODES } from '../regions.js';\nimport type { InitData } from '@supabase/mcp-utils';\n\nexport const organizationSchema = z.object({\n id: z.string(),\n name: z.string(),\n plan: z.string().optional(),\n allowed_release_channels: z.array(z.string()),\n opt_in_tags: z.array(z.string()),\n});\n\nexport const projectSchema = z.object({\n id: z.string(),\n organization_id: z.string(),\n name: z.string(),\n status: z.string(),\n created_at: z.string(),\n region: z.string(),\n});\n\nexport const branchSchema = z.object({\n id: z.string(),\n name: z.string(),\n project_ref: z.string(),\n parent_project_ref: z.string(),\n is_default: z.boolean(),\n git_branch: z.string().optional(),\n pr_number: z.number().optional(),\n latest_check_run_id: z.number().optional(),\n persistent: z.boolean(),\n status: z.enum([\n 'CREATING_PROJECT',\n 'RUNNING_MIGRATIONS',\n 'MIGRATIONS_PASSED',\n 'MIGRATIONS_FAILED',\n 'FUNCTIONS_DEPLOYED',\n 'FUNCTIONS_FAILED',\n ]),\n created_at: z.string(),\n updated_at: z.string(),\n});\n\nexport const edgeFunctionSchema = z.object({\n id: z.string(),\n slug: z.string(),\n name: z.string(),\n status: z.string(),\n version: z.number(),\n created_at: z.number().optional(),\n updated_at: z.number().optional(),\n verify_jwt: z.boolean().optional(),\n import_map: z.boolean().optional(),\n import_map_path: z.string().optional(),\n entrypoint_path: z.string().optional(),\n files: z.array(\n z.object({\n name: z.string(),\n content: z.string(),\n })\n ),\n});\n\nexport const createProjectOptionsSchema = z.object({\n name: z.string(),\n organization_id: z.string(),\n region: z.enum(AWS_REGION_CODES).optional(),\n db_pass: z.string().optional(),\n});\n\nexport const createBranchOptionsSchema = z.object({\n name: z.string(),\n});\n\nexport const resetBranchOptionsSchema = z.object({\n migration_version: z.string().optional(),\n});\n\nexport const deployEdgeFunctionOptionsSchema = z.object({\n name: z.string(),\n entrypoint_path: z.string(),\n import_map_path: z.string().optional(),\n files: z.array(\n z.object({\n name: z.string(),\n content: z.string(),\n })\n ),\n});\n\nexport const executeSqlOptionsSchema = z.object({\n query: z.string(),\n read_only: z.boolean().optional(),\n});\n\nexport const applyMigrationOptionsSchema = z.object({\n name: z.string(),\n query: z.string(),\n});\n\nexport const migrationSchema = z.object({\n version: z.string(),\n name: z.string().optional(),\n});\n\nexport const getLogsOptionsSchema = z.object({\n sql: z.string(),\n iso_timestamp_start: z.string().optional(),\n iso_timestamp_end: z.string().optional(),\n});\n\nexport const generateTypescriptTypesResultSchema = z.object({\n types: z.string(),\n});\n\nexport type Organization = z.infer<typeof organizationSchema>;\nexport type Project = z.infer<typeof projectSchema>;\nexport type Branch = z.infer<typeof branchSchema>;\nexport type EdgeFunction = z.infer<typeof edgeFunctionSchema>;\n\nexport type CreateProjectOptions = z.infer<typeof createProjectOptionsSchema>;\nexport type CreateBranchOptions = z.infer<typeof createBranchOptionsSchema>;\nexport type ResetBranchOptions = z.infer<typeof resetBranchOptionsSchema>;\nexport type DeployEdgeFunctionOptions = z.infer<\n typeof deployEdgeFunctionOptionsSchema\n>;\n\nexport type ExecuteSqlOptions = z.infer<typeof executeSqlOptionsSchema>;\nexport type ApplyMigrationOptions = z.infer<typeof applyMigrationOptionsSchema>;\nexport type Migration = z.infer<typeof migrationSchema>;\nexport type ListMigrationsResult = z.infer<typeof migrationSchema>;\n\nexport type GetLogsOptions = z.infer<typeof getLogsOptionsSchema>;\nexport type GenerateTypescriptTypesResult = z.infer<\n typeof generateTypescriptTypesResultSchema\n>;\n\nexport type SupabasePlatform = {\n init?(info: InitData): Promise<void>;\n\n // Database operations\n executeSql<T>(projectId: string, options: ExecuteSqlOptions): Promise<T[]>;\n listMigrations(projectId: string): Promise<Migration[]>;\n applyMigration<T>(\n projectId: string,\n options: ApplyMigrationOptions\n ): Promise<T[]>;\n\n // Project management\n listOrganizations(): Promise<Pick<Organization, 'id' | 'name'>[]>;\n getOrganization(organizationId: string): Promise<Organization>;\n listProjects(): Promise<Project[]>;\n getProject(projectId: string): Promise<Project>;\n createProject(options: CreateProjectOptions): Promise<Project>;\n pauseProject(projectId: string): Promise<void>;\n restoreProject(projectId: string): Promise<void>;\n\n // Edge functions\n listEdgeFunctions(projectId: string): Promise<EdgeFunction[]>;\n getEdgeFunction(\n projectId: string,\n functionSlug: string\n ): Promise<EdgeFunction>;\n deployEdgeFunction(\n projectId: string,\n options: DeployEdgeFunctionOptions\n ): Promise<Omit<EdgeFunction, 'files'>>;\n\n // Debugging\n getLogs(projectId: string, options: GetLogsOptions): Promise<unknown>;\n\n // Development\n getProjectUrl(projectId: string): Promise<string>;\n getAnonKey(projectId: string): Promise<string>;\n generateTypescriptTypes(\n projectId: string\n ): Promise<GenerateTypescriptTypesResult>;\n\n // Branching\n listBranches(projectId: string): Promise<Branch[]>;\n createBranch(\n projectId: string,\n options: CreateBranchOptions\n ): Promise<Branch>;\n deleteBranch(branchId: string): Promise<void>;\n mergeBranch(branchId: string): Promise<void>;\n resetBranch(branchId: string, options: ResetBranchOptions): Promise<void>;\n rebaseBranch(branchId: string): Promise<void>;\n};\n","export type ValueOf<T> = T[keyof T];\n\n// UnionToIntersection<A | B> = A & B\nexport type UnionToIntersection<U> = (\n U extends unknown\n ? (arg: U) => 0\n : never\n) extends (arg: infer I) => 0\n ? I\n : never;\n\n// LastInUnion<A | B> = B\nexport type LastInUnion<U> = UnionToIntersection<\n U extends unknown ? (x: U) => 0 : never\n> extends (x: infer L) => 0\n ? L\n : never;\n\n// UnionToTuple<A, B> = [A, B]\nexport type UnionToTuple<T, Last = LastInUnion<T>> = [T] extends [never]\n ? []\n : [Last, ...UnionToTuple<Exclude<T, Last>>];\n\n/**\n * Parses a key-value string into an object.\n *\n * @returns An object representing the key-value pairs\n *\n * @example\n * const result = parseKeyValueList(\"key1=value1\\nkey2=value2\");\n * console.log(result); // { key1: \"value1\", key2: \"value2\" }\n */\nexport function parseKeyValueList(data: string): { [key: string]: string } {\n return Object.fromEntries(\n data\n .split('\\n')\n .map((item) => item.split(/=(.*)/)) // split only on the first '='\n .filter(([key]) => key) // filter out empty keys\n .map(([key, value]) => [key, value ?? '']) // ensure value is not undefined\n );\n}\n\n/**\n * Creates a unique hash from a JavaScript object.\n * @param obj - The object to hash\n * @param length - Optional length to truncate the hash (default: full length)\n */\nexport async function hashObject(\n obj: Record<string, any>,\n length?: number\n): Promise<string> {\n // Sort object keys to ensure consistent output regardless of original key order\n const str = JSON.stringify(obj, (_, value) => {\n if (value && typeof value === 'object' && !Array.isArray(value)) {\n return Object.keys(value)\n .sort()\n .reduce<Record<string, any>>((result, key) => {\n result[key] = value[key];\n return result;\n }, {});\n }\n return value;\n });\n\n const buffer = await crypto.subtle.digest(\n 'SHA-256',\n new TextEncoder().encode(str)\n );\n\n // Convert to base64\n const base64Hash = btoa(String.fromCharCode(...new Uint8Array(buffer)));\n return base64Hash.slice(0, length);\n}\n","import { parseKeyValueList, type UnionToTuple, type ValueOf } from './util.js';\n\nexport type AwsRegion = {\n code: string;\n displayName: string;\n location: Location;\n};\n\nexport type Location = {\n lat: number;\n lng: number;\n};\n\nexport const EARTH_RADIUS = 6371; // in kilometers\nexport const TRACE_URL = 'https://www.cloudflare.com/cdn-cgi/trace';\n\nexport const COUNTRY_COORDINATES = {\n AF: { lat: 33, lng: 65 },\n AX: { lat: 60.116667, lng: 19.9 },\n AL: { lat: 41, lng: 20 },\n DZ: { lat: 28, lng: 3 },\n AS: { lat: -14.3333, lng: -170 },\n AD: { lat: 42.5, lng: 1.6 },\n AO: { lat: -12.5, lng: 18.5 },\n AI: { lat: 18.25, lng: -63.1667 },\n AQ: { lat: -90, lng: 0 },\n AG: { lat: 17.05, lng: -61.8 },\n AR: { lat: -34, lng: -64 },\n AM: { lat: 40, lng: 45 },\n AW: { lat: 12.5, lng: -69.9667 },\n AU: { lat: -27, lng: 133 },\n AT: { lat: 47.3333, lng: 13.3333 },\n AZ: { lat: 40.5, lng: 47.5 },\n BS: { lat: 24.25, lng: -76 },\n BH: { lat: 26, lng: 50.55 },\n BD: { lat: 24, lng: 90 },\n BB: { lat: 13.1667, lng: -59.5333 },\n BY: { lat: 53, lng: 28 },\n BE: { lat: 50.8333, lng: 4 },\n BZ: { lat: 17.25, lng: -88.75 },\n BJ: { lat: 9.5, lng: 2.25 },\n BM: { lat: 32.3333, lng: -64.75 },\n BT: { lat: 27.5, lng: 90.5 },\n BO: { lat: -17, lng: -65 },\n BQ: { lat: 12.183333, lng: -68.233333 },\n BA: { lat: 44, lng: 18 },\n BW: { lat: -22, lng: 24 },\n BV: { lat: -54.4333, lng: 3.4 },\n BR: { lat: -10, lng: -55 },\n IO: { lat: -6, lng: 71.5 },\n BN: { lat: 4.5, lng: 114.6667 },\n BG: { lat: 43, lng: 25 },\n BF: { lat: 13, lng: -2 },\n MM: { lat: 22, lng: 98 },\n BI: { lat: -3.5, lng: 30 },\n KH: { lat: 13, lng: 105 },\n CM: { lat: 6, lng: 12 },\n CA: { lat: 60, lng: -95 },\n CV: { lat: 16, lng: -24 },\n KY: { lat: 19.5, lng: -80.5 },\n CF: { lat: 7, lng: 21 },\n TD: { lat: 15, lng: 19 },\n CL: { lat: -30, lng: -71 },\n CN: { lat: 35, lng: 105 },\n CX: { lat: -10.5, lng: 105.6667 },\n CC: { lat: -12.5, lng: 96.8333 },\n CO: { lat: 4, lng: -72 },\n KM: { lat: -12.1667, lng: 44.25 },\n CD: { lat: 0, lng: 25 },\n CG: { lat: -1, lng: 15 },\n CK: { lat: -21.2333, lng: -159.7667 },\n CR: { lat: 10, lng: -84 },\n CI: { lat: 8, lng: -5 },\n HR: { lat: 45.1667, lng: 15.5 },\n CU: { lat: 21.5, lng: -80 },\n CW: { lat: 12.166667, lng: -68.966667 },\n CY: { lat: 35, lng: 33 },\n CZ: { lat: 49.75, lng: 15.5 },\n DK: { lat: 56, lng: 10 },\n DJ: { lat: 11.5, lng: 43 },\n DM: { lat: 15.4167, lng: -61.3333 },\n DO: { lat: 19, lng: -70.6667 },\n EC: { lat: -2, lng: -77.5 },\n EG: { lat: 27, lng: 30 },\n SV: { lat: 13.8333, lng: -88.9167 },\n GQ: { lat: 2, lng: 10 },\n ER: { lat: 15, lng: 39 },\n EE: { lat: 59, lng: 26 },\n ET: { lat: 8, lng: 38 },\n FK: { lat: -51.75, lng: -59 },\n FO: { lat: 62, lng: -7 },\n FJ: { lat: -18, lng: 175 },\n FI: { lat: 64, lng: 26 },\n FR: { lat: 46, lng: 2 },\n GF: { lat: 4, lng: -53 },\n PF: { lat: -15, lng: -140 },\n TF: { lat: -43, lng: 67 },\n GA: { lat: -1, lng: 11.75 },\n GM: { lat: 13.4667, lng: -16.5667 },\n GE: { lat: 42, lng: 43.5 },\n DE: { lat: 51, lng: 9 },\n GH: { lat: 8, lng: -2 },\n GI: { lat: 36.1833, lng: -5.3667 },\n GR: { lat: 39, lng: 22 },\n GL: { lat: 72, lng: -40 },\n GD: { lat: 12.1167, lng: -61.6667 },\n GP: { lat: 16.25, lng: -61.5833 },\n GU: { lat: 13.4667, lng: 144.7833 },\n GT: { lat: 15.5, lng: -90.25 },\n GG: { lat: 49.5, lng: -2.56 },\n GW: { lat: 12, lng: -15 },\n GN: { lat: 11, lng: -10 },\n GY: { lat: 5, lng: -59 },\n HT: { lat: 19, lng: -72.4167 },\n HM: { lat: -53.1, lng: 72.5167 },\n VA: { lat: 41.9, lng: 12.45 },\n HN: { lat: 15, lng: -86.5 },\n HK: { lat: 22.25, lng: 114.1667 },\n HU: { lat: 47, lng: 20 },\n IS: { lat: 65, lng: -18 },\n IN: { lat: 20, lng: 77 },\n ID: { lat: -5, lng: 120 },\n IR: { lat: 32, lng: 53 },\n IQ: { lat: 33, lng: 44 },\n IE: { lat: 53, lng: -8 },\n IM: { lat: 54.23, lng: -4.55 },\n IL: { lat: 31.5, lng: 34.75 },\n IT: { lat: 42.8333, lng: 12.8333 },\n JM: { lat: 18.25, lng: -77.5 },\n JP: { lat: 36, lng: 138 },\n JE: { lat: 49.21, lng: -2.13 },\n JO: { lat: 31, lng: 36 },\n KZ: { lat: 48, lng: 68 },\n KE: { lat: 1, lng: 38 },\n KI: { lat: 1.4167, lng: 173 },\n KP: { lat: 40, lng: 127 },\n KR: { lat: 37, lng: 127.5 },\n XK: { lat: 42.583333, lng: 21 },\n KW: { lat: 29.3375, lng: 47.6581 },\n KG: { lat: 41, lng: 75 },\n LA: { lat: 18, lng: 105 },\n LV: { lat: 57, lng: 25 },\n LB: { lat: 33.8333, lng: 35.8333 },\n LS: { lat: -29.5, lng: 28.5 },\n LR: { lat: 6.5, lng: -9.5 },\n LY: { lat: 25, lng: 17 },\n LI: { lat: 47.1667, lng: 9.5333 },\n LT: { lat: 56, lng: 24 },\n LU: { lat: 49.75, lng: 6.1667 },\n MO: { lat: 22.1667, lng: 113.55 },\n MK: { lat: 41.8333, lng: 22 },\n MG: { lat: -20, lng: 47 },\n MW: { lat: -13.5, lng: 34 },\n MY: { lat: 2.5, lng: 112.5 },\n MV: { lat: 3.25, lng: 73 },\n ML: { lat: 17, lng: -4 },\n MT: { lat: 35.8333, lng: 14.5833 },\n MH: { lat: 9, lng: 168 },\n MQ: { lat: 14.6667, lng: -61 },\n MR: { lat: 20, lng: -12 },\n MU: { lat: -20.2833, lng: 57.55 },\n YT: { lat: -12.8333, lng: 45.1667 },\n MX: { lat: 23, lng: -102 },\n FM: { lat: 6.9167, lng: 158.25 },\n MD: { lat: 47, lng: 29 },\n MC: { lat: 43.7333, lng: 7.4 },\n MN: { lat: 46, lng: 105 },\n ME: { lat: 42, lng: 19 },\n MS: { lat: 16.75, lng: -62.2 },\n MA: { lat: 32, lng: -5 },\n MZ: { lat: -18.25, lng: 35 },\n NA: { lat: -22, lng: 17 },\n NR: { lat: -0.5333, lng: 166.9167 },\n NP: { lat: 28, lng: 84 },\n AN: { lat: 12.25, lng: -68.75 },\n NL: { lat: 52.5, lng: 5.75 },\n NC: { lat: -21.5, lng: 165.5 },\n NZ: { lat: -41, lng: 174 },\n NI: { lat: 13, lng: -85 },\n NE: { lat: 16, lng: 8 },\n NG: { lat: 10, lng: 8 },\n NU: { lat: -19.0333, lng: -169.8667 },\n NF: { lat: -29.0333, lng: 167.95 },\n MP: { lat: 15.2, lng: 145.75 },\n NO: { lat: 62, lng: 10 },\n OM: { lat: 21, lng: 57 },\n PK: { lat: 30, lng: 70 },\n PW: { lat: 7.5, lng: 134.5 },\n PS: { lat: 32, lng: 35.25 },\n PA: { lat: 9, lng: -80 },\n PG: { lat: -6, lng: 147 },\n PY: { lat: -23, lng: -58 },\n PE: { lat: -10, lng: -76 },\n PH: { lat: 13, lng: 122 },\n PN: { lat: -24.7, lng: -127.4 },\n PL: { lat: 52, lng: 20 },\n PT: { lat: 39.5, lng: -8 },\n PR: { lat: 18.25, lng: -66.5 },\n QA: { lat: 25.5, lng: 51.25 },\n RE: { lat: -21.1, lng: 55.6 },\n RO: { lat: 46, lng: 25 },\n RU: { lat: 60, lng: 100 },\n RW: { lat: -2, lng: 30 },\n BL: { lat: 17.897728, lng: -62.834244 },\n SH: { lat: -15.9333, lng: -5.7 },\n KN: { lat: 17.3333, lng: -62.75 },\n LC: { lat: 13.8833, lng: -61.1333 },\n MF: { lat: 18.075278, lng: -63.06 },\n PM: { lat: 46.8333, lng: -56.3333 },\n VC: { lat: 13.25, lng: -61.2 },\n WS: { lat: -13.5833, lng: -172.3333 },\n SM: { lat: 43.7667, lng: 12.4167 },\n ST: { lat: 1, lng: 7 },\n SA: { lat: 25, lng: 45 },\n SN: { lat: 14, lng: -14 },\n RS: { lat: 44, lng: 21 },\n SC: { lat: -4.5833, lng: 55.6667 },\n SL: { lat: 8.5, lng: -11.5 },\n SG: { lat: 1.3667, lng: 103.8 },\n SX: { lat: 18.033333, lng: -63.05 },\n SK: { lat: 48.6667, lng: 19.5 },\n SI: { lat: 46, lng: 15 },\n SB: { lat: -8, lng: 159 },\n SO: { lat: 10, lng: 49 },\n ZA: { lat: -29, lng: 24 },\n GS: { lat: -54.5, lng: -37 },\n SS: { lat: 8, lng: 30 },\n ES: { lat: 40, lng: -4 },\n LK: { lat: 7, lng: 81 },\n SD: { lat: 15, lng: 30 },\n SR: { lat: 4, lng: -56 },\n SJ: { lat: 78, lng: 20 },\n SZ: { lat: -26.5, lng: 31.5 },\n SE: { lat: 62, lng: 15 },\n CH: { lat: 47, lng: 8 },\n SY: { lat: 35, lng: 38 },\n TW: { lat: 23.5, lng: 121 },\n TJ: { lat: 39, lng: 71 },\n TZ: { lat: -6, lng: 35 },\n TH: { lat: 15, lng: 100 },\n TL: { lat: -8.55, lng: 125.5167 },\n TG: { lat: 8, lng: 1.1667 },\n TK: { lat: -9, lng: -172 },\n TO: { lat: -20, lng: -175 },\n TT: { lat: 11, lng: -61 },\n TN: { lat: 34, lng: 9 },\n TR: { lat: 39, lng: 35 },\n TM: { lat: 40, lng: 60 },\n TC: { lat: 21.75, lng: -71.5833 },\n TV: { lat: -8, lng: 178 },\n UG: { lat: 1, lng: 32 },\n UA: { lat: 49, lng: 32 },\n AE: { lat: 24, lng: 54 },\n GB: { lat: 54, lng: -2 },\n UM: { lat: 19.2833, lng: 166.6 },\n US: { lat: 38, lng: -97 },\n UY: { lat: -33, lng: -56 },\n UZ: { lat: 41, lng: 64 },\n VU: { lat: -16, lng: 167 },\n VE: { lat: 8, lng: -66 },\n VN: { lat: 16, lng: 106 },\n VG: { lat: 18.5, lng: -64.5 },\n VI: { lat: 18.3333, lng: -64.8333 },\n WF: { lat: -13.3, lng: -176.2 },\n EH: { lat: 24.5, lng: -13 },\n YE: { lat: 15, lng: 48 },\n ZM: { lat: -15, lng: 30 },\n ZW: { lat: -20, lng: 30 },\n} as const satisfies Record<string, Location>;\n\nexport const AWS_REGIONS = {\n WEST_US: {\n code: 'us-west-1',\n displayName: 'West US (North California)',\n location: { lat: 37.774929, lng: -122.419418 },\n },\n EAST_US: {\n code: 'us-east-1',\n displayName: 'East US (North Virginia)',\n location: { lat: 37.926868, lng: -78.024902 },\n },\n EAST_US_2: {\n code: 'us-east-2',\n displayName: 'East US (Ohio)',\n location: { lat: 39.9612, lng: -82.9988 },\n },\n CENTRAL_CANADA: {\n code: 'ca-central-1',\n displayName: 'Canada (Central)',\n location: { lat: 56.130367, lng: -106.346771 },\n },\n WEST_EU: {\n code: 'eu-west-1',\n displayName: 'West EU (Ireland)',\n location: { lat: 53.3498, lng: -6.2603 },\n },\n WEST_EU_2: {\n code: 'eu-west-2',\n displayName: 'West Europe (London)',\n location: { lat: 51.507351, lng: -0.127758 },\n },\n WEST_EU_3: {\n code: 'eu-west-3',\n displayName: 'West EU (Paris)',\n location: { lat: 2.352222, lng: 48.856613 },\n },\n CENTRAL_EU: {\n code: 'eu-central-1',\n displayName: 'Central EU (Frankfurt)',\n location: { lat: 50.110924, lng: 8.682127 },\n },\n CENTRAL_EU_2: {\n code: 'eu-central-2',\n displayName: 'Central Europe (Zurich)',\n location: { lat: 47.3744489, lng: 8.5410422 },\n },\n NORTH_EU: {\n code: 'eu-north-1',\n displayName: 'North EU (Stockholm)',\n location: { lat: 59.3251172, lng: 18.0710935 },\n },\n SOUTH_ASIA: {\n code: 'ap-south-1',\n displayName: 'South Asia (Mumbai)',\n location: { lat: 18.9733536, lng: 72.8281049 },\n },\n SOUTHEAST_ASIA: {\n code: 'ap-southeast-1',\n displayName: 'Southeast Asia (Singapore)',\n location: { lat: 1.357107, lng: 103.8194992 },\n },\n NORTHEAST_ASIA: {\n code: 'ap-northeast-1',\n displayName: 'Northeast Asia (Tokyo)',\n location: { lat: 35.6895, lng: 139.6917 },\n },\n NORTHEAST_ASIA_2: {\n code: 'ap-northeast-2',\n displayName: 'Northeast Asia (Seoul)',\n location: { lat: 37.5665, lng: 126.978 },\n },\n OCEANIA: {\n code: 'ap-southeast-2',\n displayName: 'Oceania (Sydney)',\n location: { lat: -33.8688, lng: 151.2093 },\n },\n SOUTH_AMERICA: {\n code: 'sa-east-1',\n displayName: 'South America (São Paulo)',\n location: { lat: -1.2043218, lng: -47.1583944 },\n },\n} as const satisfies Record<string, AwsRegion>;\n\nexport type RegionCodes = ValueOf<typeof AWS_REGIONS>['code'];\n\nexport const AWS_REGION_CODES = Object.values(AWS_REGIONS).map(\n (region) => region.code\n) as UnionToTuple<RegionCodes>;\n\n/**\n * Calculates the closest AWS region to a given location.\n */\nexport function getClosestAwsRegion(location: Location) {\n const distances = Object.entries(AWS_REGIONS).map<\n [region: string, distance: number]\n >(([name, region]) => {\n return [name, getDistance(location, region.location)] as const;\n });\n\n const closestRegion = distances.reduce<\n [region: string, distance: number] | undefined\n >(\n (min, current) =>\n min === undefined ? current : current[1] < min[1] ? current : min,\n undefined\n );\n\n if (!closestRegion) {\n throw new Error('no closest region found');\n }\n\n const [regionName] = closestRegion;\n\n return AWS_REGIONS[regionName as keyof typeof AWS_REGIONS];\n}\n\n/**\n * Fetches the user's country code based on their IP address.\n */\nexport async function getCountryCode() {\n const response = await fetch(TRACE_URL);\n const data = await response.text();\n const info = parseKeyValueList(data);\n const countryCode = info['loc'];\n\n if (!countryCode) {\n throw new Error('location not found');\n }\n\n return countryCode;\n}\n\n/**\n * Gets the approximate coordinates of a country based on its country code.\n */\nexport function getCountryCoordinates(countryCode: string) {\n const location: Location =\n COUNTRY_COORDINATES[countryCode as keyof typeof COUNTRY_COORDINATES];\n\n if (!location) {\n throw new Error(`unknown location code: ${countryCode}`);\n }\n\n return location;\n}\n\n/**\n * Calculates the distance between two points on Earth using the Haversine formula.\n *\n * @returns Distance between the points in kilometers\n */\nexport function getDistance(a: Location, b: Location): number {\n const lat = degreesToRadians(b.lat - a.lat);\n const lng = degreesToRadians(b.lng - a.lng);\n const a1 =\n Math.sin(lat / 2) * Math.sin(lat / 2) +\n Math.cos(degreesToRadians(a.lat)) *\n Math.cos(degreesToRadians(b.lat)) *\n Math.sin(lng / 2) *\n Math.sin(lng / 2);\n const c = 2 * Math.atan2(Math.sqrt(a1), Math.sqrt(1 - a1));\n return EARTH_RADIUS * c;\n}\n\n/**\n * Converts degrees to radians\n *\n * @returns The angle in radians\n */\nexport function degreesToRadians(deg: number): number {\n return deg * (Math.PI / 180);\n}\n"]}
1
+ {"version":3,"sources":["../src/platform/types.ts","../src/util.ts","../src/regions.ts"],"names":["parseKeyValueList","data","item","key","value","hashObject","obj","length","str","_","result","buffer","EARTH_RADIUS","TRACE_URL","COUNTRY_COORDINATES","AWS_REGIONS","AWS_REGION_CODES","region","getClosestAwsRegion","location","closestRegion","name","getDistance","min","current","regionName","getCountryCode","countryCode","getCountryCoordinates"],"mappings":"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","file":"/Users/grichardson/Documents/dev/supabase/mcp-server-supabase/packages/mcp-server-supabase/dist/chunk-T5KT73N4.cjs","sourcesContent":["import { z } from 'zod';\nimport { AWS_REGION_CODES } from '../regions.js';\nimport type { InitData } from '@supabase/mcp-utils';\n\nexport const organizationSchema = z.object({\n id: z.string(),\n name: z.string(),\n plan: z.string().optional(),\n allowed_release_channels: z.array(z.string()),\n opt_in_tags: z.array(z.string()),\n});\n\nexport const projectSchema = z.object({\n id: z.string(),\n organization_id: z.string(),\n name: z.string(),\n status: z.string(),\n created_at: z.string(),\n region: z.string(),\n});\n\nexport const branchSchema = z.object({\n id: z.string(),\n name: z.string(),\n project_ref: z.string(),\n parent_project_ref: z.string(),\n is_default: z.boolean(),\n git_branch: z.string().optional(),\n pr_number: z.number().optional(),\n latest_check_run_id: z.number().optional(),\n persistent: z.boolean(),\n status: z.enum([\n 'CREATING_PROJECT',\n 'RUNNING_MIGRATIONS',\n 'MIGRATIONS_PASSED',\n 'MIGRATIONS_FAILED',\n 'FUNCTIONS_DEPLOYED',\n 'FUNCTIONS_FAILED',\n ]),\n created_at: z.string(),\n updated_at: z.string(),\n});\n\nexport const edgeFunctionSchema = z.object({\n id: z.string(),\n slug: z.string(),\n name: z.string(),\n status: z.string(),\n version: z.number(),\n created_at: z.number().optional(),\n updated_at: z.number().optional(),\n verify_jwt: z.boolean().optional(),\n import_map: z.boolean().optional(),\n import_map_path: z.string().optional(),\n entrypoint_path: z.string().optional(),\n files: z.array(\n z.object({\n name: z.string(),\n content: z.string(),\n })\n ),\n});\n\nexport const createProjectOptionsSchema = z.object({\n name: z.string(),\n organization_id: z.string(),\n region: z.enum(AWS_REGION_CODES).optional(),\n db_pass: z.string().optional(),\n});\n\nexport const createBranchOptionsSchema = z.object({\n name: z.string(),\n});\n\nexport const resetBranchOptionsSchema = z.object({\n migration_version: z.string().optional(),\n});\n\nexport const deployEdgeFunctionOptionsSchema = z.object({\n name: z.string(),\n entrypoint_path: z.string(),\n import_map_path: z.string().optional(),\n files: z.array(\n z.object({\n name: z.string(),\n content: z.string(),\n })\n ),\n});\n\nexport const executeSqlOptionsSchema = z.object({\n query: z.string(),\n read_only: z.boolean().optional(),\n});\n\nexport const applyMigrationOptionsSchema = z.object({\n name: z.string(),\n query: z.string(),\n});\n\nexport const migrationSchema = z.object({\n version: z.string(),\n name: z.string().optional(),\n});\n\nexport const getLogsOptionsSchema = z.object({\n sql: z.string(),\n iso_timestamp_start: z.string().optional(),\n iso_timestamp_end: z.string().optional(),\n});\n\nexport const generateTypescriptTypesResultSchema = z.object({\n types: z.string(),\n});\n\nexport type Organization = z.infer<typeof organizationSchema>;\nexport type Project = z.infer<typeof projectSchema>;\nexport type Branch = z.infer<typeof branchSchema>;\nexport type EdgeFunction = z.infer<typeof edgeFunctionSchema>;\n\nexport type CreateProjectOptions = z.infer<typeof createProjectOptionsSchema>;\nexport type CreateBranchOptions = z.infer<typeof createBranchOptionsSchema>;\nexport type ResetBranchOptions = z.infer<typeof resetBranchOptionsSchema>;\nexport type DeployEdgeFunctionOptions = z.infer<\n typeof deployEdgeFunctionOptionsSchema\n>;\n\nexport type ExecuteSqlOptions = z.infer<typeof executeSqlOptionsSchema>;\nexport type ApplyMigrationOptions = z.infer<typeof applyMigrationOptionsSchema>;\nexport type Migration = z.infer<typeof migrationSchema>;\nexport type ListMigrationsResult = z.infer<typeof migrationSchema>;\n\nexport type GetLogsOptions = z.infer<typeof getLogsOptionsSchema>;\nexport type GenerateTypescriptTypesResult = z.infer<\n typeof generateTypescriptTypesResultSchema\n>;\n\nexport type SupabasePlatform = {\n init?(info: InitData): Promise<void>;\n\n // Database operations\n executeSql<T>(projectId: string, options: ExecuteSqlOptions): Promise<T[]>;\n listMigrations(projectId: string): Promise<Migration[]>;\n applyMigration<T>(\n projectId: string,\n options: ApplyMigrationOptions\n ): Promise<T[]>;\n\n // Project management\n listOrganizations(): Promise<Pick<Organization, 'id' | 'name'>[]>;\n getOrganization(organizationId: string): Promise<Organization>;\n listProjects(): Promise<Project[]>;\n getProject(projectId: string): Promise<Project>;\n createProject(options: CreateProjectOptions): Promise<Project>;\n pauseProject(projectId: string): Promise<void>;\n restoreProject(projectId: string): Promise<void>;\n\n // Edge functions\n listEdgeFunctions(projectId: string): Promise<EdgeFunction[]>;\n getEdgeFunction(\n projectId: string,\n functionSlug: string\n ): Promise<EdgeFunction>;\n deployEdgeFunction(\n projectId: string,\n options: DeployEdgeFunctionOptions\n ): Promise<Omit<EdgeFunction, 'files'>>;\n\n // Debugging\n getLogs(projectId: string, options: GetLogsOptions): Promise<unknown>;\n getSecurityAdvisors(projectId: string): Promise<unknown>;\n getPerformanceAdvisors(projectId: string): Promise<unknown>;\n\n // Development\n getProjectUrl(projectId: string): Promise<string>;\n getAnonKey(projectId: string): Promise<string>;\n generateTypescriptTypes(\n projectId: string\n ): Promise<GenerateTypescriptTypesResult>;\n\n // Branching\n listBranches(projectId: string): Promise<Branch[]>;\n createBranch(\n projectId: string,\n options: CreateBranchOptions\n ): Promise<Branch>;\n deleteBranch(branchId: string): Promise<void>;\n mergeBranch(branchId: string): Promise<void>;\n resetBranch(branchId: string, options: ResetBranchOptions): Promise<void>;\n rebaseBranch(branchId: string): Promise<void>;\n};\n","export type ValueOf<T> = T[keyof T];\n\n// UnionToIntersection<A | B> = A & B\nexport type UnionToIntersection<U> = (\n U extends unknown\n ? (arg: U) => 0\n : never\n) extends (arg: infer I) => 0\n ? I\n : never;\n\n// LastInUnion<A | B> = B\nexport type LastInUnion<U> = UnionToIntersection<\n U extends unknown ? (x: U) => 0 : never\n> extends (x: infer L) => 0\n ? L\n : never;\n\n// UnionToTuple<A, B> = [A, B]\nexport type UnionToTuple<T, Last = LastInUnion<T>> = [T] extends [never]\n ? []\n : [Last, ...UnionToTuple<Exclude<T, Last>>];\n\n/**\n * Parses a key-value string into an object.\n *\n * @returns An object representing the key-value pairs\n *\n * @example\n * const result = parseKeyValueList(\"key1=value1\\nkey2=value2\");\n * console.log(result); // { key1: \"value1\", key2: \"value2\" }\n */\nexport function parseKeyValueList(data: string): { [key: string]: string } {\n return Object.fromEntries(\n data\n .split('\\n')\n .map((item) => item.split(/=(.*)/)) // split only on the first '='\n .filter(([key]) => key) // filter out empty keys\n .map(([key, value]) => [key, value ?? '']) // ensure value is not undefined\n );\n}\n\n/**\n * Creates a unique hash from a JavaScript object.\n * @param obj - The object to hash\n * @param length - Optional length to truncate the hash (default: full length)\n */\nexport async function hashObject(\n obj: Record<string, any>,\n length?: number\n): Promise<string> {\n // Sort object keys to ensure consistent output regardless of original key order\n const str = JSON.stringify(obj, (_, value) => {\n if (value && typeof value === 'object' && !Array.isArray(value)) {\n return Object.keys(value)\n .sort()\n .reduce<Record<string, any>>((result, key) => {\n result[key] = value[key];\n return result;\n }, {});\n }\n return value;\n });\n\n const buffer = await crypto.subtle.digest(\n 'SHA-256',\n new TextEncoder().encode(str)\n );\n\n // Convert to base64\n const base64Hash = btoa(String.fromCharCode(...new Uint8Array(buffer)));\n return base64Hash.slice(0, length);\n}\n","import { parseKeyValueList, type UnionToTuple, type ValueOf } from './util.js';\n\nexport type AwsRegion = {\n code: string;\n displayName: string;\n location: Location;\n};\n\nexport type Location = {\n lat: number;\n lng: number;\n};\n\nexport const EARTH_RADIUS = 6371; // in kilometers\nexport const TRACE_URL = 'https://www.cloudflare.com/cdn-cgi/trace';\n\nexport const COUNTRY_COORDINATES = {\n AF: { lat: 33, lng: 65 },\n AX: { lat: 60.116667, lng: 19.9 },\n AL: { lat: 41, lng: 20 },\n DZ: { lat: 28, lng: 3 },\n AS: { lat: -14.3333, lng: -170 },\n AD: { lat: 42.5, lng: 1.6 },\n AO: { lat: -12.5, lng: 18.5 },\n AI: { lat: 18.25, lng: -63.1667 },\n AQ: { lat: -90, lng: 0 },\n AG: { lat: 17.05, lng: -61.8 },\n AR: { lat: -34, lng: -64 },\n AM: { lat: 40, lng: 45 },\n AW: { lat: 12.5, lng: -69.9667 },\n AU: { lat: -27, lng: 133 },\n AT: { lat: 47.3333, lng: 13.3333 },\n AZ: { lat: 40.5, lng: 47.5 },\n BS: { lat: 24.25, lng: -76 },\n BH: { lat: 26, lng: 50.55 },\n BD: { lat: 24, lng: 90 },\n BB: { lat: 13.1667, lng: -59.5333 },\n BY: { lat: 53, lng: 28 },\n BE: { lat: 50.8333, lng: 4 },\n BZ: { lat: 17.25, lng: -88.75 },\n BJ: { lat: 9.5, lng: 2.25 },\n BM: { lat: 32.3333, lng: -64.75 },\n BT: { lat: 27.5, lng: 90.5 },\n BO: { lat: -17, lng: -65 },\n BQ: { lat: 12.183333, lng: -68.233333 },\n BA: { lat: 44, lng: 18 },\n BW: { lat: -22, lng: 24 },\n BV: { lat: -54.4333, lng: 3.4 },\n BR: { lat: -10, lng: -55 },\n IO: { lat: -6, lng: 71.5 },\n BN: { lat: 4.5, lng: 114.6667 },\n BG: { lat: 43, lng: 25 },\n BF: { lat: 13, lng: -2 },\n MM: { lat: 22, lng: 98 },\n BI: { lat: -3.5, lng: 30 },\n KH: { lat: 13, lng: 105 },\n CM: { lat: 6, lng: 12 },\n CA: { lat: 60, lng: -95 },\n CV: { lat: 16, lng: -24 },\n KY: { lat: 19.5, lng: -80.5 },\n CF: { lat: 7, lng: 21 },\n TD: { lat: 15, lng: 19 },\n CL: { lat: -30, lng: -71 },\n CN: { lat: 35, lng: 105 },\n CX: { lat: -10.5, lng: 105.6667 },\n CC: { lat: -12.5, lng: 96.8333 },\n CO: { lat: 4, lng: -72 },\n KM: { lat: -12.1667, lng: 44.25 },\n CD: { lat: 0, lng: 25 },\n CG: { lat: -1, lng: 15 },\n CK: { lat: -21.2333, lng: -159.7667 },\n CR: { lat: 10, lng: -84 },\n CI: { lat: 8, lng: -5 },\n HR: { lat: 45.1667, lng: 15.5 },\n CU: { lat: 21.5, lng: -80 },\n CW: { lat: 12.166667, lng: -68.966667 },\n CY: { lat: 35, lng: 33 },\n CZ: { lat: 49.75, lng: 15.5 },\n DK: { lat: 56, lng: 10 },\n DJ: { lat: 11.5, lng: 43 },\n DM: { lat: 15.4167, lng: -61.3333 },\n DO: { lat: 19, lng: -70.6667 },\n EC: { lat: -2, lng: -77.5 },\n EG: { lat: 27, lng: 30 },\n SV: { lat: 13.8333, lng: -88.9167 },\n GQ: { lat: 2, lng: 10 },\n ER: { lat: 15, lng: 39 },\n EE: { lat: 59, lng: 26 },\n ET: { lat: 8, lng: 38 },\n FK: { lat: -51.75, lng: -59 },\n FO: { lat: 62, lng: -7 },\n FJ: { lat: -18, lng: 175 },\n FI: { lat: 64, lng: 26 },\n FR: { lat: 46, lng: 2 },\n GF: { lat: 4, lng: -53 },\n PF: { lat: -15, lng: -140 },\n TF: { lat: -43, lng: 67 },\n GA: { lat: -1, lng: 11.75 },\n GM: { lat: 13.4667, lng: -16.5667 },\n GE: { lat: 42, lng: 43.5 },\n DE: { lat: 51, lng: 9 },\n GH: { lat: 8, lng: -2 },\n GI: { lat: 36.1833, lng: -5.3667 },\n GR: { lat: 39, lng: 22 },\n GL: { lat: 72, lng: -40 },\n GD: { lat: 12.1167, lng: -61.6667 },\n GP: { lat: 16.25, lng: -61.5833 },\n GU: { lat: 13.4667, lng: 144.7833 },\n GT: { lat: 15.5, lng: -90.25 },\n GG: { lat: 49.5, lng: -2.56 },\n GW: { lat: 12, lng: -15 },\n GN: { lat: 11, lng: -10 },\n GY: { lat: 5, lng: -59 },\n HT: { lat: 19, lng: -72.4167 },\n HM: { lat: -53.1, lng: 72.5167 },\n VA: { lat: 41.9, lng: 12.45 },\n HN: { lat: 15, lng: -86.5 },\n HK: { lat: 22.25, lng: 114.1667 },\n HU: { lat: 47, lng: 20 },\n IS: { lat: 65, lng: -18 },\n IN: { lat: 20, lng: 77 },\n ID: { lat: -5, lng: 120 },\n IR: { lat: 32, lng: 53 },\n IQ: { lat: 33, lng: 44 },\n IE: { lat: 53, lng: -8 },\n IM: { lat: 54.23, lng: -4.55 },\n IL: { lat: 31.5, lng: 34.75 },\n IT: { lat: 42.8333, lng: 12.8333 },\n JM: { lat: 18.25, lng: -77.5 },\n JP: { lat: 36, lng: 138 },\n JE: { lat: 49.21, lng: -2.13 },\n JO: { lat: 31, lng: 36 },\n KZ: { lat: 48, lng: 68 },\n KE: { lat: 1, lng: 38 },\n KI: { lat: 1.4167, lng: 173 },\n KP: { lat: 40, lng: 127 },\n KR: { lat: 37, lng: 127.5 },\n XK: { lat: 42.583333, lng: 21 },\n KW: { lat: 29.3375, lng: 47.6581 },\n KG: { lat: 41, lng: 75 },\n LA: { lat: 18, lng: 105 },\n LV: { lat: 57, lng: 25 },\n LB: { lat: 33.8333, lng: 35.8333 },\n LS: { lat: -29.5, lng: 28.5 },\n LR: { lat: 6.5, lng: -9.5 },\n LY: { lat: 25, lng: 17 },\n LI: { lat: 47.1667, lng: 9.5333 },\n LT: { lat: 56, lng: 24 },\n LU: { lat: 49.75, lng: 6.1667 },\n MO: { lat: 22.1667, lng: 113.55 },\n MK: { lat: 41.8333, lng: 22 },\n MG: { lat: -20, lng: 47 },\n MW: { lat: -13.5, lng: 34 },\n MY: { lat: 2.5, lng: 112.5 },\n MV: { lat: 3.25, lng: 73 },\n ML: { lat: 17, lng: -4 },\n MT: { lat: 35.8333, lng: 14.5833 },\n MH: { lat: 9, lng: 168 },\n MQ: { lat: 14.6667, lng: -61 },\n MR: { lat: 20, lng: -12 },\n MU: { lat: -20.2833, lng: 57.55 },\n YT: { lat: -12.8333, lng: 45.1667 },\n MX: { lat: 23, lng: -102 },\n FM: { lat: 6.9167, lng: 158.25 },\n MD: { lat: 47, lng: 29 },\n MC: { lat: 43.7333, lng: 7.4 },\n MN: { lat: 46, lng: 105 },\n ME: { lat: 42, lng: 19 },\n MS: { lat: 16.75, lng: -62.2 },\n MA: { lat: 32, lng: -5 },\n MZ: { lat: -18.25, lng: 35 },\n NA: { lat: -22, lng: 17 },\n NR: { lat: -0.5333, lng: 166.9167 },\n NP: { lat: 28, lng: 84 },\n AN: { lat: 12.25, lng: -68.75 },\n NL: { lat: 52.5, lng: 5.75 },\n NC: { lat: -21.5, lng: 165.5 },\n NZ: { lat: -41, lng: 174 },\n NI: { lat: 13, lng: -85 },\n NE: { lat: 16, lng: 8 },\n NG: { lat: 10, lng: 8 },\n NU: { lat: -19.0333, lng: -169.8667 },\n NF: { lat: -29.0333, lng: 167.95 },\n MP: { lat: 15.2, lng: 145.75 },\n NO: { lat: 62, lng: 10 },\n OM: { lat: 21, lng: 57 },\n PK: { lat: 30, lng: 70 },\n PW: { lat: 7.5, lng: 134.5 },\n PS: { lat: 32, lng: 35.25 },\n PA: { lat: 9, lng: -80 },\n PG: { lat: -6, lng: 147 },\n PY: { lat: -23, lng: -58 },\n PE: { lat: -10, lng: -76 },\n PH: { lat: 13, lng: 122 },\n PN: { lat: -24.7, lng: -127.4 },\n PL: { lat: 52, lng: 20 },\n PT: { lat: 39.5, lng: -8 },\n PR: { lat: 18.25, lng: -66.5 },\n QA: { lat: 25.5, lng: 51.25 },\n RE: { lat: -21.1, lng: 55.6 },\n RO: { lat: 46, lng: 25 },\n RU: { lat: 60, lng: 100 },\n RW: { lat: -2, lng: 30 },\n BL: { lat: 17.897728, lng: -62.834244 },\n SH: { lat: -15.9333, lng: -5.7 },\n KN: { lat: 17.3333, lng: -62.75 },\n LC: { lat: 13.8833, lng: -61.1333 },\n MF: { lat: 18.075278, lng: -63.06 },\n PM: { lat: 46.8333, lng: -56.3333 },\n VC: { lat: 13.25, lng: -61.2 },\n WS: { lat: -13.5833, lng: -172.3333 },\n SM: { lat: 43.7667, lng: 12.4167 },\n ST: { lat: 1, lng: 7 },\n SA: { lat: 25, lng: 45 },\n SN: { lat: 14, lng: -14 },\n RS: { lat: 44, lng: 21 },\n SC: { lat: -4.5833, lng: 55.6667 },\n SL: { lat: 8.5, lng: -11.5 },\n SG: { lat: 1.3667, lng: 103.8 },\n SX: { lat: 18.033333, lng: -63.05 },\n SK: { lat: 48.6667, lng: 19.5 },\n SI: { lat: 46, lng: 15 },\n SB: { lat: -8, lng: 159 },\n SO: { lat: 10, lng: 49 },\n ZA: { lat: -29, lng: 24 },\n GS: { lat: -54.5, lng: -37 },\n SS: { lat: 8, lng: 30 },\n ES: { lat: 40, lng: -4 },\n LK: { lat: 7, lng: 81 },\n SD: { lat: 15, lng: 30 },\n SR: { lat: 4, lng: -56 },\n SJ: { lat: 78, lng: 20 },\n SZ: { lat: -26.5, lng: 31.5 },\n SE: { lat: 62, lng: 15 },\n CH: { lat: 47, lng: 8 },\n SY: { lat: 35, lng: 38 },\n TW: { lat: 23.5, lng: 121 },\n TJ: { lat: 39, lng: 71 },\n TZ: { lat: -6, lng: 35 },\n TH: { lat: 15, lng: 100 },\n TL: { lat: -8.55, lng: 125.5167 },\n TG: { lat: 8, lng: 1.1667 },\n TK: { lat: -9, lng: -172 },\n TO: { lat: -20, lng: -175 },\n TT: { lat: 11, lng: -61 },\n TN: { lat: 34, lng: 9 },\n TR: { lat: 39, lng: 35 },\n TM: { lat: 40, lng: 60 },\n TC: { lat: 21.75, lng: -71.5833 },\n TV: { lat: -8, lng: 178 },\n UG: { lat: 1, lng: 32 },\n UA: { lat: 49, lng: 32 },\n AE: { lat: 24, lng: 54 },\n GB: { lat: 54, lng: -2 },\n UM: { lat: 19.2833, lng: 166.6 },\n US: { lat: 38, lng: -97 },\n UY: { lat: -33, lng: -56 },\n UZ: { lat: 41, lng: 64 },\n VU: { lat: -16, lng: 167 },\n VE: { lat: 8, lng: -66 },\n VN: { lat: 16, lng: 106 },\n VG: { lat: 18.5, lng: -64.5 },\n VI: { lat: 18.3333, lng: -64.8333 },\n WF: { lat: -13.3, lng: -176.2 },\n EH: { lat: 24.5, lng: -13 },\n YE: { lat: 15, lng: 48 },\n ZM: { lat: -15, lng: 30 },\n ZW: { lat: -20, lng: 30 },\n} as const satisfies Record<string, Location>;\n\nexport const AWS_REGIONS = {\n WEST_US: {\n code: 'us-west-1',\n displayName: 'West US (North California)',\n location: { lat: 37.774929, lng: -122.419418 },\n },\n EAST_US: {\n code: 'us-east-1',\n displayName: 'East US (North Virginia)',\n location: { lat: 37.926868, lng: -78.024902 },\n },\n EAST_US_2: {\n code: 'us-east-2',\n displayName: 'East US (Ohio)',\n location: { lat: 39.9612, lng: -82.9988 },\n },\n CENTRAL_CANADA: {\n code: 'ca-central-1',\n displayName: 'Canada (Central)',\n location: { lat: 56.130367, lng: -106.346771 },\n },\n WEST_EU: {\n code: 'eu-west-1',\n displayName: 'West EU (Ireland)',\n location: { lat: 53.3498, lng: -6.2603 },\n },\n WEST_EU_2: {\n code: 'eu-west-2',\n displayName: 'West Europe (London)',\n location: { lat: 51.507351, lng: -0.127758 },\n },\n WEST_EU_3: {\n code: 'eu-west-3',\n displayName: 'West EU (Paris)',\n location: { lat: 2.352222, lng: 48.856613 },\n },\n CENTRAL_EU: {\n code: 'eu-central-1',\n displayName: 'Central EU (Frankfurt)',\n location: { lat: 50.110924, lng: 8.682127 },\n },\n CENTRAL_EU_2: {\n code: 'eu-central-2',\n displayName: 'Central Europe (Zurich)',\n location: { lat: 47.3744489, lng: 8.5410422 },\n },\n NORTH_EU: {\n code: 'eu-north-1',\n displayName: 'North EU (Stockholm)',\n location: { lat: 59.3251172, lng: 18.0710935 },\n },\n SOUTH_ASIA: {\n code: 'ap-south-1',\n displayName: 'South Asia (Mumbai)',\n location: { lat: 18.9733536, lng: 72.8281049 },\n },\n SOUTHEAST_ASIA: {\n code: 'ap-southeast-1',\n displayName: 'Southeast Asia (Singapore)',\n location: { lat: 1.357107, lng: 103.8194992 },\n },\n NORTHEAST_ASIA: {\n code: 'ap-northeast-1',\n displayName: 'Northeast Asia (Tokyo)',\n location: { lat: 35.6895, lng: 139.6917 },\n },\n NORTHEAST_ASIA_2: {\n code: 'ap-northeast-2',\n displayName: 'Northeast Asia (Seoul)',\n location: { lat: 37.5665, lng: 126.978 },\n },\n OCEANIA: {\n code: 'ap-southeast-2',\n displayName: 'Oceania (Sydney)',\n location: { lat: -33.8688, lng: 151.2093 },\n },\n SOUTH_AMERICA: {\n code: 'sa-east-1',\n displayName: 'South America (São Paulo)',\n location: { lat: -1.2043218, lng: -47.1583944 },\n },\n} as const satisfies Record<string, AwsRegion>;\n\nexport type RegionCodes = ValueOf<typeof AWS_REGIONS>['code'];\n\nexport const AWS_REGION_CODES = Object.values(AWS_REGIONS).map(\n (region) => region.code\n) as UnionToTuple<RegionCodes>;\n\n/**\n * Calculates the closest AWS region to a given location.\n */\nexport function getClosestAwsRegion(location: Location) {\n const distances = Object.entries(AWS_REGIONS).map<\n [region: string, distance: number]\n >(([name, region]) => {\n return [name, getDistance(location, region.location)] as const;\n });\n\n const closestRegion = distances.reduce<\n [region: string, distance: number] | undefined\n >(\n (min, current) =>\n min === undefined ? current : current[1] < min[1] ? current : min,\n undefined\n );\n\n if (!closestRegion) {\n throw new Error('no closest region found');\n }\n\n const [regionName] = closestRegion;\n\n return AWS_REGIONS[regionName as keyof typeof AWS_REGIONS];\n}\n\n/**\n * Fetches the user's country code based on their IP address.\n */\nexport async function getCountryCode() {\n const response = await fetch(TRACE_URL);\n const data = await response.text();\n const info = parseKeyValueList(data);\n const countryCode = info['loc'];\n\n if (!countryCode) {\n throw new Error('location not found');\n }\n\n return countryCode;\n}\n\n/**\n * Gets the approximate coordinates of a country based on its country code.\n */\nexport function getCountryCoordinates(countryCode: string) {\n const location: Location =\n COUNTRY_COORDINATES[countryCode as keyof typeof COUNTRY_COORDINATES];\n\n if (!location) {\n throw new Error(`unknown location code: ${countryCode}`);\n }\n\n return location;\n}\n\n/**\n * Calculates the distance between two points on Earth using the Haversine formula.\n *\n * @returns Distance between the points in kilometers\n */\nexport function getDistance(a: Location, b: Location): number {\n const lat = degreesToRadians(b.lat - a.lat);\n const lng = degreesToRadians(b.lng - a.lng);\n const a1 =\n Math.sin(lat / 2) * Math.sin(lat / 2) +\n Math.cos(degreesToRadians(a.lat)) *\n Math.cos(degreesToRadians(b.lat)) *\n Math.sin(lng / 2) *\n Math.sin(lng / 2);\n const c = 2 * Math.atan2(Math.sqrt(a1), Math.sqrt(1 - a1));\n return EARTH_RADIUS * c;\n}\n\n/**\n * Converts degrees to radians\n *\n * @returns The angle in radians\n */\nexport function degreesToRadians(deg: number): number {\n return deg * (Math.PI / 180);\n}\n"]}
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk45AND6T4cjs = require('./chunk-45AND6T4.cjs');require('./chunk-ILOQJ4GC.cjs');exports.createSupabaseApiPlatform = _chunk45AND6T4cjs.b; exports.createSupabaseMcpServer = _chunk45AND6T4cjs.c;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkGGW6CL5Acjs = require('./chunk-GGW6CL5A.cjs');require('./chunk-T5KT73N4.cjs');exports.createSupabaseApiPlatform = _chunkGGW6CL5Acjs.b; exports.createSupabaseMcpServer = _chunkGGW6CL5Acjs.c;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{b as o,c as r}from"./chunk-Y4QAPXCO.js";import"./chunk-P4XUQGTL.js";export{o as createSupabaseApiPlatform,r as createSupabaseMcpServer};
1
+ import{b as o,c as r}from"./chunk-3DSZOMKX.js";import"./chunk-KKRJKCHX.js";export{o as createSupabaseApiPlatform,r as createSupabaseMcpServer};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkILOQJ4GCcjs = require('../chunk-ILOQJ4GC.cjs');exports.applyMigrationOptionsSchema = _chunkILOQJ4GCcjs.o; exports.branchSchema = _chunkILOQJ4GCcjs.h; exports.createBranchOptionsSchema = _chunkILOQJ4GCcjs.k; exports.createProjectOptionsSchema = _chunkILOQJ4GCcjs.j; exports.deployEdgeFunctionOptionsSchema = _chunkILOQJ4GCcjs.m; exports.edgeFunctionSchema = _chunkILOQJ4GCcjs.i; exports.executeSqlOptionsSchema = _chunkILOQJ4GCcjs.n; exports.generateTypescriptTypesResultSchema = _chunkILOQJ4GCcjs.r; exports.getLogsOptionsSchema = _chunkILOQJ4GCcjs.q; exports.migrationSchema = _chunkILOQJ4GCcjs.p; exports.organizationSchema = _chunkILOQJ4GCcjs.f; exports.projectSchema = _chunkILOQJ4GCcjs.g; exports.resetBranchOptionsSchema = _chunkILOQJ4GCcjs.l;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkT5KT73N4cjs = require('../chunk-T5KT73N4.cjs');exports.applyMigrationOptionsSchema = _chunkT5KT73N4cjs.o; exports.branchSchema = _chunkT5KT73N4cjs.h; exports.createBranchOptionsSchema = _chunkT5KT73N4cjs.k; exports.createProjectOptionsSchema = _chunkT5KT73N4cjs.j; exports.deployEdgeFunctionOptionsSchema = _chunkT5KT73N4cjs.m; exports.edgeFunctionSchema = _chunkT5KT73N4cjs.i; exports.executeSqlOptionsSchema = _chunkT5KT73N4cjs.n; exports.generateTypescriptTypesResultSchema = _chunkT5KT73N4cjs.r; exports.getLogsOptionsSchema = _chunkT5KT73N4cjs.q; exports.migrationSchema = _chunkT5KT73N4cjs.p; exports.organizationSchema = _chunkT5KT73N4cjs.f; exports.projectSchema = _chunkT5KT73N4cjs.g; exports.resetBranchOptionsSchema = _chunkT5KT73N4cjs.l;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -278,6 +278,8 @@ type SupabasePlatform = {
278
278
  getEdgeFunction(projectId: string, functionSlug: string): Promise<EdgeFunction>;
279
279
  deployEdgeFunction(projectId: string, options: DeployEdgeFunctionOptions): Promise<Omit<EdgeFunction, 'files'>>;
280
280
  getLogs(projectId: string, options: GetLogsOptions): Promise<unknown>;
281
+ getSecurityAdvisors(projectId: string): Promise<unknown>;
282
+ getPerformanceAdvisors(projectId: string): Promise<unknown>;
281
283
  getProjectUrl(projectId: string): Promise<string>;
282
284
  getAnonKey(projectId: string): Promise<string>;
283
285
  generateTypescriptTypes(projectId: string): Promise<GenerateTypescriptTypesResult>;
@@ -278,6 +278,8 @@ type SupabasePlatform = {
278
278
  getEdgeFunction(projectId: string, functionSlug: string): Promise<EdgeFunction>;
279
279
  deployEdgeFunction(projectId: string, options: DeployEdgeFunctionOptions): Promise<Omit<EdgeFunction, 'files'>>;
280
280
  getLogs(projectId: string, options: GetLogsOptions): Promise<unknown>;
281
+ getSecurityAdvisors(projectId: string): Promise<unknown>;
282
+ getPerformanceAdvisors(projectId: string): Promise<unknown>;
281
283
  getProjectUrl(projectId: string): Promise<string>;
282
284
  getAnonKey(projectId: string): Promise<string>;
283
285
  generateTypescriptTypes(projectId: string): Promise<GenerateTypescriptTypesResult>;
@@ -1,2 +1,2 @@
1
- import{f as a,g as b,h as c,i as d,j as e,k as f,l as g,m as h,n as i,o as j,p as k,q as l,r as m}from"../chunk-P4XUQGTL.js";export{j as applyMigrationOptionsSchema,c as branchSchema,f as createBranchOptionsSchema,e as createProjectOptionsSchema,h as deployEdgeFunctionOptionsSchema,d as edgeFunctionSchema,i as executeSqlOptionsSchema,m as generateTypescriptTypesResultSchema,l as getLogsOptionsSchema,k as migrationSchema,a as organizationSchema,b as projectSchema,g as resetBranchOptionsSchema};
1
+ import{f as a,g as b,h as c,i as d,j as e,k as f,l as g,m as h,n as i,o as j,p as k,q as l,r as m}from"../chunk-KKRJKCHX.js";export{j as applyMigrationOptionsSchema,c as branchSchema,f as createBranchOptionsSchema,e as createProjectOptionsSchema,h as deployEdgeFunctionOptionsSchema,d as edgeFunctionSchema,i as executeSqlOptionsSchema,m as generateTypescriptTypesResultSchema,l as getLogsOptionsSchema,k as migrationSchema,a as organizationSchema,b as projectSchema,g as resetBranchOptionsSchema};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- "use strict"; function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _chunk45AND6T4cjs = require('../chunk-45AND6T4.cjs');require('../chunk-ILOQJ4GC.cjs');var _stdiojs = require('@modelcontextprotocol/sdk/server/stdio.js');var _util = require('util');var{version:v}=_chunk45AND6T4cjs.a;async function y(){let{values:{["access-token"]:t,["project-ref"]:n,["read-only"]:a,["api-url"]:c,["version"]:i}}=_util.parseArgs.call(void 0, {options:{"access-token":{type:"string"},"project-ref":{type:"string"},"read-only":{type:"boolean",default:!1},"api-url":{type:"string"},version:{type:"boolean"}}});i&&(console.log(v),process.exit(0));let e=_nullishCoalesce(t, () => (process.env.SUPABASE_ACCESS_TOKEN));e||(console.error("Please provide a personal access token (PAT) with the --access-token flag or set the SUPABASE_ACCESS_TOKEN environment variable"),process.exit(1));let p=_chunk45AND6T4cjs.b.call(void 0, {accessToken:e,apiUrl:c}),l=_chunk45AND6T4cjs.c.call(void 0, {platform:p,projectId:n,readOnly:a}),f=new _stdiojs.StdioServerTransport;await l.connect(f)}y().catch(console.error);
2
+ "use strict"; function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _chunkGGW6CL5Acjs = require('../chunk-GGW6CL5A.cjs');require('../chunk-T5KT73N4.cjs');var _stdiojs = require('@modelcontextprotocol/sdk/server/stdio.js');var _util = require('util');var{version:v}=_chunkGGW6CL5Acjs.a;async function y(){let{values:{["access-token"]:t,["project-ref"]:n,["read-only"]:a,["api-url"]:c,["version"]:i}}=_util.parseArgs.call(void 0, {options:{"access-token":{type:"string"},"project-ref":{type:"string"},"read-only":{type:"boolean",default:!1},"api-url":{type:"string"},version:{type:"boolean"}}});i&&(console.log(v),process.exit(0));let e=_nullishCoalesce(t, () => (process.env.SUPABASE_ACCESS_TOKEN));e||(console.error("Please provide a personal access token (PAT) with the --access-token flag or set the SUPABASE_ACCESS_TOKEN environment variable"),process.exit(1));let p=_chunkGGW6CL5Acjs.b.call(void 0, {accessToken:e,apiUrl:c}),l=_chunkGGW6CL5Acjs.c.call(void 0, {platform:p,projectId:n,readOnly:a}),f=new _stdiojs.StdioServerTransport;await l.connect(f)}y().catch(console.error);
3
3
  //# sourceMappingURL=stdio.cjs.map
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import{a as o,b as r,c as s}from"../chunk-Y4QAPXCO.js";import"../chunk-P4XUQGTL.js";import{StdioServerTransport as m}from"@modelcontextprotocol/sdk/server/stdio.js";import{parseArgs as S}from"node:util";var{version:v}=o;async function y(){let{values:{["access-token"]:t,["project-ref"]:n,["read-only"]:a,["api-url"]:c,["version"]:i}}=S({options:{"access-token":{type:"string"},"project-ref":{type:"string"},"read-only":{type:"boolean",default:!1},"api-url":{type:"string"},version:{type:"boolean"}}});i&&(console.log(v),process.exit(0));let e=t??process.env.SUPABASE_ACCESS_TOKEN;e||(console.error("Please provide a personal access token (PAT) with the --access-token flag or set the SUPABASE_ACCESS_TOKEN environment variable"),process.exit(1));let p=r({accessToken:e,apiUrl:c}),l=s({platform:p,projectId:n,readOnly:a}),f=new m;await l.connect(f)}y().catch(console.error);
2
+ import{a as o,b as r,c as s}from"../chunk-3DSZOMKX.js";import"../chunk-KKRJKCHX.js";import{StdioServerTransport as m}from"@modelcontextprotocol/sdk/server/stdio.js";import{parseArgs as S}from"node:util";var{version:v}=o;async function y(){let{values:{["access-token"]:t,["project-ref"]:n,["read-only"]:a,["api-url"]:c,["version"]:i}}=S({options:{"access-token":{type:"string"},"project-ref":{type:"string"},"read-only":{type:"boolean",default:!1},"api-url":{type:"string"},version:{type:"boolean"}}});i&&(console.log(v),process.exit(0));let e=t??process.env.SUPABASE_ACCESS_TOKEN;e||(console.error("Please provide a personal access token (PAT) with the --access-token flag or set the SUPABASE_ACCESS_TOKEN environment variable"),process.exit(1));let p=r({accessToken:e,apiUrl:c}),l=s({platform:p,projectId:n,readOnly:a}),f=new m;await l.connect(f)}y().catch(console.error);
3
3
  //# sourceMappingURL=stdio.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supabase/mcp-server-supabase",
3
- "version": "0.4.2",
3
+ "version": "0.4.3-alpha.1",
4
4
  "description": "MCP server for interacting with Supabase",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -17,7 +17,9 @@
17
17
  "test:coverage": "vitest --coverage",
18
18
  "generate:management-api-types": "openapi-typescript https://api.supabase.com/api/v1-json -o ./src/management-api/types.ts"
19
19
  },
20
- "files": ["dist/**/*"],
20
+ "files": [
21
+ "dist/**/*"
22
+ ],
21
23
  "bin": {
22
24
  "mcp-server-supabase": "./dist/transports/stdio.js"
23
25
  },