@varlock/cloudflare-integration 0.1.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/.bun/ast-matcher@1.2.0/node_modules/ast-matcher/index.js","../../../../node_modules/.bun/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts","../../../../node_modules/.bun/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/src/strings.ts","../../../../node_modules/.bun/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/BitSet.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/Chunk.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/SourceMap.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/utils/guessIndent.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/utils/getRelativePath.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/utils/isObject.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/utils/getLocator.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/utils/Mappings.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/MagicString.js","../../vite/src/transform.ts","../../vite/src/index.ts","../src/shared-ssr-entry-code.ts","../src/sveltekit.ts"],"names":["exports","astMatcher","n","segment","replacement"],"mappings":"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","file":"sveltekit.js","sourcesContent":["'use strict';\nconst STOP = false;\nconst SKIP_BRANCH = 1;\n\n// ignore position info, and raw\nconst IGNORED_KEYS = ['start', 'end', 'loc', 'location', 'locations', 'line', 'column', 'range', 'ranges', 'raw', 'extra'];\n\nlet _parser = function() {\n throw new Error('No parser set, you need to set parser before use astMatcher. For instance, astMatcher.setParser(esprima.parse)');\n};\n\nfunction setParser(p) {\n if (typeof p !== 'function') {\n throw new Error(\"Input parser must be a function that takes JavaScript contents as input, produce a estree compliant syntax tree object.\")\n }\n\n _parser = function(contents) {\n let node = p(contents);\n // To be friendly to @babel/parser\n if (node.type === 'File' && node.program) {\n node = node.program;\n }\n return node;\n };\n}\n\n// From an esprima example for traversing its ast.\n// modified to support branch skip.\nfunction traverse(object, visitor) {\n let child;\n if (!object) return;\n\n let r = visitor.call(null, object);\n if (r === STOP) return STOP; // stop whole traverse immediately\n if (r === SKIP_BRANCH) return; // skip going into AST branch\n\n for (let i = 0, keys = Object.keys(object); i < keys.length; i++) {\n let key = keys[i];\n if (IGNORED_KEYS.indexOf(key) !== -1) continue;\n\n child = object[key];\n if (typeof child === 'object' && child !== null) {\n if (traverse(child, visitor) === STOP) {\n return STOP;\n }\n }\n }\n}\n\nconst ANY = 1;\nconst ANL = 2;\nconst STR = 3;\nconst ARR = 4;\n\nfunction matchTerm(pattern) {\n let possible;\n if (pattern.type === 'Identifier') {\n possible = pattern.name.toString();\n } else if (pattern.type === 'ExpressionStatement' &&\n pattern.expression.type === 'Identifier') {\n possible = pattern.expression.name.toString();\n } else if ((pattern.type === 'FieldDefinition' || pattern.type === 'ClassProperty') &&\n pattern.key.type === 'Identifier') {\n possible = pattern.key.name.toString();\n }\n\n if (!possible || !possible.startsWith('__')) return;\n\n let type;\n if (possible === '__any' || possible.startsWith('__any_')) {\n type = ANY;\n } else if (possible === '__anl' || possible.startsWith('__anl_')) {\n type = ANL;\n } else if (possible === '__str' || possible.startsWith('__str_')) {\n type = STR;\n } else if (possible === '__arr' || possible.startsWith('__arr_')) {\n type = ARR;\n }\n\n if (type) return {type: type, name: possible.slice(6)};\n}\n\n/**\n * Extract info from a partial estree syntax tree, see astMatcher for pattern format\n * @param pattern The pattern used on matching\n * @param part The target partial syntax tree\n * @return Returns named matches, or false.\n */\nfunction extract(pattern, part) {\n if (!pattern) throw new Error('missing pattern');\n // no match\n if (!part) return STOP;\n\n let term = matchTerm(pattern);\n if (term) {\n // if single __any\n if (term.type === ANY) {\n if (term.name) {\n // if __any_foo\n // get result {foo: astNode}\n let r = {};\n r[term.name] = part;\n return r;\n }\n // always match\n return {};\n\n // if single __str_foo\n } else if (term.type === STR) {\n if (part.type === 'Literal' || part.type === 'StringLiteral') {\n if (term.name) {\n // get result {foo: value}\n let r = {};\n r[term.name] = part.value;\n return r;\n }\n // always match\n return {};\n }\n // no match\n return STOP;\n }\n }\n\n\n if (Array.isArray(pattern)) {\n // no match\n if (!Array.isArray(part)) return STOP;\n\n if (pattern.length === 1) {\n let arrTerm = matchTerm(pattern[0]);\n if (arrTerm) {\n // if single __arr_foo\n if (arrTerm.type === ARR) {\n // find all or partial Literals in an array\n let arr = part.filter(function(it) { return it.type === 'Literal' || it.type === 'StringLiteral'; })\n .map(function(it) { return it.value; });\n if (arr.length) {\n if (arrTerm.name) {\n // get result {foo: array}\n let r = {};\n r[arrTerm.name] = arr;\n return r;\n }\n // always match\n return {};\n }\n // no match\n return STOP;\n } else if (arrTerm.type === ANL) {\n if (arrTerm.name) {\n // get result {foo: nodes array}\n let r = {};\n r[arrTerm.name] = part;\n return r;\n }\n\n // always match\n return {};\n }\n }\n }\n\n if (pattern.length !== part.length) {\n // no match\n return STOP;\n }\n }\n\n let allResult = {};\n\n for (let i = 0, keys = Object.keys(pattern); i < keys.length; i++) {\n let key = keys[i];\n if (IGNORED_KEYS.indexOf(key) !== -1) continue;\n\n let nextPattern = pattern[key];\n let nextPart = part[key];\n\n if (!nextPattern || typeof nextPattern !== 'object') {\n // primitive value. string or null\n if (nextPattern === nextPart) continue;\n\n // no match\n return STOP;\n }\n\n const result = extract(nextPattern, nextPart);\n // no match\n if (result === STOP) return STOP;\n if (result) Object.assign(allResult, result);\n }\n\n return allResult;\n}\n\n/**\n * Compile a pattern into estree syntax tree\n * @param pattern The pattern used on matching, can be a string or estree node\n * @return Returns an estree node to be used as pattern in extract(pattern, part)\n */\nfunction compilePattern(pattern) {\n let exp = ensureParsed(pattern);\n\n if (exp.type !== 'Program' || !exp.body) {\n throw new Error(`Not a valid expression: \"${pattern}\".`);\n }\n\n if (exp.body.length === 0) {\n throw new Error(`There is no statement in pattern \"${pattern}\".`);\n }\n\n if (exp.body.length > 1) {\n throw new Error(`Multiple statements is not supported \"${pattern}\".`);\n }\n\n exp = exp.body[0];\n // get the real expression underneath\n if (exp.type === 'ExpressionStatement') exp = exp.expression;\n return exp;\n}\n\nfunction ensureParsed(codeOrNode) {\n // bypass parsed node\n if (codeOrNode && codeOrNode.type) {\n // To be friendly to @babel/parser\n if (codeOrNode.type === 'File' && codeOrNode.program) {\n return codeOrNode.program;\n }\n return codeOrNode;\n }\n return _parser(codeOrNode);\n}\n\n/**\n * Pattern matching using AST on JavaScript source code\n * @param pattern The pattern to be matched\n * @return Returns a function that takes source code string (or estree syntax tree) as input, produces matched result or undefined.\n *\n * __any matches any single node, but no extract\n * __anl matches array of nodes, but no extract\n * __str matches string literal, but no extract\n * __arr matches array of partial string literals, but no extract\n * __any_aName matches single node, return {aName: node}\n * __anl_aName matches array of nodes, return {aName: array_of_nodes}\n * __str_aName matches string literal, return {aName: value}\n * __arr_aName matches array, extract string literals, return {aName: [values]}\n *\n * note: __arr_aName can match partial array\n * [foo, \"foo\", lorem, \"bar\", lorem] => [\"foo\", \"bar\"]\n *\n * note: __anl, and __arr_*\n * use method(__anl) or method(__arr_a) to match method(a, \"b\");\n * use method([__anl]) or method([__arr_a]) to match method([a, \"b\"]);\n *\n * Usage:\n * let m = astMatcher('__any.method(__str_foo, [__arr_opts])');\n * m('au.method(\"a\", [\"b\", \"c\"]); jq.method(\"d\", [\"e\"])');\n *\n * => [\n * {match: {foo: \"a\", opts: [\"b\", \"c\"]}, node: <CallExpression node> }\n * {match: {foo: \"d\", opts: [\"e\"]}, node: <CallExpression node> }\n * ]\n */\nfunction astMatcher(pattern) {\n let pat = compilePattern(pattern);\n\n return function(jsStr) {\n let node = ensureParsed(jsStr);\n let matches = [];\n\n traverse(node, function (n) {\n let m = extract(pat, n);\n if (m) {\n matches.push({\n match: m,\n node: n // this is the full matching node\n });\n // found a match, don't go deeper on this tree branch\n // return SKIP_BRANCH;\n // don't skip branch in order to catch both .m1() ad .m2()\n // astMater('__any.__any_m()')('a.m1().m2()')\n }\n });\n\n return matches.length ? matches : undefined;\n };\n}\n\n/**\n * Dependency analysis for dummies, this is a high level api to simplify the usage of astMatcher\n * @param arguments Multiple patterns to match, instead of using __str_/__arr_,\n * use __dep and __deps to match string and partial string array.\n * @return Returns a function that takes source code string (or estree syntax tree) as input, produces an array of string matched, or empty array.\n *\n * Usage:\n * let f = depFinder('a(__dep)', '__any.globalResources([__deps])');\n * f('a(\"a\"); a(\"b\"); config.globalResources([\"./c\", \"./d\"])');\n *\n * => ['a', 'b', './c', './d']\n */\nfunction depFinder() {\n if (arguments.length === 0) {\n throw new Error('No patterns provided.');\n }\n\n let seed = 0;\n\n let patterns = Array.prototype.map.call(arguments, function (p) {\n // replace __dep and __deps into\n // __str_1, __str_2, __arr_3\n\n // wantArr is the result of (s?)\n return compilePattern(p.replace(/__dep(s?)/g, function (m, wantArr) {\n return (wantArr ? '__arr_' : '__str_') + (++seed);\n }))\n });\n\n let len = patterns.length;\n\n return function(jsStr) {\n let node = ensureParsed(jsStr);\n\n let deps = [];\n\n // directly use extract() instead of astMatcher()\n // for efficiency\n traverse(node, function (n) {\n for (let i = 0; i < len; i += 1) {\n let result = extract(patterns[i], n);\n if (result) {\n // result is like {\"1\": \"dep1\", \"2\": [\"dep2\", \"dep3\"]}\n // we only want values\n Object.keys(result).forEach(function (k) {\n let d = result[k];\n if (typeof d === 'string') deps.push(d);\n else deps.push.apply(deps, d);\n });\n\n // found a match, don't try other pattern\n break;\n }\n }\n });\n\n return deps;\n };\n}\n\nmodule.exports = astMatcher;\nmodule.exports.setParser = setParser;\nmodule.exports.ensureParsed = ensureParsed;\nmodule.exports.extract = extract;\nmodule.exports.compilePattern = compilePattern;\nmodule.exports.depFinder = depFinder;\nmodule.exports.STOP = STOP;\nmodule.exports.SKIP_BRANCH = SKIP_BRANCH;\nmodule.exports.traverse = traverse;\n","import type { StringReader, StringWriter } from './strings';\n\nexport const comma = ','.charCodeAt(0);\nexport const semicolon = ';'.charCodeAt(0);\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst intToChar = new Uint8Array(64); // 64 possible chars.\nconst charToInt = new Uint8Array(128); // z is 122 in ASCII\n\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\n\nexport function decodeInteger(reader: StringReader, relative: number): number {\n let value = 0;\n let shift = 0;\n let integer = 0;\n\n do {\n const c = reader.next();\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n\n const shouldNegate = value & 1;\n value >>>= 1;\n\n if (shouldNegate) {\n value = -0x80000000 | -value;\n }\n\n return relative + value;\n}\n\nexport function encodeInteger(builder: StringWriter, num: number, relative: number): number {\n let delta = num - relative;\n\n delta = delta < 0 ? (-delta << 1) | 1 : delta << 1;\n do {\n let clamped = delta & 0b011111;\n delta >>>= 5;\n if (delta > 0) clamped |= 0b100000;\n builder.write(intToChar[clamped]);\n } while (delta > 0);\n\n return num;\n}\n\nexport function hasMoreVlq(reader: StringReader, max: number) {\n if (reader.pos >= max) return false;\n return reader.peek() !== comma;\n}\n","const bufLength = 1024 * 16;\n\n// Provide a fallback for older environments.\nconst td =\n typeof TextDecoder !== 'undefined'\n ? /* #__PURE__ */ new TextDecoder()\n : typeof Buffer !== 'undefined'\n ? {\n decode(buf: Uint8Array): string {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n },\n }\n : {\n decode(buf: Uint8Array): string {\n let out = '';\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n },\n };\n\nexport class StringWriter {\n pos = 0;\n private out = '';\n private buffer = new Uint8Array(bufLength);\n\n write(v: number): void {\n const { buffer } = this;\n buffer[this.pos++] = v;\n if (this.pos === bufLength) {\n this.out += td.decode(buffer);\n this.pos = 0;\n }\n }\n\n flush(): string {\n const { buffer, out, pos } = this;\n return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;\n }\n}\n\nexport class StringReader {\n pos = 0;\n declare private buffer: string;\n\n constructor(buffer: string) {\n this.buffer = buffer;\n }\n\n next(): number {\n return this.buffer.charCodeAt(this.pos++);\n }\n\n peek(): number {\n return this.buffer.charCodeAt(this.pos);\n }\n\n indexOf(char: string): number {\n const { buffer, pos } = this;\n const idx = buffer.indexOf(char, pos);\n return idx === -1 ? buffer.length : idx;\n }\n}\n","import { comma, decodeInteger, encodeInteger, hasMoreVlq, semicolon } from './vlq';\nimport { StringWriter, StringReader } from './strings';\n\nexport {\n decodeOriginalScopes,\n encodeOriginalScopes,\n decodeGeneratedRanges,\n encodeGeneratedRanges,\n} from './scopes';\nexport type { OriginalScope, GeneratedRange, CallSite, BindingExpressionRange } from './scopes';\n\nexport type SourceMapSegment =\n | [number]\n | [number, number, number, number]\n | [number, number, number, number, number];\nexport type SourceMapLine = SourceMapSegment[];\nexport type SourceMapMappings = SourceMapLine[];\n\nexport function decode(mappings: string): SourceMapMappings {\n const { length } = mappings;\n const reader = new StringReader(mappings);\n const decoded: SourceMapMappings = [];\n let genColumn = 0;\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n\n do {\n const semi = reader.indexOf(';');\n const line: SourceMapLine = [];\n let sorted = true;\n let lastCol = 0;\n genColumn = 0;\n\n while (reader.pos < semi) {\n let seg: SourceMapSegment;\n\n genColumn = decodeInteger(reader, genColumn);\n if (genColumn < lastCol) sorted = false;\n lastCol = genColumn;\n\n if (hasMoreVlq(reader, semi)) {\n sourcesIndex = decodeInteger(reader, sourcesIndex);\n sourceLine = decodeInteger(reader, sourceLine);\n sourceColumn = decodeInteger(reader, sourceColumn);\n\n if (hasMoreVlq(reader, semi)) {\n namesIndex = decodeInteger(reader, namesIndex);\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];\n } else {\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];\n }\n } else {\n seg = [genColumn];\n }\n\n line.push(seg);\n reader.pos++;\n }\n\n if (!sorted) sort(line);\n decoded.push(line);\n reader.pos = semi + 1;\n } while (reader.pos <= length);\n\n return decoded;\n}\n\nfunction sort(line: SourceMapSegment[]) {\n line.sort(sortComparator);\n}\n\nfunction sortComparator(a: SourceMapSegment, b: SourceMapSegment): number {\n return a[0] - b[0];\n}\n\nexport function encode(decoded: SourceMapMappings): string;\nexport function encode(decoded: Readonly<SourceMapMappings>): string;\nexport function encode(decoded: Readonly<SourceMapMappings>): string {\n const writer = new StringWriter();\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) writer.write(semicolon);\n if (line.length === 0) continue;\n\n let genColumn = 0;\n\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n if (j > 0) writer.write(comma);\n\n genColumn = encodeInteger(writer, segment[0], genColumn);\n\n if (segment.length === 1) continue;\n sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);\n sourceLine = encodeInteger(writer, segment[2], sourceLine);\n sourceColumn = encodeInteger(writer, segment[3], sourceColumn);\n\n if (segment.length === 4) continue;\n namesIndex = encodeInteger(writer, segment[4], namesIndex);\n }\n }\n\n return writer.flush();\n}\n","export default class BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n","export default class Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\tif (DEBUG) {\n\t\t\t// we make these non-enumerable, for sanity while debugging\n\t\t\tObject.defineProperties(this, {\n\t\t\t\tprevious: { writable: true, value: null },\n\t\t\t\tnext: { writable: true, value: null },\n\t\t\t});\n\t\t} else {\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\n\tappendLeft(content) {\n\t\tthis.outro += content;\n\t}\n\n\tappendRight(content) {\n\t\tthis.intro = this.intro + content;\n\t}\n\n\tclone() {\n\t\tconst chunk = new Chunk(this.start, this.end, this.original);\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t}\n\n\tcontains(index) {\n\t\treturn this.start < index && index < this.end;\n\t}\n\n\teachNext(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.next;\n\t\t}\n\t}\n\n\teachPrevious(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t}\n\n\tedit(content, storeName, contentOnly) {\n\t\tthis.content = content;\n\t\tif (!contentOnly) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t}\n\n\tprependLeft(content) {\n\t\tthis.outro = content + this.outro;\n\t}\n\n\tprependRight(content) {\n\t\tthis.intro = content + this.intro;\n\t}\n\n\treset() {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t\tif (this.edited) {\n\t\t\tthis.content = this.original;\n\t\t\tthis.storeName = false;\n\t\t\tthis.edited = false;\n\t\t}\n\t}\n\n\tsplit(index) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice(0, sliceIndex);\n\t\tconst originalAfter = this.original.slice(sliceIndex);\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk(index, this.end, originalAfter);\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif (this.edited) {\n\t\t\t// after split we should save the edit content record into the correct chunk\n\t\t\t// to make sure sourcemap correct\n\t\t\t// For example:\n\t\t\t// ' test'.trim()\n\t\t\t// split -> ' ' + 'test'\n\t\t\t// ✔️ edit -> '' + 'test'\n\t\t\t// ✖️ edit -> 'test' + ''\n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit('', false);\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif (newChunk.next) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t}\n\n\ttoString() {\n\t\treturn this.intro + this.content + this.outro;\n\t}\n\n\ttrimEnd(rx) {\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tthis.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tif (this.intro.length) return true;\n\t\t}\n\t}\n\n\ttrimStart(rx) {\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tconst newChunk = this.split(this.end - trimmed.length);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tnewChunk.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.outro = this.outro.replace(rx, '');\n\t\t\tif (this.outro.length) return true;\n\t\t}\n\t}\n}\n","import { encode } from '@jridgewell/sourcemap-codec';\n\nfunction getBtoa() {\n\tif (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') {\n\t\treturn (str) => globalThis.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nexport default class SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t\tif (typeof properties.debugId !== 'undefined') {\n\t\t\tthis.debugId = properties.debugId;\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this);\n\t}\n\n\ttoUrl() {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t}\n}\n","export default function guessIndent(code) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter((line) => /^\\t+/.test(line));\n\tconst spaced = lines.filter((line) => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n","export default function getRelativePath(from, to) {\n\tconst fromParts = from.split(/[/\\\\]/);\n\tconst toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tlet i = fromParts.length;\n\t\twhile (i--) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n","const toString = Object.prototype.toString;\n\nexport default function isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n","export default function getLocator(source) {\n\tconst originalLines = source.split('\\n');\n\tconst lineOffsets = [];\n\n\tfor (let i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n","const wordRegex = /\\w/;\n\nexport default class Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tconst contentLengthMinusOne = content.length - 1;\n\t\t\tlet contentLineEnd = content.indexOf('\\n', 0);\n\t\t\tlet previousContentLineEnd = -1;\n\t\t\t// Loop through each line in the content and add a segment, but stop if the last line is empty,\n\t\t\t// else code afterwards would fill one line too many\n\t\t\twhile (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\t\tif (nameIndex >= 0) {\n\t\t\t\t\tsegment.push(nameIndex);\n\t\t\t\t}\n\t\t\t\tthis.rawSegments.push(segment);\n\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\n\t\t\t\tpreviousContentLineEnd = contentLineEnd;\n\t\t\t\tcontentLineEnd = content.indexOf('\\n', contentLineEnd + 1);\n\t\t\t}\n\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\n\t\t\tthis.advance(content.slice(previousContentLineEnd + 1));\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t\tthis.advance(content);\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\t\t// when iterating each char, check if it's in a word boundary\n\t\tlet charInHiresBoundary = false;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t\tcharInHiresBoundary = false;\n\t\t\t} else {\n\t\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n\t\t\t\t\tif (this.hires === 'boundary') {\n\t\t\t\t\t\t// in hires \"boundary\", group segments per word boundary than per char\n\t\t\t\t\t\tif (wordRegex.test(original[originalCharIndex])) {\n\t\t\t\t\t\t\t// for first char in the boundary found, start the boundary by pushing a segment\n\t\t\t\t\t\t\tif (!charInHiresBoundary) {\n\t\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\t\tcharInHiresBoundary = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// for non-word char, end the boundary by pushing a segment\n\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\tcharInHiresBoundary = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(str) {\n\t\tif (!str) return;\n\n\t\tconst lines = str.split('\\n');\n\n\t\tif (lines.length > 1) {\n\t\t\tfor (let i = 0; i < lines.length - 1; i++) {\n\t\t\t\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n","import BitSet from './BitSet.js';\nimport Chunk from './Chunk.js';\nimport SourceMap from './SourceMap.js';\nimport guessIndent from './utils/guessIndent.js';\nimport getRelativePath from './utils/getRelativePath.js';\nimport isObject from './utils/isObject.js';\nimport getLocator from './utils/getLocator.js';\nimport Mappings from './utils/Mappings.js';\nimport Stats from './utils/Stats.js';\n\nconst n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nexport default class MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t\toffset: { writable: true, value: options.offset || 0 },\n\t\t});\n\n\t\tif (DEBUG) {\n\t\t\tObject.defineProperty(this, 'stats', { value: new Stats() });\n\t\t}\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\n\t}\n\n\tappend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t}\n\n\tappendLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('appendLeft');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendLeft(content);\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('appendLeft');\n\t\treturn this;\n\t}\n\n\tappendRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('appendRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendRight(content);\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('appendRight');\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\t\twhile (originalChunk) {\n\t\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif (nextClonedChunk) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif (this.indentExclusionRanges) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(options) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys(this.storedNames);\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tconst locate = getLocator(this.original);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.firstChunk.eachNext((chunk) => {\n\t\t\tconst loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tmappings.addEdit(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t});\n\n\t\tif (this.outro) {\n\t\t\tmappings.advance(this.outro);\n\t\t}\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [\n\t\t\t\toptions.source ? getRelativePath(options.file || '', options.source) : options.file || '',\n\t\t\t],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t}\n\n\tindent(indentStr, options) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif (isObject(indentStr)) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif (options.exclude) {\n\t\t\tconst exclusions =\n\t\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\t\texclusions.forEach((exclusion) => {\n\t\t\t\tfor (let i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = (match) => {\n\t\t\tif (shouldIndentNextCharacter) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace(pattern, replacer);\n\n\t\tlet charIndex = 0;\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile (chunk) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile (charIndex < end) {\n\t\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\t\tconst char = this.original[charIndex];\n\n\t\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace(pattern, replacer);\n\n\t\treturn this;\n\t}\n\n\tinsert() {\n\t\tthrow new Error(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)',\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead',\n\t\t\t);\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft(index, content);\n\t}\n\n\tinsertRight(index, content) {\n\t\tif (!warned.insertRight) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead',\n\t\t\t);\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight(index, content);\n\t}\n\n\tmove(start, end, index) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\t\tindex = index + this.offset;\n\n\t\tif (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');\n\n\t\tif (DEBUG) this.stats.time('move');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\t\tthis._split(index);\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[index];\n\t\tif (!newRight && last === this.lastChunk) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif (oldLeft) oldLeft.next = oldRight;\n\t\tif (oldRight) oldRight.previous = oldLeft;\n\n\t\tif (newLeft) newLeft.next = first;\n\t\tif (newRight) newRight.previous = last;\n\n\t\tif (!first.previous) this.firstChunk = last.next;\n\t\tif (!last.next) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif (!newLeft) this.firstChunk = first;\n\t\tif (!newRight) this.lastChunk = last;\n\n\t\tif (DEBUG) this.stats.timeEnd('move');\n\t\treturn this;\n\t}\n\n\toverwrite(start, end, content, options) {\n\t\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(start, end, content, options) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('replacement content must be a string');\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (end > this.original.length) throw new Error('end is out of bounds');\n\t\tif (start === end)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead',\n\t\t\t);\n\n\t\tif (DEBUG) this.stats.time('overwrite');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tif (options === true) {\n\t\t\tif (!warned.storeName) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string',\n\t\t\t\t);\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tif (first) {\n\t\t\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('overwrite');\n\t\treturn this;\n\t}\n\n\tprepend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t}\n\n\tprependLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('insertRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependLeft(content);\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('insertRight');\n\t\treturn this;\n\t}\n\n\tprependRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('insertRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependRight(content);\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('insertRight');\n\t\treturn this;\n\t}\n\n\tremove(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tif (DEBUG) this.stats.time('remove');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit('');\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('remove');\n\t\treturn this;\n\t}\n\n\treset(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tif (DEBUG) this.stats.time('reset');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.reset();\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('reset');\n\t\treturn this;\n\t}\n\n\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\n\t}\n\n\tslice(start = 0, end = this.original.length - this.offset) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t\t// found end chunk before start\n\t\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t\tthrow new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile (chunk) {\n\t\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t\tthrow new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif (containsEnd) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// TODO deprecate this? not really very useful\n\tsnip(start, end) {\n\t\tconst clone = this.clone();\n\t\tclone.remove(0, start);\n\t\tclone.remove(end, clone.original.length);\n\n\t\treturn clone;\n\t}\n\n\t_split(index) {\n\t\tif (this.byStart[index] || this.byEnd[index]) return;\n\n\t\tif (DEBUG) this.stats.time('_split');\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tlet previousChunk = chunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\n\t\t\t// Prevent infinite loop (e.g. via empty chunks, where start === end)\n\t\t\tif (chunk === previousChunk) return;\n\n\t\t\tpreviousChunk = chunk;\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator(this.original)(index);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`,\n\t\t\t);\n\t\t}\n\n\t\tconst newChunk = chunk.split(index);\n\n\t\tthis.byEnd[index] = chunk;\n\t\tthis.byStart[index] = newChunk;\n\t\tthis.byEnd[newChunk.end] = newChunk;\n\n\t\tif (chunk === this.lastChunk) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\tif (DEBUG) this.stats.timeEnd('_split');\n\t\treturn true;\n\t}\n\n\ttoString() {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t}\n\n\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimEndAborted(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd(rx);\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif (chunk.end !== end) {\n\t\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart(rx);\n\n\t\t\tif (chunk.end !== end) {\n\t\t\t\t// special case...\n\t\t\t\tif (chunk === this.lastChunk) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null) {\n\t\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null) {\n\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\treplacement = replacement(string, index, original);\n\t\t\t}\n\t\t\tif (string !== replacement) {\n\t\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tconst previous = original.slice(index, index + stringLength);\n\t\t\tlet _replacement = replacement;\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\t_replacement = replacement(previous, index, original);\n\t\t\t}\n\t\t\tif (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument',\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n","/*\n Used https://www.npmjs.com/package/rollup-plugin-define as a starting point\n Initially we were using @rollup/plugin-replace, but it would replace text in strings\n\n This instead replaces nodes in a parsed AST rather than text in a string.\n But we've simplified things slightly and removed some dependencies.\n*/\nimport type { PluginContext, TransformPluginContext } from 'rollup';\n\nimport MagicString from 'magic-string';\nimport astMatcher from 'ast-matcher';\n\ntype Edit = [number, number];\ntype AstNode = { start: number; end: number };\n\nfunction escapeStringRegexp(string: string) {\n if (typeof string !== 'string') throw new TypeError('Expected a string');\n\n // see https://github.com/sindresorhus/escape-string-regexp\n return string\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n .replace(/-/g, '\\\\x2d');\n}\n\n\nfunction markEdited(node: AstNode, edits: Array<Edit>): number | false {\n for (const [start, end] of edits) {\n if ((start <= node.start && node.start < end) || (start < node.end && node.end <= end)) {\n return false; // Already edited\n }\n }\n\n // Not edited\n return edits.push([node.start, node.end]);\n}\n\nexport const SUPPORTED_FILES = ['js', 'ts', 'mjs', 'mts', 'cjs', 'cts', 'jsx', 'tsx', 'vue', 'svelte'];\n\ntype MatchersArray = Array<{ matcher: ReturnType<typeof astMatcher>, replacement: string }>;\n\nexport function createReplacerTransformFn(opts: {\n replacements: Record<string, string>,\n}) {\n const keys = Object.keys(opts.replacements);\n let matchers: MatchersArray;\n const extraMatchersForFileType: Record<string, MatchersArray> = {};\n\n const findAnyReplacementRegex = new RegExp(`(?:${keys.map(escapeStringRegexp).join('|')})`, 'g');\n\n return function transform(\n rollupPluginCtx: {\n parse: TransformPluginContext['parse'];\n warn: TransformPluginContext['warn']\n },\n code: string,\n id: string,\n ) {\n if (keys.length === 0) return null;\n\n const fileExt = id.split('?')[0].split('#')[0].split('.').pop() || '';\n if (!SUPPORTED_FILES.includes(fileExt)) return null;\n\n if (code.search(findAnyReplacementRegex) === -1) return null;\n\n const parse = (codeToParse: string, source = code): ReturnType<PluginContext['parse']> => {\n try {\n return rollupPluginCtx.parse(codeToParse, undefined);\n } catch (error) {\n (error as Error).message += ` in ${source}`;\n throw error;\n }\n };\n\n const ast = parse(code, id);\n\n matchers ||= keys.map((key) => ({\n matcher: astMatcher(parse(key)),\n replacement: opts.replacements[key],\n }));\n\n if (fileExt === 'vue') {\n // in vue script+setup files, ENV.X in template blocks gets replaced with `$setup.ENV.X`\n extraMatchersForFileType.vue ||= keys.map((key) => ({\n matcher: astMatcher(parse(`$setup.${key}`)),\n replacement: opts.replacements[key],\n }));\n }\n\n const magicString = new MagicString(code);\n const edits: Array<Edit> = [];\n\n Object.values([...matchers, ...extraMatchersForFileType[fileExt] || []]).forEach(({ matcher, replacement }) => {\n for (const { node } of (matcher(ast) || []) as Array<{ node: AstNode }>) {\n if (markEdited(node, edits)) {\n magicString.overwrite(\n node.start,\n node.end,\n replacement,\n );\n }\n }\n });\n\n if (edits.length === 0) return null;\n\n // return the MagicString so the plugin can make further modifications\n return magicString;\n };\n}\n","/* eslint-disable no-console */\n\nimport path from 'node:path';\nimport type { Plugin } from 'vite';\nimport MagicString from 'magic-string';\n\nimport { initVarlockEnv } from 'varlock/env';\nimport { patchGlobalConsole } from 'varlock/patch-console';\nimport { patchGlobalServerResponse } from 'varlock/patch-server-response';\nimport { patchGlobalResponse } from 'varlock/patch-response';\nimport { createDebug, type SerializedEnvGraph } from 'varlock';\nimport { execSyncVarlock } from 'varlock/exec-sync-varlock';\n\nimport { createReplacerTransformFn, SUPPORTED_FILES } from './transform';\n\n\n// enables throwing when user accesses a bad key on ENV\n(globalThis as any).__varlockThrowOnMissingKeys = true;\n\n// snapshot process.env before varlock modifies it via initVarlockEnv()\nconst originalProcessEnv = { ...process.env };\n\nconst debug = createDebug('varlock:vite-integration');\n\nlet isFirstLoad = !(process as any).__VARLOCK_ENV;\n\ndebug('varlock vite plugin loaded. first load = ', isFirstLoad);\n\nlet isDevCommand: boolean;\nlet configIsValid = true;\nexport let varlockLoadedEnv: SerializedEnvGraph;\nlet staticReplacements: Record<string, any> = {};\nlet replacerFn: ReturnType<typeof createReplacerTransformFn>;\n\n\nfunction resetStaticReplacements() {\n staticReplacements = {};\n for (const itemKey in varlockLoadedEnv?.config) {\n const itemInfo = varlockLoadedEnv.config[itemKey];\n // TODO: probably reimplement static/dynamic controls here too\n if (!itemInfo.isSensitive) {\n // we have to pass in a string of 'undefined' so it gets replaced properly\n const val = itemInfo.value === undefined ? 'undefined' : JSON.stringify(itemInfo.value);\n staticReplacements[`ENV.${itemKey}`] = val;\n }\n }\n\n debug('static replacements', staticReplacements);\n\n replacerFn = createReplacerTransformFn({\n replacements: staticReplacements,\n });\n}\n\n\nlet loadCount = 0;\nfunction reloadConfig(cwd?: string) {\n debug('loading config - count =', ++loadCount, cwd ? `(cwd: ${cwd})` : '');\n try {\n const execResult = execSyncVarlock('load --format json-full --compact', {\n env: originalProcessEnv,\n ...(cwd && { cwd }),\n });\n process.env.__VARLOCK_ENV = execResult;\n varlockLoadedEnv = JSON.parse(process.env.__VARLOCK_ENV) as SerializedEnvGraph;\n configIsValid = true;\n } catch (err) {\n // CLI exits non-zero on validation failure but still outputs JSON to stdout.\n // Try to parse it so we have sources (for file watching) and error details.\n const errAny = err as any;\n const stdout = errAny?.stdout?.toString();\n if (stdout) {\n try {\n varlockLoadedEnv = JSON.parse(stdout) as SerializedEnvGraph;\n } catch { /* not parseable — hard failure */ }\n }\n // Show the human-readable error output from the CLI\n if (errAny?.stderr) console.error(errAny.stderr.toString());\n configIsValid = false;\n resetStaticReplacements();\n return;\n }\n\n // initialize varlock and patch globals as necessary\n initVarlockEnv();\n // these will be no-ops if these are disabled by settings\n patchGlobalConsole();\n patchGlobalServerResponse();\n patchGlobalResponse();\n\n resetStaticReplacements();\n}\n\n// we run this right away so the globals get injected into the vite.config file\nreloadConfig();\n\n\nexport interface VarlockVitePluginOptions {\n /** controls if/how varlock init code is injected into the built SSR application code */\n ssrInjectMode?: 'auto-load' | 'init-only' | 'resolved-env',\n /** extra code lines to inject at the SSR entry point, before varlock init calls */\n ssrEntryCode?: Array<string>,\n /** set to true for edge runtimes that don't have node:http (skips patchGlobalServerResponse) */\n ssrEdgeRuntime?: boolean,\n /** additional virtual module IDs to treat as entry points (e.g., '\\0virtual:cloudflare/worker-entry') */\n ssrEntryModuleIds?: Array<string>,\n}\n\n// Return type is `any` instead of `Plugin` to avoid symlink type conflicts.\n// When this package is symlinked for local dev, TypeScript resolves `vite`'s\n// Plugin type from this package's node_modules — a different copy than the\n// consumer's — causing spurious type errors. Since Vite's `plugins` config\n// is loosely typed, this is functionally equivalent.\nexport function varlockVitePlugin(\n vitePluginOptions?: VarlockVitePluginOptions,\n): any {\n return {\n name: 'inject-varlock-config',\n enforce: 'post',\n\n // hook to modify config before it is resolved\n async config(config, env) {\n debug('vite plugin - config fn called');\n\n // warn if the user has set envDir - varlock ignores this option\n // and instead reads env files from cwd (or the path configured in package.json)\n if (config.envDir) {\n console.warn(`\n[varlock] ⚠️ The \\`envDir\\` Vite option is not supported by varlock.\nTo load .env files from a custom directory, set \\`varlock.loadPath\\` in your \\`package.json\\`:\n\n {\n \"varlock\": {\n \"loadPath\": \"./your-env-dir/\"\n }\n }\n\nSee https://varlock.dev/integrations/vite/ for more details.\n`);\n }\n\n isDevCommand = env.command === 'serve';\n\n // Determine the project root for the current Vite/Vitest project.\n // In monorepo setups with Vitest workspace projects, config.root\n // points to the child package directory rather than the monorepo root\n // where process.cwd() points. We need to reload varlock from the\n // correct directory so it can find .env.schema and .env files.\n const projectRoot = config.root ? path.resolve(config.root) : undefined;\n const rootDiffersFromCwd = !!(projectRoot && path.relative(projectRoot, process.cwd()) !== '');\n\n if (rootDiffersFromCwd) {\n // Always reload with the correct project root when it differs from\n // cwd. This handles monorepo Vitest workspace setups where each child\n // project has its own env files — even if the monorepo root also has\n // env files (which would cause the initial module-level load to\n // succeed with the wrong project's config).\n reloadConfig(projectRoot);\n } else if (isFirstLoad) {\n isFirstLoad = false;\n // Roots match — the module-level reloadConfig() already loaded from\n // the correct directory, no need to reload.\n } else if (isDevCommand) {\n // Dev mode re-trigger (e.g., after .env file updates)\n // TODO: be smarter about only reloading if the env files changed?\n reloadConfig();\n }\n\n // we do not want to inject via config.define - instead we use @rollup/plugin-replace\n\n if (!configIsValid) {\n if (isDevCommand) {\n // adjust vite's setting so it doesnt bury the error messages\n config.clearScreen = false;\n } else {\n console.log('💥 Varlock config validation failed 💥');\n if (varlockLoadedEnv?.errors?.root) {\n for (const msg of varlockLoadedEnv.errors.root) {\n console.log(` - ${msg}`);\n }\n }\n if (varlockLoadedEnv?.errors?.configItems) {\n for (const [key, msg] of Object.entries(varlockLoadedEnv.errors.configItems)) {\n console.log(` - ${key}: ${msg}`);\n }\n }\n // throwing an error spits out a big useless stack trace... so better to just exit?\n process.exit(1);\n }\n }\n },\n // hook to observe/modify config after it is resolved\n configResolved(config) {\n debug('vite plugin - configResolved fn called');\n if (!varlockLoadedEnv) return;\n // inject all .env files that varlock loaded into `configFileDependencies`\n // so that vite will watch them and reload if they change\n for (const varlockSource of varlockLoadedEnv.sources) {\n if (!varlockSource.enabled) continue;\n if (varlockLoadedEnv.basePath && varlockSource.path) {\n config.configFileDependencies.push(path.resolve(varlockLoadedEnv.basePath, varlockSource.path));\n }\n }\n },\n // hook to configure vite dev server\n async configureServer(server) {\n debug('vite plugin - configureServer fn called');\n\n if (!configIsValid) {\n // triggers the built-in vite error overlay\n server.middlewares.use((req, res, next) => {\n server.hot.send({\n type: 'error',\n err: {\n plugin: 'varlock',\n message: 'Your config is currently invalid - check your terminal for more details',\n stack: '',\n },\n });\n return next();\n });\n }\n },\n\n transform(code, id, options) {\n // replace build-time ENV.x references\n let magicString = replacerFn(this, code, id);\n\n // we need to detect if this module is one of our worker entry points\n // when running `vite build`, we could use `this.getModuleInfo(id).isEntry`\n // but that doesnt work in dev, so we try to detect it another way\n const fileExt = id.split('?')[0].split('#')[0].split('.').pop() || '';\n let isEntry = false;\n if (SUPPORTED_FILES.includes(fileExt)) {\n const moduleIds = Array.from(this.getModuleIds());\n if (moduleIds[0] === id) isEntry = true;\n }\n\n // allow integrations to register additional virtual module IDs as entry points\n if (vitePluginOptions?.ssrEntryModuleIds?.includes(id)) isEntry = true;\n\n if (isEntry) {\n debug(`detected entry: ${id}`);\n // using env.command (in config hook) is misleading\n // because some frameworks (react router) boot dev servers during the build process\n // even during the build, there are multiple environments\n // but at least this seems to work for our needs\n let isDevEnv = false;\n\n // ! environments are only supported in vite 6+\n // so we try to make sure it still works in vite 5 too\n if (this.environment) {\n isDevEnv = this.environment.mode === 'dev';\n } else {\n isDevEnv = isDevCommand;\n }\n\n const injectCode = [\n '// INJECTED BY @varlock/vite-integration ----',\n 'globalThis.__varlockThrowOnMissingKeys = true;',\n ];\n\n // on the code intended for the backend we'll inject init logic\n // and code to load our env, or the already resolved env\n // TODO: keep an eye on environments API, as single ssr flag may be phased out\n if (options?.ssr) {\n const ssrInjectMode = vitePluginOptions?.ssrInjectMode ?? 'init-only';\n const isEdgeRuntime = vitePluginOptions?.ssrEdgeRuntime ?? false;\n\n debug('ssrInjectMode =', ssrInjectMode, 'isDev =', isDevEnv);\n if (ssrInjectMode === 'auto-load') {\n injectCode.push(\n \"import 'varlock/auto-load';\",\n );\n } else {\n if (ssrInjectMode === 'resolved-env') {\n injectCode.push(`globalThis.__varlockLoadedEnv = ${JSON.stringify(varlockLoadedEnv)};`);\n }\n\n // inject custom entry code from integrations\n if (vitePluginOptions?.ssrEntryCode?.length) {\n injectCode.push(...vitePluginOptions.ssrEntryCode);\n }\n\n // TODO: we may want to move this to a single module we import\n injectCode.push(\n \"import { initVarlockEnv } from 'varlock/env';\",\n \"import { patchGlobalConsole } from 'varlock/patch-console';\",\n \"import { patchGlobalResponse } from 'varlock/patch-response';\",\n );\n // edge runtimes don't have node:http ServerResponse\n if (!isEdgeRuntime) {\n injectCode.push(\n \"import { patchGlobalServerResponse } from 'varlock/patch-server-response';\",\n );\n }\n injectCode.push(\n 'initVarlockEnv();',\n 'patchGlobalConsole();',\n );\n if (!isEdgeRuntime) {\n injectCode.push('patchGlobalServerResponse();');\n }\n injectCode.push('patchGlobalResponse();');\n }\n\n // this build is for the client\n } else {\n // in dev mode, on the client we'll inject a list of the existing keys, to provide better error messages\n if (isDevEnv) {\n injectCode.push(\n '// NOTE - __varlockValidKeys is only injected during development',\n `globalThis.__varlockValidKeys = ${JSON.stringify(Object.keys(varlockLoadedEnv?.config || {}))};`,\n );\n }\n }\n\n injectCode.push('// -------- ');\n\n magicString ||= new MagicString(code);\n magicString.prepend(`${injectCode.join('\\n')}\\n`);\n }\n\n if (!magicString) return null;\n return {\n code: magicString.toString(),\n map: magicString.generateMap({ source: code, includeContent: true, hires: true }),\n };\n },\n renderChunk(code, chunk) {\n // Not 100% positive this is necessary if we've already replaced in transform\n // but the rollup-plugin-define we used as a reference did it, so we'll keep it\n\n // replace build-time ENV.x references\n const magicString = replacerFn(this, code, chunk.fileName);\n\n if (!magicString) return null;\n return {\n code: magicString.toString(),\n map: magicString.generateMap({ source: code, includeContent: true, hires: true }),\n };\n },\n\n // this enables replacing %ENV.xxx% constants in html entry-point files\n // see https://vite.dev/guide/env-and-mode.html#html-constant-replacement\n transformIndexHtml(html) {\n if (!configIsValid) {\n // TODO: build a nice error page somehow and just use it here\n // we should be showing you specific errors and have links to the right files/lines where possible\n return `\n<html>\n<head>\n <script type=\"module\" src=\"/@vite/client\"></script>\n <title>Invalid config</title>\n</head>\n<body>\n <h2>Your varlock config is currently invalid!</h2>\n <p>Check your terminal for more details</p>\n</body>\n</html>\n `;\n }\n\n //! Note on vite's built-in html constant replacement\n // when using config.define, any import.meta.env.XXX replacements\n // would be automatically added as constant replacements (%XXX%)\n const replacedHtml = html.replace(\n // look for \"%ENV.xxx%\"\n /%ENV\\.([a-zA-Z_][a-zA-Z0-9._]*)%/g,\n (_fullMatch, itemKey) => {\n if (!varlockLoadedEnv.config[itemKey]) {\n throw new Error(`Config item \\`${itemKey}\\` does not exist`);\n } else if (varlockLoadedEnv.config[itemKey].isSensitive) {\n throw new Error(`Config item \\`${itemKey}\\` is sensitive and cannot be used in html replacements`);\n } else {\n // undefined will be turned into empty string in html replacements\n return varlockLoadedEnv.config[itemKey].value ?? '';\n }\n },\n );\n\n return replacedHtml;\n },\n } satisfies Plugin;\n}\n","// Code injected at the top of the SSR entry module so varlock can load its\n// resolved env from Cloudflare bindings at runtime.\n//\n// The `__VARLOCK_ENV` binding (or `__VARLOCK_ENV_CHUNKS` + `__VARLOCK_ENV_<n>`\n// chunks when >5KB) is uploaded by `varlock-wrangler deploy`. The body below\n// reads whichever form is present and stashes the parsed JSON on\n// `globalThis.__varlockLoadedEnv` for `initVarlockEnv()` to pick up.\n//\n// The `cloudflare:workers` load is guarded behind a\n// `navigator.userAgent === 'Cloudflare-Workers'` runtime check and wrapped in\n// a dynamic `await import(...)`. This makes the injection safe for SSR entry\n// modules that may also be evaluated by Node during a framework's postbuild\n// (e.g. SvelteKit prerender/fallback) — Rollup preserves the dynamic import\n// but Node never resolves it. Inside Workers the check passes and the load\n// runs normally. Overhead vs a static import is one `navigator` check + TLA\n// on cold start, which is negligible.\nexport const CLOUDFLARE_SSR_ENTRY_CODE = `\nif (typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers') {\n const { env: __cfEnv } = await import('cloudflare:workers');\n let __varlockEnvJson;\n if (__cfEnv?.__VARLOCK_ENV) {\n __varlockEnvJson = __cfEnv.__VARLOCK_ENV;\n } else if (__cfEnv?.__VARLOCK_ENV_CHUNKS) {\n const n = parseInt(__cfEnv.__VARLOCK_ENV_CHUNKS, 10);\n if (!Number.isFinite(n) || n < 1 || n > 1000) {\n throw new Error(\"[varlock] invalid __VARLOCK_ENV_CHUNKS: \" + __cfEnv.__VARLOCK_ENV_CHUNKS);\n }\n const parts = [];\n for (let i = 0; i < n; i++) {\n const chunk = __cfEnv[\"__VARLOCK_ENV_\" + i];\n if (chunk == null) throw new Error(\"[varlock] missing chunk __VARLOCK_ENV_\" + i);\n parts.push(chunk);\n }\n __varlockEnvJson = parts.join(\"\");\n }\n if (__varlockEnvJson) {\n try {\n globalThis.__varlockLoadedEnv = JSON.parse(__varlockEnvJson);\n } catch (e) {\n throw new Error(\"[varlock] failed to parse __VARLOCK_ENV: \" + e.message);\n }\n }\n}\n`;\n","import { varlockVitePlugin } from '@varlock/vite-integration';\nimport { CLOUDFLARE_SSR_ENTRY_CODE } from './shared-ssr-entry-code';\n\n/**\n * Varlock SvelteKit + Cloudflare Vite plugin.\n *\n * For SvelteKit projects deploying to Cloudflare Workers via\n * `@sveltejs/adapter-cloudflare`. Unlike `varlockCloudflareVitePlugin`, this\n * does NOT include `@cloudflare/vite-plugin` (which doesn't currently support\n * SvelteKit — see https://github.com/cloudflare/workers-sdk/issues/8922).\n *\n * Injects the `cloudflare:workers` runtime env-loader into SvelteKit's SSR\n * entry, which is picked up by adapter-cloudflare's generated `_worker.js`.\n * Non-sensitive vars and the `__VARLOCK_ENV` secret should still be uploaded\n * via `varlock-wrangler deploy`.\n *\n * @example\n * ```ts\n * import { sveltekit } from '@sveltejs/kit/vite';\n * import { varlockSvelteKitCloudflarePlugin } from '@varlock/cloudflare-integration/sveltekit';\n *\n * export default defineConfig({\n * plugins: [\n * varlockSvelteKitCloudflarePlugin(),\n * sveltekit(),\n * ],\n * });\n * ```\n */\n// Return type is `Array<any>` to avoid symlink-induced Vite Plugin type\n// conflicts (see note in ./index.ts).\nexport function varlockSvelteKitCloudflarePlugin(): Array<any> {\n // Mark `cloudflare:workers` as external so Rollup keeps the runtime import\n // our `ssrEntryCode` injects into the SSR bundle. Normally\n // `@cloudflare/vite-plugin` handles this, but we're not using it here.\n const externalizeCloudflareWorkers: import('vite').Plugin = {\n name: 'varlock-sveltekit-cloudflare-external',\n enforce: 'pre',\n config() {\n return {\n build: {\n rollupOptions: {\n external: ['cloudflare:workers'],\n },\n },\n };\n },\n };\n\n return [\n externalizeCloudflareWorkers,\n varlockVitePlugin({\n ssrEdgeRuntime: true,\n ssrEntryCode: [CLOUDFLARE_SSR_ENTRY_CODE],\n }),\n ];\n}\n"]}
1
+ {"version":3,"sources":["../../../../node_modules/.bun/ast-matcher@1.2.0/node_modules/ast-matcher/index.js","../../../../node_modules/.bun/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts","../../../../node_modules/.bun/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/src/strings.ts","../../../../node_modules/.bun/@jridgewell+sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/BitSet.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/Chunk.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/SourceMap.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/utils/guessIndent.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/utils/getRelativePath.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/utils/isObject.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/utils/getLocator.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/utils/Mappings.js","../../../../node_modules/.bun/magic-string@0.30.21/node_modules/magic-string/src/MagicString.js","../../vite/src/transform.ts","../../vite/src/index.ts","../src/shared-ssr-entry-code.ts","../src/sveltekit.ts"],"names":["exports","astMatcher","n","segment","replacement"],"mappings":"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","file":"sveltekit.js","sourcesContent":["'use strict';\nconst STOP = false;\nconst SKIP_BRANCH = 1;\n\n// ignore position info, and raw\nconst IGNORED_KEYS = ['start', 'end', 'loc', 'location', 'locations', 'line', 'column', 'range', 'ranges', 'raw', 'extra'];\n\nlet _parser = function() {\n throw new Error('No parser set, you need to set parser before use astMatcher. For instance, astMatcher.setParser(esprima.parse)');\n};\n\nfunction setParser(p) {\n if (typeof p !== 'function') {\n throw new Error(\"Input parser must be a function that takes JavaScript contents as input, produce a estree compliant syntax tree object.\")\n }\n\n _parser = function(contents) {\n let node = p(contents);\n // To be friendly to @babel/parser\n if (node.type === 'File' && node.program) {\n node = node.program;\n }\n return node;\n };\n}\n\n// From an esprima example for traversing its ast.\n// modified to support branch skip.\nfunction traverse(object, visitor) {\n let child;\n if (!object) return;\n\n let r = visitor.call(null, object);\n if (r === STOP) return STOP; // stop whole traverse immediately\n if (r === SKIP_BRANCH) return; // skip going into AST branch\n\n for (let i = 0, keys = Object.keys(object); i < keys.length; i++) {\n let key = keys[i];\n if (IGNORED_KEYS.indexOf(key) !== -1) continue;\n\n child = object[key];\n if (typeof child === 'object' && child !== null) {\n if (traverse(child, visitor) === STOP) {\n return STOP;\n }\n }\n }\n}\n\nconst ANY = 1;\nconst ANL = 2;\nconst STR = 3;\nconst ARR = 4;\n\nfunction matchTerm(pattern) {\n let possible;\n if (pattern.type === 'Identifier') {\n possible = pattern.name.toString();\n } else if (pattern.type === 'ExpressionStatement' &&\n pattern.expression.type === 'Identifier') {\n possible = pattern.expression.name.toString();\n } else if ((pattern.type === 'FieldDefinition' || pattern.type === 'ClassProperty') &&\n pattern.key.type === 'Identifier') {\n possible = pattern.key.name.toString();\n }\n\n if (!possible || !possible.startsWith('__')) return;\n\n let type;\n if (possible === '__any' || possible.startsWith('__any_')) {\n type = ANY;\n } else if (possible === '__anl' || possible.startsWith('__anl_')) {\n type = ANL;\n } else if (possible === '__str' || possible.startsWith('__str_')) {\n type = STR;\n } else if (possible === '__arr' || possible.startsWith('__arr_')) {\n type = ARR;\n }\n\n if (type) return {type: type, name: possible.slice(6)};\n}\n\n/**\n * Extract info from a partial estree syntax tree, see astMatcher for pattern format\n * @param pattern The pattern used on matching\n * @param part The target partial syntax tree\n * @return Returns named matches, or false.\n */\nfunction extract(pattern, part) {\n if (!pattern) throw new Error('missing pattern');\n // no match\n if (!part) return STOP;\n\n let term = matchTerm(pattern);\n if (term) {\n // if single __any\n if (term.type === ANY) {\n if (term.name) {\n // if __any_foo\n // get result {foo: astNode}\n let r = {};\n r[term.name] = part;\n return r;\n }\n // always match\n return {};\n\n // if single __str_foo\n } else if (term.type === STR) {\n if (part.type === 'Literal' || part.type === 'StringLiteral') {\n if (term.name) {\n // get result {foo: value}\n let r = {};\n r[term.name] = part.value;\n return r;\n }\n // always match\n return {};\n }\n // no match\n return STOP;\n }\n }\n\n\n if (Array.isArray(pattern)) {\n // no match\n if (!Array.isArray(part)) return STOP;\n\n if (pattern.length === 1) {\n let arrTerm = matchTerm(pattern[0]);\n if (arrTerm) {\n // if single __arr_foo\n if (arrTerm.type === ARR) {\n // find all or partial Literals in an array\n let arr = part.filter(function(it) { return it.type === 'Literal' || it.type === 'StringLiteral'; })\n .map(function(it) { return it.value; });\n if (arr.length) {\n if (arrTerm.name) {\n // get result {foo: array}\n let r = {};\n r[arrTerm.name] = arr;\n return r;\n }\n // always match\n return {};\n }\n // no match\n return STOP;\n } else if (arrTerm.type === ANL) {\n if (arrTerm.name) {\n // get result {foo: nodes array}\n let r = {};\n r[arrTerm.name] = part;\n return r;\n }\n\n // always match\n return {};\n }\n }\n }\n\n if (pattern.length !== part.length) {\n // no match\n return STOP;\n }\n }\n\n let allResult = {};\n\n for (let i = 0, keys = Object.keys(pattern); i < keys.length; i++) {\n let key = keys[i];\n if (IGNORED_KEYS.indexOf(key) !== -1) continue;\n\n let nextPattern = pattern[key];\n let nextPart = part[key];\n\n if (!nextPattern || typeof nextPattern !== 'object') {\n // primitive value. string or null\n if (nextPattern === nextPart) continue;\n\n // no match\n return STOP;\n }\n\n const result = extract(nextPattern, nextPart);\n // no match\n if (result === STOP) return STOP;\n if (result) Object.assign(allResult, result);\n }\n\n return allResult;\n}\n\n/**\n * Compile a pattern into estree syntax tree\n * @param pattern The pattern used on matching, can be a string or estree node\n * @return Returns an estree node to be used as pattern in extract(pattern, part)\n */\nfunction compilePattern(pattern) {\n let exp = ensureParsed(pattern);\n\n if (exp.type !== 'Program' || !exp.body) {\n throw new Error(`Not a valid expression: \"${pattern}\".`);\n }\n\n if (exp.body.length === 0) {\n throw new Error(`There is no statement in pattern \"${pattern}\".`);\n }\n\n if (exp.body.length > 1) {\n throw new Error(`Multiple statements is not supported \"${pattern}\".`);\n }\n\n exp = exp.body[0];\n // get the real expression underneath\n if (exp.type === 'ExpressionStatement') exp = exp.expression;\n return exp;\n}\n\nfunction ensureParsed(codeOrNode) {\n // bypass parsed node\n if (codeOrNode && codeOrNode.type) {\n // To be friendly to @babel/parser\n if (codeOrNode.type === 'File' && codeOrNode.program) {\n return codeOrNode.program;\n }\n return codeOrNode;\n }\n return _parser(codeOrNode);\n}\n\n/**\n * Pattern matching using AST on JavaScript source code\n * @param pattern The pattern to be matched\n * @return Returns a function that takes source code string (or estree syntax tree) as input, produces matched result or undefined.\n *\n * __any matches any single node, but no extract\n * __anl matches array of nodes, but no extract\n * __str matches string literal, but no extract\n * __arr matches array of partial string literals, but no extract\n * __any_aName matches single node, return {aName: node}\n * __anl_aName matches array of nodes, return {aName: array_of_nodes}\n * __str_aName matches string literal, return {aName: value}\n * __arr_aName matches array, extract string literals, return {aName: [values]}\n *\n * note: __arr_aName can match partial array\n * [foo, \"foo\", lorem, \"bar\", lorem] => [\"foo\", \"bar\"]\n *\n * note: __anl, and __arr_*\n * use method(__anl) or method(__arr_a) to match method(a, \"b\");\n * use method([__anl]) or method([__arr_a]) to match method([a, \"b\"]);\n *\n * Usage:\n * let m = astMatcher('__any.method(__str_foo, [__arr_opts])');\n * m('au.method(\"a\", [\"b\", \"c\"]); jq.method(\"d\", [\"e\"])');\n *\n * => [\n * {match: {foo: \"a\", opts: [\"b\", \"c\"]}, node: <CallExpression node> }\n * {match: {foo: \"d\", opts: [\"e\"]}, node: <CallExpression node> }\n * ]\n */\nfunction astMatcher(pattern) {\n let pat = compilePattern(pattern);\n\n return function(jsStr) {\n let node = ensureParsed(jsStr);\n let matches = [];\n\n traverse(node, function (n) {\n let m = extract(pat, n);\n if (m) {\n matches.push({\n match: m,\n node: n // this is the full matching node\n });\n // found a match, don't go deeper on this tree branch\n // return SKIP_BRANCH;\n // don't skip branch in order to catch both .m1() ad .m2()\n // astMater('__any.__any_m()')('a.m1().m2()')\n }\n });\n\n return matches.length ? matches : undefined;\n };\n}\n\n/**\n * Dependency analysis for dummies, this is a high level api to simplify the usage of astMatcher\n * @param arguments Multiple patterns to match, instead of using __str_/__arr_,\n * use __dep and __deps to match string and partial string array.\n * @return Returns a function that takes source code string (or estree syntax tree) as input, produces an array of string matched, or empty array.\n *\n * Usage:\n * let f = depFinder('a(__dep)', '__any.globalResources([__deps])');\n * f('a(\"a\"); a(\"b\"); config.globalResources([\"./c\", \"./d\"])');\n *\n * => ['a', 'b', './c', './d']\n */\nfunction depFinder() {\n if (arguments.length === 0) {\n throw new Error('No patterns provided.');\n }\n\n let seed = 0;\n\n let patterns = Array.prototype.map.call(arguments, function (p) {\n // replace __dep and __deps into\n // __str_1, __str_2, __arr_3\n\n // wantArr is the result of (s?)\n return compilePattern(p.replace(/__dep(s?)/g, function (m, wantArr) {\n return (wantArr ? '__arr_' : '__str_') + (++seed);\n }))\n });\n\n let len = patterns.length;\n\n return function(jsStr) {\n let node = ensureParsed(jsStr);\n\n let deps = [];\n\n // directly use extract() instead of astMatcher()\n // for efficiency\n traverse(node, function (n) {\n for (let i = 0; i < len; i += 1) {\n let result = extract(patterns[i], n);\n if (result) {\n // result is like {\"1\": \"dep1\", \"2\": [\"dep2\", \"dep3\"]}\n // we only want values\n Object.keys(result).forEach(function (k) {\n let d = result[k];\n if (typeof d === 'string') deps.push(d);\n else deps.push.apply(deps, d);\n });\n\n // found a match, don't try other pattern\n break;\n }\n }\n });\n\n return deps;\n };\n}\n\nmodule.exports = astMatcher;\nmodule.exports.setParser = setParser;\nmodule.exports.ensureParsed = ensureParsed;\nmodule.exports.extract = extract;\nmodule.exports.compilePattern = compilePattern;\nmodule.exports.depFinder = depFinder;\nmodule.exports.STOP = STOP;\nmodule.exports.SKIP_BRANCH = SKIP_BRANCH;\nmodule.exports.traverse = traverse;\n","import type { StringReader, StringWriter } from './strings';\n\nexport const comma = ','.charCodeAt(0);\nexport const semicolon = ';'.charCodeAt(0);\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst intToChar = new Uint8Array(64); // 64 possible chars.\nconst charToInt = new Uint8Array(128); // z is 122 in ASCII\n\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\n\nexport function decodeInteger(reader: StringReader, relative: number): number {\n let value = 0;\n let shift = 0;\n let integer = 0;\n\n do {\n const c = reader.next();\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n\n const shouldNegate = value & 1;\n value >>>= 1;\n\n if (shouldNegate) {\n value = -0x80000000 | -value;\n }\n\n return relative + value;\n}\n\nexport function encodeInteger(builder: StringWriter, num: number, relative: number): number {\n let delta = num - relative;\n\n delta = delta < 0 ? (-delta << 1) | 1 : delta << 1;\n do {\n let clamped = delta & 0b011111;\n delta >>>= 5;\n if (delta > 0) clamped |= 0b100000;\n builder.write(intToChar[clamped]);\n } while (delta > 0);\n\n return num;\n}\n\nexport function hasMoreVlq(reader: StringReader, max: number) {\n if (reader.pos >= max) return false;\n return reader.peek() !== comma;\n}\n","const bufLength = 1024 * 16;\n\n// Provide a fallback for older environments.\nconst td =\n typeof TextDecoder !== 'undefined'\n ? /* #__PURE__ */ new TextDecoder()\n : typeof Buffer !== 'undefined'\n ? {\n decode(buf: Uint8Array): string {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n },\n }\n : {\n decode(buf: Uint8Array): string {\n let out = '';\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n },\n };\n\nexport class StringWriter {\n pos = 0;\n private out = '';\n private buffer = new Uint8Array(bufLength);\n\n write(v: number): void {\n const { buffer } = this;\n buffer[this.pos++] = v;\n if (this.pos === bufLength) {\n this.out += td.decode(buffer);\n this.pos = 0;\n }\n }\n\n flush(): string {\n const { buffer, out, pos } = this;\n return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;\n }\n}\n\nexport class StringReader {\n pos = 0;\n declare private buffer: string;\n\n constructor(buffer: string) {\n this.buffer = buffer;\n }\n\n next(): number {\n return this.buffer.charCodeAt(this.pos++);\n }\n\n peek(): number {\n return this.buffer.charCodeAt(this.pos);\n }\n\n indexOf(char: string): number {\n const { buffer, pos } = this;\n const idx = buffer.indexOf(char, pos);\n return idx === -1 ? buffer.length : idx;\n }\n}\n","import { comma, decodeInteger, encodeInteger, hasMoreVlq, semicolon } from './vlq';\nimport { StringWriter, StringReader } from './strings';\n\nexport {\n decodeOriginalScopes,\n encodeOriginalScopes,\n decodeGeneratedRanges,\n encodeGeneratedRanges,\n} from './scopes';\nexport type { OriginalScope, GeneratedRange, CallSite, BindingExpressionRange } from './scopes';\n\nexport type SourceMapSegment =\n | [number]\n | [number, number, number, number]\n | [number, number, number, number, number];\nexport type SourceMapLine = SourceMapSegment[];\nexport type SourceMapMappings = SourceMapLine[];\n\nexport function decode(mappings: string): SourceMapMappings {\n const { length } = mappings;\n const reader = new StringReader(mappings);\n const decoded: SourceMapMappings = [];\n let genColumn = 0;\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n\n do {\n const semi = reader.indexOf(';');\n const line: SourceMapLine = [];\n let sorted = true;\n let lastCol = 0;\n genColumn = 0;\n\n while (reader.pos < semi) {\n let seg: SourceMapSegment;\n\n genColumn = decodeInteger(reader, genColumn);\n if (genColumn < lastCol) sorted = false;\n lastCol = genColumn;\n\n if (hasMoreVlq(reader, semi)) {\n sourcesIndex = decodeInteger(reader, sourcesIndex);\n sourceLine = decodeInteger(reader, sourceLine);\n sourceColumn = decodeInteger(reader, sourceColumn);\n\n if (hasMoreVlq(reader, semi)) {\n namesIndex = decodeInteger(reader, namesIndex);\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];\n } else {\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];\n }\n } else {\n seg = [genColumn];\n }\n\n line.push(seg);\n reader.pos++;\n }\n\n if (!sorted) sort(line);\n decoded.push(line);\n reader.pos = semi + 1;\n } while (reader.pos <= length);\n\n return decoded;\n}\n\nfunction sort(line: SourceMapSegment[]) {\n line.sort(sortComparator);\n}\n\nfunction sortComparator(a: SourceMapSegment, b: SourceMapSegment): number {\n return a[0] - b[0];\n}\n\nexport function encode(decoded: SourceMapMappings): string;\nexport function encode(decoded: Readonly<SourceMapMappings>): string;\nexport function encode(decoded: Readonly<SourceMapMappings>): string {\n const writer = new StringWriter();\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) writer.write(semicolon);\n if (line.length === 0) continue;\n\n let genColumn = 0;\n\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n if (j > 0) writer.write(comma);\n\n genColumn = encodeInteger(writer, segment[0], genColumn);\n\n if (segment.length === 1) continue;\n sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);\n sourceLine = encodeInteger(writer, segment[2], sourceLine);\n sourceColumn = encodeInteger(writer, segment[3], sourceColumn);\n\n if (segment.length === 4) continue;\n namesIndex = encodeInteger(writer, segment[4], namesIndex);\n }\n }\n\n return writer.flush();\n}\n","export default class BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n","export default class Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\tif (DEBUG) {\n\t\t\t// we make these non-enumerable, for sanity while debugging\n\t\t\tObject.defineProperties(this, {\n\t\t\t\tprevious: { writable: true, value: null },\n\t\t\t\tnext: { writable: true, value: null },\n\t\t\t});\n\t\t} else {\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\n\tappendLeft(content) {\n\t\tthis.outro += content;\n\t}\n\n\tappendRight(content) {\n\t\tthis.intro = this.intro + content;\n\t}\n\n\tclone() {\n\t\tconst chunk = new Chunk(this.start, this.end, this.original);\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t}\n\n\tcontains(index) {\n\t\treturn this.start < index && index < this.end;\n\t}\n\n\teachNext(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.next;\n\t\t}\n\t}\n\n\teachPrevious(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t}\n\n\tedit(content, storeName, contentOnly) {\n\t\tthis.content = content;\n\t\tif (!contentOnly) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t}\n\n\tprependLeft(content) {\n\t\tthis.outro = content + this.outro;\n\t}\n\n\tprependRight(content) {\n\t\tthis.intro = content + this.intro;\n\t}\n\n\treset() {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t\tif (this.edited) {\n\t\t\tthis.content = this.original;\n\t\t\tthis.storeName = false;\n\t\t\tthis.edited = false;\n\t\t}\n\t}\n\n\tsplit(index) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice(0, sliceIndex);\n\t\tconst originalAfter = this.original.slice(sliceIndex);\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk(index, this.end, originalAfter);\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif (this.edited) {\n\t\t\t// after split we should save the edit content record into the correct chunk\n\t\t\t// to make sure sourcemap correct\n\t\t\t// For example:\n\t\t\t// ' test'.trim()\n\t\t\t// split -> ' ' + 'test'\n\t\t\t// ✔️ edit -> '' + 'test'\n\t\t\t// ✖️ edit -> 'test' + ''\n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit('', false);\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif (newChunk.next) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t}\n\n\ttoString() {\n\t\treturn this.intro + this.content + this.outro;\n\t}\n\n\ttrimEnd(rx) {\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tthis.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tif (this.intro.length) return true;\n\t\t}\n\t}\n\n\ttrimStart(rx) {\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tconst newChunk = this.split(this.end - trimmed.length);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tnewChunk.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.outro = this.outro.replace(rx, '');\n\t\t\tif (this.outro.length) return true;\n\t\t}\n\t}\n}\n","import { encode } from '@jridgewell/sourcemap-codec';\n\nfunction getBtoa() {\n\tif (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') {\n\t\treturn (str) => globalThis.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nexport default class SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t\tif (typeof properties.debugId !== 'undefined') {\n\t\t\tthis.debugId = properties.debugId;\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this);\n\t}\n\n\ttoUrl() {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t}\n}\n","export default function guessIndent(code) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter((line) => /^\\t+/.test(line));\n\tconst spaced = lines.filter((line) => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n","export default function getRelativePath(from, to) {\n\tconst fromParts = from.split(/[/\\\\]/);\n\tconst toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tlet i = fromParts.length;\n\t\twhile (i--) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n","const toString = Object.prototype.toString;\n\nexport default function isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n","export default function getLocator(source) {\n\tconst originalLines = source.split('\\n');\n\tconst lineOffsets = [];\n\n\tfor (let i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n","const wordRegex = /\\w/;\n\nexport default class Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tconst contentLengthMinusOne = content.length - 1;\n\t\t\tlet contentLineEnd = content.indexOf('\\n', 0);\n\t\t\tlet previousContentLineEnd = -1;\n\t\t\t// Loop through each line in the content and add a segment, but stop if the last line is empty,\n\t\t\t// else code afterwards would fill one line too many\n\t\t\twhile (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\t\tif (nameIndex >= 0) {\n\t\t\t\t\tsegment.push(nameIndex);\n\t\t\t\t}\n\t\t\t\tthis.rawSegments.push(segment);\n\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\n\t\t\t\tpreviousContentLineEnd = contentLineEnd;\n\t\t\t\tcontentLineEnd = content.indexOf('\\n', contentLineEnd + 1);\n\t\t\t}\n\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\n\t\t\tthis.advance(content.slice(previousContentLineEnd + 1));\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t\tthis.advance(content);\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\t\t// when iterating each char, check if it's in a word boundary\n\t\tlet charInHiresBoundary = false;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t\tcharInHiresBoundary = false;\n\t\t\t} else {\n\t\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n\t\t\t\t\tif (this.hires === 'boundary') {\n\t\t\t\t\t\t// in hires \"boundary\", group segments per word boundary than per char\n\t\t\t\t\t\tif (wordRegex.test(original[originalCharIndex])) {\n\t\t\t\t\t\t\t// for first char in the boundary found, start the boundary by pushing a segment\n\t\t\t\t\t\t\tif (!charInHiresBoundary) {\n\t\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\t\tcharInHiresBoundary = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// for non-word char, end the boundary by pushing a segment\n\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\tcharInHiresBoundary = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(str) {\n\t\tif (!str) return;\n\n\t\tconst lines = str.split('\\n');\n\n\t\tif (lines.length > 1) {\n\t\t\tfor (let i = 0; i < lines.length - 1; i++) {\n\t\t\t\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n","import BitSet from './BitSet.js';\nimport Chunk from './Chunk.js';\nimport SourceMap from './SourceMap.js';\nimport guessIndent from './utils/guessIndent.js';\nimport getRelativePath from './utils/getRelativePath.js';\nimport isObject from './utils/isObject.js';\nimport getLocator from './utils/getLocator.js';\nimport Mappings from './utils/Mappings.js';\nimport Stats from './utils/Stats.js';\n\nconst n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nexport default class MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t\toffset: { writable: true, value: options.offset || 0 },\n\t\t});\n\n\t\tif (DEBUG) {\n\t\t\tObject.defineProperty(this, 'stats', { value: new Stats() });\n\t\t}\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\n\t}\n\n\tappend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t}\n\n\tappendLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('appendLeft');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendLeft(content);\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('appendLeft');\n\t\treturn this;\n\t}\n\n\tappendRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('appendRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendRight(content);\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('appendRight');\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst cloned = new MagicString(this.original, { filename: this.filename, offset: this.offset });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\t\twhile (originalChunk) {\n\t\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif (nextClonedChunk) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif (this.indentExclusionRanges) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(options) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys(this.storedNames);\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tconst locate = getLocator(this.original);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.firstChunk.eachNext((chunk) => {\n\t\t\tconst loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tmappings.addEdit(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t});\n\n\t\tif (this.outro) {\n\t\t\tmappings.advance(this.outro);\n\t\t}\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [\n\t\t\t\toptions.source ? getRelativePath(options.file || '', options.source) : options.file || '',\n\t\t\t],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t}\n\n\tindent(indentStr, options) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif (isObject(indentStr)) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif (options.exclude) {\n\t\t\tconst exclusions =\n\t\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\t\texclusions.forEach((exclusion) => {\n\t\t\t\tfor (let i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = (match) => {\n\t\t\tif (shouldIndentNextCharacter) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace(pattern, replacer);\n\n\t\tlet charIndex = 0;\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile (chunk) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile (charIndex < end) {\n\t\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\t\tconst char = this.original[charIndex];\n\n\t\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace(pattern, replacer);\n\n\t\treturn this;\n\t}\n\n\tinsert() {\n\t\tthrow new Error(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)',\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead',\n\t\t\t);\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft(index, content);\n\t}\n\n\tinsertRight(index, content) {\n\t\tif (!warned.insertRight) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead',\n\t\t\t);\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight(index, content);\n\t}\n\n\tmove(start, end, index) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\t\tindex = index + this.offset;\n\n\t\tif (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');\n\n\t\tif (DEBUG) this.stats.time('move');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\t\tthis._split(index);\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[index];\n\t\tif (!newRight && last === this.lastChunk) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif (oldLeft) oldLeft.next = oldRight;\n\t\tif (oldRight) oldRight.previous = oldLeft;\n\n\t\tif (newLeft) newLeft.next = first;\n\t\tif (newRight) newRight.previous = last;\n\n\t\tif (!first.previous) this.firstChunk = last.next;\n\t\tif (!last.next) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif (!newLeft) this.firstChunk = first;\n\t\tif (!newRight) this.lastChunk = last;\n\n\t\tif (DEBUG) this.stats.timeEnd('move');\n\t\treturn this;\n\t}\n\n\toverwrite(start, end, content, options) {\n\t\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(start, end, content, options) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('replacement content must be a string');\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (end > this.original.length) throw new Error('end is out of bounds');\n\t\tif (start === end)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead',\n\t\t\t);\n\n\t\tif (DEBUG) this.stats.time('overwrite');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tif (options === true) {\n\t\t\tif (!warned.storeName) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string',\n\t\t\t\t);\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tif (first) {\n\t\t\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('overwrite');\n\t\treturn this;\n\t}\n\n\tprepend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t}\n\n\tprependLeft(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('insertRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependLeft(content);\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('insertRight');\n\t\treturn this;\n\t}\n\n\tprependRight(index, content) {\n\t\tindex = index + this.offset;\n\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tif (DEBUG) this.stats.time('insertRight');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependRight(content);\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('insertRight');\n\t\treturn this;\n\t}\n\n\tremove(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tif (DEBUG) this.stats.time('remove');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit('');\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('remove');\n\t\treturn this;\n\t}\n\n\treset(start, end) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tif (DEBUG) this.stats.time('reset');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.reset();\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\n\t\tif (DEBUG) this.stats.timeEnd('reset');\n\t\treturn this;\n\t}\n\n\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\n\t}\n\n\tslice(start = 0, end = this.original.length - this.offset) {\n\t\tstart = start + this.offset;\n\t\tend = end + this.offset;\n\n\t\tif (this.original.length !== 0) {\n\t\t\twhile (start < 0) start += this.original.length;\n\t\t\twhile (end < 0) end += this.original.length;\n\t\t}\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t\t// found end chunk before start\n\t\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t\tthrow new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile (chunk) {\n\t\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t\tthrow new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif (containsEnd) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// TODO deprecate this? not really very useful\n\tsnip(start, end) {\n\t\tconst clone = this.clone();\n\t\tclone.remove(0, start);\n\t\tclone.remove(end, clone.original.length);\n\n\t\treturn clone;\n\t}\n\n\t_split(index) {\n\t\tif (this.byStart[index] || this.byEnd[index]) return;\n\n\t\tif (DEBUG) this.stats.time('_split');\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tlet previousChunk = chunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\n\t\t\t// Prevent infinite loop (e.g. via empty chunks, where start === end)\n\t\t\tif (chunk === previousChunk) return;\n\n\t\t\tpreviousChunk = chunk;\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator(this.original)(index);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`,\n\t\t\t);\n\t\t}\n\n\t\tconst newChunk = chunk.split(index);\n\n\t\tthis.byEnd[index] = chunk;\n\t\tthis.byStart[index] = newChunk;\n\t\tthis.byEnd[newChunk.end] = newChunk;\n\n\t\tif (chunk === this.lastChunk) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\tif (DEBUG) this.stats.timeEnd('_split');\n\t\treturn true;\n\t}\n\n\ttoString() {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t}\n\n\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimEndAborted(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd(rx);\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif (chunk.end !== end) {\n\t\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart(rx);\n\n\t\t\tif (chunk.end !== end) {\n\t\t\t\t// special case...\n\t\t\t\tif (chunk === this.lastChunk) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null) {\n\t\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null) {\n\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\tthis.overwrite(match.index, match.index + match[0].length, replacement);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\treplacement = replacement(string, index, original);\n\t\t\t}\n\t\t\tif (string !== replacement) {\n\t\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tconst previous = original.slice(index, index + stringLength);\n\t\t\tlet _replacement = replacement;\n\t\t\tif (typeof replacement === 'function') {\n\t\t\t\t_replacement = replacement(previous, index, original);\n\t\t\t}\n\t\t\tif (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument',\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n","/*\n Used https://www.npmjs.com/package/rollup-plugin-define as a starting point\n Initially we were using @rollup/plugin-replace, but it would replace text in strings\n\n This instead replaces nodes in a parsed AST rather than text in a string.\n But we've simplified things slightly and removed some dependencies.\n*/\nimport type { PluginContext, TransformPluginContext } from 'rollup';\n\nimport MagicString from 'magic-string';\nimport astMatcher from 'ast-matcher';\n\ntype Edit = [number, number];\ntype AstNode = { start: number; end: number };\n\nfunction escapeStringRegexp(string: string) {\n if (typeof string !== 'string') throw new TypeError('Expected a string');\n\n // see https://github.com/sindresorhus/escape-string-regexp\n return string\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n .replace(/-/g, '\\\\x2d');\n}\n\n\nfunction markEdited(node: AstNode, edits: Array<Edit>): number | false {\n for (const [start, end] of edits) {\n if ((start <= node.start && node.start < end) || (start < node.end && node.end <= end)) {\n return false; // Already edited\n }\n }\n\n // Not edited\n return edits.push([node.start, node.end]);\n}\n\nexport const SUPPORTED_FILES = ['js', 'ts', 'mjs', 'mts', 'cjs', 'cts', 'jsx', 'tsx', 'vue', 'svelte'];\n\ntype MatchersArray = Array<{ matcher: ReturnType<typeof astMatcher>, replacement: string }>;\n\nexport function createReplacerTransformFn(opts: {\n replacements: Record<string, string>,\n}) {\n const keys = Object.keys(opts.replacements);\n let matchers: MatchersArray;\n const extraMatchersForFileType: Record<string, MatchersArray> = {};\n\n const findAnyReplacementRegex = new RegExp(`(?:${keys.map(escapeStringRegexp).join('|')})`, 'g');\n\n return function transform(\n rollupPluginCtx: {\n parse: TransformPluginContext['parse'];\n warn: TransformPluginContext['warn']\n },\n code: string,\n id: string,\n ) {\n if (keys.length === 0) return null;\n\n const fileExt = id.split('?')[0].split('#')[0].split('.').pop() || '';\n if (!SUPPORTED_FILES.includes(fileExt)) return null;\n\n if (code.search(findAnyReplacementRegex) === -1) return null;\n\n const parse = (codeToParse: string, source = code): ReturnType<PluginContext['parse']> => {\n try {\n return rollupPluginCtx.parse(codeToParse, undefined);\n } catch (error) {\n (error as Error).message += ` in ${source}`;\n throw error;\n }\n };\n\n const ast = parse(code, id);\n\n matchers ||= keys.map((key) => ({\n matcher: astMatcher(parse(key)),\n replacement: opts.replacements[key],\n }));\n\n if (fileExt === 'vue') {\n // in vue script+setup files, ENV.X in template blocks gets replaced with `$setup.ENV.X`\n extraMatchersForFileType.vue ||= keys.map((key) => ({\n matcher: astMatcher(parse(`$setup.${key}`)),\n replacement: opts.replacements[key],\n }));\n }\n\n const magicString = new MagicString(code);\n const edits: Array<Edit> = [];\n\n Object.values([...matchers, ...extraMatchersForFileType[fileExt] || []]).forEach(({ matcher, replacement }) => {\n for (const { node } of (matcher(ast) || []) as Array<{ node: AstNode }>) {\n if (markEdited(node, edits)) {\n magicString.overwrite(\n node.start,\n node.end,\n replacement,\n );\n }\n }\n });\n\n if (edits.length === 0) return null;\n\n // return the MagicString so the plugin can make further modifications\n return magicString;\n };\n}\n","/* eslint-disable no-console */\n\nimport path from 'node:path';\nimport type { Plugin } from 'vite';\nimport MagicString from 'magic-string';\n\nimport { initVarlockEnv } from 'varlock/env';\nimport { patchGlobalConsole } from 'varlock/patch-console';\nimport { patchGlobalServerResponse } from 'varlock/patch-server-response';\nimport { patchGlobalResponse } from 'varlock/patch-response';\nimport { createDebug, type SerializedEnvGraph } from 'varlock';\nimport { execSyncVarlock, VarlockExecError } from 'varlock/exec-sync-varlock';\n\nimport { createReplacerTransformFn, SUPPORTED_FILES } from './transform';\n\n\n// enables throwing when user accesses a bad key on ENV\n(globalThis as any).__varlockThrowOnMissingKeys = true;\n\n// snapshot process.env before varlock modifies it via initVarlockEnv()\nconst originalProcessEnv = { ...process.env };\n\nconst debug = createDebug('varlock:vite-integration');\n\nlet isFirstLoad = !(process as any).__VARLOCK_ENV;\n\ndebug('varlock vite plugin loaded. first load = ', isFirstLoad);\n\nlet isDevCommand: boolean;\nlet configIsValid = true;\nexport let varlockLoadedEnv: SerializedEnvGraph;\nlet staticReplacements: Record<string, any> = {};\nlet replacerFn: ReturnType<typeof createReplacerTransformFn>;\n\n\nfunction resetStaticReplacements() {\n staticReplacements = {};\n for (const itemKey in varlockLoadedEnv?.config) {\n const itemInfo = varlockLoadedEnv.config[itemKey];\n // TODO: probably reimplement static/dynamic controls here too\n if (!itemInfo.isSensitive) {\n // we have to pass in a string of 'undefined' so it gets replaced properly\n const val = itemInfo.value === undefined ? 'undefined' : JSON.stringify(itemInfo.value);\n staticReplacements[`ENV.${itemKey}`] = val;\n }\n }\n\n debug('static replacements', staticReplacements);\n\n replacerFn = createReplacerTransformFn({\n replacements: staticReplacements,\n });\n}\n\n\nlet loadCount = 0;\nfunction reloadConfig(cwd?: string) {\n debug('loading config - count =', ++loadCount, cwd ? `(cwd: ${cwd})` : '');\n try {\n const { stdout } = execSyncVarlock('load --format json-full --compact', {\n fullResult: true,\n env: originalProcessEnv,\n ...(cwd && { cwd }),\n });\n process.env.__VARLOCK_ENV = stdout;\n varlockLoadedEnv = JSON.parse(stdout) as SerializedEnvGraph;\n configIsValid = true;\n } catch (err) {\n // CLI exits non-zero on validation failure but still outputs JSON to stdout.\n // Try to parse it so we have sources (for file watching) and error details.\n if (err instanceof VarlockExecError) {\n if (err.stdout) {\n try {\n varlockLoadedEnv = JSON.parse(err.stdout) as SerializedEnvGraph;\n } catch { /* not parseable — hard failure */ }\n }\n if (err.stderr) console.error(err.stderr);\n }\n configIsValid = false;\n resetStaticReplacements();\n return;\n }\n\n // initialize varlock and patch globals as necessary\n initVarlockEnv();\n // these will be no-ops if these are disabled by settings\n patchGlobalConsole();\n patchGlobalServerResponse();\n patchGlobalResponse();\n\n resetStaticReplacements();\n}\n\n// we run this right away so the globals get injected into the vite.config file\nreloadConfig();\n\n\nexport interface VarlockVitePluginOptions {\n /** controls if/how varlock init code is injected into the built SSR application code */\n ssrInjectMode?: 'auto-load' | 'init-only' | 'resolved-env',\n /** extra code lines to inject at the SSR entry point, before varlock init calls */\n ssrEntryCode?: Array<string>,\n /** set to true for edge runtimes that don't have node:http (skips patchGlobalServerResponse) */\n ssrEdgeRuntime?: boolean,\n /** additional virtual module IDs to treat as entry points (e.g., '\\0virtual:cloudflare/worker-entry') */\n ssrEntryModuleIds?: Array<string>,\n}\n\n// Return type is `any` instead of `Plugin` to avoid symlink type conflicts.\n// When this package is symlinked for local dev, TypeScript resolves `vite`'s\n// Plugin type from this package's node_modules — a different copy than the\n// consumer's — causing spurious type errors. Since Vite's `plugins` config\n// is loosely typed, this is functionally equivalent.\nexport function varlockVitePlugin(\n vitePluginOptions?: VarlockVitePluginOptions,\n): any {\n return {\n name: 'inject-varlock-config',\n enforce: 'post',\n\n // hook to modify config before it is resolved\n async config(config, env) {\n debug('vite plugin - config fn called');\n\n // warn if the user has set envDir - varlock ignores this option\n // and instead reads env files from cwd (or the path configured in package.json)\n if (config.envDir) {\n console.warn(`\n[varlock] ⚠️ The \\`envDir\\` Vite option is not supported by varlock.\nTo load .env files from a custom directory, set \\`varlock.loadPath\\` in your \\`package.json\\`:\n\n {\n \"varlock\": {\n \"loadPath\": \"./your-env-dir/\"\n }\n }\n\nSee https://varlock.dev/integrations/vite/ for more details.\n`);\n }\n\n isDevCommand = env.command === 'serve';\n\n // Determine the project root for the current Vite/Vitest project.\n // In monorepo setups with Vitest workspace projects, config.root\n // points to the child package directory rather than the monorepo root\n // where process.cwd() points. We need to reload varlock from the\n // correct directory so it can find .env.schema and .env files.\n const projectRoot = config.root ? path.resolve(config.root) : undefined;\n const rootDiffersFromCwd = !!(projectRoot && path.relative(projectRoot, process.cwd()) !== '');\n\n if (rootDiffersFromCwd) {\n // Always reload with the correct project root when it differs from\n // cwd. This handles monorepo Vitest workspace setups where each child\n // project has its own env files — even if the monorepo root also has\n // env files (which would cause the initial module-level load to\n // succeed with the wrong project's config).\n reloadConfig(projectRoot);\n } else if (isFirstLoad) {\n isFirstLoad = false;\n // Roots match — the module-level reloadConfig() already loaded from\n // the correct directory, no need to reload.\n } else if (isDevCommand) {\n // Dev mode re-trigger (e.g., after .env file updates)\n // TODO: be smarter about only reloading if the env files changed?\n reloadConfig();\n }\n\n // we do not want to inject via config.define - instead we use @rollup/plugin-replace\n\n if (!configIsValid) {\n if (isDevCommand) {\n // adjust vite's setting so it doesnt bury the error messages\n config.clearScreen = false;\n } else {\n console.log('💥 Varlock config validation failed 💥');\n if (varlockLoadedEnv?.errors?.root) {\n for (const msg of varlockLoadedEnv.errors.root) {\n console.log(` - ${msg}`);\n }\n }\n if (varlockLoadedEnv?.errors?.configItems) {\n for (const [key, msg] of Object.entries(varlockLoadedEnv.errors.configItems)) {\n console.log(` - ${key}: ${msg}`);\n }\n }\n // throwing an error spits out a big useless stack trace... so better to just exit?\n process.exit(1);\n }\n }\n },\n // hook to observe/modify config after it is resolved\n configResolved(config) {\n debug('vite plugin - configResolved fn called');\n if (!varlockLoadedEnv) return;\n // inject all .env files that varlock loaded into `configFileDependencies`\n // so that vite will watch them and reload if they change\n for (const varlockSource of varlockLoadedEnv.sources) {\n if (!varlockSource.enabled) continue;\n if (varlockLoadedEnv.basePath && varlockSource.path) {\n config.configFileDependencies.push(path.resolve(varlockLoadedEnv.basePath, varlockSource.path));\n }\n }\n },\n // hook to configure vite dev server\n async configureServer(server) {\n debug('vite plugin - configureServer fn called');\n\n if (!configIsValid) {\n // triggers the built-in vite error overlay\n server.middlewares.use((req, res, next) => {\n server.hot.send({\n type: 'error',\n err: {\n plugin: 'varlock',\n message: 'Your config is currently invalid - check your terminal for more details',\n stack: '',\n },\n });\n return next();\n });\n }\n },\n\n transform(code, id, options) {\n // replace build-time ENV.x references\n let magicString = replacerFn(this, code, id);\n\n // we need to detect if this module is one of our worker entry points\n // when running `vite build`, we could use `this.getModuleInfo(id).isEntry`\n // but that doesnt work in dev, so we try to detect it another way\n const fileExt = id.split('?')[0].split('#')[0].split('.').pop() || '';\n let isEntry = false;\n if (SUPPORTED_FILES.includes(fileExt)) {\n const moduleIds = Array.from(this.getModuleIds());\n if (moduleIds[0] === id) isEntry = true;\n }\n\n // allow integrations to register additional virtual module IDs as entry points\n if (vitePluginOptions?.ssrEntryModuleIds?.includes(id)) isEntry = true;\n\n if (isEntry) {\n debug(`detected entry: ${id}`);\n // using env.command (in config hook) is misleading\n // because some frameworks (react router) boot dev servers during the build process\n // even during the build, there are multiple environments\n // but at least this seems to work for our needs\n let isDevEnv = false;\n\n // ! environments are only supported in vite 6+\n // so we try to make sure it still works in vite 5 too\n if (this.environment) {\n isDevEnv = this.environment.mode === 'dev';\n } else {\n isDevEnv = isDevCommand;\n }\n\n const injectCode = [\n '// INJECTED BY @varlock/vite-integration ----',\n 'globalThis.__varlockThrowOnMissingKeys = true;',\n ];\n\n // on the code intended for the backend we'll inject init logic\n // and code to load our env, or the already resolved env\n // TODO: keep an eye on environments API, as single ssr flag may be phased out\n if (options?.ssr) {\n const ssrInjectMode = vitePluginOptions?.ssrInjectMode ?? 'init-only';\n const isEdgeRuntime = vitePluginOptions?.ssrEdgeRuntime ?? false;\n\n debug('ssrInjectMode =', ssrInjectMode, 'isDev =', isDevEnv);\n if (ssrInjectMode === 'auto-load') {\n injectCode.push(\n \"import 'varlock/auto-load';\",\n );\n } else {\n if (ssrInjectMode === 'resolved-env') {\n injectCode.push(`globalThis.__varlockLoadedEnv = ${JSON.stringify(varlockLoadedEnv)};`);\n }\n\n // inject custom entry code from integrations\n if (vitePluginOptions?.ssrEntryCode?.length) {\n injectCode.push(...vitePluginOptions.ssrEntryCode);\n }\n\n // TODO: we may want to move this to a single module we import\n injectCode.push(\n \"import { initVarlockEnv } from 'varlock/env';\",\n \"import { patchGlobalConsole } from 'varlock/patch-console';\",\n \"import { patchGlobalResponse } from 'varlock/patch-response';\",\n );\n // edge runtimes don't have node:http ServerResponse\n if (!isEdgeRuntime) {\n injectCode.push(\n \"import { patchGlobalServerResponse } from 'varlock/patch-server-response';\",\n );\n }\n injectCode.push(\n 'initVarlockEnv();',\n 'patchGlobalConsole();',\n );\n if (!isEdgeRuntime) {\n injectCode.push('patchGlobalServerResponse();');\n }\n injectCode.push('patchGlobalResponse();');\n }\n\n // this build is for the client\n } else {\n // in dev mode, on the client we'll inject a list of the existing keys, to provide better error messages\n if (isDevEnv) {\n injectCode.push(\n '// NOTE - __varlockValidKeys is only injected during development',\n `globalThis.__varlockValidKeys = ${JSON.stringify(Object.keys(varlockLoadedEnv?.config || {}))};`,\n );\n }\n }\n\n injectCode.push('// -------- ');\n\n magicString ||= new MagicString(code);\n magicString.prepend(`${injectCode.join('\\n')}\\n`);\n }\n\n if (!magicString) return null;\n return {\n code: magicString.toString(),\n map: magicString.generateMap({ source: code, includeContent: true, hires: true }),\n };\n },\n renderChunk(code, chunk) {\n // Not 100% positive this is necessary if we've already replaced in transform\n // but the rollup-plugin-define we used as a reference did it, so we'll keep it\n\n // replace build-time ENV.x references\n const magicString = replacerFn(this, code, chunk.fileName);\n\n if (!magicString) return null;\n return {\n code: magicString.toString(),\n map: magicString.generateMap({ source: code, includeContent: true, hires: true }),\n };\n },\n\n // this enables replacing %ENV.xxx% constants in html entry-point files\n // see https://vite.dev/guide/env-and-mode.html#html-constant-replacement\n transformIndexHtml(html) {\n if (!configIsValid) {\n // TODO: build a nice error page somehow and just use it here\n // we should be showing you specific errors and have links to the right files/lines where possible\n return `\n<html>\n<head>\n <script type=\"module\" src=\"/@vite/client\"></script>\n <title>Invalid config</title>\n</head>\n<body>\n <h2>Your varlock config is currently invalid!</h2>\n <p>Check your terminal for more details</p>\n</body>\n</html>\n `;\n }\n\n //! Note on vite's built-in html constant replacement\n // when using config.define, any import.meta.env.XXX replacements\n // would be automatically added as constant replacements (%XXX%)\n const replacedHtml = html.replace(\n // look for \"%ENV.xxx%\"\n /%ENV\\.([a-zA-Z_][a-zA-Z0-9._]*)%/g,\n (_fullMatch, itemKey) => {\n if (!varlockLoadedEnv.config[itemKey]) {\n throw new Error(`Config item \\`${itemKey}\\` does not exist`);\n } else if (varlockLoadedEnv.config[itemKey].isSensitive) {\n throw new Error(`Config item \\`${itemKey}\\` is sensitive and cannot be used in html replacements`);\n } else {\n // undefined will be turned into empty string in html replacements\n return varlockLoadedEnv.config[itemKey].value ?? '';\n }\n },\n );\n\n return replacedHtml;\n },\n } satisfies Plugin;\n}\n","// Code injected at the top of the SSR entry module so varlock can load its\n// resolved env from Cloudflare bindings at runtime.\n//\n// The `__VARLOCK_ENV` binding (or `__VARLOCK_ENV_CHUNKS` + `__VARLOCK_ENV_<n>`\n// chunks when >5KB) is uploaded by `varlock-wrangler deploy`. The body below\n// reads whichever form is present and stashes the parsed JSON on\n// `globalThis.__varlockLoadedEnv` for `initVarlockEnv()` to pick up.\n//\n// The `cloudflare:workers` load is guarded behind a\n// `navigator.userAgent === 'Cloudflare-Workers'` runtime check and wrapped in\n// a dynamic `await import(...)`. This makes the injection safe for SSR entry\n// modules that may also be evaluated by Node during a framework's postbuild\n// (e.g. SvelteKit prerender/fallback) — Rollup preserves the dynamic import\n// but Node never resolves it. Inside Workers the check passes and the load\n// runs normally. Overhead vs a static import is one `navigator` check + TLA\n// on cold start, which is negligible.\nexport const CLOUDFLARE_SSR_ENTRY_CODE = `\nif (typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers') {\n const { env: __cfEnv } = await import('cloudflare:workers');\n let __varlockEnvJson;\n if (__cfEnv?.__VARLOCK_ENV) {\n __varlockEnvJson = __cfEnv.__VARLOCK_ENV;\n } else if (__cfEnv?.__VARLOCK_ENV_CHUNKS) {\n const n = parseInt(__cfEnv.__VARLOCK_ENV_CHUNKS, 10);\n if (!Number.isFinite(n) || n < 1 || n > 1000) {\n throw new Error(\"[varlock] invalid __VARLOCK_ENV_CHUNKS: \" + __cfEnv.__VARLOCK_ENV_CHUNKS);\n }\n const parts = [];\n for (let i = 0; i < n; i++) {\n const chunk = __cfEnv[\"__VARLOCK_ENV_\" + i];\n if (chunk == null) throw new Error(\"[varlock] missing chunk __VARLOCK_ENV_\" + i);\n parts.push(chunk);\n }\n __varlockEnvJson = parts.join(\"\");\n }\n if (__varlockEnvJson) {\n try {\n globalThis.__varlockLoadedEnv = JSON.parse(__varlockEnvJson);\n } catch (e) {\n throw new Error(\"[varlock] failed to parse __VARLOCK_ENV: \" + e.message);\n }\n }\n}\n`;\n","import { varlockVitePlugin } from '@varlock/vite-integration';\nimport { CLOUDFLARE_SSR_ENTRY_CODE } from './shared-ssr-entry-code';\n\n/**\n * Varlock SvelteKit + Cloudflare Vite plugin.\n *\n * For SvelteKit projects deploying to Cloudflare Workers via\n * `@sveltejs/adapter-cloudflare`. Unlike `varlockCloudflareVitePlugin`, this\n * does NOT include `@cloudflare/vite-plugin` (which doesn't currently support\n * SvelteKit — see https://github.com/cloudflare/workers-sdk/issues/8922).\n *\n * Injects the `cloudflare:workers` runtime env-loader into SvelteKit's SSR\n * entry, which is picked up by adapter-cloudflare's generated `_worker.js`.\n * Non-sensitive vars and the `__VARLOCK_ENV` secret should still be uploaded\n * via `varlock-wrangler deploy`.\n *\n * @example\n * ```ts\n * import { sveltekit } from '@sveltejs/kit/vite';\n * import { varlockSvelteKitCloudflarePlugin } from '@varlock/cloudflare-integration/sveltekit';\n *\n * export default defineConfig({\n * plugins: [\n * varlockSvelteKitCloudflarePlugin(),\n * sveltekit(),\n * ],\n * });\n * ```\n */\n// Return type is `Array<any>` to avoid symlink-induced Vite Plugin type\n// conflicts (see note in ./index.ts).\nexport function varlockSvelteKitCloudflarePlugin(): Array<any> {\n // Mark `cloudflare:workers` as external so Rollup keeps the runtime import\n // our `ssrEntryCode` injects into the SSR bundle. Normally\n // `@cloudflare/vite-plugin` handles this, but we're not using it here.\n const externalizeCloudflareWorkers: import('vite').Plugin = {\n name: 'varlock-sveltekit-cloudflare-external',\n enforce: 'pre',\n config() {\n return {\n build: {\n rollupOptions: {\n external: ['cloudflare:workers'],\n },\n },\n };\n },\n };\n\n return [\n externalizeCloudflareWorkers,\n varlockVitePlugin({\n ssrEdgeRuntime: true,\n ssrEntryCode: [CLOUDFLARE_SSR_ENTRY_CODE],\n }),\n ];\n}\n"]}