diff --git a/test_data/not-installed-insecure-complex-project/yarn.lock b/test_data/not-installed-insecure-complex-project/yarn.lock new file mode 100644 index 0000000..802e760 --- /dev/null +++ b/test_data/not-installed-insecure-complex-project/yarn.lock @@ -0,0 +1,1471 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +abstract-leveldown@0.12.3: + version "0.12.3" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-0.12.3.tgz#116b1ec5c7710ef7a2d5706768bbdb4440be1070" + dependencies: + xtend "~3.0.0" + +abstract-leveldown@~0.12.0, abstract-leveldown@~0.12.1: + version "0.12.4" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz#29e18e632e60e4e221d5810247852a63d7b2e410" + dependencies: + xtend "~3.0.0" + +abstract-leveldown@~2.7.1: + version "2.7.2" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93" + dependencies: + xtend "~4.0.0" + +accept@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/accept/-/accept-1.1.0.tgz#c7b5567c99ade4ac7c937f2a9bc1c566160a30b5" + dependencies: + boom "2.x.x" + hoek "2.x.x" + +accepts@~1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" + dependencies: + mime-types "~2.1.18" + negotiator "0.6.1" + +acorn@^1.0.3: + version "1.2.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-1.2.2.tgz#c8ce27de0acc76d896d2b1fad3df588d9e82f014" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ammo@1.x.x: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ammo/-/ammo-1.0.1.tgz#8f8add14cd49bdede3bab3a3e0ebcaf21d03de8b" + dependencies: + boom "2.x.x" + hoek "2.x.x" + +argsarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/argsarray/-/argsarray-0.0.1.tgz#6e7207b4ecdb39b0af88303fa5ae22bda8df61cb" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +asap@~2.0.1, asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + +asn1@0.1.11: + version "0.1.11" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" + +assert-plus@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" + +ast-types@0.8.15: + version "0.8.15" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.15.tgz#8eef0827f04dff0ec8857ba925abe3fea6194e52" + +async@0.2.x, async@~0.2.6: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + +async@~0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + +aws-sign2@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63" + +azure-common@0.9.11: + version "0.9.11" + resolved "https://registry.yarnpkg.com/azure-common/-/azure-common-0.9.11.tgz#e04f5fe70f70ca2b20134f59d35b0ad7584f7c5c" + dependencies: + dateformat "1.0.2-1.2.3" + duplexer "~0.1.1" + envconf "~0.0.4" + request "2.45.0" + through "~2.3.4" + tunnel "~0.0.2" + underscore "1.4.x" + validator "~3.1.0" + xml2js "0.2.7" + xmlbuilder "0.4.3" + +azure-mgmt-storage@^0.9.16: + version "0.9.16" + resolved "https://registry.yarnpkg.com/azure-mgmt-storage/-/azure-mgmt-storage-0.9.16.tgz#2b9052c74e94e1602987391b224472d009092f58" + dependencies: + azure-common "0.9.11" + +b64@2.x.x: + version "2.0.1" + resolved "https://registry.yarnpkg.com/b64/-/b64-2.0.1.tgz#d08c10719719ff1fe1b532ae49269409ce149ce9" + dependencies: + hoek "2.x.x" + +base62@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/base62/-/base62-0.1.1.tgz#7b4174c2f94449753b11c2651c083da841a7b084" + +bassmaster@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bassmaster/-/bassmaster-1.0.0.tgz#e406ba41c2da3cb3fc0352874b052e60706d4a1d" + dependencies: + async "0.2.x" + hoek "1.x.x" + +bindings@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" + +bl@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/bl/-/bl-0.8.2.tgz#c9b6bca08d1bc2ea00fc8afb4f1a5fd1e1c66e4e" + dependencies: + readable-stream "~1.0.26" + +bl@~0.9.0: + version "0.9.5" + resolved "https://registry.yarnpkg.com/bl/-/bl-0.9.5.tgz#c06b797af085ea00bc527afc8efcf11de2232054" + dependencies: + readable-stream "~1.0.26" + +bluebird@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-1.2.4.tgz#5985ec23cb6ff1a5834cc6447b3c5ef010fd321a" + +body-parser@1.18.2: + version "1.18.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.19" + on-finished "~2.3.0" + qs "6.5.1" + raw-body "2.3.2" + type-is "~1.6.15" + +boom@0.4.x: + version "0.4.2" + resolved "https://registry.yarnpkg.com/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" + dependencies: + hoek "0.9.x" + +boom@2.x.x, boom@^2.5.x, boom@^2.7.1: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +buffer-from@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.2.tgz#15f4b9bcef012044df31142c14333caf6e0260d0" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + +call@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/call/-/call-2.0.2.tgz#9c9831abd0769486fdee83a41149b829b32d06c0" + dependencies: + boom "2.x.x" + hoek "2.x.x" + +caseless@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.6.0.tgz#8167c1ab8397fb5bb95f96d28e5a81c50f247ac4" + +catbox-memory@1.x.x: + version "1.1.2" + resolved "https://registry.yarnpkg.com/catbox-memory/-/catbox-memory-1.1.2.tgz#33c9183a32b31945ee8a484d0e3c3cbb82eaec1a" + dependencies: + hoek "2.x.x" + +catbox@6.x.x: + version "6.0.0" + resolved "https://registry.yarnpkg.com/catbox/-/catbox-6.0.0.tgz#ea2f294fa05e9afc7e2210d323f5de53a38043e7" + dependencies: + boom "2.x.x" + hoek "2.x.x" + joi "6.x.x" + +clone@~0.1.9: + version "0.1.19" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.1.19.tgz#613fb68639b26a494ac53253e15b1a6bd88ada85" + +combined-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" + dependencies: + delayed-stream "0.0.5" + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + +content@1.x.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/content/-/content-1.0.2.tgz#cb7edf32afef17c48acfdbd21ff98c23315ae824" + dependencies: + boom "2.x.x" + hoek "2.x.x" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cryptiles@0.2.x: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" + dependencies: + boom "0.4.x" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +ctype@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" + +d64@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d64/-/d64-1.0.0.tgz#4002a87e850cbfc9f9d9706b60fca613a3336e90" + +dateformat@1.0.2-1.2.3: + version "1.0.2-1.2.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.2-1.2.3.tgz#b0220c02de98617433b72851cf47de3df2cdbee9" + +debug@2.6.9, debug@^2.1.2: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +deferred-leveldown@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz#2cef1f111e1c57870d8bbb8af2650e587cd2f5b4" + dependencies: + abstract-leveldown "~0.12.1" + +delayed-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" + +depd@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + +depd@~1.1.1, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +double-ended-queue@^2.0.0-0: + version "2.0.0-0" + resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.0.0-0.tgz#7847fda1c00fb722245aff83643a4887670efd2c" + +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + +envconf@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/envconf/-/envconf-0.0.4.tgz#85675afba237c43f98de2d46adc0e532a4dcf48b" + +errno@~0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + dependencies: + prr "~1.0.1" + +es3ify@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/es3ify/-/es3ify-0.1.4.tgz#ad9fa5df1ae34f3f31e1211b5818b2d51078dfd1" + dependencies: + esprima-fb "~3001.0001.0000-dev-harmony-fb" + jstransform "~3.0.0" + through "~2.3.4" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +esmangle-evaluator@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esmangle-evaluator/-/esmangle-evaluator-1.0.1.tgz#620d866ef4861b3311f75766d52a8572bb3c6336" + +esprima-fb@~15001.1001.0-dev-harmony-fb: + version "15001.1001.0-dev-harmony-fb" + resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz#43beb57ec26e8cf237d3dd8b33e42533577f2659" + +esprima-fb@~3001.0001.0000-dev-harmony-fb, esprima-fb@~3001.1.0-dev-harmony-fb: + version "3001.1.0-dev-harmony-fb" + resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz#b77d37abcd38ea0b77426bb8bc2922ce6b426411" + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + +express@^4.10.4: + version "4.16.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" + dependencies: + accepts "~1.3.5" + array-flatten "1.1.1" + body-parser "1.18.2" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.1" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.3" + qs "6.5.1" + range-parser "~1.2.0" + safe-buffer "5.1.1" + send "0.16.2" + serve-static "1.13.2" + setprototypeof "1.1.0" + statuses "~1.4.0" + type-is "~1.6.16" + utils-merge "1.0.1" + vary "~1.1.2" + +falafel@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/falafel/-/falafel-1.2.0.tgz#c18d24ef5091174a497f318cd24b026a25cddab4" + dependencies: + acorn "^1.0.3" + foreach "^2.0.5" + isarray "0.0.1" + object-keys "^1.0.6" + +falcor-hapi@netflix/falcor-hapi: + version "0.0.3" + resolved "https://codeload.github.com/netflix/falcor-hapi/tar.gz/fe5c42c4080aea4ebec88196ef8700e793af7aa7" + dependencies: + boom "^2.7.1" + falcor-router "^0.2.8" + joi "^6.5.0" + rx "~2.3.24" + +falcor-json-graph@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/falcor-json-graph/-/falcor-json-graph-1.1.0.tgz#9c12950ca70458ecc86e4d09dce87b0869598be5" + dependencies: + falcor-path-syntax "git+ssh://git@github.com/Netflix/falcor-path-syntax.git" + +"falcor-json-graph@git+ssh://git@github.com/Netflix/falcor-json-graph.git": + version "2.2.1" + resolved "git+ssh://git@github.com/Netflix/falcor-json-graph.git#1ae48ec3f3565ecce964d3a5ef029fcaf8d69816" + +falcor-path-syntax@0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/falcor-path-syntax/-/falcor-path-syntax-0.2.4.tgz#6e72ba0bc236f4dda73040a001652792a32d8fc8" + +"falcor-path-syntax@git+ssh://git@github.com/Netflix/falcor-path-syntax.git": + version "0.2.4" + resolved "git+ssh://git@github.com/Netflix/falcor-path-syntax.git#0f77c2850d5efcbdb39a5ee0f16ecbb3248a4647" + +falcor-path-utils@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/falcor-path-utils/-/falcor-path-utils-0.3.0.tgz#f2db8fadcf83906221977f0716e61bb0d4878287" + +"falcor-path-utils@git+ssh://git@github.com/Netflix/falcor-path-utils.git": + version "0.7.0" + resolved "git+ssh://git@github.com/Netflix/falcor-path-utils.git#397ed53056b24b3f6d5ee068676d84100a1c4f2e" + +falcor-router-demo@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/falcor-router-demo/-/falcor-router-demo-1.0.3.tgz#a813268526a9fcfbecfb613e5253f16a4a4e8842" + dependencies: + falcor "0.1.2" + falcor-json-graph "1.1.0" + falcor-router "^0.2.8" + pouchdb "~3.6.0" + promise "^7.0.3" + rx "2.5.3" + +falcor-router@^0.2.8: + version "0.2.12" + resolved "https://registry.yarnpkg.com/falcor-router/-/falcor-router-0.2.12.tgz#6336292bf72a55b210220c8cd6376c40b91b1980" + dependencies: + falcor-path-syntax "0.2.4" + falcor-path-utils "0.3.0" + rx "~2.5.3" + +falcor@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/falcor/-/falcor-0.1.2.tgz#7319071500d447d249f748d78b1df8d2c04db337" + dependencies: + asap "~2.0.3" + falcor-json-graph "git+ssh://git@github.com/Netflix/falcor-json-graph.git" + falcor-path-syntax "git+ssh://git@github.com/Netflix/falcor-path-syntax.git" + falcor-path-utils "git+ssh://git@github.com/Netflix/falcor-path-utils.git" + promise "7.0.0" + rx "2.5.3" + sinon "^1.15.4" + +finalhandler@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.4.0" + unpipe "~1.0.0" + +foreach@^2.0.5, foreach@~2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +forever-agent@~0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" + +form-data@~0.1.0: + version "0.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.1.4.tgz#91abd788aba9702b1aabfa8bc01031a2ac9e3b12" + dependencies: + async "~0.9.0" + combined-stream "~0.0.4" + mime "~1.2.11" + +formatio@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/formatio/-/formatio-1.1.1.tgz#5ed3ccd636551097383465d996199100e86161e9" + dependencies: + samsam "~1.1" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + +handlebars@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-3.0.3.tgz#0e09651a2f0fb3c949160583710d551f92e6d2ad" + dependencies: + optimist "^0.6.1" + source-map "^0.1.40" + optionalDependencies: + uglify-js "~2.3" + +hapi@^10.5.0: + version "10.5.0" + resolved "https://registry.yarnpkg.com/hapi/-/hapi-10.5.0.tgz#ca3853d550a3a19dafb45daf2c6169b6b717e09c" + dependencies: + accept "1.x.x" + ammo "1.x.x" + boom "^2.5.x" + call "2.x.x" + catbox "6.x.x" + catbox-memory "1.x.x" + cryptiles "2.x.x" + heavy "3.x.x" + hoek "^2.14.x" + iron "2.x.x" + items "1.x.x" + joi "^6.8.1" + kilt "^1.1.x" + mimos "2.x.x" + peekaboo "1.x.x" + qs "4.x.x" + shot "^1.7.x" + statehood "2.x.x" + subtext "2.x.x" + topo "^1.1.x" + +has-localstorage@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-localstorage/-/has-localstorage-1.0.1.tgz#fe62406c4767fbd6d784dac6905928108b82971b" + +hawk@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-1.1.1.tgz#87cd491f9b46e4e2aeaca335416766885d2d1ed9" + dependencies: + boom "0.4.x" + cryptiles "0.2.x" + hoek "0.9.x" + sntp "0.2.x" + +hawk@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-1.0.0.tgz#b90bb169807285411da7ffcb8dd2598502d3b52d" + dependencies: + boom "0.4.x" + cryptiles "0.2.x" + hoek "0.9.x" + sntp "0.2.x" + +heavy@3.x.x: + version "3.0.1" + resolved "https://registry.yarnpkg.com/heavy/-/heavy-3.0.1.tgz#f2867e6e3515bf83ab1a8bb1e73e5d28e85ab3cd" + dependencies: + boom "2.x.x" + hoek "2.x.x" + joi "6.x.x" + +hoek@0.9.x: + version "0.9.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" + +hoek@1.x.x: + version "1.5.2" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-1.5.2.tgz#d1038115c3046faf11bb089c25e8b409b1b7d8ca" + +hoek@2.x.x, hoek@^2.14.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +http-errors@1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-signature@~0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" + dependencies: + asn1 "0.1.11" + assert-plus "^0.1.5" + ctype "0.5.3" + +humble-localstorage@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/humble-localstorage/-/humble-localstorage-1.4.2.tgz#d05ab0d526c4edbddbf7c6a60df6ff5805283469" + dependencies: + has-localstorage "^1.0.1" + localstorage-memory "^1.0.1" + +iconv-lite@0.4.19: + version "0.4.19" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + +idb-wrapper@^1.5.0: + version "1.7.2" + resolved "https://registry.yarnpkg.com/idb-wrapper/-/idb-wrapper-1.7.2.tgz#8251afd5e77fe95568b1c16152eb44b396767ea2" + +immediate@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" + +immediate@~3.0.0: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + +indexof@~0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inert@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/inert/-/inert-3.2.1.tgz#c4965c5e187cef3db2c42872e52e75700876427d" + dependencies: + ammo "1.x.x" + boom "2.x.x" + hoek "2.x.x" + items "1.x.x" + joi "^6.7.x" + lru-cache "2.7.x" + +inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inline-process-browser@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/inline-process-browser/-/inline-process-browser-1.0.0.tgz#46a61b153dd3c9b1624b1a00626edb4f7f414f22" + dependencies: + falafel "^1.0.1" + through2 "^0.6.5" + +ipaddr.js@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" + +iron@2.x.x: + version "2.1.3" + resolved "https://registry.yarnpkg.com/iron/-/iron-2.1.3.tgz#71b8f357d806aae03a90a745b9aaaffec7e2dde4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + +is-object@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-0.1.2.tgz#00efbc08816c33cfc4ac8251d132e10dc65098d7" + +is@~0.2.6: + version "0.2.7" + resolved "https://registry.yarnpkg.com/is/-/is-0.2.7.tgz#3b34a2c48f359972f35042849193ae7264b63562" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isbuffer@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/isbuffer/-/isbuffer-0.0.0.tgz#38c146d9df528b8bf9b0701c3d43cf12df3fc39b" + +isemail@1.x.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/isemail/-/isemail-1.2.0.tgz#be03df8cc3e29de4d2c5df6501263f1fa4595e9a" + +items@1.x.x: + version "1.1.1" + resolved "https://registry.yarnpkg.com/items/-/items-1.1.1.tgz#435b5dd21bca28b3cfd25bb5c6b278b715010fd9" + +joi@6.x.x, joi@^6.5.0, joi@^6.7.x, joi@^6.8.1: + version "6.10.1" + resolved "https://registry.yarnpkg.com/joi/-/joi-6.10.1.tgz#4d50c318079122000fe5f16af1ff8e1917b77e06" + dependencies: + hoek "2.x.x" + isemail "1.x.x" + moment "2.x.x" + topo "1.x.x" + +json-stringify-safe@~5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +jstransform@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/jstransform/-/jstransform-3.0.0.tgz#a2591ab6cee8d97bf3be830dbfa2313b87cd640b" + dependencies: + base62 "0.1.1" + esprima-fb "~3001.1.0-dev-harmony-fb" + source-map "0.1.31" + +kilt@^1.1.x: + version "1.1.1" + resolved "https://registry.yarnpkg.com/kilt/-/kilt-1.1.1.tgz#77b4a6163ca7fa5b2137a88c17334216ec23d5db" + dependencies: + hoek "2.x.x" + +level-fix-range@2.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/level-fix-range/-/level-fix-range-2.0.0.tgz#c417d62159442151a19d9a2367868f1724c2d548" + dependencies: + clone "~0.1.9" + +"level-hooks@>=4.4.0 <5": + version "4.5.0" + resolved "https://registry.yarnpkg.com/level-hooks/-/level-hooks-4.5.0.tgz#1b9ae61922930f3305d1a61fc4d83c8102c0dd93" + dependencies: + string-range "~1.2" + +level-js@^2.1.3: + version "2.2.4" + resolved "https://registry.yarnpkg.com/level-js/-/level-js-2.2.4.tgz#bc055f4180635d4489b561c9486fa370e8c11697" + dependencies: + abstract-leveldown "~0.12.0" + idb-wrapper "^1.5.0" + isbuffer "~0.0.0" + ltgt "^2.1.2" + typedarray-to-buffer "~1.0.0" + xtend "~2.1.2" + +level-sublevel@~5.2.0: + version "5.2.3" + resolved "https://registry.yarnpkg.com/level-sublevel/-/level-sublevel-5.2.3.tgz#744c12c72d2e72be78dde3b9b5cd84d62191413a" + dependencies: + level-fix-range "2.0" + level-hooks ">=4.4.0 <5" + string-range "~1.2.1" + xtend "~2.0.4" + +leveldown@~0.10.2: + version "0.10.6" + resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-0.10.6.tgz#a1bb751c95263ff60f41bde0f973ff8c1e98bbe9" + dependencies: + bindings "~1.2.1" + nan "~2.1.0" + +levelup@~0.18.4: + version "0.18.6" + resolved "https://registry.yarnpkg.com/levelup/-/levelup-0.18.6.tgz#e6a01cb089616c8ecc0291c2a9bd3f0c44e3e5eb" + dependencies: + bl "~0.8.1" + deferred-leveldown "~0.2.0" + errno "~0.1.1" + prr "~0.0.0" + readable-stream "~1.0.26" + semver "~2.3.1" + xtend "~3.0.0" + +lie@^2.6.0: + version "2.9.1" + resolved "https://registry.yarnpkg.com/lie/-/lie-2.9.1.tgz#397ef149accd496f6c7f21095326cf40e9b93bdb" + dependencies: + immediate "~3.0.0" + inline-process-browser "^1.0.0" + unreachable-branch-transform "^0.2.3" + +localstorage-down@^0.6.2: + version "0.6.7" + resolved "https://registry.yarnpkg.com/localstorage-down/-/localstorage-down-0.6.7.tgz#d0799a93b31e6c5fa5188ec06242eb1cce9d6d15" + dependencies: + abstract-leveldown "0.12.3" + argsarray "0.0.1" + buffer-from "^0.1.1" + d64 "^1.0.0" + humble-localstorage "^1.4.2" + inherits "^2.0.1" + tiny-queue "0.2.0" + +localstorage-memory@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/localstorage-memory/-/localstorage-memory-1.0.2.tgz#cd4a8f210e55dd519c929f4b4cc82829b58f9a51" + +lolex@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-1.3.2.tgz#7c3da62ffcb30f0f5a80a2566ca24e45d8a01f31" + +lru-cache@2.7.x: + version "2.7.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" + +ltgt@^2.1.2, ltgt@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +memdown@^1.0.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" + dependencies: + abstract-leveldown "~2.7.1" + functional-red-black-tree "^1.0.1" + immediate "^3.2.3" + inherits "~2.0.1" + ltgt "~2.2.0" + safe-buffer "~5.1.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +miller-rabin@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-1.1.1.tgz#00e5be11698e846d7a5a185c5eced425f4379cd5" + dependencies: + brorand "^1.0.1" + +mime-db@1.x.x, mime-db@~1.35.0: + version "1.35.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz#0569d657466491283709663ad379a99b90d9ab47" + +mime-types@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-1.0.2.tgz#995ae1392ab8affcbfcb2641dd054e943c0d5dce" + +mime-types@~2.1.18: + version "2.1.19" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0" + dependencies: + mime-db "~1.35.0" + +mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + +mime@~1.2.11, mime@~1.2.9: + version "1.2.11" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + +mimos@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mimos/-/mimos-2.0.2.tgz#c3241717e75b95992be787ac7dd6db1a9b539b1e" + dependencies: + hoek "2.x.x" + mime-db "1.x.x" + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +moment@2.x.x: + version "2.22.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +nan@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.1.0.tgz#020a7ccedc63fdee85f85967d5607849e74abbe8" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +nigel@1.x.x: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nigel/-/nigel-1.0.1.tgz#463989af881278fbaa1d3cc93823dbd17b4360a1" + dependencies: + hoek "2.x.x" + vise "1.x.x" + +node-uuid@~1.4.0: + version "1.4.8" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" + +oauth-sign@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.3.0.tgz#cb540f93bb2b22a7d5941691a288d60e8ea9386e" + +oauth-sign@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.4.0.tgz#f22956f31ea7151a821e5f2fb32c113cad8b9f69" + +object-keys@^1.0.6: + version "1.0.12" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" + +object-keys@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.2.0.tgz#cddec02998b091be42bf1035ae32e49f1cb6ea67" + dependencies: + foreach "~2.0.1" + indexof "~0.0.1" + is "~0.2.6" + +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optimist@~0.3.5: + version "0.3.7" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9" + dependencies: + wordwrap "~0.0.2" + +parseurl@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +peekaboo@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/peekaboo/-/peekaboo-1.0.0.tgz#c0db2926ad654d2ca01f7ca650ab4591a764fc42" + +pez@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pez/-/pez-1.0.0.tgz#844318a5ce7092eeddffa295e18079ac779fa018" + dependencies: + b64 "2.x.x" + boom "2.x.x" + content "1.x.x" + hoek "2.x.x" + nigel "1.x.x" + +pouchdb-collate@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pouchdb-collate/-/pouchdb-collate-1.2.0.tgz#cae3b830fca124b7f97d23046e4faa311ec3828c" + +pouchdb-collections@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pouchdb-collections/-/pouchdb-collections-1.0.1.tgz#fe63a17da977611abef7cb8026cb1a9553fd8359" + +pouchdb-extend@^0.1.0, pouchdb-extend@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/pouchdb-extend/-/pouchdb-extend-0.1.2.tgz#d1ce511bf704ed2e29f7bf428a416acfffa124b8" + +pouchdb-mapreduce@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/pouchdb-mapreduce/-/pouchdb-mapreduce-2.3.2.tgz#ef9034c2f31411484ef73c3503b754b28f29fa77" + dependencies: + argsarray "0.0.1" + es3ify "^0.1.3" + inherits "~2.0.1" + lie "^2.6.0" + pouchdb-collate "^1.2.0" + pouchdb-extend "^0.1.0" + pouchdb-upsert "^1.0.2" + spark-md5 "0.0.5" + +pouchdb-upsert@^1.0.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pouchdb-upsert/-/pouchdb-upsert-1.1.3.tgz#4a2da7da307d7ab403f71b2052dd0bc53ef7718b" + dependencies: + es3ify "^0.1.3" + lie "^2.6.0" + +pouchdb@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/pouchdb/-/pouchdb-3.6.0.tgz#b6a2df56e331285d4a17b539f745ac1790aadfc6" + dependencies: + argsarray "0.0.1" + bluebird "^1.2.4" + debug "^2.1.2" + double-ended-queue "^2.0.0-0" + es3ify "^0.1.3" + express "^4.10.4" + inherits "~2.0.1" + level-js "^2.1.3" + level-sublevel "~5.2.0" + levelup "~0.18.4" + lie "^2.6.0" + localstorage-down "^0.6.2" + memdown "^1.0.0" + miller-rabin "1.1.1" + pouchdb-collate "^1.2.0" + pouchdb-collections "^1.0.0" + pouchdb-extend "^0.1.2" + pouchdb-mapreduce "~2.3.2" + pouchdb-upsert "^1.0.2" + request "~2.28.0" + spark-md5 "0.0.5" + through2 "^0.4.1" + vuvuzela "^1.0.0" + optionalDependencies: + leveldown "~0.10.2" + +private@~0.1.5: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + +promise@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.0.0.tgz#98ae4b5798755216c4aea2c1f62380517ab8767b" + dependencies: + asap "~2.0.1" + +promise@^7.0.3: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + dependencies: + asap "~2.0.3" + +proxy-addr@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.6.0" + +prr@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + +psl@^1.1.24: + version "1.1.28" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.28.tgz#4fb6ceb08a1e2214d4fd4de0ca22dae13740bc7b" + +punycode@>=0.2.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@4.x.x: + version "4.0.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-4.0.0.tgz#c31d9b74ec27df75e543a86c78728ed8d4623607" + +qs@5.x.x: + version "5.2.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-5.2.1.tgz#801fee030e0b9450d6385adc48a4cc55b44aedfc" + +qs@6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + +qs@~0.6.0: + version "0.6.6" + resolved "https://registry.yarnpkg.com/qs/-/qs-0.6.6.tgz#6e015098ff51968b8a3c819001d5f2c89bc4b107" + +qs@~1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-1.2.2.tgz#19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88" + +range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +raw-body@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" + dependencies: + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.19" + unpipe "1.0.0" + +"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.17, readable-stream@~1.0.26: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +recast@^0.10.1: + version "0.10.43" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.43.tgz#b95d50f6d60761a5f6252e15d80678168491ce7f" + dependencies: + ast-types "0.8.15" + esprima-fb "~15001.1001.0-dev-harmony-fb" + private "~0.1.5" + source-map "~0.5.0" + +request@2.45.0: + version "2.45.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.45.0.tgz#29d713a0a07f17fb2e7b61815d2010681718e93c" + dependencies: + bl "~0.9.0" + caseless "~0.6.0" + forever-agent "~0.5.0" + form-data "~0.1.0" + json-stringify-safe "~5.0.0" + mime-types "~1.0.1" + node-uuid "~1.4.0" + qs "~1.2.0" + tunnel-agent "~0.4.0" + optionalDependencies: + aws-sign2 "~0.5.0" + hawk "1.1.1" + http-signature "~0.10.0" + oauth-sign "~0.4.0" + stringstream "~0.0.4" + tough-cookie ">=0.12.0" + +request@~2.28.0: + version "2.28.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.28.0.tgz#f20c4045de01eaf6976e127cbebff113827ab33a" + dependencies: + forever-agent "~0.5.0" + json-stringify-safe "~5.0.0" + mime "~1.2.9" + node-uuid "~1.4.0" + qs "~0.6.0" + optionalDependencies: + aws-sign2 "~0.5.0" + form-data "~0.1.0" + hawk "~1.0.0" + http-signature "~0.10.0" + oauth-sign "~0.3.0" + tough-cookie "~0.9.15" + tunnel-agent "~0.3.0" + +rx@2.5.3, rx@~2.5.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/rx/-/rx-2.5.3.tgz#21adc7d80f02002af50dae97fd9dbf248755f566" + +rx@~2.3.24: + version "2.3.25" + resolved "https://registry.yarnpkg.com/rx/-/rx-2.3.25.tgz#2f7c0550532777b41fa692bb790a7886eaff9731" + +safe-buffer@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + +samsam@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.2.tgz#bec11fdc83a9fda063401210e40176c3024d1567" + +samsam@~1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.3.tgz#9f5087419b4d091f232571e7fa52e90b0f552621" + +sax@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.2.tgz#735ffaa39a1cff8ffb9598f0223abdb03a9fb2ea" + +semver@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-2.3.2.tgz#b9848f25d6cf36333073ec9ef8856d42f1233e52" + +send@0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + +serve-static@1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + +setprototypeof@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + +shot@^1.7.x: + version "1.7.0" + resolved "https://registry.yarnpkg.com/shot/-/shot-1.7.0.tgz#f2329d7ef33afcf03d44ce41abae8148ae170532" + dependencies: + hoek "2.x.x" + +sinon@^1.15.4: + version "1.17.7" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-1.17.7.tgz#4542a4f49ba0c45c05eb2e9dd9d203e2b8efe0bf" + dependencies: + formatio "1.1.1" + lolex "1.3.2" + samsam "1.1.2" + util ">=0.10.3 <1" + +sntp@0.2.x: + version "0.2.4" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" + dependencies: + hoek "0.9.x" + +snyk-demo-child@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/snyk-demo-child/-/snyk-demo-child-0.0.1.tgz#d8e9baa2d533ac4d34b4dafa969d927873f0ee14" + dependencies: + handlebars "^3.0.0" + +source-map@0.1.31: + version "0.1.31" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.31.tgz#9f704d0d69d9e138a81badf6ebb4fde33d151c61" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.1.40, source-map@~0.1.7: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + dependencies: + amdefine ">=0.0.4" + +source-map@~0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +spark-md5@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-0.0.5.tgz#931da5e3b951d06527e9b7d90dfff578b6fcdc8e" + +statehood@2.x.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/statehood/-/statehood-2.1.1.tgz#01f170b66c5e925aaf679a9d322ba59186fc0009" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + iron "2.x.x" + items "1.x.x" + joi "6.x.x" + +"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + +statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + +string-range@~1.2, string-range@~1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/string-range/-/string-range-1.2.2.tgz#a893ed347e72299bc83befbbf2a692a8d239d5dd" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +stringstream@~0.0.4: + version "0.0.6" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" + +subtext@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/subtext/-/subtext-2.0.2.tgz#30efd72258bd4d966f5aaac67219de21fe972290" + dependencies: + boom "2.x.x" + content "1.x.x" + hoek "2.x.x" + pez "1.x.x" + qs "5.x.x" + wreck "6.x.x" + +through2@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.4.2.tgz#dbf5866031151ec8352bb6c4db64a2292a840b9b" + dependencies: + readable-stream "~1.0.17" + xtend "~2.1.1" + +through2@^0.6.2, through2@^0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through@~2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +tiny-queue@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/tiny-queue/-/tiny-queue-0.2.0.tgz#c49fcb5c87555be1b4a5df7eb87101d5b78bc9dc" + +topo@1.x.x, topo@^1.1.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/topo/-/topo-1.1.0.tgz#e9d751615d1bb87dc865db182fa1ca0a5ef536d5" + dependencies: + hoek "2.x.x" + +tough-cookie@>=0.12.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tough-cookie@~0.9.15: + version "0.9.15" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-0.9.15.tgz#75617ac347e3659052b0350131885829677399f6" + dependencies: + punycode ">=0.2.0" + +tunnel-agent@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.3.0.tgz#ad681b68f5321ad2827c4cfb1b7d5df2cfe942ee" + +tunnel-agent@~0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +tunnel@~0.0.2: + version "0.0.5" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.5.tgz#d1532254749ed36620fcd1010865495a1fa9d0ae" + +type-is@~1.6.15, type-is@~1.6.16: + version "1.6.16" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.18" + +typedarray-to-buffer@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz#9bb8ba0e841fb3f4cf1fe7c245e9f3fa8a5fe99c" + +uglify-js@~2.3: + version "2.3.6" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.3.6.tgz#fa0984770b428b7a9b2a8058f46355d14fef211a" + dependencies: + async "~0.2.6" + optimist "~0.3.5" + source-map "~0.1.7" + +underscore@1.4.x: + version "1.4.4" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unreachable-branch-transform@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/unreachable-branch-transform/-/unreachable-branch-transform-0.2.3.tgz#ec1ebd24c4e13bc40bf9d70d8309e2b4cde58eb6" + dependencies: + esmangle-evaluator "^1.0.0" + recast "^0.10.1" + through2 "^0.6.2" + +"util@>=0.10.3 <1": + version "0.11.0" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.0.tgz#c5f391beb244103d799b21077a926fef8769e1fb" + dependencies: + inherits "2.0.3" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + +validator@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-3.1.0.tgz#2ea1ff7e92254d69367f385f015299e5ead8755b" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + +vise@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vise/-/vise-1.0.0.tgz#28345be4de5a341e15fd2816fd9ea3e7303e8df3" + dependencies: + hoek "2.x.x" + +vuvuzela@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/vuvuzela/-/vuvuzela-1.0.3.tgz#3be145e58271c73ca55279dd851f12a682114b0b" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wreck@6.x.x: + version "6.3.0" + resolved "https://registry.yarnpkg.com/wreck/-/wreck-6.3.0.tgz#a1369769f07bbb62d6a378336a7871fc773c740b" + dependencies: + boom "2.x.x" + hoek "2.x.x" + +xml2js@0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.2.7.tgz#1838518bb01741cae0878bab4915e494c32306af" + dependencies: + sax "0.5.2" + +xmlbuilder@0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-0.4.3.tgz#c4614ba74e0ad196e609c9272cd9e1ddb28a8a58" + +"xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +xtend@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.0.6.tgz#5ea657a6dba447069c2e59c58a1138cb0c5e6cee" + dependencies: + is-object "~0.1.2" + object-keys "~0.2.0" + +xtend@~2.1.1, xtend@~2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + dependencies: + object-keys "~0.4.0" + +xtend@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a" diff --git a/yarnlockparser/yarnlockparser.go b/yarnlockparser/yarnlockparser.go index d2a21be..8995691 100644 --- a/yarnlockparser/yarnlockparser.go +++ b/yarnlockparser/yarnlockparser.go @@ -197,27 +197,27 @@ var g = &grammar{ }, { name: "DependencyHeaderLine", - pos: position{line: 52, col: 1, offset: 1433}, + pos: position{line: 52, col: 1, offset: 1435}, expr: &actionExpr{ - pos: position{line: 52, col: 24, offset: 1456}, + pos: position{line: 52, col: 24, offset: 1458}, run: (*parser).callonDependencyHeaderLine1, expr: &seqExpr{ - pos: position{line: 52, col: 25, offset: 1457}, + pos: position{line: 52, col: 25, offset: 1459}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 52, col: 25, offset: 1457}, + pos: position{line: 52, col: 25, offset: 1459}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 52, col: 30, offset: 1462}, + pos: position{line: 52, col: 30, offset: 1464}, name: "ListOfPackageQueryExpression", }, }, &ruleRefExpr{ - pos: position{line: 52, col: 59, offset: 1491}, + pos: position{line: 52, col: 59, offset: 1493}, name: "Colon", }, &ruleRefExpr{ - pos: position{line: 52, col: 65, offset: 1497}, + pos: position{line: 52, col: 65, offset: 1499}, name: "ROL", }, }, @@ -226,39 +226,39 @@ var g = &grammar{ }, { name: "DependencyVersionLine", - pos: position{line: 56, col: 1, offset: 1601}, + pos: position{line: 56, col: 1, offset: 1605}, expr: &actionExpr{ - pos: position{line: 56, col: 25, offset: 1625}, + pos: position{line: 56, col: 25, offset: 1629}, run: (*parser).callonDependencyVersionLine1, expr: &seqExpr{ - pos: position{line: 56, col: 26, offset: 1626}, + pos: position{line: 56, col: 26, offset: 1630}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 56, col: 26, offset: 1626}, + pos: position{line: 56, col: 26, offset: 1630}, name: "__", }, &litMatcher{ - pos: position{line: 56, col: 29, offset: 1629}, + pos: position{line: 56, col: 29, offset: 1633}, val: "version", ignoreCase: false, }, &oneOrMoreExpr{ - pos: position{line: 56, col: 39, offset: 1639}, + pos: position{line: 56, col: 39, offset: 1643}, expr: &ruleRefExpr{ - pos: position{line: 56, col: 39, offset: 1639}, + pos: position{line: 56, col: 39, offset: 1643}, name: "_", }, }, &labeledExpr{ - pos: position{line: 56, col: 42, offset: 1642}, + pos: position{line: 56, col: 42, offset: 1646}, label: "version", expr: &ruleRefExpr{ - pos: position{line: 56, col: 50, offset: 1650}, + pos: position{line: 56, col: 50, offset: 1654}, name: "VersionExpression", }, }, &ruleRefExpr{ - pos: position{line: 56, col: 68, offset: 1668}, + pos: position{line: 56, col: 68, offset: 1672}, name: "ROL", }, }, @@ -267,21 +267,21 @@ var g = &grammar{ }, { name: "DependencyResolvedLine", - pos: position{line: 60, col: 1, offset: 1779}, + pos: position{line: 60, col: 1, offset: 1785}, expr: &seqExpr{ - pos: position{line: 60, col: 26, offset: 1804}, + pos: position{line: 60, col: 26, offset: 1810}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 60, col: 26, offset: 1804}, + pos: position{line: 60, col: 26, offset: 1810}, name: "__", }, &litMatcher{ - pos: position{line: 60, col: 29, offset: 1807}, + pos: position{line: 60, col: 29, offset: 1813}, val: "resolved", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 60, col: 40, offset: 1818}, + pos: position{line: 60, col: 40, offset: 1824}, name: "IgnoredRestOfLine", }, }, @@ -289,32 +289,32 @@ var g = &grammar{ }, { name: "DependencyDependenciesHeaderLine", - pos: position{line: 61, col: 1, offset: 1836}, + pos: position{line: 61, col: 1, offset: 1842}, expr: &seqExpr{ - pos: position{line: 61, col: 36, offset: 1871}, + pos: position{line: 61, col: 36, offset: 1877}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 61, col: 36, offset: 1871}, + pos: position{line: 61, col: 36, offset: 1877}, name: "__", }, &litMatcher{ - pos: position{line: 61, col: 39, offset: 1874}, + pos: position{line: 61, col: 39, offset: 1880}, val: "dependencies", ignoreCase: false, }, &zeroOrMoreExpr{ - pos: position{line: 61, col: 54, offset: 1889}, + pos: position{line: 61, col: 54, offset: 1895}, expr: &ruleRefExpr{ - pos: position{line: 61, col: 54, offset: 1889}, + pos: position{line: 61, col: 54, offset: 1895}, name: "_", }, }, &ruleRefExpr{ - pos: position{line: 61, col: 57, offset: 1892}, + pos: position{line: 61, col: 57, offset: 1898}, name: "Colon", }, &ruleRefExpr{ - pos: position{line: 61, col: 63, offset: 1898}, + pos: position{line: 61, col: 63, offset: 1904}, name: "ROL", }, }, @@ -322,31 +322,31 @@ var g = &grammar{ }, { name: "DependencyDependency", - pos: position{line: 62, col: 1, offset: 1902}, + pos: position{line: 62, col: 1, offset: 1908}, expr: &seqExpr{ - pos: position{line: 62, col: 24, offset: 1925}, + pos: position{line: 62, col: 24, offset: 1931}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 62, col: 24, offset: 1925}, + pos: position{line: 62, col: 24, offset: 1931}, name: "____", }, &ruleRefExpr{ - pos: position{line: 62, col: 29, offset: 1930}, + pos: position{line: 62, col: 29, offset: 1936}, name: "PackageNameExpression", }, &oneOrMoreExpr{ - pos: position{line: 62, col: 51, offset: 1952}, + pos: position{line: 62, col: 51, offset: 1958}, expr: &ruleRefExpr{ - pos: position{line: 62, col: 51, offset: 1952}, + pos: position{line: 62, col: 51, offset: 1958}, name: "_", }, }, &ruleRefExpr{ - pos: position{line: 62, col: 54, offset: 1955}, + pos: position{line: 62, col: 54, offset: 1961}, name: "VersionQueryExpression", }, &ruleRefExpr{ - pos: position{line: 62, col: 77, offset: 1978}, + pos: position{line: 62, col: 77, offset: 1984}, name: "ROL", }, }, @@ -354,32 +354,32 @@ var g = &grammar{ }, { name: "DependencyOptionalDependenciesHeaderLine", - pos: position{line: 63, col: 1, offset: 1982}, + pos: position{line: 63, col: 1, offset: 1988}, expr: &seqExpr{ - pos: position{line: 63, col: 44, offset: 2025}, + pos: position{line: 63, col: 44, offset: 2031}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 63, col: 44, offset: 2025}, + pos: position{line: 63, col: 44, offset: 2031}, name: "__", }, &litMatcher{ - pos: position{line: 63, col: 47, offset: 2028}, + pos: position{line: 63, col: 47, offset: 2034}, val: "optionalDependencies", ignoreCase: false, }, &zeroOrMoreExpr{ - pos: position{line: 63, col: 70, offset: 2051}, + pos: position{line: 63, col: 70, offset: 2057}, expr: &ruleRefExpr{ - pos: position{line: 63, col: 70, offset: 2051}, + pos: position{line: 63, col: 70, offset: 2057}, name: "_", }, }, &ruleRefExpr{ - pos: position{line: 63, col: 73, offset: 2054}, + pos: position{line: 63, col: 73, offset: 2060}, name: "Colon", }, &ruleRefExpr{ - pos: position{line: 63, col: 79, offset: 2060}, + pos: position{line: 63, col: 79, offset: 2066}, name: "ROL", }, }, @@ -387,31 +387,31 @@ var g = &grammar{ }, { name: "DependencyOptionalDependency", - pos: position{line: 64, col: 1, offset: 2064}, + pos: position{line: 64, col: 1, offset: 2070}, expr: &seqExpr{ - pos: position{line: 64, col: 32, offset: 2095}, + pos: position{line: 64, col: 32, offset: 2101}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 64, col: 32, offset: 2095}, + pos: position{line: 64, col: 32, offset: 2101}, name: "____", }, &ruleRefExpr{ - pos: position{line: 64, col: 37, offset: 2100}, + pos: position{line: 64, col: 37, offset: 2106}, name: "PackageNameExpression", }, &oneOrMoreExpr{ - pos: position{line: 64, col: 59, offset: 2122}, + pos: position{line: 64, col: 59, offset: 2128}, expr: &ruleRefExpr{ - pos: position{line: 64, col: 59, offset: 2122}, + pos: position{line: 64, col: 59, offset: 2128}, name: "_", }, }, &ruleRefExpr{ - pos: position{line: 64, col: 62, offset: 2125}, + pos: position{line: 64, col: 62, offset: 2131}, name: "VersionQueryExpression", }, &ruleRefExpr{ - pos: position{line: 64, col: 85, offset: 2148}, + pos: position{line: 64, col: 85, offset: 2154}, name: "ROL", }, }, @@ -419,46 +419,46 @@ var g = &grammar{ }, { name: "ListOfPackageQueryExpression", - pos: position{line: 66, col: 1, offset: 2153}, + pos: position{line: 66, col: 1, offset: 2159}, expr: &actionExpr{ - pos: position{line: 66, col: 32, offset: 2184}, + pos: position{line: 66, col: 32, offset: 2190}, run: (*parser).callonListOfPackageQueryExpression1, expr: &seqExpr{ - pos: position{line: 66, col: 32, offset: 2184}, + pos: position{line: 66, col: 32, offset: 2190}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 66, col: 32, offset: 2184}, + pos: position{line: 66, col: 32, offset: 2190}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 66, col: 37, offset: 2189}, + pos: position{line: 66, col: 37, offset: 2195}, name: "PackageQueryExpression", }, }, &zeroOrMoreExpr{ - pos: position{line: 66, col: 61, offset: 2213}, + pos: position{line: 66, col: 61, offset: 2219}, expr: &seqExpr{ - pos: position{line: 66, col: 62, offset: 2214}, + pos: position{line: 66, col: 62, offset: 2220}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 66, col: 62, offset: 2214}, + pos: position{line: 66, col: 62, offset: 2220}, expr: &ruleRefExpr{ - pos: position{line: 66, col: 62, offset: 2214}, + pos: position{line: 66, col: 62, offset: 2220}, name: "_", }, }, &ruleRefExpr{ - pos: position{line: 66, col: 65, offset: 2217}, + pos: position{line: 66, col: 65, offset: 2223}, name: "Comma", }, &zeroOrMoreExpr{ - pos: position{line: 66, col: 71, offset: 2223}, + pos: position{line: 66, col: 71, offset: 2229}, expr: &ruleRefExpr{ - pos: position{line: 66, col: 71, offset: 2223}, + pos: position{line: 66, col: 71, offset: 2229}, name: "_", }, }, &ruleRefExpr{ - pos: position{line: 66, col: 74, offset: 2226}, + pos: position{line: 66, col: 74, offset: 2232}, name: "PackageQueryExpression", }, }, @@ -470,73 +470,92 @@ var g = &grammar{ }, { name: "PackageQueryExpression", - pos: position{line: 70, col: 1, offset: 2358}, - expr: &choiceExpr{ - pos: position{line: 70, col: 26, offset: 2383}, - alternatives: []interface{}{ - &actionExpr{ - pos: position{line: 70, col: 26, offset: 2383}, - run: (*parser).callonPackageQueryExpression2, - expr: &seqExpr{ - pos: position{line: 70, col: 27, offset: 2384}, - exprs: []interface{}{ - &ruleRefExpr{ - pos: position{line: 70, col: 27, offset: 2384}, - name: "Quote", - }, - &labeledExpr{ - pos: position{line: 70, col: 33, offset: 2390}, - label: "name", - expr: &ruleRefExpr{ - pos: position{line: 70, col: 38, offset: 2395}, - name: "PackageQuery", - }, - }, - &ruleRefExpr{ - pos: position{line: 70, col: 51, offset: 2408}, - name: "Quote", - }, + pos: position{line: 70, col: 1, offset: 2366}, + expr: &actionExpr{ + pos: position{line: 70, col: 26, offset: 2391}, + run: (*parser).callonPackageQueryExpression1, + expr: &labeledExpr{ + pos: position{line: 70, col: 26, offset: 2391}, + label: "name", + expr: &choiceExpr{ + pos: position{line: 70, col: 32, offset: 2397}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 70, col: 32, offset: 2397}, + name: "QuotedPackageQuery", + }, + &ruleRefExpr{ + pos: position{line: 70, col: 53, offset: 2418}, + name: "PackageQuery", }, }, }, - &actionExpr{ - pos: position{line: 73, col: 7, offset: 2510}, - run: (*parser).callonPackageQueryExpression8, - expr: &labeledExpr{ - pos: position{line: 73, col: 7, offset: 2510}, + }, + }, + }, + { + name: "QuotedPackageQuery", + pos: position{line: 75, col: 1, offset: 2525}, + expr: &actionExpr{ + pos: position{line: 75, col: 22, offset: 2546}, + run: (*parser).callonQuotedPackageQuery1, + expr: &seqExpr{ + pos: position{line: 75, col: 23, offset: 2547}, + exprs: []interface{}{ + &ruleRefExpr{ + pos: position{line: 75, col: 23, offset: 2547}, + name: "Quote", + }, + &labeledExpr{ + pos: position{line: 75, col: 29, offset: 2553}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 73, col: 12, offset: 2515}, - name: "PackageQuery", + pos: position{line: 75, col: 34, offset: 2558}, + name: "PackageName", }, }, + &ruleRefExpr{ + pos: position{line: 75, col: 46, offset: 2570}, + name: "Arobase", + }, + &oneOrMoreExpr{ + pos: position{line: 75, col: 54, offset: 2578}, + expr: &ruleRefExpr{ + pos: position{line: 75, col: 54, offset: 2578}, + name: "NotQuote", + }, + }, + &ruleRefExpr{ + pos: position{line: 75, col: 64, offset: 2588}, + name: "Quote", + }, }, }, }, }, { name: "PackageQuery", - pos: position{line: 78, col: 1, offset: 2615}, + pos: position{line: 79, col: 1, offset: 2683}, expr: &actionExpr{ - pos: position{line: 78, col: 16, offset: 2630}, + pos: position{line: 79, col: 16, offset: 2698}, run: (*parser).callonPackageQuery1, expr: &seqExpr{ - pos: position{line: 78, col: 17, offset: 2631}, + pos: position{line: 79, col: 17, offset: 2699}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 78, col: 17, offset: 2631}, + pos: position{line: 79, col: 17, offset: 2699}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 78, col: 22, offset: 2636}, + pos: position{line: 79, col: 22, offset: 2704}, name: "PackageName", }, }, &ruleRefExpr{ - pos: position{line: 78, col: 34, offset: 2648}, + pos: position{line: 79, col: 34, offset: 2716}, name: "Arobase", }, &ruleRefExpr{ - pos: position{line: 78, col: 42, offset: 2656}, + pos: position{line: 79, col: 42, offset: 2724}, name: "VersionQuery", }, }, @@ -545,29 +564,29 @@ var g = &grammar{ }, { name: "PackageNameExpression", - pos: position{line: 82, col: 1, offset: 2703}, + pos: position{line: 84, col: 1, offset: 2821}, expr: &choiceExpr{ - pos: position{line: 82, col: 26, offset: 2728}, + pos: position{line: 84, col: 26, offset: 2846}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 82, col: 26, offset: 2728}, + pos: position{line: 84, col: 26, offset: 2846}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 82, col: 26, offset: 2728}, + pos: position{line: 84, col: 26, offset: 2846}, name: "Quote", }, &ruleRefExpr{ - pos: position{line: 82, col: 32, offset: 2734}, + pos: position{line: 84, col: 32, offset: 2852}, name: "PackageName", }, &ruleRefExpr{ - pos: position{line: 82, col: 44, offset: 2746}, + pos: position{line: 84, col: 44, offset: 2864}, name: "Quote", }, }, }, &ruleRefExpr{ - pos: position{line: 82, col: 52, offset: 2754}, + pos: position{line: 84, col: 52, offset: 2872}, name: "PackageName", }, }, @@ -575,36 +594,36 @@ var g = &grammar{ }, { name: "PackageName", - pos: position{line: 83, col: 1, offset: 2767}, + pos: position{line: 85, col: 1, offset: 2885}, expr: &choiceExpr{ - pos: position{line: 83, col: 15, offset: 2781}, + pos: position{line: 85, col: 15, offset: 2899}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 83, col: 15, offset: 2781}, + pos: position{line: 85, col: 15, offset: 2899}, run: (*parser).callonPackageName2, expr: &seqExpr{ - pos: position{line: 83, col: 16, offset: 2782}, + pos: position{line: 85, col: 16, offset: 2900}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 83, col: 16, offset: 2782}, + pos: position{line: 85, col: 16, offset: 2900}, name: "Scope", }, &ruleRefExpr{ - pos: position{line: 83, col: 22, offset: 2788}, + pos: position{line: 85, col: 22, offset: 2906}, name: "Slash", }, &ruleRefExpr{ - pos: position{line: 83, col: 28, offset: 2794}, + pos: position{line: 85, col: 28, offset: 2912}, name: "PackageChars", }, }, }, }, &actionExpr{ - pos: position{line: 86, col: 7, offset: 2904}, + pos: position{line: 88, col: 7, offset: 3024}, run: (*parser).callonPackageName7, expr: &ruleRefExpr{ - pos: position{line: 86, col: 7, offset: 2904}, + pos: position{line: 88, col: 7, offset: 3024}, name: "PackageChars", }, }, @@ -613,30 +632,36 @@ var g = &grammar{ }, { name: "VersionQueryExpression", - pos: position{line: 92, col: 1, offset: 3002}, + pos: position{line: 94, col: 1, offset: 3124}, expr: &choiceExpr{ - pos: position{line: 92, col: 26, offset: 3027}, + pos: position{line: 94, col: 27, offset: 3150}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 92, col: 27, offset: 3028}, + pos: position{line: 94, col: 28, offset: 3151}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 92, col: 27, offset: 3028}, + pos: position{line: 94, col: 28, offset: 3151}, name: "Quote", }, - &ruleRefExpr{ - pos: position{line: 92, col: 33, offset: 3034}, - name: "VersionQuery", + &oneOrMoreExpr{ + pos: position{line: 94, col: 34, offset: 3157}, + expr: &ruleRefExpr{ + pos: position{line: 94, col: 34, offset: 3157}, + name: "NotQuote", + }, }, &ruleRefExpr{ - pos: position{line: 92, col: 46, offset: 3047}, + pos: position{line: 94, col: 44, offset: 3167}, name: "Quote", }, }, }, - &ruleRefExpr{ - pos: position{line: 92, col: 55, offset: 3056}, - name: "VersionQuery", + &oneOrMoreExpr{ + pos: position{line: 94, col: 53, offset: 3176}, + expr: &ruleRefExpr{ + pos: position{line: 94, col: 54, offset: 3177}, + name: "NotColonCommentOrEOL", + }, }, }, }, @@ -644,27 +669,27 @@ var g = &grammar{ { name: "VersionExpression", displayName: "\"a quoted version number\"", - pos: position{line: 93, col: 1, offset: 3069}, + pos: position{line: 95, col: 1, offset: 3200}, expr: &actionExpr{ - pos: position{line: 93, col: 47, offset: 3115}, + pos: position{line: 95, col: 47, offset: 3246}, run: (*parser).callonVersionExpression1, expr: &seqExpr{ - pos: position{line: 93, col: 48, offset: 3116}, + pos: position{line: 95, col: 48, offset: 3247}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 93, col: 48, offset: 3116}, + pos: position{line: 95, col: 48, offset: 3247}, name: "Quote", }, &labeledExpr{ - pos: position{line: 93, col: 54, offset: 3122}, + pos: position{line: 95, col: 54, offset: 3253}, label: "version", expr: &ruleRefExpr{ - pos: position{line: 93, col: 62, offset: 3130}, + pos: position{line: 95, col: 62, offset: 3261}, name: "Version", }, }, &ruleRefExpr{ - pos: position{line: 93, col: 70, offset: 3138}, + pos: position{line: 95, col: 70, offset: 3269}, name: "Quote", }, }, @@ -672,17 +697,18 @@ var g = &grammar{ }, }, { - name: "Scope", - pos: position{line: 97, col: 1, offset: 3236}, + name: "Scope", + displayName: "\"a scope\"", + pos: position{line: 99, col: 1, offset: 3369}, expr: &seqExpr{ - pos: position{line: 97, col: 9, offset: 3244}, + pos: position{line: 99, col: 19, offset: 3387}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 97, col: 9, offset: 3244}, + pos: position{line: 99, col: 19, offset: 3387}, name: "Arobase", }, &ruleRefExpr{ - pos: position{line: 97, col: 17, offset: 3252}, + pos: position{line: 99, col: 27, offset: 3395}, name: "ScopeChars", }, }, @@ -691,30 +717,30 @@ var g = &grammar{ { name: "LCNM", displayName: "\"an empty or commented line\"", - pos: position{line: 99, col: 1, offset: 3264}, + pos: position{line: 101, col: 1, offset: 3407}, expr: &choiceExpr{ - pos: position{line: 99, col: 37, offset: 3300}, + pos: position{line: 101, col: 37, offset: 3443}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 99, col: 37, offset: 3300}, + pos: position{line: 101, col: 37, offset: 3443}, name: "NewLine", }, &ruleRefExpr{ - pos: position{line: 99, col: 45, offset: 3308}, + pos: position{line: 101, col: 45, offset: 3451}, name: "CommentLine", }, &seqExpr{ - pos: position{line: 99, col: 58, offset: 3321}, + pos: position{line: 101, col: 58, offset: 3464}, exprs: []interface{}{ &oneOrMoreExpr{ - pos: position{line: 99, col: 58, offset: 3321}, + pos: position{line: 101, col: 58, offset: 3464}, expr: &ruleRefExpr{ - pos: position{line: 99, col: 58, offset: 3321}, + pos: position{line: 101, col: 58, offset: 3464}, name: "_", }, }, &ruleRefExpr{ - pos: position{line: 99, col: 61, offset: 3324}, + pos: position{line: 101, col: 61, offset: 3467}, name: "NewLine", }, }, @@ -724,16 +750,16 @@ var g = &grammar{ }, { name: "ROL", - pos: position{line: 101, col: 1, offset: 3334}, + pos: position{line: 103, col: 1, offset: 3477}, expr: &choiceExpr{ - pos: position{line: 101, col: 7, offset: 3340}, + pos: position{line: 103, col: 7, offset: 3483}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 101, col: 7, offset: 3340}, + pos: position{line: 103, col: 7, offset: 3483}, name: "CommentLine", }, &ruleRefExpr{ - pos: position{line: 101, col: 21, offset: 3354}, + pos: position{line: 103, col: 21, offset: 3497}, name: "EmptyRestOfLine", }, }, @@ -741,23 +767,23 @@ var g = &grammar{ }, { name: "CommentLine", - pos: position{line: 102, col: 1, offset: 3370}, + pos: position{line: 104, col: 1, offset: 3513}, expr: &seqExpr{ - pos: position{line: 102, col: 15, offset: 3384}, + pos: position{line: 104, col: 15, offset: 3527}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 102, col: 15, offset: 3384}, + pos: position{line: 104, col: 15, offset: 3527}, expr: &ruleRefExpr{ - pos: position{line: 102, col: 15, offset: 3384}, + pos: position{line: 104, col: 15, offset: 3527}, name: "_", }, }, &ruleRefExpr{ - pos: position{line: 102, col: 18, offset: 3387}, + pos: position{line: 104, col: 18, offset: 3530}, name: "Comment", }, &ruleRefExpr{ - pos: position{line: 102, col: 26, offset: 3395}, + pos: position{line: 104, col: 26, offset: 3538}, name: "EOL", }, }, @@ -765,19 +791,19 @@ var g = &grammar{ }, { name: "IgnoredRestOfLine", - pos: position{line: 103, col: 1, offset: 3399}, + pos: position{line: 105, col: 1, offset: 3542}, expr: &seqExpr{ - pos: position{line: 103, col: 21, offset: 3419}, + pos: position{line: 105, col: 21, offset: 3562}, exprs: []interface{}{ &zeroOrOneExpr{ - pos: position{line: 103, col: 21, offset: 3419}, + pos: position{line: 105, col: 21, offset: 3562}, expr: &ruleRefExpr{ - pos: position{line: 103, col: 21, offset: 3419}, + pos: position{line: 105, col: 21, offset: 3562}, name: "NotEOL", }, }, &ruleRefExpr{ - pos: position{line: 103, col: 29, offset: 3427}, + pos: position{line: 105, col: 29, offset: 3570}, name: "EOL", }, }, @@ -785,19 +811,19 @@ var g = &grammar{ }, { name: "EmptyRestOfLine", - pos: position{line: 104, col: 1, offset: 3431}, + pos: position{line: 106, col: 1, offset: 3574}, expr: &seqExpr{ - pos: position{line: 104, col: 19, offset: 3449}, + pos: position{line: 106, col: 19, offset: 3592}, exprs: []interface{}{ &zeroOrMoreExpr{ - pos: position{line: 104, col: 19, offset: 3449}, + pos: position{line: 106, col: 19, offset: 3592}, expr: &ruleRefExpr{ - pos: position{line: 104, col: 19, offset: 3449}, + pos: position{line: 106, col: 19, offset: 3592}, name: "_", }, }, &ruleRefExpr{ - pos: position{line: 104, col: 22, offset: 3452}, + pos: position{line: 106, col: 22, offset: 3595}, name: "EOL", }, }, @@ -805,25 +831,25 @@ var g = &grammar{ }, { name: "YarnLockfileVersionLine", - pos: position{line: 106, col: 1, offset: 3457}, + pos: position{line: 108, col: 1, offset: 3600}, expr: &seqExpr{ - pos: position{line: 106, col: 27, offset: 3483}, + pos: position{line: 108, col: 27, offset: 3626}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 106, col: 27, offset: 3483}, + pos: position{line: 108, col: 27, offset: 3626}, name: "Hash", }, &ruleRefExpr{ - pos: position{line: 106, col: 32, offset: 3488}, + pos: position{line: 108, col: 32, offset: 3631}, name: "_", }, &litMatcher{ - pos: position{line: 106, col: 34, offset: 3490}, + pos: position{line: 108, col: 34, offset: 3633}, val: "yarn lockfile v1", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 106, col: 53, offset: 3509}, + pos: position{line: 108, col: 53, offset: 3652}, name: "EOL", }, }, @@ -831,16 +857,16 @@ var g = &grammar{ }, { name: "Comment", - pos: position{line: 107, col: 1, offset: 3513}, + pos: position{line: 109, col: 1, offset: 3656}, expr: &seqExpr{ - pos: position{line: 107, col: 11, offset: 3523}, + pos: position{line: 109, col: 11, offset: 3666}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 107, col: 11, offset: 3523}, + pos: position{line: 109, col: 11, offset: 3666}, name: "Hash", }, &ruleRefExpr{ - pos: position{line: 107, col: 16, offset: 3528}, + pos: position{line: 109, col: 16, offset: 3671}, name: "NotEOL", }, }, @@ -848,18 +874,18 @@ var g = &grammar{ }, { name: "PackageChars", - pos: position{line: 109, col: 1, offset: 3536}, + pos: position{line: 111, col: 1, offset: 3679}, expr: &seqExpr{ - pos: position{line: 109, col: 16, offset: 3551}, + pos: position{line: 111, col: 16, offset: 3694}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 109, col: 16, offset: 3551}, + pos: position{line: 111, col: 16, offset: 3694}, name: "UrlSafeCharNoDotNoUnderscore", }, &zeroOrMoreExpr{ - pos: position{line: 109, col: 45, offset: 3580}, + pos: position{line: 111, col: 45, offset: 3723}, expr: &ruleRefExpr{ - pos: position{line: 109, col: 45, offset: 3580}, + pos: position{line: 111, col: 45, offset: 3723}, name: "UrlSafeChar", }, }, @@ -868,18 +894,18 @@ var g = &grammar{ }, { name: "ScopeChars", - pos: position{line: 110, col: 1, offset: 3593}, + pos: position{line: 112, col: 1, offset: 3736}, expr: &seqExpr{ - pos: position{line: 110, col: 14, offset: 3606}, + pos: position{line: 112, col: 14, offset: 3749}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 110, col: 14, offset: 3606}, + pos: position{line: 112, col: 14, offset: 3749}, name: "UrlSafeCharNoDotNoUnderscore", }, &zeroOrMoreExpr{ - pos: position{line: 110, col: 43, offset: 3635}, + pos: position{line: 112, col: 43, offset: 3778}, expr: &ruleRefExpr{ - pos: position{line: 110, col: 43, offset: 3635}, + pos: position{line: 112, col: 43, offset: 3778}, name: "UrlSafeChar", }, }, @@ -887,27 +913,208 @@ var g = &grammar{ }, }, { - name: "VersionQuery", - displayName: "\"a semver version query\"", - pos: position{line: 112, col: 1, offset: 3649}, + name: "VersionQuery", + pos: position{line: 114, col: 1, offset: 3792}, + expr: &choiceExpr{ + pos: position{line: 114, col: 17, offset: 3808}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 114, col: 17, offset: 3808}, + name: "PathVersionQuery", + }, + &ruleRefExpr{ + pos: position{line: 114, col: 36, offset: 3827}, + name: "SemverVersionQuery", + }, + }, + }, + }, + { + name: "UrlVersionQuery", + pos: position{line: 116, col: 1, offset: 3847}, expr: &oneOrMoreExpr{ - pos: position{line: 112, col: 41, offset: 3689}, + pos: position{line: 116, col: 19, offset: 3865}, + expr: &ruleRefExpr{ + pos: position{line: 116, col: 19, offset: 3865}, + name: "ExtendedUrlSafeChar", + }, + }, + }, + { + name: "PathVersionQuery", + pos: position{line: 117, col: 1, offset: 3886}, + expr: &choiceExpr{ + pos: position{line: 117, col: 20, offset: 3905}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 117, col: 20, offset: 3905}, + name: "PathOperator", + }, + &oneOrMoreExpr{ + pos: position{line: 117, col: 35, offset: 3920}, + expr: &ruleRefExpr{ + pos: position{line: 117, col: 35, offset: 3920}, + name: "PathSafeChar", + }, + }, + }, + }, + }, + { + name: "SemverVersionQuery", + pos: position{line: 118, col: 1, offset: 3934}, + expr: &oneOrMoreExpr{ + pos: position{line: 118, col: 22, offset: 3955}, expr: &choiceExpr{ - pos: position{line: 112, col: 42, offset: 3690}, + pos: position{line: 118, col: 23, offset: 3956}, alternatives: []interface{}{ - &charClassMatcher{ - pos: position{line: 112, col: 42, offset: 3690}, - val: "[0-9^~<>!=xX*. |a-zA-Z]", - chars: []rune{'^', '~', '<', '>', '!', '=', 'x', 'X', '*', '.', ' ', '|'}, - ranges: []rune{'0', '9', 'a', 'z', 'A', 'Z'}, - ignoreCase: false, - inverted: false, + &ruleRefExpr{ + pos: position{line: 118, col: 23, offset: 3956}, + name: "Digit", }, - &litMatcher{ - pos: position{line: 112, col: 66, offset: 3714}, - val: "-", - ignoreCase: false, + &ruleRefExpr{ + pos: position{line: 118, col: 31, offset: 3964}, + name: "Alpha", + }, + &ruleRefExpr{ + pos: position{line: 118, col: 39, offset: 3972}, + name: "VersionQueryWildcard", + }, + &ruleRefExpr{ + pos: position{line: 118, col: 62, offset: 3995}, + name: "VersionPunctuation", + }, + &ruleRefExpr{ + pos: position{line: 118, col: 83, offset: 4016}, + name: "VersionQueryOperator", }, + &ruleRefExpr{ + pos: position{line: 118, col: 106, offset: 4039}, + name: "VersionQuerySeparator", + }, + }, + }, + }, + }, + { + name: "NotQuote", + pos: position{line: 120, col: 1, offset: 4065}, + expr: &charClassMatcher{ + pos: position{line: 120, col: 12, offset: 4076}, + val: "[^\"]", + chars: []rune{'"'}, + ignoreCase: false, + inverted: true, + }, + }, + { + name: "NotCommentOrEOL", + pos: position{line: 121, col: 1, offset: 4081}, + expr: &charClassMatcher{ + pos: position{line: 121, col: 19, offset: 4099}, + val: "[^:#\\r\\n]", + chars: []rune{':', '#', '\r', '\n'}, + ignoreCase: false, + inverted: true, + }, + }, + { + name: "NotColonCommentOrEOL", + pos: position{line: 122, col: 1, offset: 4109}, + expr: &charClassMatcher{ + pos: position{line: 122, col: 24, offset: 4132}, + val: "[^:#\\r\\n]", + chars: []rune{':', '#', '\r', '\n'}, + ignoreCase: false, + inverted: true, + }, + }, + { + name: "PathOperator", + pos: position{line: 123, col: 1, offset: 4142}, + expr: &litMatcher{ + pos: position{line: 123, col: 16, offset: 4157}, + val: "/", + ignoreCase: false, + }, + }, + { + name: "VersionQueryOperator", + pos: position{line: 124, col: 1, offset: 4161}, + expr: &choiceExpr{ + pos: position{line: 124, col: 24, offset: 4184}, + alternatives: []interface{}{ + &litMatcher{ + pos: position{line: 124, col: 24, offset: 4184}, + val: "^", + ignoreCase: false, + }, + &litMatcher{ + pos: position{line: 124, col: 30, offset: 4190}, + val: "~", + ignoreCase: false, + }, + &litMatcher{ + pos: position{line: 124, col: 36, offset: 4196}, + val: "<", + ignoreCase: false, + }, + &litMatcher{ + pos: position{line: 124, col: 42, offset: 4202}, + val: ">", + ignoreCase: false, + }, + &litMatcher{ + pos: position{line: 124, col: 48, offset: 4208}, + val: "=", + ignoreCase: false, + }, + &litMatcher{ + pos: position{line: 124, col: 54, offset: 4214}, + val: "!", + ignoreCase: false, + }, + }, + }, + }, + { + name: "VersionQuerySeparator", + pos: position{line: 125, col: 1, offset: 4218}, + expr: &choiceExpr{ + pos: position{line: 125, col: 25, offset: 4242}, + alternatives: []interface{}{ + &litMatcher{ + pos: position{line: 125, col: 25, offset: 4242}, + val: "|", + ignoreCase: false, + }, + &ruleRefExpr{ + pos: position{line: 125, col: 31, offset: 4248}, + name: "_", + }, + }, + }, + }, + { + name: "VersionQueryWildcard", + pos: position{line: 126, col: 1, offset: 4250}, + expr: &choiceExpr{ + pos: position{line: 126, col: 24, offset: 4273}, + alternatives: []interface{}{ + &litMatcher{ + pos: position{line: 126, col: 24, offset: 4273}, + val: "x", + ignoreCase: false, + }, + &litMatcher{ + pos: position{line: 126, col: 30, offset: 4279}, + val: "X", + ignoreCase: false, + }, + &litMatcher{ + pos: position{line: 126, col: 36, offset: 4285}, + val: "*", + ignoreCase: false, }, }, }, @@ -915,38 +1122,61 @@ var g = &grammar{ { name: "Version", displayName: "\"a version number\"", - pos: position{line: 113, col: 1, offset: 3720}, + pos: position{line: 128, col: 1, offset: 4290}, expr: &actionExpr{ - pos: position{line: 113, col: 30, offset: 3749}, + pos: position{line: 128, col: 30, offset: 4319}, run: (*parser).callonVersion1, expr: &oneOrMoreExpr{ - pos: position{line: 113, col: 30, offset: 3749}, + pos: position{line: 128, col: 30, offset: 4319}, expr: &choiceExpr{ - pos: position{line: 113, col: 31, offset: 3750}, + pos: position{line: 128, col: 31, offset: 4320}, alternatives: []interface{}{ - &charClassMatcher{ - pos: position{line: 113, col: 31, offset: 3750}, - val: "[0-9.+a-zA-Z]", - chars: []rune{'.', '+'}, - ranges: []rune{'0', '9', 'a', 'z', 'A', 'Z'}, - ignoreCase: false, - inverted: false, + &ruleRefExpr{ + pos: position{line: 128, col: 31, offset: 4320}, + name: "Digit", }, - &litMatcher{ - pos: position{line: 113, col: 45, offset: 3764}, - val: "-", - ignoreCase: false, + &ruleRefExpr{ + pos: position{line: 128, col: 39, offset: 4328}, + name: "Alpha", + }, + &ruleRefExpr{ + pos: position{line: 128, col: 47, offset: 4336}, + name: "VersionPunctuation", }, }, }, }, }, }, + { + name: "VersionPunctuation", + pos: position{line: 133, col: 1, offset: 4437}, + expr: &choiceExpr{ + pos: position{line: 133, col: 22, offset: 4458}, + alternatives: []interface{}{ + &litMatcher{ + pos: position{line: 133, col: 22, offset: 4458}, + val: ".", + ignoreCase: false, + }, + &litMatcher{ + pos: position{line: 133, col: 28, offset: 4464}, + val: "-", + ignoreCase: false, + }, + &litMatcher{ + pos: position{line: 133, col: 34, offset: 4470}, + val: "+", + ignoreCase: false, + }, + }, + }, + }, { name: "Alpha", - pos: position{line: 118, col: 1, offset: 3848}, + pos: position{line: 135, col: 1, offset: 4475}, expr: &charClassMatcher{ - pos: position{line: 118, col: 9, offset: 3856}, + pos: position{line: 135, col: 9, offset: 4483}, val: "[a-zA-Z]", ranges: []rune{'a', 'z', 'A', 'Z'}, ignoreCase: false, @@ -955,36 +1185,115 @@ var g = &grammar{ }, { name: "Digit", - pos: position{line: 119, col: 1, offset: 3865}, + pos: position{line: 136, col: 1, offset: 4492}, expr: &charClassMatcher{ - pos: position{line: 119, col: 9, offset: 3873}, + pos: position{line: 136, col: 9, offset: 4500}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, inverted: false, }, }, + { + name: "ExtendedUrlSafeChar", + pos: position{line: 138, col: 1, offset: 4507}, + expr: &choiceExpr{ + pos: position{line: 138, col: 23, offset: 4529}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 138, col: 23, offset: 4529}, + name: "PathSafeChar", + }, + &litMatcher{ + pos: position{line: 138, col: 38, offset: 4544}, + val: ":", + ignoreCase: false, + }, + }, + }, + }, + { + name: "PathSafeCharNoArobase", + pos: position{line: 139, col: 1, offset: 4548}, + expr: &choiceExpr{ + pos: position{line: 139, col: 25, offset: 4572}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 139, col: 25, offset: 4572}, + name: "UrlSafeChar", + }, + &litMatcher{ + pos: position{line: 139, col: 39, offset: 4586}, + val: "+", + ignoreCase: false, + }, + &litMatcher{ + pos: position{line: 139, col: 45, offset: 4592}, + val: "/", + ignoreCase: false, + }, + &litMatcher{ + pos: position{line: 139, col: 51, offset: 4598}, + val: "%", + ignoreCase: false, + }, + }, + }, + }, + { + name: "PathSafeChar", + pos: position{line: 140, col: 1, offset: 4602}, + expr: &choiceExpr{ + pos: position{line: 140, col: 16, offset: 4617}, + alternatives: []interface{}{ + &ruleRefExpr{ + pos: position{line: 140, col: 16, offset: 4617}, + name: "UrlSafeChar", + }, + &litMatcher{ + pos: position{line: 140, col: 30, offset: 4631}, + val: "+", + ignoreCase: false, + }, + &litMatcher{ + pos: position{line: 140, col: 36, offset: 4637}, + val: "@", + ignoreCase: false, + }, + &litMatcher{ + pos: position{line: 140, col: 42, offset: 4643}, + val: "/", + ignoreCase: false, + }, + &litMatcher{ + pos: position{line: 140, col: 48, offset: 4649}, + val: "%", + ignoreCase: false, + }, + }, + }, + }, { name: "UrlSafeCharNoDotNoUnderscore", - pos: position{line: 121, col: 1, offset: 3880}, + pos: position{line: 141, col: 1, offset: 4653}, expr: &choiceExpr{ - pos: position{line: 121, col: 32, offset: 3911}, + pos: position{line: 141, col: 32, offset: 4684}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 121, col: 32, offset: 3911}, + pos: position{line: 141, col: 32, offset: 4684}, name: "Alpha", }, &ruleRefExpr{ - pos: position{line: 121, col: 40, offset: 3919}, + pos: position{line: 141, col: 40, offset: 4692}, name: "Digit", }, &litMatcher{ - pos: position{line: 121, col: 48, offset: 3927}, + pos: position{line: 141, col: 48, offset: 4700}, val: "-", ignoreCase: false, }, &litMatcher{ - pos: position{line: 121, col: 54, offset: 3933}, + pos: position{line: 141, col: 54, offset: 4706}, val: "~", ignoreCase: false, }, @@ -993,35 +1302,35 @@ var g = &grammar{ }, { name: "UrlSafeChar", - pos: position{line: 122, col: 1, offset: 3937}, + pos: position{line: 142, col: 1, offset: 4710}, expr: &choiceExpr{ - pos: position{line: 122, col: 15, offset: 3951}, + pos: position{line: 142, col: 15, offset: 4724}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 122, col: 15, offset: 3951}, + pos: position{line: 142, col: 15, offset: 4724}, name: "Alpha", }, &ruleRefExpr{ - pos: position{line: 122, col: 23, offset: 3959}, + pos: position{line: 142, col: 23, offset: 4732}, name: "Digit", }, &litMatcher{ - pos: position{line: 122, col: 31, offset: 3967}, + pos: position{line: 142, col: 31, offset: 4740}, val: "-", ignoreCase: false, }, &litMatcher{ - pos: position{line: 122, col: 37, offset: 3973}, + pos: position{line: 142, col: 37, offset: 4746}, val: ".", ignoreCase: false, }, &litMatcher{ - pos: position{line: 122, col: 43, offset: 3979}, + pos: position{line: 142, col: 43, offset: 4752}, val: "_", ignoreCase: false, }, &litMatcher{ - pos: position{line: 122, col: 49, offset: 3985}, + pos: position{line: 142, col: 49, offset: 4758}, val: "~", ignoreCase: false, }, @@ -1031,9 +1340,9 @@ var g = &grammar{ { name: "Hash", displayName: "\"a hash\"", - pos: position{line: 124, col: 1, offset: 3990}, + pos: position{line: 144, col: 1, offset: 4763}, expr: &litMatcher{ - pos: position{line: 124, col: 17, offset: 4006}, + pos: position{line: 144, col: 17, offset: 4779}, val: "#", ignoreCase: false, }, @@ -1041,9 +1350,9 @@ var g = &grammar{ { name: "Quote", displayName: "\"a double quote\"", - pos: position{line: 125, col: 1, offset: 4010}, + pos: position{line: 145, col: 1, offset: 4783}, expr: &litMatcher{ - pos: position{line: 125, col: 25, offset: 4034}, + pos: position{line: 145, col: 25, offset: 4807}, val: "\"", ignoreCase: false, }, @@ -1051,9 +1360,9 @@ var g = &grammar{ { name: "Comma", displayName: "\"a comma\"", - pos: position{line: 126, col: 1, offset: 4039}, + pos: position{line: 146, col: 1, offset: 4812}, expr: &litMatcher{ - pos: position{line: 126, col: 19, offset: 4057}, + pos: position{line: 146, col: 19, offset: 4830}, val: ",", ignoreCase: false, }, @@ -1061,9 +1370,9 @@ var g = &grammar{ { name: "Colon", displayName: "\"a colon\"", - pos: position{line: 127, col: 1, offset: 4061}, + pos: position{line: 147, col: 1, offset: 4834}, expr: &litMatcher{ - pos: position{line: 127, col: 19, offset: 4079}, + pos: position{line: 147, col: 19, offset: 4852}, val: ":", ignoreCase: false, }, @@ -1071,9 +1380,9 @@ var g = &grammar{ { name: "Arobase", displayName: "\"an arobase\"", - pos: position{line: 128, col: 1, offset: 4083}, + pos: position{line: 148, col: 1, offset: 4856}, expr: &litMatcher{ - pos: position{line: 128, col: 24, offset: 4106}, + pos: position{line: 148, col: 24, offset: 4879}, val: "@", ignoreCase: false, }, @@ -1081,21 +1390,21 @@ var g = &grammar{ { name: "Slash", displayName: "\"a slash\"", - pos: position{line: 129, col: 1, offset: 4110}, + pos: position{line: 149, col: 1, offset: 4883}, expr: &litMatcher{ - pos: position{line: 129, col: 19, offset: 4128}, + pos: position{line: 149, col: 19, offset: 4901}, val: "/", ignoreCase: false, }, }, { name: "NotEOL", - displayName: "\"any charchter but EOL/EOF\"", - pos: position{line: 131, col: 1, offset: 4133}, + displayName: "\"any character but EOL/EOF\"", + pos: position{line: 151, col: 1, offset: 4906}, expr: &zeroOrMoreExpr{ - pos: position{line: 131, col: 38, offset: 4170}, + pos: position{line: 151, col: 38, offset: 4943}, expr: &charClassMatcher{ - pos: position{line: 131, col: 38, offset: 4170}, + pos: position{line: 151, col: 38, offset: 4943}, val: "[^\\r\\n]", chars: []rune{'\r', '\n'}, ignoreCase: false, @@ -1106,16 +1415,16 @@ var g = &grammar{ { name: "EOL", displayName: "\"End of Line (EOL) or End of File (EOF)\"", - pos: position{line: 132, col: 1, offset: 4179}, + pos: position{line: 152, col: 1, offset: 4952}, expr: &choiceExpr{ - pos: position{line: 132, col: 48, offset: 4226}, + pos: position{line: 152, col: 48, offset: 4999}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 132, col: 48, offset: 4226}, + pos: position{line: 152, col: 48, offset: 4999}, name: "NewLine", }, &ruleRefExpr{ - pos: position{line: 132, col: 58, offset: 4236}, + pos: position{line: 152, col: 58, offset: 5009}, name: "EOF", }, }, @@ -1123,17 +1432,17 @@ var g = &grammar{ }, { name: "NewLine", - pos: position{line: 133, col: 1, offset: 4240}, + pos: position{line: 153, col: 1, offset: 5013}, expr: &choiceExpr{ - pos: position{line: 133, col: 11, offset: 4250}, + pos: position{line: 153, col: 11, offset: 5023}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 133, col: 11, offset: 4250}, + pos: position{line: 153, col: 11, offset: 5023}, val: "\r\n", ignoreCase: false, }, &litMatcher{ - pos: position{line: 133, col: 20, offset: 4259}, + pos: position{line: 153, col: 20, offset: 5032}, val: "\n", ignoreCase: false, }, @@ -1143,16 +1452,16 @@ var g = &grammar{ { name: "____", displayName: "\"double indent\"", - pos: position{line: 135, col: 1, offset: 4265}, + pos: position{line: 155, col: 1, offset: 5038}, expr: &seqExpr{ - pos: position{line: 135, col: 24, offset: 4288}, + pos: position{line: 155, col: 24, offset: 5061}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 135, col: 24, offset: 4288}, + pos: position{line: 155, col: 24, offset: 5061}, name: "__", }, &ruleRefExpr{ - pos: position{line: 135, col: 27, offset: 4291}, + pos: position{line: 155, col: 27, offset: 5064}, name: "__", }, }, @@ -1161,16 +1470,16 @@ var g = &grammar{ { name: "__", displayName: "\"single indent\"", - pos: position{line: 136, col: 1, offset: 4294}, + pos: position{line: 156, col: 1, offset: 5067}, expr: &seqExpr{ - pos: position{line: 136, col: 22, offset: 4315}, + pos: position{line: 156, col: 22, offset: 5088}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 136, col: 22, offset: 4315}, + pos: position{line: 156, col: 22, offset: 5088}, name: "indent", }, &ruleRefExpr{ - pos: position{line: 136, col: 29, offset: 4322}, + pos: position{line: 156, col: 29, offset: 5095}, name: "indent", }, }, @@ -1178,9 +1487,9 @@ var g = &grammar{ }, { name: "indent", - pos: position{line: 138, col: 1, offset: 4330}, + pos: position{line: 158, col: 1, offset: 5103}, expr: &charClassMatcher{ - pos: position{line: 138, col: 10, offset: 4339}, + pos: position{line: 158, col: 10, offset: 5112}, val: "[ \\t]", chars: []rune{' ', '\t'}, ignoreCase: false, @@ -1190,9 +1499,9 @@ var g = &grammar{ { name: "_", displayName: "\"a whitespace\"", - pos: position{line: 140, col: 1, offset: 4346}, + pos: position{line: 160, col: 1, offset: 5119}, expr: &charClassMatcher{ - pos: position{line: 140, col: 20, offset: 4365}, + pos: position{line: 160, col: 20, offset: 5138}, val: "[ \\t]", chars: []rune{' ', '\t'}, ignoreCase: false, @@ -1201,11 +1510,11 @@ var g = &grammar{ }, { name: "EOF", - pos: position{line: 142, col: 1, offset: 4372}, + pos: position{line: 162, col: 1, offset: 5145}, expr: ¬Expr{ - pos: position{line: 142, col: 7, offset: 4378}, + pos: position{line: 162, col: 7, offset: 5151}, expr: &anyMatcher{ - line: 142, col: 8, offset: 4379, + line: 162, col: 8, offset: 5152, }, }, }, @@ -1241,7 +1550,7 @@ func (p *parser) callonBody1() (interface{}, error) { func (c *current) onDependency1(name, version interface{}) (interface{}, error) { dep := nodepackage.NodePackage{Name: name.(string), Version: version.(string)} - log.Debug("👽 Package of DependencyHeaderLine", dep) + log.Debug("👽 Package of DependencyHeaderLine: ", dep) return dep, nil } @@ -1252,7 +1561,7 @@ func (p *parser) callonDependency1() (interface{}, error) { } func (c *current) onDependencyHeaderLine1(name interface{}) (interface{}, error) { - log.Debug("👽 Package of DependencyHeaderLine", name.(string)) + log.Debug("👽 Package of DependencyHeaderLine: ", name.(string)) return name.(string), nil } @@ -1263,7 +1572,7 @@ func (p *parser) callonDependencyHeaderLine1() (interface{}, error) { } func (c *current) onDependencyVersionLine1(version interface{}) (interface{}, error) { - log.Debug("👽 Package of DependencyVersionLine", version.(string)) + log.Debug("👽 Package of DependencyVersionLine: ", version.(string)) return version.(string), nil } @@ -1274,7 +1583,7 @@ func (p *parser) callonDependencyVersionLine1() (interface{}, error) { } func (c *current) onListOfPackageQueryExpression1(name interface{}) (interface{}, error) { - log.Debug("👽 Package of ListOfPackageQueryExpression", name.(string)) + log.Debug("👽 Package of ListOfPackageQueryExpression: ", name.(string)) return name.(string), nil } @@ -1284,31 +1593,30 @@ func (p *parser) callonListOfPackageQueryExpression1() (interface{}, error) { return p.cur.onListOfPackageQueryExpression1(stack["name"]) } -func (c *current) onPackageQueryExpression2(name interface{}) (interface{}, error) { - log.Debug("👽 Quoted PackageQuery", name.(string)) +func (c *current) onPackageQueryExpression1(name interface{}) (interface{}, error) { + log.Debug("👽 PackageQueryExpression: ", name.(string)) return name.(string), nil - } -func (p *parser) callonPackageQueryExpression2() (interface{}, error) { +func (p *parser) callonPackageQueryExpression1() (interface{}, error) { stack := p.vstack[len(p.vstack)-1] _ = stack - return p.cur.onPackageQueryExpression2(stack["name"]) + return p.cur.onPackageQueryExpression1(stack["name"]) } -func (c *current) onPackageQueryExpression8(name interface{}) (interface{}, error) { - log.Debug("👽 PackageQuery", name.(string)) +func (c *current) onQuotedPackageQuery1(name interface{}) (interface{}, error) { + log.Debug("👽 QuotedPackageQuery: ", name.(string)) return name.(string), nil - } -func (p *parser) callonPackageQueryExpression8() (interface{}, error) { +func (p *parser) callonQuotedPackageQuery1() (interface{}, error) { stack := p.vstack[len(p.vstack)-1] _ = stack - return p.cur.onPackageQueryExpression8(stack["name"]) + return p.cur.onQuotedPackageQuery1(stack["name"]) } func (c *current) onPackageQuery1(name interface{}) (interface{}, error) { + log.Debug("👽 PackageQuery: ", name.(string)) return name.(string), nil } @@ -1319,7 +1627,7 @@ func (p *parser) callonPackageQuery1() (interface{}, error) { } func (c *current) onPackageName2() (interface{}, error) { - log.Debug("👽 Package with Scope", string(c.text)) + log.Debug("👽 Package with Scope: ", string(c.text)) return string(c.text), nil } @@ -1331,7 +1639,7 @@ func (p *parser) callonPackageName2() (interface{}, error) { } func (c *current) onPackageName7() (interface{}, error) { - log.Debug("👽 Package", string(c.text)) + log.Debug("👽 Package: ", string(c.text)) return string(c.text), nil } @@ -1343,7 +1651,7 @@ func (p *parser) callonPackageName7() (interface{}, error) { } func (c *current) onVersionExpression1(version interface{}) (interface{}, error) { - log.Debug("👽 VersionExpression", version.(string)) + log.Debug("👽 VersionExpression: ", version.(string)) return version.(string), nil } @@ -1354,7 +1662,7 @@ func (p *parser) callonVersionExpression1() (interface{}, error) { } func (c *current) onVersion1() (interface{}, error) { - log.Debug("👽 Version", string(c.text)) + log.Debug("👽 Version: ", string(c.text)) return string(c.text), nil } diff --git a/yarnlockparser/yarnlockparser.peg b/yarnlockparser/yarnlockparser.peg index b65640d..23f0df0 100644 --- a/yarnlockparser/yarnlockparser.peg +++ b/yarnlockparser/yarnlockparser.peg @@ -45,16 +45,16 @@ Body = LCNM* deps:(Dependency*) { Dependency = (name:DependencyHeaderLine version:DependencyVersionLine DependencyResolvedLine (DependencyDependenciesHeaderLine DependencyDependency*)? (DependencyOptionalDependenciesHeaderLine DependencyOptionalDependency*)? LCNM*) { dep := nodepackage.NodePackage{Name: name.(string), Version: version.(string)} - log.Debug("👽 Package of DependencyHeaderLine", dep) + log.Debug("👽 Package of DependencyHeaderLine: ", dep) return dep, nil } DependencyHeaderLine = (name:ListOfPackageQueryExpression Colon ROL) { - log.Debug("👽 Package of DependencyHeaderLine", name.(string)) + log.Debug("👽 Package of DependencyHeaderLine: ", name.(string)) return name.(string), nil } DependencyVersionLine = (__ "version" _+ version:VersionExpression ROL) { - log.Debug("👽 Package of DependencyVersionLine", version.(string)) + log.Debug("👽 Package of DependencyVersionLine: ", version.(string)) return version.(string), nil } DependencyResolvedLine = __ "resolved" IgnoredRestOfLine @@ -64,37 +64,39 @@ DependencyOptionalDependenciesHeaderLine = __ "optionalDependencies" _* Colon RO DependencyOptionalDependency = ____ PackageNameExpression _+ VersionQueryExpression ROL ListOfPackageQueryExpression = name:PackageQueryExpression (_* Comma _* PackageQueryExpression)* { - log.Debug("👽 Package of ListOfPackageQueryExpression", name.(string)) + log.Debug("👽 Package of ListOfPackageQueryExpression: ", name.(string)) + return name.(string), nil +} +PackageQueryExpression = name:(QuotedPackageQuery / PackageQuery) { + log.Debug("👽 PackageQueryExpression: ", name.(string)) return name.(string), nil } -PackageQueryExpression = (Quote name:PackageQuery Quote) { - log.Debug("👽 Quoted PackageQuery", name.(string)) - return name.(string), nil - } / name:PackageQuery { - log.Debug("👽 PackageQuery", name.(string)) - return name.(string), nil - } +QuotedPackageQuery = (Quote name:PackageName Arobase NotQuote+ Quote) { + log.Debug("👽 QuotedPackageQuery: ", name.(string)) + return name.(string), nil +} PackageQuery = (name:PackageName Arobase VersionQuery) { + log.Debug("👽 PackageQuery: ", name.(string)) return name.(string), nil } PackageNameExpression = (Quote PackageName Quote / PackageName) PackageName = (Scope Slash PackageChars) { - log.Debug("👽 Package with Scope", string(c.text)) + log.Debug("👽 Package with Scope: ", string(c.text)) return string(c.text), nil } / PackageChars { - log.Debug("👽 Package", string(c.text)) + log.Debug("👽 Package: ", string(c.text)) return string(c.text), nil } -VersionQueryExpression = (Quote VersionQuery Quote) / VersionQuery +VersionQueryExpression = (Quote NotQuote+ Quote) / (NotColonCommentOrEOL)+ VersionExpression "a quoted version number" = (Quote version:Version Quote) { - log.Debug("👽 VersionExpression", version.(string)) + log.Debug("👽 VersionExpression: ", version.(string)) return version.(string), nil } -Scope = Arobase ScopeChars +Scope "a scope" = Arobase ScopeChars LCNM "an empty or commented line" = NewLine/CommentLine/(_+ NewLine) @@ -109,15 +111,33 @@ Comment = Hash NotEOL PackageChars = UrlSafeCharNoDotNoUnderscore UrlSafeChar* ScopeChars = UrlSafeCharNoDotNoUnderscore UrlSafeChar* -VersionQuery "a semver version query" = ([0-9^~<>!=xX*. |a-zA-Z]/"-")+ -Version "a version number" = ([0-9.+a-zA-Z]/"-")+ { - log.Debug("👽 Version", string(c.text)) +VersionQuery = PathVersionQuery / SemverVersionQuery + +UrlVersionQuery = ExtendedUrlSafeChar+ +PathVersionQuery = PathOperator / PathSafeChar+ +SemverVersionQuery = (Digit / Alpha / VersionQueryWildcard / VersionPunctuation / VersionQueryOperator / VersionQuerySeparator )+ + +NotQuote = [^"] +NotCommentOrEOL = [^:#\r\n] +NotColonCommentOrEOL = [^:#\r\n] +PathOperator = "/" +VersionQueryOperator = "^" / "~" / "<" / ">" / "=" / "!" +VersionQuerySeparator = "|" / _ +VersionQueryWildcard = "x" / "X" / "*" + +Version "a version number" = (Digit / Alpha / VersionPunctuation)+ { + log.Debug("👽 Version: ", string(c.text)) return string(c.text), nil } +VersionPunctuation = "." / "-" / "+" + Alpha = [a-zA-Z] Digit = [0-9] +ExtendedUrlSafeChar = PathSafeChar / ":" +PathSafeCharNoArobase = UrlSafeChar / "+" / "/" / "%" +PathSafeChar = UrlSafeChar / "+" / "@" / "/" / "%" UrlSafeCharNoDotNoUnderscore = Alpha / Digit / "-" / "~" UrlSafeChar = Alpha / Digit / "-" / "." / "_" / "~" @@ -128,7 +148,7 @@ Colon "a colon" = ":" Arobase "an arobase" = "@" Slash "a slash" = "/" -NotEOL "any charchter but EOL/EOF" = [^\r\n]* +NotEOL "any character but EOL/EOF" = [^\r\n]* EOL "End of Line (EOL) or End of File (EOF)" = NewLine / EOF NewLine = "\r\n" / "\n" diff --git a/yarnlockparser/yarnlockparser_test.go b/yarnlockparser/yarnlockparser_test.go index d93d32d..f8de07b 100644 --- a/yarnlockparser/yarnlockparser_test.go +++ b/yarnlockparser/yarnlockparser_test.go @@ -4,7 +4,7 @@ import ( "encoding/json" "fmt" "io/ioutil" - log "github.com/sirupsen/logrus" + "log" "testing" "github.com/google/go-cmp/cmp" @@ -79,6 +79,22 @@ func TestParseYarnLockInsecureProject(t *testing.T) { } } +func TestParseYarnNotInstalledInsecureComplexProject(t *testing.T) { + content, err := ioutil.ReadFile("../test_data/not-installed-insecure-complex-project/yarn.lock") + if err != nil { + t.Errorf("TestParseYarnLockInsecureProject: could not open test data file: %q", err) + } + + res, err := ParseYarnLock(string(content)) //, Debug(true)) + if err != nil { + t.Errorf("TestParseYarnLockInsecureProject: Error during parsing: %q", err) + } + fmt.Println("TestParseYarnLockInsecureProject result:", res, "\n", err) + if diff := cmp.Diff(len(res), 245); diff != "" { + t.Errorf("TestParseYarnLockInsecureProject: after ParseYarnLock : (-got +want)\n%s", diff) + } +} + func TestParseYarnNotInstalledSecureComplexProject(t *testing.T) { content, err := ioutil.ReadFile("../test_data/not-installed-secure-complex-project/yarn.lock") if err != nil {