init
This commit is contained in:
16
node_modules/inline-source-map/.npmignore
generated
vendored
Normal file
16
node_modules/inline-source-map/.npmignore
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
lib-cov
|
||||
*.seed
|
||||
*.log
|
||||
*.csv
|
||||
*.dat
|
||||
*.out
|
||||
*.pid
|
||||
*.gz
|
||||
|
||||
pids
|
||||
logs
|
||||
results
|
||||
|
||||
node_modules
|
||||
npm-debug.log
|
||||
tmp
|
8
node_modules/inline-source-map/.travis.yml
generated
vendored
Normal file
8
node_modules/inline-source-map/.travis.yml
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
sudo: false
|
||||
language: node_js
|
||||
node_js:
|
||||
- 0.10
|
||||
- 0.12
|
||||
- io.js
|
||||
before_install:
|
||||
- npm install --global npm
|
23
node_modules/inline-source-map/LICENSE
generated
vendored
Normal file
23
node_modules/inline-source-map/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
Copyright 2013 Thorsten Lorenz.
|
||||
All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
89
node_modules/inline-source-map/README.md
generated
vendored
Normal file
89
node_modules/inline-source-map/README.md
generated
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
# inline-source-map [](http://travis-ci.org/thlorenz/inline-source-map)
|
||||
|
||||
Adds source mappings and base64 encodes them, so they can be inlined in your generated file.
|
||||
|
||||
```js
|
||||
var generator = require('inline-source-map');
|
||||
|
||||
// default charset 'utf-8' is configurable
|
||||
var gen = generator({ charset: 'utf-8' })
|
||||
.addMappings('foo.js', [{ original: { line: 2, column: 3 } , generated: { line: 5, column: 10 } }], { line: 5 })
|
||||
.addGeneratedMappings('bar.js', 'var a = 2;\nconsole.log(a)', { line: 23, column: 22 });
|
||||
|
||||
console.log('base64 mapping:', gen.base64Encode());
|
||||
console.log('inline mapping url:', gen.inlineMappingUrl());
|
||||
```
|
||||
|
||||
```
|
||||
base64 mapping: eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlcyI6WyJmb28uanMiLCJiYXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O1VBQ0c7Ozs7Ozs7Ozs7Ozs7O3NCQ0RIO3NCQUNBIn0=
|
||||
inline mapping url: //@ sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlcyI6WyJmb28uanMiLCJiYXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O1VBQ0c7Ozs7Ozs7Ozs7Ozs7O3NCQ0RIO3NCQUNBIn0=
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
### addMappings(sourceFile, mappings, offset)
|
||||
|
||||
```
|
||||
/**
|
||||
* Adds the given mappings to the generator and offsets them if offset is given
|
||||
*
|
||||
* @name addMappings
|
||||
* @function
|
||||
* @param sourceFile {String} name of the source file
|
||||
* @param mappings {Array{{Object}} each object has the form { original: { line: _, column: _ }, generated: { line: _, column: _ } }
|
||||
* @param offset {Object} offset to apply to each mapping. Has the form { line: _, column: _ }
|
||||
* @return {Object} the generator to allow chaining
|
||||
*/
|
||||
```
|
||||
|
||||
### addGeneratedMappings(sourceFile, source, offset)
|
||||
|
||||
```
|
||||
/**
|
||||
* Generates mappings for the given source and adds them, assuming that no translation from original to generated is necessary.
|
||||
*
|
||||
* @name addGeneratedMappings
|
||||
* @function
|
||||
* @param sourceFile {String} name of the source file
|
||||
* @param source {String} source of the file
|
||||
* @param offset {Object} offset to apply to each mapping. Has the form { line: _, column: _ }
|
||||
* @return {Object} the generator to allow chaining
|
||||
*/
|
||||
```
|
||||
|
||||
### addSourceContent(sourceFile, sourceContent)
|
||||
|
||||
```
|
||||
/**
|
||||
* Adds source content for the given source file.
|
||||
*
|
||||
* @name addSourceContent
|
||||
* @function
|
||||
* @param sourceFile {String} The source file for which a mapping is included
|
||||
* @param sourceContent {String} The content of the source file
|
||||
* @return {Object} The generator to allow chaining
|
||||
*/
|
||||
```
|
||||
|
||||
|
||||
### base64Encode()
|
||||
|
||||
```
|
||||
/**
|
||||
* @name base64Encode
|
||||
* @function
|
||||
* @return {String} bas64 encoded representation of the added mappings
|
||||
*/
|
||||
```
|
||||
|
||||
If source contents were added, this will be included in the encoded mappings.
|
||||
|
||||
### inlineMappingUrl()
|
||||
|
||||
```
|
||||
/**
|
||||
* @name inlineMappingUrl
|
||||
* @function
|
||||
* @return {String} comment with base64 encoded representation of the added mappings. Can be inlined at the end of the generated file.
|
||||
*/
|
||||
```
|
8
node_modules/inline-source-map/example/foo-bar.js
generated
vendored
Normal file
8
node_modules/inline-source-map/example/foo-bar.js
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
var generator = require('..');
|
||||
|
||||
var gen = generator()
|
||||
.addMappings('foo.js', [{ original: { line: 2, column: 3 } , generated: { line: 5, column: 10 } }], { line: 5 })
|
||||
.addGeneratedMappings('bar.js', 'var a = 2;\nconsole.log(a)', { line: 23, column: 22 });
|
||||
|
||||
console.log('base64 mapping', gen.base64Encode());
|
||||
console.log('inline mapping url', gen.inlineMappingUrl());
|
135
node_modules/inline-source-map/index.js
generated
vendored
Normal file
135
node_modules/inline-source-map/index.js
generated
vendored
Normal file
@@ -0,0 +1,135 @@
|
||||
'use strict';
|
||||
var SourceMapGenerator = require('source-map').SourceMapGenerator;
|
||||
|
||||
function offsetMapping(mapping, offset) {
|
||||
return { line: offset.line + mapping.line, column: offset.column + mapping.column };
|
||||
}
|
||||
|
||||
function newlinesIn(src) {
|
||||
if (!src) return 0;
|
||||
var newlines = src.match(/\n/g);
|
||||
|
||||
return newlines ? newlines.length : 0;
|
||||
}
|
||||
|
||||
function Generator(opts) {
|
||||
opts = opts || {};
|
||||
this.generator = new SourceMapGenerator({ file: opts.file || '', sourceRoot: opts.sourceRoot || '' });
|
||||
this.sourcesContent = undefined;
|
||||
this.opts = opts;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the given mappings to the generator and offsets them if offset is given
|
||||
*
|
||||
* @name addMappings
|
||||
* @function
|
||||
* @param sourceFile {String} name of the source file
|
||||
* @param mappings {Array{{Object}} each object has the form { original: { line: _, column: _ }, generated: { line: _, column: _ } }
|
||||
* @param offset {Object} offset to apply to each mapping. Has the form { line: _, column: _ }
|
||||
* @return {Object} the generator to allow chaining
|
||||
*/
|
||||
Generator.prototype.addMappings = function (sourceFile, mappings, offset) {
|
||||
var generator = this.generator;
|
||||
|
||||
offset = offset || {};
|
||||
offset.line = offset.hasOwnProperty('line') ? offset.line : 0;
|
||||
offset.column = offset.hasOwnProperty('column') ? offset.column : 0;
|
||||
|
||||
mappings.forEach(function (m) {
|
||||
// only set source if we have original position to handle edgecase (see inline-source-map tests)
|
||||
generator.addMapping({
|
||||
source : m.original ? sourceFile : undefined
|
||||
, original : m.original
|
||||
, generated : offsetMapping(m.generated, offset)
|
||||
});
|
||||
});
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Generates mappings for the given source, assuming that no translation from original to generated is necessary.
|
||||
*
|
||||
* @name addGeneratedMappings
|
||||
* @function
|
||||
* @param sourceFile {String} name of the source file
|
||||
* @param source {String} source of the file
|
||||
* @param offset {Object} offset to apply to each mapping. Has the form { line: _, column: _ }
|
||||
* @return {Object} the generator to allow chaining
|
||||
*/
|
||||
Generator.prototype.addGeneratedMappings = function (sourceFile, source, offset) {
|
||||
var mappings = []
|
||||
, linesToGenerate = newlinesIn(source) + 1;
|
||||
|
||||
for (var line = 1; line <= linesToGenerate; line++) {
|
||||
var location = { line: line, column: 0 };
|
||||
mappings.push({ original: location, generated: location });
|
||||
}
|
||||
|
||||
return this.addMappings(sourceFile, mappings, offset);
|
||||
};
|
||||
|
||||
/**
|
||||
* Adds source content for the given source file.
|
||||
*
|
||||
* @name addSourceContent
|
||||
* @function
|
||||
* @param sourceFile {String} The source file for which a mapping is included
|
||||
* @param sourcesContent {String} The content of the source file
|
||||
* @return {Object} The generator to allow chaining
|
||||
*/
|
||||
Generator.prototype.addSourceContent = function (sourceFile, sourcesContent) {
|
||||
this.sourcesContent = this.sourcesContent || {};
|
||||
this.sourcesContent[sourceFile] = sourcesContent;
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* @name base64Encode
|
||||
* @function
|
||||
* @return {String} bas64 encoded representation of the added mappings
|
||||
*/
|
||||
Generator.prototype.base64Encode = function () {
|
||||
var map = this.toString();
|
||||
return new Buffer(map).toString('base64');
|
||||
};
|
||||
|
||||
/**
|
||||
* @name inlineMappingUrl
|
||||
* @function
|
||||
* @return {String} comment with base64 encoded representation of the added mappings. Can be inlined at the end of the generated file.
|
||||
*/
|
||||
Generator.prototype.inlineMappingUrl = function () {
|
||||
var charset = this.opts.charset || 'utf-8';
|
||||
return '//# sourceMappingURL=data:application/json;charset=' + charset + ';base64,' + this.base64Encode();
|
||||
};
|
||||
|
||||
Generator.prototype.toJSON = function () {
|
||||
var map = this.generator.toJSON();
|
||||
if (!this.sourcesContent) return map;
|
||||
|
||||
var toSourcesContent = (function (s) {
|
||||
if (typeof this.sourcesContent[s] === 'string') {
|
||||
return this.sourcesContent[s];
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}).bind(this);
|
||||
map.sourcesContent = map.sources.map(toSourcesContent);
|
||||
return map;
|
||||
};
|
||||
|
||||
Generator.prototype.toString = function () {
|
||||
return JSON.stringify(this);
|
||||
};
|
||||
|
||||
Generator.prototype._mappings = function () {
|
||||
return this.generator._mappings._array;
|
||||
};
|
||||
|
||||
Generator.prototype.gen = function () {
|
||||
return this.generator;
|
||||
};
|
||||
|
||||
module.exports = function (opts) { return new Generator(opts); };
|
||||
module.exports.Generator = Generator;
|
44
node_modules/inline-source-map/package.json
generated
vendored
Normal file
44
node_modules/inline-source-map/package.json
generated
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"name": "inline-source-map",
|
||||
"version": "0.6.2",
|
||||
"description": "Adds source mappings and base64 encodes them, so they can be inlined in your generated file.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test-main": "tap test/*.js",
|
||||
"test-0.8": "nave use 0.8 npm run test-main",
|
||||
"test-0.10": "nave use 0.10 npm run test-main",
|
||||
"test-0.12": "nave use 0.12 npm run test-main",
|
||||
"test-all": "npm run test-main && npm run test-0.8 && npm run test-0.10 && npm run test-0.12",
|
||||
"test": "if [ -e $TRAVIS ]; then npm run test-all; else npm run test-main; fi"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/thlorenz/inline-source-map.git"
|
||||
},
|
||||
"homepage": "https://github.com/thlorenz/inline-source-map",
|
||||
"dependencies": {
|
||||
"source-map": "~0.5.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"tap": "~0.7.0",
|
||||
"nave": "~0.5.0"
|
||||
},
|
||||
"keywords": [
|
||||
"source",
|
||||
"map",
|
||||
"inline",
|
||||
"base64",
|
||||
"bundle",
|
||||
"generate",
|
||||
"transpile"
|
||||
],
|
||||
"author": {
|
||||
"name": "Thorsten Lorenz",
|
||||
"email": "thlorenz@gmx.de",
|
||||
"url": "http://thlorenz.com"
|
||||
},
|
||||
"license": "MIT",
|
||||
"engine": {
|
||||
"node": ">=0.6"
|
||||
}
|
||||
}
|
342
node_modules/inline-source-map/test/inline-source-map.js
generated
vendored
Normal file
342
node_modules/inline-source-map/test/inline-source-map.js
generated
vendored
Normal file
@@ -0,0 +1,342 @@
|
||||
'use strict';
|
||||
/*jshint asi: true*/
|
||||
|
||||
var test = require('tap').test
|
||||
var generator = require('..');
|
||||
|
||||
var foo = '' + function foo () {
|
||||
var hello = 'hello';
|
||||
var world = 'world';
|
||||
console.log('%s %s', hello, world);
|
||||
}
|
||||
|
||||
var bar = '' + function bar () {
|
||||
console.log('yes?');
|
||||
}
|
||||
|
||||
function decode(base64) {
|
||||
return new Buffer(base64, 'base64').toString();
|
||||
}
|
||||
|
||||
function inspect(obj, depth) {
|
||||
console.error(require('util').inspect(obj, false, depth || 5, true));
|
||||
}
|
||||
|
||||
test('generated mappings', function (t) {
|
||||
|
||||
t.test('one file no offset', function (t) {
|
||||
var gen = generator()
|
||||
.addGeneratedMappings('foo.js', foo)
|
||||
|
||||
t.deepEqual(
|
||||
gen._mappings()
|
||||
, [ { generatedLine: 1,
|
||||
generatedColumn: 0,
|
||||
originalLine: 1,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 2,
|
||||
generatedColumn: 0,
|
||||
originalLine: 2,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 3,
|
||||
generatedColumn: 0,
|
||||
originalLine: 3,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 4,
|
||||
generatedColumn: 0,
|
||||
originalLine: 4,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 5,
|
||||
generatedColumn: 0,
|
||||
originalLine: 5,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null } ]
|
||||
, 'generates correct mappings'
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
JSON.parse(decode(gen.base64Encode()))
|
||||
, {"version":3,"file":"","sources":["foo.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}
|
||||
, 'encodes generated mappings'
|
||||
)
|
||||
t.equal(
|
||||
gen.inlineMappingUrl()
|
||||
, '//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIifQ=='
|
||||
, 'returns correct inline mapping url'
|
||||
)
|
||||
t.end()
|
||||
})
|
||||
|
||||
t.test('two files no offset', function (t) {
|
||||
var gen = generator()
|
||||
.addGeneratedMappings('foo.js', foo)
|
||||
.addGeneratedMappings('bar.js', bar)
|
||||
|
||||
t.deepEqual(
|
||||
gen._mappings()
|
||||
, [ { generatedLine: 1,
|
||||
generatedColumn: 0,
|
||||
originalLine: 1,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 2,
|
||||
generatedColumn: 0,
|
||||
originalLine: 2,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 3,
|
||||
generatedColumn: 0,
|
||||
originalLine: 3,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 4,
|
||||
generatedColumn: 0,
|
||||
originalLine: 4,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 5,
|
||||
generatedColumn: 0,
|
||||
originalLine: 5,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 1,
|
||||
generatedColumn: 0,
|
||||
originalLine: 1,
|
||||
originalColumn: 0,
|
||||
source: 'bar.js',
|
||||
name: null },
|
||||
{ generatedLine: 2,
|
||||
generatedColumn: 0,
|
||||
originalLine: 2,
|
||||
originalColumn: 0,
|
||||
source: 'bar.js',
|
||||
name: null },
|
||||
{ generatedLine: 3,
|
||||
generatedColumn: 0,
|
||||
originalLine: 3,
|
||||
originalColumn: 0,
|
||||
source: 'bar.js',
|
||||
name: null } ]
|
||||
, 'generates correct mappings'
|
||||
)
|
||||
t.deepEqual(
|
||||
JSON.parse(decode(gen.base64Encode()))
|
||||
, {"version":3,"file":"","sources":["foo.js","bar.js"],"names":[],"mappings":"ACAA,ADAA;ACCA,ADAA;ACCA,ADAA;AACA;AACA","sourceRoot": ""}
|
||||
, 'encodes generated mappings'
|
||||
)
|
||||
t.equal(
|
||||
gen.inlineMappingUrl()
|
||||
, '//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5qcyIsImJhci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUNBQSxBREFBO0FDQ0EsQURBQTtBQ0NBLEFEQUE7QUFDQTtBQUNBIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIifQ=='
|
||||
, 'returns correct inline mapping url'
|
||||
)
|
||||
t.end()
|
||||
})
|
||||
|
||||
t.test('one line source', function (t) {
|
||||
var gen = generator().addGeneratedMappings('one-liner.js', 'console.log("line one");')
|
||||
t.deepEqual(
|
||||
gen._mappings()
|
||||
, [ { generatedLine: 1,
|
||||
generatedColumn: 0,
|
||||
originalLine: 1,
|
||||
originalColumn: 0,
|
||||
source: 'one-liner.js',
|
||||
name: null } ]
|
||||
, 'generates correct mappings'
|
||||
)
|
||||
t.end()
|
||||
})
|
||||
|
||||
t.test('with offset', function (t) {
|
||||
var gen = generator()
|
||||
.addGeneratedMappings('foo.js', foo, { line: 20 })
|
||||
.addGeneratedMappings('bar.js', bar, { line: 23, column: 22 })
|
||||
|
||||
t.deepEqual(
|
||||
gen._mappings()
|
||||
, [ { generatedLine: 21,
|
||||
generatedColumn: 0,
|
||||
originalLine: 1,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 22,
|
||||
generatedColumn: 0,
|
||||
originalLine: 2,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 23,
|
||||
generatedColumn: 0,
|
||||
originalLine: 3,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 24,
|
||||
generatedColumn: 0,
|
||||
originalLine: 4,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 25,
|
||||
generatedColumn: 0,
|
||||
originalLine: 5,
|
||||
originalColumn: 0,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 24,
|
||||
generatedColumn: 22,
|
||||
originalLine: 1,
|
||||
originalColumn: 0,
|
||||
source: 'bar.js',
|
||||
name: null },
|
||||
{ generatedLine: 25,
|
||||
generatedColumn: 22,
|
||||
originalLine: 2,
|
||||
originalColumn: 0,
|
||||
source: 'bar.js',
|
||||
name: null },
|
||||
{ generatedLine: 26,
|
||||
generatedColumn: 22,
|
||||
originalLine: 3,
|
||||
originalColumn: 0,
|
||||
source: 'bar.js',
|
||||
name: null } ]
|
||||
, 'generates correct mappings'
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
JSON.parse(decode(gen.base64Encode()))
|
||||
, {"version":3,"file":"","sources":["foo.js","bar.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA,sBCHA;ADIA,sBCHA;sBACA", "sourceRoot": ""}
|
||||
, 'encodes generated mappings with offset'
|
||||
)
|
||||
t.end()
|
||||
})
|
||||
})
|
||||
|
||||
test('given mappings, with one having no original', function (t) {
|
||||
t.test('no offset', function (t) {
|
||||
var gen = generator()
|
||||
.addMappings('foo.js', [{ original: { line: 2, column: 3 } , generated: { line: 5, column: 10 } }])
|
||||
|
||||
// This addresses an edgecase in which a transpiler generates mappings but doesn't include the original position.
|
||||
// If we set source to sourceFile (as usual) in that case, the mappings are considered invalid by the source-map module's
|
||||
// SourceMapGenerator. Keeping source undefined fixes this problem.
|
||||
// Raised issue: https://github.com/thlorenz/inline-source-map/issues/2
|
||||
// Validate function: https://github.com/mozilla/source-map/blob/a3372ea78e662582087dd25ebda999c06424e047/lib/source-map/source-map-generator.js#L232
|
||||
.addMappings('bar.js', [
|
||||
{ original: { line: 6, column: 0 } , generated: { line: 7, column: 20 } }
|
||||
, { generated: { line: 8, column: 30 } }
|
||||
])
|
||||
|
||||
t.deepEqual(
|
||||
gen._mappings()
|
||||
, [ { generatedLine: 5,
|
||||
generatedColumn: 10,
|
||||
originalLine: 2,
|
||||
originalColumn: 3,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 7,
|
||||
generatedColumn: 20,
|
||||
originalLine: 6,
|
||||
originalColumn: 0,
|
||||
source: 'bar.js',
|
||||
name: null },
|
||||
{ generatedLine: 8,
|
||||
generatedColumn: 30,
|
||||
originalLine: false,
|
||||
originalColumn: false,
|
||||
source: undefined,
|
||||
name: null } ]
|
||||
, 'adds correct mappings'
|
||||
)
|
||||
t.deepEqual(
|
||||
JSON.parse(decode(gen.base64Encode()))
|
||||
, {"version":3,"file":"","sources":["foo.js","bar.js"],"names":[],"mappings":";;;;UACG;;oBCIH;8B", sourceRoot: ""}
|
||||
, 'encodes generated mappings'
|
||||
)
|
||||
t.equal(
|
||||
gen.inlineMappingUrl()
|
||||
, '//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5qcyIsImJhci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O1VBQ0c7O29CQ0lIOzhCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIifQ=='
|
||||
, 'returns correct inline mapping url'
|
||||
)
|
||||
t.end()
|
||||
})
|
||||
|
||||
t.test('with offset', function (t) {
|
||||
var gen = generator()
|
||||
.addMappings('foo.js', [{ original: { line: 2, column: 3 } , generated: { line: 5, column: 10 } }], { line: 5 })
|
||||
.addMappings('bar.js', [{ original: { line: 6, column: 0 } , generated: { line: 7, column: 20 } }, { generated: { line: 8, column: 30 } }], { line: 9, column: 3 })
|
||||
|
||||
t.deepEqual(
|
||||
gen._mappings()
|
||||
, [ { generatedLine: 10,
|
||||
generatedColumn: 10,
|
||||
originalLine: 2,
|
||||
originalColumn: 3,
|
||||
source: 'foo.js',
|
||||
name: null },
|
||||
{ generatedLine: 16,
|
||||
generatedColumn: 23,
|
||||
originalLine: 6,
|
||||
originalColumn: 0,
|
||||
source: 'bar.js',
|
||||
name: null },
|
||||
{ generatedLine: 17,
|
||||
generatedColumn: 33,
|
||||
originalLine: false,
|
||||
originalColumn: false,
|
||||
source: undefined,
|
||||
name: null } ]
|
||||
, 'adds correct mappings'
|
||||
)
|
||||
t.deepEqual(
|
||||
JSON.parse(decode(gen.base64Encode()))
|
||||
, {"version":3,"file":"","sources":["foo.js","bar.js"],"names":[],"mappings":";;;;;;;;;UACG;;;;;;uBCIH;iC", sourceRoot: ""}
|
||||
, 'encodes mappings with offset'
|
||||
)
|
||||
t.end()
|
||||
})
|
||||
});
|
||||
|
||||
test('inline mapping url with charset opt', function(t){
|
||||
t.test('set inline mapping url charset to gbk', function(t){
|
||||
var gen = generator({charset: 'gbk'})
|
||||
.addGeneratedMappings('foo.js', foo);
|
||||
t.equal(
|
||||
gen.inlineMappingUrl(),
|
||||
'//# sourceMappingURL=data:application/json;charset=gbk;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIifQ==',
|
||||
'charset set to gbk'
|
||||
);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
t.test('default charset should be utf-8', function(t){
|
||||
var gen = generator()
|
||||
.addGeneratedMappings('foo.js', foo);
|
||||
|
||||
t.equal(
|
||||
gen.inlineMappingUrl(),
|
||||
'//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIifQ==',
|
||||
'charset default to utf-8'
|
||||
);
|
||||
|
||||
t.end();
|
||||
});
|
||||
});
|
143
node_modules/inline-source-map/test/source-content.js
generated
vendored
Normal file
143
node_modules/inline-source-map/test/source-content.js
generated
vendored
Normal file
@@ -0,0 +1,143 @@
|
||||
'use strict';
|
||||
/*jshint asi: true*/
|
||||
|
||||
var test = require('tap').test
|
||||
var generator = require('..');
|
||||
|
||||
var foo = '' + function foo () {
|
||||
var hello = 'hello';
|
||||
var world = 'world';
|
||||
console.log('%s %s', hello, world);
|
||||
}
|
||||
|
||||
var bar = '' + function bar () {
|
||||
console.log('yes?');
|
||||
}
|
||||
|
||||
function decode(base64) {
|
||||
return new Buffer(base64, 'base64').toString();
|
||||
}
|
||||
|
||||
function inspect(obj, depth) {
|
||||
console.log(require('util').inspect(obj, false, depth || 5, true));
|
||||
}
|
||||
|
||||
test('generated mappings', function (t) {
|
||||
|
||||
t.test('one file with source content', function (t) {
|
||||
var gen = generator()
|
||||
.addGeneratedMappings('foo.js', foo)
|
||||
.addSourceContent('foo.js', foo)
|
||||
|
||||
t.deepEqual(
|
||||
gen.toJSON()
|
||||
, { "version": 3,
|
||||
"file": "",
|
||||
"sources": [
|
||||
"foo.js"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "AAAA;AACA;AACA;AACA;AACA",
|
||||
"sourceRoot": "",
|
||||
"sourcesContent": [
|
||||
"function foo() {\n var hello = 'hello';\n var world = 'world';\n console.log('%s %s', hello, world);\n}"
|
||||
],
|
||||
}
|
||||
, 'includes source content'
|
||||
)
|
||||
|
||||
t.equal(
|
||||
decode(gen.base64Encode())
|
||||
, '{"version":3,"sources":["foo.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA","file":"","sourceRoot":"","sourcesContent":["function foo() {\\n var hello = \'hello\';\\n var world = \'world\';\\n console.log(\'%s %s\', hello, world);\\n}"]}'
|
||||
, 'encodes generated mappings including source content'
|
||||
)
|
||||
t.equal(
|
||||
gen.inlineMappingUrl()
|
||||
, '//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBmb28oKSB7XG4gIHZhciBoZWxsbyA9ICdoZWxsbyc7XG4gIHZhciB3b3JsZCA9ICd3b3JsZCc7XG4gIGNvbnNvbGUubG9nKCclcyAlcycsIGhlbGxvLCB3b3JsZCk7XG59Il19'
|
||||
, 'returns correct inline mapping url including source content'
|
||||
)
|
||||
t.end()
|
||||
})
|
||||
|
||||
t.test('two files with source content', function (t) {
|
||||
var gen = generator()
|
||||
.addGeneratedMappings('foo.js', foo)
|
||||
.addSourceContent('foo.js', foo)
|
||||
.addGeneratedMappings('bar.js', bar)
|
||||
.addSourceContent('bar.js', bar)
|
||||
|
||||
t.deepEqual(
|
||||
gen.toJSON()
|
||||
, { "version": 3,
|
||||
"file": "",
|
||||
"sources": [
|
||||
"foo.js",
|
||||
"bar.js"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "ACAA,ADAA;ACCA,ADAA;ACCA,ADAA;AACA;AACA",
|
||||
"sourceRoot": "",
|
||||
"sourcesContent": [
|
||||
"function foo() {\n var hello = 'hello';\n var world = 'world';\n console.log('%s %s', hello, world);\n}",
|
||||
"function bar() {\n console.log('yes?');\n}"
|
||||
],
|
||||
}
|
||||
, 'includes source content for both files'
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
decode(gen.base64Encode())
|
||||
, '{"version":3,"sources":["foo.js","bar.js"],"names":[],"mappings":"ACAA,ADAA;ACCA,ADAA;ACCA,ADAA;AACA;AACA","file":"","sourceRoot":"","sourcesContent":["function foo() {\\n var hello = \'hello\';\\n var world = \'world\';\\n console.log(\'%s %s\', hello, world);\\n}","function bar() {\\n console.log(\'yes?\');\\n}"]}'
|
||||
, 'encodes generated mappings including source content'
|
||||
)
|
||||
t.equal(
|
||||
gen.inlineMappingUrl()
|
||||
, '//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5qcyIsImJhci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUNBQSxBREFBO0FDQ0EsQURBQTtBQ0NBLEFEQUE7QUFDQTtBQUNBIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBmb28oKSB7XG4gIHZhciBoZWxsbyA9ICdoZWxsbyc7XG4gIHZhciB3b3JsZCA9ICd3b3JsZCc7XG4gIGNvbnNvbGUubG9nKCclcyAlcycsIGhlbGxvLCB3b3JsZCk7XG59IiwiZnVuY3Rpb24gYmFyKCkge1xuICBjb25zb2xlLmxvZygneWVzPycpO1xufSJdfQ=='
|
||||
, 'returns correct inline mapping url including source content'
|
||||
)
|
||||
t.end()
|
||||
})
|
||||
|
||||
t.test('two files, only one with source content', function (t) {
|
||||
var gen = generator()
|
||||
.addGeneratedMappings('foo.js', foo)
|
||||
.addGeneratedMappings('bar.js', bar)
|
||||
.addSourceContent('bar.js', bar)
|
||||
|
||||
t.deepEqual(
|
||||
gen.toJSON()
|
||||
, { "version": 3,
|
||||
"file": "",
|
||||
"sources": [
|
||||
"foo.js",
|
||||
"bar.js"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "ACAA,ADAA;ACCA,ADAA;ACCA,ADAA;AACA;AACA",
|
||||
"sourcesContent": [ null, "function bar() {\n console.log('yes?');\n}" ],
|
||||
"sourceRoot": ""
|
||||
}
|
||||
, 'includes source content for the file with source content and [null] for the other file'
|
||||
)
|
||||
|
||||
t.deepEqual(
|
||||
decode(gen.base64Encode())
|
||||
, '{"version":3,"sources":["foo.js","bar.js"],"names":[],"mappings":"ACAA,ADAA;ACCA,ADAA;ACCA,ADAA;AACA;AACA","file":"","sourceRoot":"","sourcesContent":[null,"function bar() {\\n console.log(\'yes?\');\\n}"]}'
|
||||
, 'encodes generated mappings including source content'
|
||||
)
|
||||
t.equal(
|
||||
gen.inlineMappingUrl()
|
||||
, '//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvby5qcyIsImJhci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUNBQSxBREFBO0FDQ0EsQURBQTtBQ0NBLEFEQUE7QUFDQTtBQUNBIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImZ1bmN0aW9uIGJhcigpIHtcbiAgY29uc29sZS5sb2coJ3llcz8nKTtcbn0iXX0='
|
||||
, 'returns correct inline mapping url including source content'
|
||||
)
|
||||
t.end()
|
||||
})
|
||||
|
||||
t.test('one file with empty source', function (t) {
|
||||
var gen = generator()
|
||||
.addGeneratedMappings('empty.js', '')
|
||||
.addSourceContent('empty.js', '')
|
||||
t.deepEqual(gen.toJSON()["sourcesContent"], [""])
|
||||
t.end()
|
||||
});
|
||||
})
|
Reference in New Issue
Block a user