@aave/client 0.6.0 → 0.7.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.
- package/dist/AaveClient-C-OkXfVz.d.ts +85 -0
- package/dist/AaveClient-PHUEzt7l.d.cts +85 -0
- package/dist/actions/index.cjs +2 -0
- package/dist/actions/index.cjs.map +1 -0
- package/dist/actions/index.d.cts +1117 -0
- package/dist/actions/index.d.ts +1117 -0
- package/dist/actions/index.js +2 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/chunk-BLZHGYNH.js +2 -0
- package/dist/chunk-BLZHGYNH.js.map +1 -0
- package/dist/chunk-FW4363Y4.js +2 -0
- package/dist/chunk-FW4363Y4.js.map +1 -0
- package/dist/chunk-QQSK6HIZ.js +3 -0
- package/dist/chunk-QQSK6HIZ.js.map +1 -0
- package/dist/chunk-V4DWF6LT.js +3 -0
- package/dist/chunk-V4DWF6LT.js.map +1 -0
- package/dist/ethers.cjs +2 -0
- package/dist/ethers.cjs.map +1 -0
- package/dist/ethers.d.cts +22 -0
- package/dist/ethers.d.ts +22 -0
- package/dist/ethers.js +2 -0
- package/dist/ethers.js.map +1 -0
- package/dist/index.cjs +3 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +22 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/magic-string.es-PTUXR566.js +14 -0
- package/dist/magic-string.es-PTUXR566.js.map +1 -0
- package/dist/privy.cjs +3 -0
- package/dist/privy.cjs.map +1 -0
- package/dist/privy.d.cts +18 -0
- package/dist/privy.d.ts +18 -0
- package/dist/privy.js +2 -0
- package/dist/privy.js.map +1 -0
- package/dist/test-utils.cjs +450 -0
- package/dist/test-utils.cjs.map +1 -0
- package/dist/test-utils.d.cts +41 -0
- package/dist/test-utils.d.ts +41 -0
- package/dist/test-utils.js +438 -0
- package/dist/test-utils.js.map +1 -0
- package/dist/thirdweb.cjs +3 -0
- package/dist/thirdweb.cjs.map +1 -0
- package/dist/thirdweb.d.cts +18 -0
- package/dist/thirdweb.d.ts +18 -0
- package/dist/thirdweb.js +3 -0
- package/dist/thirdweb.js.map +1 -0
- package/dist/types-ieyj0UmJ.d.cts +16 -0
- package/dist/types-ieyj0UmJ.d.ts +16 -0
- package/dist/viem.cjs +3 -0
- package/dist/viem.cjs.map +1 -0
- package/dist/viem.d.cts +30 -0
- package/dist/viem.d.ts +30 -0
- package/dist/viem.js +2 -0
- package/dist/viem.js.map +1 -0
- package/package.json +4 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.3/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts","../../../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.3/node_modules/@jridgewell/sourcemap-codec/src/strings.ts","../../../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.3/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts","../../../node_modules/.pnpm/magic-string@0.30.17/node_modules/magic-string/src/BitSet.js","../../../node_modules/.pnpm/magic-string@0.30.17/node_modules/magic-string/src/Chunk.js","../../../node_modules/.pnpm/magic-string@0.30.17/node_modules/magic-string/src/SourceMap.js","../../../node_modules/.pnpm/magic-string@0.30.17/node_modules/magic-string/src/utils/guessIndent.js","../../../node_modules/.pnpm/magic-string@0.30.17/node_modules/magic-string/src/utils/getRelativePath.js","../../../node_modules/.pnpm/magic-string@0.30.17/node_modules/magic-string/src/utils/isObject.js","../../../node_modules/.pnpm/magic-string@0.30.17/node_modules/magic-string/src/utils/getLocator.js","../../../node_modules/.pnpm/magic-string@0.30.17/node_modules/magic-string/src/utils/Mappings.js","../../../node_modules/.pnpm/magic-string@0.30.17/node_modules/magic-string/src/MagicString.js","../../../node_modules/.pnpm/magic-string@0.30.17/node_modules/magic-string/src/Bundle.js"],"names":["comma","semicolon","chars","intToChar","charToInt","i","c","encodeInteger","builder","num","relative","delta","clamped","bufLength","td","buf","out","StringWriter","v","buffer","pos","encode","decoded","writer","sourcesIndex","sourceLine","sourceColumn","namesIndex","line","genColumn","j","segment","BitSet","_BitSet","arg","n","Chunk","_Chunk","start","end","content","chunk","index","fn","storeName","contentOnly","sliceIndex","originalBefore","originalAfter","newChunk","rx","trimmed","getBtoa","str","btoa","SourceMap","properties","guessIndent","code","lines","tabbed","spaced","min","previous","current","numSpaces","getRelativePath","from","to","fromParts","toParts","toString","isObject","thing","getLocator","source","originalLines","lineOffsets","m","column","wordRegex","Mappings","hires","sourceIndex","loc","nameIndex","contentLengthMinusOne","contentLineEnd","previousContentLineEnd","original","sourcemapLocations","originalCharIndex","first","charInHiresBoundary","warned","MagicString","_MagicString","string","options","char","cloned","originalChunk","clonedChunk","nextOriginalChunk","nextClonedChunk","names","mappings","locate","indentStr","pattern","isExcluded","exclusion","shouldIndentNextCharacter","replacer","match","charIndex","last","oldLeft","oldRight","newRight","newLeft","overwrite","lineIndex","lineStr","result","startChunk","containsEnd","sliceStart","sliceEnd","clone","searchForward","length","charType","aborted","searchValue","replacement","getReplacement","_","matchAll","re","matches","stringLength","hasOwnProp","Bundle","_Bundle","option","uniqueSource","bundle","x_google_ignoreList","name","magicString","indentStringCounts","a","b","trailingNewline","separator","indentStart","body"],"mappings":"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","file":"magic-string.es-PTUXR566.js","sourcesContent":["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\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\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\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\tthis.overwrite(index, index + string.length, replacement);\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\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","import MagicString from './MagicString.js';\nimport SourceMap from './SourceMap.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';\n\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nexport default class Bundle {\n\tconstructor(options = {}) {\n\t\tthis.intro = options.intro || '';\n\t\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\t\tthis.sources = [];\n\t\tthis.uniqueSources = [];\n\t\tthis.uniqueSourceIndexByFilename = {};\n\t}\n\n\taddSource(source) {\n\t\tif (source instanceof MagicString) {\n\t\t\treturn this.addSource({\n\t\t\t\tcontent: source,\n\t\t\t\tfilename: source.filename,\n\t\t\t\tseparator: this.separator,\n\t\t\t});\n\t\t}\n\n\t\tif (!isObject(source) || !source.content) {\n\t\t\tthrow new Error(\n\t\t\t\t'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`',\n\t\t\t);\n\t\t}\n\n\t\t['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => {\n\t\t\tif (!hasOwnProp.call(source, option)) source[option] = source.content[option];\n\t\t});\n\n\t\tif (source.separator === undefined) {\n\t\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\t\tsource.separator = this.separator;\n\t\t}\n\n\t\tif (source.filename) {\n\t\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t\t} else {\n\t\t\t\tconst uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\t\tthrow new Error(`Illegal source: same filename (${source.filename}), different contents`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.sources.push(source);\n\t\treturn this;\n\t}\n\n\tappend(str, options) {\n\t\tthis.addSource({\n\t\t\tcontent: new MagicString(str),\n\t\t\tseparator: (options && options.separator) || '',\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst bundle = new Bundle({\n\t\t\tintro: this.intro,\n\t\t\tseparator: this.separator,\n\t\t});\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tbundle.addSource({\n\t\t\t\tfilename: source.filename,\n\t\t\t\tcontent: source.content.clone(),\n\t\t\t\tseparator: source.separator,\n\t\t\t});\n\t\t});\n\n\t\treturn bundle;\n\t}\n\n\tgenerateDecodedMap(options = {}) {\n\t\tconst names = [];\n\t\tlet x_google_ignoreList = undefined;\n\t\tthis.sources.forEach((source) => {\n\t\t\tObject.keys(source.content.storedNames).forEach((name) => {\n\t\t\t\tif (!~names.indexOf(name)) names.push(name);\n\t\t\t});\n\t\t});\n\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\tmappings.advance(this.separator);\n\t\t\t}\n\n\t\t\tconst sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\t\tconst magicString = source.content;\n\t\t\tconst locate = getLocator(magicString.original);\n\n\t\t\tif (magicString.intro) {\n\t\t\t\tmappings.advance(magicString.intro);\n\t\t\t}\n\n\t\t\tmagicString.firstChunk.eachNext((chunk) => {\n\t\t\t\tconst loc = locate(chunk.start);\n\n\t\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\t\tif (source.filename) {\n\t\t\t\t\tif (chunk.edited) {\n\t\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk,\n\t\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tmagicString.sourcemapLocations,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmappings.advance(chunk.content);\n\t\t\t\t}\n\n\t\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t\t});\n\n\t\t\tif (magicString.outro) {\n\t\t\t\tmappings.advance(magicString.outro);\n\t\t\t}\n\n\t\t\tif (source.ignoreList && sourceIndex !== -1) {\n\t\t\t\tif (x_google_ignoreList === undefined) {\n\t\t\t\t\tx_google_ignoreList = [];\n\t\t\t\t}\n\t\t\t\tx_google_ignoreList.push(sourceIndex);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t\t}),\n\t\t\tsourcesContent: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.includeContent ? source.content : null;\n\t\t\t}),\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\tgetIndentString() {\n\t\tconst indentStringCounts = {};\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tconst indentStr = source.content._getRawIndentString();\n\n\t\t\tif (indentStr === null) return;\n\n\t\t\tif (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0;\n\t\t\tindentStringCounts[indentStr] += 1;\n\t\t});\n\n\t\treturn (\n\t\t\tObject.keys(indentStringCounts).sort((a, b) => {\n\t\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t\t})[0] || '\\t'\n\t\t);\n\t}\n\n\tindent(indentStr) {\n\t\tif (!arguments.length) {\n\t\t\tindentStr = this.getIndentString();\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\tlet trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\tconst indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\t\tsource.content.indent(indentStr, {\n\t\t\t\texclude: source.indentExclusionRanges,\n\t\t\t\tindentStart, //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t\t});\n\n\t\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t\t});\n\n\t\tif (this.intro) {\n\t\t\tthis.intro =\n\t\t\t\tindentStr +\n\t\t\t\tthis.intro.replace(/^[^\\n]/gm, (match, index) => {\n\t\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t\t});\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tprepend(str) {\n\t\tthis.intro = str + this.intro;\n\t\treturn this;\n\t}\n\n\ttoString() {\n\t\tconst body = this.sources\n\t\t\t.map((source, i) => {\n\t\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\t\tconst str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\t\treturn str;\n\t\t\t})\n\t\t\t.join('');\n\n\t\treturn this.intro + body;\n\t}\n\n\tisEmpty() {\n\t\tif (this.intro.length && this.intro.trim()) return false;\n\t\tif (this.sources.some((source) => !source.content.isEmpty())) return false;\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\treturn this.sources.reduce(\n\t\t\t(length, source) => length + source.content.length(),\n\t\t\tthis.intro.length,\n\t\t);\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\ttrimStart(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\t\tthis.intro = this.intro.replace(rx, '');\n\n\t\tif (!this.intro) {\n\t\t\tlet source;\n\t\t\tlet i = 0;\n\n\t\t\tdo {\n\t\t\t\tsource = this.sources[i++];\n\t\t\t\tif (!source) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} while (!source.content.trimStartAborted(charType));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttrimEnd(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tlet source;\n\t\tlet i = this.sources.length - 1;\n\n\t\tdo {\n\t\t\tsource = this.sources[i--];\n\t\t\tif (!source) {\n\t\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimEndAborted(charType));\n\n\t\treturn this;\n\t}\n}\n"]}
|
package/dist/privy.cjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use strict';var core=require('@aave/core'),types=require('@aave/types'),viem=require('viem'),actions=require('viem/actions'),chains=require('viem/chains');var v=viem.defineChain({id:146,name:"Sonic",nativeCurrency:{name:"Sonic",symbol:"S",decimals:18},rpcUrls:{default:{http:["https://sonicscan.org"]}},blockExplorers:{default:{name:"SonicScan",url:"https://sonicscan.org"}}}),C=viem.defineChain({id:1868,name:"Soneium",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://soneium.blockscout.com"]}},blockExplorers:{default:{name:"Blockscout",url:"https://soneium.blockscout.com"}}}),o={[types.chainId(chains.mainnet.id)]:chains.mainnet,[types.chainId(chains.arbitrum.id)]:chains.arbitrum,[types.chainId(chains.avalanche.id)]:chains.avalanche,[types.chainId(chains.base.id)]:chains.base,[types.chainId(chains.baseSepolia.id)]:chains.baseSepolia,[types.chainId(chains.bsc.id)]:chains.bsc,[types.chainId(chains.celo.id)]:chains.celo,[types.chainId(chains.gnosis.id)]:chains.gnosis,[types.chainId(chains.linea.id)]:chains.linea,[types.chainId(chains.metis.id)]:chains.metis,[types.chainId(chains.optimism.id)]:chains.optimism,[types.chainId(chains.polygon.id)]:chains.polygon,[types.chainId(chains.scroll.id)]:chains.scroll,[types.chainId(chains.zksync.id)]:chains.zksync,[types.chainId(v.id)]:v,[types.chainId(C.id)]:C};function A(t,n,a){let i=t?.blockExplorers?.default?.url,e=i&&`${i.replace(/\/+$/,"")}/tx/${n}`;return core.TransactionError.new({txHash:n,request:a,link:e})}async function U(t,n,a){let{hash:i}=await t.walletApi.ethereum.sendTransaction({walletId:a,caip2:`eip155:${n.chainId}`,transaction:{from:n.from,to:n.to,value:`0x${BigInt(n.value).toString(16)}`,chainId:n.chainId,data:n.data}});return types.txHash(i)}function s(t,n,a){let i=viem.createPublicClient({chain:o[n.chainId],transport:viem.http()});return types.ResultAsync.fromPromise(U(t,n,a),e=>core.SigningError.from(e)).map(async e=>actions.waitForTransactionReceipt(i,{hash:e,pollingInterval:100,retryCount:20,retryDelay:50})).andThen(e=>{let c=types.txHash(e.transactionHash);return e.status==="reverted"?types.errAsync(A(o[n.chainId],c,n)):types.okAsync({txHash:c,operation:n.operation})})}function cn(t,n){return a=>{switch(a.__typename){case "TransactionRequest":return s(t,a,n);case "ApprovalRequired":return s(t,a.approval,n).andThen(()=>s(t,a.originalTransaction,n));case "InsufficientBalanceError":return types.errAsync(core.ValidationError.fromGqlNode(a))}}}function pn(t,n){return a=>types.ResultAsync.fromPromise(t.walletApi.ethereum.signTypedData({walletId:n,typedData:{domain:a.domain,types:a.types,message:a.message,primaryType:a.primaryType}}),i=>core.SigningError.from(i)).map(i=>({deadline:a.message.deadline,value:types.signatureFrom(i.signature)}))}
|
|
2
|
+
exports.sendWith=cn;exports.signERC20PermitWith=pn;//# sourceMappingURL=privy.cjs.map
|
|
3
|
+
//# sourceMappingURL=privy.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/viem.ts","../src/privy.ts"],"names":["sonic","defineChain","soneium","supportedChains","chainId","mainnet","arbitrum","avalanche","base","baseSepolia","bsc","celo","gnosis","linea","metis","optimism","polygon","scroll","zksync","transactionError","chain","txHash","request","baseUrl","link","TransactionError","sendTransaction","privy","walletId","hash","sendTransactionAndWait","publicClient","createPublicClient","http","ResultAsync","err","SigningError","waitForTransactionReceipt","receipt","errAsync","okAsync","sendWith","result","ValidationError","signERC20PermitWith","response","signatureFrom"],"mappings":"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","file":"privy.cjs","sourcesContent":["import { SigningError, TransactionError, ValidationError } from '@aave/core';\nimport type {\n ExecutionPlan,\n InsufficientBalanceError,\n PermitTypedDataResponse,\n TransactionRequest,\n} from '@aave/graphql';\nimport {\n type ChainId,\n chainId,\n errAsync,\n invariant,\n okAsync,\n ResultAsync,\n signatureFrom,\n type TxHash,\n txHash,\n} from '@aave/types';\nimport {\n type Chain,\n defineChain,\n type Hash,\n type TypedData,\n type TypedDataDomain,\n type WalletClient,\n} from 'viem';\nimport {\n sendTransaction as sendEip1559Transaction,\n signTypedData,\n waitForTransactionReceipt,\n} from 'viem/actions';\n// chains.ts\nimport {\n arbitrum,\n avalanche,\n base,\n baseSepolia,\n bsc,\n celo,\n gnosis,\n linea,\n mainnet,\n metis,\n optimism,\n polygon,\n scroll,\n zksync,\n} from 'viem/chains';\nimport type {\n ExecutionPlanHandler,\n PermitHandler,\n TransactionExecutionResult,\n} from './types';\n\n// Other chains\nconst sonic: Chain = defineChain({\n id: 146,\n name: 'Sonic',\n nativeCurrency: { name: 'Sonic', symbol: 'S', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://sonicscan.org'], // Replace with actual RPC URL if needed\n },\n },\n blockExplorers: {\n default: {\n name: 'SonicScan',\n url: 'https://sonicscan.org',\n },\n },\n});\n\nconst soneium: Chain = defineChain({\n id: 1868,\n name: 'Soneium',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://soneium.blockscout.com'], // Replace with actual RPC URL if needed\n },\n },\n blockExplorers: {\n default: {\n name: 'Blockscout',\n url: 'https://soneium.blockscout.com',\n },\n },\n});\n\n/**\n * @internal\n */\nexport const supportedChains: Record<\n ChainId,\n ReturnType<typeof defineChain>\n> = {\n [chainId(mainnet.id)]: mainnet,\n [chainId(arbitrum.id)]: arbitrum,\n [chainId(avalanche.id)]: avalanche,\n [chainId(base.id)]: base,\n [chainId(baseSepolia.id)]: baseSepolia,\n [chainId(bsc.id)]: bsc,\n [chainId(celo.id)]: celo,\n [chainId(gnosis.id)]: gnosis,\n [chainId(linea.id)]: linea,\n [chainId(metis.id)]: metis,\n [chainId(optimism.id)]: optimism,\n [chainId(polygon.id)]: polygon,\n [chainId(scroll.id)]: scroll,\n [chainId(zksync.id)]: zksync,\n [chainId(sonic.id)]: sonic,\n [chainId(soneium.id)]: soneium,\n};\n\nasync function sendTransaction(\n walletClient: WalletClient,\n request: TransactionRequest,\n): Promise<Hash> {\n return sendEip1559Transaction(walletClient, {\n account: request.from,\n data: request.data,\n to: request.to,\n value: BigInt(request.value),\n chain: walletClient.chain,\n });\n}\n\n/**\n * @internal\n */\nexport function transactionError(\n chain: Chain | undefined,\n txHash: TxHash,\n request: TransactionRequest,\n): TransactionError {\n const baseUrl = chain?.blockExplorers?.default?.url;\n const link = baseUrl && `${baseUrl.replace(/\\/+$/, '')}/tx/${txHash}`;\n\n return TransactionError.new({ txHash, request, link });\n}\n\n/**\n * @internal\n */\nexport function sendTransactionAndWait(\n walletClient: WalletClient,\n request: TransactionRequest,\n): ResultAsync<TransactionExecutionResult, SigningError | TransactionError> {\n // TODO: verify it's on the correct chain, ask to switch if possible\n // TODO: verify if wallet account is correct, switch if possible\n\n return ResultAsync.fromPromise(\n sendTransaction(walletClient, request),\n (err) => SigningError.from(err),\n )\n .map(async (hash) =>\n waitForTransactionReceipt(walletClient, {\n hash,\n pollingInterval: 100,\n retryCount: 20,\n retryDelay: 50,\n }),\n )\n .andThen((receipt) => {\n const hash = txHash(receipt.transactionHash);\n\n if (receipt.status === 'reverted') {\n return errAsync(transactionError(walletClient.chain, hash, request));\n }\n return okAsync({\n txHash: hash,\n operation: request.operation,\n });\n });\n}\n\n/**\n * Sends transactions using the provided wallet client.\n *\n * Handles {@link TransactionRequest} by signing and sending, {@link ApprovalRequired} by sending both approval and original transactions, and returns validation errors for {@link InsufficientBalanceError}.\n */\nexport function sendWith(walletClient: WalletClient): ExecutionPlanHandler {\n return (\n result: ExecutionPlan,\n ): ResultAsync<\n TransactionExecutionResult,\n SigningError | TransactionError | ValidationError<InsufficientBalanceError>\n > => {\n switch (result.__typename) {\n case 'TransactionRequest':\n return sendTransactionAndWait(walletClient, result);\n\n case 'ApprovalRequired':\n return sendTransactionAndWait(walletClient, result.approval).andThen(\n () =>\n sendTransactionAndWait(walletClient, result.originalTransaction),\n );\n\n case 'InsufficientBalanceError':\n return errAsync(ValidationError.fromGqlNode(result));\n }\n };\n}\n\n/**\n * Signs an ERC20 permit using the provided wallet client.\n */\nexport function signERC20PermitWith(walletClient: WalletClient): PermitHandler {\n return (result: PermitTypedDataResponse) => {\n invariant(walletClient.account, 'Wallet account is required');\n\n return ResultAsync.fromPromise(\n signTypedData(walletClient, {\n account: walletClient.account,\n domain: result.domain as TypedDataDomain,\n types: result.types as TypedData,\n primaryType: result.primaryType as keyof typeof result.types,\n message: result.message,\n }),\n (err) => SigningError.from(err),\n ).map((hex) => ({\n deadline: result.message.deadline,\n value: signatureFrom(hex),\n }));\n };\n}\n","import {\n SigningError,\n type TransactionError,\n ValidationError,\n} from '@aave/core';\nimport type {\n ExecutionPlan,\n InsufficientBalanceError,\n PermitTypedDataResponse,\n TransactionRequest,\n} from '@aave/graphql';\nimport {\n errAsync,\n okAsync,\n ResultAsync,\n signatureFrom,\n type TxHash,\n txHash,\n} from '@aave/types';\nimport type { PrivyClient } from '@privy-io/server-auth';\nimport { createPublicClient, http } from 'viem';\nimport { waitForTransactionReceipt } from 'viem/actions';\nimport type {\n ExecutionPlanHandler,\n PermitHandler,\n TransactionExecutionResult,\n} from './types';\nimport { supportedChains, transactionError } from './viem';\n\nasync function sendTransaction(\n privy: PrivyClient,\n request: TransactionRequest,\n walletId: string,\n): Promise<TxHash> {\n const { hash } = await privy.walletApi.ethereum.sendTransaction({\n walletId,\n caip2: `eip155:${request.chainId}`,\n transaction: {\n from: request.from,\n to: request.to,\n value: `0x${BigInt(request.value).toString(16)}`,\n chainId: request.chainId,\n data: request.data,\n },\n });\n return txHash(hash);\n}\n\nfunction sendTransactionAndWait(\n privy: PrivyClient,\n request: TransactionRequest,\n walletId: string,\n): ResultAsync<TransactionExecutionResult, SigningError | TransactionError> {\n // TODO: verify it's on the correct chain, ask to switch if possible\n // TODO: verify if wallet account is correct, switch if possible\n const publicClient = createPublicClient({\n chain: supportedChains[request.chainId],\n transport: http(),\n });\n\n return ResultAsync.fromPromise(\n sendTransaction(privy, request, walletId),\n (err) => SigningError.from(err),\n )\n .map(async (hash) =>\n waitForTransactionReceipt(publicClient, {\n hash,\n pollingInterval: 100,\n retryCount: 20,\n retryDelay: 50,\n }),\n )\n .andThen((receipt) => {\n const hash = txHash(receipt.transactionHash);\n\n if (receipt.status === 'reverted') {\n return errAsync(\n transactionError(supportedChains[request.chainId], hash, request),\n );\n }\n return okAsync({\n txHash: hash,\n operation: request.operation,\n });\n });\n}\n\n/**\n * Sends transactions using the provided Privy client.\n *\n * Handles {@link TransactionRequest} by signing and sending, {@link ApprovalRequired} by sending both approval and original transactions, and returns validation errors for {@link InsufficientBalanceError}.\n */\nexport function sendWith(\n privy: PrivyClient,\n walletId: string,\n): ExecutionPlanHandler {\n return (\n result: ExecutionPlan,\n ): ResultAsync<\n TransactionExecutionResult,\n SigningError | TransactionError | ValidationError<InsufficientBalanceError>\n > => {\n switch (result.__typename) {\n case 'TransactionRequest':\n return sendTransactionAndWait(privy, result, walletId);\n\n case 'ApprovalRequired':\n return sendTransactionAndWait(privy, result.approval, walletId).andThen(\n () =>\n sendTransactionAndWait(privy, result.originalTransaction, walletId),\n );\n\n case 'InsufficientBalanceError':\n return errAsync(ValidationError.fromGqlNode(result));\n }\n };\n}\n\n/**\n * Signs an ERC20 permit using the provided Privy client.\n */\nexport function signERC20PermitWith(\n privy: PrivyClient,\n walletId: string,\n): PermitHandler {\n return (result: PermitTypedDataResponse) => {\n return ResultAsync.fromPromise(\n privy.walletApi.ethereum.signTypedData({\n walletId,\n typedData: {\n domain: result.domain,\n types: result.types,\n message: result.message,\n primaryType: result.primaryType,\n },\n }),\n (err) => SigningError.from(err),\n ).map((response) => ({\n deadline: result.message.deadline,\n value: signatureFrom(response.signature),\n }));\n };\n}\n"]}
|
package/dist/privy.d.cts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PrivyClient } from '@privy-io/server-auth';
|
|
2
|
+
import { E as ExecutionPlanHandler, P as PermitHandler } from './types-ieyj0UmJ.cjs';
|
|
3
|
+
import '@aave/core';
|
|
4
|
+
import '@aave/graphql';
|
|
5
|
+
import '@aave/types';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Sends transactions using the provided Privy client.
|
|
9
|
+
*
|
|
10
|
+
* Handles {@link TransactionRequest} by signing and sending, {@link ApprovalRequired} by sending both approval and original transactions, and returns validation errors for {@link InsufficientBalanceError}.
|
|
11
|
+
*/
|
|
12
|
+
declare function sendWith(privy: PrivyClient, walletId: string): ExecutionPlanHandler;
|
|
13
|
+
/**
|
|
14
|
+
* Signs an ERC20 permit using the provided Privy client.
|
|
15
|
+
*/
|
|
16
|
+
declare function signERC20PermitWith(privy: PrivyClient, walletId: string): PermitHandler;
|
|
17
|
+
|
|
18
|
+
export { sendWith, signERC20PermitWith };
|
package/dist/privy.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PrivyClient } from '@privy-io/server-auth';
|
|
2
|
+
import { E as ExecutionPlanHandler, P as PermitHandler } from './types-ieyj0UmJ.js';
|
|
3
|
+
import '@aave/core';
|
|
4
|
+
import '@aave/graphql';
|
|
5
|
+
import '@aave/types';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Sends transactions using the provided Privy client.
|
|
9
|
+
*
|
|
10
|
+
* Handles {@link TransactionRequest} by signing and sending, {@link ApprovalRequired} by sending both approval and original transactions, and returns validation errors for {@link InsufficientBalanceError}.
|
|
11
|
+
*/
|
|
12
|
+
declare function sendWith(privy: PrivyClient, walletId: string): ExecutionPlanHandler;
|
|
13
|
+
/**
|
|
14
|
+
* Signs an ERC20 permit using the provided Privy client.
|
|
15
|
+
*/
|
|
16
|
+
declare function signERC20PermitWith(privy: PrivyClient, walletId: string): PermitHandler;
|
|
17
|
+
|
|
18
|
+
export { sendWith, signERC20PermitWith };
|
package/dist/privy.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {a,b}from'./chunk-QQSK6HIZ.js';import'./chunk-FW4363Y4.js';import {ValidationError,SigningError}from'@aave/core';import {errAsync,ResultAsync,signatureFrom,txHash,okAsync}from'@aave/types';import {createPublicClient,http}from'viem';import {waitForTransactionReceipt}from'viem/actions';async function E(a,n,r){let{hash:t}=await a.walletApi.ethereum.sendTransaction({walletId:r,caip2:`eip155:${n.chainId}`,transaction:{from:n.from,to:n.to,value:`0x${BigInt(n.value).toString(16)}`,chainId:n.chainId,data:n.data}});return txHash(t)}function o(a$1,n,r){let t=createPublicClient({chain:a[n.chainId],transport:http()});return ResultAsync.fromPromise(E(a$1,n,r),i=>SigningError.from(i)).map(async i=>waitForTransactionReceipt(t,{hash:i,pollingInterval:100,retryCount:20,retryDelay:50})).andThen(i=>{let s=txHash(i.transactionHash);return i.status==="reverted"?errAsync(b(a[n.chainId],s,n)):okAsync({txHash:s,operation:n.operation})})}function A(a,n){return r=>{switch(r.__typename){case "TransactionRequest":return o(a,r,n);case "ApprovalRequired":return o(a,r.approval,n).andThen(()=>o(a,r.originalTransaction,n));case "InsufficientBalanceError":return errAsync(ValidationError.fromGqlNode(r))}}}function H(a,n){return r=>ResultAsync.fromPromise(a.walletApi.ethereum.signTypedData({walletId:n,typedData:{domain:r.domain,types:r.types,message:r.message,primaryType:r.primaryType}}),t=>SigningError.from(t)).map(t=>({deadline:r.message.deadline,value:signatureFrom(t.signature)}))}export{A as sendWith,H as signERC20PermitWith};//# sourceMappingURL=privy.js.map
|
|
2
|
+
//# sourceMappingURL=privy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/privy.ts"],"names":["sendTransaction","privy","request","walletId","hash","txHash","sendTransactionAndWait","publicClient","createPublicClient","supportedChains","http","ResultAsync","err","SigningError","waitForTransactionReceipt","receipt","errAsync","transactionError","okAsync","sendWith","result","ValidationError","signERC20PermitWith","response","signatureFrom"],"mappings":"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","file":"privy.js","sourcesContent":["import {\n SigningError,\n type TransactionError,\n ValidationError,\n} from '@aave/core';\nimport type {\n ExecutionPlan,\n InsufficientBalanceError,\n PermitTypedDataResponse,\n TransactionRequest,\n} from '@aave/graphql';\nimport {\n errAsync,\n okAsync,\n ResultAsync,\n signatureFrom,\n type TxHash,\n txHash,\n} from '@aave/types';\nimport type { PrivyClient } from '@privy-io/server-auth';\nimport { createPublicClient, http } from 'viem';\nimport { waitForTransactionReceipt } from 'viem/actions';\nimport type {\n ExecutionPlanHandler,\n PermitHandler,\n TransactionExecutionResult,\n} from './types';\nimport { supportedChains, transactionError } from './viem';\n\nasync function sendTransaction(\n privy: PrivyClient,\n request: TransactionRequest,\n walletId: string,\n): Promise<TxHash> {\n const { hash } = await privy.walletApi.ethereum.sendTransaction({\n walletId,\n caip2: `eip155:${request.chainId}`,\n transaction: {\n from: request.from,\n to: request.to,\n value: `0x${BigInt(request.value).toString(16)}`,\n chainId: request.chainId,\n data: request.data,\n },\n });\n return txHash(hash);\n}\n\nfunction sendTransactionAndWait(\n privy: PrivyClient,\n request: TransactionRequest,\n walletId: string,\n): ResultAsync<TransactionExecutionResult, SigningError | TransactionError> {\n // TODO: verify it's on the correct chain, ask to switch if possible\n // TODO: verify if wallet account is correct, switch if possible\n const publicClient = createPublicClient({\n chain: supportedChains[request.chainId],\n transport: http(),\n });\n\n return ResultAsync.fromPromise(\n sendTransaction(privy, request, walletId),\n (err) => SigningError.from(err),\n )\n .map(async (hash) =>\n waitForTransactionReceipt(publicClient, {\n hash,\n pollingInterval: 100,\n retryCount: 20,\n retryDelay: 50,\n }),\n )\n .andThen((receipt) => {\n const hash = txHash(receipt.transactionHash);\n\n if (receipt.status === 'reverted') {\n return errAsync(\n transactionError(supportedChains[request.chainId], hash, request),\n );\n }\n return okAsync({\n txHash: hash,\n operation: request.operation,\n });\n });\n}\n\n/**\n * Sends transactions using the provided Privy client.\n *\n * Handles {@link TransactionRequest} by signing and sending, {@link ApprovalRequired} by sending both approval and original transactions, and returns validation errors for {@link InsufficientBalanceError}.\n */\nexport function sendWith(\n privy: PrivyClient,\n walletId: string,\n): ExecutionPlanHandler {\n return (\n result: ExecutionPlan,\n ): ResultAsync<\n TransactionExecutionResult,\n SigningError | TransactionError | ValidationError<InsufficientBalanceError>\n > => {\n switch (result.__typename) {\n case 'TransactionRequest':\n return sendTransactionAndWait(privy, result, walletId);\n\n case 'ApprovalRequired':\n return sendTransactionAndWait(privy, result.approval, walletId).andThen(\n () =>\n sendTransactionAndWait(privy, result.originalTransaction, walletId),\n );\n\n case 'InsufficientBalanceError':\n return errAsync(ValidationError.fromGqlNode(result));\n }\n };\n}\n\n/**\n * Signs an ERC20 permit using the provided Privy client.\n */\nexport function signERC20PermitWith(\n privy: PrivyClient,\n walletId: string,\n): PermitHandler {\n return (result: PermitTypedDataResponse) => {\n return ResultAsync.fromPromise(\n privy.walletApi.ethereum.signTypedData({\n walletId,\n typedData: {\n domain: result.domain,\n types: result.types,\n message: result.message,\n primaryType: result.primaryType,\n },\n }),\n (err) => SigningError.from(err),\n ).map((response) => ({\n deadline: result.message.deadline,\n value: signatureFrom(response.signature),\n }));\n };\n}\n"]}
|