oipage 0.1.0-alpha.1 → 0.1.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG +38 -0
  2. package/README.md +103 -4
  3. package/bin/options.js +45 -11
  4. package/bin/run +166 -31
  5. package/browserjs/getStyle/index.d.ts +11 -0
  6. package/browserjs/getStyle/index.js +13 -0
  7. package/browserjs/index.d.ts +10 -0
  8. package/browserjs/index.js +7 -0
  9. package/browserjs/onReady/index.d.ts +8 -0
  10. package/browserjs/onReady/index.js +8 -0
  11. package/corejs/animation/index.d.ts +12 -0
  12. package/corejs/animation/index.js +102 -0
  13. package/corejs/index.d.ts +10 -0
  14. package/corejs/index.js +7 -0
  15. package/corejs/throttle/index.d.ts +31 -0
  16. package/corejs/throttle/index.js +50 -0
  17. package/nodejs/core/file.js +128 -0
  18. package/nodejs/core/image.js +5 -0
  19. package/nodejs/core/log.js +82 -0
  20. package/nodejs/core/network.js +40 -0
  21. package/nodejs/core/options.js +49 -0
  22. package/nodejs/core/remote.js +60 -0
  23. package/nodejs/core/responseFileList.js +28 -0
  24. package/nodejs/core/server.js +163 -0
  25. package/nodejs/data/404.js +52 -0
  26. package/nodejs/data/images/file.js +1 -0
  27. package/nodejs/data/images/folder.js +1 -0
  28. package/nodejs/data/mime.types.js +112 -0
  29. package/nodejs/index.js +48 -0
  30. package/nodejs/loader/simpleScss.js +248 -0
  31. package/nodejs/loader/xhtml.js +521 -0
  32. package/package.json +17 -20
  33. package/stylecss/index.css +3 -0
  34. package/stylecss/normalize.css +94 -0
  35. package/stylecss/rasterize.css +318 -0
  36. package/stylecss/skeleton.css +16 -0
  37. package/types/get-options.d.ts +6 -0
  38. package/types/index.d.ts +187 -0
  39. package/public/index.html +0 -14
  40. package/script/command/build.js +0 -22
  41. package/script/command/dev.js +0 -38
  42. package/script/config/alignment.js +0 -15
  43. package/script/config/webpack.js +0 -60
  44. package/src/platforms/h5/index.js +0 -0
  45. package/src/runtime/index.js +0 -0
