{"version":3,"file":"codecs.cjs","names":["textDecoder"],"sources":["../../src/tidb-serverless/codecs.ts"],"sourcesContent":["import { refineGenericMySqlCodecs } from '~/mysql-core/codecs.ts';\nimport { textDecoder } from '~/utils.ts';\n\nconst bitStringFromBytes = (value: Uint8Array): string => {\n\tconst str: string[] = new Array(value.length);\n\tfor (let i = 0; i < value.length; ++i) {\n\t\tstr[i] = value[i] === 49 ? '1' : '0';\n\t}\n\treturn str.join('');\n};\n\nexport const tidbCodecs = refineGenericMySqlCodecs({\n\tserial: {\n\t\tnormalize: Number,\n\t},\n\tbigint: {\n\t\tnormalize: BigInt,\n\t},\n\t'bigint:number': {\n\t\tnormalize: Number,\n\t},\n\tboolean: {\n\t\tnormalize: (value: number) => value === 1,\n\t},\n\tdate: {\n\t\tnormalize: (value: string) => new Date(value),\n\t},\n\tdatetime: {\n\t\tnormalize: (value: string) => new Date(value.replace(' ', 'T') + 'Z'),\n\t},\n\ttimestamp: {\n\t\tnormalize: (value: string) => new Date(value + '+0000'),\n\t},\n\t'decimal:number': {\n\t\tnormalize: Number,\n\t},\n\t'decimal:bigint': {\n\t\tnormalize: BigInt,\n\t},\n\tbinary: {\n\t\tnormalize: bitStringFromBytes,\n\t},\n\tvarbinary: {\n\t\tnormalize: bitStringFromBytes,\n\t},\n\tblob: {\n\t\tnormalize: typeof Buffer === 'undefined'\n\t\t\t? textDecoder ? ((value: Uint8Array) => textDecoder!.decode(value)) : undefined\n\t\t\t: (value: Uint8Array) => Buffer.from(value).toString('utf8'),\n\t},\n\ttinyblob: {\n\t\tnormalize: typeof Buffer === 'undefined'\n\t\t\t? textDecoder ? ((value: Uint8Array) => textDecoder!.decode(value)) : undefined\n\t\t\t: (value: Uint8Array) => Buffer.from(value).toString('utf8'),\n\t},\n\tmediumblob: {\n\t\tnormalize: typeof Buffer === 'undefined'\n\t\t\t? textDecoder ? ((value: Uint8Array) => textDecoder!.decode(value)) : undefined\n\t\t\t: (value: Uint8Array) => Buffer.from(value).toString('utf8'),\n\t},\n\tlongblob: {\n\t\tnormalize: typeof Buffer === 'undefined'\n\t\t\t? textDecoder ? ((value: Uint8Array) => textDecoder!.decode(value)) : undefined\n\t\t\t: (value: Uint8Array) => Buffer.from(value).toString('utf8'),\n\t},\n\t'blob:buffer': {\n\t\tnormalize: typeof Buffer === 'undefined' ? undefined : (value: Uint8Array) => Buffer.from(value),\n\t},\n\t'tinyblob:buffer': {\n\t\tnormalize: typeof Buffer === 'undefined' ? undefined : (value: Uint8Array) => Buffer.from(value),\n\t},\n\t'mediumblob:buffer': {\n\t\tnormalize: typeof Buffer === 'undefined' ? undefined : (value: Uint8Array) => Buffer.from(value),\n\t},\n\t'longblob:buffer': {\n\t\tnormalize: typeof Buffer === 'undefined' ? undefined : (value: Uint8Array) => Buffer.from(value),\n\t},\n});\n"],"mappings":";;;;;;AAGA,MAAM,sBAAsB,UAA8B;CACzD,MAAM,MAAgB,IAAI,MAAM,MAAM,OAAO;AAC7C,MAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,EAAE,EACnC,KAAI,KAAK,MAAM,OAAO,KAAK,MAAM;AAElC,QAAO,IAAI,KAAK,GAAG;;AAGpB,MAAa,kEAAsC;CAClD,QAAQ,EACP,WAAW,QACX;CACD,QAAQ,EACP,WAAW,QACX;CACD,iBAAiB,EAChB,WAAW,QACX;CACD,SAAS,EACR,YAAY,UAAkB,UAAU,GACxC;CACD,MAAM,EACL,YAAY,UAAkB,IAAI,KAAK,MAAM,EAC7C;CACD,UAAU,EACT,YAAY,0BAAkB,IAAI,KAAK,MAAM,QAAQ,KAAK,IAAI,GAAG,IAAI,EACrE;CACD,WAAW,EACV,YAAY,0BAAkB,IAAI,KAAK,QAAQ,QAAQ,EACvD;CACD,kBAAkB,EACjB,WAAW,QACX;CACD,kBAAkB,EACjB,WAAW,QACX;CACD,QAAQ,EACP,WAAW,oBACX;CACD,WAAW,EACV,WAAW,oBACX;CACD,MAAM,EACL,WAAW,OAAO,WAAW,cAC1BA,2BAAgB,UAAsBA,uBAAa,OAAO,MAAM,IAAI,UACnE,UAAsB,OAAO,KAAK,MAAM,CAAC,SAAS,OAAO,EAC7D;CACD,UAAU,EACT,WAAW,OAAO,WAAW,cAC1BA,2BAAgB,UAAsBA,uBAAa,OAAO,MAAM,IAAI,UACnE,UAAsB,OAAO,KAAK,MAAM,CAAC,SAAS,OAAO,EAC7D;CACD,YAAY,EACX,WAAW,OAAO,WAAW,cAC1BA,2BAAgB,UAAsBA,uBAAa,OAAO,MAAM,IAAI,UACnE,UAAsB,OAAO,KAAK,MAAM,CAAC,SAAS,OAAO,EAC7D;CACD,UAAU,EACT,WAAW,OAAO,WAAW,cAC1BA,2BAAgB,UAAsBA,uBAAa,OAAO,MAAM,IAAI,UACnE,UAAsB,OAAO,KAAK,MAAM,CAAC,SAAS,OAAO,EAC7D;CACD,eAAe,EACd,WAAW,OAAO,WAAW,cAAc,UAAa,UAAsB,OAAO,KAAK,MAAM,EAChG;CACD,mBAAmB,EAClB,WAAW,OAAO,WAAW,cAAc,UAAa,UAAsB,OAAO,KAAK,MAAM,EAChG;CACD,qBAAqB,EACpB,WAAW,OAAO,WAAW,cAAc,UAAa,UAAsB,OAAO,KAAK,MAAM,EAChG;CACD,mBAAmB,EAClB,WAAW,OAAO,WAAW,cAAc,UAAa,UAAsB,OAAO,KAAK,MAAM,EAChG;CACD,CAAC"}