{"version":3,"file":"descriptor-meta-deM0Qc_b-FRxKhllA.mjs","names":[],"sources":["../../../../3-extensions/postgis/dist/descriptor-meta-deM0Qc_b.mjs"],"sourcesContent":["import { t as POSTGIS_GEOMETRY_CODEC_ID } from \"./constants-CWW72xGt.mjs\";\nimport { t as postgisError } from \"./errors-Bg6kDFR-.mjs\";\nimport { buildOperation, codecOf, toExpr } from \"@internal/sql-relational-core/expression\";\nimport { buildCodecDescriptorRegistry } from \"@internal/sql-relational-core/codec-descriptor-registry\";\nimport { CodecImpl } from \"@internal/framework-components/codec\";\nimport { PostgresCodecDescriptor, definePostgresCodecs } from \"@internal/target-postgres/codec-descriptor\";\nimport { type } from \"arktype\";\n//#region src/core/authoring.ts\nconst postgisAuthoringTypes = { postgis: { Geometry: {\n\tkind: \"typeConstructor\",\n\targs: [{\n\t\tkind: \"number\",\n\t\tname: \"srid\",\n\t\tinteger: true,\n\t\tminimum: 0\n\t}],\n\toutput: {\n\t\tcodecId: POSTGIS_GEOMETRY_CODEC_ID,\n\t\tnativeType: \"geometry\",\n\t\ttypeParams: { srid: {\n\t\t\tkind: \"arg\",\n\t\t\tindex: 0\n\t\t} }\n\t}\n} } };\n//#endregion\n//#region src/core/ewkb.ts\n/**\n* Minimal EWKB (Extended Well-Known Binary) reader for the PostGIS codec.\n*\n* `node-postgres` returns geometry columns as hex-encoded EWKB strings by\n* default. This reader parses the subset we ship with the extension —\n* Point, LineString, Polygon, and the Multi* counterparts — into GeoJSON\n* objects. Z and M coordinates are not supported; if a wire value carries\n* them, decoding throws so the caller can detect the mismatch instead of\n* silently dropping data.\n*/\nconst FLAG_Z = 2147483648;\nconst FLAG_M = 1073741824;\nconst FLAG_SRID = 536870912;\nconst TYPE_MASK = 536870911;\nconst TYPE_POINT = 1;\nconst TYPE_LINESTRING = 2;\nconst TYPE_POLYGON = 3;\nconst TYPE_MULTIPOINT = 4;\nconst TYPE_MULTILINESTRING = 5;\nconst TYPE_MULTIPOLYGON = 6;\nconst HEX_PAIR_RE = /^[0-9a-fA-F]{2}$/;\nfunction hexToBytes(hex) {\n\tif (hex.length % 2 !== 0) throw postgisError(\"RUNTIME.DECODE_FAILED\", \"Geometry wire value: odd-length hex string\", { meta: { wirePreview: hex.slice(0, 32) } });\n\tconst bytes = new Uint8Array(hex.length / 2);\n\tfor (let i = 0; i < bytes.length; i++) {\n\t\tconst pair = hex.slice(i * 2, i * 2 + 2);\n\t\tif (!HEX_PAIR_RE.test(pair)) throw postgisError(\"RUNTIME.DECODE_FAILED\", `Geometry wire value: invalid hex byte at offset ${i * 2}`, { meta: { wirePreview: hex.slice(0, 32) } });\n\t\tbytes[i] = Number.parseInt(pair, 16);\n\t}\n\treturn bytes;\n}\nvar Reader = class {\n\toffset = 0;\n\tview;\n\tconstructor(bytes) {\n\t\tthis.view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n\t}\n\trequireBytes(needed) {\n\t\tif (this.offset + needed > this.view.byteLength) throw postgisError(\"RUNTIME.DECODE_FAILED\", `Geometry wire value: unexpected end of buffer (need ${needed} bytes at offset ${this.offset}, ${this.view.byteLength - this.offset} available)`);\n\t}\n\treadUint8() {\n\t\tthis.requireBytes(1);\n\t\tconst v = this.view.getUint8(this.offset);\n\t\tthis.offset += 1;\n\t\treturn v;\n\t}\n\treadUint32(littleEndian) {\n\t\tthis.requireBytes(4);\n\t\tconst v = this.view.getUint32(this.offset, littleEndian);\n\t\tthis.offset += 4;\n\t\treturn v >>> 0;\n\t}\n\treadFloat64(littleEndian) {\n\t\tthis.requireBytes(8);\n\t\tconst v = this.view.getFloat64(this.offset, littleEndian);\n\t\tthis.offset += 8;\n\t\treturn v;\n\t}\n\thasRemaining() {\n\t\treturn this.offset !== this.view.byteLength;\n\t}\n\tremainingBytes() {\n\t\treturn this.view.byteLength - this.offset;\n\t}\n};\nvar Writer = class {\n\tbytes = [];\n\twriteUint8(value) {\n\t\tthis.bytes.push(value);\n\t}\n\twriteUint32(value) {\n\t\tconst buffer = /* @__PURE__ */ new ArrayBuffer(4);\n\t\tnew DataView(buffer).setUint32(0, value, true);\n\t\tthis.bytes.push(...new Uint8Array(buffer));\n\t}\n\twriteFloat64(value) {\n\t\tconst buffer = /* @__PURE__ */ new ArrayBuffer(8);\n\t\tnew DataView(buffer).setFloat64(0, value, true);\n\t\tthis.bytes.push(...new Uint8Array(buffer));\n\t}\n\ttoHex() {\n\t\treturn this.bytes.map((byte) => byte.toString(16).padStart(2, \"0\")).join(\"\").toUpperCase();\n\t}\n};\nfunction readHeader(reader) {\n\tconst byteOrder = reader.readUint8();\n\tif (byteOrder !== 0 && byteOrder !== 1) throw postgisError(\"RUNTIME.DECODE_FAILED\", `Geometry wire value: invalid byte order ${byteOrder}`);\n\tconst littleEndian = byteOrder === 1;\n\tconst typeCode = reader.readUint32(littleEndian);\n\tif ((typeCode & FLAG_Z) !== 0 || (typeCode & FLAG_M) !== 0) throw postgisError(\"RUNTIME.DECODE_FAILED\", \"Geometry wire value: Z/M coordinates are not supported\");\n\tconst geomType = typeCode & TYPE_MASK;\n\tif ((typeCode & FLAG_SRID) !== 0) return {\n\t\tgeomType,\n\t\tlittleEndian,\n\t\tsrid: reader.readUint32(littleEndian)\n\t};\n\treturn {\n\t\tgeomType,\n\t\tlittleEndian\n\t};\n}\nfunction readPosition(reader, littleEndian) {\n\treturn [reader.readFloat64(littleEndian), reader.readFloat64(littleEndian)];\n}\nfunction readPoint(reader, header) {\n\tconst coords = readPosition(reader, header.littleEndian);\n\treturn header.srid !== void 0 ? {\n\t\ttype: \"Point\",\n\t\tcoordinates: coords,\n\t\tsrid: header.srid\n\t} : {\n\t\ttype: \"Point\",\n\t\tcoordinates: coords\n\t};\n}\nfunction readLineString(reader, header) {\n\tconst n = reader.readUint32(header.littleEndian);\n\tconst coords = [];\n\tfor (let i = 0; i < n; i++) coords.push(readPosition(reader, header.littleEndian));\n\treturn header.srid !== void 0 ? {\n\t\ttype: \"LineString\",\n\t\tcoordinates: coords,\n\t\tsrid: header.srid\n\t} : {\n\t\ttype: \"LineString\",\n\t\tcoordinates: coords\n\t};\n}\nfunction readPolygon(reader, header) {\n\tconst numRings = reader.readUint32(header.littleEndian);\n\tconst rings = [];\n\tfor (let r = 0; r < numRings; r++) {\n\t\tconst n = reader.readUint32(header.littleEndian);\n\t\tconst ring = [];\n\t\tfor (let i = 0; i < n; i++) ring.push(readPosition(reader, header.littleEndian));\n\t\trings.push(ring);\n\t}\n\treturn header.srid !== void 0 ? {\n\t\ttype: \"Polygon\",\n\t\tcoordinates: rings,\n\t\tsrid: header.srid\n\t} : {\n\t\ttype: \"Polygon\",\n\t\tcoordinates: rings\n\t};\n}\nfunction readSubGeometry(reader) {\n\tconst header = readHeader(reader);\n\tswitch (header.geomType) {\n\t\tcase TYPE_POINT: return readPoint(reader, header);\n\t\tcase TYPE_LINESTRING: return readLineString(reader, header);\n\t\tcase TYPE_POLYGON: return readPolygon(reader, header);\n\t\tdefault: throw postgisError(\"RUNTIME.DECODE_FAILED\", `Geometry wire value: unsupported sub-type ${header.geomType}`);\n\t}\n}\nfunction readMultiPoint(reader, header) {\n\tconst n = reader.readUint32(header.littleEndian);\n\tconst coords = [];\n\tfor (let i = 0; i < n; i++) {\n\t\tconst sub = readSubGeometry(reader);\n\t\tif (sub.type !== \"Point\") throw postgisError(\"RUNTIME.DECODE_FAILED\", \"Geometry wire value: MultiPoint contains non-Point sub-geometry\");\n\t\tcoords.push(sub.coordinates);\n\t}\n\treturn header.srid !== void 0 ? {\n\t\ttype: \"MultiPoint\",\n\t\tcoordinates: coords,\n\t\tsrid: header.srid\n\t} : {\n\t\ttype: \"MultiPoint\",\n\t\tcoordinates: coords\n\t};\n}\nfunction readMultiLineString(reader, header) {\n\tconst n = reader.readUint32(header.littleEndian);\n\tconst lines = [];\n\tfor (let i = 0; i < n; i++) {\n\t\tconst sub = readSubGeometry(reader);\n\t\tif (sub.type !== \"LineString\") throw postgisError(\"RUNTIME.DECODE_FAILED\", \"Geometry wire value: MultiLineString contains non-LineString sub-geometry\");\n\t\tlines.push(sub.coordinates);\n\t}\n\treturn header.srid !== void 0 ? {\n\t\ttype: \"MultiLineString\",\n\t\tcoordinates: lines,\n\t\tsrid: header.srid\n\t} : {\n\t\ttype: \"MultiLineString\",\n\t\tcoordinates: lines\n\t};\n}\nfunction readMultiPolygon(reader, header) {\n\tconst n = reader.readUint32(header.littleEndian);\n\tconst polys = [];\n\tfor (let i = 0; i < n; i++) {\n\t\tconst sub = readSubGeometry(reader);\n\t\tif (sub.type !== \"Polygon\") throw postgisError(\"RUNTIME.DECODE_FAILED\", \"Geometry wire value: MultiPolygon contains non-Polygon sub-geometry\");\n\t\tpolys.push(sub.coordinates);\n\t}\n\treturn header.srid !== void 0 ? {\n\t\ttype: \"MultiPolygon\",\n\t\tcoordinates: polys,\n\t\tsrid: header.srid\n\t} : {\n\t\ttype: \"MultiPolygon\",\n\t\tcoordinates: polys\n\t};\n}\nfunction decodeEWKBHex(hex) {\n\tconst reader = new Reader(hexToBytes(hex));\n\tconst geometry = readGeometryBody(reader, readHeader(reader));\n\tif (reader.hasRemaining()) throw postgisError(\"RUNTIME.DECODE_FAILED\", `Geometry wire value: trailing data after geometry (${reader.remainingBytes()} bytes)`, { meta: { wirePreview: hex.slice(0, 32) } });\n\treturn geometry;\n}\nfunction encodeEWKBHex(value) {\n\tconst writer = new Writer();\n\twriteGeometry(writer, value);\n\treturn writer.toHex();\n}\nfunction writeHeader(writer, geomType, srid) {\n\twriter.writeUint8(1);\n\twriter.writeUint32(srid === void 0 ? geomType : geomType | FLAG_SRID);\n\tif (srid !== void 0) writer.writeUint32(srid);\n}\nfunction writePosition(writer, position) {\n\tif (!Number.isFinite(position[0]) || !Number.isFinite(position[1])) throw postgisError(\"RUNTIME.ENCODE_FAILED\", \"Geometry encode: coordinates must be finite numbers\");\n\twriter.writeFloat64(position[0]);\n\twriter.writeFloat64(position[1]);\n}\nfunction writeLineStringBody(writer, positions) {\n\twriter.writeUint32(positions.length);\n\tfor (const position of positions) writePosition(writer, position);\n}\nfunction writePolygonBody(writer, rings) {\n\twriter.writeUint32(rings.length);\n\tfor (const ring of rings) writeLineStringBody(writer, ring);\n}\nfunction writeGeometry(writer, value) {\n\tswitch (value.type) {\n\t\tcase \"Point\":\n\t\t\twriteHeader(writer, TYPE_POINT, value.srid);\n\t\t\twritePosition(writer, value.coordinates);\n\t\t\tbreak;\n\t\tcase \"LineString\":\n\t\t\twriteHeader(writer, TYPE_LINESTRING, value.srid);\n\t\t\twriteLineStringBody(writer, value.coordinates);\n\t\t\tbreak;\n\t\tcase \"Polygon\":\n\t\t\twriteHeader(writer, TYPE_POLYGON, value.srid);\n\t\t\twritePolygonBody(writer, value.coordinates);\n\t\t\tbreak;\n\t\tcase \"MultiPoint\":\n\t\t\twriteHeader(writer, TYPE_MULTIPOINT, value.srid);\n\t\t\twriter.writeUint32(value.coordinates.length);\n\t\t\tfor (const position of value.coordinates) {\n\t\t\t\twriteHeader(writer, TYPE_POINT);\n\t\t\t\twritePosition(writer, position);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"MultiLineString\":\n\t\t\twriteHeader(writer, TYPE_MULTILINESTRING, value.srid);\n\t\t\twriter.writeUint32(value.coordinates.length);\n\t\t\tfor (const line of value.coordinates) {\n\t\t\t\twriteHeader(writer, TYPE_LINESTRING);\n\t\t\t\twriteLineStringBody(writer, line);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"MultiPolygon\":\n\t\t\twriteHeader(writer, TYPE_MULTIPOLYGON, value.srid);\n\t\t\twriter.writeUint32(value.coordinates.length);\n\t\t\tfor (const polygon of value.coordinates) {\n\t\t\t\twriteHeader(writer, TYPE_POLYGON);\n\t\t\t\twritePolygonBody(writer, polygon);\n\t\t\t}\n\t\t\tbreak;\n\t}\n}\nfunction readGeometryBody(reader, header) {\n\tswitch (header.geomType) {\n\t\tcase TYPE_POINT: return readPoint(reader, header);\n\t\tcase TYPE_LINESTRING: return readLineString(reader, header);\n\t\tcase TYPE_POLYGON: return readPolygon(reader, header);\n\t\tcase TYPE_MULTIPOINT: return readMultiPoint(reader, header);\n\t\tcase TYPE_MULTILINESTRING: return readMultiLineString(reader, header);\n\t\tcase TYPE_MULTIPOLYGON: return readMultiPolygon(reader, header);\n\t\tdefault: throw postgisError(\"RUNTIME.DECODE_FAILED\", `Geometry wire value: unsupported geometry type ${header.geomType}`);\n\t}\n}\n/**\n* Encode a GeoJSON-shaped geometry to an EWKT string PostGIS understands\n* via `'<ewkt>'::geometry`. We use EWKT (not EWKB) on the way in so the\n* generated SQL stays human-readable.\n*/\nfunction encodeEWKT(value) {\n\tconst sridPrefix = value.srid !== void 0 ? `SRID=${value.srid};` : \"\";\n\tswitch (value.type) {\n\t\tcase \"Point\": return `${sridPrefix}POINT(${formatPosition(value.coordinates)})`;\n\t\tcase \"LineString\": return `${sridPrefix}LINESTRING(${value.coordinates.map(formatPosition).join(\",\")})`;\n\t\tcase \"Polygon\": return `${sridPrefix}POLYGON(${formatRings(value.coordinates)})`;\n\t\tcase \"MultiPoint\": return `${sridPrefix}MULTIPOINT(${value.coordinates.map(formatPosition).join(\",\")})`;\n\t\tcase \"MultiLineString\": return `${sridPrefix}MULTILINESTRING(${value.coordinates.map((line) => `(${line.map(formatPosition).join(\",\")})`).join(\",\")})`;\n\t\tcase \"MultiPolygon\": return `${sridPrefix}MULTIPOLYGON(${value.coordinates.map((poly) => `(${formatRings(poly)})`).join(\",\")})`;\n\t}\n}\nfunction formatPosition(p) {\n\tif (!Number.isFinite(p[0]) || !Number.isFinite(p[1])) throw postgisError(\"RUNTIME.ENCODE_FAILED\", \"Geometry encode: coordinates must be finite numbers\");\n\treturn `${p[0]} ${p[1]}`;\n}\nfunction formatRings(rings) {\n\treturn rings.map((ring) => `(${ring.map(formatPosition).join(\",\")})`).join(\",\");\n}\n//#endregion\n//#region src/core/codecs.ts\nconst geometryParamsSchema = type({ \"srid?\": \"number\" }).narrow((params, ctx) => {\n\tconst { srid } = params;\n\tif (srid === void 0) return true;\n\tif (!Number.isInteger(srid)) return ctx.mustBe(\"an integer\");\n\tif (srid < 0) return ctx.mustBe(\"a non-negative integer\");\n\treturn true;\n});\nconst POSTGIS_GEOMETRY_NATIVE_TYPE = \"geometry\";\nconst allowedGeometryTypes = /* @__PURE__ */ new Set([\n\t\"Point\",\n\t\"LineString\",\n\t\"Polygon\",\n\t\"MultiPoint\",\n\t\"MultiLineString\",\n\t\"MultiPolygon\"\n]);\nfunction assertGeometry(value) {\n\tif (!value || typeof value !== \"object\") throw postgisError(\"RUNTIME.ENCODE_FAILED\", \"Geometry value must be a GeoJSON-shaped object\", { meta: { codecId: POSTGIS_GEOMETRY_CODEC_ID } });\n\tconst type = value.type;\n\tif (typeof type !== \"string\" || !allowedGeometryTypes.has(type)) throw postgisError(\"RUNTIME.ENCODE_FAILED\", `Geometry value: unsupported type \"${String(type)}\" (expected Point, LineString, Polygon, MultiPoint, MultiLineString, or MultiPolygon)`, { meta: { codecId: POSTGIS_GEOMETRY_CODEC_ID } });\n\tif (!Array.isArray(value.coordinates)) throw postgisError(\"RUNTIME.ENCODE_FAILED\", \"Geometry value: \\\"coordinates\\\" must be an array\", { meta: { codecId: POSTGIS_GEOMETRY_CODEC_ID } });\n}\nvar PostgisGeometryCodec = class extends CodecImpl {\n\tconstructor(descriptor) {\n\t\tsuper(descriptor);\n\t}\n\tasync encode(value, _ctx) {\n\t\tassertGeometry(value);\n\t\treturn encodeEWKT(value);\n\t}\n\tasync decode(wire, _ctx) {\n\t\tif (typeof wire !== \"string\") throw postgisError(\"RUNTIME.DECODE_FAILED\", \"Geometry wire value must be a string\", { meta: { codecId: POSTGIS_GEOMETRY_CODEC_ID } });\n\t\treturn decodeEWKBHex(wire);\n\t}\n\tencodeJson(value) {\n\t\tassertGeometry(value);\n\t\treturn encodeEWKBHex(value);\n\t}\n\tdecodeJson(json) {\n\t\tif (typeof json !== \"string\") throw postgisError(\"RUNTIME.DECODE_FAILED\", \"Geometry database JSON value must be a HEXEWKB string\", { meta: { codecId: POSTGIS_GEOMETRY_CODEC_ID } });\n\t\treturn decodeEWKBHex(json);\n\t}\n};\nvar PostgisGeometryDescriptor = class extends PostgresCodecDescriptor {\n\tnativeType() {\n\t\treturn POSTGIS_GEOMETRY_NATIVE_TYPE;\n\t}\n\tjsonProjection(expression) {\n\t\treturn expression;\n\t}\n\tcodecId = POSTGIS_GEOMETRY_CODEC_ID;\n\ttraits = [\"equality\"];\n\ttargetTypes = [\"geometry\"];\n\tparamsSchema = geometryParamsSchema;\n\trenderOutputType(params) {\n\t\tconst { srid } = params;\n\t\tif (srid === void 0) return \"Geometry\";\n\t\treturn `Geometry<${srid}>`;\n\t}\n\t/**\n\t* Runtime materialization uses an empty parameter object for the\n\t* existing unparameterized `geometryColumn` variant and `{ srid }` for\n\t* constrained columns. Both resolve to the same SRID-agnostic codec:\n\t* the wire format already carries SRID inside the EWKT/EWKB payload,\n\t* so codec behavior is parameter-independent.\n\t*/\n\tfactory(_params) {\n\t\treturn () => new PostgisGeometryCodec(this);\n\t}\n};\nconst codecDescriptorMap = { geometry: new PostgisGeometryDescriptor() };\n//#endregion\n//#region src/core/registry.ts\n/**\n* Registry of every codec descriptor shipped by `@internal/extension-postgis`.\n*\n* Public consumer surface for the postgis codec set. Currently a single\n* entry (`pg/geometry@1`); the registry shape stays consistent with\n* the other codec-shipping packages so consumers don't need to\n* special-case extensions.\n*/\nconst postgisCodecRegistry = buildCodecDescriptorRegistry(definePostgresCodecs(Object.values(codecDescriptorMap)));\n//#endregion\n//#region src/core/descriptor-meta.ts\nconst postgisTypeId = \"pg/geometry@1\";\n/**\n* Build the PostGIS query operations exposed on `geometry` columns.\n*\n* Each operation lowers to a function-template that the SQL renderer\n* stitches into the surrounding statement (`{{self}}` is the receiver,\n* `{{argN}}` are the call arguments). All templates rely on the implicit\n* `geometry`/`float8`/`bool` casts already wired up by the SQL family —\n* we only add the PostGIS-specific function names.\n*/\nfunction postgisQueryOperations() {\n\treturn {\n\t\tdistance: {\n\t\t\tself: { codecId: postgisTypeId },\n\t\t\timpl: (self, other) => {\n\t\t\t\tconst selfCodec = codecOf(self);\n\t\t\t\treturn buildOperation({\n\t\t\t\t\tmethod: \"distance\",\n\t\t\t\t\targs: [toExpr(self, selfCodec), toExpr(other, selfCodec)],\n\t\t\t\t\treturns: {\n\t\t\t\t\t\tcodecId: \"pg/float8@1\",\n\t\t\t\t\t\tnullable: false\n\t\t\t\t\t},\n\t\t\t\t\tlowering: {\n\t\t\t\t\t\ttargetFamily: \"sql\",\n\t\t\t\t\t\tstrategy: \"function\",\n\t\t\t\t\t\ttemplate: \"ST_Distance({{self}}, {{arg0}})\"\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tdistanceSphere: {\n\t\t\tself: { codecId: postgisTypeId },\n\t\t\timpl: (self, other) => {\n\t\t\t\tconst selfCodec = codecOf(self);\n\t\t\t\treturn buildOperation({\n\t\t\t\t\tmethod: \"distanceSphere\",\n\t\t\t\t\targs: [toExpr(self, selfCodec), toExpr(other, selfCodec)],\n\t\t\t\t\treturns: {\n\t\t\t\t\t\tcodecId: \"pg/float8@1\",\n\t\t\t\t\t\tnullable: false\n\t\t\t\t\t},\n\t\t\t\t\tlowering: {\n\t\t\t\t\t\ttargetFamily: \"sql\",\n\t\t\t\t\t\tstrategy: \"function\",\n\t\t\t\t\t\ttemplate: \"ST_DistanceSphere({{self}}, {{arg0}})\"\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tdwithin: {\n\t\t\tself: { codecId: postgisTypeId },\n\t\t\timpl: (self, other, distance) => {\n\t\t\t\tconst selfCodec = codecOf(self);\n\t\t\t\treturn buildOperation({\n\t\t\t\t\tmethod: \"dwithin\",\n\t\t\t\t\targs: [\n\t\t\t\t\t\ttoExpr(self, selfCodec),\n\t\t\t\t\t\ttoExpr(other, selfCodec),\n\t\t\t\t\t\ttoExpr(distance, { codecId: \"pg/float8@1\" })\n\t\t\t\t\t],\n\t\t\t\t\treturns: {\n\t\t\t\t\t\tcodecId: \"pg/bool@1\",\n\t\t\t\t\t\tnullable: false\n\t\t\t\t\t},\n\t\t\t\t\tlowering: {\n\t\t\t\t\t\ttargetFamily: \"sql\",\n\t\t\t\t\t\tstrategy: \"function\",\n\t\t\t\t\t\ttemplate: \"ST_DWithin({{self}}, {{arg0}}, {{arg1}})\"\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tcontains: {\n\t\t\tself: { codecId: postgisTypeId },\n\t\t\timpl: (self, other) => {\n\t\t\t\tconst selfCodec = codecOf(self);\n\t\t\t\treturn buildOperation({\n\t\t\t\t\tmethod: \"contains\",\n\t\t\t\t\targs: [toExpr(self, selfCodec), toExpr(other, selfCodec)],\n\t\t\t\t\treturns: {\n\t\t\t\t\t\tcodecId: \"pg/bool@1\",\n\t\t\t\t\t\tnullable: false\n\t\t\t\t\t},\n\t\t\t\t\tlowering: {\n\t\t\t\t\t\ttargetFamily: \"sql\",\n\t\t\t\t\t\tstrategy: \"function\",\n\t\t\t\t\t\ttemplate: \"ST_Contains({{self}}, {{arg0}})\"\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\twithin: {\n\t\t\tself: { codecId: postgisTypeId },\n\t\t\timpl: (self, other) => {\n\t\t\t\tconst selfCodec = codecOf(self);\n\t\t\t\treturn buildOperation({\n\t\t\t\t\tmethod: \"within\",\n\t\t\t\t\targs: [toExpr(self, selfCodec), toExpr(other, selfCodec)],\n\t\t\t\t\treturns: {\n\t\t\t\t\t\tcodecId: \"pg/bool@1\",\n\t\t\t\t\t\tnullable: false\n\t\t\t\t\t},\n\t\t\t\t\tlowering: {\n\t\t\t\t\t\ttargetFamily: \"sql\",\n\t\t\t\t\t\tstrategy: \"function\",\n\t\t\t\t\t\ttemplate: \"ST_Within({{self}}, {{arg0}})\"\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tintersects: {\n\t\t\tself: { codecId: postgisTypeId },\n\t\t\timpl: (self, other) => {\n\t\t\t\tconst selfCodec = codecOf(self);\n\t\t\t\treturn buildOperation({\n\t\t\t\t\tmethod: \"intersects\",\n\t\t\t\t\targs: [toExpr(self, selfCodec), toExpr(other, selfCodec)],\n\t\t\t\t\treturns: {\n\t\t\t\t\t\tcodecId: \"pg/bool@1\",\n\t\t\t\t\t\tnullable: false\n\t\t\t\t\t},\n\t\t\t\t\tlowering: {\n\t\t\t\t\t\ttargetFamily: \"sql\",\n\t\t\t\t\t\tstrategy: \"function\",\n\t\t\t\t\t\ttemplate: \"ST_Intersects({{self}}, {{arg0}})\"\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tintersectsBbox: {\n\t\t\tself: { codecId: postgisTypeId },\n\t\t\timpl: (self, other) => {\n\t\t\t\tconst selfCodec = codecOf(self);\n\t\t\t\treturn buildOperation({\n\t\t\t\t\tmethod: \"intersectsBbox\",\n\t\t\t\t\targs: [toExpr(self, selfCodec), toExpr(other, selfCodec)],\n\t\t\t\t\treturns: {\n\t\t\t\t\t\tcodecId: \"pg/bool@1\",\n\t\t\t\t\t\tnullable: false\n\t\t\t\t\t},\n\t\t\t\t\tlowering: {\n\t\t\t\t\t\ttargetFamily: \"sql\",\n\t\t\t\t\t\tstrategy: \"function\",\n\t\t\t\t\t\ttemplate: \"({{self}} && {{arg0}})\"\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n}\nconst postgisPackMeta = {\n\tkind: \"extension\",\n\tid: \"postgis\",\n\tfamilyId: \"sql\",\n\ttargetId: \"postgres\",\n\tversion: \"0.0.1\",\n\tcapabilities: { postgres: { \"postgis.geometry\": true } },\n\tauthoring: { type: postgisAuthoringTypes },\n\ttypes: {\n\t\tcodecTypes: {\n\t\t\tcodecDescriptors: Array.from(postgisCodecRegistry.values()),\n\t\t\timport: {\n\t\t\t\tpackage: \"@internal/extension-postgis/codec-types\",\n\t\t\t\tnamed: \"CodecTypes\",\n\t\t\t\talias: \"PostgisTypes\"\n\t\t\t},\n\t\t\ttypeImports: [{\n\t\t\t\tpackage: \"@internal/extension-postgis/codec-types\",\n\t\t\t\tnamed: \"Geometry\",\n\t\t\t\talias: \"Geometry\"\n\t\t\t}]\n\t\t},\n\t\tqueryOperationTypes: { import: {\n\t\t\tpackage: \"@internal/extension-postgis/operation-types\",\n\t\t\tnamed: \"QueryOperationTypes\",\n\t\t\talias: \"PostgisQueryOperationTypes\"\n\t\t} },\n\t\tstorage: [{\n\t\t\ttypeId: postgisTypeId,\n\t\t\tfamilyId: \"sql\",\n\t\t\ttargetId: \"postgres\",\n\t\t\tnativeType: \"geometry\"\n\t\t}]\n\t}\n};\n//#endregion\nexport { postgisQueryOperations as n, postgisCodecRegistry as r, postgisPackMeta as t };\n\n//# sourceMappingURL=descriptor-meta-deM0Qc_b.mjs.map"],"mappings":"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"}