@@ -0,0 +1 @@
1
+ module.exports = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAYABgAAD/4QR7RXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAADqV6AAAnEAAOpXoAACcQQWRvYmUgUGhvdG9zaG9wIENTNCBXaW5kb3dzADIwMjE6MDU6MDggMDk6NDg6MjcAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMqADAAQAAAABAAAAPAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAANFAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklGAAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAPAAyAwEiAAIRAQMRAf/dAAQABP/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A9TSSQK6aXNLnMBJc+Sf6zklJ0kL7PR/owmONSdAwCdJSUmSWdh5NlNVQyDNNjW+nafzSeK7D/wBRZ/nrRSUpJJJJT//Q9TQ6voH+s/8A6pyIh1fQP9Z//VOSUzTJJklIfsOGdDU2DoRrEHkQo9KsdZ03Ge8lzjW2SeTorA5Cq9G/5Lxf+LakpupJJJKf/9H1NCr+h/af/wBU5FQqwdp0/Of/ANU5JTJMng+CaD4JJXHI+Kq9G/5Lxf8Ai2q0AZGndVejf8l4v/FtSQ3UkkklP//S9TVZ+BQ95eXWNLjJDbHtEn+S121WUklNT9m0fv3f9u2f+TS/ZtH793/btn/k1bSSU1P2bR+/d/29Z/5NWKaa6Km01Daxgho8AppJKUkkkkp//9n/7QlAUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAAAAAAAAAAAAAAAAAAAAAAOEJJTQPtAAAAAAAQAF/8kgABAAIAX/ySAAEAAjhCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQQNAAAAAAAEAAAAeDhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTScQAAAAAAAKAAEAAAAAAAAAAjhCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0D+AAAAAAAcAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAA4QklNBAAAAAAAAAIAAThCSU0EAgAAAAAABAAAAAA4QklNBDAAAAAAAAIBAThCSU0ELQAAAAAABgABAAAAAzhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAAM/AAAABgAAAAAAAAAAAAAAPAAAADIAAAAFZypoB5iYAC0AMQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAMgAAADwAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAAC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TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA0LjIuMi1jMDYzIDUzLjM1MjYyNCwgMjAwOC8wNy8zMC0xODoxMjoxOCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMDUtMDhUMDk6NDg6MjcrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTA1LTA4VDA5OjQ4OjI3KzA4OjAwIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMS0wNS0wOFQwOTo0ODoyNyswODowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozMDBCNjA2NTlGQUZFQjExOTBCNEMyQjY4Q0Q4M0YwQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyRjBCNjA2NTlGQUZFQjExOTBCNEMyQjY4Q0Q4M0YwQiIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJGMEI2MDY1OUZBRkVCMTE5MEI0QzJCNjhDRDgzRjBCIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgdGlmZjpPcmllbnRhdGlvbj0iMSIgdGlmZjpYUmVzb2x1dGlvbj0iOTU5ODY2LzEwMDAwIiB0aWZmOllSZXNvbHV0aW9uPSI5NTk4NjYvMTAwMDAiIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiIHRpZmY6TmF0aXZlRGlnZXN0PSIyNTYsMjU3LDI1OCwyNTksMjYyLDI3NCwyNzcsMjg0LDUzMCw1MzEsMjgyLDI4MywyOTYsMzAxLDMxOCwzMTksNTI5LDUzMiwzMDYsMjcwLDI3MSwyNzIsMzA1LDMxNSwzMzQzMjtGOTczNkI5MzBGQUQ2QzBBMjM0ODBDQTRFMzBGOEZBRiIgZXhpZjpQaXhlbFhEaW1lbnNpb249IjUwIiBleGlmOlBpeGVsWURpbWVuc2lvbj0iNjAiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDtFRjZEMzczRjg2RThDNzE3RkY4Q0M2NDlDOTAxQUIzMiI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MkYwQjYwNjU5RkFGRUIxMTkwQjRDMkI2OENEODNGMEIiIHN0RXZ0OndoZW49IjIwMjEtMDUtMDhUMDk6NDg6MjcrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDUzQgV2luZG93cyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MzAwQjYwNjU5RkFGRUIxMTkwQjRDMkI2OENEODNGMEIiIHN0RXZ0OndoZW49IjIwMjEtMDUtMDhUMDk6NDg6MjcrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDUzQgV2luZG93cyIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/iDFhJQ0NfUFJPRklMRQABAQAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl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";
@@ -0,0 +1 @@
1
+ module.exports = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAYABgAAD/4QUiRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAADqV6AAAnEAAOpXoAACcQQWRvYmUgUGhvdG9zaG9wIENTNCBXaW5kb3dzADIwMjE6MDU6MDggMDk6NDc6NTAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMqADAAQAAAABAAAAPAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAPsAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklGAAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAPAAyAwEiAAIRAQMRAf/dAAQABP/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A9TQ25FDnFoeNw0LSYP3FEVG/FryGifa8fReOR/5ioc+U4+GgDd7roxB3bsg8J1mUMeHGv1BvaYIMifgrH6yzkO/L+RAZp1cscq7x9aeEdJfa20kDHudYXNdy2PxR1LGQlESHXutIo0pJJJOQ/wD/0PU1XbwrCrNMNVTnNofVfDq5rL9nVbGO1re8NcDx9HlXeo3nDFRrnda7a0c6gb/++rNEO6peCJBI0+QVrqzjs6cTqfWE/wCY9WMPyR8gtlu6db6shgdAdGhB1gp6/wCbb8B+RCxPp2R4N/78i1fzbP6o/InoZJJJJKf/0fU1QL4CvrNyGOqeWnjkHyVLn7EIyGwOv1ZcNWQ5mJZ62dbYBEu4+HtV3q/8307/AI4f9Q9UeliLXucIBcYJ458Vf6uCa+nQCYuEwJP0Hq3hFQj5Mc9y6GJ9N/wb/wB+RKv5tn9UfkQsMy+zQjRuhBB/O8USpwNbR5BPO6EiSSSCn//S9TQsikXVx+cNWlFSTMvBwS4/kr1Jjdit2tRhsZW2RFm0BxHw/O/Nf/aUnUbzW2xrHMr1bp8h7PzUdJOjVCtqUd9WHpR9Bzm/Az+D9yVdYraGjXzKmkihSSSSSn//2f/tCeRQaG90b3Nob3AgMy4wADhCSU0EJQAAAAAAEAAAAAAAAAAAAAAAAAAAAAA4QklNA+0AAAAAABAAX/ySAAEAAgBf/JIAAQACOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0EAAAAAAAAAgAAOEJJTQQCAAAAAAACAAA4QklNBDAAAAAAAAEBADhCSU0ELQAAAAAABgABAAAAAjhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAAM/AAAABgAAAAAAAAAAAAAAPAAAADIAAAAFZypoB5iYAC0AMQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAMgAAADwAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAADwAAAAAUmdodGxvbmcAAAAyAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAAABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAADEVTbGljZU9yaWdpbgAAAA1hdXRvR2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUAAAAASW1nIAAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAA8AAAAAFJnaHRsb25nAAAAMgAAAAN1cmxURVhUAAAAAQAAAAAAAG51bGxURVhUAAAAAQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQAAAABAAAAAAAOY2VsbFRleHRJc0hUTUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9yekFsaWduZW51bQAAAA9FU2xpY2VIb3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVtAAAAD0VTbGljZVZlcnRBbGlnbgAAAAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xpY2VCR0NvbG9yVHlwZQAAAABOb25lAAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRsb25nAAAAAAAAAAxib3R0b21PdXRzZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhCSU0EKAAAAAAADAAAAAI/8AAAAAAAADhCSU0EFAAAAAAABAAAAAI4QklNBAwAAAAABAgAAAABAAAAMgAAADwAAACYAAAjoAAAA+wAGAAB/9j/4AAQSkZJRgABAgAASABIAAD/7QAMQWRvYmVfQ00AAf/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIADwAMgMBIgACEQEDEQH/3QAEAAT/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/APU0NuRQ5xaHjcNC0mD9xRFRvxa8hon2vH0Xjkf+YqHPlOPhoA3e66MQd27IPCdZlDHhxr9Qb2mCDIn4Kx+ss5Dvy/kQGadXLHKu8fWnhHSX2ttJAx7nWFzXctj8UdSxkJREh17rSKNKSSSTkP8A/9D1NV28KwqzTDVU5zaH1Xw6uay/Z1Wxjta3vDXA8fR5V3qN5wxUa53Wu2tHOoG//vqzRDuqXgiQSNPkFa6s47OnE6n1hP8AmPVjD8kfILZbunW+rIYHQHRoQdYKev8Am2/AfkQsT6dkeDf+/ItX82z+qPyJ6GSSSSSn/9H1NUC+Ar6zchjqnlp45B8lS5+xCMhsDr9WXDVkOZiWetnW2ARLuPh7Vd6v/N9O/wCOH/UPVHpYi17nCAXGCeOfFX+rgmvp0AmLhMCT9B6t4RUI+THPcuhifTf8G/8AfkSr+bZ/VH5ELDMvs0I0boQQfzvFEqcDW0eQTzuhIkkkgp//0vU0LIpF1cfnDVpRUkzLwcEuP5K9SY3YrdrUYbGVtkRZtAcR8PzvzX/2lJ1G81tsaxzK9W6fIez81HSTo1QralHfVh6UfQc5vwM/g/clXWK2ho18yppIoUkkkkp//9k4QklNBCEAAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAAQwBTADQAAAABADhCSU0EBgAAAAAABwAEAAAAAQEA/+ERK2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4yLjItYzA2MyA1My4zNTI2MjQsIDIwMDgvMDcvMzAtMTg6MTI6MTggICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNCBXaW5kb3dzIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIxLTA1LTA4VDA5OjQ3OjUwKzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMS0wNS0wOFQwOTo0Nzo1MCswODowMCIgeG1wOkNyZWF0ZURhdGU9IjIwMjEtMDUtMDhUMDk6NDc6NTArMDg6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkUwQjYwNjU5RkFGRUIxMTkwQjRDMkI2OENEODNGMEIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkQwQjYwNjU5RkFGRUIxMTkwQjRDMkI2OENEODNGMEIiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyRDBCNjA2NTlGQUZFQjExOTBCNEMyQjY4Q0Q4M0YwQiIgZGM6Zm9ybWF0PSJpbWFnZS9qcGVnIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249Ijk1OTg2Ni8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iOTU5ODY2LzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7MEFGMkU2MzI0QzA3RTM5NkM3NzhBRTE5NTg0NERBMUYiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI1MCIgZXhpZjpQaXhlbFlEaW1lbnNpb249IjYwIiBleGlmOkNvbG9yU3BhY2U9IjEiIGV4aWY6TmF0aXZlRGlnZXN0PSIzNjg2NCw0MDk2MCw0MDk2MSwzNzEyMSwzNzEyMiw0MDk2Miw0MDk2MywzNzUxMCw0MDk2NCwzNjg2NywzNjg2OCwzMzQzNCwzMzQzNywzNDg1MCwzNDg1MiwzNDg1NSwzNDg1NiwzNzM3NywzNzM3OCwzNzM3OSwzNzM4MCwzNzM4MSwzNzM4MiwzNzM4MywzNzM4NCwzNzM4NSwzNzM4NiwzNzM5Niw0MTQ4Myw0MTQ4NCw0MTQ4Niw0MTQ4Nyw0MTQ4OCw0MTQ5Miw0MTQ5Myw0MTQ5NSw0MTcyOCw0MTcyOSw0MTczMCw0MTk4NSw0MTk4Niw0MTk4Nyw0MTk4OCw0MTk4OSw0MTk5MCw0MTk5MSw0MTk5Miw0MTk5Myw0MTk5NCw0MTk5NSw0MTk5Niw0MjAxNiwwLDIsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMjAsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMzA7RUY2RDM3M0Y4NkU4QzcxN0ZGOENDNjQ5QzkwMUFCMzIiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjJEMEI2MDY1OUZBRkVCMTE5MEI0QzJCNjhDRDgzRjBCIiBzdEV2dDp3aGVuPSIyMDIxLTA1LTA4VDA5OjQ3OjUwKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjJFMEI2MDY1OUZBRkVCMTE5MEI0QzJCNjhDRDgzRjBCIiBzdEV2dDp3aGVuPSIyMDIxLTA1LTA4VDA5OjQ3OjUwKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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";
@@ -0,0 +1,112 @@
1
+ module.exports = {
2
+ "html": "text/html",
3
+ "htm": "text/html",
4
+ "shtml": "text/html",
5
+ "css": "text/css",
6
+ "xml": "text/xml",
7
+ "gif": "image/gif",
8
+ "jpeg": "image/jpeg",
9
+ "jpg": "image/jpeg",
10
+ "js": "application/javascript",
11
+ "atom": "application/atom+xml",
12
+ "rss": "application/rss+xml",
13
+
14
+ "mml": "text/mathml",
15
+ "txt": "text/plain",
16
+ "jad": "text/vnd.sun.j2me.app-descriptor",
17
+ "wml": "text/vnd.wap.wml",
18
+ "htc": "text/x-component",
19
+
20
+ "png": "image/png",
21
+ "tif": "image/tiff",
22
+ "tiff": "image/tiff",
23
+ "wbmp": "image/vnd.wap.wbmp",
24
+ "ico": "image/x-icon",
25
+ "jng": "image/x-jng",
26
+ "bmp": "image/x-ms-bmp",
27
+ "svg": "image/svg+xml",
28
+ "svgz": "image/svg+xml",
29
+ "webp": "image/webp",
30
+
31
+ "woff": "application/font-woff",
32
+ "jar": "application/java-archive",
33
+ "war": "application/java-archive",
34
+ "ear": "application/java-archive",
35
+ "json": "application/json",
36
+ "hqx": "application/mac-binhex40",
37
+ "doc": "application/msword",
38
+ "pdf": "application/pdf",
39
+ "ps": "application/postscript",
40
+ "eps": "application/postscript",
41
+ "ai": "application/postscript",
42
+ "rtf": "application/rtf",
43
+ "m3u8": "application/vnd.apple.mpegurl",
44
+ "xls": "application/vnd.ms-excel",
45
+ "eot": "application/vnd.ms-fontobject",
46
+ "ppt": "application/vnd.ms-powerpoint",
47
+ "wmlc": "application/vnd.wap.wmlc",
48
+ "kml": "application/vnd.google-earth.kml+xml",
49
+ "kmz": "application/vnd.google-earth.kmz",
50
+ "7z": "application/x-7z-compressed",
51
+ "cco": "application/x-cocoa",
52
+ "jardiff": "application/x-java-archive-diff",
53
+ "jnlp": "application/x-java-jnlp-file",
54
+ "run": "application/x-makeself",
55
+ "pl": "application/x-perl",
56
+ "pm": "application/x-perl",
57
+ "prc": "application/x-pilot",
58
+ "pdb": "application/x-pilot",
59
+ "rar": "application/x-rar-compressed",
60
+ "rpm": "application/x-redhat-package-manager",
61
+ "sea": "application/x-sea",
62
+ "swf": "application/x-shockwave-flash",
63
+ "sit": "application/x-stuffit",
64
+ "tcl": "application/x-tcl",
65
+ "tk": "application/x-tcl",
66
+ "der": "application/x-x509-ca-cert",
67
+ "pem": "application/x-x509-ca-cert",
68
+ "crt": "application/x-x509-ca-cert",
69
+ "xpi": "application/x-xpinstall",
70
+ "xhtml": "application/xhtml+xml",
71
+ "xspf": "application/xspf+xml",
72
+ "zip": "application/zip",
73
+
74
+ "bin": "application/octet-stream",
75
+ "exe": "application/octet-stream",
76
+ "dll": "application/octet-stream",
77
+ "deb": "application/octet-stream",
78
+ "dmg": "application/octet-stream",
79
+ "iso": "application/octet-stream",
80
+ "img": "application/octet-stream",
81
+ "msi": "application/octet-stream",
82
+ "msp": "application/octet-stream",
83
+ "msm": "application/octet-stream",
84
+
85
+ "docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
86
+ "xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
87
+ "pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
88
+
89
+ "mid": "audio/midi",
90
+ "midi": "audio/midi",
91
+ "kar": "audio/midi",
92
+ "mp3": "audio/mpeg",
93
+ "ogg": "audio/ogg",
94
+ "m4a": "audio/x-m4a",
95
+ "ra": "audio/x-realaudio",
96
+
97
+ "3gpp": "video/3gpp",
98
+ "3gp": "video/3gpp",
99
+ "ts": "video/mp2t",
100
+ "mp4": "video/mp4",
101
+ "mpeg": "video/mpeg",
102
+ "mpg": "video/mpeg",
103
+ "mov": "video/quicktime",
104
+ "webm": "video/webm",
105
+ "flv": "video/x-flv",
106
+ "m4v": "video/x-m4v",
107
+ "mng": "video/x-mng",
108
+ "asx": "video/x-ms-asf",
109
+ "asf": "video/x-ms-asf",
110
+ "wmv": "video/x-ms-wmv",
111
+ "avi": "video/x-msvideo"
112
+ };
@@ -0,0 +1,48 @@
1
+ const { deleteSync, copySync, moveSync, listFileSync, fullPathSync } = require('./core/file');
2
+ const { log, warn, error, linelog, deeplog } = require('./core/log');
3
+ const options = require('./core/options');
4
+ const { get, post } = require('./core/remote');
5
+ const network = require('./core/network');
6
+ const mimeTypes = require('./data/mime.types');
7
+ const server = require('./core/server');
8
+ const { toBase64 } = require('./core/image');
9
+
10
+ const simpleScss = require('./loader/simpleScss');
11
+ const xhtml = require('./loader/xhtml');
12
+
13
+ module.exports = {
14
+
15
+ // 命令行相关
16
+ options,
17
+
18
+ // 文件操作相关
19
+ deleteSync, copySync, moveSync, listFileSync, fullPathSync,
20
+
21
+ // 图片相关
22
+ toBase64,
23
+
24
+ // 日志打印
25
+ log, warn, error,
26
+
27
+ // 单行打印
28
+ linelog,
29
+
30
+ // 进度打印
31
+ process: deeplog, // 向下兼容
32
+ deeplog,
33
+
34
+ // 请求
35
+ get, post,
36
+
37
+ // 查看网络信息
38
+ network,
39
+
40
+ // 文件类型
41
+ mimeTypes,
42
+
43
+ // 服务器
44
+ server,
45
+
46
+ // 文件解析Loader
47
+ simpleScss, xhtml
48
+ };
@@ -0,0 +1,248 @@
1
+ let toSelector = function (preSelectorArray, deep) {
2
+
3
+ let selectors = preSelectorArray[0], i, j, k;
4
+
5
+ // 一层层深入
6
+ for (i = 1; i < deep; i++) {
7
+
8
+ let temp = [];
9
+ // 前置循环
10
+ for (j = 0; j < selectors.length; j++) {
11
+
12
+ // 预选循环
13
+ for (k = 0; k < preSelectorArray[i].length; k++) {
14
+
15
+ temp.push(selectors[j] + preSelectorArray[i][k]);
16
+
17
+ }
18
+
19
+ }
20
+
21
+ selectors = temp;
22
+ }
23
+
24
+ // 最后补充 {
25
+ return "\n" + (selectors.join(',')) + "{\n";
26
+ };
27
+
28
+ // 把代码变成代码块
29
+ // 比如一个注释就是一块,无论注释的内容有多少
30
+ let analyseBlock = function (source) {
31
+
32
+ let i = -1,
33
+
34
+ // 当前面对的字符
35
+ currentChar = null;
36
+
37
+ // 获取下一个字符
38
+ let next = function () {
39
+ currentChar = i++ < source.length - 1 ? source[i] : null;
40
+ return currentChar;
41
+ };
42
+
43
+ // 获取往后n个值
44
+ let nextNValue = function (n) {
45
+ return source.substring(i, n + i > source.length ? source.length : n + i);
46
+ };
47
+
48
+ let blocks = [];
49
+ let currentBlock = "";
50
+
51
+ next();
52
+
53
+ while (true) {
54
+
55
+ // 先剔除空白字符
56
+ // 保证正式开始的时候匹配的是有效的
57
+ while (new RegExp("[\\x20\\t\\r\\n\\f]").test(currentChar)) {
58
+ next();
59
+ }
60
+
61
+ // 如果匹配的字符没有了
62
+ if (currentChar == null) break;
63
+
64
+ // 如果是注释
65
+ // /* 类型一 */
66
+ if (nextNValue(2) == '/*') {
67
+
68
+ next(); next();
69
+ currentBlock = "/*";
70
+
71
+ while (nextNValue(2) != '*/' && currentChar != null) {
72
+ currentBlock += currentChar;
73
+ next();
74
+ }
75
+
76
+ // 对于注释 /* */
77
+ // 如果到结尾都没有闭合,应该提示语法错误
78
+ if (currentChar == null) {
79
+ throw new Error('The comment is not closed.');
80
+ }
81
+
82
+ currentBlock += "*/";
83
+ next(); next();
84
+
85
+ blocks.push({
86
+ value: currentBlock,
87
+ type: "comment-double"
88
+ });
89
+ }
90
+
91
+ // 如果是注释
92
+ // // 类型二
93
+ else if (nextNValue(2) == '//') {
94
+ currentBlock = '';
95
+
96
+ while (currentChar != '\n' && currentChar != null) {
97
+ currentBlock += currentChar;
98
+ next();
99
+ }
100
+
101
+ blocks.push({
102
+ value: currentBlock,
103
+ type: "comment-single"
104
+ });
105
+
106
+ }
107
+
108
+ // 如果是结束
109
+ // }
110
+ else if (currentChar == '}') {
111
+
112
+ blocks.push({
113
+ value: "}",
114
+ type: "end"
115
+ });
116
+
117
+ next();
118
+
119
+ }
120
+
121
+ // 余下,只有两种情况:
122
+ // 1.如是是开始
123
+ // xxx {
124
+ // 2.可能是一个语句
125
+ // xxx : xxx ;
126
+ // 这两种都需要进一步匹配
127
+ else {
128
+
129
+ currentBlock = '';
130
+
131
+ // 目前先没有考虑下列情况:
132
+ // 语句 content:";"
133
+ while (currentChar != '{' && currentChar != ';' && currentChar != null) {
134
+ currentBlock += currentChar;
135
+ next();
136
+ }
137
+
138
+ if (currentChar == null) {
139
+ throw new Error('Statement or code block missing closure.');
140
+ }
141
+
142
+ blocks.push({
143
+ value: currentBlock + currentChar,
144
+ type: {
145
+ '{': "begin",
146
+ ';': 'statement'
147
+ }[currentChar]
148
+ });
149
+
150
+ next();
151
+
152
+ }
153
+
154
+ }
155
+
156
+ return blocks;
157
+ };
158
+
159
+
160
+ module.exports = function (source) {
161
+
162
+ // 分析出代码块
163
+
164
+ let blocks = analyseBlock(source);
165
+
166
+ // 根据代码块获得最终代码
167
+
168
+ let i, j, cssCode = "", preSelectorArray = [], deep = 0;
169
+ for (i = 0; i < blocks.length; i++) {
170
+
171
+ // 注释 double
172
+ if (blocks[i].type == 'comment-double') {
173
+
174
+ cssCode += blocks[i].value;
175
+
176
+ }
177
+
178
+ // 注释 single
179
+ else if (blocks[i].type == 'comment-single') {
180
+
181
+ cssCode += "\n/* " + blocks[i].value + " */\n";
182
+
183
+ }
184
+
185
+ // 开始
186
+ else if (blocks[i].type == 'begin') {
187
+
188
+ let preSplit = blocks[i].value.split(',');
189
+ let preSelect = [];
190
+ for (j = 0; j < preSplit.length; j++) {
191
+
192
+ // 去掉两端的空格
193
+ preSelect[j] = preSplit[j].replace(/\{$/, '').trim();
194
+
195
+ // 判断拼接方式
196
+ if (/^&/.test(preSelect[j])) {
197
+ preSelect[j] = preSelect[j].replace(/^&/, '');
198
+ } else {
199
+ preSelect[j] = " " + preSelect[j];
200
+ }
201
+
202
+ }
203
+
204
+ // 登记到前缀数组
205
+ preSelectorArray[deep] = preSelect;
206
+ deep += 1;
207
+ }
208
+
209
+ // 结束
210
+ else if (blocks[i].type == 'end') {
211
+
212
+ deep -= 1;
213
+
214
+ }
215
+
216
+ // 语句
217
+ else if (blocks[i].type == 'statement') {
218
+
219
+ // 如果是第一个
220
+ j = 1;
221
+ let preType = blocks[i - j].type;
222
+ while (['comment-double', 'comment-single'].indexOf(preType) > -1) {
223
+ j += 1;
224
+ preType = blocks[i - j].type;
225
+ }
226
+ if (['end', 'begin'].indexOf(preType) > -1) {
227
+ cssCode += toSelector(preSelectorArray, deep);
228
+ }
229
+
230
+ cssCode += "\n" + blocks[i].value + "\n";
231
+
232
+ // 如果是最后一个
233
+ j = 1;
234
+ let nextType = blocks[i + j].type;
235
+ while (['comment-double', 'comment-single'].indexOf(nextType) > -1) {
236
+ j += 1;
237
+ nextType = blocks[i + j].type;
238
+ }
239
+ if (['end', 'begin'].indexOf(nextType) > -1) {
240
+ cssCode += "\n}\n";
241
+ }
242
+
243
+ }
244
+
245
+ }
246
+
247
+ return cssCode;
248
+ };