MCPcopy
hub / github.com/vercel/next.js / decodeMagicIdentifier

Function decodeMagicIdentifier

packages/next/src/shared/lib/magic-identifier.ts:23–93  ·  view source on GitHub ↗
(identifier: string)

Source from the content-addressed store, hash-verified

21const DECODE_REGEX = /^__TURBOPACK__([a-zA-Z0-9_$]+)__$/
22
23export function decodeMagicIdentifier(identifier: string): string {
24 const matches = identifier.match(DECODE_REGEX)
25 if (!matches) {
26 return identifier
27 }
28
29 const inner = matches[1]
30
31 let output = ''
32
33 let mode: Mode = Mode.Text
34 let buffer = ''
35 for (let i = 0; i < inner.length; i++) {
36 const char = inner[i]
37
38 if (mode === Mode.Text) {
39 if (char === '_') {
40 mode = Mode.Underscore
41 } else if (char === '$') {
42 mode = Mode.Hex
43 } else {
44 output += char
45 }
46 } else if (mode === Mode.Underscore) {
47 if (char === '_') {
48 output += ' '
49 mode = Mode.Text
50 } else if (char === '$') {
51 output += '_'
52 mode = Mode.Hex
53 } else {
54 output += char
55 mode = Mode.Text
56 }
57 } else if (mode === Mode.Hex) {
58 if (buffer.length === 2) {
59 output += decodeHex(buffer)
60 buffer = ''
61 }
62
63 if (char === '_') {
64 if (buffer !== '') {
65 throw new Error(`invalid hex: \`${buffer}\``)
66 }
67
68 mode = Mode.LongHex
69 } else if (char === '$') {
70 if (buffer !== '') {
71 throw new Error(`invalid hex: \`${buffer}\``)
72 }
73
74 mode = Mode.Text
75 } else {
76 buffer += char
77 }
78 } else if (mode === Mode.LongHex) {
79 if (char === '_') {
80 throw new Error(`invalid hex: \`${buffer + char}\``)

Callers 2

deobfuscateTextPartsFunction · 0.85

Calls 2

decodeHexFunction · 0.85
matchMethod · 0.65

Tested by

no test coverage detected