From f3386135e9aa16bd97260bce68feb67b6a39a04c Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Sun, 29 Dec 2019 11:02:37 -0500 Subject: [PATCH 01/10] (docs): run doctoc on pre-commit (#399) - and install it as a devDep - doctoc is used in the README ToC and listed in comment, but wasn't a devDep or used in any internal scripts --- package.json | 3 +- yarn.lock | 365 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 361 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 2373aef87..9509b42fc 100644 --- a/package.json +++ b/package.json @@ -116,6 +116,7 @@ "@types/react": "^16.9.11", "@types/rollup-plugin-json": "^3.0.2", "@types/rollup-plugin-sourcemaps": "^0.4.2", + "doctoc": "^1.4.0", "husky": "^3.0.9", "pretty-quick": "^2.0.0", "ps-tree": "^1.2.0", @@ -123,7 +124,7 @@ }, "husky": { "hooks": { - "pre-commit": "pretty-quick --staged --pattern '!test/tests/lint/**' && yarn lint" + "pre-commit": "pretty-quick --staged --pattern '!test/tests/lint/**' && yarn lint && doctoc README.md" } }, "prettier": { diff --git a/yarn.lock b/yarn.lock index da6fd3d8f..cfc2923c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -904,6 +904,24 @@ magic-string "^0.25.2" rollup-pluginutils "^2.6.0" +"@textlint/ast-node-types@^4.0.3": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.2.5.tgz#ae13981bc8711c98313a6ac1c361194d6bf2d39b" + integrity sha512-+rEx4jLOeZpUcdvll7jEg/7hNbwYvHWFy4IGW/tk2JdbyB3SJVyIP6arAwzTH/sp/pO9jftfyZnRj4//sLbLvQ== + +"@textlint/markdown-to-ast@~6.0.9": + version "6.0.9" + resolved "https://registry.yarnpkg.com/@textlint/markdown-to-ast/-/markdown-to-ast-6.0.9.tgz#e7c89e5ad15d17dcd8e5a62758358936827658fa" + integrity sha512-hfAWBvTeUGh5t5kTn2U3uP3qOSM1BSrxzl1jF3nn0ywfZXpRBZr5yRjXnl4DzIYawCtZOshmRi/tI3/x4TE1jQ== + dependencies: + "@textlint/ast-node-types" "^4.0.3" + debug "^2.1.3" + remark-frontmatter "^1.2.0" + remark-parse "^5.0.0" + structured-source "^3.0.2" + traverse "^0.6.6" + unified "^6.1.6" + "@types/ansi-escapes@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/ansi-escapes/-/ansi-escapes-4.0.0.tgz#cf52d455628bc3fab95db971ab0f23c84778cc05" @@ -1253,6 +1271,13 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +anchor-markdown-header@^0.5.5: + version "0.5.7" + resolved "https://registry.yarnpkg.com/anchor-markdown-header/-/anchor-markdown-header-0.5.7.tgz#045063d76e6a1f9cd327a57a0126aa0fdec371a7" + integrity sha1-BFBj125qH5zTJ6V6ASaqD97Dcac= + dependencies: + emoji-regex "~6.1.0" + ansi-colors@^3.2.1: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" @@ -1604,6 +1629,11 @@ babylon@^6.18.0: resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== +bail@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.4.tgz#7181b66d508aa3055d3f6c13f0a0c720641dde9b" + integrity sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww== + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -1639,6 +1669,11 @@ bluebird@3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== +boundary@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/boundary/-/boundary-1.0.1.tgz#4d67dc2602c0cc16dd9bce7ebf87e948290f5812" + integrity sha1-TWfcJgLAzBbdm85+v4fpSCkPWBI= + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1810,6 +1845,21 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +character-entities-legacy@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz#3c729991d9293da0ede6dddcaf1f2ce1009ee8b4" + integrity sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww== + +character-entities@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.3.tgz#bbed4a52fe7ef98cc713c6d80d9faa26916d54e6" + integrity sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w== + +character-reference-invalid@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz#1647f4f726638d3ea4a750cf5d1975c1c7919a85" + integrity sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg== + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -1917,6 +1967,11 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +collapse-white-space@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.5.tgz#c2495b699ab1ed380d29a1091e01063e75dbbe3a" + integrity sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ== + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -2112,7 +2167,7 @@ data-urls@^1.0.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" -debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2214,6 +2269,18 @@ diff-sequences@^24.9.0: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== +doctoc@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/doctoc/-/doctoc-1.4.0.tgz#3115aa61d0a92f0abb0672036918ea904f5b9e02" + integrity sha512-8IAq3KdMkxhXCUF+xdZxdJxwuz8N2j25sMgqiu4U4JWluN9tRKMlAalxGASszQjlZaBprdD2YfXpL3VPWUD4eg== + dependencies: + "@textlint/markdown-to-ast" "~6.0.9" + anchor-markdown-header "^0.5.5" + htmlparser2 "~3.9.2" + minimist "~1.2.0" + underscore "~1.8.3" + update-section "^0.3.0" + doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -2236,6 +2303,24 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +domelementtype@1, domelementtype@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" @@ -2243,6 +2328,21 @@ domexception@^1.0.1: dependencies: webidl-conversions "^4.0.2" +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" @@ -2271,6 +2371,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@~6.1.0: + version "6.1.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.3.tgz#ec79a3969b02d2ecf2b72254279bf99bc7a83932" + integrity sha1-7HmjlpsC0uzytyJUJ5v5m8eoOTI= + end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -2285,6 +2390,16 @@ enquirer@^2.3.0: dependencies: ansi-colors "^3.2.1" +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -2654,7 +2769,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@~3.0.2: +extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -2712,6 +2827,13 @@ fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fault@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.3.tgz#4da88cf979b6b792b4e13c7ec836767725170b7e" + integrity sha512-sfFuP4X0hzrbGKjAUNXYvNqsZ5F6ohx/dZ9I0KQud/aiZNwg263r5L9yGB0clvXHCkzXh5W3t7RSHchggYIFmA== + dependencies: + format "^0.2.2" + fb-watchman@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" @@ -2807,6 +2929,11 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +format@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -3078,6 +3205,18 @@ html-encoding-sniffer@^1.0.2: dependencies: whatwg-encoding "^1.0.1" +htmlparser2@~3.9.2: + version "3.9.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" + integrity sha1-G9+HrMoPP55T+k/M6w9LTLsAszg= + dependencies: + domelementtype "^1.3.0" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^2.0.2" + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -3175,7 +3314,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -3230,6 +3369,19 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-alphabetical@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.3.tgz#eb04cc47219a8895d8450ace4715abff2258a1f8" + integrity sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA== + +is-alphanumerical@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz#57ae21c374277b3defe0274c640a5704b8f6657c" + integrity sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -3242,7 +3394,7 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" -is-buffer@^1.1.5: +is-buffer@^1.1.4, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== @@ -3278,6 +3430,11 @@ is-date-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= +is-decimal@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.3.tgz#381068759b9dc807d8c0dc0bfbae2b68e1da48b7" + integrity sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -3354,6 +3511,11 @@ is-glob@^4.0.0, is-glob@^4.0.1: dependencies: is-extglob "^2.1.1" +is-hexadecimal@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz#e8a426a69b6d31470d3a33a47bb825cda02506ee" + integrity sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA== + is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" @@ -3371,6 +3533,11 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -3419,11 +3586,21 @@ is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-whitespace-character@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz#b3ad9546d916d7d3ffa78204bca0c26b56257fac" + integrity sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ== + is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== +is-word-character@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.3.tgz#264d15541cbad0ba833d3992c34e6b40873b08aa" + integrity sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A== + is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" @@ -4206,6 +4383,11 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" +markdown-escapes@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.3.tgz#6155e10416efaafab665d466ce598216375195f5" + integrity sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw== + merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -4264,7 +4446,7 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@^1.1.1, minimist@^1.2.0: +minimist@^1.1.1, minimist@^1.2.0, minimist@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= @@ -4771,6 +4953,18 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-entities@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" + integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -5231,6 +5425,35 @@ regjsparser@^0.6.0: dependencies: jsesc "~0.5.0" +remark-frontmatter@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-1.3.2.tgz#91d9684319cd1b96cc3d9d901f10a978f39c752d" + integrity sha512-2eayxITZ8rezsXdgcXnYB3iLivohm2V/ZT4Ne8uhua6A4pk6GdLE2ZzJnbnINtD1HRLaTdB7RwF9sgUbMptJZA== + dependencies: + fault "^1.0.1" + xtend "^4.0.1" + +remark-parse@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" + integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== + dependencies: + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^1.1.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^1.0.0" + vfile-location "^2.0.0" + xtend "^4.0.1" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -5241,11 +5464,16 @@ repeat-element@^1.1.2: resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.6.1: +repeat-string@^1.5.4, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= +replace-ext@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= + request-promise-core@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" @@ -5781,6 +6009,11 @@ stack-utils@^1.0.1: resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== +state-toggle@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.2.tgz#75e93a61944116b4959d665c8db2d243631d6ddc" + integrity sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw== + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -5928,6 +6161,13 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +structured-source@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/structured-source/-/structured-source-3.0.2.tgz#dd802425e0f53dc4a6e7aca3752901a1ccda7af5" + integrity sha1-3YAkJeD1PcSm56yjdSkBoczaevU= + dependencies: + boundary "^1.0.1" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -6094,6 +6334,26 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +traverse@^0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= + +trim-trailing-lines@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz#d2f1e153161152e9f02fabc670fb40bec2ea2e3a" + integrity sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q== + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + +trough@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.4.tgz#3b52b1f13924f460c3fbfd0df69b587dbcbc762e" + integrity sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q== + ts-jest@^24.0.2: version "24.2.0" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.2.0.tgz#7abca28c2b4b0a1fdd715cd667d65d047ea4e768" @@ -6164,6 +6424,19 @@ uglify-js@^3.1.4: commander "~2.20.3" source-map "~0.6.1" +underscore@~1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" + integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI= + +unherit@^1.0.4: + version "1.1.2" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.2.tgz#14f1f397253ee4ec95cec167762e77df83678449" + integrity sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w== + dependencies: + inherits "^2.0.1" + xtend "^4.0.1" + unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -6187,6 +6460,18 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== +unified@^6.1.6: + version "6.2.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" + integrity sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-plain-obj "^1.1.0" + trough "^1.0.0" + vfile "^2.0.0" + x-is-string "^0.1.0" + union-value@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" @@ -6197,6 +6482,37 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" +unist-util-is@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" + integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== + +unist-util-remove-position@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" + integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A== + dependencies: + unist-util-visit "^1.1.0" + +unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" + integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== + +unist-util-visit-parents@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" + integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== + dependencies: + unist-util-is "^3.0.0" + +unist-util-visit@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" + integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== + dependencies: + unist-util-visit-parents "^2.0.0" + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -6215,6 +6531,11 @@ upath@^1.1.1: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== +update-section@^0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/update-section/-/update-section-0.3.3.tgz#458f17820d37820dc60e20b86d94391b00123158" + integrity sha1-RY8Xgg03gg3GDiC4bZQ5GwASMVg= + upper-case-first@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" @@ -6284,6 +6605,28 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vfile-location@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" + integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== + +vfile-message@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" + integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== + dependencies: + unist-util-stringify-position "^1.1.1" + +vfile@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" + integrity sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w== + dependencies: + is-buffer "^1.1.4" + replace-ext "1.0.0" + unist-util-stringify-position "^1.0.0" + vfile-message "^1.0.0" + w3c-hr-time@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" @@ -6421,11 +6764,21 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" +x-is-string@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" + integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== +xtend@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" From a38041f995df468aa82c3cc72632cb67eec40bdb Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Sun, 29 Dec 2019 11:04:53 -0500 Subject: [PATCH 02/10] (refactor): use path constants instead of custom resolveApp (#402) - and use ensureDistFolder since that exists now - and use async readJSON since most were converted before --- src/constants.ts | 1 + src/createRollupConfig.ts | 9 ++------- src/index.ts | 4 ++-- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/constants.ts b/src/constants.ts index ac3eac7f9..f448e6cae 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -2,6 +2,7 @@ import { resolveApp } from './utils'; export const paths = { appPackageJson: resolveApp('package.json'), + tsconfigJson: resolveApp('tsconfig.json'), testsSetup: resolveApp('test/setupTests.ts'), appRoot: resolveApp('.'), appSrc: resolveApp('src'), diff --git a/src/createRollupConfig.ts b/src/createRollupConfig.ts index 2e5d38cc9..112580463 100644 --- a/src/createRollupConfig.ts +++ b/src/createRollupConfig.ts @@ -1,9 +1,4 @@ -import { - safeVariableName, - safePackageName, - external, - resolveApp, -} from './utils'; +import { safeVariableName, safePackageName, external } from './utils'; import { paths } from './constants'; import { RollupOptions } from 'rollup'; import { terser } from 'rollup-plugin-terser'; @@ -50,7 +45,7 @@ export async function createRollupConfig( let tsconfigJSON; try { - tsconfigJSON = fs.readJSONSync(resolveApp('tsconfig.json')); + tsconfigJSON = await fs.readJSON(paths.tsconfigJson); } catch (e) {} return { diff --git a/src/index.ts b/src/index.ts index 56196bc49..4b8e117ea 100755 --- a/src/index.ts +++ b/src/index.ts @@ -44,7 +44,7 @@ const prog = sade('tsdx'); let appPackageJson: PackageJson; try { - appPackageJson = fs.readJSONSync(resolveApp('package.json')); + appPackageJson = fs.readJSONSync(paths.appPackageJson); } catch (e) {} // check for custom tsdx.config.js @@ -463,7 +463,7 @@ prog const logger = await createProgressEstimator(); if (opts.format.includes('cjs')) { try { - await util.promisify(mkdirp)(resolveApp('./dist')); + await ensureDistFolder(); const promise = writeCjsEntryFile(opts.name).catch(logError); logger(promise, 'Creating entry file'); } catch (e) { From 158ee9a69c824b71b62cf987fe943a167f47f936 Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Tue, 31 Dec 2019 13:28:28 -0500 Subject: [PATCH 03/10] (types/refactor): be more specific than 'any' in build code (#401) - add types for all options and use those types throughout the build/watch code - fix some incorrect types in a few places that became more obvious or errors once types were added - fix default target from 'web' (not an option) to 'browser' - extract createBuildConfigs into a separate file as it's fairly long and has some relatively complex code - and refactor it a bit to make it a bit easier to read as well as easier to type (and type cast) Co-authored-by: Jared Palmer --- src/createBuildConfigs.ts | 89 +++++++++++++++++++++++++++++++++ src/index.ts | 101 +++++++------------------------------- src/types.ts | 46 +++++++++++++---- 3 files changed, 145 insertions(+), 91 deletions(-) create mode 100644 src/createBuildConfigs.ts diff --git a/src/createBuildConfigs.ts b/src/createBuildConfigs.ts new file mode 100644 index 000000000..b53bdee54 --- /dev/null +++ b/src/createBuildConfigs.ts @@ -0,0 +1,89 @@ +import { RollupOptions, OutputOptions } from 'rollup'; +import * as fs from 'fs-extra'; +import { concatAllArray } from 'jpjs'; + +import { paths } from './constants'; +import { TsdxOptions, NormalizedOpts } from './types'; + +import { createRollupConfig } from './createRollupConfig'; + +// check for custom tsdx.config.js +let tsdxConfig = { + rollup(config: RollupOptions, _options: TsdxOptions): RollupOptions { + return config; + }, +}; + +if (fs.existsSync(paths.appConfig)) { + tsdxConfig = require(paths.appConfig); +} + +export async function createBuildConfigs( + opts: NormalizedOpts +): Promise> { + const allInputs = concatAllArray( + opts.input.map((input: string) => + createAllFormats(opts, input).map( + (options: TsdxOptions, index: number) => ({ + ...options, + // We want to know if this is the first run for each entryfile + // for certain plugins (e.g. css) + writeMeta: index === 0, + }) + ) + ) + ); + + return await Promise.all( + allInputs.map(async (options: TsdxOptions) => { + // pass the full rollup config to tsdx.config.js override + const config = await createRollupConfig(options); + return tsdxConfig.rollup(config, options); + }) + ); +} + +function createAllFormats( + opts: NormalizedOpts, + input: string +): [TsdxOptions, ...TsdxOptions[]] { + return [ + opts.format.includes('cjs') && { + ...opts, + format: 'cjs', + env: 'development', + input, + }, + opts.format.includes('cjs') && { + ...opts, + format: 'cjs', + env: 'production', + input, + }, + opts.format.includes('esm') && { ...opts, format: 'esm', input }, + opts.format.includes('umd') && { + ...opts, + format: 'umd', + env: 'development', + input, + }, + opts.format.includes('umd') && { + ...opts, + format: 'umd', + env: 'production', + input, + }, + opts.format.includes('system') && { + ...opts, + format: 'system', + env: 'development', + input, + }, + opts.format.includes('system') && { + ...opts, + format: 'system', + env: 'production', + input, + }, + ].filter(Boolean) as [TsdxOptions, ...TsdxOptions[]]; +} diff --git a/src/index.ts b/src/index.ts index 4b8e117ea..e176d8fc8 100755 --- a/src/index.ts +++ b/src/index.ts @@ -25,7 +25,7 @@ import shell from 'shelljs'; import ora from 'ora'; import { paths } from './constants'; import * as Messages from './messages'; -import { createRollupConfig } from './createRollupConfig'; +import { createBuildConfigs } from './createBuildConfigs'; import { createJestConfig } from './createJestConfig'; import { createEslintConfig } from './createEslintConfig'; import { resolveApp, safePackageName, clearConsole } from './utils'; @@ -33,7 +33,13 @@ import { concatAllArray } from 'jpjs'; import getInstallCmd from './getInstallCmd'; import getInstallArgs from './getInstallArgs'; import { Input, Select } from 'enquirer'; -import { PackageJson, TsdxOptions } from './types'; +import { + PackageJson, + WatchOpts, + BuildOpts, + ModuleFormat, + NormalizedOpts, +} from './types'; import { createProgressEstimator } from './createProgressEstimator'; import { templates } from './templates'; import { composePackageJson } from './templates/utils'; @@ -47,17 +53,6 @@ try { appPackageJson = fs.readJSONSync(paths.appPackageJson); } catch (e) {} -// check for custom tsdx.config.js -let tsdxConfig = { - rollup(config: RollupOptions, _options: TsdxOptions): RollupOptions { - return config; - }, -}; - -if (fs.existsSync(paths.appConfig)) { - tsdxConfig = require(paths.appConfig); -} - export const isDir = (name: string) => fs .stat(name) @@ -80,8 +75,11 @@ async function jsOrTs(filename: string) { return resolveApp(`${filename}${extension}`); } -async function getInputs(entries: string[], source?: string) { - let inputs: any[] = []; +async function getInputs( + entries?: string | string[], + source?: string +): Promise { + let inputs: string[] = []; let stub: any[] = []; stub .concat( @@ -96,67 +94,6 @@ async function getInputs(entries: string[], source?: string) { return concatAllArray(inputs); } -async function createBuildConfigs( - opts: any -): Promise> { - return await Promise.all( - concatAllArray( - opts.input.map((input: string) => - [ - opts.format.includes('cjs') && { - ...opts, - format: 'cjs', - env: 'development', - input, - }, - opts.format.includes('cjs') && { - ...opts, - format: 'cjs', - env: 'production', - input, - }, - opts.format.includes('esm') && { ...opts, format: 'esm', input }, - opts.format.includes('umd') && { - ...opts, - format: 'umd', - env: 'development', - input, - }, - opts.format.includes('umd') && { - ...opts, - format: 'umd', - env: 'production', - input, - }, - opts.format.includes('system') && { - ...opts, - format: 'system', - env: 'development', - input, - }, - opts.format.includes('system') && { - ...opts, - format: 'system', - env: 'production', - input, - }, - ] - .filter(Boolean) - .map((options: TsdxOptions, index: number) => ({ - ...options, - // We want to know if this is the first run for each entryfile - // for certain plugins (e.g. css) - writeMeta: index === 0, - })) - ) - ).map(async (options: TsdxOptions) => { - // pass the full rollup config to tsdx.config.js override - const config = await createRollupConfig(options); - return tsdxConfig.rollup(config, options); - }) - ); -} - async function moveTypes() { try { // Move the typescript types to the base of the ./dist folder @@ -320,7 +257,7 @@ prog .describe('Rebuilds on any change') .option('--entry, -i', 'Entry module(s)') .example('watch --entry src/foo.tsx') - .option('--target', 'Specify your target environment', 'web') + .option('--target', 'Specify your target environment', 'browser') .example('watch --target node') .option('--name', 'Specify name exposed in UMD builds') .example('watch --name Foo') @@ -346,7 +283,7 @@ prog .example('build --transpileOnly') .option('--extractErrors', 'Extract invariant errors to ./errors/codes.json.') .example('build --extractErrors') - .action(async (dirtyOpts: any) => { + .action(async (dirtyOpts: WatchOpts) => { const opts = await normalizeOpts(dirtyOpts); const buildConfigs = await createBuildConfigs(opts); if (!opts.noClean) { @@ -438,7 +375,7 @@ prog .describe('Build your project once and exit') .option('--entry, -i', 'Entry module(s)') .example('build --entry src/foo.tsx') - .option('--target', 'Specify your target environment', 'web') + .option('--target', 'Specify your target environment', 'browser') .example('build --target node') .option('--name', 'Specify name exposed in UMD builds') .example('build --name Foo') @@ -455,7 +392,7 @@ prog .example( 'build --extractErrors=https://reactjs.org/docs/error-decoder.html?invariant=' ) - .action(async (dirtyOpts: any) => { + .action(async (dirtyOpts: BuildOpts) => { const opts = await normalizeOpts(dirtyOpts); const buildConfigs = await createBuildConfigs(opts); await cleanDistFolder(); @@ -491,7 +428,7 @@ prog } }); -async function normalizeOpts(opts: any) { +async function normalizeOpts(opts: WatchOpts): Promise { return { ...opts, name: opts.name || appPackageJson.name, @@ -501,7 +438,7 @@ async function normalizeOpts(opts: any) { return 'esm'; } return format; - }), + }) as [ModuleFormat, ...ModuleFormat[]], }; } diff --git a/src/types.ts b/src/types.ts index 88a9a3a21..e5e92cc5f 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,18 +1,46 @@ -export interface TsdxOptions { - // path to file - input: string; - // Name of package - name: string; +interface SharedOpts { // JS target target: 'node' | 'browser'; - // Module format - format: 'cjs' | 'umd' | 'esm' | 'system'; - // Environment - env: 'development' | 'production'; // Path to tsconfig file tsconfig?: string; // Is error extraction running? extractErrors?: boolean; +} + +export type ModuleFormat = 'cjs' | 'umd' | 'esm' | 'system'; + +export interface BuildOpts extends SharedOpts { + name?: string; + entry?: string | string[]; + format: 'cjs,esm'; + target: 'browser'; +} + +export interface WatchOpts extends BuildOpts { + verbose?: boolean; + noClean?: boolean; + // callback hooks + onFirstSuccess?: string; + onSuccess?: string; + onFailure?: string; +} + +export interface NormalizedOpts + extends Omit { + name: string; + input: string[]; + format: [ModuleFormat, ...ModuleFormat[]]; +} + +export interface TsdxOptions extends SharedOpts { + // Name of package + name: string; + // path to file + input: string; + // Environment + env: 'development' | 'production'; + // Module format + format: ModuleFormat; // Is minifying? minify?: boolean; // Is this the very first rollup config (and thus should one-off metadata be extracted)? From 35fa947e49a49a21627653a1f76c6a1e22d9e0ab Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Wed, 1 Jan 2020 22:30:58 -0500 Subject: [PATCH 04/10] (docs): add warning to tsdx.config.js usage (#400) - similar to the ones that exist in react-app-rewired and customize-cra as, like CRA, changing TSDX internals is a fragile path --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 44edbb69f..e6d4ebd08 100644 --- a/README.md +++ b/README.md @@ -299,6 +299,9 @@ _TODO: Simple guide to host error codes to be completed_ ### Rollup +> **❗⚠️❗ Warning**:
+> These modifications will override the default behavior and configuration of TSDX. As such they can invalidate internal guarantees and assumptions. These types of changes can break internal behavior and can be very fragile against updates. Use with discretion! + TSDX uses Rollup under the hood. The defaults are solid for most packages (Formik uses the defaults!). However, if you do wish to alter the rollup configuration, you can do so by creating a file called `tsdx.config.js` at the root of your project like so: ```js From cfc1e761e0fefb53ee88ac648bf9355ce0787b4e Mon Sep 17 00:00:00 2001 From: Steven Kalt Date: Sat, 4 Jan 2020 17:30:42 -0500 Subject: [PATCH 05/10] upgraded rollup-plugin-'s to @rollup/plugin-'s. (#411) Specifically, rollup-plugin-node-resolve and rollup-plugin-commonjs. --- package.json | 4 +-- src/createRollupConfig.ts | 4 +-- yarn.lock | 60 ++++++++++++++++++++++++--------------- 3 files changed, 41 insertions(+), 27 deletions(-) diff --git a/package.json b/package.json index 9509b42fc..fa50ea0b8 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,9 @@ "@babel/plugin-transform-runtime": "^7.6.0", "@babel/polyfill": "^7.4.4", "@babel/preset-env": "^7.4.4", + "@rollup/plugin-commonjs": "^11.0.0", "@rollup/plugin-json": "^4.0.0", + "@rollup/plugin-node-resolve": "^6.0.0", "@rollup/plugin-replace": "^2.2.1", "@types/rimraf": "^2.0.2", "@types/shelljs": "^0.8.5", @@ -89,8 +91,6 @@ "rimraf": "^3.0.0", "rollup": "^1.27.8", "rollup-plugin-babel": "^4.3.2", - "rollup-plugin-commonjs": "^10.0.0", - "rollup-plugin-node-resolve": "^5.0.0", "rollup-plugin-sourcemaps": "^0.4.2", "rollup-plugin-terser": "^5.1.2", "rollup-plugin-typescript2": "^0.25.3", diff --git a/src/createRollupConfig.ts b/src/createRollupConfig.ts index 112580463..a1ce7d4e8 100644 --- a/src/createRollupConfig.ts +++ b/src/createRollupConfig.ts @@ -4,10 +4,10 @@ import { RollupOptions } from 'rollup'; import { terser } from 'rollup-plugin-terser'; import { DEFAULT_EXTENSIONS } from '@babel/core'; // import babel from 'rollup-plugin-babel'; -import commonjs from 'rollup-plugin-commonjs'; +import commonjs from '@rollup/plugin-commonjs'; import json from '@rollup/plugin-json'; import replace from '@rollup/plugin-replace'; -import resolve from 'rollup-plugin-node-resolve'; +import resolve from '@rollup/plugin-node-resolve'; import sourceMaps from 'rollup-plugin-sourcemaps'; import typescript from 'rollup-plugin-typescript2'; import { extractErrors } from './errors/extractErrors'; diff --git a/yarn.lock b/yarn.lock index cfc2923c5..63f660895 100644 --- a/yarn.lock +++ b/yarn.lock @@ -889,6 +889,17 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" +"@rollup/plugin-commonjs@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-11.0.0.tgz#a6675e56094ac9c797c19a3986378289396a9dd5" + integrity sha512-jnm//T5ZWOZ6zmJ61fReSCBOif+Ax8dHVoVggA+d2NA7T4qCWgQ3KYr+zN2faGEYLpe1wa03IzvhR+sqVLxUWg== + dependencies: + "@rollup/pluginutils" "^3.0.0" + estree-walker "^0.6.1" + is-reference "^1.1.2" + magic-string "^0.25.2" + resolve "^1.11.0" + "@rollup/plugin-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.0.0.tgz#4462e83c7ad5544bef4a601a6e8450daedc4b69b" @@ -896,6 +907,17 @@ dependencies: rollup-pluginutils "^2.5.0" +"@rollup/plugin-node-resolve@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-6.0.0.tgz#f351e29b45c007c17df4e28a0efd0d1f5662f59b" + integrity sha512-GqWz1CfXOsqpeVMcoM315+O7zMxpRsmhWyhJoxLFHVSp9S64/u02i7len/FnbTNbmgYs+sZyilasijH8UiuboQ== + dependencies: + "@rollup/pluginutils" "^3.0.0" + "@types/resolve" "0.0.8" + builtin-modules "^3.1.0" + is-module "^1.0.0" + resolve "^1.11.1" + "@rollup/plugin-replace@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.2.1.tgz#94af20cb3d70cccdcec991d1f97dd373936ec544" @@ -904,6 +926,13 @@ magic-string "^0.25.2" rollup-pluginutils "^2.6.0" +"@rollup/pluginutils@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.0.1.tgz#6923a24c4a0db2917e5c77b1ed7d6721ac7fe58e" + integrity sha512-PmNurkecagFimv7ZdKCVOfQuqKDPkrcpLFxRBcQ00LYr4HAjJwhCFxBiY2Xoletll2htTIiXBg6g0Yg21h2M3w== + dependencies: + estree-walker "^0.6.1" + "@textlint/ast-node-types@^4.0.3": version "4.2.5" resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.2.5.tgz#ae13981bc8711c98313a6ac1c361194d6bf2d39b" @@ -5560,13 +5589,20 @@ resolve@1.12.0: dependencies: path-parse "^1.0.6" -resolve@1.x, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: +resolve@1.x, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: version "1.13.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz#be0aa4c06acd53083505abb35f4d66932ab35d16" integrity sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w== dependencies: path-parse "^1.0.6" +resolve@^1.11.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.1.tgz#9e018c540fcf0c427d678b9931cbf45e984bcaff" + integrity sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg== + dependencies: + path-parse "^1.0.6" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -5617,28 +5653,6 @@ rollup-plugin-babel@^4.3.2: "@babel/helper-module-imports" "^7.0.0" rollup-pluginutils "^2.8.1" -rollup-plugin-commonjs@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz#417af3b54503878e084d127adf4d1caf8beb86fb" - integrity sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q== - dependencies: - estree-walker "^0.6.1" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - rollup-pluginutils "^2.8.1" - -rollup-plugin-node-resolve@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz#730f93d10ed202473b1fb54a5997a7db8c6d8523" - integrity sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw== - dependencies: - "@types/resolve" "0.0.8" - builtin-modules "^3.1.0" - is-module "^1.0.0" - resolve "^1.11.1" - rollup-pluginutils "^2.8.1" - rollup-plugin-sourcemaps@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.4.2.tgz#62125aa94087aadf7b83ef4dfaf629b473135e87" From ea124bcf30e60cd20f67ab0a5bbac61717a0b321 Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Sat, 4 Jan 2020 17:32:17 -0500 Subject: [PATCH 06/10] (refactor): replace ensureDistFolder with fs.outputFile (#406) - fs.outputFile will create any directories that don't already exist - also remove extraneous ensureDistFolder w/ try-catch in build command --- src/index.ts | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/src/index.ts b/src/index.ts index e176d8fc8..2096a29c9 100755 --- a/src/index.ts +++ b/src/index.ts @@ -18,7 +18,6 @@ import jest from 'jest'; import { CLIEngine } from 'eslint'; import logError from './logError'; import path from 'path'; -import mkdirp from 'mkdirp'; import rimraf from 'rimraf'; import execa from 'execa'; import shell from 'shelljs'; @@ -289,7 +288,6 @@ prog if (!opts.noClean) { await cleanDistFolder(); } - await ensureDistFolder(); opts.name = opts.name || appPackageJson.name; opts.input = await getInputs(opts.entry, appPackageJson.source); if (opts.format.includes('cjs')) { @@ -396,16 +394,10 @@ prog const opts = await normalizeOpts(dirtyOpts); const buildConfigs = await createBuildConfigs(opts); await cleanDistFolder(); - await ensureDistFolder(); const logger = await createProgressEstimator(); if (opts.format.includes('cjs')) { - try { - await ensureDistFolder(); - const promise = writeCjsEntryFile(opts.name).catch(logError); - logger(promise, 'Creating entry file'); - } catch (e) { - logError(e); - } + const promise = writeCjsEntryFile(opts.name).catch(logError); + logger(promise, 'Creating entry file'); } try { const promise = asyncro @@ -442,10 +434,6 @@ async function normalizeOpts(opts: WatchOpts): Promise { }; } -function ensureDistFolder() { - return util.promisify(mkdirp)(paths.appDist); -} - async function cleanDistFolder() { try { await util.promisify(fs.access)(paths.appDist); @@ -468,7 +456,7 @@ if (process.env.NODE_ENV === 'production') { ${baseLine}.cjs.development.js') } `; - return fs.writeFile(path.join(paths.appDist, 'index.js'), contents); + return fs.outputFile(path.join(paths.appDist, 'index.js'), contents); } function getAuthorName() { From 00f80ac2fe59c40a3953ed06816a36395771bfd0 Mon Sep 17 00:00:00 2001 From: Anton Gilgur Date: Sat, 4 Jan 2020 21:03:20 -0500 Subject: [PATCH 07/10] (fix): revert #130's breaking change of tsconfig options (#415) - not sure why this change was made in that PR as it was unrelated to the rest, but it broke some things related to Babel usage and maybe other things - e.g. babel macros were not included per #413 - and it used `tslib` instead of adding babel helper functions - add a comment of why it seems like the target is overriden to esnext - though I am not sure of the original reasoning, as it has existed since very early versions of TSDX, see #130 comments --- src/createRollupConfig.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/createRollupConfig.ts b/src/createRollupConfig.ts index a1ce7d4e8..6a555a3f0 100644 --- a/src/createRollupConfig.ts +++ b/src/createRollupConfig.ts @@ -144,7 +144,12 @@ export async function createRollupConfig( sourceMap: true, declaration: true, jsx: 'react', - target: 'es5', + }, + }, + tsconfigOverride: { + compilerOptions: { + // TS -> esnext, then leave the rest to babel-preset-env + target: 'esnext', }, }, check: opts.transpileOnly === false, From 9e8ab92ede068067a0da321dfaaf54c0b54b76c2 Mon Sep 17 00:00:00 2001 From: Karl Horky Date: Mon, 6 Jan 2020 18:27:02 +0100 Subject: [PATCH 08/10] Fix onFailure example (#416) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e6d4ebd08..47298db38 100644 --- a/README.md +++ b/README.md @@ -417,7 +417,7 @@ Examples $ tsdx watch --noClean $ tsdx watch --onFirstSuccess "echo The first successful build!" $ tsdx watch --onSuccess "echo Successful build!" - $ tsdx watch --onFailure "The build failed!" + $ tsdx watch --onFailure "echo The build failed!" $ tsdx watch --transpileOnly ``` From e5747fd74dae58c1f74e2d923555b37c5a6f7407 Mon Sep 17 00:00:00 2001 From: James George Date: Mon, 6 Jan 2020 22:58:11 +0530 Subject: [PATCH 09/10] (docs): add contributing guidelines (#417) --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 47298db38..58ae2b0c7 100644 --- a/README.md +++ b/README.md @@ -490,6 +490,10 @@ Examples $ tsdx lint src --report-file report.json ``` +## Contributing + +Please see the [Contributing Guidelines](./CONTRIBUTING.md). + ## Author - [Jared Palmer](https://twitter.com/jaredpalmer) From 96fb7b6a00f2ad9ec6aa159a98f5c898556774ae Mon Sep 17 00:00:00 2001 From: Jared Palmer Date: Mon, 13 Jan 2020 09:51:30 -0500 Subject: [PATCH 10/10] v0.12.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fa50ea0b8..3e1cd4683 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tsdx", - "version": "0.12.1", + "version": "0.12.2", "author": "Jared Palmer ", "description": "Zero-config TypeScript package development", "license": "MIT",