Merge pull request #10 from mdgriffith/twop/add-prepack

added prepack as a part of pipeline
This commit is contained in:
Matthew Griffith 2020-07-31 14:12:30 -04:00 committed by GitHub
commit 6bedd73245
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 13566 additions and 26 deletions

661
package-lock.json generated
View File

@ -383,6 +383,36 @@
}
}
},
"@babel/node": {
"version": "7.10.5",
"resolved": "https://registry.npmjs.org/@babel/node/-/node-7.10.5.tgz",
"integrity": "sha512-suosS7zZ2roj+fYVCnDuVezUbRc0sdoyF0Gj/1FzWxD4ebbGiBGtL5qyqHH4NO34B5m4vWWYWgyNhSsrqS8vwA==",
"dev": true,
"requires": {
"@babel/register": "^7.10.5",
"commander": "^4.0.1",
"core-js": "^3.2.1",
"lodash": "^4.17.19",
"node-environment-flags": "^1.0.5",
"regenerator-runtime": "^0.13.4",
"resolve": "^1.13.1",
"v8flags": "^3.1.1"
},
"dependencies": {
"commander": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
"dev": true
},
"core-js": {
"version": "3.6.5",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
"integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==",
"dev": true
}
}
},
"@babel/parser": {
"version": "7.10.5",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
@ -528,6 +558,15 @@
"@babel/helper-plugin-utils": "^7.8.0"
}
},
"@babel/plugin-syntax-flow": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz",
"integrity": "sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-syntax-json-strings": {
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
@ -692,6 +731,16 @@
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-flow-strip-types": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz",
"integrity": "sha512-XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-flow": "^7.10.4"
}
},
"@babel/plugin-transform-for-of": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz",
@ -1015,6 +1064,16 @@
}
}
},
"@babel/preset-flow": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.10.4.tgz",
"integrity": "sha512-XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-transform-flow-strip-types": "^7.10.4"
}
},
"@babel/preset-modules": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz",
@ -1028,6 +1087,75 @@
"esutils": "^2.0.2"
}
},
"@babel/register": {
"version": "7.10.5",
"resolved": "https://registry.npmjs.org/@babel/register/-/register-7.10.5.tgz",
"integrity": "sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw==",
"dev": true,
"requires": {
"find-cache-dir": "^2.0.0",
"lodash": "^4.17.19",
"make-dir": "^2.1.0",
"pirates": "^4.0.0",
"source-map-support": "^0.5.16"
},
"dependencies": {
"find-cache-dir": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
"integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
"dev": true,
"requires": {
"commondir": "^1.0.1",
"make-dir": "^2.0.0",
"pkg-dir": "^3.0.0"
}
},
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dev": true,
"requires": {
"locate-path": "^3.0.0"
}
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
}
},
"p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
"p-limit": "^2.0.0"
}
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
"dev": true
},
"pkg-dir": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
"integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
"dev": true,
"requires": {
"find-up": "^3.0.0"
}
}
}
},
"@babel/runtime": {
"version": "7.10.5",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz",
@ -1793,6 +1921,13 @@
"integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==",
"dev": true
},
"abbrev": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true,
"optional": true
},
"acorn": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz",
@ -1983,6 +2118,12 @@
"function-bind": "^1.1.1"
}
},
"asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
"dev": true
},
"asn1": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
@ -2016,6 +2157,12 @@
"integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
"dev": true
},
"async": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
"dev": true
},
"async-limiter": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
@ -2506,6 +2653,16 @@
}
}
},
"block-stream": {
"version": "0.0.9",
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
"dev": true,
"optional": true,
"requires": {
"inherits": "~2.0.0"
}
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@ -3031,6 +3188,15 @@
}
}
},
"dbly-linked-list": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/dbly-linked-list/-/dbly-linked-list-0.3.4.tgz",
"integrity": "sha512-327vOlwspi9i1T3Kc9yZhRUR8qDdgMQ4HmXsFDDCQ/HTc3sNe7gnF5b0UrsnaOJ0rvmG7yBZpK0NoOux9rKYKw==",
"dev": true,
"requires": {
"lodash.isequal": "^4.5.0"
}
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
@ -3204,6 +3370,26 @@
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
"encoding": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
"integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
"dev": true,
"requires": {
"iconv-lite": "^0.6.2"
},
"dependencies": {
"iconv-lite": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz",
"integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==",
"dev": true,
"requires": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
}
}
}
},
"end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
@ -4091,6 +4277,29 @@
"bser": "2.1.1"
}
},
"fbjs": {
"version": "0.8.17",
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
"integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
"dev": true,
"requires": {
"core-js": "^1.0.0",
"isomorphic-fetch": "^2.1.1",
"loose-envify": "^1.0.0",
"object-assign": "^4.1.0",
"promise": "^7.1.1",
"setimmediate": "^1.0.5",
"ua-parser-js": "^0.7.18"
},
"dependencies": {
"core-js": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
"integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=",
"dev": true
}
}
},
"figures": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
@ -4275,6 +4484,16 @@
"universalify": "^0.1.0"
}
},
"fs-minipass": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
"integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
"dev": true,
"optional": true,
"requires": {
"minipass": "^2.6.0"
}
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@ -4292,6 +4511,19 @@
"nan": "^2.12.1"
}
},
"fstream": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
"integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
"dev": true,
"optional": true,
"requires": {
"graceful-fs": "^4.1.2",
"inherits": "~2.0.0",
"mkdirp": ">=0.5 0",
"rimraf": "2"
}
},
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@ -4530,6 +4762,15 @@
}
}
},
"homedir-polyfill": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
"integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
"dev": true,
"requires": {
"parse-passwd": "^1.0.0"
}
},
"hosted-git-info": {
"version": "2.8.8",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
@ -4612,6 +4853,16 @@
"integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
"dev": true
},
"ignore-walk": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz",
"integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==",
"dev": true,
"optional": true,
"requires": {
"minimatch": "^3.0.4"
}
},
"import-fresh": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
@ -5001,6 +5252,16 @@
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
"dev": true
},
"isomorphic-fetch": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
"dev": true,
"requires": {
"node-fetch": "^1.0.1",
"whatwg-fetch": ">=0.10.0"
}
},
"isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
@ -6559,6 +6820,15 @@
"object.assign": "^4.1.0"
}
},
"jszip": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/jszip/-/jszip-2.5.0.tgz",
"integrity": "sha1-dET9hVHd8+XacZj+oMkbyDCMwnQ=",
"dev": true,
"requires": {
"pako": "~0.2.5"
}
},
"kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@ -6661,6 +6931,12 @@
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
"dev": true
},
"lodash.isequal": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
"integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
"dev": true
},
"lodash.memoize": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
@ -6979,6 +7255,27 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
},
"minipass": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
"integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
}
},
"minizlib": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
"integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
"dev": true,
"optional": true,
"requires": {
"minipass": "^2.9.0"
}
},
"mixin-deep": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
@ -7066,6 +7363,30 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
"needle": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/needle/-/needle-2.5.0.tgz",
"integrity": "sha512-o/qITSDR0JCyCKEQ1/1bnUXMmznxabbwi/Y4WwJElf+evwJNFNwIDMCCt5IigFVxgeGBJESLohGtIS9gEzo1fA==",
"dev": true,
"optional": true,
"requires": {
"debug": "^3.2.6",
"iconv-lite": "^0.4.4",
"sax": "^1.2.4"
},
"dependencies": {
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"optional": true,
"requires": {
"ms": "^2.1.1"
}
}
}
},
"nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
@ -7116,6 +7437,72 @@
}
}
},
"node-environment-flags": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz",
"integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==",
"dev": true,
"requires": {
"object.getownpropertydescriptors": "^2.0.3",
"semver": "^5.7.0"
},
"dependencies": {
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true
}
}
},
"node-fetch": {
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
"integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
"dev": true,
"requires": {
"encoding": "^0.1.11",
"is-stream": "^1.0.1"
},
"dependencies": {
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
"dev": true
}
}
},
"node-gyp": {
"version": "3.8.0",
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
"integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
"dev": true,
"optional": true,
"requires": {
"fstream": "^1.0.0",
"glob": "^7.0.3",
"graceful-fs": "^4.1.2",
"mkdirp": "^0.5.0",
"nopt": "2 || 3",
"npmlog": "0 || 1 || 2 || 3 || 4",
"osenv": "0",
"request": "^2.87.0",
"rimraf": "2",
"semver": "~5.3.0",
"tar": "^2.0.0",
"which": "1"
},
"dependencies": {
"semver": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
"dev": true,
"optional": true
}
}
},
"node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
@ -7149,17 +7536,91 @@
}
}
},
"node-pre-gyp": {
"version": "0.15.0",
"resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz",
"integrity": "sha512-7QcZa8/fpaU/BKenjcaeFF9hLz2+7S9AqyXFhlH/rilsQ/hPZKK32RtR5EQHJElgu+q5RfbJ34KriI79UWaorA==",
"dev": true,
"optional": true,
"requires": {
"detect-libc": "^1.0.2",
"mkdirp": "^0.5.3",
"needle": "^2.5.0",
"nopt": "^4.0.1",
"npm-packlist": "^1.1.6",
"npmlog": "^4.0.2",
"rc": "^1.2.7",
"rimraf": "^2.6.1",
"semver": "^5.3.0",
"tar": "^4.4.2"
},
"dependencies": {
"nopt": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
"integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
"dev": true,
"optional": true,
"requires": {
"abbrev": "1",
"osenv": "^0.1.4"
}
},
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true,
"optional": true
},
"tar": {
"version": "4.4.13",
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
"integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
"dev": true,
"optional": true,
"requires": {
"chownr": "^1.1.1",
"fs-minipass": "^1.2.5",
"minipass": "^2.8.6",
"minizlib": "^1.2.1",
"mkdirp": "^0.5.0",
"safe-buffer": "^5.1.2",
"yallist": "^3.0.3"
}
}
}
},
"node-releases": {
"version": "1.1.59",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz",
"integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==",
"dev": true
},
"node-zip": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/node-zip/-/node-zip-1.1.1.tgz",
"integrity": "sha1-lNGtZ0o81GoViN1zb0qaeMdX62I=",
"dev": true,
"requires": {
"jszip": "2.5.0"
}
},
"noop-logger": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
"integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI="
},
"nopt": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"dev": true,
"optional": true,
"requires": {
"abbrev": "1"
}
},
"normalize-package-data": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
@ -7189,6 +7650,35 @@
"remove-trailing-separator": "^1.0.1"
}
},
"npm-bundled": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz",
"integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==",
"dev": true,
"optional": true,
"requires": {
"npm-normalize-package-bin": "^1.0.1"
}
},
"npm-normalize-package-bin": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
"integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
"dev": true,
"optional": true
},
"npm-packlist": {
"version": "1.4.8",
"resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz",
"integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==",
"dev": true,
"optional": true,
"requires": {
"ignore-walk": "^3.0.1",
"npm-bundled": "^1.0.1",
"npm-normalize-package-bin": "^1.0.1"
}
},
"npm-run-path": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
@ -7503,12 +7993,30 @@
}
}
},
"os-homedir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
"dev": true,
"optional": true
},
"os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true
},
"osenv": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
"integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"dev": true,
"optional": true,
"requires": {
"os-homedir": "^1.0.0",
"os-tmpdir": "^1.0.0"
}
},
"p-each-series": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz",
@ -7554,6 +8062,12 @@
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
"pako": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
"integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
"dev": true
},
"parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@ -7575,6 +8089,12 @@
"lines-and-columns": "^1.1.6"
}
},
"parse-passwd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
"integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
"dev": true
},
"parse5": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
@ -7712,6 +8232,31 @@
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
"dev": true
},
"prepack": {
"version": "0.2.54",
"resolved": "https://registry.npmjs.org/prepack/-/prepack-0.2.54.tgz",
"integrity": "sha512-wu6j6J6h/TgpYNRS8tXEyprwul2WM2Zr+dSbc/o0O8cdhoOjvMy2T98WK2dhSNe+xyQ/SaqJpepWiCxS8EVjkA==",
"dev": true,
"requires": {
"@babel/core": "^7.0.0",
"@babel/generator": "^7.0.0",
"@babel/node": "^7.0.0",
"@babel/parser": "^7.0.0",
"@babel/preset-flow": "^7.0.0",
"@babel/template": "^7.0.0",
"@babel/traverse": "^7.0.0",
"@babel/types": "^7.0.0",
"fbjs": "^0.8.16",
"node-zip": "^1.1.1",
"queue-fifo": "^0.2.3",
"seedrandom": "^2.4.2",
"source-map": "^0.5.6",
"v8-profiler-node8": "^6.0.1",
"vscode-debugadapter": "^1.24.0",
"vscode-debugprotocol": "^1.24.0",
"zip-dir": "^1.0.2"
}
},
"prettier": {
"version": "1.19.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
@ -7846,6 +8391,15 @@
}
}
},
"promise": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
"dev": true,
"requires": {
"asap": "~2.0.3"
}
},
"prompts": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz",
@ -7894,6 +8448,15 @@
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"dev": true
},
"queue-fifo": {
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/queue-fifo/-/queue-fifo-0.2.6.tgz",
"integrity": "sha512-rwlnZHAaTmWEGKC7ziasK8u4QnZW/uN6kSiG+tHNf/1GA+R32FArZi18s3SYUpKcA0Y6jJoUDn5GT3Anoc2mWw==",
"dev": true,
"requires": {
"dbly-linked-list": "0.3.4"
}
},
"rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
@ -8486,6 +9049,12 @@
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
"dev": true
},
"seedrandom": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.4.tgz",
"integrity": "sha512-9A+PDmgm+2du77B5i0Ip2cxOqqHjgNxnBgglxLcX78A2D6c2rTo61z4jnVABpF4cKeDMDG+cmXXvdnqse2VqMA==",
"dev": true
},
"semver": {
"version": "7.3.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
@ -8538,6 +9107,12 @@
}
}
},
"setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
"dev": true
},
"shebang-command": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
@ -9120,6 +9695,18 @@
}
}
},
"tar": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
"integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
"dev": true,
"optional": true,
"requires": {
"block-stream": "*",
"fstream": "^1.0.12",
"inherits": "2"
}
},
"tar-fs": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz",
@ -9684,6 +10271,12 @@
"integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==",
"dev": true
},
"ua-parser-js": {
"version": "0.7.21",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz",
"integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==",
"dev": true
},
"unicode-canonical-property-names-ecmascript": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
@ -9835,6 +10428,27 @@
"integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==",
"dev": true
},
"v8-profiler-node8": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/v8-profiler-node8/-/v8-profiler-node8-6.3.0.tgz",
"integrity": "sha512-SBcgZInMg/zReaobSQxt4veZc6ToGCdFYzI3u1k/3qJrEzT/lHdsE6JimLQRbOeu7ux0h3scT6ASFSXeDL1twQ==",
"dev": true,
"optional": true,
"requires": {
"nan": "^2.14.1",
"node-gyp": "^3.8.0",
"node-pre-gyp": "^0.15.0"
}
},
"v8flags": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
"integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==",
"dev": true,
"requires": {
"homedir-polyfill": "^1.0.1"
}
},
"validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
@ -9856,6 +10470,30 @@
"extsprintf": "^1.2.0"
}
},
"vscode-debugadapter": {
"version": "1.41.1",
"resolved": "https://registry.npmjs.org/vscode-debugadapter/-/vscode-debugadapter-1.41.1.tgz",
"integrity": "sha512-GTgbYEmfKlkAAad+7Lv1Hr7FvCzU8BEaYbEaq2/JSkG40GOaAM1ZqIX2gtxjVSk+ClWgDAb8PqQnUyxV+hGqiA==",
"dev": true,
"requires": {
"mkdirp": "^1.0.4",
"vscode-debugprotocol": "1.41.0"
},
"dependencies": {
"mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true
}
}
},
"vscode-debugprotocol": {
"version": "1.41.0",
"resolved": "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.41.0.tgz",
"integrity": "sha512-Sxp7kDDuhpEZiDaIfhM0jLF3RtMqvc6CpoESANE77t351uezsd/oDoqALLcOnmmsDzTgQ3W0sCvM4gErnjDFpA==",
"dev": true
},
"w3c-hr-time": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
@ -9898,6 +10536,12 @@
"iconv-lite": "0.4.24"
}
},
"whatwg-fetch": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.2.0.tgz",
"integrity": "sha512-SdGPoQMMnzVYThUbSrEvqTlkvC1Ux27NehaJ/GUHBfNrh5Mjg+1/uRyFMwVnxO2MrikMWvWAqUGgQOfVU4hT7w==",
"dev": true
},
"whatwg-mimetype": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
@ -10093,6 +10737,13 @@
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
"dev": true
},
"yallist": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true,
"optional": true
},
"yaml": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz",
@ -10200,6 +10851,16 @@
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"dev": true
},
"zip-dir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/zip-dir/-/zip-dir-1.0.2.tgz",
"integrity": "sha1-JT+QeurWKiGs2HIdi4gDKyQRwFE=",
"dev": true,
"requires": {
"async": "^1.5.2",
"jszip": "^2.4.0"
}
}
}
}

