1 | (function (global, factory) {
|
2 | typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
3 | typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
4 | (global = global || self, factory(global.sourcemapCodec = {}));
|
5 | }(this, function (exports) { 'use strict';
|
6 |
|
7 | var charToInteger = {};
|
8 | var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
9 | for (var i = 0; i < chars.length; i++) {
|
10 | charToInteger[chars.charCodeAt(i)] = i;
|
11 | }
|
12 | function decode(mappings) {
|
13 | var generatedCodeColumn = 0;
|
14 | var sourceFileIndex = 0;
|
15 | var sourceCodeLine = 0;
|
16 | var sourceCodeColumn = 0;
|
17 | var nameIndex = 0;
|
18 | var decoded = [];
|
19 | var line = [];
|
20 | var segment = [];
|
21 | for (var i = 0, j = 0, shift = 0, value = 0, len = mappings.length; i < len; i++) {
|
22 | var c = mappings.charCodeAt(i);
|
23 | if (c === 44) {
|
24 | if (segment.length)
|
25 | line.push(new Int32Array(segment));
|
26 | segment = [];
|
27 | j = 0;
|
28 | }
|
29 | else if (c === 59) {
|
30 | if (segment.length)
|
31 | line.push(new Int32Array(segment));
|
32 | segment = [];
|
33 | j = 0;
|
34 | decoded.push(line);
|
35 | line = [];
|
36 | generatedCodeColumn = 0;
|
37 | }
|
38 | else {
|
39 | var integer = charToInteger[c];
|
40 | if (integer === undefined) {
|
41 | throw new Error('Invalid character (' + String.fromCharCode(c) + ')');
|
42 | }
|
43 | var hasContinuationBit = integer & 32;
|
44 | integer &= 31;
|
45 | value += integer << shift;
|
46 | if (hasContinuationBit) {
|
47 | shift += 5;
|
48 | }
|
49 | else {
|
50 | var shouldNegate = value & 1;
|
51 | value >>>= 1;
|
52 | if (shouldNegate) {
|
53 | value = -value;
|
54 | if (value === 0)
|
55 | value = -0x80000000;
|
56 | }
|
57 | if (j == 0) {
|
58 | generatedCodeColumn += value;
|
59 | segment.push(generatedCodeColumn);
|
60 | }
|
61 | else if (j === 1) {
|
62 | sourceFileIndex += value;
|
63 | segment.push(sourceFileIndex);
|
64 | }
|
65 | else if (j === 2) {
|
66 | sourceCodeLine += value;
|
67 | segment.push(sourceCodeLine);
|
68 | }
|
69 | else if (j === 3) {
|
70 | sourceCodeColumn += value;
|
71 | segment.push(sourceCodeColumn);
|
72 | }
|
73 | else if (j === 4) {
|
74 | nameIndex += value;
|
75 | segment.push(nameIndex);
|
76 | }
|
77 | j++;
|
78 | value = shift = 0;
|
79 | }
|
80 | }
|
81 | }
|
82 | if (segment.length)
|
83 | line.push(new Int32Array(segment));
|
84 | decoded.push(line);
|
85 | return decoded;
|
86 | }
|
87 | function encode(decoded) {
|
88 | var sourceFileIndex = 0;
|
89 | var sourceCodeLine = 0;
|
90 | var sourceCodeColumn = 0;
|
91 | var nameIndex = 0;
|
92 | var mappings = '';
|
93 | for (var i = 0; i < decoded.length; i++) {
|
94 | var line = decoded[i];
|
95 | if (i > 0)
|
96 | mappings += ';';
|
97 | if (line.length === 0)
|
98 | continue;
|
99 | var generatedCodeColumn = 0;
|
100 | var lineMappings = [];
|
101 | for (var _i = 0, line_1 = line; _i < line_1.length; _i++) {
|
102 | var segment = line_1[_i];
|
103 | var segmentMappings = encodeInteger(segment[0] - generatedCodeColumn);
|
104 | generatedCodeColumn = segment[0];
|
105 | if (segment.length > 1) {
|
106 | segmentMappings +=
|
107 | encodeInteger(segment[1] - sourceFileIndex) +
|
108 | encodeInteger(segment[2] - sourceCodeLine) +
|
109 | encodeInteger(segment[3] - sourceCodeColumn);
|
110 | sourceFileIndex = segment[1];
|
111 | sourceCodeLine = segment[2];
|
112 | sourceCodeColumn = segment[3];
|
113 | }
|
114 | if (segment.length === 5) {
|
115 | segmentMappings += encodeInteger(segment[4] - nameIndex);
|
116 | nameIndex = segment[4];
|
117 | }
|
118 | lineMappings.push(segmentMappings);
|
119 | }
|
120 | mappings += lineMappings.join(',');
|
121 | }
|
122 | return mappings;
|
123 | }
|
124 | function encodeInteger(num) {
|
125 | var result = '';
|
126 | num = num < 0 ? (-num << 1) | 1 : num << 1;
|
127 | do {
|
128 | var clamped = num & 31;
|
129 | num >>>= 5;
|
130 | if (num > 0) {
|
131 | clamped |= 32;
|
132 | }
|
133 | result += chars[clamped];
|
134 | } while (num > 0);
|
135 | return result;
|
136 | }
|
137 |
|
138 | exports.decode = decode;
|
139 | exports.encode = encode;
|
140 |
|
141 | Object.defineProperty(exports, '__esModule', { value: true });
|
142 |
|
143 | }));
|
144 |
|