1 line
5.0 KiB
JSON
1 line
5.0 KiB
JSON
{"ast":null,"code":"'use strict';\n\nconst {\n tokenChars\n} = require('./validation');\n\n/**\n * Parses the `Sec-WebSocket-Protocol` header into a set of subprotocol names.\n *\n * @param {String} header The field value of the header\n * @return {Set} The subprotocol names\n * @public\n */\nfunction parse(header) {\n const protocols = new Set();\n let start = -1;\n let end = -1;\n let i = 0;\n for (i; i < header.length; i++) {\n const code = header.charCodeAt(i);\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (i !== 0 && (code === 0x20 /* ' ' */ || code === 0x09) /* '\\t' */) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n if (end === -1) end = i;\n const protocol = header.slice(start, end);\n if (protocols.has(protocol)) {\n throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n }\n protocols.add(protocol);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n if (start === -1 || end !== -1) {\n throw new SyntaxError('Unexpected end of input');\n }\n const protocol = header.slice(start, i);\n if (protocols.has(protocol)) {\n throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n }\n protocols.add(protocol);\n return protocols;\n}\nmodule.exports = {\n parse\n};","map":{"version":3,"names":["tokenChars","require","parse","header","protocols","Set","start","end","i","length","code","charCodeAt","SyntaxError","protocol","slice","has","add","module","exports"],"sources":["/Users/shoofle/Projects/the-forest/node_modules/@libsql/isomorphic-ws/node_modules/ws/lib/subprotocol.js"],"sourcesContent":["'use strict';\n\nconst { tokenChars } = require('./validation');\n\n/**\n * Parses the `Sec-WebSocket-Protocol` header into a set of subprotocol names.\n *\n * @param {String} header The field value of the header\n * @return {Set} The subprotocol names\n * @public\n */\nfunction parse(header) {\n const protocols = new Set();\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (i; i < header.length; i++) {\n const code = header.charCodeAt(i);\n\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (\n i !== 0 &&\n (code === 0x20 /* ' ' */ || code === 0x09) /* '\\t' */\n ) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n\n const protocol = header.slice(start, end);\n\n if (protocols.has(protocol)) {\n throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n }\n\n protocols.add(protocol);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n\n if (start === -1 || end !== -1) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n const protocol = header.slice(start, i);\n\n if (protocols.has(protocol)) {\n throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n }\n\n protocols.add(protocol);\n return protocols;\n}\n\nmodule.exports = { parse };\n"],"mappings":"AAAA,YAAY;;AAEZ,MAAM;EAAEA;AAAW,CAAC,GAAGC,OAAO,CAAC,cAAc,CAAC;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,KAAKA,CAACC,MAAM,EAAE;EACrB,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAC,CAAC;EAC3B,IAAIC,KAAK,GAAG,CAAC,CAAC;EACd,IAAIC,GAAG,GAAG,CAAC,CAAC;EACZ,IAAIC,CAAC,GAAG,CAAC;EAET,KAAKA,CAAC,EAAEA,CAAC,GAAGL,MAAM,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;IAC9B,MAAME,IAAI,GAAGP,MAAM,CAACQ,UAAU,CAACH,CAAC,CAAC;IAEjC,IAAID,GAAG,KAAK,CAAC,CAAC,IAAIP,UAAU,CAACU,IAAI,CAAC,KAAK,CAAC,EAAE;MACxC,IAAIJ,KAAK,KAAK,CAAC,CAAC,EAAEA,KAAK,GAAGE,CAAC;IAC7B,CAAC,MAAM,IACLA,CAAC,KAAK,CAAC,KACNE,IAAI,KAAK,IAAI,CAAC,aAAaA,IAAI,KAAK,IAAI,CAAC,CAAC,YAC3C;MACA,IAAIH,GAAG,KAAK,CAAC,CAAC,IAAID,KAAK,KAAK,CAAC,CAAC,EAAEC,GAAG,GAAGC,CAAC;IACzC,CAAC,MAAM,IAAIE,IAAI,KAAK,IAAI,CAAC,WAAW;MAClC,IAAIJ,KAAK,KAAK,CAAC,CAAC,EAAE;QAChB,MAAM,IAAIM,WAAW,CAAC,iCAAiCJ,CAAC,EAAE,CAAC;MAC7D;MAEA,IAAID,GAAG,KAAK,CAAC,CAAC,EAAEA,GAAG,GAAGC,CAAC;MAEvB,MAAMK,QAAQ,GAAGV,MAAM,CAACW,KAAK,CAACR,KAAK,EAAEC,GAAG,CAAC;MAEzC,IAAIH,SAAS,CAACW,GAAG,CAACF,QAAQ,CAAC,EAAE;QAC3B,MAAM,IAAID,WAAW,CAAC,QAAQC,QAAQ,6BAA6B,CAAC;MACtE;MAEAT,SAAS,CAACY,GAAG,CAACH,QAAQ,CAAC;MACvBP,KAAK,GAAGC,GAAG,GAAG,CAAC,CAAC;IAClB,CAAC,MAAM;MACL,MAAM,IAAIK,WAAW,CAAC,iCAAiCJ,CAAC,EAAE,CAAC;IAC7D;EACF;EAEA,IAAIF,KAAK,KAAK,CAAC,CAAC,IAAIC,GAAG,KAAK,CAAC,CAAC,EAAE;IAC9B,MAAM,IAAIK,WAAW,CAAC,yBAAyB,CAAC;EAClD;EAEA,MAAMC,QAAQ,GAAGV,MAAM,CAACW,KAAK,CAACR,KAAK,EAAEE,CAAC,CAAC;EAEvC,IAAIJ,SAAS,CAACW,GAAG,CAACF,QAAQ,CAAC,EAAE;IAC3B,MAAM,IAAID,WAAW,CAAC,QAAQC,QAAQ,6BAA6B,CAAC;EACtE;EAEAT,SAAS,CAACY,GAAG,CAACH,QAAQ,CAAC;EACvB,OAAOT,SAAS;AAClB;AAEAa,MAAM,CAACC,OAAO,GAAG;EAAEhB;AAAM,CAAC","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]} |