diff --git a/index.js b/index.js index 2e3a739..90e4ee0 100644 --- a/index.js +++ b/index.js @@ -42,7 +42,7 @@ function decodeBase64WithAtob(base64) { } function stripComment(sm) { - return sm.split(',').pop(); + return sm.substring(sm.indexOf(',') + 1); } function readFromFileMap(sm, read) { diff --git a/test/fixtures/map-file-comment-inline-encode-uri-component.css b/test/fixtures/map-file-comment-inline-encode-uri-component.css new file mode 100644 index 0000000..ddd8777 --- /dev/null +++ b/test/fixtures/map-file-comment-inline-encode-uri-component.css @@ -0,0 +1,14 @@ +.header { + background: #444; + border: solid; + padding: 10px; + border-radius: 10px 5px 10px 5px; + color: #b4b472; } + +#main li { + color: green; + margin: 10px; + padding: 10px; + font-size: 18px; } + +/*# sourceMappingURL=data:application/json,%7B%0A%22version%22%3A%20%223%22%2C%0A%22mappings%22%3A%20%22AAAA%2CwBAAyB%3BEACvB%2CUAAU%2CEAAE%2CIAAI%3BEAChB%2CMAAM%2CEAAE%2CKAAK%3BEACb%2COAAO%2CEAAE%2CIAAI%3BEACb%2CaAAa%2CEAAE%2CiBAAiB%3BEAChC%2CKAAK%2CEAAE%2COAAkB%3B%3BAAG3B%2CwBAAyB%3BEACvB%2COAAO%2CEAAE%2CIAAI%3B%3BACTf%2CgBAAiB%3BEACf%2CUAAU%2CEAAE%2CIAAI%3BEAChB%2CKAAK%2CEAAE%2CMAAM%3B%3BAAGf%2CkBAAmB%3BEACjB%2CMAAM%2CEAAE%2CIAAI%3BEACZ%2COAAO%2CEAAE%2CIAAI%3BEACb%2CUAAU%2CEAAE%2CKAAK%3BEACjB%2CaAAa%2CEAAE%2CGAAG%3BEAClB%2CKAAK%2CEAAE%2CKAAK%3B%3BAAEd%2CkBAAmB%3BEACjB%2CKAAK%2CEAAE%2CKAAK%3B%3BAAGd%2CmBAAoB%3BEAClB%2CKAAK%2CEAAE%2CKAAK%3BEACZ%2CMAAM%2CEAAE%2CIAAI%3BEACZ%2COAAO%2CEAAE%2CIAAI%3BEACb%2CSAAS%2CEAAE%2CIAAI%22%2C%0A%22sources%22%3A%20%5B%22.%2Fclient%2Fsass%2Fcore.scss%22%2C%22.%2Fclient%2Fsass%2Fmain.scss%22%5D%2C%0A%22file%22%3A%20%22map-file-comment.css%22%0A%7D */ diff --git a/test/fixtures/map-file-comment-inline-encode-uri.css b/test/fixtures/map-file-comment-inline-encode-uri.css new file mode 100644 index 0000000..9e9faae --- /dev/null +++ b/test/fixtures/map-file-comment-inline-encode-uri.css @@ -0,0 +1,14 @@ +.header { + background: #444; + border: solid; + padding: 10px; + border-radius: 10px 5px 10px 5px; + color: #b4b472; } + +#main li { + color: green; + margin: 10px; + padding: 10px; + font-size: 18px; } + +/*# sourceMappingURL=data:application/json,%7B%0A%22version%22:%20%223%22,%0A%22mappings%22:%20%22AAAA,wBAAyB;EACvB,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,IAAI;EACb,aAAa,EAAE,iBAAiB;EAChC,KAAK,EAAE,OAAkB;;AAG3B,wBAAyB;EACvB,OAAO,EAAE,IAAI;;ACTf,gBAAiB;EACf,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,MAAM;;AAGf,kBAAmB;EACjB,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,KAAK;EACjB,aAAa,EAAE,GAAG;EAClB,KAAK,EAAE,KAAK;;AAEd,kBAAmB;EACjB,KAAK,EAAE,KAAK;;AAGd,mBAAoB;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI%22,%0A%22sources%22:%20%5B%22./client/sass/core.scss%22,%22./client/sass/main.scss%22%5D,%0A%22file%22:%20%22map-file-comment.css%22%0A%7D */ diff --git a/test/map-file-comment.js b/test/map-file-comment.js index 7bf1267..e09dc24 100644 --- a/test/map-file-comment.js +++ b/test/map-file-comment.js @@ -197,3 +197,45 @@ test('\nresolving a /*# sourceMappingURL=data:application/json;base64,... */ sty ) t.end() }) + +test('\nresolving a /*# sourceMappingURL=data:application/json,... */ style comment inside a given css content (encoded with encodeURIComponent)', function(t) { + var css = fs.readFileSync(__dirname + '/fixtures/map-file-comment-inline-encode-uri-component.css', 'utf8') + var conv = convert.fromSource(css) + var sm = conv.toObject() + + t.deepEqual( + sm.sources + , [ './client/sass/core.scss', + './client/sass/main.scss' ] + , 'resolves paths of original sources' + ) + + t.equal(sm.file, 'map-file-comment.css', 'includes filename of generated file') + t.equal( + sm.mappings + , 'AAAA,wBAAyB;EACvB,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,IAAI;EACb,aAAa,EAAE,iBAAiB;EAChC,KAAK,EAAE,OAAkB;;AAG3B,wBAAyB;EACvB,OAAO,EAAE,IAAI;;ACTf,gBAAiB;EACf,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,MAAM;;AAGf,kBAAmB;EACjB,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,KAAK;EACjB,aAAa,EAAE,GAAG;EAClB,KAAK,EAAE,KAAK;;AAEd,kBAAmB;EACjB,KAAK,EAAE,KAAK;;AAGd,mBAAoB;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI' + , 'includes mappings' + ) + t.end() +}) + +test('\nresolving a /*# sourceMappingURL=data:application/json,... */ style comment inside a given css content (encoded with encodeURI)', function(t) { + var css = fs.readFileSync(__dirname + '/fixtures/map-file-comment-inline-encode-uri.css', 'utf8') + var conv = convert.fromSource(css) + var sm = conv.toObject() + + t.deepEqual( + sm.sources + , [ './client/sass/core.scss', + './client/sass/main.scss' ] + , 'resolves paths of original sources' + ) + + t.equal(sm.file, 'map-file-comment.css', 'includes filename of generated file') + t.equal( + sm.mappings + , 'AAAA,wBAAyB;EACvB,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,IAAI;EACb,aAAa,EAAE,iBAAiB;EAChC,KAAK,EAAE,OAAkB;;AAG3B,wBAAyB;EACvB,OAAO,EAAE,IAAI;;ACTf,gBAAiB;EACf,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,MAAM;;AAGf,kBAAmB;EACjB,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,KAAK;EACjB,aAAa,EAAE,GAAG;EAClB,KAAK,EAAE,KAAK;;AAEd,kBAAmB;EACjB,KAAK,EAAE,KAAK;;AAGd,mBAAoB;EAClB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI' + , 'includes mappings' + ) + t.end() +})