{"version":3,"names":["path","require","ACTIONS","GET_VERSION","GET_TYPES_INFO","GET_VISITOR_KEYS","GET_TOKEN_LABELS","MAYBE_PARSE","MAYBE_PARSE_SYNC","_send","WeakMap","_vCache","_tiCache","_vkCache","_tlCache","Client","constructor","send","_classPrivateFieldInitSpec","writable","value","_classPrivateFieldSet","getVersion","_classPrivateFieldGet2","_classPrivateFieldGet","call","undefined","getTypesInfo","_classPrivateFieldGet3","getVisitorKeys","_classPrivateFieldGet4","getTokLabels","_classPrivateFieldGet5","maybeParse","code","options","exports","WorkerClient","_worker","_class2","action","payload","signal","Int32Array","SharedArrayBuffer","subChannel","_classStaticPrivateFieldSpecGet","_worker_threads","MessageChannel","postMessage","port","port1","Atomics","wait","message","receiveMessageOnPort","port2","error","Object","assign","errorData","result","Worker","resolve","__dirname","env","SHARE_ENV","unref","get","_get_worker_threads","set","_worker_threads_cache","_classStaticPrivateFi2","_classStaticPrivateFieldSpecSet","_class3","_handleMessage","LocalClient","_classStaticPrivateFi"],"sources":["../src/client.cjs"],"sourcesContent":["const path = require(\"path\");\n\nconst ACTIONS = {\n GET_VERSION: \"GET_VERSION\",\n GET_TYPES_INFO: \"GET_TYPES_INFO\",\n GET_VISITOR_KEYS: \"GET_VISITOR_KEYS\",\n GET_TOKEN_LABELS: \"GET_TOKEN_LABELS\",\n MAYBE_PARSE: \"MAYBE_PARSE\",\n MAYBE_PARSE_SYNC: \"MAYBE_PARSE_SYNC\",\n};\n\nclass Client {\n #send;\n\n constructor(send) {\n this.#send = send;\n }\n\n #vCache;\n getVersion() {\n return (this.#vCache ??= this.#send(ACTIONS.GET_VERSION, undefined));\n }\n\n #tiCache;\n getTypesInfo() {\n return (this.#tiCache ??= this.#send(ACTIONS.GET_TYPES_INFO, undefined));\n }\n\n #vkCache;\n getVisitorKeys() {\n return (this.#vkCache ??= this.#send(ACTIONS.GET_VISITOR_KEYS, undefined));\n }\n\n #tlCache;\n getTokLabels() {\n return (this.#tlCache ??= this.#send(ACTIONS.GET_TOKEN_LABELS, undefined));\n }\n\n maybeParse(code, options) {\n return this.#send(ACTIONS.MAYBE_PARSE, { code, options });\n }\n}\n\n// We need to run Babel in a worker for two reasons:\n// 1. ESLint workers must be CJS files, and this is a problem\n// since Babel 8+ uses native ESM\n// 2. ESLint parsers must run synchronously, but many steps\n// of Babel's config loading (which is done for each file)\n// can be asynchronous\n// If ESLint starts supporting async parsers, we can move\n// everything back to the main thread.\nexports.WorkerClient = class WorkerClient extends Client {\n static #worker_threads_cache;\n static get #worker_threads() {\n return (WorkerClient.#worker_threads_cache ??= require(\"worker_threads\"));\n }\n\n #worker = new WorkerClient.#worker_threads.Worker(\n path.resolve(__dirname, \"../lib/worker/index.cjs\"),\n { env: WorkerClient.#worker_threads.SHARE_ENV },\n );\n\n constructor() {\n super((action, payload) => {\n // We create a new SharedArrayBuffer every time rather than reusing\n // the same one, otherwise sometimes its contents get corrupted and\n // Atomics.wait wakes up too early.\n // https://github.com/babel/babel/pull/14541\n const signal = new Int32Array(new SharedArrayBuffer(8));\n\n const subChannel = new WorkerClient.#worker_threads.MessageChannel();\n\n this.#worker.postMessage(\n { signal, port: subChannel.port1, action, payload },\n [subChannel.port1],\n );\n\n Atomics.wait(signal, 0, 0);\n const { message } = WorkerClient.#worker_threads.receiveMessageOnPort(\n subChannel.port2,\n );\n\n if (message.error) throw Object.assign(message.error, message.errorData);\n else return message.result;\n });\n\n // The worker will never exit by itself. Prevent it from keeping\n // the main process alive.\n this.#worker.unref();\n }\n};\n\nif (!USE_ESM) {\n exports.LocalClient = class LocalClient extends Client {\n static #handleMessage;\n\n constructor() {\n LocalClient.#handleMessage ??= require(\"./worker/handle-message.cjs\");\n\n super((action, payload) => {\n return LocalClient.#handleMessage(\n action === ACTIONS.MAYBE_PARSE ? ACTIONS.MAYBE_PARSE_SYNC : action,\n payload,\n );\n });\n }\n };\n}\n"],"mappings":"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"}