Closed charlag closed 3 years ago
Hi! :D
Is source-map-error
a private branch? Can't seem to find it. :)
Sorry, I forgot to push it. Now it should be there. Works with any worker code that is processed somehow (by default it gives source map via URL I think)
There seems to be almost no information online about Workers and source maps. I have honestly no idea why //#sourceMappingURL
is not working inside a worker, it seems like it should.
Is there any examples of this working with other tools or anything? I could be mistaken, but this might just be a browser devtools issue, quite possible they just haven't implemented source maps for workers.
You can try our main repo: https://github.com/tutao/tutanota on master it's still homebrew build system with just calling babel and inline source maps and it works? I also couldn't find more info so I couldn't be more helpful but I thought it might have to do something with nollup:// scheme.
(or you can open https://mail.tutanota.com)
The deployed app is using external source map files. nollup:///
works fine when using //#sourceURL
, Set a breakpoint in the worker, and run the following in the console:
eval('console.log("worker!");\
//# sourceURL=nollup:///hello');
So it's probably something to do with sourceMappingURL not allowing inline source maps inside a worker, or it doesn't like data URIs...
Hm debug build or the app from repo I mentioned above uses inline source maps but what you've shown is very interesting too...
For that build I mentioned, we don't use eval
. That's one big difference I can think of.
Here's what source map looks like:
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIldvcmtlckltcGwuanMiXSwibmFtZXMiOlsic2VsZiIsIkxvZ2dlciIsIldvcmtlckltcGwiLCJicm93c2VyRGF0YSIsIlByb2dyYW1taW5nRXJyb3IiLCJ3b3JrZXJTY29wZSIsIl9xdWV1ZSIsIlF1ZXVlIiwibmF0aXZlQXBwIiwic2V0V29ya2VyUXVldWUiLCJfbmV3RW50cm9weSIsIl9sYXN0RW50cm9weVVwZGF0ZSIsIkRhdGUiLCJnZXRUaW1lIiwic2V0Q29tbWFuZHMiLCJ0ZXN0RWNobyIsIm1lc3NhZ2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsIm1zZyIsImFyZ3MiLCJ0ZXN0RXJyb3IiLCJlcnJvclR5cGVzIiwiQ3J5cHRvRXJyb3IiLCJOb3RBdXRoZW50aWNhdGVkRXJyb3IiLCJFcnJvclR5cGUiLCJlcnJvclR5cGUiLCJyZWplY3QiLCJnZW5lcmF0ZVNpZ251cEtleXMiLCJsb2NhdG9yIiwiY3VzdG9tZXIiLCJhcHBseSIsInNpZ251cCIsImNyZWF0ZUNvbnRhY3RGb3JtVXNlckdyb3VwRGF0YSIsImNyZWF0ZUNvbnRhY3RGb3JtVXNlciIsImNyZWF0ZVNlc3Npb24iLCJsb2dpbiIsImNyZWF0ZUV4dGVybmFsU2Vzc2lvbiIsImxvYWRFeHRlcm5hbFBhc3N3b3JkQ2hhbm5lbHMiLCJzZW5kRXh0ZXJuYWxQYXNzd29yZFNtcyIsInJlc2V0IiwicmVzdW1lU2Vzc2lvbiIsImRlbGV0ZVNlc3Npb24iLCJjaGFuZ2VQYXNzd29yZCIsImRlbGV0ZUFjY291bnQiLCJjcmVhdGVNYWlsRm9sZGVyIiwibWFpbCIsImNyZWF0ZU1haWxEcmFmdCIsImNyZWF0ZURyYWZ0IiwidXBkYXRlTWFpbERyYWZ0IiwidXBkYXRlRHJhZnQiLCJzZW5kTWFpbERyYWZ0Iiwic2VuZERyYWZ0IiwicmVhZEF2YWlsYWJsZUN1c3RvbWVyU3RvcmFnZSIsInJlYWRVc2VkQ3VzdG9tZXJTdG9yYWdlIiwicmVzdFJlcXVlc3QiLCJPYmplY3QiLCJhc3NpZ24iLCJjcmVhdGVBdXRoSGVhZGVycyIsInJlc3RDbGllbnQiLCJyZXF1ZXN0IiwiZW50aXR5UmVxdWVzdCIsImNhY2hlIiwic2VydmljZVJlcXVlc3QiLCJfc2VydmljZSIsImRvd25sb2FkRmlsZUNvbnRlbnQiLCJmaWxlIiwiZG93bmxvYWRGaWxlQ29udGVudE5hdGl2ZSIsImFkZE1haWxBbGlhcyIsIm1haWxBZGRyZXNzIiwic2V0TWFpbEFsaWFzU3RhdHVzIiwiaXNNYWlsQWRkcmVzc0F2YWlsYWJsZSIsImdldEFsaWFzQ291bnRlcnMiLCJjaGFuZ2VVc2VyUGFzc3dvcmQiLCJ1c2VyTWFuYWdlbWVudCIsImNoYW5nZUFkbWluRmxhZyIsInVwZGF0ZUFkbWluc2hpcCIsInN3aXRjaEZyZWVUb1ByZW1pdW1Hcm91cCIsInN3aXRjaFByZW1pdW1Ub0ZyZWVHcm91cCIsInVwZGF0ZVBheW1lbnREYXRhIiwiZG93bmxvYWRJbnZvaWNlIiwicmVhZFVzZWRVc2VyU3RvcmFnZSIsImRlbGV0ZVVzZXIiLCJnZXRQcmljZSIsImJvb2tpbmdGYWNhZGUiLCJnZXRDdXJyZW50UHJpY2UiLCJsb2FkQ3VzdG9tZXJTZXJ2ZXJQcm9wZXJ0aWVzIiwiYWRkU3BhbVJ1bGUiLCJlZGl0U3BhbVJ1bGUiLCJjcmVhdGVVc2VyIiwicmVhZFVzZWRHcm91cFN0b3JhZ2UiLCJncm91cE1hbmFnZW1lbnQiLCJjcmVhdGVNYWlsR3JvdXAiLCJjcmVhdGVMb2NhbEFkbWluR3JvdXAiLCJhZGRVc2VyVG9Hcm91cCIsInJlbW92ZVVzZXJGcm9tR3JvdXAiLCJkZWFjdGl2YXRlR3JvdXAiLCJsb2FkQ29udGFjdEZvcm1CeVBhdGgiLCJsb2FkQ29udGFjdEZvcm0iLCJhZGREb21haW4iLCJyZW1vdmVEb21haW4iLCJzZXRDYXRjaEFsbEdyb3VwIiwidXBsb2FkQ2VydGlmaWNhdGUiLCJkZWxldGVDZXJ0aWZpY2F0ZSIsImdlbmVyYXRlVG90cFNlY3JldCIsImdldFRvdHBWZXJpZmllciIsInRoZW4iLCJ0b3RwIiwiZ2VuZXJhdGVTZWNyZXQiLCJnZW5lcmF0ZVRvdHBDb2RlIiwiZ2VuZXJhdGVUb3RwIiwic2VhcmNoIiwiZW5hYmxlTWFpbEluZGV4aW5nIiwiaW5kZXhlciIsImRpc2FibGVNYWlsSW5kZXhpbmciLCJleHRlbmRNYWlsSW5kZXgiLCJjYW5jZWxNYWlsSW5kZXhpbmciLCJyZWFkQ291bnRlclZhbHVlIiwiY291bnRlcnMiLCJjYW5jZWxDcmVhdGVTZXNzaW9uIiwiZW50cm9weSIsImFkZEVudHJvcHkiLCJ0cnlSZWNvbm5lY3RFdmVudEJ1cyIsImV2ZW50QnVzQ2xpZW50IiwidHJ5UmVjb25uZWN0IiwiZ2VuZXJhdGVTc2VQdXNoSWRlbnRpZmVyIiwiZGVjcnlwdFVzZXJQYXNzd29yZCIsImNsb3NlRXZlbnRCdXMiLCJjbG9zZSIsImdldE1vcmVTZWFyY2hSZXN1bHRzIiwicmV0dXJuIiwiZ2V0UmVjb3ZlcnlDb2RlIiwiZ2V0UmVjb3ZlckNvZGUiLCJjcmVhdGVSZWNvdmVyeUNvZGUiLCJyZWNvdmVyTG9naW4iLCJyZXNldFNlY29uZEZhY3RvcnMiLCJ0YWtlT3ZlckRlbGV0ZWRBZGRyZXNzIiwicmVzZXRTZXNzaW9uIiwiY3JlYXRlQ2FsZW5kYXJFdmVudCIsImNhbGVuZGFyIiwidXBkYXRlQ2FsZW5kYXJFdmVudCIsInJlc29sdmVTZXNzaW9uS2V5Iiwic2siLCJhZGRDYWxlbmRhciIsInNjaGVkdWxlQWxhcm1zRm9yTmV3RGV2aWNlIiwibG9hZEFsYXJtRXZlbnRzIiwiZ2V0RG9tYWluVmFsaWRhdGlvblJlY29yZCIsInZpc2liaWxpdHlDaGFuZ2UiLCJvblZpc2liaWxpdHlDaGFuZ2VkIiwiZ2V0TG9nIiwiZ2xvYmFsIiwibG9nZ2VyIiwiZ2V0RW50cmllcyIsInNlbmRHcm91cEludml0YXRpb24iLCJzaGFyZSIsImFjY2VwdEdyb3VwSW52aXRhdGlvbiIsInJlamVjdEdyb3VwSW52aXRhdGlvbiIsImNoZWNrTWFpbEZvclBoaXNoaW5nIiwiZ2V0RXZlbnRCeVVpZCIsIm9uUG9zc2libHlVbmhhbmRsZWRSZWplY3Rpb24iLCJzZW5kRXJyb3IiLCJlIiwib25lcnJvciIsInNvdXJjZSIsImxpbmVubyIsImNvbG5vIiwiZXJyb3IiLCJjb25zb2xlIiwiRXJyb3IiLCJlcnIiLCJsaW5lTnVtYmVyIiwiY29sdW1uTnVtYmVyIiwiZmlsZU5hbWUiLCJUb3RwVmVyaWZpZXIiLCJyYW5kb20iLCJyZWR1Y2UiLCJzdW0iLCJ2YWx1ZSIsIm5vdyIsInN0b3JlRW50cm9weSIsImRhdGEiLCJldmVudE93bmVyR3JvdXBJZCIsInBvc3RNZXNzYWdlIiwiUmVxdWVzdCIsInByb2dyZXNzUGVyY2VudGFnZSIsImZyb21DYWxsYmFjayIsInNldFRpbWVvdXQiLCJjYiIsInN0YXRlIiwibG9nIiwidXBkYXRlIiwidG90YWxXb3JrIiwicmVmZXJlbmNlIiwic3RhdHVzIl0sIm1hcHBpbmdzIjoiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7Ozs7QUFLQSx3RDs7OztBQUlBOztBQUVBLElBQUksT0FBT0EsSUFBUCxLQUFnQixXQUFwQixFQUFpQztBQUNoQyxrQ0FBb0JBLElBQXBCLEVBQTBCLElBQUlDLGNBQUosRUFBMUI7QUFDQSxDOztBQUVZQyxVLFdBQUFBLFU7Ozs7OztBQU1aLHFCQUFZRixJQUFaLEVBQStDRyxXQUEvQyxFQUF5RTtBQUN4RSxNQUFJQSxlQUFlLElBQW5CLEVBQXlCO0FBQ3hCLFNBQU0sSUFBSUMsa0NBQUosQ0FBcUIsMkJBQXJCLENBQU47QUFDQTtBQUNELE1BQU1DLGNBQWNMLElBQXBCO0FBQ0EsT0FBS00sTUFBTCxHQUFjLElBQUlDLHFCQUFKLENBQVVGLFdBQVYsQ0FBZDtBQUNBRywyQkFBVUMsY0FBVixDQUF5QixLQUFLSCxNQUE5QjtBQUNBLE9BQUtJLFdBQUwsR0FBbUIsQ0FBQyxDQUFwQjtBQUNBLE9BQUtDLGtCQUFMLEdBQTBCLElBQUlDLElBQUosR0FBV0MsT0FBWCxFQUExQjs7QUFFQSxrQ0FBWSxJQUFaLEVB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cyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG5pbXBvcnQge2Vycm9yVG9PYmosIFF1ZXVlLCBSZXF1ZXN0fSBmcm9tIFwiLi4vY29tbW9uL1dvcmtlclByb3RvY29sXCJcbmltcG9ydCB7Q3J5cHRvRXJyb3J9IGZyb20gXCIuLi9jb21tb24vZXJyb3IvQ3J5cHRvRXJyb3JcIlxuaW1wb3J0IHtib29raW5nRmFjYWRlfSBmcm9tIFwiLi9mYWNhZGVzL0Jvb2tpbmdGYWNhZGVcIlxuaW1wb3J0IHtOb3RBdXRoZW50aWNhdGVkRXJyb3J9IGZyb20gXCIuLi9jb21tb24vZXJyb3IvUmVzdEVycm9yXCJcbmltcG9ydCB7UHJvZ3JhbW1pbmdFcnJvcn0gZnJvbSBcIi4uL2NvbW1vbi9lcnJvci9Qcm9ncmFtbWluZ0Vycm9yXCJcbmltcG9ydCB7aW5pdExvY2F0b3IsIGxvY2F0b3IsIHJlc2V0TG9jYXRvcn0gZnJvbSBcIi4vV29ya2VyTG9jYXRvclwiXG5pbXBvcnQge19zZXJ2aWNlfSBmcm9tIFwiLi9yZXN0L1NlcnZpY2VSZXN0Q2xpZW50XCJcbmltcG9ydCB7cmFuZG9tfSBmcm9tIFwiLi9jcnlwdG8vUmFuZG9taXplclwiXG5pbXBvcnQge2Fzc2VydFdvcmtlck9yTm9kZSwgaXNNYWluT3JOb2RlfSBmcm9tIFwiLi4vRW52XCJcbmltcG9ydCB7bmF0aXZlQXBwfSBmcm9tIFwiLi4vLi4vbmF0aXZlL05hdGl2ZVdyYXBwZXJcIlxuaW1wb3J0IHtUb3RwVmVyaWZpZXJ9IGZyb20gXCIuL2NyeXB0by9Ub3RwVmVyaWZpZXJcIlxuaW1wb3J0IHR5cGUge0VudHJvcHlTcmNFbnVtfSBmcm9tIFwiLi4vY29tbW9uL1R1dGFub3RhQ29uc3RhbnRzXCJcbmltcG9ydCB7bG9hZENvbnRhY3RGb3JtfSBmcm9tIFwiLi9mYWNhZGVzL0NvbnRhY3RGb3JtRmFjYWRlXCJcbmltcG9ydCB7a2V5VG9CYXNlNjR9IGZyb20gXCIuL2NyeXB0by9DcnlwdG9VdGlsc1wiXG5pbXBvcnQge2FlczI1NlJhbmRvbUtleX0gZnJvbSBcIi4vY3J5cHRvL0Flc1wiXG5pbXBvcnQgdHlwZSB7QnJvd3NlckRhdGF9IGZyb20gXCIuLi8uLi9taXNjL0NsaWVudENvbnN0YW50c1wiXG5pbXBvcnQgdHlwZSB7SW5mb01lc3NhZ2V9IGZyb20gXCIuLi9jb21tb24vQ29tbW9uVHlwZXNcIlxuaW1wb3J0IHtyZXNvbHZlU2Vzc2lvbktleX0gZnJvbSBcIi4vY3J5cHRvL0NyeXB0b0ZhY2FkZVwiXG5pbXBvcnQge0xvZ2dlciwgcmVwbGFjZU5hdGl2ZUxvZ2dlcn0gZnJvbSBcIi4uL2NvbW1vbi9Mb2dnZXJcIlxuaW1wb3J0IHtkb3duY2FzdH0gZnJvbSBcIi4uL2NvbW1vbi91dGlscy9VdGlsc1wiXG5pbXBvcnQgdHlwZSB7Q29udGFjdEZvcm1BY2NvdW50UmV0dXJufSBmcm9tIFwiLi4vZW50aXRpZXMvdHV0YW5vdGEvQ29udGFjdEZvcm1BY2NvdW50UmV0dXJuXCJcbmltcG9ydCB0eXBlIHtQYXltZW50RGF0YVNlcnZpY2VQdXRSZXR1cm59IGZyb20gXCIuLi9lbnRpdGllcy9zeXMvUGF5bWVudERhdGFTZXJ2aWNlUHV0UmV0dXJuXCJcbmltcG9ydCB0eXBlIHtFbnRpdHlVcGRhdGV9IGZyb20gXCIuLi9lbnRpdGllcy9zeXMvRW50aXR5VXBkYXRlXCJcbmltcG9ydCB0eXBlIHtXZWJzb2NrZXRDb3VudGVyRGF0YX0gZnJvbSBcIi4uL2VudGl0aWVzL3N5cy9XZWJzb2NrZXRDb3VudGVyRGF0YVwiXG5pbXBvcnQge0xhenlMb2FkZWR9IGZyb20gXCIuLi9jb21tb24vdXRpbHMvTGF6eUxvYWRlZFwiXG5pbXBvcnQgdHlwZSB7UHJvZ3Jlc3NNb25pdG9ySWR9IGZyb20gXCIuLi9jb21tb24vdXRpbHMvUHJvZ3Jlc3NNb25pdG9yXCI7XG5pbXBvcnQgdHlwZSB7V2Vic29ja2V0TGVhZGVyU3RhdHVzfSBmcm9tIFwiLi4vZW50aXRpZXMvc3lzL1dlYnNvY2tldExlYWRlclN0YXR1c1wiXG5cbmFzc2VydFdvcmtlck9yTm9kZSgpXG5cbmlmICh0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIikge1xuXHRyZXBsYWNlTmF0aXZlTG9nZ2VyKHNlbGYsIG5ldyBMb2dnZXIoKSlcbn1cblxuZXhwb3J0IGNsYXNzIFdvcmtlckltcGwge1xuXG5cdF9xdWV1ZTogUXVldWU7XG5cdF9uZXdFbnRyb3B5OiBudW1iZXI7XG5cdF9sYXN0RW50cm9weVVwZGF0ZTogbnVtYmVyO1xuXG5cdGNvbnN0cnVjdG9yKHNlbGY6ID9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSwgYnJvd3NlckRhdGE6IEJyb3dzZXJEYXRhKSB7XG5cdFx0aWYgKGJyb3dzZXJEYXRhID09IG51bGwpIHtcblx0XHRcdHRocm93IG5ldyBQcm9ncmFtbWluZ0Vycm9yKFwiQnJvd3NlcmRhdGEgaXMgbm90IHBhc3NlZFwiKVxuXHRcdH1cblx0XHRjb25zdCB3b3JrZXJTY29wZSA9IHNlbGZcblx0XHR0aGlzLl9xdWV1ZSA9IG5ldyBRdWV1ZSh3b3JrZXJTY29wZSlcblx0XHRuYXRpdmVBcHAuc2V0V29ya2VyUXVldWUodGhpcy5fcXVldWUpXG5cdFx0dGhpcy5fbmV3RW50cm9weSA9IC0xXG5cdFx0dGhpcy5fbGFzdEVudHJvcHlVcGRhdGUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKVxuXG5cdFx0aW5pdExvY2F0b3IodGhpcywgYnJvd3NlckRhdGEpO1xuXG5cdFx0dGhpcy5fcXVldWUuc2V0Q29tbWFuZHMoe1xuXHRcdFx0dGVzdEVjaG86IChtZXNzYWdlOiBhbnkpID0+IFByb21pc2UucmVzb2x2ZSh7bXNnOiBcIj4+PiBcIiArIG1lc3NhZ2UuYXJnc1swXS5tc2d9KSxcblx0XHRcdHRlc3RFcnJvcjogKG1lc3NhZ2U6IGFueSkgPT4ge1xuXHRcdFx0XHRjb25zdCBlcnJvclR5cGVzID0ge1xuXHRcdFx0XHRcdFByb2dyYW1taW5nRXJyb3IsXG5cdFx0XHRcdFx0Q3J5cHRvRXJyb3IsXG5cdFx0XHRcdFx0Tm90QXV0aGVudGljYXRlZEVycm9yXG5cdFx0XHRcdH1cblx0XHRcdFx0bGV0IEVycm9yVHlwZSA9IGVycm9yVHlwZXNbbWVzc2FnZS5hcmdzWzBdLmVycm9yVHlwZV1cblx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvclR5cGUoYHd0ZjogJHttZXNzYWdlLmFyZ3NbMF0uZXJyb3JUeXBlfWApKVxuXHRcdFx0fSxcblx0XHRcdGdlbmVyYXRlU2lnbnVwS2V5czogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IuY3VzdG9tZXIuZ2VuZXJhdGVTaWdudXBLZXlzLmFwcGx5KGxvY2F0b3IuY3VzdG9tZXIsIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRzaWdudXA6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLmN1c3RvbWVyLnNpZ251cC5hcHBseShsb2NhdG9yLmN1c3RvbWVyLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0Y3JlYXRlQ29udGFjdEZvcm1Vc2VyR3JvdXBEYXRhOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5jdXN0b21lci5jcmVhdGVDb250YWN0Rm9ybVVzZXJHcm91cERhdGEuYXBwbHkobG9jYXRvci5jdXN0b21lciwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdGNyZWF0ZUNvbnRhY3RGb3JtVXNlcjogKG1lc3NhZ2U6IFJlcXVlc3QpOiBQcm9taXNlPENvbnRhY3RGb3JtQWNjb3VudFJldHVybj4gPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5jdXN0b21lci5jcmVhdGVDb250YWN0Rm9ybVVzZXIuYXBwbHkobG9jYXRvci5jdXN0b21lciwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdGNyZWF0ZVNlc3Npb246IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLmxvZ2luLmNyZWF0ZVNlc3Npb24uYXBwbHkobG9jYXRvci5sb2dpbiwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdGNyZWF0ZUV4dGVybmFsU2Vzc2lvbjogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IubG9naW4uY3JlYXRlRXh0ZXJuYWxTZXNzaW9uLmFwcGx5KGxvY2F0b3IubG9naW4sIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRsb2FkRXh0ZXJuYWxQYXNzd29yZENoYW5uZWxzOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5sb2dpbi5sb2FkRXh0ZXJuYWxQYXNzd29yZENoYW5uZWxzLmFwcGx5KGxvY2F0b3IubG9naW4sIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRzZW5kRXh0ZXJuYWxQYXNzd29yZFNtczogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IubG9naW4uc2VuZEV4dGVybmFsUGFzc3dvcmRTbXMuYXBwbHkobG9jYXRvci5sb2dpbiwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdHJlc2V0OiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gcmVzZXRMb2NhdG9yKClcblx0XHRcdH0sXG5cdFx0XHRyZXN1bWVTZXNzaW9uOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5sb2dpbi5yZXN1bWVTZXNzaW9uLmFwcGx5KGxvY2F0b3IubG9naW4sIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRkZWxldGVTZXNzaW9uOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5sb2dpbi5kZWxldGVTZXNzaW9uLmFwcGx5KGxvY2F0b3IubG9naW4sIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRjaGFuZ2VQYXNzd29yZDogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IubG9naW4uY2hhbmdlUGFzc3dvcmQuYXBwbHkobG9jYXRvci5sb2dpbiwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdGRlbGV0ZUFjY291bnQ6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLmxvZ2luLmRlbGV0ZUFjY291bnQuYXBwbHkobG9jYXRvci5sb2dpbiwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdGNyZWF0ZU1haWxGb2xkZXI6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLm1haWwuY3JlYXRlTWFpbEZvbGRlci5hcHBseShsb2NhdG9yLm1haWwsIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRjcmVhdGVNYWlsRHJhZnQ6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLm1haWwuY3JlYXRlRHJhZnQuYXBwbHkobG9jYXRvci5tYWlsLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0dXBkYXRlTWFpbERyYWZ0OiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5tYWlsLnVwZGF0ZURyYWZ0LmFwcGx5KGxvY2F0b3IubWFpbCwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdHNlbmRNYWlsRHJhZnQ6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLm1haWwuc2VuZERyYWZ0LmFwcGx5KGxvY2F0b3IubWFpbCwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdHJlYWRBdmFpbGFibGVDdXN0b21lclN0b3JhZ2U6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLmN1c3RvbWVyLnJlYWRBdmFpbGFibGVDdXN0b21lclN0b3JhZ2UuYXBwbHkobG9jYXRvci5jdXN0b21lciwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdHJlYWRVc2VkQ3VzdG9tZXJTdG9yYWdlOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5jdXN0b21lci5yZWFkVXNlZEN1c3RvbWVyU3RvcmFnZS5hcHBseShsb2NhdG9yLmN1c3RvbWVyLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0cmVzdFJlcXVlc3Q6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdG1lc3NhZ2UuYXJnc1szXSA9IE9iamVjdC5hc3NpZ24obG9jYXRvci5sb2dpbi5jcmVhdGVBdXRoSGVhZGVycygpLCBtZXNzYWdlLmFyZ3NbM10pXG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLnJlc3RDbGllbnQucmVxdWVzdC5hcHBseShsb2NhdG9yLnJlc3RDbGllbnQsIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRlbnRpdHlSZXF1ZXN0OiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5jYWNoZS5lbnRpdHlSZXF1ZXN0LmFwcGx5KGxvY2F0b3IuY2FjaGUsIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRzZXJ2aWNlUmVxdWVzdDogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIF9zZXJ2aWNlLmFwcGx5KG51bGwsIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRkb3dubG9hZEZpbGVDb250ZW50OiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5maWxlLmRvd25sb2FkRmlsZUNvbnRlbnQuYXBwbHkobG9jYXRvci5maWxlLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0ZG93bmxvYWRGaWxlQ29udGVudE5hdGl2ZTogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IuZmlsZS5kb3dubG9hZEZpbGVDb250ZW50TmF0aXZlLmFwcGx5KGxvY2F0b3IuZmlsZSwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdGFkZE1haWxBbGlhczogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IubWFpbEFkZHJlc3MuYWRkTWFpbEFsaWFzLmFwcGx5KGxvY2F0b3IubWFpbEFkZHJlc3MsIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRzZXRNYWlsQWxpYXNTdGF0dXM6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLm1haWxBZGRyZXNzLnNldE1haWxBbGlhc1N0YXR1cy5hcHBseShsb2NhdG9yLm1haWxBZGRyZXNzLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0aXNNYWlsQWRkcmVzc0F2YWlsYWJsZTogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IubWFpbEFkZHJlc3MuaXNNYWlsQWRkcmVzc0F2YWlsYWJsZS5hcHBseShsb2NhdG9yLm1haWxBZGRyZXNzLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0Z2V0QWxpYXNDb3VudGVyczogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IubWFpbEFkZHJlc3MuZ2V0QWxpYXNDb3VudGVycy5hcHBseShsb2NhdG9yLm1haWxBZGRyZXNzLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0Y2hhbmdlVXNlclBhc3N3b3JkOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci51c2VyTWFuYWdlbWVudC5jaGFuZ2VVc2VyUGFzc3dvcmQuYXBwbHkobG9jYXRvci51c2VyTWFuYWdlbWVudCwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdGNoYW5nZUFkbWluRmxhZzogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IudXNlck1hbmFnZW1lbnQuY2hhbmdlQWRtaW5GbGFnLmFwcGx5KGxvY2F0b3IudXNlck1hbmFnZW1lbnQsIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHR1cGRhdGVBZG1pbnNoaXA6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLnVzZXJNYW5hZ2VtZW50LnVwZGF0ZUFkbWluc2hpcC5hcHBseShsb2NhdG9yLnVzZXJNYW5hZ2VtZW50LCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0c3dpdGNoRnJlZVRvUHJlbWl1bUdyb3VwKG1lc3NhZ2U6IFJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IuY3VzdG9tZXIuc3dpdGNoRnJlZVRvUHJlbWl1bUdyb3VwLmFwcGx5KGxvY2F0b3IuY3VzdG9tZXIsIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRzd2l0Y2hQcmVtaXVtVG9GcmVlR3JvdXAobWVzc2FnZTogUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5jdXN0b21lci5zd2l0Y2hQcmVtaXVtVG9GcmVlR3JvdXAuYXBwbHkobG9jYXRvci5jdXN0b21lciwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdHVwZGF0ZVBheW1lbnREYXRhKG1lc3NhZ2U6IFJlcXVlc3QpOiBQcm9taXNlPFBheW1lbnREYXRhU2VydmljZVB1dFJldHVybj4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5jdXN0b21lci51cGRhdGVQYXltZW50RGF0YS5hcHBseShsb2NhdG9yLmN1c3RvbWVyLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0ZG93bmxvYWRJbnZvaWNlKG1lc3NhZ2U6IFJlcXVlc3QpOiBQcm9taXNlPERhdGFGaWxlPiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLmN1c3RvbWVyLmRvd25sb2FkSW52b2ljZS5hcHBseShsb2NhdG9yLmN1c3RvbWVyLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0cmVhZFVzZWRVc2VyU3RvcmFnZTogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IudXNlck1hbmFnZW1lbnQucmVhZFVzZWRVc2VyU3RvcmFnZS5hcHBseShsb2NhdG9yLnVzZXJNYW5hZ2VtZW50LCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0ZGVsZXRlVXNlcjogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IudXNlck1hbmFnZW1lbnQuZGVsZXRlVXNlci5hcHBseShsb2NhdG9yLnVzZXJNYW5hZ2VtZW50LCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0Z2V0UHJpY2U6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBib29raW5nRmFjYWRlLmdldFByaWNlLmFwcGx5KGJvb2tpbmdGYWNhZGUsIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRnZXRDdXJyZW50UHJpY2U6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBib29raW5nRmFjYWRlLmdldEN1cnJlbnRQcmljZSgpXG5cdFx0XHR9LFxuXG5cdFx0XHRsb2FkQ3VzdG9tZXJTZXJ2ZXJQcm9wZXJ0aWVzOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5jdXN0b21lci5sb2FkQ3VzdG9tZXJTZXJ2ZXJQcm9wZXJ0aWVzLmFwcGx5KGxvY2F0b3IuY3VzdG9tZXIsIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRhZGRTcGFtUnVsZTogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IuY3VzdG9tZXIuYWRkU3BhbVJ1bGUoLi4ubWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdGVkaXRTcGFtUnVsZTogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IuY3VzdG9tZXIuZWRpdFNwYW1SdWxlKC4uLm1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRjcmVhdGVVc2VyOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci51c2VyTWFuYWdlbWVudC5jcmVhdGVVc2VyLmFwcGx5KGxvY2F0b3IudXNlck1hbmFnZW1lbnQsIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRyZWFkVXNlZEdyb3VwU3RvcmFnZTogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IuZ3JvdXBNYW5hZ2VtZW50LnJlYWRVc2VkR3JvdXBTdG9yYWdlLmFwcGx5KGxvY2F0b3IuZ3JvdXBNYW5hZ2VtZW50LCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0Y3JlYXRlTWFpbEdyb3VwOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5ncm91cE1hbmFnZW1lbnQuY3JlYXRlTWFpbEdyb3VwLmFwcGx5KGxvY2F0b3IuZ3JvdXBNYW5hZ2VtZW50LCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0Y3JlYXRlTG9jYWxBZG1pbkdyb3VwOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5ncm91cE1hbmFnZW1lbnQuY3JlYXRlTG9jYWxBZG1pbkdyb3VwLmFwcGx5KGxvY2F0b3IuZ3JvdXBNYW5hZ2VtZW50LCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0YWRkVXNlclRvR3JvdXA6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLmdyb3VwTWFuYWdlbWVudC5hZGRVc2VyVG9Hcm91cC5hcHBseShsb2NhdG9yLmdyb3VwTWFuYWdlbWVudCwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdHJlbW92ZVVzZXJGcm9tR3JvdXA6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLmdyb3VwTWFuYWdlbWVudC5yZW1vdmVVc2VyRnJvbUdyb3VwLmFwcGx5KGxvY2F0b3IuZ3JvdXBNYW5hZ2VtZW50LCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0ZGVhY3RpdmF0ZUdyb3VwOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5ncm91cE1hbmFnZW1lbnQuZGVhY3RpdmF0ZUdyb3VwLmFwcGx5KGxvY2F0b3IuZ3JvdXBNYW5hZ2VtZW50LCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0bG9hZENvbnRhY3RGb3JtQnlQYXRoOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9hZENvbnRhY3RGb3JtLmFwcGx5KG51bGwsIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRhZGREb21haW46IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLmN1c3RvbWVyLmFkZERvbWFpbi5hcHBseShsb2NhdG9yLmN1c3RvbWVyLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0cmVtb3ZlRG9tYWluOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5jdXN0b21lci5yZW1vdmVEb21haW4uYXBwbHkobG9jYXRvci5jdXN0b21lciwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdHNldENhdGNoQWxsR3JvdXA6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLmN1c3RvbWVyLnNldENhdGNoQWxsR3JvdXAuYXBwbHkobG9jYXRvci5jdXN0b21lciwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdHVwbG9hZENlcnRpZmljYXRlOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5jdXN0b21lci51cGxvYWRDZXJ0aWZpY2F0ZS5hcHBseShsb2NhdG9yLmN1c3RvbWVyLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0ZGVsZXRlQ2VydGlmaWNhdGU6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLmN1c3RvbWVyLmRlbGV0ZUNlcnRpZmljYXRlLmFwcGx5KGxvY2F0b3IuY3VzdG9tZXIsIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRnZW5lcmF0ZVRvdHBTZWNyZXQ6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiB0aGlzLmdldFRvdHBWZXJpZmllcigpLnRoZW4odG90cCA9PiB0b3RwLmdlbmVyYXRlU2VjcmV0LmFwcGx5KHRvdHAsIG1lc3NhZ2UuYXJncykpXG5cdFx0XHR9LFxuXHRcdFx0Z2VuZXJhdGVUb3RwQ29kZTogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0VG90cFZlcmlmaWVyKCkudGhlbih0b3RwID0+IHRvdHAuZ2VuZXJhdGVUb3RwLmFwcGx5KHRvdHAsIG1lc3NhZ2UuYXJncykpXG5cdFx0XHR9LFxuXHRcdFx0c2VhcmNoOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5zZWFyY2guc2VhcmNoLmFwcGx5KGxvY2F0b3Iuc2VhcmNoLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0ZW5hYmxlTWFpbEluZGV4aW5nOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5pbmRleGVyLmVuYWJsZU1haWxJbmRleGluZygpXG5cdFx0XHR9LFxuXHRcdFx0ZGlzYWJsZU1haWxJbmRleGluZzogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IuaW5kZXhlci5kaXNhYmxlTWFpbEluZGV4aW5nKClcblx0XHRcdH0sXG5cblx0XHRcdGV4dGVuZE1haWxJbmRleDogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IuaW5kZXhlci5leHRlbmRNYWlsSW5kZXguYXBwbHkobG9jYXRvci5pbmRleGVyLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0Y2FuY2VsTWFpbEluZGV4aW5nOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5pbmRleGVyLmNhbmNlbE1haWxJbmRleGluZygpXG5cdFx0XHR9LFxuXHRcdFx0cmVhZENvdW50ZXJWYWx1ZTogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IuY291bnRlcnMucmVhZENvdW50ZXJWYWx1ZS5hcHBseShsb2NhdG9yLmNvdW50ZXJzLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0Y2FuY2VsQ3JlYXRlU2Vzc2lvbjogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0bG9jYXRvci5sb2dpbi5jYW5jZWxDcmVhdGVTZXNzaW9uKClcblx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG5cdFx0XHR9LFxuXHRcdFx0ZW50cm9weTogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuYWRkRW50cm9weShtZXNzYWdlLmFyZ3NbMF0pXG5cdFx0XHR9LFxuXHRcdFx0dHJ5UmVjb25uZWN0RXZlbnRCdXMobWVzc2FnZTogUmVxdWVzdCkge1xuXHRcdFx0XHRsb2NhdG9yLmV2ZW50QnVzQ2xpZW50LnRyeVJlY29ubmVjdC5hcHBseShsb2NhdG9yLmV2ZW50QnVzQ2xpZW50LCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuXHRcdFx0fSxcblx0XHRcdGdlbmVyYXRlU3NlUHVzaElkZW50aWZlcjogKCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGtleVRvQmFzZTY0KGFlczI1NlJhbmRvbUtleSgpKSlcblx0XHRcdH0sXG5cdFx0XHRkZWNyeXB0VXNlclBhc3N3b3JkOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5sb2dpbi5kZWNyeXB0VXNlclBhc3N3b3JkLmFwcGx5KGxvY2F0b3IubG9naW4sIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRjbG9zZUV2ZW50QnVzOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRsb2NhdG9yLmV2ZW50QnVzQ2xpZW50LmNsb3NlKG1lc3NhZ2UuYXJnc1swXSlcblx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG5cdFx0XHR9LFxuXHRcdFx0Z2V0TW9yZVNlYXJjaFJlc3VsdHM6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLnNlYXJjaC5nZXRNb3JlU2VhcmNoUmVzdWx0cy5hcHBseShsb2NhdG9yLnNlYXJjaCwgbWVzc2FnZS5hcmdzKS5yZXR1cm4obWVzc2FnZS5hcmdzWzBdKVxuXHRcdFx0fSxcblx0XHRcdGdldFJlY292ZXJ5Q29kZTogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IubG9naW4uZ2V0UmVjb3ZlckNvZGUuYXBwbHkobG9jYXRvci5sb2dpbiwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdGNyZWF0ZVJlY292ZXJ5Q29kZTogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IubG9naW4uY3JlYXRlUmVjb3ZlcnlDb2RlLmFwcGx5KGxvY2F0b3IubG9naW4sIG1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRyZWNvdmVyTG9naW46IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLmxvZ2luLnJlY292ZXJMb2dpbi5hcHBseShsb2NhdG9yLmxvZ2luLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0cmVzZXRTZWNvbmRGYWN0b3JzOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5sb2dpbi5yZXNldFNlY29uZEZhY3RvcnMuYXBwbHkobG9jYXRvci5sb2dpbiwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdHRha2VPdmVyRGVsZXRlZEFkZHJlc3M6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLmxvZ2luLnRha2VPdmVyRGVsZXRlZEFkZHJlc3MuYXBwbHkobG9jYXRvci5sb2dpbiwgbWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdHJlc2V0U2Vzc2lvbjogKCkgPT4gbG9jYXRvci5sb2dpbi5yZXNldCgpLFxuXHRcdFx0Y3JlYXRlQ2FsZW5kYXJFdmVudDogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IuY2FsZW5kYXIuY3JlYXRlQ2FsZW5kYXJFdmVudC5hcHBseShsb2NhdG9yLmNhbGVuZGFyLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0dXBkYXRlQ2FsZW5kYXJFdmVudDogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IuY2FsZW5kYXIudXBkYXRlQ2FsZW5kYXJFdmVudC5hcHBseShsb2NhdG9yLmNhbGVuZGFyLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0cmVzb2x2ZVNlc3Npb25LZXk6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiByZXNvbHZlU2Vzc2lvbktleS5hcHBseShudWxsLCBtZXNzYWdlLmFyZ3MpLnRoZW4oc2sgPT4gc2sgPyBrZXlUb0Jhc2U2NChzaykgOiBudWxsKVxuXHRcdFx0fSxcblx0XHRcdGFkZENhbGVuZGFyOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5jYWxlbmRhci5hZGRDYWxlbmRhci5hcHBseShsb2NhdG9yLmNhbGVuZGFyLCBtZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0c2NoZWR1bGVBbGFybXNGb3JOZXdEZXZpY2U6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLmNhbGVuZGFyLnNjaGVkdWxlQWxhcm1zRm9yTmV3RGV2aWNlKC4uLm1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRsb2FkQWxhcm1FdmVudHM6IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLmNhbGVuZGFyLmxvYWRBbGFybUV2ZW50cyguLi5tZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0Z2V0RG9tYWluVmFsaWRhdGlvblJlY29yZDogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0cmV0dXJuIGxvY2F0b3IuY3VzdG9tZXIuZ2V0RG9tYWluVmFsaWRhdGlvblJlY29yZCguLi5tZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0dmlzaWJpbGl0eUNoYW5nZTogKG1lc3NhZ2U6IFJlcXVlc3QpID0+IHtcblx0XHRcdFx0bG9jYXRvci5pbmRleGVyLm9uVmlzaWJpbGl0eUNoYW5nZWQoLi4ubWVzc2FnZS5hcmdzKVxuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcblx0XHRcdH0sXG5cdFx0XHRnZXRMb2c6ICgpID0+IHtcblx0XHRcdFx0Y29uc3QgZ2xvYmFsID0gZG93bmNhc3Qoc2VsZilcblx0XHRcdFx0aWYgKGdsb2JhbC5sb2dnZXIpIHtcblx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGdsb2JhbC5sb2dnZXIuZ2V0RW50cmllcygpKVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRzZW5kR3JvdXBJbnZpdGF0aW9uOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5zaGFyZS5zZW5kR3JvdXBJbnZpdGF0aW9uKC4uLm1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRhY2NlcHRHcm91cEludml0YXRpb246IChtZXNzYWdlOiBSZXF1ZXN0KSA9PiB7XG5cdFx0XHRcdHJldHVybiBsb2NhdG9yLnNoYXJlLmFjY2VwdEdyb3VwSW52aXRhdGlvbiguLi5tZXNzYWdlLmFyZ3MpXG5cdFx0XHR9LFxuXHRcdFx0cmVqZWN0R3JvdXBJbnZpdGF0aW9uOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5zaGFyZS5yZWplY3RHcm91cEludml0YXRpb24oLi4ubWVzc2FnZS5hcmdzKVxuXHRcdFx0fSxcblx0XHRcdGNoZWNrTWFpbEZvclBoaXNoaW5nOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5tYWlsLmNoZWNrTWFpbEZvclBoaXNoaW5nKC4uLm1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0XHRnZXRFdmVudEJ5VWlkOiAobWVzc2FnZTogUmVxdWVzdCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbG9jYXRvci5jYWxlbmRhci5nZXRFdmVudEJ5VWlkKC4uLm1lc3NhZ2UuYXJncylcblx0XHRcdH0sXG5cdFx0fSlcblxuXHRcdC8vIG9ubHkgcmVnaXN0ZXIgb25jYXVnaHQgZXJyb3IgaGFuZGxlciBpZiB3ZSBhcmUgaW4gdGhlICpyZWFsKiB3b3JrZXIgc2NvcGVcblx0XHQvLyBPdGhlcndpc2UgdW5jYXVnaHQgZXJyb3IgaGFuZGxlciBtaWdodCBlbmQgdXAgaW4gYW4gaW5maW5pdGUgbG9vcCBmb3IgdGVzdCBjYXNlcy5cblx0XHRpZiAod29ya2VyU2NvcGUgJiYgIWlzTWFpbk9yTm9kZSgpKSB7XG5cdFx0XHRQcm9taXNlLm9uUG9zc2libHlVbmhhbmRsZWRSZWplY3Rpb24oZSA9PiB7XG5cdFx0XHRcdHRoaXMuc2VuZEVycm9yKGUpXG5cdFx0XHR9KVxuXG5cdFx0XHR3b3JrZXJTY29wZS5vbmVycm9yID0gKGU6IHN0cmluZyB8IEV2ZW50LCBzb3VyY2UsIGxpbmVubywgY29sbm8sIGVycm9yKSA9PiB7XG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCJ3b3JrZXJJbXBsLm9uZXJyb3JcIiwgZSwgc291cmNlLCBsaW5lbm8sIGNvbG5vLCBlcnJvcilcblx0XHRcdFx0aWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHR0aGlzLnNlbmRFcnJvcihlcnJvcilcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb25zdCBlcnIgPSBuZXcgRXJyb3IoZSlcblx0XHRcdFx0XHRlcnIubGluZU51bWJlciA9IGxpbmVub1xuXHRcdFx0XHRcdGVyci5jb2x1bW5OdW1iZXIgPSBjb2xub1xuXHRcdFx0XHRcdGVyci5maWxlTmFtZSA9IHNvdXJjZVxuXHRcdFx0XHRcdHRoaXMuc2VuZEVycm9yKGVycilcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdHJ1ZVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGdldFRvdHBWZXJpZmllcigpOiBQcm9taXNlPFRvdHBWZXJpZmllcj4ge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IFRvdHBWZXJpZmllcigpKVxuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgZW50cm9weSB0byB0aGUgcmFuZG9taXplci4gVXBkYXRlZCB0aGUgc3RvcmVkIGVudHJvcHkgZm9yIGEgdXNlciB3aGVuIGVub3VnaCBlbnRyb3B5IGhhcyBiZWVuIGNvbGxlY3RlZC5cblx0ICogQHBhcmFtIGVudHJvcHlcblx0ICogQHJldHVybnMge1Byb21pc2UuPHZvaWQ+fVxuXHQgKi9cblx0YWRkRW50cm9weShlbnRyb3B5OiB7c291cmNlOiBFbnRyb3B5U3JjRW51bSwgZW50cm9weTogbnVtYmVyLCBkYXRhOiBudW1iZXJ9W10pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIHJhbmRvbS5hZGRFbnRyb3B5KGVudHJvcHkpXG5cdFx0fSBmaW5hbGx5IHtcblx0XHRcdHRoaXMuX25ld0VudHJvcHkgPSB0aGlzLl9uZXdFbnRyb3B5ICsgZW50cm9weS5yZWR1Y2UoKHN1bSwgdmFsdWUpID0+IHZhbHVlLmVudHJvcHkgKyBzdW0sIDApXG5cdFx0XHRsZXQgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKClcblx0XHRcdGlmICh0aGlzLl9uZXdFbnRyb3B5ID4gNTAwMCAmJiAobm93IC0gdGhpcy5fbGFzdEVudHJvcHlVcGRhdGUpID4gMTAwMCAqIDYwICogNSkge1xuXHRcdFx0XHR0aGlzLl9sYXN0RW50cm9weVVwZGF0ZSA9IG5vd1xuXHRcdFx0XHR0aGlzLl9uZXdFbnRyb3B5ID0gMFxuXHRcdFx0XHRsb2NhdG9yLmxvZ2luLnN0b3JlRW50cm9weSgpXG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0ZW50aXR5RXZlbnRzUmVjZWl2ZWQoZGF0YTogRW50aXR5VXBkYXRlW10sIGV2ZW50T3duZXJHcm91cElkOiBJZCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdHJldHVybiB0aGlzLl9xdWV1ZS5wb3N0TWVzc2FnZShuZXcgUmVxdWVzdChcImVudGl0eUV2ZW50XCIsIFtkYXRhLCBldmVudE93bmVyR3JvdXBJZF0pKVxuXHR9XG5cblx0c2VuZEVycm9yKGU6IEVycm9yKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0cmV0dXJuIHRoaXMuX3F1ZXVlLnBvc3RNZXNzYWdlKG5ldyBSZXF1ZXN0KFwiZXJyb3JcIiwgW2Vycm9yVG9PYmooZSldKSlcblx0fVxuXG5cdHNlbmRQcm9ncmVzcyhwcm9ncmVzc1BlcmNlbnRhZ2U6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuXHRcdHJldHVybiB0aGlzLl9xdWV1ZS5wb3N0TWVzc2FnZShuZXcgUmVxdWVzdChcInByb2dyZXNzXCIsIFtwcm9ncmVzc1BlcmNlbnRhZ2VdKSkudGhlbigoKSA9PiB7XG5cdFx0XHQvLyB0aGUgd29ya2VyIHNvbWV0aW1lcyBkb2VzIG5vdCBzZW5kIHRoZSByZXF1ZXN0IGlmIGl0IGRvZXMgbm90IGdldCB0aW1lXG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5mcm9tQ2FsbGJhY2soY2IgPT4ge1xuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRjYigpXG5cdFx0XHRcdH0sIDApXG5cdFx0XHR9KVxuXHRcdH0pXG5cdH1cblxuXHRzZW5kSW5kZXhTdGF0ZShzdGF0ZTogU2VhcmNoSW5kZXhTdGF0ZUluZm8pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRyZXR1cm4gdGhpcy5fcXVldWUucG9zdE1lc3NhZ2UobmV3IFJlcXVlc3QoXCJ1cGRhdGVJbmRleFN0YXRlXCIsIFtzdGF0ZV0pKVxuXHR9XG5cblx0dXBkYXRlV2ViU29ja2V0U3RhdGUoc3RhdGU6IFdzQ29ubmVjdGlvblN0YXRlKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc29sZS5sb2coXCJ3cyBkaXNwbGF5ZWQgc3RhdGU6IFwiLCBzdGF0ZSlcblx0XHRyZXR1cm4gdGhpcy5fcXVldWUucG9zdE1lc3NhZ2UobmV3IFJlcXVlc3QoXCJ1cGRhdGVXZWJTb2NrZXRTdGF0ZVwiLCBbc3RhdGVdKSlcblx0fVxuXG5cdHVwZGF0ZUNvdW50ZXIodXBkYXRlOiBXZWJzb2NrZXRDb3VudGVyRGF0YSk6IFByb21pc2U8dm9pZD4ge1xuXHRcdHJldHVybiB0aGlzLl9xdWV1ZS5wb3N0TWVzc2FnZShuZXcgUmVxdWVzdChcImNvdW50ZXJVcGRhdGVcIiwgW3VwZGF0ZV0pKVxuXHR9XG5cblx0aW5mb01lc3NhZ2UobWVzc2FnZTogSW5mb01lc3NhZ2UpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRyZXR1cm4gdGhpcy5fcXVldWUucG9zdE1lc3NhZ2UobmV3IFJlcXVlc3QoXCJpbmZvTWVzc2FnZVwiLCBbbWVzc2FnZV0pKVxuXHR9XG5cblx0Y3JlYXRlUHJvZ3Jlc3NNb25pdG9yKHRvdGFsV29yazogbnVtYmVyKTogUHJvbWlzZTxQcm9ncmVzc01vbml0b3JJZD4ge1xuXHRcdHJldHVybiB0aGlzLl9xdWV1ZS5wb3N0TWVzc2FnZShuZXcgUmVxdWVzdChcImNyZWF0ZVByb2dyZXNzTW9uaXRvclwiLCBbdG90YWxXb3JrXSkpXG5cdH1cblxuXHRwcm9ncmVzc1dvcmtEb25lKHJlZmVyZW5jZTogUHJvZ3Jlc3NNb25pdG9ySWQsIHRvdGFsV29yazogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0cmV0dXJuIHRoaXMuX3F1ZXVlLnBvc3RNZXNzYWdlKG5ldyBSZXF1ZXN0KFwicHJvZ3Jlc3NXb3JrRG9uZVwiLCBbcmVmZXJlbmNlLCB0b3RhbFdvcmtdKSlcblx0fVxuXG5cdHVwZGF0ZUxlYWRlclN0YXR1cyhzdGF0dXM6IFdlYnNvY2tldExlYWRlclN0YXR1cyk6IFByb21pc2U8dm9pZD4ge1xuXHRcdHJldHVybiB0aGlzLl9xdWV1ZS5wb3N0TWVzc2FnZShuZXcgUmVxdWVzdChcInVwZGF0ZUxlYWRlclN0YXR1c1wiLCBbc3RhdHVzXSkpXG5cdH1cblxufVxuXG5cbiJdfQ==
and here it is decoded:
Yup, it seems ot be eval
, if I replace build/worker.js in the project above with just
console.log("worker!");
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndvcmtlci5qcyJdLCJuYW1lcyI6WyJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksU0FBWiIsInNvdXJjZXNDb250ZW50IjpbImNvbnNvbGUubG9nKFwid29ya2VyIVwiKSJdLCJmaWxlIjoiL2hvbWUvaXZrL2Rldi9ub2xsdXAtYnVnL3dvcmtlci5qcyIsInNvdXJjZVJvb3QiOiJub2xsdXA6Ly8vIn0=
then it works
:thinking:
Either browser does not support eval + source map in workers or something is not escaped somehow but then it shouldn't break only in the worker
I've made a test with Webpack and it works there with eval-source-map
or just eval
So with Webpack eval inline source maps work fine?
What's the difference between Nollup's generated map and Webpack's then I wonder...
here's webpack vs nollup
{"version":3,"file":"./src/worker.js.js","sources":["webpack://test-webpack/./src/worker.js?dd00"],"sourcesContent":["console.log(\"worker\")\n"],"mappings":"AAAA;","sourceRoot":""}
{"version":3,"sources":["worker.js"],"names":["console","log"],"mappings":"AAAAA,OAAO,CAACC,GAAR,CAAY,SAAZ","sourcesContent":["console.log(\"worker!\")"],"file":"/home/ivk/dev/nollup-bug/worker.js","sourceRoot":"nollup:///"}
EDIT: that's after I removed double source map URL which was there for some reason for webpack
I tried modifying CodeGenerator.js
to try mimic what Webpack is outputting, and that doesn't work. I'm really stumped on this one.
if (map) {
map.sourceRoot = '';
map.sources[map.sources.length - 1] = sourcePath;
map.file = './src/' + map.sources[0] + '.js';
map.sources = map.sources.map(p => 'webpack://test-webpack/./src/' + p);
code += `\\\n${ConvertSourceMap.fromObject(map).toComment()}`;
} else {
code += `\\\n//# sourceURL=${sourcePath}`;
}
I think adding //# sourceURL=nollup-int:///worker.js
manually worked for me?
Are you able to modify CodeGenerator.js and reproduce?
Let me try
Like so:
code += `\\n${ConvertSourceMap.fromObject(map).toComment()}\\n//# sourceURL=nollup-int://${filePath}`;
EDIT: remove double .js
(notice slashes difference, it was broken I think)
Nicely done! I don't understand why this works, but adding it doesn't seem to break anything as far as I can tell. Will need to do some testing on this further and see if it impacts anything else. Would appreciate it if you could do the same from your end on your full project and see if locally making the modification to Nollup ensures none of your source maps are broken.
code += `\\\n${ConvertSourceMap.fromObject(map).toComment()}\\n//# sourceURL=nollup-int://${filePath}`;
Keep the three slashes at the beginning, because it addresses a few issues regarding source code comments. :)
will do! I'm also puzzled by why we must assign sourceURL to it but oh well. I think filePath is not a good choice as Firefox trips and removes all of them if you try to acces it so maybe it should be a relative path instead.
Regarding slashes: it produces this:
eval('console.log("worker!");\
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndvcmtlci5qcyJdLCJuYW1lcyI6WyJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksU0FBWiIsInNvdXJjZXNDb250ZW50IjpbImNvbnNvbGUubG9nKFwid29ya2VyIVwiKSJdLCJmaWxlIjoiL2hvbWUvaXZrL2Rldi9ub2xsdXAtYnVnL3dvcmtlci5qcyIsInNvdXJjZVJvb3QiOiJub2xsdXA6Ly8vIn0=\n//# sourceURL=nollup-int:///home/ivk/dev/nollup-bug/worker.js');
which doesn't look correct but maybe I'm wrong. webpack does it with '\n' inside the string
also it should be triple slash after nollup-int
if we are to follow webpack here
Works fine in Firefox for me?
As yes you're right, mixing up a different issue in my head. The reason for the extra slash is to keep the eval output clean so it's easier to read through. Webpacks puts the entire eval code into a single line, which can cause a crash for the devtools, so by ensuring lines are as minimal as possible it reduces the odds of a crash.
And yes, that's something I noticed too, the absolute path just so happens to add the third slash on *nix systems.
I see! I would do it like
//# sourceURL=nollup-int:///${sourcePath}
I think?
Will need to test it and see. Should be able to more thoroughly check it out later on this evening. :)
Of course, thanks a lot with assisting on this! Now I can fork it and it's not rush at all
Released in 0.14.3
🙂
Thanks a lot!
I get a lot of warning now with this, why?
I'm using https://github.com/rixo/svelte-template-hot by the amazing @rixo.
Not entirely sure how that's happening as a result of this change. But usually those happen because the library has relative paths to a source map included in the library. Nollup doesn't try to remove those comments. In the case of @urql/core, it has the following inside it:
//# sourceMappingURL=urql-core.mjs.map
I'm not sure how that would have worked before though. As far as I understand, other bundlers like Webpack would still show the same warning message. There's a plugin for this in Webpack, I suppose something similar would be needed here: https://webpack.js.org/loaders/source-map-loader/
Are we using https://www.npmjs.com/package/rollup-plugin-sourcemaps, @PepsRyuu?
That sounds like it would resolve the issue, but that's up the developer to include the plugin in their project.
:( @rixo should we add https://www.npmjs.com/package/rollup-plugin-sourcemaps?
Hi again! It might be a problem with my configuration but I can't get source maps to work with a worker, neither FF nor Chrome.
no matter which files are imported in worker part, none of them are visible under "nollup://" nor can be found.
Please excuse me if it's my fault but so far it seemed that nollup ignores sourceMap value which I pass so I don't think I have much control.