{"version":3,"sources":["jsdelivr-header.js","/npm/@serialport/parser-cctalk@13.0.0/dist/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aACA,OAAO,eAAe,QAAS,aAAc,CAAE,OAAO,IACtD,QAAQ,kBAAe,EACvB,MAAM,SAAW,QAAQ,UAOzB,MAAM,qBAAqB,SAAS,UAChC,MACA,OACA,kBACA,uBACA,WAAA,CAAY,EAAyB,IACjC,QACA,KAAK,MAAQ,GACb,KAAK,OAAS,EACd,KAAK,kBAAoB,EACzB,KAAK,uBAAyB,CAClC,CACA,UAAA,CAAW,EAAQ,EAAU,GACzB,GAAI,KAAK,uBAAyB,EAAG,CACjC,MAAM,EAAM,KAAK,MACb,EAAM,KAAK,kBAAoB,KAAK,yBACpC,KAAK,MAAQ,GACb,KAAK,OAAS,GAElB,KAAK,kBAAoB,CAC7B,CAMA,IALA,KAAK,QAAU,EAAO,OAItB,MAAM,KAAK,GAAQ,KAAI,GAAQ,KAAK,MAAM,KAAK,KACxC,KAAK,OAAS,GAAK,KAAK,QAAU,KAAK,MAAM,GAAK,GAAG,CAGxD,MAAM,EAAgB,KAAK,MAAM,GAAK,EAChC,EAAQ,OAAO,KAAK,KAAK,MAAM,MAAM,EAAG,IAE9C,KAAK,MAAQ,KAAK,MAAM,MAAM,EAAM,OAAQ,KAAK,MAAM,QACvD,KAAK,QAAU,EACf,KAAK,KAAK,EACd,CACA,GACJ,EAEJ,QAAQ,aAAe","file":"/npm/@serialport/parser-cctalk@13.0.0/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/@serialport/parser-cctalk@13.0.0/dist/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 });\nexports.CCTalkParser = void 0;\nconst stream_1 = require(\"stream\");\n/**\n * Parse the CCTalk protocol\n * @extends Transform\n *\n * A transform stream that emits CCTalk packets as they are received.\n */\nclass CCTalkParser extends stream_1.Transform {\n    array;\n    cursor;\n    lastByteFetchTime;\n    maxDelayBetweenBytesMs;\n    constructor(maxDelayBetweenBytesMs = 50) {\n        super();\n        this.array = [];\n        this.cursor = 0;\n        this.lastByteFetchTime = 0;\n        this.maxDelayBetweenBytesMs = maxDelayBetweenBytesMs;\n    }\n    _transform(buffer, encoding, cb) {\n        if (this.maxDelayBetweenBytesMs > 0) {\n            const now = Date.now();\n            if (now - this.lastByteFetchTime > this.maxDelayBetweenBytesMs) {\n                this.array = [];\n                this.cursor = 0;\n            }\n            this.lastByteFetchTime = now;\n        }\n        this.cursor += buffer.length;\n        // TODO: Better Faster es7 no supported by node 4\n        // ES7 allows directly push [...buffer]\n        // this.array = this.array.concat(Array.from(buffer)) //Slower ?!?\n        Array.from(buffer).map(byte => this.array.push(byte));\n        while (this.cursor > 1 && this.cursor >= this.array[1] + 5) {\n            // full frame accumulated\n            // copy command from the array\n            const FullMsgLength = this.array[1] + 5;\n            const frame = Buffer.from(this.array.slice(0, FullMsgLength));\n            // Preserve Extra Data\n            this.array = this.array.slice(frame.length, this.array.length);\n            this.cursor -= FullMsgLength;\n            this.push(frame);\n        }\n        cb();\n    }\n}\nexports.CCTalkParser = CCTalkParser;\n"]}