{"version":3,"sources":["jsdelivr-header.js","/npm/copc@0.0.8/lib/ept/ept.js","/npm/copc@0.0.8/lib/ept/hierarchy.js","/npm/copc@0.0.8/lib/ept/index.js","/npm/copc@0.0.8/lib/copc/constants.js","/npm/copc@0.0.8/lib/las/constants.js","/npm/copc@0.0.8/lib/utils/big-int.js","/npm/copc@0.0.8/lib/utils/binary.js","/npm/copc@0.0.8/lib/utils/bounds.js","/npm/copc@0.0.8/lib/utils/dimension.js","/npm/copc@0.0.8/lib/utils/getter.js","/npm/copc@0.0.8/lib/utils/key.js","/npm/copc@0.0.8/lib/utils/scale.js","/npm/copc@0.0.8/lib/utils/step.js","/npm/copc@0.0.8/lib/utils/index.js","/npm/copc@0.0.8/lib/las/extra-bytes.js","/npm/copc@0.0.8/lib/las/dimensions.js","/npm/copc@0.0.8/lib/las/extractor.js","/npm/copc@0.0.8/lib/las/utils.js","/npm/copc@0.0.8/lib/las/header.js","/npm/copc@0.0.8/lib/las/point-data.js","/npm/copc@0.0.8/lib/las/view.js","/npm/copc@0.0.8/lib/las/vlr.js","/npm/copc@0.0.8/lib/las/index.js","/npm/copc@0.0.8/lib/copc/hierarchy.js","/npm/copc@0.0.8/lib/copc/info.js","/npm/copc@0.0.8/lib/copc/copc.js","/npm/copc@0.0.8/lib/copc/index.js","/npm/copc@0.0.8/lib/index.js"],"names":[],"mappings":"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","file":"/npm/copc@0.0.8/lib/index.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v4.62.2 and esbuild v0.28.1.\n * Original file: /npm/copc@0.0.8/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hierarchy = void 0;\nexports.Hierarchy = { parse };\nfunction parse(e) {\n    return Object.entries(e).reduce((h, [keystring, pointCount]) => {\n        if (pointCount === -1)\n            h.pages[keystring] = {};\n        else if (pointCount)\n            h.nodes[keystring] = { pointCount };\n        return h;\n    }, { nodes: {}, pages: {} });\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ept\"), exports);\n__exportStar(require(\"./hierarchy\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hierarchyItemLength = exports.infoLength = void 0;\nexports.infoLength = 160;\nexports.hierarchyItemLength = 32;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.evlrHeaderLength = exports.vlrHeaderLength = exports.minHeaderLength = void 0;\nexports.minHeaderLength = 375;\nexports.vlrHeaderLength = 54;\nexports.evlrHeaderLength = 60;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getBigUint64 = exports.parseBigInt = void 0;\nfunction parseBigInt(v) {\n    if (v > BigInt(Number.MAX_SAFE_INTEGER) ||\n        v < BigInt(-Number.MAX_SAFE_INTEGER)) {\n        throw new Error(`Cannot convert bigint to number: ${v}`);\n    }\n    return Number(v);\n}\nexports.parseBigInt = parseBigInt;\n// Safari is non-conforming here and doesn't have the BigUint functions on their\n// DataView :\\\nfunction getBigUint64(dv, byteOffset, littleEndian) {\n    if (dv.getBigUint64)\n        return dv.getBigUint64(byteOffset, littleEndian);\n    const [h, l] = littleEndian ? [4, 0] : [0, 4];\n    const wh = BigInt(dv.getUint32(byteOffset + h, littleEndian));\n    const wl = BigInt(dv.getUint32(byteOffset + l, littleEndian));\n    return (wh << BigInt(32)) + wl;\n}\nexports.getBigUint64 = getBigUint64;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCString = exports.toDataView = exports.Binary = void 0;\nexports.Binary = { toDataView, toCString };\nfunction toDataView(buffer) {\n    return new DataView(buffer.buffer, buffer.byteOffset, buffer.length);\n}\nexports.toDataView = toDataView;\nfunction toCString(buffer) {\n    const dv = toDataView(buffer);\n    let s = '';\n    for (let i = 0; i < dv.byteLength; ++i) {\n        const c = dv.getInt8(i);\n        if (c === 0)\n            return s;\n        s += String.fromCharCode(c);\n    }\n    return s;\n}\nexports.toCString = toCString;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bounds = void 0;\nexports.Bounds = {\n    min,\n    max,\n    mid,\n    width,\n    depth,\n    height,\n    cube,\n    step,\n    stepTo,\n    intersection,\n};\nfunction min(b) {\n    return [b[0], b[1], b[2]];\n}\nfunction max(b) {\n    return [b[3], b[4], b[5]];\n}\nfunction mid([minx, miny, minz, maxx, maxy, maxz]) {\n    return [\n        minx + (maxx - minx) / 2,\n        miny + (maxy - miny) / 2,\n        minz + (maxz - minz) / 2,\n    ];\n}\nfunction width(bounds) {\n    return bounds[3] - bounds[0];\n}\nfunction depth(bounds) {\n    return bounds[4] - bounds[1];\n}\nfunction height(bounds) {\n    return bounds[5] - bounds[2];\n}\nfunction cube(bounds) {\n    const point = mid(bounds);\n    const radius = Math.max(width(bounds), depth(bounds), height(bounds)) / 2;\n    return [\n        point[0] - radius,\n        point[1] - radius,\n        point[2] - radius,\n        point[0] + radius,\n        point[1] + radius,\n        point[2] + radius,\n    ];\n}\nfunction step(bounds, [a, b, c]) {\n    const [minx, miny, minz, maxx, maxy, maxz] = bounds;\n    const [midx, midy, midz] = mid(bounds);\n    return [\n        a ? midx : minx,\n        b ? midy : miny,\n        c ? midz : minz,\n        a ? maxx : midx,\n        b ? maxy : midy,\n        c ? maxz : midz,\n    ];\n}\nfunction stepTo(bounds, [d, x, y, z]) {\n    for (let i = d - 1; i >= 0; --i) {\n        bounds = step(bounds, [(x >> i) & 1, (y >> i) & 1, (z >> i) & 1]);\n    }\n    return bounds;\n}\nfunction intersection(a, b) {\n    return [\n        Math.max(a[0], b[0]),\n        Math.max(a[1], b[1]),\n        Math.max(a[2], b[2]),\n        Math.min(a[3], b[3]),\n        Math.min(a[4], b[4]),\n        Math.min(a[5], b[5]),\n    ];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Dimension = void 0;\nconst Type = {\n    int8: { type: 'signed', size: 1 },\n    int16: { type: 'signed', size: 2 },\n    int32: { type: 'signed', size: 4 },\n    int64: { type: 'signed', size: 8 },\n    uint8: { type: 'unsigned', size: 1 },\n    uint16: { type: 'unsigned', size: 2 },\n    uint32: { type: 'unsigned', size: 4 },\n    uint64: { type: 'unsigned', size: 8 },\n    float32: { type: 'float', size: 4 },\n    float64: { type: 'float', size: 8 },\n    // Aliases.\n    float: { type: 'float', size: 4 },\n    double: { type: 'float', size: 8 },\n    // Minimum size of one byte, so this is a convenience for a byte.\n    bool: { type: 'unsigned', size: 1 },\n    boolean: { type: 'unsigned', size: 1 },\n};\nexports.Dimension = { Type, ctype };\nfunction ctype({ type, size }) {\n    switch (type) {\n        case 'signed': {\n            switch (size) {\n                case 1:\n                    return 'int8';\n                case 2:\n                    return 'int16';\n                case 4:\n                    return 'int32';\n                case 8:\n                    return 'int64';\n            }\n        }\n        case 'unsigned': {\n            switch (size) {\n                case 1:\n                    return 'uint8';\n                case 2:\n                    return 'uint16';\n                case 4:\n                    return 'uint32';\n                case 8:\n                    return 'uint64';\n            }\n        }\n        case 'float': {\n            switch (size) {\n                case 4:\n                    return 'float';\n                case 8:\n                    return 'double';\n            }\n        }\n    }\n    throw new Error(`Invalid dimension type/size: ${type}/${size}`);\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Getter = void 0;\nconst cross_fetch_1 = __importDefault(require(\"cross-fetch\"));\nexports.Getter = { create, http: getHttpGetter, file: getFsGetter };\nfunction create(arg) {\n    if (typeof arg === 'function')\n        return arg;\n    if (arg.startsWith('http://') || arg.startsWith('https://')) {\n        return getHttpGetter(arg);\n    }\n    return getFsGetter(arg);\n}\nfunction getHttpGetter(filename) {\n    return async function getter(begin, end) {\n        if (begin < 0 || end < 0 || begin > end)\n            throw new Error('Invalid range');\n        const response = await (0, cross_fetch_1.default)(filename, {\n            headers: { Range: `bytes=${begin}-${end - 1}` },\n        });\n        const ab = await response.arrayBuffer();\n        return new Uint8Array(ab);\n    };\n}\nfunction getFsGetter(filename) {\n    return async function getter(begin, end) {\n        const fs = await Promise.resolve().then(() => __importStar(require('fs')));\n        async function read(begin = 0, end = Infinity) {\n            if (begin < 0 || end < 0 || begin > end)\n                throw new Error('Invalid range');\n            await fs.promises.access(filename);\n            const stream = fs.createReadStream(filename, {\n                start: begin,\n                end: end - 1,\n                autoClose: true,\n            });\n            return drain(stream);\n        }\n        return read(begin, end);\n    };\n}\nasync function drain(stream) {\n    return await new Promise((resolve, reject) => {\n        const chunks = [];\n        stream.on('data', (chunk) => chunks.push(chunk));\n        stream.on('error', reject);\n        stream.on('end', () => resolve(Buffer.concat(chunks)));\n    });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Key = void 0;\nexports.Key = { create, parse, toString, step, up, compare, depth };\nfunction create(key, x = 0, y = 0, z = 0) {\n    if (typeof key !== 'number')\n        return parse(key);\n    return [key, x, y, z];\n}\nfunction parse(s) {\n    if (typeof s !== 'string')\n        return s;\n    const [d, x, y, z, ...rest] = s.split('-').map((s) => parseInt(s, 10));\n    const key = [d, x, y, z];\n    if (rest.length !== 0 ||\n        key.some((v) => typeof v !== 'number' || Number.isNaN(v))) {\n        throw new Error(`Invalid key: ${s}`);\n    }\n    return key;\n}\nfunction toString(key) {\n    if (typeof key === 'string')\n        return key;\n    return key.join('-');\n}\nfunction step(key, [a, b, c]) {\n    const [d, x, y, z] = exports.Key.create(key);\n    return [d + 1, x * 2 + a, y * 2 + b, z * 2 + c];\n}\nfunction up(key, n = 1) {\n    const [d, x, y, z] = exports.Key.create(key);\n    return [d - n, x >> n, y >> n, z >> n];\n}\nfunction compare(a, b) {\n    for (let i = 0; i < a.length; ++i) {\n        if (a[i] < b[i])\n            return -1;\n        if (a[i] > b[i])\n            return 1;\n    }\n    return 0;\n}\nfunction depth(key) {\n    return key[0];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Scale = void 0;\nexports.Scale = {\n    apply: (v, scale = 1, offset = 0) => (v - offset) / scale,\n    unapply: (v, scale = 1, offset = 0) => v * scale + offset,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Step = void 0;\nexports.Step = { fromIndex, list };\nfunction fromIndex(i) {\n    if (i < 0 || i >= 8)\n        throw new Error(`Invalid step index: ${i}`);\n    const x = (i >> 0) & 1 ? 1 : 0;\n    const y = (i >> 1) & 1 ? 1 : 0;\n    const z = (i >> 2) & 1 ? 1 : 0;\n    return [x, y, z];\n}\nfunction list() {\n    return [\n        [0, 0, 0],\n        [0, 0, 1],\n        [0, 1, 0],\n        [0, 1, 1],\n        [1, 0, 0],\n        [1, 0, 1],\n        [1, 1, 0],\n        [1, 1, 1],\n    ];\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Step = exports.Scale = exports.Key = exports.Getter = exports.Dimension = exports.Bounds = exports.Binary = void 0;\n__exportStar(require(\"./big-int\"), exports);\nvar binary_1 = require(\"./binary\");\nObject.defineProperty(exports, \"Binary\", { enumerable: true, get: function () { return binary_1.Binary; } });\nvar bounds_1 = require(\"./bounds\");\nObject.defineProperty(exports, \"Bounds\", { enumerable: true, get: function () { return bounds_1.Bounds; } });\nvar dimension_1 = require(\"./dimension\");\nObject.defineProperty(exports, \"Dimension\", { enumerable: true, get: function () { return dimension_1.Dimension; } });\nvar getter_1 = require(\"./getter\");\nObject.defineProperty(exports, \"Getter\", { enumerable: true, get: function () { return getter_1.Getter; } });\nvar key_1 = require(\"./key\");\nObject.defineProperty(exports, \"Key\", { enumerable: true, get: function () { return key_1.Key; } });\nvar scale_1 = require(\"./scale\");\nObject.defineProperty(exports, \"Scale\", { enumerable: true, get: function () { return scale_1.Scale; } });\nvar step_1 = require(\"./step\");\nObject.defineProperty(exports, \"Step\", { enumerable: true, get: function () { return step_1.Step; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExtraBytes = void 0;\nconst utils_1 = require(\"../utils\");\nexports.ExtraBytes = { getDimension, parse, parseOne };\nconst entryLength = 192;\nfunction getDimension({ type, length: size, }) {\n    switch (type) {\n        case 'signed':\n        case 'unsigned':\n            switch (size) {\n                case 1:\n                case 2:\n                case 4:\n                case 8:\n                    return { type, size };\n            }\n        case 'float':\n            switch (size) {\n                case 4:\n                case 8:\n                    return { type, size };\n            }\n    }\n}\nfunction parse(buffer) {\n    if (buffer.byteLength % entryLength !== 0) {\n        throw new Error(`Invalid extra bytes VLR length: ${buffer.byteLength}`);\n    }\n    const result = [];\n    for (let offset = 0; offset < buffer.byteLength; offset += entryLength) {\n        result.push(parseOne(buffer.slice(offset, offset + entryLength)));\n    }\n    return result;\n}\nfunction parseOne(buffer) {\n    if (buffer.byteLength !== entryLength) {\n        throw new Error(`Invalid extra bytes entry length: ${buffer.byteLength}`);\n    }\n    const dv = utils_1.Binary.toDataView(buffer);\n    const name = utils_1.Binary.toCString(buffer.slice(4, 36));\n    const description = utils_1.Binary.toCString(buffer.slice(60, 192));\n    const rawtype = dv.getUint8(2);\n    const rawoptions = dv.getUint8(3);\n    if (rawtype >= 11) {\n        throw new Error(`Invalid extra bytes \"type\" value: ${rawtype}`);\n    }\n    // If the \"type\" is 0, then these are \"undocumented extra bytes\".  In this\n    // case, the size of the field is specified the \"options\" field.\n    if (rawtype === 0) {\n        const length = rawoptions;\n        return { name, description, length };\n    }\n    // Otherwise, these are normal extra bytes - parse out all the attributes.\n    const options = parseOptions(rawoptions);\n    const dimtype = parseType(rawtype);\n    if (!dimtype)\n        throw new Error(`Failed to extract dimension type: ${rawtype}`);\n    const { type, size: length } = dimtype;\n    // We need to extract the nodata/min/max differently depending on the EB\n    // \"type\" field.  For integers we extract the 64-bit version of whichever\n    // signedness we have, and for float/double we extract doubles.\n    function extractAnyType(offset) {\n        switch (type) {\n            case 'signed':\n                return (0, utils_1.parseBigInt)(dv.getBigInt64(offset, true));\n            case 'unsigned':\n                return (0, utils_1.parseBigInt)((0, utils_1.getBigUint64)(dv, offset, true));\n            case 'float':\n                return dv.getFloat64(offset, true);\n        }\n    }\n    const eb = { name, description, type, length };\n    if (options.hasNodata)\n        eb.nodata = extractAnyType(40);\n    if (options.hasMin)\n        eb.min = extractAnyType(64);\n    if (options.hasMax)\n        eb.max = extractAnyType(88);\n    if (options.hasScale)\n        eb.scale = dv.getFloat64(112);\n    if (options.hasOffset)\n        eb.offset = dv.getFloat64(136);\n    return eb;\n}\nfunction parseType(typecode) {\n    switch (typecode) {\n        case 1:\n            return utils_1.Dimension.Type.uint8;\n        case 2:\n            return utils_1.Dimension.Type.int8;\n        case 3:\n            return utils_1.Dimension.Type.uint16;\n        case 4:\n            return utils_1.Dimension.Type.int16;\n        case 5:\n            return utils_1.Dimension.Type.uint32;\n        case 6:\n            return utils_1.Dimension.Type.int32;\n        case 7:\n            return utils_1.Dimension.Type.uint64;\n        case 8:\n            return utils_1.Dimension.Type.int64;\n        case 9:\n            return utils_1.Dimension.Type.float32;\n        case 10:\n            return utils_1.Dimension.Type.float64;\n    }\n}\nfunction parseOptions(v) {\n    return {\n        hasNodata: Boolean(v & 1),\n        hasMin: Boolean((v >> 1) & 1),\n        hasMax: Boolean((v >> 2) & 1),\n        hasScale: Boolean((v >> 3) & 1),\n        hasOffset: Boolean((v >> 4) & 1),\n    };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Dimensions = void 0;\nconst utils_1 = require(\"../utils\");\nconst extra_bytes_1 = require(\"./extra-bytes\");\nexports.Dimensions = { create };\nconst { Type } = utils_1.Dimension;\nconst typemap = {\n    X: Type.float64,\n    Y: Type.float64,\n    Z: Type.float64,\n    Intensity: Type.uint16,\n    ReturnNumber: Type.uint8,\n    NumberOfReturns: Type.uint8,\n    ScanDirectionFlag: Type.boolean,\n    EdgeOfFlightLine: Type.boolean,\n    Classification: Type.uint8,\n    Synthetic: Type.boolean,\n    KeyPoint: Type.boolean,\n    Withheld: Type.boolean,\n    Overlap: Type.boolean,\n    ScanAngle: Type.float32,\n    UserData: Type.uint8,\n    PointSourceId: Type.uint16,\n    GpsTime: Type.float64,\n    Red: Type.uint16,\n    Green: Type.uint16,\n    Blue: Type.uint16,\n    ScannerChannel: Type.uint8,\n    Infrared: Type.uint16,\n};\nfunction create(extractor, eb = []) {\n    return Object.keys(extractor).reduce((map, name) => {\n        const type = typemap[name];\n        if (type)\n            return { ...map, [name]: type };\n        const e = eb.find((v) => v.name === name);\n        const dimension = e && extra_bytes_1.ExtraBytes.getDimension(e);\n        if (dimension)\n            return { ...map, [name]: dimension };\n        throw new Error(`Failed to look up LAS type: ${name}`);\n    }, {});\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Extractor = void 0;\nconst utils_1 = require(\"../utils\");\nexports.Extractor = { create };\n// Get point data record length excluding extra bytes.\nfunction getBasePointLength(pdrf) {\n    switch (pdrf) {\n        case 0:\n            return 20;\n        case 1:\n            return 28;\n        case 2:\n            return 26;\n        case 3:\n            return 34;\n        case 6:\n            return 30;\n        case 7:\n            return 36;\n        case 8:\n            return 38;\n        default:\n            throw new Error(`Unsupported point data record format: ${pdrf}`);\n    }\n}\n// Create an extractor for an extra-bytes field ignoring scale/offset.\nfunction createAbsoluteExtraBytesExtractor(header, offset, // Offset within the point, so should be >= the base pdrf size.\n{ type, length }) {\n    const getPointOffset = getPointOffsetGetter(header);\n    switch (type) {\n        case 'signed':\n            switch (length) {\n                case 1:\n                    return (dv, index) => dv.getInt8(getPointOffset(index) + offset);\n                case 2:\n                    return (dv, index) => dv.getInt16(getPointOffset(index) + offset, true);\n                case 4:\n                    return (dv, index) => dv.getInt32(getPointOffset(index) + offset, true);\n                case 8:\n                    return (dv, index) => (0, utils_1.parseBigInt)(dv.getBigInt64(getPointOffset(index) + offset, true));\n            }\n        case 'unsigned':\n            switch (length) {\n                case 1:\n                    return (dv, index) => dv.getUint8(getPointOffset(index) + offset);\n                case 2:\n                    return (dv, index) => dv.getUint16(getPointOffset(index) + offset, true);\n                case 4:\n                    return (dv, index) => dv.getUint32(getPointOffset(index) + offset, true);\n                case 8:\n                    return (dv, index) => (0, utils_1.parseBigInt)((0, utils_1.getBigUint64)(dv, getPointOffset(index) + offset, true));\n            }\n        case 'float':\n            switch (length) {\n                case 4:\n                    return (dv, index) => dv.getFloat32(getPointOffset(index) + offset, true);\n                case 8:\n                    return (dv, index) => dv.getFloat64(getPointOffset(index) + offset, true);\n            }\n    }\n}\nfunction createExtras(header, eb) {\n    const basePointLength = getBasePointLength(header.pointDataRecordFormat);\n    let position = basePointLength;\n    return eb.reduce((map, v) => {\n        const offset = position;\n        position += v.length;\n        const absoluteExtractor = createAbsoluteExtraBytesExtractor(header, offset, v);\n        if (!absoluteExtractor)\n            return map;\n        const extractor = (dv, index) => utils_1.Scale.unapply(absoluteExtractor(dv, index), v.scale, v.offset);\n        return { ...map, [v.name]: extractor };\n    }, {});\n}\nfunction create(header, eb = []) {\n    const extras = createExtras(header, eb);\n    const core = (() => {\n        const { pointDataRecordFormat: pdrf } = header;\n        switch (pdrf) {\n            case 0:\n                return create0(header);\n            case 1:\n                return create1(header);\n            case 2:\n                return create2(header);\n            case 3:\n                return create3(header);\n            case 6:\n                return create6(header);\n            case 7:\n                return create7(header);\n            case 8:\n                return create8(header);\n            default:\n                throw new Error(`Unsupported point data record format: ${pdrf}`);\n        }\n    })();\n    return { ...core, ...extras };\n}\nfunction create0(header) {\n    const { scale, offset } = header;\n    const getPointOffset = getPointOffsetGetter(header);\n    function getScanFlags(dv, index) {\n        return dv.getUint8(getPointOffset(index) + 14);\n    }\n    function getFullClassification(dv, index) {\n        return dv.getUint8(getPointOffset(index) + 15);\n    }\n    function getClassification(dv, index) {\n        return getFullClassification(dv, index) & 31;\n    }\n    return {\n        X: (dv, index) => utils_1.Scale.unapply(dv.getInt32(getPointOffset(index), true), scale[0], offset[0]),\n        Y: (dv, index) => utils_1.Scale.unapply(dv.getInt32(getPointOffset(index) + 4, true), scale[1], offset[1]),\n        Z: (dv, index) => utils_1.Scale.unapply(dv.getInt32(getPointOffset(index) + 8, true), scale[2], offset[2]),\n        Intensity: (dv, index) => dv.getUint16(getPointOffset(index) + 12, true),\n        ReturnNumber: (dv, index) => getScanFlags(dv, index) & 7,\n        NumberOfReturns: (dv, index) => (getScanFlags(dv, index) & 56) >> 3,\n        ScanDirectionFlag: (dv, index) => (getScanFlags(dv, index) & 64) >> 6,\n        EdgeOfFlightLine: (dv, index) => (getScanFlags(dv, index) & 128) >> 7,\n        Classification: (dv, index) => {\n            // We extract out Overlap as a separate dimension.  In PDRFs > 6, it has\n            // its own flag separate from Classification.  But here, it is signified\n            // by Classification = 12.  In that case, we'll set our Overlap dimension\n            // to 1, and set our Classification to 0.\n            const classification = getClassification(dv, index);\n            return classification === 12 ? 0 : classification;\n        },\n        Synthetic: (dv, index) => (getFullClassification(dv, index) & 32) >> 5,\n        KeyPoint: (dv, index) => (getFullClassification(dv, index) & 64) >> 6,\n        Withheld: (dv, index) => (getFullClassification(dv, index) & 128) >> 7,\n        Overlap: (dv, index) => (getClassification(dv, index) === 12 ? 1 : 0),\n        ScanAngle: (dv, index) => dv.getInt8(getPointOffset(index) + 16),\n        UserData: (dv, index) => dv.getUint8(getPointOffset(index) + 17),\n        PointSourceId: (dv, index) => dv.getUint16(getPointOffset(index) + 18, true),\n    };\n}\nfunction create1(header) {\n    const getPointOffset = getPointOffsetGetter(header);\n    return {\n        ...create0(header),\n        GpsTime: (dv, index) => dv.getFloat64(getPointOffset(index) + 20, true),\n    };\n}\nfunction create2(header) {\n    const getPointOffset = getPointOffsetGetter(header);\n    return {\n        ...create0(header),\n        Red: (dv, index) => dv.getUint16(getPointOffset(index) + 20, true),\n        Green: (dv, index) => dv.getUint16(getPointOffset(index) + 22, true),\n        Blue: (dv, index) => dv.getUint16(getPointOffset(index) + 24, true),\n    };\n}\nfunction create3(header) {\n    const getPointOffset = getPointOffsetGetter(header);\n    return {\n        ...create0(header),\n        GpsTime: (dv, index) => dv.getFloat64(getPointOffset(index) + 20, true),\n        Red: (dv, index) => dv.getUint16(getPointOffset(index) + 28, true),\n        Green: (dv, index) => dv.getUint16(getPointOffset(index) + 30, true),\n        Blue: (dv, index) => dv.getUint16(getPointOffset(index) + 32, true),\n    };\n}\nfunction create6(header) {\n    const { scale, offset } = header;\n    const getPointOffset = getPointOffsetGetter(header);\n    function getFlags(dv, index) {\n        return dv.getUint8(getPointOffset(index) + 15);\n    }\n    return {\n        X: (dv, index) => utils_1.Scale.unapply(dv.getInt32(getPointOffset(index), true), scale[0], offset[0]),\n        Y: (dv, index) => utils_1.Scale.unapply(dv.getInt32(getPointOffset(index) + 4, true), scale[1], offset[1]),\n        Z: (dv, index) => utils_1.Scale.unapply(dv.getInt32(getPointOffset(index) + 8, true), scale[2], offset[2]),\n        Intensity: (dv, index) => dv.getUint16(getPointOffset(index) + 12, true),\n        ReturnNumber: (dv, index) => dv.getUint16(getPointOffset(index) + 14, true) & 15,\n        NumberOfReturns: (dv, index) => (dv.getUint16(getPointOffset(index) + 14, true) & 240) >> 4,\n        Synthetic: (dv, index) => getFlags(dv, index) & 1,\n        KeyPoint: (dv, index) => (getFlags(dv, index) & 2) >> 1,\n        Withheld: (dv, index) => (getFlags(dv, index) & 4) >> 2,\n        Overlap: (dv, index) => (getFlags(dv, index) & 8) >> 3,\n        ScannerChannel: (dv, index) => (getFlags(dv, index) & 48) >> 4,\n        ScanDirectionFlag: (dv, index) => (getFlags(dv, index) & 64) >> 6,\n        EdgeOfFlightLine: (dv, index) => (getFlags(dv, index) & 128) >> 7,\n        Classification: (dv, index) => dv.getUint8(getPointOffset(index) + 16),\n        UserData: (dv, index) => dv.getUint8(getPointOffset(index) + 17),\n        ScanAngle: (dv, index) => dv.getInt16(getPointOffset(index) + 18, true) * 0.006,\n        PointSourceId: (dv, index) => dv.getUint16(getPointOffset(index) + 20, true),\n        GpsTime: (dv, index) => dv.getFloat64(getPointOffset(index) + 22, true),\n    };\n}\nfunction create7(header) {\n    const getPointOffset = getPointOffsetGetter(header);\n    return {\n        ...create6(header),\n        Red: (dv, index) => dv.getUint16(getPointOffset(index) + 30, true),\n        Green: (dv, index) => dv.getUint16(getPointOffset(index) + 32, true),\n        Blue: (dv, index) => dv.getUint16(getPointOffset(index) + 34, true),\n    };\n}\nfunction create8(header) {\n    const getPointOffset = getPointOffsetGetter(header);\n    return {\n        ...create7(header),\n        Infrared: (dv, index) => dv.getUint16(getPointOffset(index) + 36, true),\n    };\n}\nfunction getPointOffsetGetter(header) {\n    const { pointDataRecordLength } = header;\n    return function getPointOffset(index) {\n        return index * pointDataRecordLength;\n    };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatGuid = exports.parsePoint = void 0;\nconst utils_1 = require(\"../utils\");\nfunction parsePoint(buffer) {\n    const dv = utils_1.Binary.toDataView(buffer);\n    if (dv.byteLength !== 24) {\n        throw new Error(`Invalid tuple buffer length: ${dv.byteLength}`);\n    }\n    return [\n        dv.getFloat64(0, true),\n        dv.getFloat64(8, true),\n        dv.getFloat64(16, true),\n    ];\n}\nexports.parsePoint = parsePoint;\nfunction formatGuid(buffer) {\n    const dv = utils_1.Binary.toDataView(buffer);\n    if (dv.byteLength !== 16) {\n        throw new Error(`Invalid GUID buffer length: ${dv.byteLength}`);\n    }\n    let s = '';\n    for (let i = 0; i < dv.byteLength; i += 4) {\n        const c = dv.getUint32(i, true);\n        s += c.toString(16).padStart(8, '0');\n    }\n    return [s.slice(0, 8), s.slice(8, 12), s.slice(12, 16), s.slice(16, 32)].join('-');\n}\nexports.formatGuid = formatGuid;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Header = void 0;\nconst utils_1 = require(\"../utils\");\nconst constants_1 = require(\"./constants\");\nconst utils_2 = require(\"./utils\");\nexports.Header = { parse };\nfunction parse(buffer) {\n    if (buffer.byteLength < constants_1.minHeaderLength) {\n        throw new Error(`Invalid header: must be at least ${constants_1.minHeaderLength} bytes`);\n    }\n    const dv = utils_1.Binary.toDataView(buffer);\n    const fileSignature = utils_1.Binary.toCString(buffer.slice(0, 4));\n    if (fileSignature !== 'LASF') {\n        throw new Error(`Invalid file signature: ${fileSignature}`);\n    }\n    const majorVersion = dv.getUint8(24);\n    const minorVersion = dv.getUint8(25);\n    if (majorVersion !== 1 || (minorVersion !== 2 && minorVersion !== 4)) {\n        throw new Error(`Invalid version (only 1.2 and 1.4 supported): ${majorVersion}.${minorVersion}`);\n    }\n    const header = {\n        fileSignature,\n        fileSourceId: dv.getUint16(4, true),\n        globalEncoding: dv.getUint16(6, true),\n        projectId: (0, utils_2.formatGuid)(buffer.slice(8, 24)),\n        majorVersion,\n        minorVersion,\n        systemIdentifier: utils_1.Binary.toCString(buffer.slice(26, 58)),\n        generatingSoftware: utils_1.Binary.toCString(buffer.slice(58, 90)),\n        fileCreationDayOfYear: dv.getUint16(90, true),\n        fileCreationYear: dv.getUint16(92, true),\n        headerLength: dv.getUint16(94, true),\n        pointDataOffset: dv.getUint32(96, true),\n        vlrCount: dv.getUint32(100, true),\n        pointDataRecordFormat: dv.getUint8(104) & 0b1111,\n        pointDataRecordLength: dv.getUint16(105, true),\n        pointCount: dv.getUint32(107, true),\n        pointCountByReturn: parseLegacyNumberOfPointsByReturn(buffer.slice(111, 131)),\n        scale: (0, utils_2.parsePoint)(buffer.slice(131, 155)),\n        offset: (0, utils_2.parsePoint)(buffer.slice(155, 179)),\n        min: [\n            dv.getFloat64(187, true),\n            dv.getFloat64(203, true),\n            dv.getFloat64(219, true),\n        ],\n        max: [\n            dv.getFloat64(179, true),\n            dv.getFloat64(195, true),\n            dv.getFloat64(211, true),\n        ],\n        waveformDataOffset: 0,\n        evlrOffset: 0,\n        evlrCount: 0,\n    };\n    if (minorVersion == 2)\n        return header;\n    return {\n        ...header,\n        pointCount: (0, utils_1.parseBigInt)((0, utils_1.getBigUint64)(dv, 247, true)),\n        pointCountByReturn: parseNumberOfPointsByReturn(buffer.slice(255, 375)),\n        waveformDataOffset: (0, utils_1.parseBigInt)((0, utils_1.getBigUint64)(dv, 227, true)),\n        evlrOffset: (0, utils_1.parseBigInt)((0, utils_1.getBigUint64)(dv, 235, true)),\n        evlrCount: dv.getUint32(243, true),\n    };\n}\nfunction parseNumberOfPointsByReturn(buffer) {\n    const dv = utils_1.Binary.toDataView(buffer);\n    const bigs = [];\n    for (let offset = 0; offset < 15 * 8; offset += 8) {\n        bigs.push((0, utils_1.getBigUint64)(dv, offset, true));\n    }\n    return bigs.map((v) => (0, utils_1.parseBigInt)(v));\n}\nfunction parseLegacyNumberOfPointsByReturn(buffer) {\n    const dv = utils_1.Binary.toDataView(buffer);\n    const v = [];\n    for (let offset = 0; offset < 5 * 4; offset += 4) {\n        v.push(dv.getUint32(offset, true));\n    }\n    return v;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decompressFile = exports.decompressChunk = exports.PointData = void 0;\nconst laz_perf_1 = require(\"laz-perf\");\nconst header_1 = require(\"./header\");\nexports.PointData = { createLazPerf: laz_perf_1.createLazPerf, decompressChunk, decompressFile };\nlet ourLazPerfPromise = undefined;\nasync function getLazPerf(suppliedLazPerf) {\n    if (suppliedLazPerf)\n        return suppliedLazPerf;\n    if (!ourLazPerfPromise)\n        ourLazPerfPromise = (0, laz_perf_1.createLazPerf)();\n    return ourLazPerfPromise;\n}\nasync function decompressChunk(compressed, { pointCount, pointDataRecordFormat, pointDataRecordLength }, suppliedLazPerf) {\n    const LazPerf = await getLazPerf(suppliedLazPerf);\n    const outBuffer = new Uint8Array(pointCount * pointDataRecordLength);\n    const blobPointer = LazPerf._malloc(compressed.byteLength);\n    const dataPointer = LazPerf._malloc(pointDataRecordLength);\n    const decoder = new LazPerf.ChunkDecoder();\n    try {\n        LazPerf.HEAPU8.set(new Uint8Array(compressed.buffer, compressed.byteOffset, compressed.byteLength), blobPointer);\n        decoder.open(pointDataRecordFormat, pointDataRecordLength, blobPointer);\n        for (let i = 0; i < pointCount; ++i) {\n            decoder.getPoint(dataPointer);\n            outBuffer.set(new Uint8Array(LazPerf.HEAPU8.buffer, dataPointer, pointDataRecordLength), i * pointDataRecordLength);\n        }\n    }\n    finally {\n        LazPerf._free(blobPointer);\n        LazPerf._free(dataPointer);\n        decoder.delete();\n    }\n    return outBuffer;\n}\nexports.decompressChunk = decompressChunk;\nasync function decompressFile(file, suppliedLazPerf) {\n    const LazPerf = await getLazPerf(suppliedLazPerf);\n    const header = header_1.Header.parse(file);\n    const { pointCount, pointDataRecordLength } = header;\n    const outBuffer = new Uint8Array(pointCount * pointDataRecordLength);\n    const blobPointer = LazPerf._malloc(file.byteLength);\n    const dataPointer = LazPerf._malloc(pointDataRecordLength);\n    const reader = new LazPerf.LASZip();\n    try {\n        LazPerf.HEAPU8.set(new Uint8Array(file.buffer, file.byteOffset, file.byteLength), blobPointer);\n        reader.open(blobPointer, file.byteLength);\n        for (let i = 0; i < pointCount; ++i) {\n            reader.getPoint(dataPointer);\n            outBuffer.set(new Uint8Array(LazPerf.HEAPU8.buffer, dataPointer, pointDataRecordLength), i * pointDataRecordLength);\n        }\n    }\n    finally {\n        reader.delete();\n    }\n    return outBuffer;\n}\nexports.decompressFile = decompressFile;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.View = void 0;\nconst utils_1 = require(\"../utils\");\nconst dimensions_1 = require(\"./dimensions\");\nconst extractor_1 = require(\"./extractor\");\nexports.View = { create };\nfunction create(buffer, header, eb = [], include) {\n    let extractors = extractor_1.Extractor.create(header, eb);\n    if (include) {\n        const set = new Set([...include]);\n        extractors = Object.entries(extractors).reduce((extractors, [name, getter]) => {\n            if (set.has(name))\n                extractors[name] = getter;\n            return extractors;\n        }, {});\n    }\n    const dimensions = dimensions_1.Dimensions.create(extractors, eb);\n    const dv = utils_1.Binary.toDataView(buffer);\n    const pointLength = header.pointDataRecordLength;\n    if (dv.byteLength % pointLength !== 0) {\n        throw new Error(`Invalid buffer length (${dv.byteLength}) for point length ${pointLength}`);\n    }\n    const pointCount = dv.byteLength / header.pointDataRecordLength;\n    function getter(name) {\n        const extractor = extractors[name];\n        if (!extractor)\n            throw new Error(`No extractor for dimension: ${name}`);\n        return function (index) {\n            if (index >= pointCount) {\n                throw new RangeError(`View index (${index}) out of range: ${pointCount}`);\n            }\n            return extractor(dv, index);\n        };\n    }\n    return { pointCount, dimensions, getter };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Vlr = void 0;\nconst utils_1 = require(\"../utils\");\nconst constants_1 = require(\"./constants\");\nexports.Vlr = { walk, parse, find, at, fetch };\nfunction find(vlrs, userId, recordId) {\n    return vlrs.find((v) => v.userId === userId && v.recordId === recordId);\n}\nfunction at(vlrs, userId, recordId) {\n    const vlr = find(vlrs, userId, recordId);\n    if (!vlr)\n        throw new Error(`VLR not found: ${userId}/${recordId}`);\n    return vlr;\n}\nfunction fetch(filename, { contentOffset, contentLength }) {\n    if (contentLength === 0)\n        return new Uint8Array();\n    const get = utils_1.Getter.create(filename);\n    return get(contentOffset, contentOffset + contentLength);\n}\nasync function walk(filename, header) {\n    const get = utils_1.Getter.create(filename);\n    const vlrs = await doWalk({\n        get,\n        startOffset: header.headerLength,\n        count: header.vlrCount,\n        isExtended: false,\n    });\n    const evlrs = await doWalk({\n        get,\n        startOffset: header.evlrOffset,\n        count: header.evlrCount,\n        isExtended: true,\n    });\n    return [...vlrs, ...evlrs];\n}\nfunction parse(buffer, isExtended) {\n    return (isExtended ? parseExtended : parseNormal)(buffer);\n}\nfunction parseNormal(buffer) {\n    const dv = utils_1.Binary.toDataView(buffer);\n    if (dv.byteLength !== constants_1.vlrHeaderLength) {\n        throw new Error(`Invalid VLR header length (must be ${constants_1.vlrHeaderLength}): ${dv.byteLength}`);\n    }\n    return {\n        userId: utils_1.Binary.toCString(buffer.slice(2, 18)),\n        recordId: dv.getUint16(18, true),\n        contentLength: dv.getUint16(20, true),\n        description: utils_1.Binary.toCString(buffer.slice(22, 54)),\n        isExtended: false,\n    };\n}\nfunction parseExtended(buffer) {\n    const dv = utils_1.Binary.toDataView(buffer);\n    if (dv.byteLength !== constants_1.evlrHeaderLength) {\n        throw new Error(`Invalid EVLR header length (must be ${constants_1.evlrHeaderLength}): ${dv.byteLength}`);\n    }\n    return {\n        userId: utils_1.Binary.toCString(buffer.slice(2, 18)),\n        recordId: dv.getUint16(18, true),\n        contentLength: (0, utils_1.parseBigInt)((0, utils_1.getBigUint64)(dv, 20, true)),\n        description: utils_1.Binary.toCString(buffer.slice(28, 60)),\n        isExtended: true,\n    };\n}\nasync function doWalk({ get, startOffset, count, isExtended }) {\n    const vlrs = [];\n    let pos = startOffset;\n    const length = isExtended ? constants_1.evlrHeaderLength : constants_1.vlrHeaderLength;\n    for (let i = 0; i < count; ++i) {\n        const buffer = length ? await get(pos, pos + length) : new Uint8Array();\n        const { userId, recordId, contentLength, description } = parse(buffer, isExtended);\n        vlrs.push({\n            userId,\n            recordId,\n            contentOffset: pos + length,\n            contentLength,\n            description,\n            isExtended,\n        });\n        pos += length + contentLength;\n    }\n    return vlrs;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Vlr = exports.View = exports.PointData = exports.Header = exports.Extractor = exports.ExtraBytes = exports.Dimensions = exports.Constants = void 0;\n// Note that everything here is implicitly referring to LAS 1.4 - no other\n// versions are supported by these utilities.\nexports.Constants = __importStar(require(\"./constants\"));\nvar dimensions_1 = require(\"./dimensions\");\nObject.defineProperty(exports, \"Dimensions\", { enumerable: true, get: function () { return dimensions_1.Dimensions; } });\nvar extra_bytes_1 = require(\"./extra-bytes\");\nObject.defineProperty(exports, \"ExtraBytes\", { enumerable: true, get: function () { return extra_bytes_1.ExtraBytes; } });\nvar extractor_1 = require(\"./extractor\");\nObject.defineProperty(exports, \"Extractor\", { enumerable: true, get: function () { return extractor_1.Extractor; } });\nvar header_1 = require(\"./header\");\nObject.defineProperty(exports, \"Header\", { enumerable: true, get: function () { return header_1.Header; } });\nvar point_data_1 = require(\"./point-data\");\nObject.defineProperty(exports, \"PointData\", { enumerable: true, get: function () { return point_data_1.PointData; } });\nvar view_1 = require(\"./view\");\nObject.defineProperty(exports, \"View\", { enumerable: true, get: function () { return view_1.View; } });\nvar vlr_1 = require(\"./vlr\");\nObject.defineProperty(exports, \"Vlr\", { enumerable: true, get: function () { return vlr_1.Vlr; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hierarchy = void 0;\nconst utils_1 = require(\"../utils\");\nconst constants_1 = require(\"./constants\");\nexports.Hierarchy = { parse, load };\nfunction parse(buffer) {\n    const dv = utils_1.Binary.toDataView(buffer);\n    if (dv.byteLength % constants_1.hierarchyItemLength !== 0) {\n        throw new Error(`Invalid hierarchy page length: ${dv.byteLength}`);\n    }\n    const nodes = {};\n    const pages = {};\n    for (let i = 0; i < dv.byteLength; i += constants_1.hierarchyItemLength) {\n        const d = dv.getInt32(i + 0, true);\n        const x = dv.getInt32(i + 4, true);\n        const y = dv.getInt32(i + 8, true);\n        const z = dv.getInt32(i + 12, true);\n        const offset = (0, utils_1.parseBigInt)((0, utils_1.getBigUint64)(dv, i + 16, true));\n        const length = dv.getInt32(i + 24, true);\n        const pointCount = dv.getInt32(i + 28, true);\n        const key = utils_1.Key.toString([d, x, y, z]);\n        if (pointCount < -1) {\n            throw new Error(`Invalid hierarchy point count at key: ${key}`);\n        }\n        else if (pointCount === -1) {\n            pages[key] = {\n                pageOffset: offset,\n                pageLength: length,\n            };\n        }\n        else {\n            nodes[key] = {\n                pointCount,\n                pointDataOffset: offset,\n                pointDataLength: length,\n            };\n        }\n    }\n    return { nodes, pages };\n}\nasync function load(filename, page) {\n    const get = utils_1.Getter.create(filename);\n    return parse(await get(page.pageOffset, page.pageOffset + page.pageLength));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Info = void 0;\nconst utils_1 = require(\"../utils\");\nconst constants_1 = require(\"./constants\");\nexports.Info = { parse };\nfunction parse(buffer) {\n    const dv = utils_1.Binary.toDataView(buffer);\n    if (dv.byteLength !== constants_1.infoLength) {\n        throw new Error(`Invalid COPC info VLR length (should be ${constants_1.infoLength}): ${dv.byteLength}`);\n    }\n    const center = [\n        dv.getFloat64(0, true),\n        dv.getFloat64(8, true),\n        dv.getFloat64(16, true),\n    ];\n    const radius = dv.getFloat64(24, true);\n    return {\n        cube: [\n            center[0] - radius,\n            center[1] - radius,\n            center[2] - radius,\n            center[0] + radius,\n            center[1] + radius,\n            center[2] + radius,\n        ],\n        spacing: dv.getFloat64(32, true),\n        rootHierarchyPage: {\n            pageOffset: (0, utils_1.parseBigInt)((0, utils_1.getBigUint64)(dv, 40, true)),\n            pageLength: (0, utils_1.parseBigInt)((0, utils_1.getBigUint64)(dv, 48, true)),\n        },\n        gpsTimeRange: [dv.getFloat64(56, true), dv.getFloat64(64, true)],\n    };\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Copc = void 0;\nconst Las = __importStar(require(\"../las\"));\nconst utils_1 = require(\"../utils\");\nconst hierarchy_1 = require(\"./hierarchy\");\nconst info_1 = require(\"./info\");\nexports.Copc = {\n    create,\n    loadHierarchyPage,\n    loadCompressedPointDataBuffer,\n    loadPointDataBuffer,\n    loadPointDataView,\n};\n/**\n * Parse the COPC header and walk VLR and EVLR metadata.\n */\nasync function create(filename) {\n    const getRemote = utils_1.Getter.create(filename);\n    // This is an optimization for the walking of VLRs - we'll grab a fixed size\n    // buffer which is larger than the LAS header, and for subsequent requests\n    // which fall within this buffer range, we can simply slice out the bytes\n    // rather than making another remote fetch.\n    const length = 65536;\n    const promise = getRemote(0, length);\n    async function get(begin, end) {\n        if (end >= length)\n            return getRemote(begin, end);\n        const head = await promise;\n        return head.slice(begin, end);\n    }\n    const header = Las.Header.parse(await get(0, Las.Constants.minHeaderLength));\n    const vlrs = await Las.Vlr.walk(get, header);\n    const infoVlr = Las.Vlr.find(vlrs, 'copc', 1);\n    if (!infoVlr)\n        throw new Error('COPC info VLR is required');\n    const info = info_1.Info.parse(await Las.Vlr.fetch(get, infoVlr));\n    let wkt;\n    const wktVlr = Las.Vlr.find(vlrs, 'LASF_Projection', 2112);\n    // There are a few corner-case possibilities here.  Although the LAS 1.4 spec\n    // says that this must be a null-terminated string, some files in the wild\n    // exist with a zero content-length.  We also want to consider the case of an\n    // empty string which *does* include null-termination as a missing SRS.\n    if (wktVlr && wktVlr.contentLength) {\n        wkt = utils_1.Binary.toCString(await Las.Vlr.fetch(get, wktVlr));\n        if (wkt === '')\n            wkt = undefined;\n    }\n    let eb = [];\n    const ebVlr = Las.Vlr.find(vlrs, 'LASF_Spec', 4);\n    if (ebVlr)\n        eb = Las.ExtraBytes.parse(await Las.Vlr.fetch(get, ebVlr));\n    return { header, vlrs, info, wkt, eb };\n}\nasync function loadHierarchyPage(filename, page) {\n    const get = utils_1.Getter.create(filename);\n    return hierarchy_1.Hierarchy.load(get, page);\n}\nasync function loadCompressedPointDataBuffer(filename, { pointDataOffset, pointDataLength }) {\n    const get = utils_1.Getter.create(filename);\n    return get(pointDataOffset, pointDataOffset + pointDataLength);\n}\nasync function loadPointDataBuffer(filename, { pointDataRecordFormat, pointDataRecordLength }, node, lazPerf) {\n    const compressed = await loadCompressedPointDataBuffer(filename, node);\n    const { pointCount } = node;\n    return Las.PointData.decompressChunk(compressed, { pointCount, pointDataRecordFormat, pointDataRecordLength }, lazPerf);\n}\nasync function loadPointDataView(filename, copc, node, { lazPerf, include } = {}) {\n    const buffer = await loadPointDataBuffer(filename, copc.header, node, lazPerf);\n    return Las.View.create(buffer, copc.header, copc.eb, include);\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Info = exports.Hierarchy = exports.Copc = exports.Constants = void 0;\nexports.Constants = __importStar(require(\"./constants\"));\nvar copc_1 = require(\"./copc\");\nObject.defineProperty(exports, \"Copc\", { enumerable: true, get: function () { return copc_1.Copc; } });\nvar hierarchy_1 = require(\"./hierarchy\");\nObject.defineProperty(exports, \"Hierarchy\", { enumerable: true, get: function () { return hierarchy_1.Hierarchy; } });\nvar info_1 = require(\"./info\");\nObject.defineProperty(exports, \"Info\", { enumerable: true, get: function () { return info_1.Info; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Las = exports.Ept = void 0;\nexports.Ept = __importStar(require(\"./ept\"));\n__exportStar(require(\"./copc\"), exports);\nexports.Las = __importStar(require(\"./las\"));\n__exportStar(require(\"./utils\"), exports);\n"]}