View File

@ -35,6 +35,7 @@
"devDependencies": {
"husky": "^4.2.5",
"node-elm-compiler": "^5.0.4",
"prepack": "^0.2.54",
"ts-node": "^8.10.2",
"tsdx": "^0.13.2",
"tslib": "^2.0.0",

View File

@ -14,13 +14,23 @@ import {
createInlineListFromArrayTransformer,
} from './experiments/inlineListFromArray';
import { prepackFileSync } from 'prepack';
import {
createReplaceUtilsUpdateWithObjectSpread,
convertFunctionExpressionsToArrowFuncs,
NativeSpread,
} from './experiments/modernizeJS';
const compileAndTransform = (dir: string, file: string): {} => {
type TransformOptions = {
prepack: boolean;
};
const compileAndTransform = (
dir: string,
file: string,
options?: TransformOptions
): {} => {
// Compile examples in `testcases/*` folder as js
// Run whatever transformations we want on them, saving steps as `elm.{transformation}.js`
compileSync([file], {
@ -90,11 +100,23 @@ const compileAndTransform = (dir: string, file: string): {} => {
fs.writeFileSync(pathInOutput('elm.opt.js'), printer.printFile(initialJs));
if (options?.prepack) {
console.log('here');
const { code } = prepackFileSync([pathInOutput('elm.opt.transformed.js')], {
debugNames: true,
inlineExpressions: true,
maxStackDepth: 1200, // that didn't help
});
console.log('there', code.length);
fs.writeFileSync(pathInOutput('elm.opt.prepack.js'), code);
}
return {};
};
compileAndTransform('testcases/simple', 'Main.elm');
compileAndTransform('testcases/bench', 'Main.elm');
compileAndTransform('testcases/simple', 'Main.elm', { prepack: true });
compileAndTransform('testcases/bench', 'Main.elm', { prepack: true });
function reportInlineTransformResult(ctx: InlineContext) {
const {

View File

@ -1,2 +1,28 @@
declare module 'node-elm-compiler';
declare module 'tree-sitter-elm';
declare module 'prepack' {
// https://prepack.io/getting-started.html
export type PrepackOptions = {
/** If true, try to retain original variable and function names as part of the generated code.*/
debugNames?: boolean;
/** Enables two passes in the serializer to improve code quality by avoiding intermediate variables.*/
inlineExpressions?: boolean;
/** Logs evaluated function calls. */
trace?: boolean;
/** https://github.com/facebook/prepack/wiki/PP0045
*
* Prepack imposes a maximum call stack depth. It can be configured via the maxStackDepth option, and it defaults to 112.
* This compiler diagnostics is triggered when an excess number of execution contexts have been pushed on the call stack.
*/
maxStackDepth?: number;
};
export function prepackFileSync(
fileNames: string[],
options: PrepackOptions
): { code: string };
}

View File

@ -21,7 +21,7 @@ values =
many =
List.repeat 1000 values
List.repeat 100 values
|> List.concat
@ -41,9 +41,9 @@ type alias MyRecord =
{ one : Int
, two : Int
, three : Int
}
main : BenchmarkProgram
main =
Benchmark.Runner.program suite
@ -52,20 +52,18 @@ main =
updateRecord attr record =
{ record | one = 87 }
suite : Benchmark
suite =
describe "Benchmarks"
[
benchmark "sum 1000 entities in a list" <|
\_ -> List.foldl addMyType 0 many
[ benchmark "sum 1000 entities in a list" <|
\_ -> List.foldl addMyType 0 many
, benchmark "1000 record updates" <|
\_ -> List.foldl updateRecord
{ one = 1
, two = 2
, three = 3
}
many
\_ ->
List.foldl updateRecord
{ one = 1
, two = 2
, three = 3
}
many
]

View File

@ -14811,7 +14811,7 @@ var $author$project$Main$values = _List_fromArray(
A2($author$project$Main$Two, 'Two', 'two')
]);
var $author$project$Main$many = $elm$core$List$concat(
A2($elm$core$List$repeat, 1000, $author$project$Main$values));
A2($elm$core$List$repeat, 100, $author$project$Main$values));
var $author$project$Main$updateRecord = F2(
function (attr, record) {
return _Utils_update(

View File

@ -10211,7 +10211,7 @@
$author$project$Main$One(5),
A2($author$project$Main$Two, "Two", "two")
]);
var $author$project$Main$many = $elm$core$List$concat(A2($elm$core$List$repeat, 1000, $author$project$Main$values));
var $author$project$Main$many = $elm$core$List$concat(A2($elm$core$List$repeat, 100, $author$project$Main$values));
var $author$project$Main$updateRecord = F2(function (attr, record) {
return _Utils_update(record, { aO: 87 });
});

File diff suppressed because one or more lines are too long

View File

@ -8766,7 +8766,7 @@
var $author$project$Main$Two_raw = (a, b) => ({ $: 2, a, b }), $author$project$Main$Two = F2($author$project$Main$Two_raw);
var $author$project$Main$Zero = { $: 0, a: null, b: null };
var $author$project$Main$values = { $: 1, a: $author$project$Main$Zero, b: { $: 1, a: $author$project$Main$One(5), b: { $: 1, a: $author$project$Main$Two_raw("Two", "two"), b: _List_Nil } } };
var $author$project$Main$many = $elm$core$List$concat($elm$core$List$repeat_raw(1000, $author$project$Main$values));
var $author$project$Main$many = $elm$core$List$concat($elm$core$List$repeat_raw(100, $author$project$Main$values));
var $author$project$Main$updateRecord_raw = (attr, record) => _Utils_update(record, { aO: 87 }), $author$project$Main$updateRecord = F2($author$project$Main$updateRecord_raw);
var $author$project$Main$suite = $elm_explorations$benchmark$Benchmark$Benchmark$Group_raw("Benchmarks", { $: 1, a: $elm_explorations$benchmark$Benchmark$benchmark_raw("sum 1000 entities in a list", (_v0) => $elm$core$List$foldl_raw($author$project$Main$addMyType, 0, $author$project$Main$many)), b: { $: 1, a: $elm_explorations$benchmark$Benchmark$benchmark_raw("1000 record updates", (_v1) => $elm$core$List$foldl_raw($author$project$Main$updateRecord, { aO: 1, br: 3, bs: 2 }, $author$project$Main$many)), b: _List_Nil } });
var $author$project$Main$main = $elm_explorations$benchmark$Benchmark$Runner$program($author$project$Main$suite);

View File

@ -19,7 +19,7 @@ values =
many =
List.repeat 1000 values
List.repeat 100 values
|> List.concat

View File

@ -4518,7 +4518,7 @@ var $author$project$Main$values = _List_fromArray(
A2($author$project$Main$Two, 'Two', 'two')
]);
var $author$project$Main$many = $elm$core$List$concat(
A2($elm$core$List$repeat, 1000, $author$project$Main$values));
A2($elm$core$List$repeat, 100, $author$project$Main$values));
var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text;
var $elm$html$Html$text = $elm$virtual_dom$VirtualDom$text;
var $author$project$Main$main = function () {

View File

@ -3167,7 +3167,7 @@
$author$project$Main$One(5),
A2($author$project$Main$Two, "Two", "two")
]);
var $author$project$Main$many = $elm$core$List$concat(A2($elm$core$List$repeat, 1000, $author$project$Main$values));
var $author$project$Main$many = $elm$core$List$concat(A2($elm$core$List$repeat, 100, $author$project$Main$values));
var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text;
var $elm$html$Html$text = $elm$virtual_dom$VirtualDom$text;
var $author$project$Main$main = function () {

View File

@ -0,0 +1,703 @@
(function () {
"use strict";
var $$0_enumerable_58false_44configurable_58true_44writable_58false = {
enumerable: false,
configurable: true,
writable: false
};
var _$0_global = this;
var _$1_Object = _$0_global.Object;
var _$2_Object_46defineProperty = _$1_Object.defineProperty;
var _$3_Math = _$0_global.Math;
var _$4_Math_46floor = _$3_Math.floor;
var _$5_Math_46log = _$3_Math.log;
var _$6_Math_46ceil = _$3_Math.ceil;
var _13__95Utils_95cmp = function (x, y, ord) {
if (typeof x !== "object") {
return x === y ?
/*EQ*/
0 : x < y ?
/*LT*/
-1 :
/*GT*/
1;
}
/**_UNUSED/
if (x instanceof String)
{
var a = x.valueOf();
var b = y.valueOf();
return a === b ? 0 : a < b ? -1 : 1;
}
//*/
/**/
if (typeof x.$ === "undefined") //*/
/**_UNUSED/
if (x.$[0] === '#')
//*/
{
return (ord = _13__95Utils_95cmp(x.a, y.a)) ? ord : (ord = _13__95Utils_95cmp(x.b, y.b)) ? ord : _13__95Utils_95cmp(x.c, y.c);
} // traverse conses until end of a list or a mismatch
for (; x.b && y.b && !(ord = _13__95Utils_95cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES
return ord || (x.b ?
/*GT*/
1 : y.b ?
/*LT*/
-1 :
/*EQ*/
0);
};
var _U__95List_95fromArray = function (arr) {
var out = _P__36temp_36list;
for (var i = arr.length; i--;) {
out = _Z_(arr[i], out);
}
return out;
};
var _L__95Json_95runHelp = function (decoder, value) {
switch (decoder.$) {
case 2:
return decoder.b(value);
case 5:
return value === null ? _N__36elm_36core_36Result_36Ok(decoder.c) : _O_("null", value);
case 3:
if (!_S_(value)) {
return _O_("a LIST", value);
}
return _T__95Json_95runArrayDecoder(decoder.b, value, _U__95List_95fromArray);
case 4:
if (!_S_(value)) {
return _O_("an ARRAY", value);
}
return _T__95Json_95runArrayDecoder(decoder.b, value, _V_);
case 6:
var field = decoder.d;
if (typeof value !== "object" || value === null || !(field in value)) {
return _O_("an OBJECT with a field named `" + field + "`", value);
}
var result = _L__95Json_95runHelp(decoder.b, value[field]);
return _M__36elm_36core_36Result_36isOk(result) ? result : _W__36elm_36core_36Result_36Err(_X__36elm_36json_36Json_36Decode_36Field_95raw(field, result.a));
case 7:
var index = decoder.e;
if (!_S_(value)) {
return _O_("an ARRAY", value);
}
if (index >= value.length) {
return _O_("a LONGER array. Need index " + index + " but only see " + value.length + " entries", value);
}
var result = _L__95Json_95runHelp(decoder.b, value[index]);
return _M__36elm_36core_36Result_36isOk(result) ? result : _W__36elm_36core_36Result_36Err(_Y__36elm_36json_36Json_36Decode_36Index_95raw(index, result.a));
case 8:
if (typeof value !== "object" || value === null || _S_(value)) {
return _O_("an OBJECT", value);
}
var keyValuePairs = _P__36temp_36list; // TODO test perf of Object.keys and switch when support is good enough
for (var key in value) {
if (value.hasOwnProperty(key)) {
var result = _L__95Json_95runHelp(decoder.b, value[key]);
if (!_M__36elm_36core_36Result_36isOk(result)) {
return _W__36elm_36core_36Result_36Err(_X__36elm_36json_36Json_36Decode_36Field_95raw(key, result.a));
}
keyValuePairs = _Z_(_a_(key, result.a), keyValuePairs);
}
}
return _N__36elm_36core_36Result_36Ok(_b__36elm_36core_36List_36reverse(keyValuePairs));
case 9:
var answer = decoder.f;
var decoders = decoder.g;
for (var i = 0; i < decoders.length; i++) {
var result = _L__95Json_95runHelp(decoders[i], value);
if (!_M__36elm_36core_36Result_36isOk(result)) {
return result;
}
answer = answer(result.a);
}
return _N__36elm_36core_36Result_36Ok(answer);
case 10:
var result = _L__95Json_95runHelp(decoder.b, value);
return !_M__36elm_36core_36Result_36isOk(result) ? result : _L__95Json_95runHelp(decoder.h(result.a), value);
case 11:
var errors = _P__36temp_36list;
for (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS
{
var result = _L__95Json_95runHelp(temp.a, value);
if (_M__36elm_36core_36Result_36isOk(result)) {
return result;
}
errors = _Z_(result.a, errors);
}
return _W__36elm_36core_36Result_36Err(_c__36elm_36json_36Json_36Decode_36OneOf(_b__36elm_36core_36List_36reverse(errors)));
case 1:
return _W__36elm_36core_36Result_36Err(_d__36elm_36json_36Json_36Decode_36Failure_95raw(decoder.a, _e_(value)));
case 0:
return _N__36elm_36core_36Result_36Ok(decoder.a);
}
};
var _T__95Json_95runArrayDecoder = function (decoder, value, toElmValue) {
var len = value.length;
var array = new Array(len);
for (var i = 0; i < len; i++) {
var result = _L__95Json_95runHelp(decoder, value[i]);
if (!_M__36elm_36core_36Result_36isOk(result)) {
return _W__36elm_36core_36Result_36Err(_Y__36elm_36json_36Json_36Decode_36Index_95raw(i, result.a));
}
array[i] = result.a;
}
return _N__36elm_36core_36Result_36Ok(toElmValue(array));
};
var _E__95VirtualDom_95appendChild = function (parent, child) {
parent.appendChild(child);
};
var _A__95VirtualDom_95render = function (vNode, eventNode) {
var tag = vNode.$;
if (tag === 5) {
return _A__95VirtualDom_95render(vNode.k || (vNode.k = vNode.m()), eventNode);
}
if (tag === 0) {
return _B__95VirtualDom_95doc.createTextNode(vNode.a);
}
if (tag === 4) {
var subNode = vNode.k;
var tagger = vNode.j;
while (subNode.$ === 4) {
typeof tagger !== "object" ? tagger = [tagger, subNode.j] : tagger.push(subNode.j);
subNode = subNode.k;
}
var subEventRoot = {
j: tagger,
p: eventNode
};
var domNode = _A__95VirtualDom_95render(subNode, subEventRoot);
domNode.elm_event_node_ref = subEventRoot;
return domNode;
}
if (tag === 3) {
var domNode = vNode.h(vNode.g);
_D__95VirtualDom_95applyFacts(domNode, eventNode, vNode.d);
return domNode;
} // at this point `tag` must be 1 or 2
var domNode = vNode.f ? _B__95VirtualDom_95doc.createElementNS(vNode.f, vNode.c) : _B__95VirtualDom_95doc.createElement(vNode.c);
if (void 0) {
domNode.addEventListener("click", (void 0)(domNode));
}
_D__95VirtualDom_95applyFacts(domNode, eventNode, vNode.d);
for (var kids = vNode.e, i = 0; i < kids.length; i++) {
_E__95VirtualDom_95appendChild(domNode, _A__95VirtualDom_95render(tag === 1 ? kids[i] : kids[i].b, eventNode));
}
return domNode;
};
var _D__95VirtualDom_95applyFacts = function (domNode, eventNode, facts) {
for (var key in facts) {
var value = facts[key];
key === "a1" ? _F__95VirtualDom_95applyStyles(domNode, value) : key === "a0" ? _G__95VirtualDom_95applyEvents(domNode, eventNode, value) : key === "a3" ? _H__95VirtualDom_95applyAttrs(domNode, value) : key === "a4" ? _I__95VirtualDom_95applyAttrsNS(domNode, value) : (key !== "value" && key !== "checked" || domNode[key] !== value) && (domNode[key] = value);
}
};
var _F__95VirtualDom_95applyStyles = function (domNode, styles) {
var domNodeStyle = domNode.style;
for (var key in styles) {
domNodeStyle[key] = styles[key];
}
};
var _H__95VirtualDom_95applyAttrs = function (domNode, attrs) {
for (var key in attrs) {
var value = attrs[key];
typeof value !== "undefined" ? domNode.setAttribute(key, value) : domNode.removeAttribute(key);
}
};
var _I__95VirtualDom_95applyAttrsNS = function (domNode, nsAttrs) {
for (var key in nsAttrs) {
var pair = nsAttrs[key];
var namespace = pair.f;
var value = pair.o;
typeof value !== "undefined" ? domNode.setAttributeNS(namespace, key, value) : domNode.removeAttributeNS(namespace, key);
}
};
var _G__95VirtualDom_95applyEvents = function (domNode, eventNode, events) {
var allCallbacks = domNode.elmFs || (domNode.elmFs = {});
for (var key in events) {
var newHandler = events[key];
var oldCallback = allCallbacks[key];
if (!newHandler) {
domNode.removeEventListener(key, oldCallback);
allCallbacks[key] = undefined;
continue;
}
if (oldCallback) {
var oldHandler = oldCallback.q;
if (oldHandler.$ === newHandler.$) {
oldCallback.q = newHandler;
continue;
}
domNode.removeEventListener(key, oldCallback);
}
oldCallback = _J__95VirtualDom_95makeCallback(eventNode, newHandler);
domNode.addEventListener(key, oldCallback, void 0);
allCallbacks[key] = oldCallback;
}
};
var _J__95VirtualDom_95makeCallback = function (eventNode, initialHandler) {
function callback(event) {
var handler = callback.q;
var result = _L__95Json_95runHelp(handler.a, event);
if (!_M__36elm_36core_36Result_36isOk(result)) {
return;
}
var tag = _K__36elm_36virtual_95dom_36VirtualDom_36toHandlerInt(handler); // 0 = Normal
// 1 = MayStopPropagation
// 2 = MayPreventDefault
// 3 = Custom
var value = result.a;
var message = !tag ? value : tag < 3 ? value.a : value.o;
var stopPropagation = tag == 1 ? value.b : tag == 3 && value.J;
var currentEventNode = (stopPropagation && event.stopPropagation(), (tag == 2 ? value.b : tag == 3 && value.G) && event.preventDefault(), eventNode);
var tagger;
var i;
while (tagger = currentEventNode.j) {
if (typeof tagger == "function") {
message = tagger(message);
} else {
for (var i = tagger.length; i--;) {
message = tagger[i](message);
}
}
currentEventNode = currentEventNode.p;
}
currentEventNode(message, stopPropagation); // stopPropagation implies isSync
}
callback.q = initialHandler;
return callback;
};
var _q__95JsArray_95initialize_95raw = function (size, offset, func) {
var result = new Array(size);
for (var i = 0; i < size; i++) {
result[i] = func(offset + i);
}
return result;
};
var _14__95JsArray_95initializeFromList_95raw = function (max, ls) {
var result = new Array(max);
for (var i = 0; i < max && ls.b; i++) {
result[i] = ls.a;
ls = ls.b;
}
result.length = i;
return _a_(result, ls);
};
var _9__95VirtualDom_95init_95raw = function (virtualNode, flagDecoder, debugMetadata, args) {
// NOTE: this function needs _Platform_export available to work
/**/
var node = args["node"]; //*/
/**_UNUSED/
var node = args && args['node'] ? args['node'] : _Debug_crash(0);
//*/
node.parentNode.replaceChild(_A__95VirtualDom_95render(virtualNode, function () {}), node);
return {};
};
var _g__36elm_36core_36List_36foldl_95raw = function (func, acc, list) {
foldl: while (true) {
if (!list.b) {
return acc;
} else {
var x = list.a;
var xs = list.b;
var $temp$func = func,
$temp$acc = _p_(func, x, acc),
$temp$list = xs;
func = $temp$func;
acc = $temp$acc;
list = $temp$list;
continue foldl;
}
}
};
var _15__36elm_36core_36Array_36compressNodes_95raw = function (nodes, acc) {
compressNodes: while (true) {
var _v0 = _14__95JsArray_95initializeFromList_95raw(32, nodes);
var node = _v0.a;
var remainingNodes = _v0.b;
var newAcc = _Z_(_16__36elm_36core_36Array_36SubTree(node), acc);
if (!remainingNodes.b) {
return _b__36elm_36core_36List_36reverse(newAcc);
} else {
var $temp$nodes = remainingNodes,
$temp$acc = newAcc;
nodes = $temp$nodes;
acc = $temp$acc;
continue compressNodes;
}
}
};
var _z__36elm_36core_36Array_36treeFromBuilder_95raw = function (nodeList, nodeListSize) {
treeFromBuilder: while (true) {
var newNodeSize = _12__36elm_36core_36Basics_36ceiling(nodeListSize / 32);
if (newNodeSize === 1) {
return _14__95JsArray_95initializeFromList_95raw(32, nodeList).a;
} else {
var $temp$nodeList = _15__36elm_36core_36Array_36compressNodes_95raw(nodeList, _P__36temp_36list),
$temp$nodeListSize = newNodeSize;
nodeList = $temp$nodeList;
nodeListSize = $temp$nodeListSize;
continue treeFromBuilder;
}
}
};
var _s__36elm_36core_36Array_36builderToArray_95raw = function (reverseNodeList, builder) {
if (!builder.a) {
return _u__36elm_36core_36Array_36Array_95elm_95builtin_95raw(_v__36elm_36core_36Elm_36JsArray_36length(builder.c), 5, _l__36elm_36core_36Elm_36JsArray_36empty, builder.c);
} else {
var treeLen = builder.a * 32;
var depth = _x__36elm_36core_36Basics_36floor(_y__36elm_36core_36Basics_36logBase_95raw(32, treeLen - 1));
var correctNodeList = reverseNodeList ? _b__36elm_36core_36List_36reverse(builder.d) : builder.d;
var tree = _z__36elm_36core_36Array_36treeFromBuilder_95raw(correctNodeList, builder.a);
return _u__36elm_36core_36Array_36Array_95elm_95builtin_95raw(_v__36elm_36core_36Elm_36JsArray_36length(builder.c) + treeLen, _10__36elm_36core_36Basics_36max_95raw(5, depth * 5), tree, builder.c);
}
};
var _r__36elm_36core_36Array_36initializeHelp_95raw = function (fn, fromIndex, len, nodeList, tail) {
initializeHelp: while (true) {
if (fromIndex < 0) {
return _s__36elm_36core_36Array_36builderToArray_95raw(false, {
d: nodeList,
a: len / 32 | 0,
c: tail
});
} else {
var leaf = _t__36elm_36core_36Array_36Leaf(_q__95JsArray_95initialize_95raw(32, fromIndex, fn));
var $temp$fn = fn,
$temp$fromIndex = fromIndex - 32,
$temp$len = len,
$temp$nodeList = _Z_(leaf, nodeList),
$temp$tail = tail;
fn = $temp$fn;
fromIndex = $temp$fromIndex;
len = $temp$len;
nodeList = $temp$nodeList;
tail = $temp$tail;
continue initializeHelp;
}
}
};
var _f__36elm_36core_36Array_36initialize_95raw = function (len, fn) {
if (len <= 0) {
return _h__36elm_36core_36Array_36empty;
} else {
var tailLen = len % 32;
var tail = _q__95JsArray_95initialize_95raw(tailLen, len - tailLen, fn);
var initialFromIndex = len - tailLen - 32;
return _r__36elm_36core_36Array_36initializeHelp_95raw(fn, initialFromIndex, len, _P__36temp_36list, tail);
}
};
var _M__36elm_36core_36Result_36isOk = function (result) {
if (!result.$) {
return true;
} else {
return false;
}
};
var _K__36elm_36virtual_95dom_36VirtualDom_36toHandlerInt = function (handler) {
switch (handler.$) {
case 0:
return 0;
case 1:
return 1;
case 2:
return 2;
default:
return 3;
}
};
var _B__95VirtualDom_95doc = document;
var _N__36elm_36core_36Result_36Ok = a => {
return {
$: 0,
a: a
};
};
var _O_ = (type, value) => {
return _W__36elm_36core_36Result_36Err(_d__36elm_36json_36Json_36Decode_36Failure_95raw("Expecting " + type, _e_(value)));
};
var _S_ = value => {
return Array.isArray(value) || typeof FileList !== "undefined" && value instanceof FileList;
};
var _W__36elm_36core_36Result_36Err = a => {
return {
$: 1,
a: a
};
};
var _Y__36elm_36json_36Json_36Decode_36Index_95raw = (a, b) => {
return {
$: 1,
a: a,
b: b
};
};
var _d__36elm_36json_36Json_36Decode_36Failure_95raw = (a, b) => {
return {
$: 3,
a: a,
b: b
};
};
var _Z_ = (hd, tl) => {
return {
$: 1,
a: hd,
b: tl
};
};
var _e_ = value => {
return value;
};
var _P__36temp_36list = {
$: 0,
a: null,
b: null
};
var _l__36elm_36core_36Elm_36JsArray_36empty = [];
var _3_ = d => {
return _9__95VirtualDom_95init_95raw(_4__36author_36project_36Main_36main, 0, 0, d);
};
var _h__36elm_36core_36Array_36empty = {
$: 0,
a: 0,
b: 5,
c: _l__36elm_36core_36Elm_36JsArray_36empty,
d: _l__36elm_36core_36Elm_36JsArray_36empty
};
var _u__36elm_36core_36Array_36Array_95elm_95builtin_95raw = (a, b, c, d) => {
return {
$: 0,
a: a,
b: b,
c: c,
d: d
};
};
var _V_ = array => {
return _f__36elm_36core_36Array_36initialize_95raw(array.length, i => array[i]);
};
var _v__36elm_36core_36Elm_36JsArray_36length = array => {
return array.length;
};
var _X__36elm_36json_36Json_36Decode_36Field_95raw = (a, b) => {
return {
$: 0,
a: a,
b: b
};
};
$$0_enumerable_58false_44configurable_58true_44writable_58false.value = "_JsArray_length", _$2_Object_46defineProperty(_v__36elm_36core_36Elm_36JsArray_36length, "name", $$0_enumerable_58false_44configurable_58true_44writable_58false);
var _b__36elm_36core_36List_36reverse = list => {
return _g__36elm_36core_36List_36foldl_95raw(_m__36elm_36core_36List_36cons, _P__36temp_36list, list);
};
var _a_ = (a, b) => {
return {
a: a,
b: b
};
};
var _m__36elm_36core_36List_36cons = a => {
return b => _Z_(a, b);
};
var _c__36elm_36json_36Json_36Decode_36OneOf = a => {
return {
$: 2,
a: a
};
};
var _p_ = (fun, a, b) => {
return fun.a === 2 ? fun.f(a, b) : fun(a)(b);
};
var _x__36elm_36core_36Basics_36floor = _$4_Math_46floor;
var _11__95Basics_95log = _$5_Math_46log;
var _y__36elm_36core_36Basics_36logBase_95raw = (base, number) => {
return _11__95Basics_95log(number) / _11__95Basics_95log(base);
};
var _t__36elm_36core_36Array_36Leaf = a => {
return {
$: 1,
a: a
};
};
_m__36elm_36core_36List_36cons.a = 2;
_m__36elm_36core_36List_36cons.f = _Z_;
var _12__36elm_36core_36Basics_36ceiling = _$6_Math_46ceil;
var _10__36elm_36core_36Basics_36max_95raw = (x, y) => {
return _13__95Utils_95cmp(x, y) > 0 ? x : y;
};
var _16__36elm_36core_36Array_36SubTree = a => {
return {
$: 0,
a: a
};
};
var _4__36author_36project_36Main_36main = {
$: 0,
a: "500"
};
_$0_global.Elm = {
Main: {
init: _3_
}
};
}).call(this);

View File

@ -2704,7 +2704,7 @@
var $author$project$Main$Two_raw = (a, b) => ({ $: 2, a, b }), $author$project$Main$Two = F2($author$project$Main$Two_raw);
var $author$project$Main$Zero = { $: 0, a: null, b: null };
var $author$project$Main$values = { $: 1, a: $author$project$Main$Zero, b: { $: 1, a: $author$project$Main$One(5), b: { $: 1, a: $author$project$Main$Two_raw("Two", "two"), b: _List_Nil } } };
var $author$project$Main$many = $elm$core$List$concat($elm$core$List$repeat_raw(1000, $author$project$Main$values));
var $author$project$Main$many = $elm$core$List$concat($elm$core$List$repeat_raw(100, $author$project$Main$values));
var $elm$virtual_dom$VirtualDom$text = _VirtualDom_text;
var $elm$html$Html$text = $elm$virtual_dom$VirtualDom$text;
var $author$project$Main$main = function () {