{"version":3,"file":"target-UVRYWvUr.mjs","names":[],"sources":["../src/migrations/target.ts"],"sourcesContent":["import type { MigrationTarget } from \"./protocol.js\";\n\nconst ENVIRONMENT_VARIABLE_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;\n\nfunction encodeHex(bytes: Uint8Array): string {\n\treturn Array.from(bytes, (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\nexport async function createMigrationTarget(\n\tkind: string,\n\tlabel: string,\n\tidentity: readonly string[],\n): Promise<MigrationTarget> {\n\tconst encoded = new TextEncoder().encode(JSON.stringify({ kind, identity }));\n\tconst digest = await crypto.subtle.digest(\"SHA-256\", encoded);\n\treturn {\n\t\tkind,\n\t\tlabel,\n\t\tfingerprint: encodeHex(new Uint8Array(digest)),\n\t};\n}\n\nexport function requireMigrationEnvironment(\n\tname: unknown,\n\tenv: Readonly<Record<string, string | undefined>>,\n): string {\n\tif (typeof name !== \"string\" || !ENVIRONMENT_VARIABLE_PATTERN.test(name)) {\n\t\tthrow new Error(\"Migration credential environment variable name is invalid.\");\n\t}\n\tconst value = env[name];\n\tif (!value) {\n\t\tthrow new Error(`Migration credential environment variable ${name} is not set.`);\n\t}\n\treturn value;\n}\n"],"mappings":";AAEA,MAAM,+BAA+B;AAErC,SAAS,UAAU,OAA2B;AAC7C,QAAO,MAAM,KAAK,QAAQ,SAAS,KAAK,SAAS,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,KAAK,GAAG;;AAGhF,eAAsB,sBACrB,MACA,OACA,UAC2B;CAC3B,MAAM,UAAU,IAAI,aAAa,CAAC,OAAO,KAAK,UAAU;EAAE;EAAM;EAAU,CAAC,CAAC;CAC5E,MAAM,SAAS,MAAM,OAAO,OAAO,OAAO,WAAW,QAAQ;AAC7D,QAAO;EACN;EACA;EACA,aAAa,UAAU,IAAI,WAAW,OAAO,CAAC;EAC9C;;AAGF,SAAgB,4BACf,MACA,KACS;AACT,KAAI,OAAO,SAAS,YAAY,CAAC,6BAA6B,KAAK,KAAK,CACvE,OAAM,IAAI,MAAM,6DAA6D;CAE9E,MAAM,QAAQ,IAAI;AAClB,KAAI,CAAC,MACJ,OAAM,IAAI,MAAM,6CAA6C,KAAK,cAAc;AAEjF,QAAO"}