{"_id":"@midwayjs/fcli-command-core","_rev":"166-1b6de2e8dd97de38c5ccc64b54ff2ba2","name":"@midwayjs/fcli-command-core","dist-tags":{"beta":"1.2.43-beta.15","latest":"1.2.41","canary":"1.0.6-alpha.523"},"versions":{"0.2.0":{"name":"@midwayjs/fcli-command-core","version":"0.2.0","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.0","deepmerge":"^4.2.2","minimist":"^1.2.0"},"devDependencies":{"midway-bin":"1"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"48a9b9c0a9e87dc16ff995e1d4fd08c356abccf3","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.0","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.19.0/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-ytCrxpUhpA5/cjYqPtIlMs2HYN6M4/Z6l6hINW/tADZItfgv1I9gEy82S/UllLrnsSJLES/+XSPaqtTYBtBiww==","shasum":"57fef5f51fee720b8020e60d177f0de8a6fda421","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.0.tgz","fileCount":43,"unpackedSize":88951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeEfPcCRA9TVsSAnZWagAAYZUP/0NTZFkyhvT38mEbThjr\nDl+mr5y23qaqa7KTX4TUeKvGXyPWPMjqmJlZlqs21abiXmWf/vpNQkGUtM72\nXS9nV7sCzj075A7r1/7mJiG7kCmB2KW1Zy/2QSJHlg0seGxx/PWfhsUikmnY\n8Gv8hjoezadOytJPynJcKFPxu+XLcWaS115FsfX1D6kM2tZxSLYqamJKjxQH\ni7HJhdTB16UQMOdL9ulW4ixQw4cYWbSnK5ymzSeS3UCJLZ7/rwFQJ8Q9iSrB\nrCK9dT8NVLCdhR/AAbQpSUZzSi/s36orxgan2TMLlFCIt6NU8mgjJsrPmfkx\nStEe+jSCyfL50nnX4bcm8T6EEG+9e4OyQ7ZHY+cTffVHJnRKg6RkA7hJBa2l\nBFsr2Fg2z8TXTUKa0yqYRqQubBv5z50Qm5sDZYL9hd56JedLBR+Ursjugpdn\nSSdiQPgnSMXqjr/Zc1Q5zlGRUWaFqaYM3SSNwvXC3FWM7d+4BXYI7cDbLAa6\nw6xicQB9RLX/Am7YwjAyz5QdFUOGxbI9X5JxBbCKLEJSlmfZhLUL3fxpXcvi\n2Rj/gAZoinqyV+PQAmF6NyJxOZ694OW2ZqXv+2QTB8kUG+fn4zW2LaQUQWJS\nTt5gBzIQZQIGy3bS/gNaxUs4Y5KqGAc1oqZQ/bXU9f3AOwy8spiaPRYAiRIh\naOzt\r\n=ffcB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE/Bwh//FBUqPPwyCuw4NiioKWQQxEHcaeC05saCttqyAiEA9UzSBy5qwXAK5fy336nt2jeZgq0k39a5lBqu5czmQbI="}]},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.0_1578234843722_0.30734052696709524"},"_hasShrinkwrap":false},"0.2.2":{"name":"@midwayjs/fcli-command-core","version":"0.2.2","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.2","deepmerge":"^4.2.2","minimist":"^1.2.0"},"devDependencies":{"midway-bin":"1"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"7729bc7e001e6100acd18c624ad8004abdf72791","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.2","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.19.0/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-rjIZdalo+fLkHQIQ906/CrggU6mp5Sab7lXQ43s4WJUlQy6SY77Ft4Fe9tb1YUfAiGyKhSFfBQgzWClTQUGk/w==","shasum":"db8ae9dc1f37546004131ee6c087c8758ede027a","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.2.tgz","fileCount":43,"unpackedSize":89806,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeFULSCRA9TVsSAnZWagAAIOYP/ix9MUyMNnX3LAL7YGi1\n0DFkOHE2KYUkaXaYhHvCflfdMUhHiRKy4JyJdtqudaXfDve4B0LIUakve9af\nIapxfDjvgQ0RhQBwdokJU/P7Syb+n8qkNdmt3t7IfZzJ7+5606p6A7PlsViG\nBJsrzbev98cLKASsRTOKxAXwMKmeyTdGaKE4LWuwOyhb1FboW01J1d3uQzv5\nzUXuaLSreIFMlNA6s12Ol95s6ZpS8NVMYEcYF1kZYY1B/dcnxgqY3/7LPkfu\n18+EXYJ1oinUFEtQrLavbOxU2okOD/QdXIoeR5q0BGzYxebyzQ/nMKYAfgnK\nMi68GIO2MHXlZI4dCTMIICQmZ98mx7i0/ygFrR0vtu9TtNdlZSGbUk7P62yC\n5HpRAu9dIIuN54HnLGR1H5jOD+0Jf+TLS3fB2xlPjfEACqQNEiyQTxnrudiX\nRkwbe0GeMeW5f51c+RGu8JbBmuG7cwHUVsiHRIQh0y8EnY3H5KWv9h10O/EH\nQDiG0Oc3JRKypgr0ljGzOF9cqOfCqc1Itu+yeGVK16oCuE/bIGtlsbBQ56oU\nCcMt94Ku8Ckk32MQm0HUIt+00gyXya0K9UT+ZPOm3gWIFabyBv0R96u3A65u\nsutHcxsPixPUelbgU+Wd8tLtzqQWHOF+ZIl46YXkDaotr9bZSqLmMXbqLllA\nJt/L\r\n=vNq+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDst028daoLJjsdd1R2IOKB1Ws0JHpRZcFPzIKUQFoHgIhAIqbQwgCi+iEnBFfBKVwCVPhNLF9CykISVZypp9KJTCP"}]},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.2_1578451666025_0.07348195901447041"},"_hasShrinkwrap":false},"0.2.10":{"name":"@midwayjs/fcli-command-core","version":"0.2.10","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.10","deepmerge":"^4.2.2","minimist":"^1.2.0"},"devDependencies":{"midway-bin":"1"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"576b25cb5a599891c3d0dbd5829930edf99a72b2","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.10","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.19.0/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-j3aO0oSg41O95mquMYlWqqtAFkCyYQnDxh8zfX1rY81fgN2BWUoQyDERQAym9F+1Ydqk6dvU21zU7xFpiYvJ+A==","shasum":"0e011e4d658120112fdd1b861297b2e66593ebe3","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.10.tgz","fileCount":43,"unpackedSize":90189,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeIEj2CRA9TVsSAnZWagAAdDQP/iD/lOmKTVYxxgysjTsa\nsdauFekTYHcISP51v9prqLgz+AJxQ+WOfH2SSBsbGCyc4A8Tu9GxrgEKT4WX\n8NhiYob8lu+BMrIjFJVwOKqzzQI3/nmr1d7nBGQDa9jFRdNXIOSxhopCA+Yy\nL/4Yla0ydSB+UU/q1p56BKqUZyef0LXI5/Ywch3W3K6jpyi3UeEi8CBFE+Sb\nBrFcBL6u6fbMEW6oMXT9I579YjLA7O/uhgzuoi45WbfxmbLxb5SjyHItxOQH\n9GYmYnTnjOHv4jOQqI/lgy7b3DZVSuyJuLD4Jzx15EmR4H59U4AKS4G5Tmo/\nGK1ZWRKkm4oVuJ4nIEhfBdi1lpt2Z5gh2+cQfuZq/NuW8W8hP0QoHUGN3zWx\nlrgd3UYBI/PyxWnGkk7F7fM79GLYzAgoPfKkW0zm6IM/GtMbJbx3Rk1pS2gv\nxA17w26jbiiUQDSAQ1G/ofz91eyMJ3DjbfzG77sUvpUduYSfOQ+APRd/vT/+\ncdDMgBw8a3xbFplnNUOOtE3Pmm/bkdpL+AQv07uJarU6+pVU8UTSximTGXq0\n2C6ma58NTWTN5xAG0dN+LsqKVcRpG18EVqIOCCPlHJUUykgI6f+6xM+Rurvn\n9uX+PstffzUpAiiqbuDczWUlnwHJ6H9KN3SXjJ5ylZlI286ifKqJrouY0UKN\n56jA\r\n=F1VH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPPay6GsAAN2wF/4u5d4h7/8YH8kMgH3G6lcZJpX8jOQIhAM71ZNrEJFLDFFQ5CWc0yBzMFnouhqhPGHrabQ2cmeo+"}]},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.10_1579174133660_0.8021862523938625"},"_hasShrinkwrap":false},"0.2.14":{"name":"@midwayjs/fcli-command-core","version":"0.2.14","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.10","deepmerge":"^4.2.2","minimist":"^1.2.0"},"devDependencies":{"midway-bin":"1"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"f8ddb03df989df838bcbbaa6dfdf6d52b1384e89","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.14","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-Zj5KvXbyRmL0s5uqWV4b2U3WNSp8ddzHXZ4LSWC9Te7DBEj82TlAreBUCgp2nDJTnceSVXcVfkun+gQmKq0sRA==","shasum":"64bd8a903259baaa3b13a3687d7e6d114dc6823e","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.14.tgz","fileCount":43,"unpackedSize":90626,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeNaMrCRA9TVsSAnZWagAADKoP/As37KjUVaHMFhZk/8rO\n8AE5bAXsAL5RcNvUF95JoQQhwCLd02QKXiaX2Js057KbLfxLs5NWAsMco8UX\nPxDyjVdXURdmTco9gRcxg6GKbCVPM7IAzI6GvHKWsrwLAT3n+umb1KelbZUV\npbnL2DVkga7Bq+C+jfr0YBE+OunVNR9tWFJdGnMEahh+iRtc5ZD3Kumg0D2O\nzyfdwU/gvpfosX/ZpH3VoaTtbMP7luIBF4yFY3fCCpJJelWvYPJGIjY8xDtS\n1bC3sn+bMonbunHOlUHWD5zsohQzCWmPO6adWMw6dkE1fi27jFedSU53uOuC\n7DDQauXgqMJbUad6XAxy1dAzVnrC0gFBJof8rbTtHvL69tPXmcwHbxufjSYG\nlUmeJI9HyRqooFsrFxUxDndclTDPRry6JR1aMATx5WIv38Wy2nBBMi7RJOtf\ndd3l/6uwB8SsgKiqyRM2LCHv8qAUN52nLH+kPIhQ5xMBtNtgsX0w1eO9EPBA\ntTcs39oH1HyLQIWuNnujZRCXWdHSMUSNBOy+sXM3sksAz0LjoqAdpoyc2WFk\nM6/xTvy428TGR6unYVna53mVYJG9XaiSsKxcqywhBlR3NXU4vNvdlXqHLAli\nqllpP9//d0Vwnyc+4/RVKSJDvMflELkl9O2aMuUiXw5o7/XlRPCYoughK8eP\nJsM7\r\n=+f/N\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5FT34POT89HxzjNLJwGr/VUILb0zXSOnqVlPYXyD+VQIgBKGAaEuDzoQcbQQ5uzdUlsmazUekcgQuigYviPa36uk="}]},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.14_1580573482731_0.7186886798563819"},"_hasShrinkwrap":false},"0.2.20":{"name":"@midwayjs/fcli-command-core","version":"0.2.20","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.20","deepmerge":"^4.2.2","minimist":"^1.2.0"},"devDependencies":{"midway-bin":"1"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"cedcdce30a4e03e271da949e879793596876d31e","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.20","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-sR5lsInCRwoZ4zfqoGaBhjUmirC2qipSnEmDPTirrW+ebpm28LAZvJW+YKOMDwIC4XTen/Dwz2NCjo3/f9V7ow==","shasum":"ff85cec82dab1004e9756570a0ca87ed858f5a09","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.20.tgz","fileCount":43,"unpackedSize":90792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQnqFCRA9TVsSAnZWagAAJAkP/Rfk/XNqqMkcN/JY5zMu\nZuqJYAsIuS67NWxSidJXW/ARrSf24BwtowbszkGQ0Ko+BxSKN3DSINyVkYdS\nCHNc9sYAEEDdurbvaAXrkDBzoG5iUh22YpCp3iXNyo0ku52VsGpSN2Xd1FSA\nAt+AbLBYaBTuqJJzfMLC0aabdwjpiK45RwHLRKYPSSS6301tBNGHYmXg0p99\ngN8ItkPAqp4Nr6rESE43ZmFQedq4Koohrogg38DBH8d3LZkMD3E6pePH7fT/\nItIr3EOld0fiX61dXquLh0mwicEO2gEheYaMOtGjgD1gTYkbyxF2RZyD9uvj\n8l48aEuevSY1RdB9YyD3nBymuTopyGBIzQiRTdCtXZj/pS52g1Rjk+XaGnR1\nWfcfDi1L+e1FKxeXQZHii61gaGqVz8kSD8IrgtpwpyZ9hIc5nSM/CbrowYui\nb1Hzihhl/NQvuEBR3rvpQN1DKhkv4XwqE8z8B1yKyBiN2L/jaYQ4KJvG46tY\nKZHxIcXRwxPpeQ73j6vLS/4FHIkGNYeSXge+l0CnSev5CLqke7y8UHifeX36\nlY6J5SFkM/fVxZbjl8LN56rlVdaPrl2iTUqj95nA5fvUHamzflpUK3c3lbmo\nSCKnYBQqYSaqplb1nZi6GJ/7RXTNXvSPHdyh+85b9snKMDMD0srWWG1TC17c\nH5ah\r\n=VF5s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID+OTUkSj+JGDRitWNZ9tj0+t34VjzUh0qXp3Vi85I50AiANScrGkumlmGF7JT41r4DCt2JlrhZ7Od4mdcT/y7FvVw=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.20_1581415044844_0.9926784092266978"},"_hasShrinkwrap":false},"0.2.22":{"name":"@midwayjs/fcli-command-core","version":"0.2.22","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.20","command-line-usage":"^6.1.0","deepmerge":"^4.2.2","minimist":"^1.2.0"},"devDependencies":{"midway-bin":"1"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"4c4868062c554abb718e29d65ed27faf11eaa9be","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.22","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-kLsAJ8+7Mq/6AQwk3hszNaICPWC1fHpNNf5Aar5jj0gl4sX8NnbztnKCjKzROHf824ldmBhtASIfl1YatcYchw==","shasum":"0d67f7f2726bfe107711d7511063b0048fd3690d","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.22.tgz","fileCount":43,"unpackedSize":96724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSmt5CRA9TVsSAnZWagAAG5QP/2BjZt8UIMCFDj4NuR1Q\nr17q0jtD8JV3F7BavrfDEwK3XK479lVOU9u/nnB6txrHCw4tHmgHBdzW0FgK\nrEDX174fVj8FhHmw0S5iXp+wtq9EEcRoRhgLj1MG6m/4bxNOejJ+8GhV+Co8\ngiEy/Fj9dEcz8aEDKaQj86HJup2sn/mNz7z3dkoRZW47iAeuCyeUHRpzWPC3\nH6TEQMbn4sL0JYXvm17vm38sLsl2MMU4L1mo0/NIepSH21gZ7QdVDy2xpWon\n/wpyiWNcOmFYuY9IdpT4OxKKt/h06w0OTXgJPzRvmyeMDBTcV8anWbMNCAXg\npLLTUKMW0z+/g0O5a4fju8uKbLhHhNgsKmUzL3KP56w16yW75qaboGhIwz6M\njiv332vLix6PozLvd26WlVNLKfn8dILe9bRzUouKIhtJoGIAtj//hYX863Ff\n6aiEaoRgaRBlk2AQpC4cytP0ZIbMMnBlKMZyRyuxDU2gazAcHprR+H53rEJ7\ncA8pZ/309ABgfcAIXqwo5LPQqPRvaujqixp/KJUbNTt7RHQZnBon9e0D6Crx\nMbklSIKnOyvI5rhaLE3ol8pXghWb8dAEX3017Xru7HDMLxXd58m1GCDK6GmC\nmBwPfUwOKIKl0iIOk6x2p2CBlIQI8JazXoR055GVJ7/JPf0tYjvj5MJ+3M+U\n3xSf\r\n=lzKI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICkniGwmLJ7ZHsYgFUzZKccftM11QHTxvI3IFMDfYWswAiAO+DKokIYzw+4IqVeJNjXLc7VrBNL6n7WXWVqafo6Xnw=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.22_1581935480975_0.4666187270694375"},"_hasShrinkwrap":false},"0.2.27":{"name":"@midwayjs/fcli-command-core","version":"0.2.27","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.27","command-line-usage":"^6.1.0","deepmerge":"^4.2.2","minimist":"^1.2.0"},"devDependencies":{"midway-bin":"beta"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"f0c95b3d5e0931c728d02b2832fc5ef54e3226de","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.27","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.20.2/node@v10.15.3+x64 (darwin)","dist":{"integrity":"sha512-oocoQfc73GuNwldo3g/f71zG0UMIkF2ZYbgWqPcf5pZyDPs3yk5LeN8wx695TWoLeZfTGcusvv8cE/7ZIUWtUg==","shasum":"ed7f67284416890995d355f1050156db9fad53a4","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.27.tgz","fileCount":43,"unpackedSize":97086,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeT2hnCRA9TVsSAnZWagAA7egP/1m+1YOL6Pa0ZR2NZSDm\ngs+uT2FDtg8+YbxEh32tx/Tn5bDqxdxGUj9sCRtn7ge0WMKPMiWuJGzDcW7D\nDGiHYlsGb04m0oSPQVOMUbZx1FbTELtqPCDAPxtTmhxy1dojOEuWe9WStXoG\nHoO4u2HHKDMMkVGzsQXzax5PkJkwY1invAHGhpseW2OCkx5qXiLmMfcOQUzr\nfQhYY7FVp2kCxmbTDReXMVHrcoPhxt+k7KgJpzgnKGM81QBOgdDZkDSMVCpR\nQfe1nE+OvDc2x1IpI2O156FfOHAah1t3zB2lTxDP1LFA+Ud7tA9wS2P7xJYy\n4fsRQwmPqcvlaxkb9iAOvdslmYpEbEXId76GOX4ihShbdrdM0f52pqSiDduN\n7FJ6ZVQQfiqhYcNxsfPnbKw0NBCZLeIr1+xliDIGEpnhYaeOyC4q9ulCTkdz\ngCRPaWObQgraakvIiVJfWWgG4yvY3gAFgzgOhwsY9u7eFvksWuC3IL7On6Pu\nZigTivE2gdIv2XK4ADkz5ozUWqJWyAwY6kiCcI3qREiRi/o50/KffXqouDHR\nwYAZo+qjYmkUaUCE56WfZLvTZo0Ojhe9orZAdtPKl4SPTbJLZa2WCVa+HkyI\n/xh3PIB0xThnKcduGGt5fJohJgnRY7r0Zdm7h1qS4Cp1GtxNEhULafpMms7q\nD/cM\r\n=+oHQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDH4N++dL4GdGYcVp7G2Sli0QLqJsdkh/Q8nLnXEBmpCAIgct2/8QCzEQNbePWTFGMmidJCMJ0kr2a45Qg2eVzeh0w="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.27_1582262375115_0.39270445884877536"},"_hasShrinkwrap":false},"0.2.29":{"name":"@midwayjs/fcli-command-core","version":"0.2.29","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.29","command-line-usage":"^6.1.0","deepmerge":"^4.2.2","minimist":"^1.2.0"},"devDependencies":{"midway-bin":"beta"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"495a631959e5d3465886f0382702261c459cbc5f","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.29","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-YoptlI5zlh8GW+Gz4XZnhEcSuszloenxE1XYRAAqCxGFN3jwJQ771pMHfpv5qN7qCNLNNjJeejdJ3tuuZPmQtQ==","shasum":"b0e4dab65fe6d249b9a418334c3e0bb03af002bb","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.29.tgz","fileCount":43,"unpackedSize":97252,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUM8oCRA9TVsSAnZWagAAXtUQAI0G2ZRxjvMKwTjJIHtA\nM/YirD6m1PBI2B8KhT93EDlcJmmnU+/XhhyZOhKQdELXQIG5EWdFu0bZV6x8\nMY4iGloQgMVUWeZPVuH/Lpgc3YcdUWBAwwyyGGpCa+yN8RYYA283OhNFS3eU\nrF4jVoHqMZuBLJ3vcWVNCxGxwtThjPM8F0/Hzh9jowDPd7MrGkejtAUpI/Lg\nU6LhndomxkMIyDcrz+Xz0mR1WyPGXFxm3nY6BSe5kdjLPWsWtpYtEBr+vJq3\nL+MDRNuWmP2tXUzPv/eKgNv+aleHG2SBEBKXaz9dq/Jmx3vu0Eb3wo7/lxM+\nD+OJNg/kcYt2g8lYczzzJduL8FcezQMjYG0TCNvk3USsE89swEtv58s7LRE5\n4XyRBE3uGLUbs80zHe4cplpiBQrStGn37jXTJHei6aZ3R8n8G1WcgAOTX06D\nRmbgpUcflwE8DMTxRGzdFIxSXbk84pmey9qrvGRyVVqsjU87hhiIVHwh0/YN\nMyRZcRQPzvRT9iYHg0ICN1HXxbFklL06ao9qpT6M6X9QgAK+fVE3FLaJH/P4\nxPJJ37bhZ4dnoIDW1Uldyc6B2tkaYcmUIuQm/swTDGV/hIxyIbQK6VVzwoMV\n/6hbpFxY0RMkskaCbzCi1Vr28GOx0pjFLKMIKWIXDVHrdeWBexmF373s8f3w\n1jnL\r\n=T8CT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFY1vmJKTAHCSwqWl2JQxcCy7KiL8rTwS+B+pyKydT8cAiBMfsYUWdhWwV/MNAmuo2QYoWJitccjqEhkSzKs+5G1Kw=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.29_1582354215748_0.7848467355476629"},"_hasShrinkwrap":false},"0.2.33":{"name":"@midwayjs/fcli-command-core","version":"0.2.33","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.29","command-line-usage":"^6.1.0","deepmerge":"^4.2.2","minimist":"^1.2.0"},"devDependencies":{"midway-bin":"beta"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"607a579449eae47c22c5ac3c69b2149207fc1256","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.33","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-Usg/Etbpx8Wv35cUmQDkV3E0vsaVlcOfBu9Bf/c6YKIe+Wwe4ku1DBoHo5a7ap7MyI69fvqrl6VSfJP+N+NBuA==","shasum":"6664ee3ae6743383c7f789ff2319b070d257df16","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.33.tgz","fileCount":43,"unpackedSize":100543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeU2IgCRA9TVsSAnZWagAArwYQAI+vFoUTETx+VCk6kffy\nOHQ/0bJtwre4MJzIKGNoOREmMR6Dr/vMfeKgGF3Bidt70vhI7JUapBvB1YCj\nlIcNN3XSzMu0V5tIH79L/uyUxIhPtTQoULv6IXl+HG3BE9rsKlmoLrGMCN2T\nZ5LiFcQieQByrSlcgwz8QrQupUKKpqmW5zjo7mKljxjpXtebuzYdrPmi1olj\nsG9bBB6/f7Pu/aF0KNB2A6FiHnzyp9ZCeAQ7w02kRapr/218ulOEbFfx4aNs\nQozFwNANoj+PHD0wDsnqya1n/tV94P+SnA9Xi3P4XvQ8FvsjFX1do3nMeRaD\nsYcigGtlcRxLPZlg/P/Q71MhqiOsJDZi3x2m7wCNp/Se8Z43M4EHyTGLmeUS\nbeDUxQauS/zgI9GCxogWLs3NXVh0BAihWLsLVfGdDoMnkEdsT+0+hCVlL8QT\nZr3F+MBI5g/lIIpEQpj/KYuJC5pZBdnzLGxI7wQWnwfbAieoFuMFNeVN9YXa\no5DeQm3OOPNeMopNk8GqJKQXYZl1XLwR9wcHhPjV3UgUguQb13Sunn6iE6pV\npZ4XZ78l3YArNO2t9Ti1qTj2foV9ytTC1CWUUM3RdTWsbFsMqXgusA7gRb7a\nSjGoMvTRQtmxLZGTitOO77b3NBXo2G6gdMVZPcGt0JH88oPkHzMAfM0HHvi3\nT13k\r\n=cHx3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBb7eQiw8yqs0hI4ekiLByZLI6+VPoAk7/WA7eAK9ZaxAiANAP55qVwWDQxqF0VJZ9wQkMe7GnaPm9uOIASLllfitA=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.33_1582522912279_0.16526704260703418"},"_hasShrinkwrap":false},"0.2.34":{"name":"@midwayjs/fcli-command-core","version":"0.2.34","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.34","command-line-usage":"^6.1.0","deepmerge":"^4.2.2","minimist":"^1.2.0"},"devDependencies":{"midway-bin":"beta"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"dadea69d377c8e1ba577f74bc4865248f63ba0c8","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.34","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-Z9cMOmmntcQyle83gN16QRCGkLOIkTNgbwEDWBqF6IRIGPq8+JiyV72niB0+g2nwfg43ir/ch+59FsuEXwPqpg==","shasum":"79c1d6eab09eb3d421f7554a81cf92bec7686a30","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.34.tgz","fileCount":43,"unpackedSize":101709,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVhXVCRA9TVsSAnZWagAA53YP/iia1NTNW1XrpWqPFGnF\n3ia9nszu/u8UAuJFTONY7BDBEqyF+5Fe9M9MJiVQyPnXoL7bPWCEteOS1Aes\nxN3NUYmhpS3zRw/w22J0JwFnhVBYOZq/D9uCKjXd5QuIKykoYek96YUtHSDY\nOtBUT7QtxDa76fjTtqyKHUWFR0HHT63hXVbMvZjDudyBovyJ1lGHH9YCwJoz\ntNQ+MgYPEUuOURG9alm+2Xj1fhW8ujpr6X6gXlTlGZ2vStM8GkRmCtxEEzba\ngYoxyS8qkOFzgNZ7CPF2v0Tbw+HThqmvdsBZkwTDcO+CaP8eV5XD+nRnKLDW\nhaKk9+Nnk5TP7X/IGA1iujgRshF0mH+QWKljair8QxV6cAAacaIqN7Fk9lVU\ng1SSXH9vWyuC0LyMvezfFCwxC5C9mKUS61SPEooKnFX1+d2ocZRMafrnJKmp\nEIIGdk1nxkmsc9I1gtHkMAdOTQwkscEbAIo07MZk7ilBtvatNjuYTpjQ/jRV\nL0bt1p9o6lSpTHM6OaCyVwB8Ttnwi+dfFuZ0n5zrdH90wrXuV1QmAjDR18BI\nJ8Q06Pb3ho4/QXKpMhcH3CUlBTnMHAcf9/meUN9ZpddGgIantpx8uS5nIMjh\nZqKg20fLPr3WeJ/w1ic0tmhbtNmll2a4gnVV9BSa3O2y2uo6P1N5PJ0ynsZ/\nTZ1o\r\n=ruDY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGciOFP5+vsQt9+boB/nPC2acXkKNMUrNHnrFdW0Yy1gIgOzGszRU5qh8NJOFKxIE4rpBGiWh4+8sC3nUoj5KUuts="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.34_1582699989253_0.022584530155301374"},"_hasShrinkwrap":false},"0.2.40":{"name":"@midwayjs/fcli-command-core","version":"0.2.40","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.40","command-line-usage":"^6.1.0","deepmerge":"^4.2.2","minimist":"^1.2.0"},"devDependencies":{"midway-bin":"beta"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"d2e714845a3f855c8d0bfcfaf3ab7c22b6b9dc4c","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.40","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-oLv6jB9dNtLGZjk9k+UppiRqazSZjfbS895XdQ6EiiNBOFgjBsb2LXGFN62Z9sjPLYZRdapLXqNaZ6yKSVW8uQ==","shasum":"552bc2f54eac2459ac669c58d504ecd7b20538bb","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.40.tgz","fileCount":43,"unpackedSize":101875,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXTZxCRA9TVsSAnZWagAAXR0P/ArAfabDKX9Kc0DHND2B\nrQfeM8iNw57MFTBMRRhtB3F8wsuun8X5wr5Z1fcRfLnlC19bvADLuddEKesE\nKC5DtVIXirENVpXIZ1s0ownVsbYQ/fe0di0J/bezJoGpXx6y33ra3ufVr4cX\nHWwdkQ41wGE3CO1X3ZgqlVAnAO7sLNUqjFEQLXTXpBHO1nIpo06IjX93ZIj/\n2YrcngAf2+qNufvGpwNFZldmhD1abBIa25QS3a3sLkHrkeqdCmcu1BmCg4Vg\nEzhOZ+QkIg5J0vvC2PK5r7l+oRoWh/PaJzdje79AoHzZWGkEATMEzgg4w8aj\n46+ySsqRgbOQ/WrIRxWxYMWNg5h+pGyXK805x0ktCAxLSd0iGtS6NFpCMDzd\nHgebBZDt8v0t9wH46HOkhkgJ9icoxlAbXIAwukrMrcCN88JJVJRZpUc+Vh0q\nfGeGDe3RYMWiSdnR2hx8oLPUg+0RvxBkfBdAEtzerCbp9OUSvs1UHSrdRCMr\njYXyySjaABrChbwoZQghUBohL9s0pwPe/nVtAk45iONOnAqsFEkEcbDjLLYM\n/m/+nOksEsshSPVZev+rfKGKVfkhxGDjL+FFIj60f+3rnpW5Ue7R3DzrTKdg\nOVAv7pVe3Cf/tK+Ms/267tQXjgsbuam+ONYq5pofoA52ePGPsH6c+6ZzjS7h\nTen6\r\n=0Qqq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHClxFFDQYIpRMeKW6d0JXANpqc8aE4PoQ5e6jCpOzWPAiAhi7CBj/qY5OH2UayPri8sFSt4hzLa7CsYXcPPxZz94Q=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.40_1583167089170_0.7557482744258812"},"_hasShrinkwrap":false},"0.2.41":{"name":"@midwayjs/fcli-command-core","version":"0.2.41","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.40","command-line-usage":"^6.1.0","deepmerge":"^4.2.2","minimist":"^1.2.0"},"devDependencies":{"midway-bin":"beta"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"6596bae75eef9730a5ea2b5c574f3638edc58eb9","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.41","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-WVGTNkc8pwkrzbWAe/+W04ugI8RDaO/+dFjsVCuqaXqdTg1V1oNtVVUV23WwrByrX3DYUXLEGbo/A5QBx93RYg==","shasum":"86ccdd7387fbc0a130430a7c0f005234b83b20af","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.41.tgz","fileCount":43,"unpackedSize":104809,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYgOkCRA9TVsSAnZWagAAnPgP+gMjZnGtrcWVSDl3tN1q\nYwXDXX3bCLUitJ2EiSzLh+IhWlk1uxalNpawDtCx1yLGVsGTv+pkSEbOk1ch\nYuAbUTpVAzN9Ml8MQJYJR8vyobN+32aD09P7HDaCx3IMyG9fRTusTzAcYknw\n+by1tSplTSi0Z6T/0GOKz7qdhZy32kZv2hNhw1c7NBBqklmDctnzV0LOeCoO\nQUwy1rcAchEVX1DPrzxDK+jCymTf/NYiV2wBAQRikTJwuvT4udAjhsnDGkeP\n1tlC7TuSj2mpCOB/h8+rLCV5lye9MnCckPGhJgHzRnQJ1Nr87N2oEJSkfBMy\n2KSavOZIHBAah4HO1GMASMOl/w1sny10M/griD2LbzjAwWp2QM4mpsf9SeVl\ncbOc1DQq+F7s96gCIsXO/W09p9pXjMtVty5FHAgq2Anth92K7LpZWqTDNIq8\nZBfk6d2DurLsiLDXeLTeRXuuAcTkzp0E2iLtYYxeLgV/5qzatPA2CCKVENnF\nx9WjVd174YW8JjqNntJyuz5GRhyT0PavC10L6I8X6prZ0u0CGXaL7cDci2QV\ncmWvSmEthuZTz697lz4pf1U7ANMH0PfAgHiChLlwmiYdugZYSgawpwxLSq+Z\nUmJ8eU6f+AikIaGkZ/fLULMng3coywWGsIl0B2gJcsUgE1IRaFY3dr+mXy6j\nW6s8\r\n=N8mU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDKUycq2Mjj/eAxQ0943OA9BjDSDguMK2vrAWh7Tnp5IQIhAIKDbZqrya0zTRgFncD5BMLXS/xVHNKMrTP2LrL4HDB2"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.41_1583481764010_0.051365166290333164"},"_hasShrinkwrap":false},"0.2.49":{"name":"@midwayjs/fcli-command-core","version":"0.2.49","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.49","command-line-usage":"^6.1.0","deepmerge":"^4.2.2","minimist":"^1.2.0"},"devDependencies":{"midway-bin":"^2.0.0"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"83ea5b31a2ed39a7ef1e648c1dbb1f859eaa11cd","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.49","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-THNea8rN8DMqMecJD+IAJhuabcvbOoUJ1ewhv98GKjfb7+a/VAv0Nph7XsQiNUCMonW/s5YTTbKFjDW9w6YVaw==","shasum":"ff64cefa88354cb74a3412e23ec7c22910bd79ad","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.49.tgz","fileCount":43,"unpackedSize":104977,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJebE5iCRA9TVsSAnZWagAAcRMP/3Mu3/9CZleanpYmS3B4\niPnXypwP0p8lfAeUp0jMZCPuvE2Mk+WfpO0ar9UHZ4+RvrGhsy5qVzy7akzT\nTBbRBQntkq98c7Smm+BYD77rzoWrtZKjn3t/cpGG08Vfr3UBa7KT5eGebVSK\nJ4KCAJDq6/MX9MYuGDb57Yn6c4Ce8Ze+6I7b1q/ICnppO7nqRX9U4IEpMkzS\nNu9Sj6WXN/MFfFsNVJ+PcZeNY0r3em5O9PFM7YJFC9JJ0mLuXwFi8QWF9v/Y\nUHNP5p7Dc294UB4NDZYEnOHZ+uUTaQnrzOlHrR5W4j0eUv+La5MdxdaGyfnq\n4QndmeBO+2sbXHexBgiSWNV5p5+ynpIHrblIr4UWJZ2FKkCLehq4Rlz/li5q\nRw5cmy2kybA986jFJOn8c3//wfSDx96AyLKwT5PWHgQpkAUuV+v5GLa++UCE\n2ypLbOjOREwzjSdG43p1Z19M7+qe5hZFxWBQXmnXuDKRkQLxr6G0jegsV4OV\nxdrdp3Z7FBgpd+2BYCzE7UoiyWGy12XqUn3o8xIupefr1B9LNCdIX4tSkbmu\n1nT0uvzBZm4FdYLp7Y8HYJ7WISVyJNnSdzhong9Mtw/Y/iJsVNBkhh4wJP2b\nefbAW4/95pjB+gCUjTG6cUiVSBfwjJuVHQidDuAOgSZvE6LZS6pSiZT9TkH8\n0X9T\r\n=zYd+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeRQrmxCIKJr9TsWqdXk+ZLAGe1eYuYSMuguxurELnvQIhAN5QMDot8SGA6hz6SiAxnGWUtsNddFLV1SPFe9k6kmVH"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.49_1584156258164_0.3558295626414085"},"_hasShrinkwrap":false},"0.2.50":{"name":"@midwayjs/fcli-command-core","version":"0.2.50","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.49","command-line-usage":"^6.1.0","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"24de9d94e5a1ef962362a0b6c7e6c434142fbe36","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.50","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-TFCixrIPz2ScE1fwMGdmRZWN+KWH3Bkn0PC7cHle4H6ERZdhDbdbfX5IFucb7uOpxyV/Wi0tKQXfyXlYYfJ92Q==","shasum":"606c92ea0ef65ffb3aa526491c5d7fcefd147fa8","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.50.tgz","fileCount":37,"unpackedSize":104290,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecH36CRA9TVsSAnZWagAAoFMP/3ZAAv7uAdYwI/ZcJoTq\nuFQr/euAYeIfXz5KeUiicSRXdMfwu9H8GVl6sk78W3hvBBVQmIshcKKlVJFH\nmA39fIuvTTaVXtZgHzIfhUxFFRoxuyeSyPSvpHnwfVtc7y0hdiUMTUGdIVLh\nRp9Md0begqkCZAfUUqfLUc37+KBRWtAiqOOBpGwG/JCVhJQnO2XQ2cZVMP98\n631jSp6NG0smEcqmOfvgw+9kSiQ+fXjz9QA9/9L1ETCee0hhcu9xESzKLWtz\nNLgnZ+1pZ9xzBqiZxwRryT8lq7Qa5R7qGUQkjFo3VTNpM3fqb+gDtB+XTo2+\nTCeswg7lRDTPSEipPpmvFQSkg1DQeUK9I+xTZr3Q47XODUVw93Ht56RpVkkG\nycK0ZAXVC5Bku2m5pK40Uu89b2f9UaE3931/L9EfUwavEPdBsMkvhGcE3Ou+\nU6ZejISktg5hd4lqCFqBKzyJpiCRtzfNLo/QDQWHxCg5Ez790LBx2vWBFLRg\n/oHrWho15YrX7313ztKuetEYqPmuP9A7ePXuTNxnXVryODEkvcd7Xan46EpQ\nkzYzOWL5dwVw6T2lf74vBlI+skbU4dnUQiT35TOCJDXBk9E73bT9Qj8I+iEK\nYlHm3ICFerqT82yLG3CWHOJbEq5Aw7qfB/kHbJ2QHxPhh2pgfZBqhZR5+sG8\n3SVO\r\n=NzJM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC1AWfhU5ZxhU93DM3MjgpXOsFomXM3fGOK4I9OAJSQlAiAOfMHWInlKm9SNnnWhADn5jJYR7iMA4LV0A4VO4PaRIA=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.50_1584430585508_0.7727526464313965"},"_hasShrinkwrap":false},"0.2.51":{"name":"@midwayjs/fcli-command-core","version":"0.2.51","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.49","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"7a80cecaf6df4425f71e671658487f0b54e4b07c","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.51","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-JugMw9DFYs8vnOhoL0Q7GPoief5cPdsPZmNnUSFLLna2R8IFpNJFWSos9lzh1jL27Cs7XP4YENqhnX/lLju9GQ==","shasum":"9b1f135c94a6423f9fbf68307e206c82812a165e","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.51.tgz","fileCount":40,"unpackedSize":108846,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecKsPCRA9TVsSAnZWagAAjLcQAIhcm4f0E+K5KOeV7DGm\n1oa2WxOEx5kn7B7moSXrv7IWjBnk+z1cRxWI9wLDgE6f6uFUVD5/8ulWbkZp\n1gYXwSqepLpU2nslYbHatn+dTppjweneb8rfQ95s+BeNz/qUAIH12jIzbg2p\ndlK+ND+PimGHbU+Tl8V9cb+lrnujXHjMEOb8SmzUcFWGx8F8crtg1ZQIPM4x\n2KLjEyYtBkugzDKqIc5mNfI9tYqfVXxjcynGkLzFFC4SLujQOIMoPABJUdKW\nWvaDR3L5mf7MYkOYGfLB+CqSCv2IYyzeCaKoJnGG1ttDFztURtRe98adibJQ\nAb7V7QwBgJCIXNrT44Tunz7GLfG6OC7cIVavqTv/eOuev0Ws2itOEMEplf/X\nvSPt4nOjafi5WHwOg0+YvBB/q/JdrHbvz83yikvSjzZ2FfYMIZB9Gv/FUfNy\nzgSLOUsp5rr3FwhZ+7hsBxlesq4hHcPj0wI2+hdi/DC5cPiBnT/oLhhgkqhw\nBFPQ+UCmD7VKQWxFxbEPMh1JPhlENFiISMODc3kw59HKIvF+2NXr/iASIVD4\nzvzNr7Hcc4NW2mEh7AOYnCT6hv/AWRHEav42dCfDqSWcrZeTYNWHwWX1AW/d\nrY8zONrxhFUYCogKME/IOui1iwCpE5lztHbJXr8kr8iq4XJ6OH2PrdD/m9lL\ndcU2\r\n=o3GA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICdgaRKv6YWuJrinFCxYvL5iTO9M9ZfLjwZ+Ql9p6MaOAiEAx9MFK8xzYY7kvxL9GKuGM5jOtp4jIoZoB3qjROoTEgQ="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.51_1584442127548_0.3969953527843799"},"_hasShrinkwrap":false},"0.2.54":{"name":"@midwayjs/fcli-command-core","version":"0.2.54","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.49","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"d49d2cd2651d0232e150a9cad577e526bb53b5a2","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.54","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-5WXVLXiFeQMJ8OFWkFRc7IYTfbiTILzZLoQohjgYauf+txlSlYeBQxf6ZxwvSEp08c1JysNselaGtYQXHv18DA==","shasum":"8ce50d65c9838c3cc68eedf7fdb2cc545f9474f5","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.54.tgz","fileCount":40,"unpackedSize":109152,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecy6bCRA9TVsSAnZWagAA+LEP/1YPDoSeVmccv0PSazam\njGYGO5r+yiqiwb80m779dOQV/tQjj/IHTavsIFaQ/cJjtfqFNnZWjj7whfoa\n8FUScuDxVFEo0Dn/l28LI11M97rNqStAiqFPoNIc60GGV2zCvFbt0EP3HjvI\nSID6e7I19C/BfJmip6+aq/Qv+k/CRIKiAVtEbo5WAEFjoE0ytugpYk9Q9ka4\nByuOkMZLZ5PX4Yulrwi/bQqB+sOIjO5TJXQEef8yNT6QD/13YILdEhOeRBDy\nEAJeQ/OblFZ9+V6VKdk0FkZ/54LF14yYNNrmNfmxXjJhtXJFkOLkORbffzPT\nLYt5uZVE5IPpHNvnAWWo8s50Uhjx9FLnhX7WRu4n+VMGhn+F3Y3eRY1+Kvjv\ngQD6eEIa+J/fqs6CWDMyweLmYFarzqnyr4SnFdOpSmBNBcs2r10zg7OSowlw\nmT2sX2b8EHB9+a8Gdi131ZVLaP6TquXDTSLfTGGevLxR9znO0jwJLzSzHOTZ\nCrWrqsxp3F3KxcDaS+EXI7nuTI5j8Vb+e989YQxnOf27u+wSwJqsTPOBNWMY\nugrmDhTn5q3BRd3sdvvvFq35zY7QPT2WeKFIVaQLSVtQHbjzQ4PF2O63Qylt\n5kdW07oT0kl2Sv4Ggdc/v9UIRwyg3w5BGrfi1NKPsee8Sa1QQUKfXYJ/vT8X\neqGV\r\n=AEW9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDm95JVDhQMrEhQ/3sqjo4uwZSZYwnZIZm+wDawoO8JCwIhAKkd8XxNoYfmssLO1sHzNFl0ZMj6pbo2NoG9W84W+EO1"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.54_1584606875029_0.06341288922715438"},"_hasShrinkwrap":false},"0.2.55":{"name":"@midwayjs/fcli-command-core","version":"0.2.55","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.55","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"ff1bc1676193a2247dba5dea5bd69a0446f23ee4","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.55","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-DJ8BM8XfeD3Mg9bWQqMKZ3mddP+HxARqu/Y2esIJi2r3C0N5pf0KJrmjoSc7VSXUl+BuZ+uFc/nEsKO8ZXVcwQ==","shasum":"561e59b8d6cd5732fc96cf9fe96f39ba530d6fb6","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.55.tgz","fileCount":40,"unpackedSize":109358,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedHUnCRA9TVsSAnZWagAABbIP/iO84bX4bDZ7wbQz3qff\nBAFAiT2xGvhqBO8c18fdfX4F0JtTZTwmSEx2dQi3R0DT92qRl+l9Z87I/D5g\nxu+QNtBrCDFtQGxk45olI9kReUZJCjGD+WioOLfh8+hw2A7diYiczpK7ePG/\n47QNYJa1gGIoF4tyvPiRGsP8MnAClYZonN+uOMntHfhhdIYFXhUzGiAKe3ij\nifl8N5pvQ+JG6dZQQaBAPE5mzvQ5+0s5TPuMEilwbx3v2939pXlVAIMCJ0vm\nCb81zSWERgAH7LY49hXEjJ1ds7oZWGry/YKa4RsEBkJrAapcHre2n8l+2YjS\nGYTsREgDzb03M3Pp9l9q1dEKxt0osh1r5mSUjIMOfalPP8XPn44GO9dluB5H\ntaeLKOWsHEVbHKPULDTF57reD3hJ6sT0mSwEeQUiq7GO7nPUOD/Y/povLUDA\nLD5s86Bb8eYFT3YPJ30Z/gFh5iItH5O8AzruNkmouqcXy34KgxYm6CaCk7/7\nZBOHtPkxC57l6bDdhkqWvr+5NMHXLSchBV1uzL2rbTIu+CsKqcQGynhHW7NX\noDVT4lWt0DNMHq9UTMgyu6k2afPRFp3X2A+AryKWr1v+kiNzpkfgdPfL1XFx\naWEw3mXIuSrNWzrarDXXlxaKNQq5ng42bXxrlcIRPQona0YVGulkNJsBiZUr\n+Dbe\r\n=5fkq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICdvwQDn4tRWXLJ7/wiyY24Y+KmWXmho42+CA7Ix4gIzAiAENeIU/5gOXA72p0fz2iuqn8N3T/OaudqLcg8q6rRt0g=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.55_1584690471457_0.09359863303939253"},"_hasShrinkwrap":false},"0.2.57":{"name":"@midwayjs/fcli-command-core","version":"0.2.57","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.55","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"435987078a835887f0e430e788c4f68ae77aa6cd","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.57","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-Pn2XUgnZNe6clOE//SoqIiQX9sPEvr79fBqcf1XynSbcFPhHE2jwE8I9bqCsfWTlomps4XfDPTAwACVOJsfp/g==","shasum":"9740bbfede7d61788550a60c19126725eecff166","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.57.tgz","fileCount":43,"unpackedSize":122859,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefc5gCRA9TVsSAnZWagAAGwQP+QEgaXGaxkszOa+4C47g\n33iA/vzSnxNAcl1Yq+0bN7uuTKTlUBKzNg2aT4BIdaSkVkXdV4bbQeMVIJh2\ns8+QAD7sQJtIbgvL+Syyiwb/rGSK3UHlNp031ngTMyBlaE3L2tJ2gOdm2pqf\nz2Poz4dPfW+DiF9vOTNSimJWnQHGiTH6dB6QolpH+fmL5e/UyMnRKAHD9hOB\n1GypaX6kBPDC+X23mxJGGDB9m/Ah0O74qqnakwu/h/a8RZZdXQP7e+wJdg0p\n7kIQG2uzlhdYqbDJEpPu2E06l3KZvNWzQ2LfFlh4skas3Dm3PDY14vj0zGFe\nFIbnrmjuf8C99GxNQS9BLu3Cf+4ICdiEWL82xTX97p+cETm/DPfkyh/ZjUzQ\nhIJpF/c0mHZBXdx9u2d1n7jOjHgoDKIwxM18AQDIfAwq7sQGaNs45RJWxJZO\nik8xl8ihW40V6u1aInbY7I5TD6GvqHIF9mKgxh7EwiPHPn7FOhyCaAfXE9H0\n05oeyMjk4326OJbXZNS8ceFuyw2OS+fmUCm0luYrjtu5/D1gl1K/F7MPRGA/\n6l0Iw8Q+uQgcDpwdLUJWHQD5DDzmuF9clRSWhLiC2pOFZquJ1puly5VLg4By\nPFSS3eA4obsRqkwEwL0BHSq9z5JU9H1Zx0x6ffGGhJGGAKzQvA/apxSAWOLs\nwC1n\r\n=tl2z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyg4kxDo89zTFyWmOK77rybYYr3KlqxnlRu+hDr3gZQAIgZvBWDLy6upnbwFRSUWG7aWP7Ssnoz9t+fwPTud9JTBI="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.57_1585303136224_0.06897636662621687"},"_hasShrinkwrap":false},"0.2.58":{"name":"@midwayjs/fcli-command-core","version":"0.2.58","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.55","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"dbe4e55ed5850a93fc23a264628fc033d6f52ac9","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.58","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-ISWVTG9QziNERL1kDi53cJWtAhJdVt8A6qYoPPBqQKckOhnmFY0ONg5P0FqirDcsWm3N3gm7fPGpLYksOBPdrg==","shasum":"b7e26fbfc78576ad976a6f70a83f7cd6abe8e97b","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.58.tgz","fileCount":43,"unpackedSize":124435,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJegWGwCRA9TVsSAnZWagAAcpAQAI/9RKNuYwiZB20zI/HO\nMK7vqqcERf7fOD4gwXDWK52zvplkeSkKr0tFapnxPj61Ee8y4Jtdqx991xUq\n6RkYRLkPgAg3vcLVe4mjB6WeBId0N1Qo0e0y3vngDa10ou1ieH3Yfyh0f95U\nfSjyXvmLArhxcqmr82xIkQUEYS9q2twp0XwuNhvTRYijckQ4OeW2PSTkyPoy\nn08z+KzN0tibH2Kma03mXpLCJKhMhdvf3mZAd5xNm8mw/GhMo/4FftRe+vVC\n7Q6JP2rD6i8XnufawPzBMdFND636Eb1d8gQuU+GSo1CHKJCkServMwiJnV7x\nA7F/FjN/lP90/8fpKC/fRB3emAXeKAT+gMJabiOKUn34/a7l/EcMwv7u4RHw\nacE2l7LfbBbypTjv7cL1Zr099yiTqrKPWgy4eru/049h8BqtBv9uMnk0Ptj9\nUEmNTtE5TUKlIPBXi+ojRsezUeSfSabmKc8XbUKB23INg3uPNmREvsAI0DAJ\nG1AxIo2+yjvTBOFHR5L6MaE6eojkaMbm1ku9aM14plAkjU7frObTTwnapWBu\nuL/G8TEXzozeAMrxAcXb4ORgPs/dpSRizt4usT1YbbgtFo+Bces9BTRwS4sZ\ndHSPn3k1iHZRg6vdcI7kzdIyQBTZJqrSyCwg7dxzhrqAkufEMOthkERFu3VC\n0fdO\r\n=pKoa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIADyWKUMsRF4KVkO0UyXfHmUKI4dm52zVlEDYwS3E1GXAiEAm37n9UnYmT1hNfDUp8i32y0EWHfWFvr0fRWZf9RqgDI="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.58_1585537455786_0.34843864380575473"},"_hasShrinkwrap":false},"0.2.59":{"name":"@midwayjs/fcli-command-core","version":"0.2.59","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.59","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"f3cc94f1ba77906657aada691db4e23fddac5e99","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.59","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-StSWKXDv+SA9lhd7LpisB6eTKRY2PAuUwgEPl6/lazyrw0Pk1OKqDWgn6dsHsalMoaI5BOy5Q7emrPItB4cRmg==","shasum":"733d69b14d8abea3f838232c2b0c445310f76cff","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.59.tgz","fileCount":43,"unpackedSize":124601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJegei/CRA9TVsSAnZWagAA9icP/3ZmR/H8u7IDwIwDag/a\nuYAcWHxknDvEhmHCiakbB+Lh9lJld2wXRwArDObQrZ9vUKbvNy+/W2F5EFuT\ncqNnl935fxI0F9vzuG7Hk4I8p1IzCwvy/f1GTIhBXHLGs89+EQWWET3BwScm\nXYVXxh1wZ89Ae/yrl5FF+/3N3tAOtHbLobaCfC2HrvcRvUX6drU4J4coMg2f\nNRPFKGKHoNDBC6qUJ3jl7FlSMJivDffqRKHD/9boaqL7CioT+MDLZEwNwiuw\nKBKsowibE/z3yWRCVlYR9rk/7cvZNSg4RqTkRaa6rjoqW8N2wfGsukLL3Z2j\nf1bSy5Iy1wRBTocC+m/jZnIEj6vK8z++wztWnkAE6aCUERIgg/ksTCSSjcue\nqNVxtDvJ9yToRm8dnKIXzhspiWim5IMQz2akf9BvparXkiQ8LRcDI6VbHstG\nUczbncP6BePRwclDTqWtLUsC08DWK0uXkTyyoj2yye1yoIvF/HNNcaB5QG3e\nQM1UXsgdY//MFvjHYfhf0BewnRbEM1iKHYOgpfPRKBKEZLuB0cJjCxphBYta\nZJhjpDkZerS3zjCaUQPCqMwYXS6jDKn1sRkjKyN0FmqgHKHvoQA6nfYC8GqB\n8nccIPQNg71UyegSELV7YGntqcwpZS6sP0BG3xSb9bfYtlhGw7IbMoGR5hfD\ny5HB\r\n=ASqu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB5VjgVn8KS7YfUFSsFS7DRJEQKDjITUmLl0OVLFHamxAiAo/yEZCx0O7U68NHZM2k7fm4eaMEFPZt2ABkjtuOUhwg=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.59_1585572031486_0.6035657412421798"},"_hasShrinkwrap":false},"0.2.61":{"name":"@midwayjs/fcli-command-core","version":"0.2.61","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.61","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"8565eef25285f5d2bd4e3d002777a46c2dd2499f","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.61","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-/9T/+pFvllCSzUgIuPEANME/CKqcs58114su89jiSIZcsVnux6bePPL7WMEfN+uultsTOWX6TxlyqHTi4HDHbg==","shasum":"5251d477cd4b03c0396a69c0a200b4e26c3f2c18","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.61.tgz","fileCount":43,"unpackedSize":126780,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJegxHDCRA9TVsSAnZWagAAbYwQAJqzRZnpq49zVb7NLIaD\n2y+XQunpgIvu7Fb8SyXYZynZB1s94r2A1ClQvaW00uVtyIiiWBTs4w85D+KN\nsXsOQx+9xC8OLxrmj3cf7hLoAuJFmYAaFONbZi63CwuTEjVrwo9C6WPO2O1d\n556hJXFi0bD+AOyLx0pqBAJBlx3DznXfWDAGBOSiQ2Uih0iAKgZpE95U6t0w\nbjc21y5NeGxMw9Ge65tkVCbY8hGgfGcW7ySEjigqxlOrEbWHqTGRB9a0zdyQ\nUXdr+CQp7cvnatDX0ZjLBjyir36elmVgpxtdxJwnF96vfcELB3Jl6qyvVBW/\nosiAhpYmqvNFUx+nv2rL4Dj3WU2FjnRnGB4szZqFpwlTt5I1nn6eXBG5lXAU\njArIaMExIYiV7LcwMLHKkpAngtS4xg6+2AU1fCU0fFXpOUFJ9P7gDN5k9Ycm\nUjxs8WEk5LEa74QdfsHIG1P7Q64AjbAGBrw0HBbGA4S/wW8STbcB3Sb66+dU\nc1LqXqqYxdhtSW8ldQ0ogsJWGSl7SRZiu78/Mve2k0v1V5BFGBghmA/o3RSh\n9go+VV1iwQCbpJkMQf0phKYL0FXKPsfekGGqcHh770sRaKG4LIN6OoM3FzU2\nfIQHCmJS47Fokqe2Jci1bpcR23DMA3/EB/af6xOzCo7t8XLlKHcSyGjlBYUJ\nnMG+\r\n=8xfy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFOw+GHSAdv8ly5jw1xJJ2Fwmd9hbfz04w840HXqDlY7AiAaRGaSmsylwxEFb1ggbPzO3KZATlArEmSoXOalKBBodg=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.61_1585648066928_0.7872421903492182"},"_hasShrinkwrap":false},"0.2.62":{"name":"@midwayjs/fcli-command-core","version":"0.2.62","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.62","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"eb216d97fe20fcad0125bc6f3a11144fca8ca07d","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.62","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-DsV/bOHH7rlK5ZHmv2dGK9dLyJfhbsd1eoLswazQUA81Ac7zOi9RQLUsTKTDRz2ZvNc4Mor2MyLWAzKyKEWV3A==","shasum":"b04b71878e730fabd1c650b68121107c1b3fe90f","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.62.tgz","fileCount":43,"unpackedSize":127705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehtAeCRA9TVsSAnZWagAA65QP/09Cl0bzgGH6venKyyVJ\nkdXS8TsxsfP/yeRRn8EGSsmGQUQsguXq9VBw9ToItbFSJITpWU319/GLt2AB\nquGeydqlusrYmWCvY5x3Y17HPtlb7wO3i45ckWTW3kmreoE6L/E68nrQquxp\n9HTrUAviP1wpuUP5mnp9M2ViDPDlQM7C2Q4WUCeUCslf+3g2l6nvt1H5pMIA\nXLtOzCQ+jxUbJh/PmIhvdoxCoONN9exSz4hmIirNdoz03ej2TA/RdJZkavq7\n6c9cxc/VgQjN+eYcRKbiGEOWEbhFRncy9w+M7Vt84JMAvMr++gSNmabKrCPb\n4EQtieqb/2qQAK4lx2Mh+Ji6PgnPFVQQLS24FDFD3RdsgEYwq3nMJWuisoj6\nmNzMnP4XR68we94leC7M6owi0z31L8xKBErdGen6ZtqubbJOUvFchwCnFhb8\nAA9z8s5YMTYouaVsP6u1iQk7L4Zg9NOf53f00aCQICIBvu2VpmaCKfxyZ0/S\nUCJisOAuM4RkturU6WG2/So24Cf3KS4IqhNcQf5R0KURjSJ/wRr5JNLwKfKI\nr/jJ6su6qvl8yF7WOX5BjhSL662v+hJHPHNsxveBWhtsBMv6vy0J8CTGpUV/\ngjZVN2i66mKNi7POkuPLP/x2C/1a2YeDRxtY05oX6xAgAjDb3Px2oSsNRSbm\n7bes\r\n=/1L5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFk5whFOno9UchkXL8RiHwrcnjCPcFpFE11aQeLjpJjrAiAgkopDoOV5eShBFHncqW7+b6PI/lvaB9OGbjHJnE6XvQ=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.62_1585893406119_0.3436018258932847"},"_hasShrinkwrap":false},"0.2.63":{"name":"@midwayjs/fcli-command-core","version":"0.2.63","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.63","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"110284f89176723158fbbd6616bedb9fddfeb8a3","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.63","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-8IUJbRdGVMJepa51dRaYEkRrTmWoO2zwu9n97m/Err0uMT81/+Ysn+ujz0GnKDKPk/3H8ZREJHZ1wRQCwji83w==","shasum":"5cd04ed0d7c25dbc389ea473f30d11b34ab2ed2a","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.63.tgz","fileCount":43,"unpackedSize":126878,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehwOcCRA9TVsSAnZWagAADEsP/RoEwQ4bMy1Ttl2PLpWN\no4+4V/OHvbrjH07eApe8nrPn6CONNQ/woeaoAmjynK3C0Nm5luV3z1okGHGx\nheyez613OcyE2bKBli0/O/MtBU99UVhv0/nzhjuFwQX+bEeSBw+vA+bB6fJF\nOOYzfJejuimfQSPdAjVgwu0/WYSVlKf9uXGT3VNWjYZS0Rr6YFADc331DfFv\nenWJcxKMor5gUu1HLUNFZJbWhJZ42ZYD87Y0gyneWXbeEvrO0JSWYXJKI7mY\nXckxhXmLs2Topb/gSM87KvoFEr16IUqe3IzSspsFpgHXrSNFAN5kIvCjtWJi\n99JuM+J6QH6Q0KgLYGmomqGNXU/IygKSHle+halGDHeqsDY1A1RcHGjShWw7\n5rURV3K4twVZ3CiTe8uADWICYKYV+LEz2kHCmhG2Qh6sT+la4/xL1WOsXZYk\nMBQn/DuTRt18tglq98/jZydRD9WgEeXVIpHjgPEzqFFW7Ep+uB/YcTeAIz9S\naiU7hLsHgGJwz+U+S/slkoRmgKw0KW4efWqze59BUm6UndjCWmvx0oPYX4Bj\nHskJNYH+sagjDefCvFI3rOZXOIWXE9eoarTokozjQe3DH4Gg6kjOKE0yxkvg\n41YRthJ+EV9I2QwSKgBGtGPdmHW7pRxjP0RosLDf2fYB6FMtvY8dNw4xhCu8\n58Tx\r\n=CRdT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDktaR7cdmst0J9ejYXSuLR0bIoNGSn+PAH/OhvKHAk4AIhAPMPXaeWCipl0lIb7dWfefOEzlVern14UAYLz9T6nRMS"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.63_1585906588346_0.052587058020707955"},"_hasShrinkwrap":false},"0.2.64":{"name":"@midwayjs/fcli-command-core","version":"0.2.64","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.64","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"f0a141df4b733ed6eb0c891f402959955531b0f6","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.64","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-xrHxcSb/5CdpZ9mHZ9VlXQo+qwHXdkYOZj7eqh3XbEopaXpPFI4W3lAcXcMi1VmKgXiyD9kbbNcQAyF1CQ8J9Q==","shasum":"c8d0f950b2c04cf2c86841b0b6e9b3d5587efe8a","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.64.tgz","fileCount":43,"unpackedSize":127044,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeiW5gCRA9TVsSAnZWagAAviMQAIRIz/WqAY2wb4oHjuCY\nSuHhViCHCpQfy30OGG5zyFtD7Xpcvwl6jvRep/XnAKYsTGET/2juh556GTdV\nYXX+xxrfyTpUjT/hEwR0GWTNjmSlkClrQe01lgCUM6iVnKF6KbFQVtXafsGh\nUZuRQ2K8sDU17Z1d/47fj5IldWLfxiJPabHuP6aoPuJPJ+Q6LWfbW0+uZmmh\nbx4kkayxyeJMaqQ8cTYvd0jGYMFICxIJ67aT+UAj+i/Xn86kCf2NMFAL9EqQ\nSFsZxA0QhXai2fWYyiJtoW4uvKR1PYBvI1P9yJm0q9zm90lJc9hBl86GwT8V\nvGvUoulT4pI+z3OK+UpbJEY8ktNcStGUdcJNM9jp9SzOf7orPKb7KY/HyKC6\nnTYLqTDV5ohSX8n08C/xrqx0kkVjboUQzhzQnV+XyY4hika+AY/rDvFYNoK7\n1aFuQykcxk4XT1c9487QBCj6vMxpGUlJWQTTOOnu5v8B/6OJsCG74ONVq+YS\nztt9V2WDvHageQyeMbbSsbj4OSoTzwLs4Yiiwys1iTk3rx0NmoXWfkcvQfcC\nC4tVX0uNOomo3Q/hQJGp+hgwwZlCGyU8kl/zJEgHuRIVNreUcz8WD/xW5AUc\nTJlRI4zJ2unduVzEC9+v2hfA1LoCDuIxWiuhAfTL02uVv1XDeoL6EgI8TaVd\nb511\r\n=btt/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcTy4QryfHebhDkFUZSeVfKRyfEBWoWNTN/8V+aT8KZwIhANzLXEkYZo7u/zxp0QP41MOtKwre3I2ayB2zzGnoUnfo"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.64_1586064991687_0.8104510605227782"},"_hasShrinkwrap":false},"0.2.65":{"name":"@midwayjs/fcli-command-core","version":"0.2.65","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.65","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"d4870a9bb55faf91fa571c1cac00f599c7295728","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.65","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-lAAcQ53vt5AXbycIzdw3/C9ZIXf9wbkYG0r494aZt3jVSGWBKjmiIAdwyjMadZt1U8pwp1VY8w9EHR3mSPLK0w==","shasum":"64d7ecdea793a28c30318c01583abf4d2c17c9b4","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.65.tgz","fileCount":43,"unpackedSize":127987,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeiXvXCRA9TVsSAnZWagAAAVgQAIT/nUtqWvJiDiStz1vA\nkEIt34ozag3XT7sNyb+wDtrEGyqVGP0gQE0Z6hnRArq+HHTuHXW9O7oT/p7G\nof9vYuIqEb0EASocf83B49tWbuIK6JQVGujOD1Mo+FuuIohGBovSz4vnNK//\nbefGi2VOeyFjuGoOkcUQ2P04LGgb3qhLw/TYHObOKAV0tfZ3+Cos7O6iBNAt\n0xsg9/eCmzNtdpsFobDM2kWVa3tDf9nIuVWtTnl50yaqsQP5KAa5t8iMg6Yp\nHHKzGV4NAwgqc208AlFqBH8S5/L7tBH13uSqUS5hy3KbUXsLsCQHfDllKyCf\nBlE9aiXjJ/If7cr1ylgzbJs6V0Vn/Wl234FISZBu1yoDnxyRxxMwlQEKQkej\ndSJNgX4zjwbFRjNvJx36aHdw3QFOV2ARzcsEZrq3hmyGyHKWwI6LLpmsky+Y\n7z9m5U3i3WZD31Ns9KQdLlwtav7n7gqn1FMB0zWKD4yINdfBXTgv77i6MogB\nYW5yL4CzKlAEBr2hXMQuS0XtZyLydRXo8Ahg/Za5cBnvzB8rn/LP/N/XvKwl\nF4HcOmM2QrAa3WFdn1wMd95SaJL6SHLYp2pg+OLzG5/OC8hqShz+HQ4EN4TN\niVTwQpudRp4mxysCKPzFvqNXNAF9m8u2Sau7OjfEs4ZJYo6aDxE971L/pYzc\nFmT6\r\n=2/8F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID5QoKd+9UilMuh5elipT/1f0kkqDOdA0O/mhXkU4TlnAiEA97tZ3c0DRoZ7zYe6Je/qY7eNxTYcsHZDq2Kn/HtHYt4="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.65_1586068439043_0.9628736927890471"},"_hasShrinkwrap":false},"0.2.66":{"name":"@midwayjs/fcli-command-core","version":"0.2.66","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.66","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"0be5f15b2aa1536cefa51acc42e9e2170da78f98","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.66","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-Xm+l+C/kqynMpvb3NAiYF2IiX8Q9CCTJ0vjPuvB3x6kzAF9mIhFCeM4CANrKMto0BDVAufWrlcQ0AVs4ohvYUA==","shasum":"ba5b8e71f92f94145a4e0fba469fef5399ad25ba","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.66.tgz","fileCount":43,"unpackedSize":129610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeiw2KCRA9TVsSAnZWagAA/VkQAIDA7dSuo6THob2Om0rV\nrrL1RZ0o5ETSI7Zj0LVG/Uu6dvYnDlG/LQ/yyK2BPgqYi6QPrgwxtr8guZ0M\nwdVP2FI6BAGCD9Pokybd0cKb7uBF8uJlRpbz3jvZvYI8wPIdfJOPvj5amugM\nSIntglzQ1SJ4mweK1gId3MZWuMSstmSiZn1aO5Su8uQd+VVjP3BlSB7KSmF0\nXqrdE7mRD+2OnWfg7pPDhb5aYHg3X14jqXZhVGYMr3R1m+8MyIAAYfo/wJey\nltq1cBMXj46N10rW7xze9G6yPwLGoShWQWHJPHlpO3z9Kq7Dc1tJfxoqHOqB\nRfySHNPjz6mY+UqFEyMeJNmkLCvfjEP5INkSHcPvGeM4241IpElGG0aedrt2\nShmj3JGisd0HGgrQJeKX73QyHCprSyitU6MQzSMa0dauvv/tQmZoZ3ihYj2H\nKKQCi+/RRjsr2P5TlAQNKxegox0unmQaIuIqws1fHAo3/4jGFLfbvdYBpQFu\noZZ2eExxe+pzSOJqiUZnsW56Xjt9gOpfs1sBRcDWVh9cBmEd82b8kgAljv1U\nWRBitFIBZ7M1oNHCA9/cLTbiFIdmubco2o/tsuyXmOoww1a4J9iyJTAIBZyG\nOClPLHusGWok+fDlssonTxkUS7qk+3QJU7dDyNGXKZk9yo+FmU8HPJw+ARjf\nn0ht\r\n=Emua\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBlbBwgp9IfsxauigO4cDB8vVm9ckxDsP++/1t8eWvy0AiEAwWetJrLe6MscbJIx6oDrFHBOU9yEw7XnGIDe9r63EtU="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.66_1586171273813_0.8415348449406324"},"_hasShrinkwrap":false},"0.2.67":{"name":"@midwayjs/fcli-command-core","version":"0.2.67","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.66","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"ad01adb59e46a6715ded0f6784a99c669539d5c2","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.67","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-IxkTuSMsPnKA2fivWMzKZNxsXwqZkdQKZGH//XK8Iar9JBk959LmamZ4vnFvPsyXT0a+Yi1JduZGxHXihuNw+w==","shasum":"5b21dc4db9dba17512cdc3ad1252f15f1ffebb63","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.67.tgz","fileCount":43,"unpackedSize":130686,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJei/A/CRA9TVsSAnZWagAAMIEP/03gMuhFEFkFhxtffiNg\nUNAJ4OgZvCWvVIJHWkve5AwaZicjY5/baBU8DFRCkvbjU+IIqswaDHb69vcD\nv0S3IisacEewZdTN5mf2BLeiggH8JrJJRYkdLMa5waf9M8IaHvjbjaR8moq5\npAyFd81jgpkT2xOigBXF5PXETpfUdcDdfjYR8wMZwinZmg/75/07cTTetqki\nFtEhtNdcQXd8jUKrWsuyUuh9bNKH3aQCBHOfnFsexyrZ5zSf4hwd0LpHQmJG\n3P47Rg0ZN0izMHt7r+nbsYYhsWVbLMQqHfe8x9g2C0T4AGPqg2VeHeQBH7cS\nv7wg8365sS9Li+rBiCWik6DxiY09PAGBbh7aXorSRm2uBbGeopawj028/wHL\n0T1mB0PeBa9VqDLEPu9xbyc1wFB3LnNTiMxjq3f+G+vHakcjmq9B3/wbEaPi\nbyrdoyUKTS8iBWCZUOA1l+91j5gWxMI3c5b3FSURHbNl8Ob6Vs0JmQlDU2Y7\nv1ZDOdRaL6Npmsu19348L9uDg7s4Fze3Ev/LClgieBw5sGTmondoz6R5oMcC\ngBua71h7pgpmGQeJMwtq5BWkmCehyxva0UYcMivC7j8HV4+LkIXtu4Fd8TSp\n/a6OoQEkNz6d53b1fFFdsfLPsfdUDKU+Pbko46iTqE32C5ivprRX2+6DbSAU\nIwEk\r\n=ljtv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDA/y8VLjltuBWI4p6CVW5+/fsUaPc1fOHO5dqLFM6BQAIhAI4bTAqr2NJY5d0Vl/sbf8IVEHEgopu6x/HHwE4tg9gI"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.67_1586229311410_0.6899756091950846"},"_hasShrinkwrap":false},"0.2.69":{"name":"@midwayjs/fcli-command-core","version":"0.2.69","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.66","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"5c1842272627fdddc2687ed925c6a4647d72fd2e","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.69","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-12quEFoLOcW47ADUKyDF+gbq5Q9QMHmyDLxNWmCVJAYsD6JvizMaWgGlaYDkMUJmNAUU5dY2gYkD2/C8sGwu8g==","shasum":"fcfb2097dc3dd9577f3f9de1d54aa986ce58b341","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.69.tgz","fileCount":43,"unpackedSize":131150,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejWJSCRA9TVsSAnZWagAAB2sP/jqe5/CoVuFnid7e9hJv\nEGf+VxwTopVKlYRiGBg3H1byrEdQ4ehX9JyxTxLMr9M02oURw1pL/A4zXvK/\nHZVuOrSmAvpxWEM6XqMW1jCwAV/c2xBGHS6xo+pAqbj+yf+TW1XVvmUu7aXa\nFldyVYXeCufqf2ac5e5r9MFK/ebdU0eSMC0P/6chXNcfw5bd66bMXZpYqkdp\nv5adf6zgZH8g6FnI731IRkg02UOKU+KJ8NfVntHR/UY5syMVhKjxhMnbJnEA\nCOnwYOEwucSXwVnvPo0/Co/WDJqLZeI49pAJ9wqyydV3hdYunQKmeaRfuwsF\nybNgM3B9KrhDXv+d1vjxElRnd7fn+OGIJpo9vjxW0HhoIHijS6TKqRPfd1Bq\nuZPwFl9Dzi0kAmf2KKwS0RPv3TdO5ChNU/0VUHqDyGBHPG2kwtfz0ABUIXJw\npvQ0Kvml8yfp69lMBLgtwQfPz0etIk28sx7eL/M5rsFtqI9kx8YowL6d3uvg\nptH6hZ8lR94QLAciIlsE6NvmSPqvKePIr8oUxyR/P5XRUQog6MZJJ/aBHClr\nUZr5SzquZ5DI/9Sj/7ZcMEKXA6ONNxkjTcVD4OtbSQfm87QwuWcWcFkfziPM\nzoll6SyJ+o+tzDRyAGJd+T5XVoahZuiQR+0NgJDhPrZaiPxX/rH6L+pVSrHq\nEjuK\r\n=W2VO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYSj6kjoZEK+JMsZSrEUZk5qpmnIikjM9/Iwl2TpQ58wIgWOLOhAS3YKj7Q8eromCogaQqaQz3AlzkxcGrseGnhM8="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.69_1586324050125_0.5802165143309272"},"_hasShrinkwrap":false},"0.2.70":{"name":"@midwayjs/fcli-command-core","version":"0.2.70","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.66","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"89130f1a9c46fcba83d6b159c675d27a2824bcba","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.70","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-PFAT4JmB5oT8CcK0uJAB0jIBQnd+YaSp/NFCiq37QpG1mBYsdGnQU3jK/J1lD5/VpVtHBAe6cc1bqtQAmuz54w==","shasum":"96d54d535bb8d88696fd81effecd78b744b340ed","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.70.tgz","fileCount":43,"unpackedSize":131516,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejpIuCRA9TVsSAnZWagAAGWwQAIAUW/hk0jRLQ0nGgJFZ\n/+SsVn3FzzZ0xC6Y3HdUhWj9XzSz2CBKlcAvIxGQFWZDDAP2Iw42dyVpmBVg\nEhx3CAxqN6jOR5X6h4T4Gp1399lTq/lVMo8gw91gV8RTvB1sQmT9q++TiSe6\nedZE9CXuaqhUCcacAPtKUgf8yD7GmFU2F1m7gY0Y9bP03ZiocSuTWx6w7NaU\n352x5vfzypfzK+VR2yaNojTcCX1sKBx/lAn3weWHU6+lKs2/0J0J1cG3UdLG\nQhIdWuqiCEA/u2N6/qr/1huCCv2pkydjAkWz4ha961+f87mRIvUXD1sn65d8\n/MsC58fC2XOijyTUs33F7RzPormUSgmiTL4gbaXvbkhaeSrvWgkUnKqukabr\nXhei6tka4OXLQNdnnkYH1XLuPhoazcdf5HZ2C0mIOY6973L2usnLbO4cIJCJ\nEgZtvV3kmd0oGYK1TVT3Q7X6pphbnCJTtvnud2dMXNynk8hkAmXpJnQGiM4/\nr5VeOS+4VDXcxPM3R+sAxj+cCEz1Q/gwTcXquEcNBuKYvSh1PJPWaz+hovbp\n839qa3gxiF9ghD/bajNQ/xC3+mVPUnLhmEbNCsEMlfcr0+BwFlAG9W7x8pWj\nN3JT48aVhQgQT9OIPJe1+/cusy/SPJwJ3FNgchkIUPH0eWoZcH0OqR3eZOvp\nnGdv\r\n=QsBs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGCD4RWAwZIT+pofbDYhUHEVk7mVH29RveCPkOWe/2ogIhANHhKw87oAgh/hxRJYqpf4nngqzRkfSnlMnsSzCvPtRF"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.70_1586401837878_0.6503460440211355"},"_hasShrinkwrap":false},"0.2.71":{"name":"@midwayjs/fcli-command-core","version":"0.2.71","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.66","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"86447a93c3ef55da0fd8c156607b342e63670ff4","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.71","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-JeB+Yqpa5sxxvHXvPvM+u+5hf65EDD7lo+H7KnF/NuuDBJD3nEueZuHrYQcslG6zuvQJtd6DC4MsWpmaMQaLkA==","shasum":"c4a31828c0959eed9a9b852fb4d5fc8027be4869","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.71.tgz","fileCount":43,"unpackedSize":132216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJej/uZCRA9TVsSAnZWagAAnL8P/iAXXyi2u54LZ4zukONM\ntEQRmctR1IMbu+5tbgORDW1z9lUeFf6uZulS7sBuy6nIFvhhr9HKqdybBD1L\nz/b0OsJSbPyYtymWdxSG8LT6xdIj+FxqodEmuPRg2nFuiYodyUI3hE72sgsT\npXhR+1Dpr4dTTwsWgfBUrDOulAQNMXvlBqf2TkJKy8ECS4JC1wzVUmxAiZwk\nEfgqfdfimiZAva8xTY83/TO6R5hBU2Vo2xaZxfQU9ywGRD/pUyAEd+arddtf\nd5KKMy8n7GJ9ZH3yx7KQE0Skn6rMVjCb9j4xFK1x6CeUftjbfkV1XNJHWrQA\nCRPMJBG7TjzPo8fW3IbuBCBCxLmXkqjtMluGwyRiiLjZ+q+Oxyyu2Y/hmb2G\nUcAxHoR8YOv+lfZ7htjBPIsQOdbPxuSxTjTZ5vJOirlLPxh2WZe96KcOwEcJ\nDMCAbECVyhhP3avEHs6Iehq2lcQ06dk5uZZdHgPcJVB8hvBCvjVU0/NNCsFA\nxct2oHm8peUt4e2nyzx7j0RTVoUhqINhOw+NhVuDhSM9rZY3VZnILRD3Jk78\nNwxuvk6AJJNnEV9vEWJ3ANYlNuu8ct4Jdx0VGS0w3BhSPA35XxMhZliQnPB9\npjlMTqCHc14q2Ma9fwxUXZdHtN7tDkOgw9wupao+vhBFXJdlxRwSJZWaIaXF\nplaj\r\n=1O7H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGyW22KI7OtgXf+LRhN1Z5yCSVD0wrJ+oxP8p6cI+aRBAiEAjcz7OA5MkP6z+xgAXRMCYajUZI5SEOgIdUoSCK8sEU4="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.71_1586494360694_0.8290680625099309"},"_hasShrinkwrap":false},"0.2.72":{"name":"@midwayjs/fcli-command-core","version":"0.2.72","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.72","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"7ff5e53b5a594add222ce22b28a7f208d630d4ea","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.72","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-4ct/g4CURa94rOrzonvCQoD0TkIOxxejuyL6qb6DM149RWTQeRLg2Hinyh7Lp3ipigFWbjXOauSBNBgNf4+F1Q==","shasum":"9d8a85fe4a972b6ce2d434c1dbf39bf291963328","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.72.tgz","fileCount":43,"unpackedSize":132382,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekVZfCRA9TVsSAnZWagAAoe8P/0xq2cFbzW9AVNWOokvt\n2e3p5dzAsXcqufVQEBX8v+NX/vlRmQclo1hSU4BsCn7WF8hjAOZXfjFB24wA\niavg28+pucyvlKKNPA0rZLxNfmDnUPvXk5dTlhvIwZm2ccJwfxls22ODIH3s\nY7bhzRNuf2+aCo0l5cAPjsqBOzZmambPiuzyvXHR/Bxzl8AdrU9nWQuhBV6Q\nA42s5uI4bl/ZsElEL4+RXi/BgBu6qW1CPde7oo+X3sY3kKMuhzRBcGNwlZz9\nwhjsYzRQ9+6M+wj27l0hC0WfD4G6lRs4KZObrSgiPPnEhtr2baJ2qxSaVK8R\ndx3D1EYqqDP/TjMmhxscA48pOi10W01w2PMJnvV23L2M8CLFgsRd3EnmJ3eK\notUt5LcnlofWkBN1EBfOe678Exzism0yaebtU+H1qHY14ZwLGR2aAIALEfQK\nKlhXclzmjOeEnJaQK2oCBePydRtYfuFzLpCgRV0hzKBCLOQlT0MlPc6LH75E\nC9Lwgdc46a+QC07nBg0JNlht56i/q/AZQ9/n+PIS4LK/qrYKKVmK+veHZykt\nnH4B9VjAuH3ZPyDs5W2DalK+C3aTHGMPQ2sDE74sWewC+V0hu505Aut/XLQY\nPYUkejIMByOuOQsPNwwAaH7iilXgs7DzP9qh9nyZ3kjNZE6t1FTdbZaaRgHq\nsw4d\r\n=xaVW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFP8ez5gKsl0kql0o3bfg7jgw2ES+ooHg6XyuOjSCtCrAiEAz212YCPDrcqt3ZN8hmzxkTYOUirMEK/Eni4u1D8OB5o="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.72_1586583134768_0.8232373715768821"},"_hasShrinkwrap":false},"0.2.73":{"name":"@midwayjs/fcli-command-core","version":"0.2.73","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.73","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"a0d2e1b152317b2d5a6b5e922cebd3d92ee9f218","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.73","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-S2HWlCzwfLTZszm4dVtchoqcIHBvC1XzZz3DWTHxYM0N+ocYtfm9ZNg2MRy1uGJpFbL5j6xAaV1CmBSu/X1Shg==","shasum":"f4bcc44fd6c758090266c464a579446c51fb64a8","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.73.tgz","fileCount":43,"unpackedSize":132556,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekfRACRA9TVsSAnZWagAAo4sP/2qi8fAG/0CBuJQcUYtl\nXH5oR8HHnPuwm33VsMobrlPIS2n8bNN1mnxvwDxXHPk/if3DDBISzYi3BP7K\nL5KwCbHyLXIz2chMbPcvdMNIAgoJZOMLoJMhKpsm9iIOFosR44cKnFWt6Nb7\n7MVB5v7Lfy72dPDxqH5w6CGYBezwlXSL6ZalLXywtKOzOPXP/aHjahJZ2Oh8\nkcs9rs+sulKsPUjNrFLagw8xNMDiDqgRiDFEmh0GVjRdJRsl7z+4DCSk9nyk\nxf4glMldXtgLy1A+ylyqwIFyZvkFxbUCtR7tQ47+MFHtDF3ggfTGnDsH+PJj\nAF4M4BNgclKZ21S8FoNy0gjuXZh7NIUF7A/EU/PIZMfnDdmS1N3WaolpavoW\nwvkThBHZNBbp+gnBXZTOK2nTE2JrQ6mOb3E6vKxx8yO3tX+ItRR/FyQvtdzm\nekU4WelMQCXv+vtictMCwcuzH1ijyu3rO5eKOWJupTKZh8qpHQ/z8hh+MStY\ndggG/Y++T9mnFmHVsmS1Mmq/pGGThk7FVNFnRwOdVzH+Di1UGk40Pj1b9aXW\nkYWg0W5ooALVAC8qU/dSV1+GD1uXRaJZstnMwwMiURKhSW3Qliomlul5jwIk\n2XMFdBY/KZjAFBVpDJZakmIYKfetIoTCwSWXBys60Eqbhbce0pvGUqkcE6xX\ni2zR\r\n=lWFJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8SepCG1fXv0wmTaJVL3P6d4Q2TWNzQh/g9Bu0b+skwwIhAIHUw1bnK2M4weaU6b0lAsCxruUZNIQTzUYBnUiXUk6w"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.73_1586623551720_0.6342744332808534"},"_hasShrinkwrap":false},"0.2.74":{"name":"@midwayjs/fcli-command-core","version":"0.2.74","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.74","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"de2b5e0f61ddcf4b6df9b568ee2e4352aa5d2d4e","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.74","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-a88e1WYYL3+UQiy+qt2whh+LAdBAswGrMgzovjO1LdbXWtDhvHYkeIo0evjv+rFXbZzm0wUuY+NxuVodm/RLsA==","shasum":"6e5918b38ebfd33c5d2c9778901ff62a8758c37c","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.74.tgz","fileCount":43,"unpackedSize":132722,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelIPwCRA9TVsSAnZWagAAL3AP/1KH//n4J8CCDH4qFk+S\n7xW7Kq76Fpi1MWHA+q5Gp9yeMg3mW5lJglTWo7TPf4LhZWNQ5TYAKRRKNrjE\nGOWOkOT0/jvuYHOdhJJXjqMWa8yw0o5f2bVahlufFSqV01NL3VbDPQSQPjUn\nsOwkhsGY4GN9W10OCNstE4WUIF6jbYqNtGpht2R1ukgaMcmbyVfO6exllvJ7\n2MJOX6WKQ0uSXsyWk+cuQhB18zNuBsXwS6sTN9chlqrOWYF4YVfYAV1RVAQd\nRRjp3u2zWcZ8zQpiV9D8KGvW5RqwvPs8wp6hQ5XOtTZL56Y+9CLEQ8IZEoFH\nJHkB8YY29o60paeK8peIbR/nIPKaR5QDdHzMRkzmG08RwNqiLK9OlVRTp0Es\n7NXxsYdUvZHIa0tMFTo7BSgYg5OmD/v3k4gir9cc+xpyfJSFM7Vt7xkESQX6\nyxY/dLyCddKxLKx1415o4CpoVAB4jlUFSmHF57JctbiVXw62I3B175pxDv2V\nFdqqAQH8PEky83rQA1Df1A+rvxQm3huP3iSHEhT5TcfR0Hhe9QJPxmoHQfGF\nnNApHzqnumT5whIpG/nqNKZYy+cFyeYl2cqT3MmxSv3dPlJWGlpc9yaK7FU3\n4fnYoAL21vD+FozsK4fDTnTIwkDv5yKWxTQ79nMOF7bWF7AJiUP8n+S6xMLm\nxPjF\r\n=mDrP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2j+TKo9bFGehfxY+WrnIuWZVvyeWTSaeFdgwBih0FBQIhAOeOWwDvQ6syJcmXnsp+puQqnDXBewqcSwFSzQyUDHzS"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.74_1586791408308_0.7380160544980332"},"_hasShrinkwrap":false},"0.2.75":{"name":"@midwayjs/fcli-command-core","version":"0.2.75","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.75","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"npm run lint && midway-bin build -c","lint":"../../node_modules/.bin/tslint --format prose -c ../../tslint.json src/**/*.ts test/**/*.ts","test":"npm run lint && NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"2df75050aa1ad7760e7485e8614cb69546b49f52","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.75","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-wYiCAdCfji8wRHZfGq1dkZGTuHBkOtSa4MNzxcD3OV86wdEBvSiVS648xsTFUK9RYQARaj4KDucaH39pAAH7hQ==","shasum":"43f31c77bc0fd05c4100c8a0c9d48fd0ddc06a74","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.75.tgz","fileCount":43,"unpackedSize":132888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeloeACRA9TVsSAnZWagAAc8UP/j3PWoeoDLajV+L5JI7X\n9RfILgQSAH64YGkJOlFSJ95zNzFASGfDEqks8E/RC77BcGicsx720x10SXOM\np24zApFPO1kYeqa9t5FrVp4jJczLpPf71OLCDxQJ17qFg8tRZb5+g8Ir1pNP\n63ceP1quYSJWqBFFHXvmwOg2S8M7Cf20IMMxvHkEuVDcFMWZTgYOXZNt2fPe\n47vttmL9t+lv9OYxyI/sPNg1KuFgCPTdit/k4MNwHHlsTsKrZnrvn12sPnZG\nzCvSAOGzshQteEBVWoYgSzNRmrlTQDPw1i6DesKTuQVrFCEsTt1jQJ2j9/GH\nuXOU9rwo5UCHu2Uej/ItC59BBi3n6aKAulOCPlq6cJDZ7wEkcFVKPHZPMdMT\nBWNiZdumavCCkddUkGOaGe4/yNcdwuAALu70sEjls/zxyL2i+5PPn/hFy6Yn\nlgu7Kn+yJCwhy7KPoLA6oQDiqrJKyWjxZtHrCPAD/fJ1l/9WNVW1WLtC1JlD\nMXDqlXr6xeYvIHlAHWXIdJbvLG0drrnmBUvA28O31SmEaStDsedFJqnHnibI\neLzsz/RX7vC2o3h4uNsvoZOvxS16b4LZuWkJP+EzIy1ApWnKgAm6zdqzOhQs\nZQOcsFQdO8C9i3QhwQNJgbvLE/X5gexUIBUboXhUzLMWdj6iU2umzndVCWMm\n1iQl\r\n=Ir/C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGzk9rUA17ngG63+VeDoCR8VKQtP1b/8m11eLX7+jH5PAiAwnfXO6Y65T+ZuUK2k+D1RJqTkzgMi7oGHUdc/AqMySw=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.75_1586923391827_0.9113255198217387"},"_hasShrinkwrap":false},"0.2.76":{"name":"@midwayjs/fcli-command-core","version":"0.2.76","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.76","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"b089adf0b337781eacc3385eeb7d424bc6375087","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.76","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-QWuBHMoin+HIlTzOSZSrpC97asO8V1Ph1V7ql/j5nN55kyIgWKjhSGZ/HbnyujgaMgHVZ3P5+XXhiteQ9HFd7Q==","shasum":"a72fb4e4dd431e36eb1ef528db5fc98b936e2786","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.76.tgz","fileCount":43,"unpackedSize":133075,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJel+NJCRA9TVsSAnZWagAA57UP/RiqtaEJ7vPSGFwSTuzD\ne61ncEaaMGYjToJx3fmTgd5Ttvrt+ECK+qMqpoLjkDRk7+Fz2fo7h16MEipq\nJtcrzpnembufL1+GZ1R8MB1hHjq/6t1BpacX5G4Uwrb6WSltiwL9eiSY84nC\nTlddFCtAV0MeW48qOg2ObqmuAL/6XEBHHUIZ7jQctiQhYrBdScViNaE6BhW5\nrQtSgbV/WDqlQVBrKEU4+aLfe213HtLGjKBUinbFH/CeRiZAp+FybM2liOiG\nhP1tFBzdsId1WftMON8HtztOgQM/5ufYbKKCSCyhuzFk2XXt8Y5hx17hWfkj\nIfqPSjY397NmygbLvu05L0+wrZHabfEZYG2KEfzR1vQuHPRbaq7xxLbUidjn\n1lHvdWiZSSO7AQUg+oJXroR5VIR0q+r2vOknx74Lv1d4FXGlame+645Qkhq9\npN0kwNOy+LzErFyxx00VgDJ+6PHJ6OyIFrO17wKQvnHVx36fHWUTko+7aXr+\nTLQttj414ivwHPEa450gmAqg7mnDBn6GTFY32QR/Yvr8/CrwysbyYe2NQsOe\nz4Ekv6lbQvEZ0iPWDE/DRw0Azuyw7+T7YAP2z2M2xJbqR+vFstJnntAMO0lp\n5yoeL5u0UGV5QTX3kCdsaLEC/N71rx8FLlKeXTUYZPAxzdHN6OIQz4YhzZCp\nnvql\r\n=ttFG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3297AloMXDNEJjy12MK74003E2UoGP6tLBxMfYHgxxQIgOQXmDTyeACl3Xev9Wt9dHjvRh4yszTWp+YtMJ7Y7okw="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.76_1587012425235_0.7536251086183337"},"_hasShrinkwrap":false},"0.2.77":{"name":"@midwayjs/fcli-command-core","version":"0.2.77","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.77","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"5783f06ff0298f0e172f801cae053c3fc80813a9","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.77","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-5VZ/itQrbdHhgAL69mDy59VHrHLVrKeTmwsFCMedRerJtEBE2Z7uGzzX4ATpcbINy3jxri5UpiLTnWOIBJxiCA==","shasum":"b1087c3984ae0780e85f6cc7a5f19110b4cba71c","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.77.tgz","fileCount":43,"unpackedSize":137175,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemmt/CRA9TVsSAnZWagAAQsEQAIqscVfcOkqUk4Us90Bu\nhTWKb+IQAkiAYV3/WHek14yiT2kV4HO5n+ZieTUxYf/5FLOjvjO0nZ3k+0H8\nFC9/6yIH1c7Vd+8Ho1Z3sxnihelPSS92OjJ+niptNdWgE7xZgLv2fCl5nVuH\nftpRgJpJaWdDJhtTVfMthOszllY3Sm58HMC1/I/xIrxKmy752a0IsjoJCRhi\n6BoLe9oei0F0Suz0JqZvYF0FpRyIqriTCflAgf8T4Hf+gJOstXwB5tCdZmJj\n+S+Wb9nICMh6khwgMJXVRE6r76HPgBptRnqzPAb4dw70c6yhHRr/0uQu9LQD\nGkegXXV6JYePNjluz+VUTRnJKsxa304E3r1QHhXrZTF47kUjjObZTAMWKTpe\nRzc+cxU8+0FwnCoAmGsaV623XlYuBpGbe8fowKthIfe4HDwwRZVPxE9tkuMp\nGDGcjVhxMDdQAZm4DSF+FqMXN5ezzlNce9IQVqItC0bJLIFTlmKoTiryLELv\ndnElAVsP1qyy1H0oKz7hERAdf/rNcbRBKz7xqKLBnXYr34rL9i2ifnC/Up6V\nTzHUMSAXVtZA7Z/ORI1kTMEmhPISMgastL8sqBCotUQck84RdesMkNfl61ug\n1vRBMhjHplXhowFCiTjdoRYBbLU7MXmULRvaVXuhmddKBz5JUjX1cQiDGEwU\nrxns\r\n=yiJ5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFNYBnVL39I/WBX6MIsCct/aUrVOnDcLQVwaWLeDVR4UAiEA3dLDzxbCl04Rnl2X1lQboIQMUWujjd2OP/AOGD0yuqQ="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.77_1587178367012_0.10685763660433234"},"_hasShrinkwrap":false},"0.2.78":{"name":"@midwayjs/fcli-command-core","version":"0.2.78","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.78","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"b3e50427bf017975ad5532c4170a27c269d9a2de","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.78","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-Bmt65/ulzqadaJbDFnrHB4EcBl8lJuaUNVmdLR+b+OiTfa7YpMBDyIKQgedH1amtA+H9U2lny87ge9fc90auBQ==","shasum":"33fb6b9b30a2a33e67ba09f0297cb88914448d94","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.78.tgz","fileCount":43,"unpackedSize":137341,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemm1PCRA9TVsSAnZWagAA1ZEP/izYBYKePlfqZefWgee/\n4ys8XyqtWlUszte6JE6RGuBNvoiZTwORzT0rtXiZ2q6q8rmonxDcp42REQul\nE+U3yJO7cKKoQXplAoI1Gm+OfZ5GnTDHSJEkw3jWLK4iIJqqoAYrUluoNjsz\n6gsaCeiUjN9kvLA6OxavGskluLlUWZLe0KAba5kCE1UFVlGsG1RMdUXaRjVo\nsM2v775gfkIAPFBnodI+acZxJV0QRzppGCvrwLKl0LLfzs+kDzXffWXRcUC0\noW3X17El70ebZ7jY3HybDea5y5kmOVew3ikBwHhGj1oYcNCTp6mBe1dNDy8b\nnznwNdIeiUJl5a5PK6yjrG5ymxux73IV5RCZ62X6ZR1D9clxZMQt/nk8f7UH\nkPHwgKynU2463pEXLleAIPgnAoPtoSDV/Xk2QX+le+yehXwylfKOgPPBOOnC\nhK91yp3Y5jv5+RCFZQJiXCKBZ/McKU/gcxK1ipTlQ9NdCNl2lbSZNeC/YwKD\nH6hOssnK+UYmK9+iILdgnoqD5IAqSBAzVdRU5DnguUaBjlZY526ikZM3eYyK\nvpjVDn9FrHHfiQtmQvvoa6+Hf5B4KEeTW4Cy5BTN3E02BPXggbuixSZpkJ33\nGonD/t+GkgkljzWhMW53xNH/+3umbSLiPfTHcCESpxfzrFef+uWQrxQnDrRj\nrBRS\r\n=JtC0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC02o0n7nmtiNPXaEY12jrlZ8zJ6ob5Ui4jOcRFrpTbTQIgE8VUe/UoCe0CZbfCw+CG248mN8XoWKBIP6cky6v4P+o="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.78_1587178830957_0.2192388699932657"},"_hasShrinkwrap":false},"0.2.79":{"name":"@midwayjs/fcli-command-core","version":"0.2.79","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.79","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"f0a2390d1ea301224d2ff17a6b9ce4f2230dd637","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.79","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-C3xAP6Au0FUOv1Ba7huD450wsd0IDm7ol9k3bkx9mO4n2+xTwyLIyjSm4/jo1dwy3JJo2cRiyc97jN+UaQOoUg==","shasum":"d587438aebda613886b5023e3dd49b6bbc659597","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.79.tgz","fileCount":43,"unpackedSize":137507,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenExBCRA9TVsSAnZWagAAR1UQAKPDrYd/nFHdAZayFID9\nNRd/T5LnEA4PxYO4CK5B+F5RvXNZ2h614vdQ/hdg04wCbtak2xgd+V5MFzyd\nN7NffSsdFi6QA6OuaEI89uUKNjfG46Ppn2DJT9rw1MXqpUNs/8w8OgXiGU6V\nWpHuPG2jljHdhFXXiIacpeL1/4IDsgcdLYYz0VlbmT3ER1qjz+N42kmj7Sx1\n7TJcbaDhHiRGy1+MxEg0tmDpke8xnjz/sliilrv5HNafVeMzD2i468Yd74aZ\nsj7rWfv9UE6N+/E2UDzdmQwCBPrSe+kHVB0RrbdZxwMcvMeqF5rJ/11+jBEc\n1Ae5WU3gn9ZvjM+vBkpE72xRl9AyIj6uYSutUF2x1mD095siRW6tkxoy6wl8\nzo9PwYjoyOOOlVnxTaqDtvFCP1n7RK5e4KgLpXh5agrXo22OVUyISEkvStJM\nsMEmmbfzMe6yZF75HTr3uhb766MXE8VoglVMvDgNBEfd7EBpfTc7Ipdjda7m\n8QeSuJ9Bhe6mqTPA5yTYRaQWy99Ok+yl3mmpjEXhs7zLSc29gsDvsKa0bPH/\n7pUiXMr/AK4/bqx2OW1mes7BI6CDSv1NeXOFEJ4fcwCFCqBW90rPRjRwS5Dt\nAH8ZnLg97TubYCLZJlJxhgcQK7iHYLU/JocqBwnaRkdoViBaLE2p9m2PaUpz\nnUB5\r\n=Br/X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEByBmt7elL4cLt26pagOXTu5wfSk0v4GNDD7lv1g1IKAiBg0HwmHaMrnz6sQMHw7RPkrjT3Ote8rQYV9nCF6WpY0w=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.79_1587301440627_0.11582138890302751"},"_hasShrinkwrap":false},"0.2.82":{"name":"@midwayjs/fcli-command-core","version":"0.2.82","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.82","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"cfc356d594a55630c0dd12c0ae0e2675b49dc2ea","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.82","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-6hL54GG6ixP3AHIgdw3YXPnJ50EsIOUCRHBqXNkYkINI1Q6R/IVCeYb8Dn4MyWuCZBiQpJCC0qkYueh2UUJ83w==","shasum":"b397e3c1b64cff7a5ef775d80e2f7df3d4e35ce0","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.82.tgz","fileCount":43,"unpackedSize":137673,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoRglCRA9TVsSAnZWagAAaRIP/iGP1UmvbmKbgcuHNnG5\n+8kehEPG023CAhpw28YloJblU3E80oVDJa+gfVCuS0Lc7tI6/K4dofb2ct2w\noUvBPH9DBGJirXxHE9Ob2YU03D6s78vjbh7Z87pmF6XmSNoFyIQFpIO6XY/e\nI+XWV9VOgdBn8/3hp1RnfKv719/Hh8LTJbWZSBS4KZjpNMI9XGMEnEyma5f6\ns7+V0iDPOuF1Pt7SJOUPT7A6p0SgbP8q9hJDK8nyS+XQsxEagDlalOgbm6kJ\nlubD/K0UNaiuvYR2OCPndPW+vgKzIj+98Yf7xRo6dAUPA7q0Qb9CUpGBF75Q\nm4PgS/4XI0XipPXx6vCtfg2BtMlUum3YEN607DaSlN1nw870OX3jkNNaSz3A\nKhiYTO4D1Vq3WspB0mEjHFGEGWC3ngrvXYYPGDgpZjLMRjqAqctLaxNkGYxl\nrBday8lzh/eIKnUuCdH8zGtXfncxw4QQDRt2hD+CARVxEZPQX5FCNqzNoa+r\n7OiA9DKqUMIsU8p4FgUcOprqX+TkPTg1n6PLjtV498ewjX6B6TqMeEc6ip6H\nMJLrYEbki8yUXU+Gc2hMcBJHtAIh3B/dsP9LTAiE/lIjO+w0hf0E5Epsv7bY\nYlZWY1/774SJA1FqeUgLcRWOSw5k0+C88pLfWO32eCoWzGqn//RyBWzNmpi0\nX420\r\n=vaYz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfROKpot3z8CGBYLn6Zh66lo6/VEExVd523MjiAMW7VQIgeXPMFnjsz6QGHfV+NJ98fDDT2/89eEnCmeGTfq3grtE="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.82_1587615781502_0.914555869359329"},"_hasShrinkwrap":false},"0.2.84":{"name":"@midwayjs/fcli-command-core","version":"0.2.84","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.82","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"gitHead":"e4fd0c4fe0f2f01b0f5e9ed34d53b339a17a06bd","description":"基于插件生命周期 + hook的内核","_id":"@midwayjs/fcli-command-core@0.2.84","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-9D9Gd8SYCuzoqcgF5sGVl+AXlWjNbbEA6P8gUkGc0a2A2U4PmbIICopAFSAWU0jysgqXccOx8h0rctobkiqykQ==","shasum":"46b1eac9cb116d3b223ebe536a6919c9edfd49ff","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.84.tgz","fileCount":43,"unpackedSize":138080,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoVoSCRA9TVsSAnZWagAA3Z4P/2V3epeDE2NZOOTXuQSS\n6mgy0D6wDakRNlaS3W7YDcKZaQ/BAkLfKlziNrIB+u5LiZBZgvYm7L8F25QY\n1LiEolTb9Hgr/YbfG7lv8sc8tq8kPGfZdwb3hy00WVETpz41AUO3siY7Hqdx\n0YAo2drF9Sg9BKo7Wavs2He7D7B1fL6lpkKRIu5O7OWhU1/jSuR7UDTamNCO\nu+TyYASQs2WAFA/W5UPW0i20dm7SsMqYe+4RrpDhtoe2KPNXt4TfowOsQloR\n6RZvmu6JFezF7/lse+6OJ/bFTHIwG+EYxiuSy/MC/Jy7kWAiLF2I5AI9Pkek\nisqnhDmQLdg5U5mvR/PUSGa37dqPdDlaH3PGm18h0JGOtYc5qZat3853dSJj\nsXOj0w6/QGi0bduagqAia4ARM2r5OV8ZYdLRMTl7Mx9rOneUNP8VIXBEEwVj\nt823dJzUIKiFYlYh7SQt3zf4sGjg8z5Ze+LCzZyR9TIkAdiXbYBHC/W9uq54\nNPCeuDfovks15uS0IrnLQH2z60KOUmKo1mn3db6Bq5N5uXoR7nrz6Z8hWD4m\nny749kDQZ6PMBfWbuf0g44a6ETnm0KiweFM+aRyq7Uj2+5iBCL0IKAuoWJs8\nhsJXEe1lMzq4M27LRaRzbIwBqAmohYcbb+ZaCWYK9+OSy6sdoHJ64ZqYO4nx\nrIvw\r\n=RvQl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEkA97BhJ3GUBtq0Jrq/Im6oCJXzB7Idij9d1TqGJJMmAiAoWf+DvOzvR/fwbgvtu66W4mqyWrMA0CD8tobSXaKLTQ=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.84_1587632657754_0.1578900532380556"},"_hasShrinkwrap":false},"0.2.88":{"name":"@midwayjs/fcli-command-core","version":"0.2.88","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.88","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"71388da4e26362ec4a6aa7c34f6444d89ddf95d8","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@0.2.88","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-s6MSsTjiEczHrmH1AHJIF/yDhrcAuWkdhf98XWrYwuybp2AtEYA1A4dwb33EIbRdkrSrcRloFHHASvIIAEoeVg==","shasum":"c95d5002a0b61ccb2c826e657c30c3a206d63357","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.88.tgz","fileCount":43,"unpackedSize":138527,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJepUhDCRA9TVsSAnZWagAA4PgP/2Uq+6vPdl+YlqjiarBB\nN3qFvixgjaNqFRhDeZfkupviQr2EtC0M3/hvyXQ1vqxEs8GrbwjLGCTzqS7w\naW6+vwy8pH5yvcctoMSjVuNAhNNpXhjKJJfRSQzab2JByGwK8w5NgGrt9+Cf\nb+9UbJehUiWKRy9njDtzLqwEppYKph1RDkctMp93EwyKeKspyzKAuuEiYbRc\na86Kx9YAHOVaonrQhjh+juHDpqn9q+1uXag6uH50zptdkd76Ducr42ryqXUT\n3TBgMuVM9+POdCcHTUt1U97I50Aspn2ZAZLZfRiqu6l0HTlgnDyeEGHKqtXg\n4RldiAaCL7GiaMLfQ4dQM3NqpRFxQC/fusMwIJyfl+cFbZhSCi8UW29nmHZm\nXOBBwJIGm8PmSb8Jgv4pg+uG2mP5In8xKFYjtkG/9Ii/1b2c9fPYsRkxDsda\nO+MYvRnVK6Yz3iPzdfCwwVFZp9+mOgkdtjHTaEPzMg+kw1In+11Ls0fKj1M/\ny+N4JFZpL8ZGHMmccQ6ZI4+/QiAE33LGtFg7PipK8jjp0L0wb0xycOFR2f1n\nRYoWQWJNro1QY1ECK7ru1QsBEE/Et3xP14aKKzsLf9B3U12f/LdznG5/Qu3b\nMUA3GGCmNArYQCkA0hygRTlh0lf65igVr3osN5C3EV3KS9/jY5iLtoJAmV6e\n+6kh\r\n=Fc8c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+y/66pcwHoTIlih5dcUoE4RziJelDNK44AxSKYNBmHwIhAID8LII5PdzYL4Ze4Bn25rWjFlutX7qyis6V/VcNBeid"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.88_1587890242954_0.8740160216299788"},"_hasShrinkwrap":false},"0.2.89":{"name":"@midwayjs/fcli-command-core","version":"0.2.89","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.89","minimist":"^1.2.0","urllib":"^2.34.1","ws":"^7.2.3"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"72b758ad3b96eaf5e741e37acf84a91910953e13","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@0.2.89","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-f1RtAd+t7C5kqo3hi8v+E4UaDI0MseMmyK8W2HwMIPaAUJD46UljhFOe6rz+qn0fJLr1TxuhoSV3JK0ipVXFJg==","shasum":"6b92d3e5bfb5917359176339c04ee898d2feca57","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.89.tgz","fileCount":43,"unpackedSize":138693,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJep6cHCRA9TVsSAnZWagAATEUP/RDFsMro37KC0psHGj+6\nnj6onoqnYIOYcDbfY4fo91Bpw2xd8bKx2mAbwIfO0ZU98a34rHiu9vcQ4TSu\ng/sfAL3+5DPdjq5C6ZkxObnO3JTcSs6TParWHXheCy9tBaK7SR+5BeGjuasl\nJqBDFR5K2A6RiBUD1XZTLW7chxPR8vOAemJ2vOswxvcYD/LBi3FObEKVEexG\nhObkdyCan6B897e7T+Xzdst5Sm9TkcM9TBgf08McgSCdUXEtocHbsn03ptrm\n6l5MXcli3PoJNx+f8SzfXlAqUdOu+aO0J2zU+aXF6xDZuuDgRhmM8MyFWW8S\nyxFotR2MjxmEpOq2l0nY7cRHNSFNcfUxYQQ/QJ9jrpwDXphNs0xm+59E0dl1\nHGWW5iEFP89RVn2uPydqomV7pKX+AIQkGUE4ZAIQ1PVlgVT8AqCjB69YPE+Y\nb9x9uouxgFsH1HkMf+fnorgtoHdw+9oc1o+KGxKqG3xz1WGQaZQ0nc+e7RKo\n0SzBnzaZYdGOBwHtImv6emFzBsRMeH0vJR92Yhpmcb+aYrySe5oVpuVTIyJi\n8JHDvGd7oT1lI/4TZpJZiZnuomwQPqS+VD0iU1cJfJXebLTEZ3Edjvy17SRZ\npnDRaiN2k9epGyya5o5GgJGzxMT1QuNRNcbHDEkZ+PFv9HVl1AuxKSMWD3MT\n9Xo7\r\n=ulYx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDtCveTVTklVp4z4uZppCMZGLcovnSfKGy8RIE+4KGxzAiEA5t0dpC0ii/Jk5GFfCZBlPZ5cnhAqefU/kXbagFVOQhs="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.89_1588045575569_0.5077097741188792"},"_hasShrinkwrap":false},"0.2.91":{"name":"@midwayjs/fcli-command-core","version":"0.2.91","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.89","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"74a73a068a912b6cf2177a8f078126b89ca2928a","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@0.2.91","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-ZzO0kJ0L8R0q9XGoJ56HuEwEaEZj5ESaTP7oOi2Uwj+rZ46H2plya52TUkUvGXOWRLU3VVawADmWqLJm7i/rgA==","shasum":"0a2914a8cfa5a48f35a5f473ab6190d44ea2bdeb","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.91.tgz","fileCount":40,"unpackedSize":125702,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqkQACRA9TVsSAnZWagAAG90P/RvQANd8CsUVUAIWEKMa\nK+lSJC9vyx4hV5Pj9pGhaCr4j/5z75TKOWJwQ2rO9cxIwW10+X6/I6NQMmHP\nB4FRnCkN2AQP6KqGwXCXz8pmekKk0GhZ3eNX+ittQVVyhHgyswil1xulpjrU\nIZr1OACD2lT5LCilVHj5I4nrZLYE3V8AwhwqgsRPRfnHRdnWvhpDeGS8Hj5/\nCsIgAxFX10Bxh+c1YobH4gb9IWnryB4Gx5GX+vbIpRABqnwXafQEC4tRhJjY\nLHI2uUgfge0kKeQ7EDrtffKFOLh592783uXAp/RuXd8cq6aCLONOKoEiNxg8\nGeIflJUKQ52e1WoFhXuscNFxtRiHrqK/8m5U+1+DA/j5L/u5ZsLE0hpfblVL\nvR4agwNOU2z/jUlLjHtlTvyWuasI9bpycQYj7WB3NUGy0+Iqy0258g5meLYf\nvtclOuqytfqsZPDEzSk+2G0NNMYHus10IGHgE/reijRFRWm3FZGSLcObuPDU\n+bRrnIETb29bxWvFydiBFcySg6MWr8r1+OeBGuht1of5uQw+vzRUa3jGnFUC\nDUex4iFBMe5oxZC0nzhAIwmViFzgSKSfuOm5hvnfqpeSaKyfd2VlKvGqa0hV\nCjqBt4v7O+K7cb4cPA8xL+ULtk5TcjSDVKgNXBZFkZb5zdIY5D8nsgZn76qG\nxvyB\r\n=Mms4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBUMTSS9bP9MtIFDgthLsvXRuorsFO8YPwsmf7ygL6EEAiBYQeo75N2xOSNSK38YOI010tsOcnXeW6cv8C6vZ0uO0g=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.91_1588216832150_0.8241418039838146"},"_hasShrinkwrap":false},"0.2.92-beta.1":{"name":"@midwayjs/fcli-command-core","version":"0.2.92-beta.1","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.92-beta.1","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"383679b0778770637f2c0855058ee7a3dd9ed6b8","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@0.2.92-beta.1","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-lhuNyDm5iLq0/rbo1VOBpQ1mkVbnVe91eYB5qIjxh/DRwVhHOWz0Zk6oxVBQ1nLDnUEKfdemAhagdrtd+SWY9Q==","shasum":"850c4ac265a6395e1fe1463bf0b1827f695a6bff","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.92-beta.1.tgz","fileCount":40,"unpackedSize":125896,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJer46ZCRA9TVsSAnZWagAAuNUQAIPc9JgkT3FkdGI8X9/7\nYPLulAaBBdQ+9/kfweUsWrzpW1PABZ8ZGETHOPCtKSxh+dCTVpciB/hvoMKt\nfUblFvR3qXCfF4ugDvbY8B72RUZ1+K6LtLgOxLyrDN13UqOGDKRT3QeUe/Gf\nIZFsxHTXH+T3Y4dqJt/tdAquILl/urieUpFsORanCs7YtJ32ljjHYMrwm9cH\nhrLfp4EvsCMMrsCGaZgWZG/D+rak1XrdZ71QU1cNP36L6YpKHt1O4RA++hj+\nGVfjeaF+eqeHK7z7gg9hlgWobbcwisPOtyyZejb9yBnKUrmI5H0j7cyZlQN4\noZ4BI3HfKBZHryKEERoH5AWgOS4Vc8eTgLu+jJT17hnEZDC82rAeSB5nsdBy\n/6TFlZeHho+2vo7hRkkbtG0hivQ8mROlXCrqD8GCUenH9O5KugO64n7d6L1O\nmSPdMFbrQ9kt1srNa+IG6AvVe4zDXx+KTDWIKmzowXgJ8Yumtd+JgUQbhdgQ\npSnOtZm86GSscI2+ZbrrHfeCSq92ZeKkKkWKveRHtVMKPrYj55qWrS1yHQ2M\ny2VbaEaWORys5Fw38y2spvc/QMWwJ5R/OEhdebJZvn1JknwD0R2/xxKL+Qre\nLgxc4DSZk8Py35SSVITvRUIsF2KluU44qcQF2smZN/DWcMqrQfI0nhsMns/P\n2eqS\r\n=FS7P\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIUEerbe1imZsrViDqT0JAuMr2TVnuettVnume2b8cqgIgXNecSWtUAS0WF1IycAy+AHAoM7BAUdlxlJdqI1swxe4="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.92-beta.1_1588563608806_0.6688468710467905"},"_hasShrinkwrap":false},"0.2.92":{"name":"@midwayjs/fcli-command-core","version":"0.2.92","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.92","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"69f82cc63e941757c564d26616de8ae19f8ac826","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@0.2.92","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-enLj+Lo6ObvRsVBBCw7IwIeVI47K15GBsGTFLBVQJNDuMwSCTA+Np7tq6/vFEtA5l4gDmNBgCxlMTqiim7ZDVA==","shasum":"ca0458970a74f45153cfbc7f69bcc89046ce2545","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.92.tgz","fileCount":40,"unpackedSize":126184,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesPOMCRA9TVsSAnZWagAAX/oP/jzAokO+uWXCJjc4TVoP\ng2Lt2p4YvW0SWpMe3pbbDeH9WCpQAXDFgecwmhZL4LMmUyb6mL26gtx9wb+h\nkQu6TnzTl4TzxRjVis0d04DsxkEFNtPsgiyjNTO0Ue6Qg6zaEr8bvUZj/r7c\n7SMSQ9N0EXkt8WgagL7C99kRdrws1Y90l2QMJnUzQoqOlDOhLD+BhtZ8rUhK\nPaiG/1xiUPVqhcWOy8WicEX7jW5tvQS4y0eMEkTcIJWfaxylZ5GsD2rjcjE6\n7rXdYDNULTG1e844WA2HvDf182iU1oDE2Lj1j6Pv2Yz7T8afrdtmGRKb9zfz\nQ9u+ZXmkQOaF483BcyWP0n/arq+rcUfYibo0QRaFa1POcPavJbrJJd5TFGF6\npGdSEFVs8CiX8mtZxM82ddIGqFZfwBHDWNLCYlSpzgQTh9snG5Ncp6yx1z+D\nRXufaxLXiv7KawIxsF19J2CwbjzB6S9vqQQtfJnsEPHzEQyJrVlFJaNTPR6A\nynpdq9OJAZIG3N7Zh7QHFQpFZq20Eosm4wcOwIhHgOV4FtRgAkckqbJ1WJIe\n7Ry0LykL0YfY849eIDhbJt+cofK3lpg+5P3aR0PYbw9yIsdU2NoQe6fbdmAU\nN2Renf3kMbGyh54HFjmHe9nRGly4ZQdvbqqdqnHXnIKCsafcTzmgoYn75dMq\n6QEY\r\n=pmor\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEedT+zjRO7k0YIqnkgWkGn9Kz0iUZG3fLJfJT884KC+AiEA/ZXIRSgyh1Bpr1OllhNPtEB/8jC710MTxb2GvmRQV5U="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.92_1588654988534_0.6536627679841973"},"_hasShrinkwrap":false},"0.2.94":{"name":"@midwayjs/fcli-command-core","version":"0.2.94","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.94","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"52cbed5f3d69fae117c1a710d0c7a90d44560764","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@0.2.94","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.20.2/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-yisYfoHP8MsZXRS2KLtTQuqQTPtFhraR1KcJ3ZCSK9ltQmG4SWfrcsBb3xtwUJ8GrVQy+O96meJZ5gIbTjf/sA==","shasum":"ebb8e133c652b479a3d0812035d099f97647f05a","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.94.tgz","fileCount":40,"unpackedSize":126350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesmoLCRA9TVsSAnZWagAAUhsP/0o0JdNkFuMhlj9uKoQG\nDuD8+jmyNaDi5nN+cvqtPmFbgtGVKeCjOSIxcpKxHpVlM+E4a3k1lULnWaad\nG9OFSitZv4E6YfLLnfd2OvbTuJWQsNKcUq8HunnsQ8b0cWstianRd+3fUTp9\n/HfImjAfl0FdA3Gde2jmc9n4jz9HP29qIpMkEL6TV+xzv0er/WksS//uJPf8\nKek5/0bmG8YPwypWBeo6Cv0b3GVN3cE3/n4ZzSBhJQ+X03BKY9iZgnWzlHV8\nKW5cavvqN34YDZlimvNovamGi3yHaTYrIeNdzjk1eBqgNcFVHHPO30YiKZ5h\nwucytzP/XOv2d5JwObtnMIvJQpBxTZxcv74MxhRdFiNJNS+RuE4Avpjd5zUH\n+6Qe/zZYVmDAdHCWw4kLR+M5Zn6WEp446AW1M75doPKGCna6COoMw4BfyaIB\nqchYOQGUooReDcYDK/lEx9GMUBQJc/gcgr9LDjYquDPNmxNSPZdnHx2loQRe\nYufAeGTMrej6dYqtJtcIL7Rp+vSaQ8wiVQksn1GspYxKiVmOesM+z8sfDdHb\nqy3gqqT5q9lG7DrDjsZII/3bRzNTV86HS2wX02SDI7dd8PrAilyXZRTdVjzI\nTDCLCedaNmDF/GOc5QkJxh7XO0zU6fMVvRwhUs15ugL6pgXzkExCwvZbE4aK\nES6s\r\n=9hUE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICIi4JZaogPAybzHpcXrkzJomQuYAcnxvqieDIsbaraLAiAYrjZm1uwH4CfdEaL3iBQ8inLHuanIAsbQhpE136NFcQ=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.94_1588750858955_0.6242068479932408"},"_hasShrinkwrap":false},"0.2.95":{"name":"@midwayjs/fcli-command-core","version":"0.2.95","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.95","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"NODE_ENV=test midway-bin test --ts --full-trace","cov":"NODE_ENV=unittest midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"15629b5f807180b6e905d73b47bea024b6954c3e","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@0.2.95","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.21.0/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-iCCzOr3SC9k/1no2kB5tBKOSlBZhZ0kzovD0v5Soyx4lG0jUhjkC0Iyv0D93ZYXCctFwzYGhyCJQsvbAax8xng==","shasum":"7c608bbdae5914207dc40a6f205d5e8feaafeb81","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.95.tgz","fileCount":64,"unpackedSize":125118,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevpVvCRA9TVsSAnZWagAAbGwP/RfvYr9xxcdOWGOf+7hj\n17mbgyBGm/QVFsnsVQrJkL+SA5rHvyJ/Nz93cPElSHqKfVz1bqsq0/oTvKVH\nwefxAgjbrxBIQG6RxXeB2aySEeTRhFdRXsAaaLCdrwSIHbRAgoP++sqXd993\nRbG5lUX7FUWsmFMmElnwESkynCXvYCrjZEdcr/M3f2znppcZ7XGHQbmOQhJd\nFUyawVIYDICFa6t9CHexTkxbdiZ21SLyoi5H3lTTcfBH7I/usJY+jIvOjgcV\nvuQeqpDu5J3rMU6QoV1L/yo9Ey504Tu5vsIBd8Pi52FicSnVAxFWhtbQ33RC\nocEBiCfZNQE1Ac/GZS4wjf7hs3j7x3tm9c1aOxSEruLu9cKo1ccFlzqTJZ99\nK7mhjs79QwhD2NnF4Df1bMRreKs3XB+5n4HOtbAMzGNL/d3l/f8b82IgaCue\nN8mdUUzoM1iBbsddnSswSPisB2Udqo5AgcADKbbpy9LO17j5ADuDA05j/PNJ\nau0D+dbBzt5KqSfxjh1dzymttlPCR60HlFKSmO9DFIgdk8Y3uaivzoTNrBMZ\nZ6+Sls/emnvTvpMFvJEvvFhmRVcZENUAgGbpgsULU5nT3jGiAiZ8+/0a8BGe\n1fw1S9HhDfD1SomFPyFjdsXAleof5sPTTL6Qm+GHF+ohFSq9vUWzBrYTuTMg\n4AbF\r\n=5c8N\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGsJowny6STgBmjqTDakNu0YYUYjM1FMYB9cqrwTtURFAiAj68tisDqFaDirXtDw8qIQjn9C5K/jq6OjIgjKp64LMQ=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.95_1589548398673_0.2720012941576344"},"_hasShrinkwrap":false},"0.2.97":{"name":"@midwayjs/fcli-command-core","version":"0.2.97","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.2.97","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"6d5a3d95f876810134b6d6b7dcef7cab30e9a5ff","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@0.2.97","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.21.0/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-UIQ48aAYQ56dhrbkw5BFu0DaP7LBSHxPKus585QyiSABOTGl4ckG8S2t/n3MaJio1iUjQbiG4b/jyGpIkU1wtw==","shasum":"c7907b9bd966512387aaa70a55cd97d01d46e17d","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.2.97.tgz","fileCount":64,"unpackedSize":126933,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewA4tCRA9TVsSAnZWagAAu8IP/0d55c/BsRvDI6LYEvyC\ni2QL+3tP34ZdgnAo8LuZkHmAmZPvJioWMct0I+yBajEnCWS1KNwmJWhOSI30\nE6WIwXZTYSAHJCGhlJrTW1wDTT6kdyCi4BaJVDY5VhSBjtjGVmxtRdlaanUT\nsHSWKyghlSeRuBL2+hx6LXZBDERtrh/+jrI8fuf3kMJHllV6Lbv5THFStZf3\nIXgwdsPAkgjGQLR/HxAB5BMG7e9qmg30QX6VPNxYEceRensD8Wg6kHl+OxXJ\nODkulpF7z/ua31aqqSfzK0jDa3MyrpZXpxK7/hs3NrnqXzgq77tNyHd/ousG\nyLPDwIJj/9vP911UL1MRy47KshzHYUQn+tmGEq9uEmSDjcpw9eX0d5X9WmyN\nrbwqzFhB9Iewl7akgWgNs/H3yuJdMTB015qT7xOEaqbw5z8LdEWJnv9vHXYL\noy6m4gp36pMzDRw4x/bNSDKs3L6k2LjKq+CP/EsZQDsw20IHSD6hH7QUw4o1\nINFq2enD9rUVon9Z+6nsxmZk+nEG2GHidQudDgNRzaoz2lUSHye4SBZx+NwC\nIDIjsjA6KlgHCQhO/Om+j8xAqglVcuz7oqAG/fGu6HsMeSSnv6ywTmpMqjdk\n8BwmnN3zLCC8gA73od5RU2xpgTWdLDjpAGK4rL+IoQB0TJPMtujv5zo1Gzug\nSHPF\r\n=eu+y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIArhM2XSDE7/6rLyFR925EAtFeGi/s8aJU2//ZCCWfV7AiA8t3zrAyr7gHZ149ejnpiwVGSXe7SFXU6nf8/7xz0qvw=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.2.97_1589644844986_0.8880050805533826"},"_hasShrinkwrap":false},"0.3.0":{"name":"@midwayjs/fcli-command-core","version":"0.3.0","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.3.0","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"9ed2fd102ce161c3efe7e90b0059aeb5f574028f","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@0.3.0","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.21.0/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-ZX7m9bRKdSbSbtfSW7GtVPpjrTbcbj8G9CNGY2aY7NdbKjy+Gh/BcP7J4PikbVUDUDpL6CtOTaC4gYMo4YQ/Dw==","shasum":"71a2a0d18902163bdefc6be37acb08dfaf8dbd63","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.3.0.tgz","fileCount":64,"unpackedSize":129908,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezLtxCRA9TVsSAnZWagAA2kUP/18yIqZcFYTb8/smDCIw\nNpEEnYUaCMQAQVBbqPFzBatAVDWLlqICp0Zu4BhLdD+AXpjPofS7ij28Xm0/\n2nx6g3nay9WOAsyA8YTYTa4R4/G3sgKZE6II3laNiP+rf/XShSCw7l87brhR\nXGbibP8cPParzJ7abth9JqQxza/awkTXKSRSYJG0/KoCOUb7SYcXKp3OfNxT\n67fScg1fig58L+US/bAsUiC2T3w4z8Wirne3hVfl7MRQGZJaELhnY0GpitoD\nJUoO+rznV6cVP2PTBpOC5vyy19aMDCJHTMtz+sOxaftR60lExvgd520sdgyh\nYSHBybBcf7VPzV1DlCV2uIkBwCzkazfXFawf4bfmBM95fFqvzkUEDpsnyhGO\nkYsSA9SWzbIVcS+aQw2FcBc1yHZsZ0UbW4hDPVRXT32xdrqsFyFflAT0N4vL\na7m0FogijxcKHx7RT+WTG1qh49HeiG7e9cYefQ/D8AaKykq+xYMgcLqzMvnP\nt0U6e4XXLLgmlbDNvKLeynfTPXKXNXM7Pt5nnVo6QJis4aMFYZHxCnGgBmc2\njURkp+wwBGTVBgEPX8rYVSAdxllWRL8GfyCzMsq4EVT6Ndm+EpeTM4MYMM58\nxlGOLfsbRmHDv/LdVNiY0PhYtWhWHIc9GcA0+opfnb8PVh/IcIFnPj2lTKXE\nCLmX\r\n=H16W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB2pXY4YaZoyWdxiuecCEYtP2WzXabXE1wvPTNnnLZSbAiA3rqVdOJFSw4tWj6DQDUcAzlj8iT4vrB4bsrS67oU+7A=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.3.0_1590475632668_0.6369555995881144"},"_hasShrinkwrap":false},"0.3.3":{"name":"@midwayjs/fcli-command-core","version":"0.3.3","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.3.3","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"cfa8674a360ad863d483cd4683782ae638aadd79","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@0.3.3","_nodeVersion":"13.3.0","_npmVersion":"lerna/3.21.0/node@v13.3.0+x64 (darwin)","dist":{"integrity":"sha512-mTsDfmWvX1tMKINzUAigk1/N+WGZsl22ZeXA61zn7iy5Nc0eYDC+d2dDGml7jGTcUhP5k/c8egTmEMdTMjzCUA==","shasum":"ad49c3080a3790d906b7ed1d628187c526ba6a43","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.3.3.tgz","fileCount":64,"unpackedSize":130199,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6NFPCRA9TVsSAnZWagAAjQEP/2DN0x7LdKShgz3JHBOF\nZEO41YphfRQR+Dqfu6CfTSAU4OqRDZ00aMNXMXz0XzSZWqN7wWHLFi7q1M1i\n3p4uVo7FDGaRN2U8jBZDRfU/qVoigkOS4Y33hvyVhpFUz2MbuxsZB4HCUn/Q\nc3l7cO/opKuD4aPQJyiddqD0HfM4E76FyCVfM/CwpIKggFtDNbjmBY7whLDa\n/aSAAFcWiGpMlNFZMskgyyYstxY9/8BtxrObgkLBcup0v0/8OC+VPrxLYuNV\n3rVNxV3C8WAjISM5mxHm2C8NXmnLnWtlvY+vtgAneo0DlRm0NvxiiYm2KfXz\nqjMsu+WN/mSZX0CdiDxqYR2CsVdrVI68TTRgkPhqcmAJHxvdumyCO6/6Uo8p\nkD48RG3ZwVscFF5b729afsx6/SYr7ibWqry1qfE7qyS/qOTk8XYMfJFSS09k\neOjgpuSsa6nRwXm7UnLMDc+c2GbUcdUT1/mSbbuRK1kHgmAODU7BwjmahosA\nsIkbXvla9tsybfiFkVMwR17fIDRdxWHmCQRM6F4snr6UIqpuDN4pebuSrVZb\nOMfwsJ3zkJCmUWX9LgV6UEKFwEuyTthuZuTDcPRTERxXuO3qyrymgF2aGBJ/\nokNZ8eUZ4bWJskAD9yOmcqfMOzRlhS/bzIC+eXwBHXt61+/q40KNRj6C8toH\n3onn\r\n=DCPa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEwcI9veFhb5S7W3To+s4Rd+0417gbo1MaHfunve/UHsAiB0yRybe+maMo1JXMZhKgJdIJGKrpzAbHolmckgeF9M2Q=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.3.3_1592316239258_0.07110935133444585"},"_hasShrinkwrap":false},"0.3.6":{"name":"@midwayjs/fcli-command-core","version":"0.3.6","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^0.3.3","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"7c65687c2ab3d7b24fa4643c3534463bface3d84","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@0.3.6","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.21.0/node@v14.4.0+x64 (darwin)","dist":{"integrity":"sha512-PaO1x0HKhraisEsbU+CkIydkVLZ40X/VK/JeNDklpyp4kJTXekoKNry7bncOfmzzvrR54htuEcliJ+euPnKuwA==","shasum":"8cb4cc7a88d7cc04939a149c1a303efbfcae403f","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-0.3.6.tgz","fileCount":64,"unpackedSize":130637,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+yaPCRA9TVsSAnZWagAAqUsQAIryp+pzn8pnqSeDe2qY\nr01qS3fid6mkNCfCKj9fsK5+nj1zvOIUks7X3C9wAXR0UknbwiAGQQvYTv9/\nIXAEX5/ZlQzy/JWYxBolEzLTYIT3atBcDCjm9Duq2bjBlZFmYc/+/VYvNikg\nBtpstBCcXQCFKRHNEWWHFilns83vX+GzNf5gDtqpffzKycsYZr7U7Gf14cWD\nlJVavnnp6tJZxyBgO43+MevpquO7fJn+C2tdte0lQ/NqcXb0N1N98l6PeAbo\nmk+JfeRDjhY1BAD4KTSC5g+0mjOFOnVoadcKoiANqnARj+/TBpwul/vIb+Fk\ndJaIoCisruv10qbxo+S8vta9KU2VIKKJdD/RRkKYDgigKhc/4awnZUzHIGRy\nrbiCKS2HFgdlzn1KiwKB6exTTG7gOrygPqdJUee6OvZ6yqSBG+xlSjFTBccd\nkcwzK01p2d0BdveSlsCUDdMiniqe39hTS+NfUubtesXRkyFnkeVVTDBgLjHl\nKWtj0U4c2mg/nERdEgl7egfOgUJKdl1ivmJdMSeumVGaJYjt+OFMQF16M+t1\nU8zciPsPnFrIvxImcWb1/cHA9+jzYcG73B6xuVSUhca3pAkzuZXGNOz+GaRl\nFOUMEBG9ybdC/b6R6I/wqy5rdn3GFkHE7hdppZbh6T5VDisKDAi6LdTiS/1u\ncS1P\r\n=PvTb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEbivgcX57UxJuHNiWZi0SP2BYD7wuNLjiS18i3m4tYqAiEA+MhoiDRSSqcQ9L/RlVv3Ov/LPJm0qLD+5cLwL9iDFTI="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_0.3.6_1593517711455_0.30975109292303094"},"_hasShrinkwrap":false},"1.0.0":{"name":"@midwayjs/fcli-command-core","version":"1.0.0","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.0.0","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"5783f06ff0298f0e172f801cae053c3fc80813a9","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.0.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-SBrHXV6KXGXHpU8hPcJuaqzi/fV7PDHIo5HH54R5edYWwveHkHP0xfG/R9AR8gwSAe7aw6OjKXPjNQhxeEgMlw==","shasum":"1311b497bc8159406f331a4ae2a9d86ae4fcee90","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.0.0.tgz","fileCount":63,"unpackedSize":135184,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/bVcCRA9TVsSAnZWagAA2owP/0IS8iqmmNA/2b4iByE7\nROQ2Hgbs+E1rwAADGP07oRE1LOIevzcDrb4LLQ6VUK0S7tBRnMlPwnNdganw\n+jHYoiddk9lyhCDyS5bP2niJau4+K5FuoWPMA82XevFQe+vOQbNDJigGp66p\npyhZYZz2rUG5OWkaVjPwmzWPeQslzJ9I7boZY9UtAc98IZd0+oFjzSY/qrby\nJn9b9EYzSz5ANzoIhJQL2ZL5R+Sfn8maLuLOgTr3n/H8+7UV6mzI5HSY+ASR\nTYK2/mGuR4ITYEN8ONQ4fVy/U+1xluShxtO8+T8F4kTgjjUc9laafVbLWDR/\nQi2z9emldvLRq7Dtyh1629/QxWyul6DabZ36Tbf3rbG1St7nk1WT+zxI495f\nJYmCORbXXKSdW/Z/3NgW/+zb9MOyJLkDbqd4D0nNl+24RPrZaTF+0Xelqi9Z\nxN7YsWcNpPu8WZZOsCzMU7zn68QduoaVpTkyx/9BJt2ABCTeWkOS2WfCfS3Q\nQqj3yfd7q8uY3oDlH2M67TJtSFXhN5OJH14JoFtUFPKG3Be8wJ15NK5noc7q\n4bW3+yDxo2nXpJEJxrK1QTdlkfRaVNPplwuCA6+krcam3o+0LKRAzslo2/vm\nE8NNY85QuLP+/E+2Z2xM5x+ad7yF1eRINxDQN7pYAgSI2phh235Dc6EndOcj\nJiEV\r\n=1W/E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGW9SDjLr9ykR9pRrKdBTBoR3scJ7BD9LMALaZ01hz8gIhAN8VXPNVTb0P5LQE1Bp+Ro1MRI6OgtN9owPN0ktOMx4h"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.0.0_1593685339921_0.38537240620650715"},"_hasShrinkwrap":false},"1.0.1":{"name":"@midwayjs/fcli-command-core","version":"1.0.1","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.0.1","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"16c310758265b68fe8825e1033af3e3e58885465","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.0.1","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","dist":{"integrity":"sha512-v/O87siJpgv9wCJnUx68wMjZgoGcWuDLJYXex+uBFDgGmc46P3G8TFpEPHcI/dAoQMDQs9YTGEbPKHu/TyDcrA==","shasum":"e0de73f5f23d10bb6a478a6ed27f34645b653753","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.0.1.tgz","fileCount":64,"unpackedSize":145161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfAt5eCRA9TVsSAnZWagAA4tIQAJ2MOBZ6ZxjJjW634O2N\nsfCS6WvsuuteFD99wxvszvMXWvEOzEZtA4ukU4KWxm1vLc0/qKTFph4Fxfjo\nnY/grI5M/J99p1hy38IsCpByNyPuzUWCwYaUW99rYx6nu1qtsS343koYnK4P\n31WMAq/cMtG8Lw7MW5iYzUnotN9cVMpyy1YqAYHFbZZqOGzvx6EPUVNEPQoU\nOc3Dpzdbs7O/ZP/Wsx5OmSCosDAdKdBJ41U7/joxJQCqaNXREOj7upjnlA98\n7p7rVY2dx9/iZMLyvjqiBmzfl3BZACNiBcg4Kpuaqc8R0dKvhAUTK+qojaS9\n+sfxDjMxVrNSjBwIlP2kDutCcMmVNn05QkPP1KX1q1zT+zat2oHdvecCepjh\n1b1k1+8gjUMxFb9u8Yk2OWHfnL42monHgIvB2kHcqmefglSVm/TCmbQGl9ru\ndkM+tm6JOxARnAaWxAFKxEBO0II38YgzXCkQZ1+uwTVattvSIUCaeYNk2XdU\niPcOBbau+MKnJ3B09xadcrTxwARTrcReVwBC7zYaBZuMLQCzl6OivJ+3+cge\n++YOVcUM7yZLxK3hdQlk1eDYS0Od3Wy9+eyj4Bf1HRGaC9igTMHPPwT4sLwk\nwdq68/Zk6iuQgrgOe7K1ZHw4ktOYE794CvtbQ1jcwxFNq+Vo8I21jmsEa+rX\nCc3i\r\n=UuMO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEmLvRzV++e6M2eomRTFfuyQsTsQGWrQvzBZaCTNIptiAiEAwdbGoOn+39nn42bF5vvfVhbNj/hRjGJHFJvtkO1dS1k="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.0.1_1594023517576_0.8193061479989872"},"_hasShrinkwrap":false},"1.0.2":{"name":"@midwayjs/fcli-command-core","version":"1.0.2","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.0.1","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"2502b8d6241642b638527d737a79de7be1bee7fd","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.0.2","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","dist":{"integrity":"sha512-Kh/OLU1T4Oe2M+SGGPG4Vxl+ZilU7phLpUG6pjb08wxLy0oP2taGn6WIqeVUdMGGijBwnGKsA7MJ0rXp91rRtQ==","shasum":"b0d7bf51f64c77e505f12765837e743964b9c220","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.0.2.tgz","fileCount":64,"unpackedSize":150985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfAx1kCRA9TVsSAnZWagAAghAP/iLNASdrh2aWmK14XmdB\nLf6z8jemgEJL/UnDv3AHhlUDnvmOR75WdoIQr8A9K8i6Kxv9YfPdMhWUS2SK\nAj02z0hF2EZFVFSrthXnz0EgP/mVWYjEe8bZSYgiCSz1+kDEg3TAOCQ8UInX\njKM+tkL02bzCkJuAZQhYmMKtei0vGsZPHTQwiAfQMt3mdg+sC1ZBGAPHI6Ae\nYbPvJ3+rzgxHoXHJcAMOYWHUIjc7UwvBK05KQc7wzRLiwyNi4hiR/z6B4NiW\nMahVM4po9aslMDxjaxdfyWeO3iXxW74uANEFvF00vEZ91ee6LXmhzY5uw3V+\nlLBFwpe3psTAzfpJwIPlJ78kOSifbR5U4+dBe/+g/x1HeoyMZO6puVoZ49PB\n/Gd5opmQUu33AU4c9blfDsPmatRyIvpH8kKcMiwPBTl8LswdbrmzJeKtv0oC\ncdWvfAvhfpbHuZEgNwkguNcU9Mfuc/5PlYJPP8hgq1r/vO+UUbkj+6ffh1DO\n+XXEK7QjNSQGMAe7tv2HdPECQyUYwGhCngTkJ/J5Yc8aochNGmRiP2xy4zwe\nX8EDXI9oyWilr5xaLEmjyAtaPW8AkKqGVy9WI//fYJSyivzgEJ6JGjsjEt3U\nGC/t3axeAKAaagp8Tqb5XU6LMhgUeOmVyIhiwdAml2cOEAB5A/JE6IN/9ilX\nIuaJ\r\n=CGJB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFohTk818MPBaycjH3BYRog/r/lqhA86QxWYZrnjY151AiAHVIr+Yt6aIdtQ3oD+u2zuq7PUisHQZXDAdzJnOibP/Q=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.0.2_1594039652098_0.76357454542223"},"_hasShrinkwrap":false},"1.0.3":{"name":"@midwayjs/fcli-command-core","version":"1.0.3","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.0.3","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"f855e6a27b698aaaf4aa61868fff9f437061726e","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.0.3","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","dist":{"integrity":"sha512-hsmSwPZUTaxrZG/QlypiJs+NC9P0SIAGOu6cZoJ8ZFPExq991KiSdy6warxp9EiWLBhSovaIbBO7AhCYD9Qorw==","shasum":"cbf476efc1e43df6f2d863258e012d12cd15918c","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.0.3.tgz","fileCount":64,"unpackedSize":151170,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBGKoCRA9TVsSAnZWagAAC8cQAIkOdsiXknDsSkbiIyNT\nVLFEoLZkMucbkvAWaXHXuf+Ve6a5j2dqs1DMAjVPFpJtOW1zQ24ZoAR31n/6\nKUi2KN4+dNKvCZu5IWr46f6kRhDItQX4HEztC3zO1LJ7HaqTW6+OtE0/E/EC\nqy9v5EUepGS8P/0IkFnRtMTpYLx6l9SGhvzvjC6Pyb18zxIXjtfGkMhthKrX\n3Qw5LaeE8resQJV+WRF9UFeG4a98bo0SujKYNIImNFXkNetkC+abi6kk9iYJ\nHt976UX85rhVCKb1I4se3yq+g5peXLyvAw8hFmcnbBSZZ6ud+ZV+mj0AiYdL\n3bKh+Sd4BJnAFJqYGWnIs1Xb2pD6nlYeDJdEzP8zmBkdyHKfK/NQsoWs0XHj\nciZEg25jGgNAclraioElLViERQoh38Pij7si5gg6GQsVqKk8q7d5XyrTnC9Z\nvyb4UIMB8RbRhhY6Z/hF8aX9L5Mpyj+0NwqEXYZl0AwvkZqiGhZgzm6ygb+N\nkpw6X2lQ2ewEfyvK8J3iiLIrAuq3gIJAPmiekewTrm0o5agUeD3iiUnPIoDY\nikSRE1wsqter+OS6C/iQBtVyrr9unBPT+cdvA+luGWUpGvfGgQ6jUSqLNl/k\n+524DuMUIXXRfcuSjG9y1g93bWAacQj+Sq0NE47yptkclXZLdmsvNP6jzek7\nDt7m\r\n=emj2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICkIHPNl0vkq2v46P1Fnl7choIBjeENksD2B45GPZWo1AiA0Km32eZIAm0sFlMcxgPZ2fx0NcMzmEyhAy9gkMjvSNQ=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.0.3_1594122920218_0.8937197498615139"},"_hasShrinkwrap":false},"1.0.4":{"name":"@midwayjs/fcli-command-core","version":"1.0.4","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.0.4","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"6411e49dcfcce2a1ebd0b2d6ad1fdb642cea019f","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.0.4","_nodeVersion":"12.9.0","_npmVersion":"lerna/3.22.1/node@v12.9.0+x64 (darwin)","dist":{"integrity":"sha512-qrKx9vPcvN9z07NC7FzJkmXDSvhmqYcFBXQALfPrNT2jZpn0E5zgvYGqYFVXRPb3+veIwSc9fHvIWW/gc30vTg==","shasum":"2da3aed233073b355af908bfc195a2e2c8a5204d","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.0.4.tgz","fileCount":64,"unpackedSize":151355,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBbnrCRA9TVsSAnZWagAARAcP/RnUvUbN2y4KD+6egUYY\n+wYh7+fz+K9tOeR72nfnKLL5WU+GN8MY997+6s4jxEwva88KCUash1oUBPE7\n9PZsn0kNXCXCLMXOfq+0/p/OS40rxud/A6J9pgoCSbT+B9xBi3TxrYuAJKST\nGhlUES/2tQ+9vgkpfudOAz+Z3nvO0cdNCRMG/uDqmMJ0K4V2Cjwsx+q2NCGd\nm9SeKI+QzGsJF0jsbRNYgFt2h9jKvYhyP/m+mEiWpr1K0yV6skdjuxxQ7sFb\n4sGiHzozYRNZFeTFf8UL4T7eotKIeiOzlttaXUzBBFAxMhtTGQQHTRNcFXuL\nTlz53LQDCyx2/mgTHXLH6ME9MABE3CNV7K3mNeM6oGG2z+NzH51OQBG2SzWq\ns5kT3JzfY6jpCAfccCSW3+Dr62BBbyNle5RoykXeHs/3s3Fyn8W1HfQANUvd\nUVMMV5FBLVuxTyarE9CXrQeuXsDt94jj6cDoVo3yPnEtpjyZR+NKlC8MSujw\nrX/M4U4NQSL5bMMA35tp83D5ehF94MeU+LdvpFgTZM5XE0E4JgpBxHiIV7Up\n7akg50peRqS8UwfsgG8HxKavGaC5Be5V3mUtZKSGLtD1lbeaFTx20//Iixag\nwyOkQqHafWg3Zo1QNhw7BME+ePH+6Qji9bUFk1wKbD1zEdEA2GO+mbGNdemp\nLX22\r\n=ndA2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDP9w831sgqRYK+ewCWTjkxoiakvZxnVOhjzOvVkCTZFwIgd/yh2W5ekBV6DgoJLbbaLHHKf6pwB3J2ofrbO7tBW5w="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.0.4_1594210794880_0.5951727515335388"},"_hasShrinkwrap":false},"1.0.6-alpha.523":{"name":"@midwayjs/fcli-command-core","version":"1.0.6-alpha.523","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.0.6-alpha.523+2c098cd7","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"2c098cd7c47eee1e60c53c09c1874265d087a8eb","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.0.6-alpha.523","_nodeVersion":"13.11.0","_npmVersion":"lerna/3.22.1/node@v13.11.0+x64 (darwin)","dist":{"integrity":"sha512-sYFQ2DcfMgU9jQEBfbFwxYso8ZPkJ/W/LUGdXv8G6YD9nPbh6NJkcNQUpnIAUF26qUDoND55qbHgrwDtYDvaxg==","shasum":"15c2592532d78749c5a8b4149208a14670bbbc6e","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.0.6-alpha.523.tgz","fileCount":64,"unpackedSize":151393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfC3H4CRA9TVsSAnZWagAAFx4P/RPsyZD1920C0cyVyvCq\nH+GKyhiZR6Rlog7GxVwy7JUrLbUd8JQIQX2yY9FbFL3CyLifksNAtLdHKBUP\nTLferBm24mS7JPKKoMnfIzYUIVep+kRzZnu4Ufb3adzGWS344T9gZJpLIZoG\n97T82zam7cnSHqQs6ZYRiiPqmmRfCmtLw1qbriEFjMHn7YEpiCpu4C2eR6yC\nt0k0XIcVv974NN1E153wko03rL1pI0+My1EtQhEaT+5tJTe7FCHUWJEsXaPh\nAH4x5Qid+622MZQ0ujCzvkg0QeadnyiK/Kscui3uGl4PptDE3RuZUEDxvQ8l\nmlgEgDuPKb7lnxCR1u3SZRQgTHgzQ4xjp9GS96EgIsIu0ZPY1ZTHLz9uigQh\nzc24i7+NqFY7YpY6iO/H7uTSqugik0fzH2s6xycF8ZQq2dnXZslKKtkoELYR\nndB+nf4prf1jqJpupFaU2ObOYxlWqJQsyCWNJStYWcmDAu1leUjDBEnssDaM\nicDi50RK6WIL3HYZaYn4+YQskevDs/8zMYh3Xx57lI/i78uAwglOi0qk4y9J\nKvlPsoQjSwRbYzViVGk9OCkBLguPFnmmbIgcVl41SofY5i2f3/ajlhFcBfhY\n3CRdMiXDOvzHVXszErZEGaMX6ibq5J+ClNdxTmmmTh+5I+zwepWE+BZu8zo+\nkvHA\r\n=tX4Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBhQYDl8XhX9AucBg2bP/wLzjAAQLb3eNuo6KJNkh2SsAiBbwMqD0oxlTN3QwXq/6ew7sAtVGcxMSqalgC8bIg04rQ=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"lellansin","email":"lellansin@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.0.6-alpha.523_1594585592541_0.5651216310735077"},"_hasShrinkwrap":false},"1.0.6":{"name":"@midwayjs/fcli-command-core","version":"1.0.6","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.0.6","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"f0d28fdc69c2bc750a23fd0de5e794244c11ba33","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.0.6","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","dist":{"integrity":"sha512-d0ogJ8CtjO/XP3LjnvM0ZnEbkV9MZZtNcaYBVeV4E7EOGjNU1Gx2lUp0VB3/Y4PM5WJMyjn0Vam804VI0fh4nA==","shasum":"110ebf769a31548fe9a3a6eeedc96aed50916071","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.0.6.tgz","fileCount":64,"unpackedSize":151540,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDFr+CRA9TVsSAnZWagAAAsgP/A1E/bvJ4BaUiE2y0zv1\nYJxewMvUOHyxtCiAqLCYWguvgM1fyjPTUUQ8cjFPJmzwDtO5oHexmfGKWNiW\nLU55JMIPCGv7cnvQ8HK85dAbJLwP8xb90Z1Gkn/4VJDkiDGRXhKWYmoormZv\nZHe81A/2eLgSQFNUIxFRPzJkeygZxcvIPg4ZWsawVZkdus+B5A4BCKjd6382\nrDnSybaDrz/OY0Nzjir6BEzQefcJFYMWVuaw7r0We4K49TdEUJC7zybVatNd\n5pJnIfNQlMbuWRjaF50Egwu2vEZp5pUvupRU42pZ4Q7YAWRSI/eAOFInbj1i\ns90AsHWv1ATjtGYPcXTVeBbYKF/Hda5v+LWXpsUqxsGPqRWC8w5ruei7cx9S\nc+tHxNjcynZEiQhypVJXDAIMstev+/sOd8ECm57nIChEMZyQRKwB1iYAIfGG\nQPaa3kS/YskM+nKnv0wLccjCEC7LzAJhuEC5hkhpg9qREAXBI2P2pEx+w/DJ\nvknor0yOXZK917L4lvLskB6aO31T5Jf2GcRG8Hg8G+IVmDLrk6rPiAMpPKp7\nO4BIONuIf4zBDcGVNjdZvi0G3q7ILZi3zzsbu+OzJA6gOWCdqZR8FAN3T+YZ\ns/z7KUpbA3uvYdHAxhVdrc6s/nHoiPbJia3Up2DWnnk4HPr6jAIvz4u+0Uqx\n78Fv\r\n=WvVN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaVHFNjyntIewwJ6TSM0QpYhnsX0x0w/ER1VV6sSz3PQIhAO6IudXQ0Ij65vCIB7lmVYEyWDxeLt/+cj8GFcf3SBXm"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.0.6_1594645245975_0.4744881759279618"},"_hasShrinkwrap":false},"1.0.7":{"name":"@midwayjs/fcli-command-core","version":"1.0.7","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.0.7","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"5ea1ea0db9e4bc86a3453f97ab5dc82acfd6c68a","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.0.7","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","dist":{"integrity":"sha512-YqfvUBf+/99Ns5sdhWHULDF/3gGbja7deqC2hihI5nwDw2f/JIzKdPfslTf7YGwQ3qDWOnrJTnbSOkZveh8XMw==","shasum":"04fed5fa978d615bda8fe56717160035200e2183","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.0.7.tgz","fileCount":64,"unpackedSize":157520,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDXxNCRA9TVsSAnZWagAAhjoP/3ni6DX57DhukxYrpo0E\niG1y4wZ4I3l/lalXh8fYUJ9VwFpdYj0xvZE2Nni81SNbfntUnGVFuUbHkIkN\n5O5/5xbs1lwHbggutl65QFdQH98MqaHGSTZeJvXKjjW/l7OVzFx93ZVOVTL5\n+nyliIVxcaf4IZ/0F5ViXlFYVJJ80cbh4NDNZ9rl5QtOzcvE+LXyVfIU+fSt\nuOJJ4Y03yiDlfo6nW+pYFyQQ69Vb0vi0oX/HEkvlDeC5CH5yTZYqo/aJFwEm\nYPnH72sp1lILAf/2ZVkGLl4J+exADgNxCScKsVnO764oas+c5iWkqf1Fb237\nJ7chFeLagouzD0jZJXSpMtc/JT9W9F9BomKTDA/Qj8uqDxzO7Ldy0ZCPcxvj\nJIIvs5N5qateHhiRDqyPq/y0LFN1mG8WG0II8v0l15hIiSPf1PfivKVxAcgR\neAskV7HjEYGwgZYv2+wub0QqLXJL2Eom2oitdLIsCc98PgawwhSfUw4HpvMP\nO2rs/RC9Sel1rusVKK1/hVTl9eBrp08O/4ohXtKlB5Vm5IaXEsLXYqZ2SYpf\nO3xiC1rouaePflhsmR94BAVfKcXRozFIlfp8zbhSnZ+Bs/Sodbp58W07t/I1\nKdu+CfxbvnF8LJVOFpbfVd+o95OSF3hJtO/k8ZbP0xcYP0DI2GhibL/0rnN8\nGIVV\r\n=bUoI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDl+MWKUN81OrmSQcgepVA1KH8qNuTFHtrA9Wanfuz1aAIhALi//IS/wemZjTlUE/C+PiUzLcCPHcwRn0E1lnHnxSeR"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.0.7_1594719309485_0.48216301479297696"},"_hasShrinkwrap":false},"1.0.10":{"name":"@midwayjs/fcli-command-core","version":"1.0.10","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.0.10","minimist":"^1.2.0"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"274318be463dd1ca9eb728adcf4b3233880425fe","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.0.10","_nodeVersion":"14.4.0","_npmVersion":"lerna/3.22.1/node@v14.4.0+x64 (darwin)","dist":{"integrity":"sha512-nUhaP151m4GeKA8DCUZtQuFAEHGF4+NDT6FvhUPUf1cbxZ/A+16OqlwKu69RZTJ8ZZoTpby6K1mDs6v9oWJiZA==","shasum":"abf1451f84b55de532c3249437c99fea3c52a395","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.0.10.tgz","fileCount":64,"unpackedSize":157709,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfD85eCRA9TVsSAnZWagAA1jEP/2/C0Eq83osibSHJiWfy\n0kcOeOyTQfMCvk1bziA75mW8aQAegCmqyuXOECYvMcUklF4YHXOxCuhimXgj\nXZqSG3ykVROCBl4RL5eECBPVjqdiFRyqG59Aki9C/+JhFA/5BKYwFU1O2aJw\n9XLzF6A5KG01FAc+MamySN46GgHVjMcGI72QIX5dilLoicCNupIJbH8tX7MN\n4ojs5LiZ85lvrGeRdhQCCBmSgNp+6ldyxhIqJqfhQ8QWFrTo/v/115nP8SSD\nN0eOQxXZaBofiqnxx//jDniZm0zW5yFeO56ZZUZW+pgjuR9Zd2Y/pHicN/cA\nBW47LAkC/ODiKzONnlSnzIw60yiHErEeXCS3g6vgBmkz2F3N568yGhUY8KPB\n4NeEgDtIcOBMgT/iM0uEpFvT4pSwE3Qdwqu5Qh3iNhdH7IiZ6KcePtqU9kRc\nUf9lfJdPT4hiLjVD12GJMhre5XNYVRY4KN+R+CnfcjluWv9K8r4fqohOFLhZ\nGlceFUSW4PzstkKz+fsgul5c+pGP0J/vXyq/Vge8eRjGrirtEcgOlTlW0C6m\nEB6mhfmaQEuYeJI5k8f47gB30vkkAss6ujif4ekVdRNhYRZNvCYP9QFpdJbn\n2TPwBNcJF8xN/l5yW/NEnNsR5Iokg/hY3T/z0QPT4SsVYPxsMMZ7ysfqjUZR\nCeB2\r\n=WB/m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6l12rnYhJFoZvh7txEcjr4pk2U+fyaVlhtS27vP0EjwIgO8NAlU+qGBv5CFCkm1nQDES3Izw50WdlPeOYZYgcyCw="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.0.10_1594871389596_0.09463245899264905"},"_hasShrinkwrap":false},"1.1.0":{"name":"@midwayjs/fcli-command-core","version":"1.1.0","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.0","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"fe60878600deb7858651f42c15ece30fce1c4f47","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.0","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-wN+glH9DHbfB6SNdUcL3qATzCRIUMZApq1azyYP7pDnIrW0d185vcPzVrBBhiAuzuoCJqx8dq+MaRsHYFZKjug==","shasum":"81c0b7a3ca56fc072c0ed2c7668012f0c5c04255","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.0.tgz","fileCount":63,"unpackedSize":156958,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFs/rCRA9TVsSAnZWagAALJ4P/0AUdd/6dS/Y9o5JUG9w\ndztbQ865aZbRtqn/Jn1WO9kWqOoalvPV5DPftS4O5ujcoJrSzMzpLgY9ZNWL\nijhvoEUd2mh8aAPJ4l4M+ULZLby3Dz3uTpnFA5HLjqmOdMUIlgsyWdFdCes+\nhhnaU6sAHn2NzvYYVMfz0++sGa6XgItjmgNoWIOx5o/KGWGLA59KcOhBOy01\nxdLbXMrvyts1p4wdFRXOHANdTgGvVcS0F7WnAvJ997qTGExJinAl920agMaA\nrv21ixdPI3+rqulDA8gCG21rzj8k7YRjRn662OFhS0p/oaXCd9pJi74Lyxtx\nO5/cbCs7dyDrwC6u/5JjZhccsflJ37Ybi5R3TX4+Z4ILYscPmbgElWavo1rR\nvsB6a6+o73+yM8YwQiehyBdvC64g5OJTfikSQQGT7QOEg/P9mpiFA+eBDAAx\nR4VxCYLXCCHbKR90l2K5PB+ANyasRAorNkEUwWpOgBskbJP2udYZlz2d3CR0\nK8TKTKZQoMb2takS/H9PyhSlONR+KR2zHRjVPVNmedXPu0L6U8GIgNIfL8oV\nFNGuNbLKEQN3LDYR2MjAIcBm2TWfILV1/0wTYvEdLtIwW0JhhUytZ6SrBl5p\nv2UJMEmr3N23Y5mw2XaFAp03uBOlxEXLd6Gt4Y2oxxRKPwgvxBl5KlxDDZHM\nSPwL\r\n=shDt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCHwh5lEnW+R/5RmFjVR/lRNg2/1zRvcJmoTkzoGp4w9gCIDDP5K0hIL/Nm8/ZGUQrv889a9BlFZZsIO6YQTYkhs05"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.0_1595330539371_0.9146850881114221"},"_hasShrinkwrap":false},"1.1.2":{"name":"@midwayjs/fcli-command-core","version":"1.1.2","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.2","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"920af7626fa583e197a994d97c1cd44ce196c51d","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.2","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-nVmbJsA6S6PnyII8H1eGowMJO6LIFB1oRJGKufAJPyke12NGocieEJIbsiUXZckhiVoIJtXpzGOPBP77yoFXBg==","shasum":"d82b06f0904a7a76e4b4d5c0e5a0d6bb6b5388e1","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.2.tgz","fileCount":64,"unpackedSize":158214,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGX3RCRA9TVsSAnZWagAAIgUP/RKoaGdCkgNbZ30gwvTu\nOTOTwwfSpOQb4GGprYLieTuQw4TGBiqL+DYMBBUDHzCSWO5i9vkV0wWUNaxF\nwVtfhGN2H7HmO9HkW+kO4NOflxl/2oA0YP8DJuMYwJ8k62w24P6kQ7DLfwdl\nChSsJGk548v/KEa9NqXL398FrQeKt7uTY4DP12rTIVc6Chj7kxav/yrLdYDO\niSBYrmLuKuCAZP2/qLQhNCDsXSvPNm3Ss0M3HKlmBh4BjzoM1Bu0zSjoGihG\noZC5Y3r+xWR7gA1EJupWWINNb/BpM/wGd3oIUXEgoGGwoYt/d17LAXklXjs5\noVyY10Zwhh33wHpzVJEtwEsk/aISmH1KUb+0ERZ1L/1WvJSD/jL6RT9KbLv8\ns5HFhz0OcFFMMSpeHZiw1hBPGvC08vnq04AoLj5yLwui3fTEdsWjzffv/6sG\nY8PyeILePPOrXJga0iyUaD44ucrL4hbKOTKmwkgel4RE5o3JhXvfOvtNDJzW\nalOybuPIDFroH2JF5761PbQyr1ZEe8s5A/xrJhdJbtGnAazEVlQYFXLadeMN\n7bIP4a5esJh7wpEcSEp1bqXf6Qzat4aGZG5vCOowOOQLBU6DuOiESyCtEr4A\n30rs9TOM5vS4sDFIYu5ENQlX1GAiU+urcPz+IgOHyY0gY6FjR7IjUXilyKP9\neRcB\r\n=VlDf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFT38nElokXBNe4Q7tmGwbBnmLetxtEKxcmCVI/nWTC3AiBWxBNjprroZNwPrZitmwQkt8GjZOvWJnCXNgCZu0fdRQ=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.2_1595506129304_0.5888182479074688"},"_hasShrinkwrap":false},"1.1.3":{"name":"@midwayjs/fcli-command-core","version":"1.1.3","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.3","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"9711a804728ce439864f3eaade009ec0aabfcfd3","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.3","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-VqZuDZbkj+GNsRkjlXj3bADZKKExgWwZeD4EHK1gpD2c1qw5NgSBVIfhmOpPGCu5/Te3+pRNlOZnlcP98+Bz5A==","shasum":"7d05fa08c76da0eaa7bc1112a831fb205d8192f0","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.3.tgz","fileCount":64,"unpackedSize":159212,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGqqXCRA9TVsSAnZWagAA8OkP/39oyTDfC02hkRJCkwqJ\nrZecDefMLHVKzmZ7dPA2vQO+XD2hyuaLWDxj583TTaqZl283osRQfmcaguEn\n/ZR1qrO/eGKb/XsPUWAv8ApmxmhreE2Q//syf0YBrWHK9oF+zt8h8RJSuFqC\nX7sh1GZoeaboZ5QxqvgJyd9FvIK0yXd1SGUhxDsNLUtEwemY2RC3lxttxaal\nR2Ug3dxWb31I10MOC4AxmqWKwoIAVRsuXaypl5cseWhf9j80e3qhKF75L1Cl\n/M8rS7Blis/9hF9NsE0ES2106IOZQaowiODGtM2Z8Q6ad7z/4IQ5aIEmLDh5\np8LMLAAEUPzECBStZJX0dw03Bkkinzx5OWjv1YOT2Vo5jhzzlGs3wIB/VwIU\nwieU3vqx8z3pX5bKmfogbYcGx2tuPsFdIrdkX/chbBEgeJwON2keG6XyT9vd\nkAT0de2MgY2lNUDRQYp8eNzFRnXOYne7pkfX+QMOtA+2lERjFKzsI9eLIEEz\nzEGs4EDA+d0h3kkFomPe/44D+8pQzMv+9lbRe3+nn0nV3jvtTWp5ebjthBkb\nMLver4KGjU/dmDFZ/Mj+aE9cE5+MVtbNWSsTiFQOYphYcFPrkvwOKhb1TkkH\nuDV39ETVCjpDKM1Kr4Ya1eKobeZa3fOpC+pr8uogLMXbQ8OTVxLsUhdnqq/I\nJHoK\r\n=pT7t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGx5xhnbiC3cp0qsRaBDLC/FEhNrcDLdWB9uv6v0Yx9QIgMcXrUn5KdcyPaEXRb0TlPq/SSibixl5V6rE/J5vMZ7M="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.3_1595583127385_0.6440380990900472"},"_hasShrinkwrap":false},"1.1.4":{"name":"@midwayjs/fcli-command-core","version":"1.1.4","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.4","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"0bbffc273dd6bec46ccc7a3907bf265a57480fbe","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.4","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-lzKEqjzMaIX3kl/kikXhQBx+IaAGLJDH7/L3q7tuNa9jLLR355l7WhXxyp6NhAOxLy2jTuNH4hv7BM19GUz1dA==","shasum":"a349742d37d18a9167349aacd8175d1becf159b1","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.4.tgz","fileCount":64,"unpackedSize":161117,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGtJeCRA9TVsSAnZWagAA5qQQAIeKFWEe89+elEh+pBap\nIoQF6k8VvCDgNrQKEHQGSlehshz4n/E6Yb7syAcvZcyEkj58wqm4XjjohigS\nDLf4fe5Qfl7RtmlG1uVqd/OQg1tgk09RFUPQlp1i/beazypyhuhB/8jAL6LM\ndfQVTRSSNVOLxE1alL8eM26uFNLTADtey3opx9Ei+qP+xOJ9OiMP6DVghwOK\n3EsXVrA/tngbXQKdxwk2eKDAQwBPS5G9z7RA7+EpPEd2CqWvFYEaQgxc0JdZ\ncxY3xP4MCe5Q+KaXbOJAc583NpvAlj/oxKetIJWSrczpQ6WKBkpWX+3N8xEG\nq60x51LoY6ZdbdfQHJFpcrdhTiLZ3+ERpyUn7bSWZeq0/5jiBKvIpF9l45N3\nAu+aezDbkhUNw8DFz3Ek8iInoLT6QyHUX3UPcw6Sy1lsp8+K4RfT+zVV77dw\nOGCWStfASGTA9D72AdxEkwoT6bvtMWi+cVKh7gTvzswBeVRc+hQUxErnAUOA\n9nJLXiwiOGPYIBINtLvzenp0kV7ukPCUKrnJae3YXF7PF+s22nU8Kpc4r2LV\nzGxcDcSGLf7U1TfVGLg2DvZ6TImjIbybqQO3e76KOl6RTQ49nEm7FmMAAwnE\nrs+6F2vtlQ5Y1L8FmRNxNWUgU/h/1HJkjGWciRASHHbzDnBHL/eS3o7A2jqe\niVzM\r\n=UkGi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbuXVk3/Wj4B7aY4Oml4jVno49pkeaNjic3NonnruizgIhAKWlOhi5BfU577CtLJAHz9G/d+nJpzdS1rKM3NSEKFP4"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.4_1595593310260_0.2784645751021215"},"_hasShrinkwrap":false},"1.1.5":{"name":"@midwayjs/fcli-command-core","version":"1.1.5","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.5","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"57560623d20e05cf196c7c4ffa8fc1d1637a09b1","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.5","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-Mkbt53afg/RiKN0bsqxEUo8bPBRL5KwfMVIVG2KUHJdZpRb/WufKMuCDU/Yh4dMqSf5/AZ8zey3Vc4FTE4n2Fw==","shasum":"c541107993d3307d15aafd27b0594ce482a3a620","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.5.tgz","fileCount":64,"unpackedSize":161327,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGv81CRA9TVsSAnZWagAAQ9AP/1qX0NmIHvhub8+Ryt1t\n4u8z97riooiv/xSFDBdYuwncnwNhxl/uwYWjZjb+C/iVQ+RPICk1rdzi1SOH\nuxebiFjradR9xGsuxB834T45zRPzkvot5tz3Qm/crxrV0JFYPmS9/EMEJzMu\nAErLM/YK9BZVnBGLLJJ5KVTsRZHgq/FtK6oqFOI9eFEYmp5CYG1kN/vIUe7t\n1OJrDzWwVppsPpy+SJziWs0o0OgEF6n5I/nbziDtMpWNsA0ZhKSNXa3+kD8Q\n9ZQS1l2K9sxYNuf7U8ah5hGP4zglk82u+zBlHjvGOdPVZpLYXqckXx96/PMK\nMJhG0dGCbbD+u48xOVy3quq4krueL2c5sgdJ6FSl1y0sntiD4IjwAniliC1i\njvmFspz1VcMDbLAV5WGi8UVVSVN/eww6VTjJgyBVCmPQNz26Qa3TC60ErQdn\noW5b6UyMmx8RPAwVIdRtXjWSawScTg1YVoLlZBhs/zyxs92LU4vGh1uMirmI\nJziNN+srJHb+S0Sw09ch4ZoZ074+pDn0uisxNWdbbBK26N3rYPeCD5Cvukh+\nfa8Vp2XzHTQEQ1SXMIZYx8fASR6Xj1mzNHmJfbc3SGV36LDIFFdC8fYWGifj\nj6Ot2fLlRQJ535/paZZclie7P6UAcnEHhO9F3r9ZeBhe006CGsPlVFbkuufC\nkabc\r\n=eV85\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5LSDY/NjtQm6Q51CCHv9SbLR4qcYBxdxAzO+5TIs5eAIhAPoohHQDItlx/uZnl3UEn8zWUSWOBWi7Db7i90hdtROA"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.5_1595604789296_0.8670913883219562"},"_hasShrinkwrap":false},"1.1.6":{"name":"@midwayjs/fcli-command-core","version":"1.1.6","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.6","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"12ebce81895a0cac84fb4d3aa976bb7e6dbac1f2","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.6","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-MydkBJ6dLR3Y7hcqv+7EsJVU6AL8xeyzrwX8AMqroLz5Mm0gAwI5v/u8LcrUJysdwJ8uUtQR6+Jnh98DfKa4Kg==","shasum":"084564645b0d5b8f0ae8def8143ff450b49f54da","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.6.tgz","fileCount":64,"unpackedSize":161512,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHUGcCRA9TVsSAnZWagAAHJoP/RrhPpNHOOxsDaKmp8CK\naFRxZF4M1dbQYC22E/VieIKKZxBuz5H70URZPLCL4qCvEpisITC9+h3Q66oi\nhBQ1b8VE64QCTDSV29l9av7avbZZEbeyvjk981t5xkgbdmpn4uQeAwd3U263\nj7RE3/7PkLL1vKoAU0AJ7dlQMJ1hsBVmCgV8cqIdcH7QkSsESD6NBzuE/gR+\nwfKkMLb6RRWQbkvU+0RhdJMtF3aaittZQbcVcZEVWZ3PJsftFtLIN0impArf\nzyXxMLVBZTP5uA3OWEJbpb9BlMAGksJyiW4bRjFTwGj60dKUdxHuqmxQs2Fz\n7wzQNywprLcDtU0fBcgb4mgEZD3Cj69SdffEbsMLSSdXUnfk9qaZJfHLX1wR\ntniUu0Bfj8Evy5frWvsAYHzJ0sF6HV85G83VRgi436bbo/vEeT7Mte91Gd+g\nSJcz733lKAHYaUHoOzxl18YQ/EONIe3WMsd18YFkeGPg76xZPpXkrlevVxJa\nvJIrZnvEzo/rtkCAY1fiLnJtAgVE32Past2SYjLH3PsMb8Q/ZSlL4LvqPx58\nbsKFalyzsFRK6NgNinHZtJwn9fHXCKkYLfBKcE3JE1zis8zPIRJhGHZTRPX2\nqkS0et2sj4cFdt+TOEwulUdw5cs72A1cCAEmfvMjaV0NVeH7Vnqmx58smATU\ngIRW\r\n=Unnt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHVZesBLC6UiujWoMRHqtGGI0UgwhmaL8QWZJ0wignVoAiEAhU52fKySmpnbdEVaUcQpkkAz+Hlirhk9PkDqMWL5tX4="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.6_1595752860544_0.17665084702137102"},"_hasShrinkwrap":false},"1.1.7":{"name":"@midwayjs/fcli-command-core","version":"1.1.7","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.7","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"4cd45bd7be38d9702a000d86e8693cef32b00e4b","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.7","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-t849aZnHduI2voQ4q4ZoFeqG0dEf4rld0omWWO/Wht41LCwjCl5KhgOiicv1+T+peYQSdCos5jL7GOPak73Qig==","shasum":"fcd455eb72b516ce43cf26d7aa9daf270b51a2e8","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.7.tgz","fileCount":64,"unpackedSize":161697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHXjbCRA9TVsSAnZWagAAdrEP/ie+HI+e67GGXwjmjDHY\nICUshlb8aWrViJx8GMxcKaIQ4wtsGsyjz0+OjDY/4VUzcLfNsx5qQSDjJNb2\n7EwsNqrvEJKJl7S8RYMy/JbM8VAQEYW1AZrqwMvKNFvhhRzNdAU8jKN/jiLb\nMK0GVHfaNKa/sCRfHrWVDO+GxYOUcdcoD8JFZHWLUIaDuUkioaQECjd2eDPF\nrsifyscYnJNuWdpnDDRFERKUObcvKLgtxPRZhFoe+Q4brP2CUsd259S5laDX\nB+BG+uCwTKJpu/sv8x43T7uKxluZnb3+Ovs/cGOR6Itwcg8EvQiOhdmysMnk\n4eNrp2KE+dlz4k9gWYX5e+m/kvBtgFeaXuGpQPjSNlhuMtncMrH8oBD8y5Pm\ntYJLpGjAXy1STrXXh8vuNmRTh+KgkXjRtUV3IinzyZjylzlbBadlu0iH3Y9o\nlyUmazwzSsb/vp/CMccvFPoS0PJSC+Fo1EzhW4Fyi6JcZtXUoIYcqjfsbGZq\ns4apgamcP8XVoCzNuIKZ7xorMeV58z81/FqeBSn94LFZTmrERiKrecc/i/zc\nHHaAIAAP32p84NydRca3QJechydHjXLxvNoBvfDavmnwrl/w286Yab6XNftj\n/rW05wklMAk+z4cxYkxrM1ssLX1HXADCd9n2s5EZ1dmjpQIxrurHgo3XckMh\nAS5Q\r\n=dvvp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClUZjS6tH6tj6z2HvkU7bJf2vS5yT4vC0kgzOwyEQhSQIhAMd6x1+ciZtio+dsJMnMdPspzwXKbn5/QpQJ4TggNQfZ"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.7_1595767002620_0.5804416687771337"},"_hasShrinkwrap":false},"1.1.8":{"name":"@midwayjs/fcli-command-core","version":"1.1.8","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.8","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"c0efdd31e66bab3bd70adc3ec23a9d40e8146850","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.8","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-uu3FEnSoNGOmF5ekCx64y2EjTBUy8SzGEaFdC5BWUK0uu8DV7FxdGm0/KfI5JONKEkG1eag07bsFdXsmUSW3Xg==","shasum":"79f0476a69ef27428bb938ac3802c4839a0f9a0e","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.8.tgz","fileCount":64,"unpackedSize":161882,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHkBHCRA9TVsSAnZWagAAm1UP/2+RWipSJAu2z1BrKRlw\npHumweurzYxPMbZ1aE7tl35tB7B+x1nF5Cxj8tZXqV5a0/RPUh2dw9U09bs0\nLRyGHUoSfYQUUpjlHpEzanYdSnjwagoPn9kC9ag5XjXB9/Wq7QzCIlNyN2bN\nnu/A4lAFArTqkMjE72fgJn7MS1uT9MHu2nLFzEGkcOtHmbhZVzNQDbkeHA0y\n4nz4XvAsOYIfYEIuGPg3QecTAVRib6NCteTFbygQNzLlh4ZThOzYgOEiVWLN\nNn4hY/M3wbcaimzJhbosg7v8s2SNckACPi1Iknd3AGzKmXpAU+w+XEhgC+lF\nwMv8O1c14s5jFMlWO1W0jJK0Tg4tHBnmXu4vVh5skqupHcBLUSIQBbB3XbAh\nrvaGZIa44qwDkzGktLKPs70XafCh4/OUY0voJcplqPkgNtTlzUD3F7mRG0up\nysXdxYLSXu1XdSIplZlF9D4ToGwV7fn8N1WlUVlAQuQBO8Lcx3htBoY1EHUH\nkMQgV7LVZs4d4c3eD6OSVwTu8hN4EHfIMYbVlFy+RX3GI/WmdsliAdiYLuBS\nR4DgjyFEnZt1H6xFLFtMNkurXRIwxfvbi86QCqpYOY+8cPjQOvZmCd+AOB+I\nCJPonnt55+VAWL45ZZfc+/v6ipl8A5dPxrIY8j5ywkL1bOezSBbex2hYnACW\nJ5Nq\r\n=rrSe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwNDqew8v5ef5S9eobVZeDeWh9/FjUwp3o2rbDVLlcfgIhAKpCyUHFOPFnkxZ81JZKQVRbDuSFoM73RM9cJek1+0Iy"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.8_1595818054969_0.2530335085633115"},"_hasShrinkwrap":false},"1.1.9":{"name":"@midwayjs/fcli-command-core","version":"1.1.9","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.9","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"0c05466c2f82eee435f61d914848b60e85c09224","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.9","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-g2taKkDb0om3/zqxEwfgsb3hi70Jc+4+2KGTMR1jMeu5NvHLspHiNHgcdZ92F49OtXTqQovTglPEEy/Lq6G2tA==","shasum":"36c64da8cc0ec5a7ba6bec4859143b3b8571703e","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.9.tgz","fileCount":64,"unpackedSize":162045,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfH53PCRA9TVsSAnZWagAApTUQAJMgL72jJYNPG+dcBcQd\nIE9cMQ4GegOcRVe7cbX3lRg6MoCnMQUJ1f6/lCS3Rhg8M7wrsxjHilOW1u2X\nwFEB94f0mdjOPDRP7rfzSDqaxv/CsbNxZ7VAgW7aM0Le5Y+U5mNouPCdojDD\nhZIG4OIVmBpQU76UJjd8VPsr27n7cJYYppgDQC0pWm1Vr0go8/E2WDHX130A\nFId2hUv8DpujDRcTEe6fSWdOyNsRXXzWLmgaEbwsLEsoanUsJujzDA4mG7OT\nsb152aldMq4KmPkLLZA89xhjKmt3CCGNbDN1nMk9LDhyLgbr4pIXJFhn0CFf\n8uA5iHeUQkqf5PSRgCemVfg/PuEzSvSXOqElqqY8JS9gkROp35/AbzaDvxYg\nwzlJpSjFM0vPy477j+GS1qEJUVkgqSP10vdKdwgTqjH877TXAKW7+nEEPmVn\ndTbq68NbyVIt0Py9SWTCafc5eG3WpPDCSUPdjntnlGRJ6X3LTTJIwIK9LfR7\na0yrQWjFNPoHVE/oUcixnLOk1m+EJbJZRy7RhDuNRpbdBUNbvRO1Rnb2H73s\ndrFvgGf5Qh0rmcq6DKnkSwRYp1XQbf2Hzhuus0C3tSk7zMZ3Y11lW1iiOSSK\njjcSMviNmNl74GBVL5vf3R+3QLBgTDM4/cxBQlgGoy8HSZyWda56DHzjkjhS\neQTS\r\n=mjSx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICnwhnn5ZZ/bmfmF4I5gMMlV19fsL6mYDRHYfua3XYloAiEAlWfEcV0VvsIKRr6CnRGFtKezgmrjOnnHvlkRg3IbV4Y="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.9_1595907535065_0.07280540075895559"},"_hasShrinkwrap":false},"1.1.10":{"name":"@midwayjs/fcli-command-core","version":"1.1.10","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.10","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"c78fdfd4ac7fdab9f4091daf10b4dd5883bc4210","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.10","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-GBXBtlV9tVDxEdQm0P2hS4bu9yV86ttwlakYrUekaHJLGlbvauWQW9xBPcah6aAj7kSlKRvd5gDdG6BvQczrCA==","shasum":"7ddf0719814cf516608f52b38c92879f9046a76e","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.10.tgz","fileCount":64,"unpackedSize":162234,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfH688CRA9TVsSAnZWagAA0VwP/1WtDWIe99+aIRPQ251s\nV/rw0jU9STCs8rruOYzX+Isa8ADBjP35XbRBRmUbQbD1khHwz9daP5hf7TDE\nNB4LgcHNa5tEOUtSMeZROi7AdphrOVdiIXjlCoSX5ncfN30yG9kF5eMop+DJ\nq2xiSlyJWDBiTrh599qlZl9yJzC0G5/6/58AUm5RgaOVJhoIJVoTpiTL3Gwf\neuyXB2SsYtNfICizfIRlf/Kcc6aIG6TRhaXARLRZfVmj3jyqnFVlyoDOPTI8\nh7v3LNSbZJy9veg//H+bXgExhwsN1/h3RTMc7UwZK4vw2xwJJnrMBj41UGXK\nkaGfUVpsumD1pIR6zDIVtUxbC7GraOTIu6XHRDfdm4WZ5oNRB9bxfy/xHkVe\nOnWUyyOb7BjO1NVCGtgc9k7NVXY/0Up8+daJHXU8goGBj0zWcTx8KVtOrdHb\nVEBC/5E6wUgxkWy3lqwdZz3+CJGFxThF+lVFWagpLJe6g6nTTZJTWRxxeAj1\n6+vfNvvwwFuCRMyLUnYN7Unx8BqVUAmBJCaGiY02hRo4QFcXEuh+ny4sPPlC\nwiOdY0RHmupbiekHl8SHLb9x238YognS12eLFjzpBCeU2mG/KsJsEM5j/XYg\npfj38ymuH1o/EszhBrZHfRQO8RtdpJq0hXzRfuxkDSgD67bu2Q/7XGVOi6pe\nfaw/\r\n=vW4+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICBXrNHVYWv6gmRr1Gs1okxY77hNrfLLgFLEDIuYYqqkAiARKE6m4hlDKq/H7D6l9XL6EPtP/DwAm+EzR0O7686cRg=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.10_1595911995718_0.01773842394417713"},"_hasShrinkwrap":false},"1.1.12":{"name":"@midwayjs/fcli-command-core","version":"1.1.12","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.12","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"fe8c29e01e5d35016785b9ff51f0deb28b5a9865","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.12","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-fyzcU7IrD+ZCSgIfR8zbwrKUTEMfQvjhgfamFtmYCpybrNlwbAjRzQEylUfi2NZZZM/DAQu5xoC5r1n0DbvZ+Q==","shasum":"def0de8c3f02359d378a848372a88cb466892108","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.12.tgz","fileCount":64,"unpackedSize":162422,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfITtXCRA9TVsSAnZWagAAkEgP/0BhyBde74aeNekLOBno\nZu1coOFN59Iqzt59ZLrtVjZEPg8syas3Wu+hRKj3q1omPU5x5cJBhr1p0y7H\nYuSSm+sKKVgIsu6kFxnzHIfDN0yhsZ7551veUdB+WkJvjDQGfgcH37N0XaVs\nHJlgvyF7c4hwud/1l9VUNl7PtfIaPZ9xA9AV2o3PpuAHuMRaQEI3LlI8AW/a\nVpmBp5MewEuB/x/ltTQq0r3R8ioV6se1lpgTngp7X/bBsbx6MGczJLeelWyg\nY89K4O11vKi0DpDjSiN0mNdV/UL85YuFuPnrRuy4W0Ga1JuqdN1sAt3nH4Op\nMsZ/6FuT/IdybkkGnsZBIin/IoyFhknraL97OO4FDyJRdMSwKAXlpNDI1xLY\n6yLKF5waLmVI+4TlxwcLtuq4f8Cs/FtxIKeIDuj3RPly71SS2mZnJVU5w1Sh\nqUYQarVGaJgQ2eE1IggLtthBMCgYOg/6mgAGVqVth/uJy7mxv7KF/JX9KiqL\nvF9CFIF232lA4buifMxfNjTM2S3gm/cipErjR8GxA16tEzrkoypRs3PhO2w1\nIl6um8clAvb4tFpOXA3KPkab6S0QBzJKqrKRq4m9Ou5kys+6XTkrGxiTza8v\nDrdgcrsxw2Q65/md6hZhoAs7eDFhyX9sAhY1CecZ3nYTo0K8UAL59WIpuifz\nwwWS\r\n=z2r2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAOjc889HjYkO7pyCeXbRL2M4ot67UOvTFGMBx6s1QHYAiEAjJQcOZUjWC3GYgvUfX0nJe9Tb0O0Ts2GfuqWzH3yq5o="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.12_1596013398707_0.8651892492324591"},"_hasShrinkwrap":false},"1.1.13":{"name":"@midwayjs/fcli-command-core","version":"1.1.13","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.13","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"33fef477785dc3159974a4b3f269c50738963206","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.13","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-4JWlcE+NOf9PhXGs11EXJosMnukY2+/ednPp7y2jv9O1lBWfOM5g6ey76VbZafKHXI/7FzxiofsNTq3mKAGWPw==","shasum":"972d2af34d1ee4963843b027b87c8ee69d1c649a","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.13.tgz","fileCount":64,"unpackedSize":163051,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKAwxCRA9TVsSAnZWagAAuh4QAJn/LT0ip4rWwvFuIKsj\nsKceXWUDQjb7hUpjK7rHaC7HNGJ8j49siWg2TYpr6NJmOdqFYR5x4slEp/o+\n7NMkdzoGm74mjTeSlce5TIEXWlMSIxJu95UCnepvOdXxlP/iS9EIdORDHVju\nrYR3e48IsZNd9NBGOYyZJjOdwSxk4Kc88naktoyfCtoau+mo19JNSIkc77aC\nY/fUohF3NHeeTgHg8G1KYmIOJJTOHJsqQCwgXRLJXhBzTDFptW3NmQmSuuir\nHxnMHw5I9ahZ1cib+iPtk1zFuu/q8PrR9eNXGV0uZyh1fyOd4UYS90VuGLas\nfcB2ttDwFgRxBlkWJTGFAy3gddYTgzeIOvxlYpv8xrUhT8bAk6qlxV6qW7H/\nnseSeRN7LfUXmrxWdNdrgtWp/xXdOWjDxM3C5RdI/jlF6/QM22s+3BHXf3Fc\nEFXTs2mtJS7cwfEZw6gS1rGT6OQUsY4QXcQDThiIKyw38LaGPTJt92gQ70H/\nCAxMDEbTvVbJIWDihaCQuoWm5E/DqqFv9wrXIKcvcMkXkexZMT3BRoe0jHc7\nnwUs0x5qZbjj4SgZc4EB54j66L/ENDOiIOVwzUB/FogKYJh2G8yfw/by+V5y\ny4LipPnHSNJN2fsEkAWLjg7RH1vLxCQb7HM5roMEJ7QagI+zkFQ+L0UWvbpA\nA29P\r\n=PpAf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGuCumb7PqR64JxVS3KMTJsSzJ/DuDTg7GQ33Xv4p64YAiEA6SN283enpJdBFqyiMtKz+ML1GalDTC5RIe54SQZSUOs="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.13_1596460081452_0.4352756643284794"},"_hasShrinkwrap":false},"1.1.14":{"name":"@midwayjs/fcli-command-core","version":"1.1.14","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.14","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"76bd23b9fbcf86c4d19dddd480f77f1b0590525a","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.14","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-bGaVr8wERQXMepPRe9kJK85PrcRT5KfVhTeMt9UeezQp9BumTOBUO3UvNLPM4woU+y/UXDwocb3UijWE07ET8w==","shasum":"0084ab66818be84141a56b40122e7ef957d6c5ee","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.14.tgz","fileCount":64,"unpackedSize":163239,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKVyxCRA9TVsSAnZWagAAksMP/29lRgLgr/06DI2ihJJ1\n6kVN7KAQX6NbyrS2ijmtTLcMwd7/sOvyvaKQ120BtbQvNdJTEhxrVPG2vJIJ\nsgDmB31woEdbjuSUPL6ESO5inszCoYex+UidD6wrG37BMfbF1jPUKaTXltJF\nAJV1BsgDSVianelCIUyNgyoC8yjAF+jJdqqei80EEGEWKada8Gu33aZEJinA\nKxRymdngND4/tzQNflE6s43bazwTwVKuG0WIpwwwoR/z3W1/L7N+Uhairix2\n/Ls8Zc8NLlJN0Umpo8pN0jTGr/YkjUgSBAXSmFdxt3HLiYA32eLkK/t5Wdmu\nXpxsq+ElTx5W1LA00rdP524D95KDKrEvX2OTCr3g/SKna3TwUslVAyWnGgqa\nyRcli8xwAkiunA1c1hVezwxt3/BdB1AVWTqA/uAR503I6Y9xlmzpS9DlCxpA\nIPnfOXI6hczGwbrhUcq7WP7/D8hLA/HFfvwqpvuWSqNmXZkrwbNxZDs8qCvW\n31ADK/azmn3FnRQVwNqR0+M4DqjnSvkV23jEPiMm23QsjzG1uTiEdGioLIZr\n3AST+qClTvITzHvGo1RgxT8ttsqK+kMtzvtLdCqQ1u4j3SzwuBfzbC0bBp9C\nnrugCC3UsTHJqEdUEB5gVWsfLWGs9bjhosHvq5rKJF2Oyx36vK8j/wIycaG1\nDi9L\r\n=IKDm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGto8ZReY4Y993RsWi5TUnMzXgqcWh+nP+FCVkWTXm6SAiAwoGLAMZI9WPKoQJKx5QJP7LbMuEN84ciG1CNuzu1jmA=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.14_1596546225127_0.7325884727133185"},"_hasShrinkwrap":false},"1.1.15":{"name":"@midwayjs/fcli-command-core","version":"1.1.15","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.15","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"6769cd464d16ddcb00f1d87268816bcb65a27363","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.15","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-Lom8D4jY0VhyxlHSVHMYfTcC/m/we9/O5ssdAx6/w2MdyDIkoPdzNLaf8dQQCGvBGRmc9d+3X2bM6vZ27EDGrw==","shasum":"f4386a3def9b285753cd5234b31d340a60e08ced","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.15.tgz","fileCount":64,"unpackedSize":163427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKhGBCRA9TVsSAnZWagAA4RYQAIazdvECBOpnCKA1NEeo\nwFZSvDJzEuopTzjnV4JsEBkAifLUe4qBPlH/v0SltxoUgwW62bjkjKNgpdXY\nPO+hy99K+m+nfLdn0CjDZVlsVcr1qLqKPAXiNwzgxg9OK2keNW0PjAQVlyU4\nvSU+J2huNmthnoW4TKQouSQsKk/EwK4jIk/swfxvcYHE81FX8jj7toAVTHXB\necBoOoat3LGj7KJqfjQ8LLNNlkvD9yY/igCPvCF3COGcmwM4gaVel6DntaXa\nguVLs/qvFj9PPYKivfe9jD/FdhDQYWDTfxewTsU3H8iEfMouZT0QfLhiybXw\nM8vETfbr5w6vxlZ+gwMcsnFBYZf3LLQgqbfnKb0ffOpHcyGu8cdeM/+2k9TR\nUINEimVg/+YchxvUQIv+dRgj9tDmlxM9c8WsVp0R70wwatrFkpw1RZlQMwQt\nIRXR0st8MAhxdPa4X7PDosDt9yCpQuX0rRoKqaApCJXZtx1Vpgxcet3ojFAx\nFBeR8kqZjiG8C3GTJqGHNBgPPrgNhz2ogiecZXdr7+2Dl8se3Ycv7ceK589q\nPVGQaPpE8LupJ2TB/OcXLcFqTEqS4U0UeBNauhh426duEWoQUQ1mMY6cy9BS\npPqXpCOBdaP8e2hO6c34zi6p4FqYhXhR/uQvCxtd5d1fzgeVKXieAmdTexPP\nZ5IY\r\n=imdc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0Cs64KRffDzy9y98dF4xh5Sr+3WFL/6MFl50EoaOyjgIhANan8k3mGQsC3HAS9QEx5bkZkhKy0IUZhTXKRdgkVwCp"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.15_1596592513076_0.3867754720431935"},"_hasShrinkwrap":false},"1.1.16":{"name":"@midwayjs/fcli-command-core","version":"1.1.16","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.16","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"0b7f4d305acfcbe11d8af7c6cbc43feb81b0a6cc","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.16","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-5FIUNFK/qgGfGBL94p4qUgRrMfHaAfyo34XQrTKY6T8nhAucZHyijnLCE/O6cjV5nS9+MX7R7l9cWYH5jLreqw==","shasum":"223fe305e2d53e372bcbd41cdb4d4ce10ea17016","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.16.tgz","fileCount":64,"unpackedSize":163615,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKm8mCRA9TVsSAnZWagAAiysP/A2eE32HMxRtdtG99+p8\naUlAJXXvSpX7bEQBtDuasbc9a+ab8ph+I8vp5AxnhGcgOVEdov4Np79DS+Lf\nwG9rxNX+NIohwGt2d1T0H0IV/V3nkg980P3Et59YEfgEfS1SDMpHJfjrZFc2\nIGIgtUflFrDBpxhOjaNkl/Ice+0QrkgsQDzuFXvua/ucLEThvcTeyxSaaYMc\npwd8NOtsYJn+K+cwjmY6qXx/dNXSgnZBf86ktn8vWxLOH1c2FhWSfJ/A5iSQ\nSuwP3O/xOoQQUT7aYGIxHP7PzjQRNLVtsWOKYt/7op+eqIoZYp0Kk2xtsyce\nvYA6wiHhkBwqIfeMVc2T3CJSkdeG38Q12bqVtg+PD4rm78oATvZ5TpxFPO+B\nh2WXkPASrvMhfTbjlyNwSOv9oFKMZCpYHkYhNtPS6uxqwzLxsk8ZpdY3Eo2H\nY/jNSTsBnoOHKgPja00ROhp1lCVnubEe5UUuTG10CZwrLBvBEzqWt67tl5G6\n+HsR22A09fKvisWe8qBnwDsQQxOXuLvXChKNJedC0VGEtRUWNXqAC+evyIdc\nG/8id0cf9U6/4uiIRTCFkrkX+YohY55oofEBKV/yQy/zboHWpUrJ49HtXfMV\n3S+pDsFb8c9KKD/oo7R+Kk59v5XyLHH6ygp03H1samJGK2u4fqdxn1Dy9Wkw\nf/M7\r\n=SSZZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6WRiWV7aHvD8gAVanuP624T6nxoyLD7kCOBi+2/zBPQIhAO4aj0PwWtUvIDCnz2q32loSnCMsX1UPjIbHBjpzW6/Q"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.16_1596616485788_0.8898176823672692"},"_hasShrinkwrap":false},"1.1.18":{"name":"@midwayjs/fcli-command-core","version":"1.1.18","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.18","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"b19a1e6dedc39e428361878f9cfa2babd975e35b","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.18","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-OqYYosVJMsUlUb+9PChChYz/AHDQoogl+PsY51EYnvzv25cd0r3HyLak4vGX0RkFPnRoHkdC/Eu7ynMXCfibCg==","shasum":"4634951bbd100dc7b4ffbcaa85a2a498ac7984f7","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.18.tgz","fileCount":64,"unpackedSize":163950,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMjqVCRA9TVsSAnZWagAACRgQAIQl94qUtRVgN8VJOfx7\n6abNDKWZgX8FcxsE98wU1RA/hhr7iKmro3e5f2klkQtTatPqTRfTYBiGhFT5\nHxt+EvEcHGLpvpPk3M29OA3Igl+b7C4lmjL6lvIOmxRlyFLonDsGJfs9C2W4\nqq59DfYTdSYWeWUKR4CEeK/Trker6ITjFmrGWSAIal/+krb0KmxT8Jnee/j6\nH9CasT/Nlx2N6XyLaT2CLS7A2kg8kwWyWLFdwrtbgI52vrHqcuHb6wiyOB4m\nPouM0tcY+vX+FwShme1ImAupocAPKxn2GCQ/GpIM0m8UvNdfoTznd4zeaGhf\nVNIkY7iCoNXPqGNKLhceUA2KieHeVqU2M5Zt7ArdC27myro6vzys6o4Ariuu\nNmzqen6WfLi6ajqxBVP2BhfvRvdMnjGQr7c5cftxo/izECgUkxJVrLOSRh52\n/FTVw0spl3B+S5sle9rBS+Kp/Oml3zGLuYDIws4qrfyPiRTkM+EfHQ5hKmIJ\nabqVEupzDSQfpp46At5RPfmjWLLYOqzr89TwAKQqAv/qt5hqURKEkr4AgoUG\n3bRAroksLAcjUqd8M60/Q9h4DsGH0L1KRY7CXLZHsmTKguS1kj8YJBCCL/rb\nl6YpsBOtzAxEh0hBVbgBZZ6MNu06DM0Jp0+nOAKBPdSNBOTIOlY7BrrgQxEC\naVX8\r\n=o1ZB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDO03k7Y67+fyPMAVS9mmsDAf3imEIby7i7zZ4xSc85dAIgPCZUd7WRDMJ6sA9xvph4lgNclCVU4FCG3LCwD4f0iSU="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.18_1597127316788_0.754859752976349"},"_hasShrinkwrap":false},"1.1.21":{"name":"@midwayjs/fcli-command-core","version":"1.1.21","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.1.21","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"b6fc4c756cc36b39f4339e9beec4295900b84972","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.1.21","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-YLWrGUTTkm4/Y05MdrJwERZSSNeGlBcF652SFiXAhzzctMXNpMwXT4rbFgFb/6yuqNnEZGEXxtylPdGXOkUsIw==","shasum":"0abde5e98456ba6427f580ba04b624a4680e875d","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.1.21.tgz","fileCount":64,"unpackedSize":164138,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfM+k+CRA9TVsSAnZWagAAQssQAJswXrMVol4jvge+1CQ8\n667r3NX0rdvxBBIIWcoiQszwr7QLk+s7Um/+GZJemT3TR+7Tb2SmarmOe4xq\nikVwPI0jGwsjLedaISM9XZ4hoG7jEQwEbDXRs0kUt2Sv6i4Nki6QGkkV8eF9\nyho8SCU+creMtZhZpTtSPZrCNs4sU70FBppJYDCfks4q+MFXhrRwUMntcLWE\nYuyToLG4emkC0f533rb3fEPUXZIOU/0FgQUClR/zlZvwKVeQhU/pwZRJZp+4\nKpOB3gq/ZwNtnoGuXEJAKFoBHiBtO8hYFFCwdHYQoHvk8eHgo6LsP9ZBmBUr\ncKLBvM3UMafkVog+qLbjjiBX1Tjh/zKp+SxgLa+oGjUAxjB6pl5AcVUgIAJT\nwxIFhOH+G/gsbmKXON7fUVe0skdTYEBtgcnCsQvGHW8Vu5DmM+Gtft39M6Ql\nkxw3S5KRcqDFJz4PNWAiTAtprFU1V4j64QITnHW/c/oCSZRHXCTkL52EsMr9\nxZ6xjQCmwl591LhwgpuUPxt3kM/ilBYfeZrr8KAbvhx2nwzigo1xv543Wr6b\n+DWkYvPi9DhJKEL592HVKP2llOpSQlmK45J0CAbSauqDwZ7rOcpiQTPPQL6f\nfWXBw7qDHW14GPmS+vQZS5cVnL3XZGRyM3FiChlOz0S12ZzPOb2PAFkN6OSZ\n4Qxv\r\n=bECh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDOffE7gRVM2DIXTA0CN0RWotNAxz57g8DT5xzJZIf5MwIgD9GdIxqtvEtYktDQZEYY0q2PeWZZt9tt9jT7tYrgK5o="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.1.21_1597237565733_0.0057814542920500145"},"_hasShrinkwrap":false},"1.2.0":{"name":"@midwayjs/fcli-command-core","version":"1.2.0","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.2.0","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"48a03973063419cdc2c1897f28fe5ffd4fcd4fbf","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.2.0","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-NtfZFhPPcIjrXZTD8a/Im8b5V1duOOCuZWRHVBrAizuZrigqNy96NEdgozP+DIMGjzYjCvaEsPiI7JwPMEOeOA==","shasum":"664362eba065c4a0a3b6e3a9ef69d059ec095f3d","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.0.tgz","fileCount":64,"unpackedSize":163652,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOfRbCRA9TVsSAnZWagAALpoP/ix82Nsmz8Phl626Z6jG\nfXKJuDaIjBzvjhCL3WHJCw2IhDjaGLXpwhSc2fTrbz/2dfQNWASiZnDCRbFB\nIIAjU7SpNWIc0FWDWrQ3eXfOZN/W7PEl3a/eM15p7RMX8zFvsrEwhxVr/hWk\nqQGF7qfpm7qwKoM5co6yoAXc0WTdqBgbBPksR+wha+49GHQsRPUnm47GoDFh\nXcZ66ptUC4DYca2ApMBZ4rAww0HXinuxFLhY59ENc7EmqbiBuoKa9bI9PIWv\nUc8lzcxYQ+bz/w+OXgtKRudzq/mL0knl47Sr6Yx519Jex0/waHVEIt08qarw\nxg/zGTUDsNjRRWknSip507KVYVigXu7l6VumD094NSeiS2N0lSIDHbJTWezY\nQ81bInBbc89gY8rGj11sKHGzmIA+RKSuLgX6kDgo7IC08X/gmYl13+LrNkxz\nf4NArR/WT2AElnJjX6yVonimhO6Y9ArK9vddnsM5ErEif6b6m2XMTGPZbEuF\nbXrmjq2u6P6BMlnxGxhdWdyDWDDQCvHIe6zrdIKnJoitQycfMn4d3QS61DY1\n1KtzbIV1qzEabaifp7fKTDmP8tPYnBBlM5mKrtTLcF8b3MNjYY6IaJIKFsV9\nmGe/U/lFSpWlH70O1lqafLVKLZo8FAaHx2Tetyqazpg5dhmmbk+DUvmjb5ZQ\n0+VF\r\n=nWt+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCeiT68+6ZC4IJYh830Mk2TSWyeqf66Cm7CMIN0GoHRuQIhAP/3jbJI8R/OJKW1lh2pxV0W2xlIV4xSwRJIGyC0V25Q"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"},{"email":"Lxxyxzj@gmail.com","name":"lxxyx"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.0_1597633626916_0.8375065586922683"},"_hasShrinkwrap":false},"1.2.2":{"name":"@midwayjs/fcli-command-core","version":"1.2.2","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.2.0","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"3ddef4641ba8ccaed2dff697838a28d87a44651a","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.2.2","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-Gj1HUUWJUJVbSQtoDOW+ql4JsQFp6e65bVZjCHlNn2nPL2VtILRUTyRD6wA1NRdDkVAh2WG0hX2sfxVrw/clKg==","shasum":"4485df2a0fb95b3e3de93b7af526fb9b222cf582","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.2.tgz","fileCount":64,"unpackedSize":164551,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfO5UOCRA9TVsSAnZWagAAzEcP/ish3SnPuVj2Js65eooO\nczoRUduq5/udSXNMitTZFwP1owaysj9+mmm9hFncqluCr1IYNDee9Whumksz\nLRYNmy1ZXyD3bYvqQuON1/t8JL9XKMoIPdEk9dps0BXhZlVlkJDB90vK5yMU\nwPjcOH5284Jp8RITuI8JjSy+9BUJ+lmDk34nWac94osDJbXXO8JixhFF7hpL\nUjYQO7M3raR5bGAIjdO8Xu5pCV5cwq/iZxQRunqoveFUePDftzm/Wk/GVoBl\nOt3BODq+GqcucaeSXTXGFbkWwHGxbHnJ9ZW2OVAXCW93ZZ5J/4qw4pIn1LnC\nNQV2My8rW+6G2UV1zJGXgZWf5Glw9wRbRqDSji59k8u1NUTEn0Aq3Twac1P0\nAhmM/pk7jPM93GPZQVwMfgM9hNq4ozqbiIfBAAXIXBg7XQvWahPkTJkue0Wu\n7AeHJbfjkwllMTc7nHt7TW+b7C4BIxLP6soICyLOxaaoGWrpVh6y/0W0CxuM\nDEaTeaCqGfKo9VL9wDlOhvqEOZcQXKMMPK8MA4KkT9u/jSjY/M9PXUfTNXBF\nK8qL9MQy0bRq2RFUhnZLShPXvvsh2TOaRaYaJ7GgwX1qW5sQZBJJGSolee15\nBX+9B4M2hvyyAI+IPyz8p4VfhDxfctHB8H62XSxFTaTq/g7KyUoIMJ7cgbJ7\nnxKD\r\n=AOPi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEE7KrnuDa+2ob9nYayS9c/DjfLkkKsOipitcJ/XcAonAiEA+ABgs20Y9ct06dLDiK48e38dOiXFQjZLWXlIAwcs6l0="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"},{"email":"Lxxyxzj@gmail.com","name":"lxxyx"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.2_1597740301873_0.3838747965166065"},"_hasShrinkwrap":false},"1.2.3":{"name":"@midwayjs/fcli-command-core","version":"1.2.3","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.2.0","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"96d1cbe73ee5459bdf2b95a06037b24eb71ce968","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.2.3","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-dZkxO2A1KWWDCydoKikgJPUA0GpMZo7eoU8PfUvpl5+taOVBzpXNz+H+bZ8fn3A9LxjeLraE3g4h5DFncCTICw==","shasum":"0535daf235e458f548e38e050303a310058d777d","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.3.tgz","fileCount":64,"unpackedSize":165121,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfO+WCCRA9TVsSAnZWagAAxc8P/jBf+dqYZdePqAOQENVy\nyceswht0hD4BHgh2vp6kwD4XGCH0kV4oxXq4CvpfnF+cPlgrj47SSho8F2wy\nF84gP9AKYv615zThYTKrXYkY4wt8TktNwjpIUCRaZZdU2twhqqs+mTPYwIKa\nNo3H09kv5J6yNJpf4fnBuGbqUTvLq4rmvYTYiyo3jmK70Rk2Ta0edBbi/gzd\nvktDjZ+R8/jgfTQ3+wXeGphaR6uURmwx2zIY6YyJNnO1nIT9yq265/DYOao5\nz1H2HPLc3nnpoI5bPLmUY1DY+M8P1GgRi1HWH5EpITHLjvXYQ7FWVKLpM1Os\nTUdlU/UAs5uOmuzLl/AECekYilumkpfi0gHoSOv85Kdt55nHTa+BJdEtvx9t\nZtqouK3WgE8hrBbWmrmN6dHQfoM5CFkxq4oljnI9YHtVsUuuBdGGdnIJg9Xt\nQtYs9Gf3T2eBMXXwdUD3kyS+ReVVUGVMs+0mSWUJA2NfqtmdN6qRnig1wyP3\nzSeDgkfKSI38ea37aZUbyIic327V7tCaJg2wxsbYDnYdeTvhd/jYiQIn3ujW\nwUpc2DzWaemJbO4wCc3n8T4ptrEbVr3bVB4Gc1ueQtmLs1v+rcWo2JAE/K9m\nMXqMFlpI+M5MBXekQjpqpRgjXwFBjpVav9fvlzA2j3CRkAue43TaB6JJL7jj\nZVcE\r\n=+9F5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGr+han5ABSdI2ssudGXOkuNI/Zic/tM62F3tv8ugcBtAiEAiWdpggFX2XmsY8eDya1M9fiucjloDi2I2BAwqAkrKo4="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"},{"email":"Lxxyxzj@gmail.com","name":"lxxyx"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.3_1597760898365_0.5726323156911053"},"_hasShrinkwrap":false},"1.2.10":{"name":"@midwayjs/fcli-command-core","version":"1.2.10","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.2.10","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"6c498129b84cd3d09fbb8b34a5649f5a17895304","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.2.10","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-gia3ILZ8GlP7PHz3Y2THh0mGfrQdkTWWnp643Hi73FaoUkADJMtw/52U6qst14Xeax6V2le1Tm0lpGqjhK/6Kg==","shasum":"ae64e2fc04d4d45b008ea8f5ea2727737587494d","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.10.tgz","fileCount":64,"unpackedSize":166287,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSyeiCRA9TVsSAnZWagAAgCgP/0ZB9dd6kicgtnDdU5Zg\ndEjsiWcy+QsIF5j9wu/tfgu5J5hb7Gc1NZW6DzGmDFa0PWUWKJ+ItQufNynV\ndK/YkmkQm5KpjssTGpZip/cT1T+5sFtTRTxKfBhYINnpfq5tjiXJXqoWLV2q\n3tZ2x5xkMGZxTVN71xNjYDrUjvlVGDEI0c32LinrduaMHqyHJkUQBLqeacdo\nzReDI4mybLZtYuoAEXVB4cKAAOJT5dYUm3CLOZWVgDwRYFDm0QtXHrrT8e/d\n1nVejwaj3tprbkhRCAmjy3cKBsdiVjHnF/F8nVuKGD+WLd1dCKKQyRcbJh4z\n0z9G9HnCU9/ARJwZo+uLEmExFXui+XNzUu0qftQXCwUbL+Db/gTMPEXKWaw2\nOSWg0nynitk1f20lTMM4YZ6e7wJEXTRlA6cU3PgKdve355+15E39ofi+op94\nm5JR7LT3t0Ada55kFDQ1laESUhW9hYaykMq6SvuBdIaJ77ehMgE7r0+OBmUi\ngafYFM9EdTp1UD6bryM1qUvTSmbRHnGL47gFGUMKIYtxflAfAbxgmq7crZuw\nY+45x/nXgPg2kd/8TBUzp1XMklL/mAQnCzzrWi7CF8qJMs+9jQ7F1AvQE7t1\nLzd5bfwASws9rgT+wQHdtxgFqzGRIoI9yDHbLo06cIEzwWLUbdjJDdQc4iwz\nSvzJ\r\n=Dbzr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBcCQAnSl7gyYCFxWJFP9B+bClkXqhq03C3DeDOomtGGAiBvGWwIOwcAxHyN/y+vo0CWpFupb9E+AGT6TAWZpwtBYw=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"},{"email":"Lxxyxzj@gmail.com","name":"lxxyx"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.10_1598760866245_0.8140689535600796"},"_hasShrinkwrap":false},"1.2.11":{"name":"@midwayjs/fcli-command-core","version":"1.2.11","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.2.10","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"1e286969e83d1ecf0b4439d296bc96f8d981151b","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.2.11","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-qrhBOckMO7wffWDKy5/qEqT4UC5WvV7bl3e20bWjGm6P0Inf/yAsZDQ2eQ9LO1MuqtN5HzJACCtjpcfFeDUp2Q==","shasum":"7c613c5ab6669e4e9555b25dc51bf5437d5dfc25","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.11.tgz","fileCount":64,"unpackedSize":166955,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUdAtCRA9TVsSAnZWagAA37wQAI6aAtf0bBI3zmHvzGUr\nJ4g1BJFowUaD1X9WiKsoX+9OCi6ZNqYdfLIOe1Gki3lJWFex53XijWP0nZE6\nUsi3ym5pEnTpPiodSdEWP3VYyPBQPY4aF37xpSWo0RusbfUeXuqBMeNa75dW\nB3rhv28GfMu8HlV5KoprbSYW7n7yJTajask6JK/KRIZmJqfTt6gor9bpXDZ8\nQc8OLw7JMkx5iuX3TNziMUhKqegAxj3gVawkAj+5Vc8TunR5tx5PCuAhQ8rv\ncvII027stkQhR8mtvS4HE04/lRDquClAqt3dT/XSTV285ilpd3HtPZOdFkko\nVda53fO+r5oUJfqSS5VckkPMlqPcWZnGFUOb3i6/Y/xtuHjfFmn5F36Jv4XJ\nqkj4Zda5Ulsv/CjeSNIqJOIP+e2VKlZxXMhdL+y9sTKcpdnUur9ZMWJ33+Ij\no8umKRy6OZg1KS+XTp4FyWH39tVQaKGfXWqZUcM2rgnzVHrq4bwANJL1fCSW\nxNf4zr7Cq8Cc0Ypj1Qq8oWuFE+/emL4R81UJiNZiMeAmP1miEmlc+qNO9p8J\nv4PwJMGhS5kVVFzdmf1vJHgsYAi80x4ykCCBWaTgkNvTUtaOmypjTmZ3c5fn\n70EGQFJljIS8JIDOUCDHzrCiethRz93At3QbM8dgGl30bTiHdPH2WUn5oX57\nY//s\r\n=quHL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHKHz7F6ACRkFf3R9BNtJKzcdveIa6OJamVbiP7rg11aAiAf1IobzYlwklylPKQnlyCT8pGJNTZ0lsOxvurNkTF5pg=="}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"},{"email":"Lxxyxzj@gmail.com","name":"lxxyx"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.11_1599197228817_0.639878332152906"},"_hasShrinkwrap":false},"1.2.12":{"name":"@midwayjs/fcli-command-core","version":"1.2.12","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/serverless-spec-builder":"^1.2.12","light-spinner":"^1.0.0","minimist":"^1.2.5"},"devDependencies":{"benchmark":"^2.1.4","midway-bin":"^2.0.0"},"engines":{"node":">= 10"},"scripts":{"build":"midway-bin build -c","test":"midway-bin test --ts --full-trace","cov":"midway-bin cov --ts","autod":"midway-bin autod"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/midway-faas.git"},"license":"MIT","gitHead":"8e32c4cf7dc3a3d1828b3b229cd1d29731dfbc2c","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/midway-faas/issues"},"homepage":"https://github.com/midwayjs/midway-faas#readme","_id":"@midwayjs/fcli-command-core@1.2.12","_nodeVersion":"14.5.0","_npmVersion":"lerna/3.22.1/node@v14.5.0+x64 (darwin)","dist":{"integrity":"sha512-LkiwHEg5mbE3STvhKFQjlFFN4DHekTklRIU9vXBwo3Vm7E9VSgZvnP6FThi29Afjf/U5QK2KG0oB7zCSpfhPug==","shasum":"b1c01512d7f77b7b892cb1723b67e8fd8867eded","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.12.tgz","fileCount":64,"unpackedSize":168074,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUf6rCRA9TVsSAnZWagAAgesQAIfvK3utDhqNIMqQHqFM\n/x4Lepr7tz7ldXJ2N7mg32t6csePiw3ovXki+2fA6a7F0GlJjUrjCPBPr2rG\ngn7R4uqnn3F0IjSll9Y4j1FaQgwA/KLcVkWySu6ex4WEPnZUQ1gHRVt7XCmv\nekgpZAoBodHJ8DoJJ8/R7eR89yGFXAJq395QPOlLlQytbj2rTXQhIyX0fBfV\nNGpI7PzIhCfNdP+MtREK9M83friNnOeTtr5xVwqliJMtSZpv8bjvTKJlGSch\n3uXFTue3qMJo2d6iHJ0e5mH/J+Amu2H7GbeJcqR2S29pgZw350Rz+0Kb441Q\npo5iDe57o6fWxPY6JA4J34GaLla7qDkeaSkBwlvoVAXZ7AaHLVuIutOJo6Pt\nGNf+8iKWMDy+SJQWbxlxUD6lVapmkJEgHP80Rm4lJimeyt2J27uOMWrW2l4R\n55TPTvJGlhR8fgMeaUpnKXv5dCWzfYopuJDMuXn2jbNNQ7DmOY8FrBhjnyK7\nYSoBr9XZnZInb1TXcY0maFtUufENfWyWacPw9tYPtW2bOmoXDtEQddWVXkLb\nnVOOxqZwytO3S/Y2W77fT7rBHlrRvjCurr8I9hKmaT4kaYX+fa61Vpygv219\nmM4QwIA/apW21ta9O6lgfNOsKhk15cmBj7ie0jrqcOUtE7Vm8QPzwm58Cj71\nigAn\r\n=YRor\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDm7bO6HjcVuV7UuEzrGlfAenzp1n1YQXYpd89fktuJmgIhAINr7ypXtO31mbNyttQISK7iZrzPPLtcVSpFg2ZXXmVi"}]},"maintainers":[{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"lellansin@gmail.com","name":"lellansin"},{"email":"Lxxyxzj@gmail.com","name":"lxxyx"}],"_npmUser":{"name":"czy88840616","email":"czy88840616@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.12_1599209130995_0.7324167410667553"},"_hasShrinkwrap":false},"1.2.20-beta.1":{"name":"@midwayjs/fcli-command-core","version":"1.2.20-beta.1","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.20-beta.1","@midwayjs/serverless-spec-builder":"^1.2.20-beta.1"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"fc62704521b47d151f1833f63fa5df5aa9303803","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.20-beta.1","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-+7Pj6L5ai2NsFaCXlKier2MQtfzRXxzzFH/ueDkLmh+Qs8P6srZjfIGgtfs8nGpeaZPBqpMCMnXMEzgbzD4C7w==","shasum":"70be888b7a40dd03395989ba64dc5f923fa616df","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.20-beta.1.tgz","fileCount":53,"unpackedSize":139530,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjQq6CRA9TVsSAnZWagAABJ0P/i3pxqWfOgekyvnMiIHy\nWrKxCC13P6LBviPOOU7ZxdlPoqZJSdAQbG28UEKdAnNLDWb8drzZRRJpZpVc\n4nSwbmcwsd/yu0KV4NhZ14F35EZklSYV74BahC/NGMeLIDm0V7TbHKCv+N4h\nIThWZCDGN31lFAc05NXQdouUmeow2dzdRDcnHn+YH9rmwQf2XGiZI95/wCCm\n1av0xfBstmL0LajVSCdkzMWAY2EeHyckmpY39qOUpou1IU/kjUnBZOMItPZV\nXPb7EPaaqR/oLinpWmsMEwl6hTqolfpC70BLFls5by+bsI+iBGp3y8m4b6Q7\n/U/VKn+K7LgKmsABcPTXmhjsSOASkJi18PLYc1zTE4ZZ2tj51QpsbkkEc37J\nAeJcWfgT1ZG/Wi78FPUM8ina2piZWLLcBAhecbNJNgCakFtNxPBlLsZoEMOb\nE7T6G1zjZKUDND2RdPzl7Rwkc8/XngHEriaUawH/pvjIQO2MvO5jcz9CeqKB\nkEa9OeYBi+PgjWlVZaqzT2FjnGLvOlKU7wGUA7HNnxVjU+82wNPo/hj9vz3T\n1p7hy9DIKVUNT3oA+DUH3C9FU7Qj0EGGalKRtnXIBmKbyo1ChncbJfk7Nf3k\n2V/ASqIl6m6lrNC1G2ogtmyQA6y9KXZhrXGhAz1g5e0cnolDgiRwGl4sryiP\nedEU\r\n=EUe9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmYuyPa+HQVSGkwNAYee3Tf8rCz9E/e/060dD6HUgWSgIhAMaKrG8MVCbLLnnir+Wi9W2HgN/wATuWJ7w6zBrLUVE4"}]},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.20-beta.1_1603078842274_0.9963353971962579"},"_hasShrinkwrap":false},"1.2.20-beta.2":{"name":"@midwayjs/fcli-command-core","version":"1.2.20-beta.2","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.20-beta.2","@midwayjs/serverless-spec-builder":"^1.2.20-beta.2"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"00b30b03fbd2516c975572e2477c3f82405b1f3d","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.20-beta.2","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-Ir9zTU7vamETRINfA6nT4f+wBk8jP+V8zq1BKttID7FbsNY0BSucrOovq4ZO9JkESSZFwfmwUQAAnsEnfYSukg==","shasum":"7211950dd89f166ebc9d304178e27f43af992fbc","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.20-beta.2.tgz","fileCount":53,"unpackedSize":139709,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjTlfCRA9TVsSAnZWagAAGREP/RJ2WZ6RDP1dBfKCiHbP\naWR2Eu1YkKYS+ofZ/iMyVcRlF5nstRX/lmX1knsNgHDkDloV0V5DqxtI73jG\nkp5x4un077CUsLHpV+JLfNwGo5SyKSoKfeTKmBoCn4/lsva3E5TbcYEJZbSD\nqfmdKPHA6ZKS0IZJKIPEdT3hzGxSO+WICQOVh2NVyCQ7Ex3Bkrf9AMa9ibr7\n291SUng5kCC1Y50rQAxR9PiFYJTXKHh4yGCCuS/Kuvx0smFfcNXC+YdhdlBP\nKbjLTnOylVvAcqmJtZXsvVOfErE1VQTbySnoF4XulQSedNUYgA+QfbNNmgtt\n96fEav74xe2h08N/1gjmU2PecZZslX3+P9de7V5uj/TAy3lDJwzVQTfw7N8V\nA/NM2hgzwMIG8/i0yJgYu/znOAlaEzcy8pUTVtZMuauPlLAZobj1+LozRy8X\njfDxO6oMQrtu+AwCKI36b00RPJUu9S1b0eUNMoKEUu2DxxjgYZ2WihxFfrf7\nIOc7I+KbI9/leeRrYjtOvvguqLv63dF0yDO/sBE6HLpA8C6CjPLyy34K5rNP\n1QFSPUPM9lwjEGHJEiXWNU0JuoqngHZBfu3Q5BmPPEEpk1D+oKAiLSoO3Q8b\nl91+sHekRfAamEJz2gljXtiMFvT+iSXzyeZdDD4VblW1+HT/un3U7Db7ZEA4\ntXTi\r\n=LEiY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCP/v29i0Re0E2nwNrxMxgwHk2XxhXUmvBgKzls1e4wRQIgBLwgxYIUmLlyTRGFNTleYYNdchSMUpwgHaQX/Mf/86o="}]},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.20-beta.2_1603090782577_0.3756251983552419"},"_hasShrinkwrap":false},"1.2.20-beta.3":{"name":"@midwayjs/fcli-command-core","version":"1.2.20-beta.3","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.20-beta.3","@midwayjs/serverless-spec-builder":"^1.2.20-beta.3"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"0ed939af1e40ed3473e89a0ecde4dde27655942d","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.20-beta.3","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-eGgkL4W6SzCXORGLLlOsKDne4/DB/AcQqoq2o7kOPcSF9TNCyV5xr3rnwjI270CgJb0yLm1U6rmy+ALgkSS6Lg==","shasum":"e9cf281e5d712b737bcd3ebe3523e242a225af22","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.20-beta.3.tgz","fileCount":53,"unpackedSize":139888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjUrZCRA9TVsSAnZWagAAuOQQAJLqsNFPNyz/BHAT6CtC\nBIsWpmNvUkbVZTEqH6ZxsEVP/JG63qbNHoNwQaW+3R8Qh0R6tKx6sqbSQVc4\nvz/EtadvCQk6b5REEd4iNIj5Uej6ZDAS0tesypL57MD4R9fb6KckEJ1NwufZ\nZvKw4wMBQFf58X9t1IW2CGxbuOGAMikDxjjemO1VlsKqt623D/Ozu53jIVvL\nLH/NGFLo19BK4m2mQZ4b6y9FBJlA05NCQrF52BIvb25lehgK7JuTJRgJAXnk\nk/ypn7c1HcopU6BIomJDV0C/sCEv80YaA4n7tgSQ5k3+yPqCzLOg3A9W5T2B\na1GvBCkGibuUHzXehidUli1lsx9W2K8/D7DqKsPdZdLTN5LHRTZos4DyRkHR\nJ2cyIZoYs28nEYumntVSqNijAuWfb0T4M4YO2+MCAtLIeE08ObgmL+8EQU6x\nlv/lwzmpIsy1ehWDBReZGvONPK4yyz3LazHZNnXDQbLZWUL0WKW4bOgA6I+W\nNe5ZhOJ2XB7GbFNHqpEybv9c3oGNiG+lhsppsrkuqYnjkS/SIOpSAaC8ieOI\nje/lzk0pLsW+DQ/8pBdGpFlF7n/nyvJxzyVY9AxXrAYzZLiBxPW8X0H7LXaY\nJgbAjuzNTC/ZPhcvE/nX8hQMc2ZzWEPf/YiTQlCawoyZlOOR/MWplPJRbp78\nDFv1\r\n=Ji/D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHgc2Dy6mmXd27m6UeMJ185k72h8PtYwL2GkjoHOyt2qAiEA1FFl2IwOLDX1dHlLFUXR4aUwrIYtQGWVZHEmQrn5ZBU="}]},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.20-beta.3_1603095256595_0.8082228259304403"},"_hasShrinkwrap":false},"1.2.20-beta.4":{"name":"@midwayjs/fcli-command-core","version":"1.2.20-beta.4","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.20-beta.4","@midwayjs/serverless-spec-builder":"^1.2.20-beta.4"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"9791d9352c5e3123561de983b04824ab678ce36c","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.20-beta.4","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-OLrcmKjpwlgHhdiSHWJaLkSjS63XJUm/tEOU3XOQL9b4+YJyFizaD+7r6IIXEUbC15c0WO65GXO5xWyc58xzmA==","shasum":"202972f642f7bcb9e28a1097993f935f689b8e3b","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.20-beta.4.tgz","fileCount":53,"unpackedSize":140378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjVesCRA9TVsSAnZWagAAqQwQAJMlz++GOmRYvzWuHBO8\nRTOoJOJtJ5kVytKzWmxdQdZUJyf6I5J+7a07lBX5PD19dokRre8IBou1JcBB\n1toDYygrIqAGgznHMRzzDlq3nanH/ubfxBN9j2SPXV+E7ZFkB3Y1Fh67aqvo\nsctKfUWrcHIg4twbyxMZAMG8Um7e9MQr3Xi/AY37t3m4AvGi2EvLGYfY1sru\nivCme2M4PH0d6gyIObJ2uMhxmb+XIX+3eidSk0sgMJ68pokDcnisgnCUVw8/\niUBOXJigJfh50rfocAu25Uak38feazdjuleA2+oxAHWOF27vfNMz2NY+ccJC\n8dFVI3KvU21Rc8//veYmHWiC4aWZH9+uHE8npX1OCD+Ms/JHuTCM877laNAa\nK3KR0+CjiLl4+islzyl1dJnY0s3YT/e+vlDhPohUT4XvM2nq5UDAivTb2xaB\nuFrSKBF9WAMhnAejHnp80Wn2qEACaQMTJicixT5ps47DdZ1Wg+1kGqRNfpkl\nY6kHGHsvH3lVmRs71rrA4g1JJFUdtGFsEViuLLInaQxrEYsenWouZCx2HJRy\nUkIRnt2odHxYNAff/i9Q5778vGfYvLx54ULme3dxdariHJmMgF8MAbRMnHSR\noCUswIysOQ5CtbBJjswVPgDzZ2AYgurskGYqQ0lfjJo/WCHJ404DR6+mcqko\nuFSE\r\n=KYnN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICFWNlMJffaQyM1Kb4SKwG0Sj3ttKzNaA2lfmdi4Uzb3AiEAu/r7YAA8QPQVlYTNS0jJcPMUjjJlZowOwhkQfQ0oBE4="}]},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.20-beta.4_1603098539673_0.9505850061531644"},"_hasShrinkwrap":false},"1.2.20-beta.5":{"name":"@midwayjs/fcli-command-core","version":"1.2.20-beta.5","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.20-beta.5","@midwayjs/serverless-spec-builder":"^1.2.20-beta.5"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"dc90f9000c13725ff3db4b0c428238ab9d226bfe","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.20-beta.5","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-xUpUc2Ma+Blv0fLgJKhj4agWRD/7s0fR5o4rOnY3X1HRTFrlyfVoF6Hkto8tyHnQm5MoRF3ZeQHxCjt49d8XVA==","shasum":"2076796616a677db0a1866e09c68894c3b2971ca","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.20-beta.5.tgz","fileCount":9,"unpackedSize":58404,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjVw8CRA9TVsSAnZWagAAOVwP/igLMGhsRSXdLQFHQ5l7\nkKoySwbsHwNLiKF956u/JXL2lXjfLxcIEedSBUZaj2pgOs9h0rP4Yoe/sRiW\njg+oKJv0hMI+vRFLxqbLbarbnz1/y5qATU1lkTJH75/a2nt7dT/XM09P32gO\nrjrjpNGDT7b5P9XegMfeSDoFuoNXYuVHRjIEAuNKM1p5NN8fEB6kMc1qx7dh\nUmCZiMk/kY7rbBF8ou2e/FfGSkk9DU85aJWhL0u2MVAWrwOE9oR5lIoCn5IV\n/a2kJV/Kpclrayk41IT19pvlk6qQbrcIAduqkCO1GyoPnRcgVnhZ3fthN1cL\nge7GqpcEKBIgbMvjDmTAhil4DpLr8FN2Qi2nwSxZveBp+HiuQQCBUBXhFR+u\n6VKi+yZEeb00TdihJViEA5/HEYaRIatE9kzri9tbCq5hUvoILTHYzqrmU6KC\nXgeQExQ0njEoxnGqm326D53JQB54tbz2lTWW7qh0AdK9PIHWTr0zsK5K946h\naRAQD6uxCwgpIOlDRu97cXDUtDy4x2JHmzRLYCFjW6lEMW7qF0/Cc7tihZmN\ndA7EmUtUJ0Uc0IWxCXFUQKziKC8Qt1pYnTQ9pOobQRHmsZ0lWZN/RFPJAYzr\nRrU81NnA84L7feQ709fYT3STaBXGSuk6ZJdiufw+UBTGDi3QPD/zzl88LmP+\nApqv\r\n=hL6R\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAw4XGdKUgUoeiHTiZn4J3caDYQmn9GbmFmDfZNDppNKAiEAn57qmVV/C8/DlNDejmLUIg5Cx9GKCuGi57u9xM1W/TU="}]},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.20-beta.5_1603099707662_0.968379672351831"},"_hasShrinkwrap":false},"1.2.20":{"name":"@midwayjs/fcli-command-core","version":"1.2.20","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.20","@midwayjs/serverless-spec-builder":"^1.2.20"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"d52802e13e833351031b3d93376fabd4d96fd238","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.20","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-z2JtSnriE0qPwCo5VuXp6XXM4dBXSJiJiXDajx0rxlewg2ULmXDeVL6wgq0dblPz9HIUtYUPknSYDEKus+xA/w==","shasum":"07f0918d1bd2e0e027b9326f9413aab8d068690a","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.20.tgz","fileCount":9,"unpackedSize":58548,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjV/DCRA9TVsSAnZWagAAHnsP/0P+BGVhLoL6w0sC2I4K\nuMSJakUfPp23DrtqfgfhoEQaGa1fi4As6STMk1kwIhIm2m+xkEOmrhjEk2Ah\nyWit3kGDCXTCyG9TN2BL5MIIi+C3G7avPysr8zqmDwp3yGN1OSirObyI3DLT\nI309URvLJTGvG5XuamhcW2PTCOFi3X8K7M5TDZLMQaViGmathBoFoY5CWFre\nvYgAZiPsGQoQdC0KiPkPocwRHBAS7zxEDjLiU/BLr6PSjqaBoiRELJOAwSDJ\n9rsnulyiowUUkQqegwfr/n9LVppc6HxORTai3hfsl6Pu+hEW0zoaSfvM2JzK\nft/sX6ziAfOz8UERgyEo/rUwWLvToR7dxuxqefIOLeHIk3/LeQne0a9tK850\nD5AR5szgh4Bygmz1o09K3Y+RtRrKS1ESSS/Cp5rBMFS/0H4OJQo/lpqvAFFn\n3wyrg8DgL4K9N6ELoDRs3wXyBox61thNFXmtgiP6o8ODBKxiB5FgVQf7v7v9\nFKf/QF0VBrLxrwhJNJgyHAOSn4FpbNOa4GDNSUBiLH90XRiz+z6cLVRxE3Ky\nAwZSc9f2imzEDOmuDXmJsBtwDIqksy54Z7WyEL8oq03hEr854k9iuqQWEj1j\nOVUhIL4ojzANvY3t/J2byJFXgc8Xi5PaMV+OtlrZ1BsAFykzA0J2Y3xhQ6h+\ngtVg\r\n=OhPf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICtTLqUKJzv8ZNycVsLc763mC44A9ZfsHp+3wXwqTiGoAiBs+X+FRvDm9YacxiwQqLhnAagiqc1CA4QZBhAxD2snog=="}]},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.20_1603100610724_0.023124097671140653"},"_hasShrinkwrap":false},"1.2.21":{"name":"@midwayjs/fcli-command-core","version":"1.2.21","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.21","@midwayjs/serverless-spec-builder":"^1.2.21"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"0f4eedfa6a3e9ff5473acbc024edb73000250dc3","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.21","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-imdTFTw3eCbzXC4D4awY1z/DZxXMYsyU3L2zhaManTB/kyHr+vkc+LY92wSEPQo3Mn+Pdbg/pDxPuxZGMGufhg==","shasum":"e402a924e0ce268c89052e6fe3f956e7715d065e","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.21.tgz","fileCount":9,"unpackedSize":59139,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjpApCRA9TVsSAnZWagAADtIP/RwaCux68euHPNxs2Efn\nFF5jGNSkUg66tfB7H/f1ThPbyTrldX4a/OGTVOSpO4O39v0oLzxIAkLusgs9\nWYsYkxxtF3T4+UjdnEGXt2FZlfrjah2kbilO5wb4qGnOx34yKcBfRJKI4dz6\n133ukPHTrouUFrZQCBkOFwnKphgS1kjHhKEDH1nyztf3VtaQD31SlmtDLHcg\nHqlK8/hl/E6vyPUHRGJdnw3c70YYJcUZDApCaR5fAQ0j1YXVI45WhWbpP9uS\nDbEMvoDZLY5u+TnJGnWjRJ0AiK7i2Yjqqii22Qezwt/sdIonTAqEdbRcyjrL\nXsfAHOofU8yrSBESwWwcdMejo8Nl2ha01AQQEis2Ti9NOqogVwAOrPakgRiT\nVlGMWqFM/afGvVGCb8hWn9hln8VHlVooy56DUOKTjtvhF21fZJ5PRi6Ov5xt\nA+vvpoEIt2/aY83hrwjG4KUICHLE85G+v3kNbQs5dfYSKFU1QREGyOhHDjrb\n/adlj7/e1Jcx/IQhb8UZcsTVyOPH8H8Cx9S6JXgwZ0gU1BEpH8mrsCal3F17\nvOzgk6XxbZUz+qy5cW2R95MK11HY0i7+wKfhLUOYQS+JRST1GRUXK2ny0+dC\nviqPqnovjnaUx3uLCIgQS+qa6rytWIKrRnknR50lSIWIhs1dOFan+62sudL+\n/T4/\r\n=CMv7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBPUzA1S23dXL+p5zAql9en3kFGAyb+wgW8FWaXGxQkQAiBsH13CRagsHGwM22NtHNAvpo5QjHNB7SHWEQZ1MiToSA=="}]},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.21_1603178537494_0.9269061262805658"},"_hasShrinkwrap":false},"1.2.22-beta.1":{"name":"@midwayjs/fcli-command-core","version":"1.2.22-beta.1","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.22-beta.1","@midwayjs/serverless-spec-builder":"^1.2.22-beta.1"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"d7f1b13ffa44576e34325132e30ff13bc7739a90","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.22-beta.1","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-kdRjhqO3f/fmi9EBGAaYUs1TOEGzdb97FkL3MZ+DOrJozD0+3leODYrTVZrBXG4qRWbVECUxpeffLnmilS7fEA==","shasum":"febe5257a7bfdd7db1eeefc01da1fda4aa315f07","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.22-beta.1.tgz","fileCount":9,"unpackedSize":59332,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfj/hMCRA9TVsSAnZWagAAX5cP+wQpGR2RYfdfCEpZ8wgK\nx3A6uAxKS3ISCjqrXzn+vuRucPZWZSyxNJANBN0NDJfN3sK9Iu+uBK+arX1/\nvHgJaHULrI+WPED3VFYBdSriafaSH+Bz3PQtuAzLW6FbpN+j5DRT+f5urcVK\n36eFUjitoB+tXrY+Z5hWm3+rtvTDCofjjEcjfLyfM9BE7m+M6SN3s+QfOtxt\nAyFfT4Bn39DGzmwXn70t8cpgpsKCcGUYB2fm5PZQ5/07lpKRT2DMM27fxDXX\nYEIQWPgGlZMK8kp3fmOnUunu6e0HDJxty5UpvdisiDWNdXO2P6nkWDSlTHzt\n/kiF1PFf0YxvDxuetoDIHGZDatjtmEL6MoGXe7o6CXO3CSFmfZB66dFfxmf0\nl1kNx+4exRJSh5kPQ8StzG6Zr37BQLsT9BRbHBVe3MzEDpYFQxJuILL3MDxp\n+y7y08huH5U5xd7Fink5Ny2i2Vc9J1Xv1PHBbV31X/fd20mUOkySrdo67Lqe\n38bSCmEORAolIdVxapc8T0hoCoNyiqsHWvt2bvPXzEPQ27bQDq3b1R/E62bV\nMnchEYmaxlMzWxuHE5CeJYaCCrCCIHeSbNpqXZ3wBrOeOZYcSENHNy8jBIpx\nOaDNSAKTwbMVPlo0aK/hFrmFDb6yhMyxnw3o6Yh2GZMIojNvpo8kz/mUGrxD\ny2Oo\r\n=KSHH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE8lvSxGqsQh/y8xQNvNOmQjY+lpsDyUDgHAsrCzgKEAAiEAyd8TN/OoKRDqmPFLT7ueeAvqqFudXnedNln6lXUH0hM="}]},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.22-beta.1_1603270731797_0.3952480489936687"},"_hasShrinkwrap":false},"1.2.22":{"name":"@midwayjs/fcli-command-core","version":"1.2.22","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.22","@midwayjs/serverless-spec-builder":"^1.2.22"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"ad14afc125ac143c63972e2f186e5afa977c7420","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.22","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-egFQ6v3o0taJInNWF57XgBhzU2ioxR1Wz/qxKp4cO1FZmHInNImzhH2SGmbTUkE7P49TtDG3ktmtfoFpAseISg==","shasum":"cd79a0707a9cbed70f70ea5150567cacd64dc0fc","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.22.tgz","fileCount":9,"unpackedSize":59476,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfj/q3CRA9TVsSAnZWagAARBwP/3btvpGRKDvxIZZXaeOk\nE4/JwAMtPxDYImoWSrL2l3Q/5HxZvys9XCq8rMW8GybneODM3GMBMxEq0rjr\nGaOvhuzH26qi1vuIWxlHdEZRgKKchhaonSgIqwW/uqR6e642zPLQ0QkrXgjE\n2JHd9vsrDgYhV7SI/C6xB8brw9GWzMk454WnWcAKeR9WIP1G07jVLo+bbL+F\nuJdocQbgbJcl1Fin1htxZ171Sl92YoXHuBQwZ5Pvkg71SLMsldaB9/qM28T1\n9W3awwv96Z9M+yu0amHB+LKMhhtvSuVuWEj5Xzm5PcuyNktmqWk21K50klRU\nqknxMT9UurKual42r6d8W68oSk4VF/EUwPUD8Y3R5CzGSAmEmmJuV64Defe8\nJviXciUfCdyqdDQVjPkvI5k7O89wIOxuxoXgN1a/he5VZ+9j7IpJ19ME4U+y\no0XLCfk8CsqgSdT4ChXSp5KAsfGgcSVZY0hWgY3beq5VeljrTBkDBIKvz27v\nOnhIDNv4xXReEJm6iIyJTkyZYDGinGhVsJw2kyvWOIq3vRU7Wh/AyB/Xr/iX\ntu4VVENpRXcssH2l6K2AVGpPCWIhEcLeUCCQX5LufXq4ssCqMX5/ZVBMvSg3\nBtTWgfCDdKVzU4DhbNzsauYadx5K/vWKpbZ5aPb0I7f0PV4vSm2uF2VmTGFX\nksi7\r\n=3w/W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDj9KkKlDbAkW8c1Hbnz0CD73YqBjpFcOrsEzdpUwzhJAIhAOt6ZqdHEDvkhTeyqfxToNZWE+oPQWI38WyQ/a14TErI"}]},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.22_1603271351289_0.8872277625775045"},"_hasShrinkwrap":false},"1.2.23-beta.1":{"name":"@midwayjs/fcli-command-core","version":"1.2.23-beta.1","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.23-beta.1","@midwayjs/serverless-spec-builder":"^1.2.23-beta.1"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"cc099ba6231e4bb24f4efecdc4ec6a72fb324e05","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.23-beta.1","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-WzSEXNoknTr3tYQoI78sA+DjljT5MVGuMtL2t2yk6HomIWnLUFLPqx5eQP2Z7R7M3mpyJeHa31AR3Gh89jI7iA==","shasum":"7ca27ac0e123283f08c210089d86324c8d2c9f0b","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.23-beta.1.tgz","fileCount":9,"unpackedSize":59775,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflpTWCRA9TVsSAnZWagAA7DIQAI80dkS38KPBig/Tv4Rk\nEbxqZVsMt9Xalzt/4TgZ+wya8p5NfJzPwZ98o4n4txbg6y/Fv/oBu1jge7YR\ndT3bS41parjgdbn+2VEHAyJGdE/Y6DtJCttrAaRIO2ZtZpNAiATm547EEDqV\nPfY8jNaxntwgw15p36YUEf8GYx0z0+F4TZ+FAyLl8d3TLx8epel2oG5sIGwJ\nF3+Qkr4WNHQizGbmHJTnHAcq5clJUT4i8t42eiaysu18awFkuv6fd+ZFillP\ng2sbYHWXTowKsvNjezbon7hgaHupJA8Z8aH+pza6vdgTPgtUi7J+yIlysIDN\nR3zZkrLjWKnRDHjGx+XfaR7NjWUc5hfrGlY4gBsU+FhsETCJ19H+ll+4iDku\npiOjt28JjyVOb1jfs3HFgpGzQ4SGF2KTxWbenpvh9iItFBwMvpI/Vo0z4ijO\nh4n/bkpR+acU9USx7uKdr5T0I5A3oBk9NWi3/AAaRcgMkatuz9ePb0gC1P/Y\nejYf/yIDKXkuPFU5sljPwa+yHq0YNqZ7E4OE5QNvfdSF+cX+3Y1PWxyczrYY\nJOCMlI+EKqQklPR+pfU0A/SaI+jR+h9dAkkvo0SyFqKHO1LMMh33Ve8lRO0D\nUeCXSZwZI5JzZvmCerREX/+Mh+/R073LDOh10W0fvPcvceIK47s6OmuwnsBV\nizg9\r\n=+Uo3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBwg5zkvpCIC3ee9T5TzpNNJSp31RIf69DGRyBW4l/cPAiEAn/2XUlTqqFWCUjJZTMCNDMtd2uuw2cC03v/R2XY7Gdk="}]},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.23-beta.1_1603704022588_0.44528520246030867"},"_hasShrinkwrap":false},"1.2.23-beta.2":{"name":"@midwayjs/fcli-command-core","version":"1.2.23-beta.2","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.23-beta.2","@midwayjs/serverless-spec-builder":"^1.2.23-beta.2"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"6dfe4424e9fc7d9e65fb2e730227142a1d78e3b4","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.23-beta.2","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-V5FgxQk9BRijWBiyWSnSXDApxiRDeegmTNsjdv36KRALoAzFX7eOjcuGGEqSHLM3jTTmtLlQKXaad9YtQYRsMw==","shasum":"44a5b8023fec1058f7fdc003ed86c49666e822c9","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.23-beta.2.tgz","fileCount":9,"unpackedSize":59954,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfm8OyCRA9TVsSAnZWagAAZisP/20SAgj/FAzTXLdzBxHm\nEECAddE1IvhI8XKR1mcbqRKVCG6Qb8f/xwj8uCDElQkF3506SIynmaEevT6s\nLFNvoF8uPfaS8yopoMwNGit42JUptU8LcmnFpxPawteb928dLbAmfVxzHBEm\nVQMH174QCPsnzymYIWVJZ9HMgw/wsTu50kBON3DrKLu98mSY0vGhlp0pP+Vk\nDUi3y9V1EoJ+P8cNcNAXx1WrAHD9eWL19oLF45g37BxKtu9nuiD1jpmfKmrA\n9M7UYn63HeLHfbZ/pabPXgk7nKaFAzqjjXdHukcPv7vnAu8oYs+DFDxAEk37\nAGTFVtpV73C+m4JQVpNwxlk8JUdzuznjqqd1xjb3o+Tep24+UyBzzCt3yroc\nI1M+aAIXj8htoeV62pMEJNCJBugFS5S6pXmKn8MJGgNPi9mb7g5a1y8MV/qN\n/Ozs+8/XgxFUxzP0k4CHpVKapyG4s+HnJersjdSlYfiLvwu5GAdBwkw8UPK4\nKJBLeuzodd1yGOe6ssWtc+oybnFEQAaAiksQedVc+ZpPMXCWD2eVLul9xf8L\nvyFxpePvsOnjc5kNLqheZtsJWVMRbH7CtX6SQ8NID2Av9IfUvZiUD1h1tmDN\nzEaFN+3PF7d6GUw3yZ7CamR2ce0hb5IaAaE8oh4h1qZSRGsw2UZ2FCOxOZIJ\nRJ2W\r\n=YK4L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIJ0D6fACDRsJeTdf1qa3MUOATGuhIQVt0owoMeijZ0QIgGGkZ8aBnBo1BN9+8K8yjlNUQUullO+1EyhUPHZ6itVw="}]},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.23-beta.2_1604043697738_0.530002696542744"},"_hasShrinkwrap":false},"1.2.23-beta.3":{"name":"@midwayjs/fcli-command-core","version":"1.2.23-beta.3","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.23-beta.3","@midwayjs/serverless-spec-builder":"^1.2.23-beta.3"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"35befdab1341919f481c04ba659e626f8d7c738e","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.23-beta.3","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-8F/Ml0p2cJ5MFjLZE+LJMCfwko9ymNzME14m0T5HqGgqUE+kVrCdAblVexwxVk4+QC3XoUBkOdY2RJlV6zXRGQ==","shasum":"552c1ecb7233a15b9cb1bd5f63655096bd16cb20","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.23-beta.3.tgz","fileCount":9,"unpackedSize":60133,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqg1/CRA9TVsSAnZWagAAnDoQAIZ2UUEFkySC7jrFfOCR\nJYztvmpQ10dsdvvjfLHGY9WOyJYCSDfnIlR3WIfNz5ywnT3D4KwKe8V4mv3u\nGLL96hbXttdt2bfSg25Ixj+CKG5QkWMcyRAbxCvwpiqSMPiqcSNd3+suVsHy\nQ66uGhgm/E/HWLHRladwWAihL5JkpDI+uVT+ory6u7N8qbNmCMVHTFFxCwD5\n8Hz63hQa0Ar/Q5qqIYndPKfZZkjsRQ10PpOCwbnZLmNqjSSv2s+hKKtDuJyh\nmhCoW4cWjW3cyEVOzK/t/NEmvJaI3XJz61wMPK39jl+UoDHUHk+z8oVaLEoe\nV1aAvwzvb9ZUsoxarvc6D0couum6+JLXk22sOT2aycMS1amvvTVBMKx13Uue\n57ihTC78uiSlItEZk2e4yH/E2045O8IrVJrEvtkrMYT0W75BkfwVFmjIG5jP\nXVRE7H441l5NUvJrQ8FymOAXn1sYJWYGlSHZx30/m5WAGc6q5vRf2LnQCJ8G\nYWbHZIiENHeaOJIdh5ED9/K8z8fUV/cRvS3KuIPy7NXYzxLZDaM/2gbRjZR1\nYrmbsER+Cifxd1yO1XNo0MKZmKuW8qQqUT4qK/H7hZvFUeFTrR6Vvi7rFltW\nh402GY1hmW6wf0b6yRYeuuw6dEBLFGnHJl2ElcclhS+hUUQ6ivh0TYf5mBtc\nel3s\r\n=pqfA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGN/ax4a4LGi+4D+bpnRDvNdegqnTRVSylFe+g9PLW7wIhALj9dAWpi9PSa0eXCOTRHDdqjhBNYncPMJWacVy5G0WL"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.23-beta.3_1604980094816_0.9799147815870104"},"_hasShrinkwrap":false},"1.2.23":{"name":"@midwayjs/fcli-command-core","version":"1.2.23","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.23","@midwayjs/serverless-spec-builder":"^1.2.23"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"a8c0a0c6ee3f0b6eb43e9a42eb6ef609b0b61d85","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.23","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-G0g9JaJTgIAHHX6c6CalUXskxldzSWGx3JevXV3j35hXloqxWy2mBlYI5llQD+Ih/cZWJedzD5kG3NT8qmVv/Q==","shasum":"5dda36b6fdf55f53b7321264fabfc036cadce5a5","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.23.tgz","fileCount":9,"unpackedSize":60277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfq5WGCRA9TVsSAnZWagAA1RsP/jmuzrWbU//VbLsnNQZZ\nPDQHn9ZMYJKer4TssxEspiuxusz98LjF2duJmOsAofD8W8iRcnW6Qn4qa09j\nyKYcFhykLj7yFCQ8tNhUafk4aqx2hy2wikNWpb90GcxeZrW4RPO2VOaSDjSb\nY4zIMAEteXiy/iNn9fu1oWT8tGJv3vxtRNRtstmlx2iWOdiAKiBSKDSxpN5i\nDD2olko+lkCTl+2E3jioKrw9nJ8BmZOJs6l7tG33KQE/QhiahxuqRdDy8ebN\nRJvTz5fa80sjyVqQ9NRV6tXUUgydTz7xzPLQ8GC8B/SpguKwlVhcqbuLab+t\nKbEjprAYMS1iwbPMJ+b1jBpGqlLqYpeeJN3E4x25H1+P0MLKClnwH+vJ76Vo\nsLk/sVA54mayRYyyeo6zzY/VhBPFhhk0QxGXlm7Xfm0XT2kcOPS7tqfOmLjG\nEiAaZCZEv8FrOgutUe84p1pXgiux9ahAiLES0Uje9nQjUObu7Utj3y/UL1hV\nGvTBGgHz/Px7yuNTkVVlS6/MzBVtpovlqhQUWysdxIEDn/uqnetHGjDac9va\ngiZTZk0gb6KBo+D/ycH3h1WWrubUrfYnE/9FIjiDWtXRyjrtGCABkSna+pGE\n6VlR33tJdDibD8N0EFTYBMj8vUonSz6xYLz+FPxWrIMI2s3VFbPP1NrBGZML\nWMaE\r\n=z6zd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMcuaQl8RCzpctJ/BoC7szhc3/KWRYwEyh61V0ONbAAQIgDXwuhr5G0iPt13iD8SZyt06dxNOZwKRiO2f+gPzaFqI="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.23_1605080454135_0.5617239402982572"},"_hasShrinkwrap":false},"1.2.24-beta.1":{"name":"@midwayjs/fcli-command-core","version":"1.2.24-beta.1","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.23","@midwayjs/serverless-spec-builder":"^1.2.24-beta.1"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"25900246edd19017a436a974ff3e50b3c632962b","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.24-beta.1","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-uB6vnf1Wss78J2KJc1UP7BDFYUqML4pxGjMUuDr5k2ulS8dAi3C7F6i88WxGWDzSZ7Jc7JPVxF4OPS4eTAJ07Q==","shasum":"c878103b507d316d15d9148f53b53090de6fde50","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.24-beta.1.tgz","fileCount":9,"unpackedSize":60463,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrOiGCRA9TVsSAnZWagAAfBsP/jY9KPbIcQDoya3dyqCS\nUdNUkqZT8CNBd29b34cbZ3InD1FIgBNEseqYXbpWwXEHvR8Y2y1H2n3X4JXW\nIGj0q2K8cSN4p5hxRlFrz2lCt1JJ0w0B7lCHPyvN3/uMI/e4u6+5glaQBeG9\nC82V4DZodOMUQI1ZNOehcgPpLc2oZPMvesW77GocsHGEj2u388QFYZuyQcZC\npltL8QsyCJ2bS2otdNYPTuwEunyEtRXlXpj57v6YN0z8+4Oy2P6gL6A/F5HQ\nXRVdEil8IB95bE53leXekvCJkscu0RhgLXAt9+DLVH1NJnuroc74qTwxm8H7\nLDUJNE2O91r12GXlKIapc6Lb53p8/n1PwXLqQGkjmL680Wkmuxu/m+7/09UC\ncbdOLpyuXj0yicrNK5rgmE4ZQkBr6nnpRy/aFfhJMl2Q5lRUu1AoLZgyrIJ6\n7aCq3PCUn1qEwQdd3XZExJyhj7B45sGsz8RzK1hqVHOP4j54mLc4bzXWbboW\nwTW+V3gWVA2eiQrjU8qxJtGeIsSsotJ2np8CHaeds2rsYtQDFwPijnWvB5JG\n6F9/PqkclDGKRsdp2deuCboR+dluqh2koFaN0UJ9d8+Q02BrDFN4gjK3UNw8\nlIHYu0hJYfSymxu2f+sTJelQVRUpUkOJfxWv84GjmY5iwRJJJPHOdBc+DSOV\nAkuF\r\n=OcCS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJgCfbUeblM1RBd3SdziRDVHIxkCS7xcuyVtJnsj6bwQIhALdCOPTyYVyLBoD7QSJ8nSpsO806lytXV4XYuYNo6vD2"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.24-beta.1_1605167237664_0.5007498344815771"},"_hasShrinkwrap":false},"1.2.25-beta.1":{"name":"@midwayjs/fcli-command-core","version":"1.2.25-beta.1","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.25-beta.1","@midwayjs/serverless-spec-builder":"^1.2.25-beta.1"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"f0eaad221a9d8072f73fb7ceacfe50b172ea4ba1","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.25-beta.1","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-5YXruoQJFmB9TrpYzi/okbQogaGmGYIJGQO2e7i3QqV6ckY90rim9jNxwpBNLItdtQdTVHEkyDo8sHO9b13U4Q==","shasum":"8129e902e6f8768efb6d334d9b02e878cacbab6b","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.25-beta.1.tgz","fileCount":9,"unpackedSize":60649,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrO4mCRA9TVsSAnZWagAAkYcP/0bYZg/WJYlbe+hlZtT1\nBSHYkZJ0kS/LGLSa1VbEk7zUrv1OkE0sz294NrWkpotbTmxpG/sAAlrUkBXG\nPS7C1W0M9LCeWxI1wiTkn/sc5kmDmO9rVnxlfee5tkUMOT7oGNblqhwQr/Gb\n0reqHP/TupFx5XK955Jg8fpbEdGtN6DHjlcDoXb9YOY79xxfyWd8voAzIJ8V\nH3jfcvirI2DW+adcylzuwNJeaI9uWH2gdU/7cJzZpCIfP67o/2s6bNew+ivn\nNxWgz7wAnM/3xAqQSeH4aJOnz4JuBfprYrNMxArJcI32rIaDzzbKvGaxwNmR\n2csEBK7rX3dxggbnlt9wcRYPu4JpTR1UcIStdNFieU5OXevWBQeJrkBOAOWw\nhTENwVyQksuKjoquaDZmEfjfVk4zyScoOqJN+GaiRjlrIp0VSRgXHXf9udJn\nAlRKpglcTInZXUG3A9SK2AqkD43HqVhwWA2LMvR4omzUa7LMXJtYeGn3pWWQ\nsc/+ydn1siKB257yI3jGS6VrZDu8gHjwKaq3+piC0q+UAfehDGJRBDC+aHMf\nOPR4BtKLqcTkXKElLW9bDr3BL9fKqXXhRsJ/OwF2znob72bRQYxEM4Sscwnn\nMqLBgbn2YqWnfciKN9/ZJUOkP/i2sigr+abXxP6g/BznDp26mhGztfPZisqr\nESFH\r\n=hUgo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3iGfEvpkBfV29kNIvDCD99i9Z4sKXwCVG7SViba0Q8QIhAJuEOIN+smTkHNXhxBE3c87l+q6LtMsxtMNUJCHcmjhG"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.25-beta.1_1605168677993_0.5115923536756759"},"_hasShrinkwrap":false},"1.2.25":{"name":"@midwayjs/fcli-command-core","version":"1.2.25","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.25","@midwayjs/serverless-spec-builder":"^1.2.25"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"9c901c3df3d25e6d2111fb6a39f57dfd30f4c6fe","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.25","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-d7GbuxhGoOrZwisYPQpv7zvqOT/PFADo2ZebQN+pEkTI3YVy94DBEVXvQtrZ5JgrcevEZVoAGBOEutDfN/oU2g==","shasum":"1e43da041fde51086b85aa52e79c1fde5d0b3cdf","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.25.tgz","fileCount":9,"unpackedSize":60793,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrQCpCRA9TVsSAnZWagAAC3wP/jXWl7h6TrQ9SkAbVU8d\nb9PIo4Md3LNsRauhfAitiKbcoXz3+B6ZMuy3+8qJdTDVRUOsmwEImDCwFI/q\nQoy1JDjKNQ2eGBX56nELPPMdrPe322dqAafrkqxs6s9agqYIMg0SDSx2dzAF\niD6uqRRYxBtcYDTEsAXhnLfd7zPA4y7tu7WyZAKuPlc6q8GqQb9iiMA+4UVa\nK8KZ+UCVqWToCd9IjueE1uF3+q8iIprIQBlO5wO4gMcsE6GxEeDdkRALfjdf\nDfM/j3C01xLgXaqq4Ju62eVgOqHjCAMGE2zzZnrZ9tLAZ/AsBaV94q0ge83A\nxen3hAtCGnZh1ZdELTbPUA1MC2168JsB9TToBjN+UnyDY0KsblzRL4XA9Y9Z\nSrq4pKpiR43UqO6/ubD2iOdT7XTN5NTOmO+F2ivKV6/w85BWLQ9yx7Kd5HWg\nESWjOHHb0J4iVheP2Wq4sEjtuD1ClYrXbvapyZH5JtqQzd3tOD72/8pOkdwK\ncJdqno2O6q1esfU97gylk0p6TP4aCeZwI0RuISMR09RkD9wsy5VC7A0HRdW6\nFttizEmkZTWIDMA8fcwtYdK+DSopxEbGZc/03lfPInlwBHPwzDyYbWq/onmT\nG+bOKbN+V+pmwcmAcFBktqKQ+dRs02RqcsljThtchyuza7I114oL1GoCS/wC\ntvAs\r\n=jHev\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBRSGManmnV0+cergIQaYabb+pSBtJMOsKLkoe1F7+S/AiEA7D6b2YLsifsveB5FSwZUjlbDSE4ZAZCAbGKlo3+MyNA="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.25_1605173417400_0.44816244499623603"},"_hasShrinkwrap":false},"1.2.26":{"name":"@midwayjs/fcli-command-core","version":"1.2.26","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.26","@midwayjs/serverless-spec-builder":"^1.2.25"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"5aca44273d96a7d5695e9f6ac7cb0e8f999a8984","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.26","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-+d6E6Jasd3WyaLPewju9dhmAgjGMrX76+CmppV1HjzLnO8ByFaJQlZpAtKEbqFsPSiZwUDd80vs87VCxBDDzrw==","shasum":"15e9c169a7a211dadf629f9b16dd380fd6f67188","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.26.tgz","fileCount":9,"unpackedSize":61296,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsz11CRA9TVsSAnZWagAAnlIP/jdkm2KV0iO230XPUXlE\nPsgFSzVKg+Gb0sIiH9DT10sTf388UBHqwGlo0x8Cgpbh9TqxSfa/Tj99pYtv\nc18ei1vurDWevQ5Xtre9afDTjB0KHrP+PoPFPGlklvk86oeMUyJbpoZc2+e0\nvCq0KiSzsgQdNLqiCE4UF0wkJEuiaN0pNPk3M8HbuW2lKtBmLVTc2iwYwUGV\nos9/SIxiosB/hhcbqBJhLjAF/KYS3HAqq60AGR08H9A6Fi2xOPjoj3WV7f/G\nMFgyO0y4GQvxeQab++TLqO3duDlAaMPvc/4jQRUTqIOYX60U0h69lRTnMomm\nJGpzFjGAHy6pq5e6wMQlJfnkJAEcSiEaHn988FNh7gqgyVSOXUZwyKP/cipG\n5gu5512KFCyBpgqwZVeHGXiUWDLPXl7DBQgWGbO4EBPRtKch5ci7kWlcRPZH\nk4enyXZcMgjALLeGNJAQIWCDJWszze5IMXdUGa5PK9aTl7QF1TcRq+bM9fL8\n8W4jGRgBxW9wzHYlilUdQGbG25JNuBJlZnbpjh1WPmILIFfixF1L3JNiwS/l\nRY4/iyguAbjpt1D9U9oksG8KyyTx+kiCjv9xhm+bZ57YyP5avtb/Cc3lr1cL\n9+Fq70mZjDSCa1Cl0PaxVWRZTEW0ypsavEbWHFPGdpSvjy7iKzhgZnz8a6B/\nk4D4\r\n=hFZO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF6SRGAgorKJvXMeuGKOQzZkNuY9MfzwvJTdau0Ve7y7AiBMex07MDCj+pyLJSvHeogFlZPYVTci++Eei3tXsc2tNQ=="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.26_1605582196905_0.7518157396828449"},"_hasShrinkwrap":false},"1.2.27":{"name":"@midwayjs/fcli-command-core","version":"1.2.27","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.27","@midwayjs/serverless-spec-builder":"^1.2.27"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"6ebbb55f0aab225dbcabace71c37b7df1e8e1de3","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.27","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-rQKqZgGC/1WICwNijdck9O1utMtCQsdZnhEZHR9YEjirx2m5Az8fS4Ru1R9EYbMTGD800/oRW/BU3nrva5VvVQ==","shasum":"0da61ff61d53238a3a3cbe389a5a455ea09c542b","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.27.tgz","fileCount":9,"unpackedSize":61476,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfs8wwCRA9TVsSAnZWagAAwSYP/2c8uDTMduewWzzux0JP\nkgoJsifE1JebsVF0ii563trxgX1PjCq68ogPUJlVc3TcbtZVN02Lyij0fo3Q\naKrsIXyBWx1JxIl2OSOBPyEd+R5XzAoWxQ//8MmFDEjPmsQ40sz3EgyDvhHS\nu7gCQLl+HUcEG57jYW8LmDHZjGuGKxfpKkB1zomci4XtWOtNvMn/LAx9NQpv\nHr8q+V8PPoWZyGA8LQqRUdS4+vbDC6ExYODhIL/b8H2efb2onANwjXZ5uCc5\nsLo+HjZ8CSrBERwrVf1kfTaPqLRe5eQywutxdo1dQ6yzL56CStryNESxSwrZ\nTobEsT/bufNO3FugDKr2nCJw+yi23eXI+StxFLRFeYaZYcc8wE8qTcaMQKEZ\nLgYbCneaW9FsmLEMuRmvHFFSfd+7CPw0exgDS12KgPjPj51UiXjFwCi9fTwo\nbqQunupIQDGdf5/wOjx5A86zK/lqDCQ4FFuZwIgr9JiuZZ4AscLSMKqjWcLB\n6h6FVEyOL+3JqQ9A3YBh2oVWUkcKmxpCQY24FeLn9/rCLn9hTesVnYZ+bfHv\n3vcMkCiVedPYM5uHzilrRhYm/T0g8iWqT9ZPdjNODto6FS7+BAC49O73CEue\ngWvCF+V7IMIb3mbX3ZH6jijO5v3LHZjugeyJjLYWPURt8NRUx0PC2l5Nfr+y\nFJWC\r\n=Tfdi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEolfafPhSqTRjdLXccoh3WeqYUEX8v4Xi/QF3y9Q1hjAiEA6G7EXaGSvgL8npinWVWNaWz3gGZffabdVJjzNa1gMao="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.27_1605618736112_0.40427266549108465"},"_hasShrinkwrap":false},"1.2.28":{"name":"@midwayjs/fcli-command-core","version":"1.2.28","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.28","@midwayjs/serverless-spec-builder":"^1.2.28"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"78a234d2c70f7fcf026fa3fe8216d80a2e010ba0","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.28","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-Yr5c3LGZQBCuS8nQy/XKbDYxkj/jLAcNz+O4m/l6GGGGkXfyEHQDY3az5inmBoBY+9dyQqOBYETnngH5yqtL4A==","shasum":"841b87dbde6c62e2c09127be1fe193ec6df190dd","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.28.tgz","fileCount":9,"unpackedSize":61763,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftJceCRA9TVsSAnZWagAAk7QP/A+g1x3uhztyqZjGLB4F\nRsu/uZyjsJlriCYS+QIXSC/DsBvGDO1oB6osuQyXOX2Rmd6y0objMPSzRDGO\ndDX3CnzF1U2edvrTnHDeNYs531KD6WQrp7ZTMwZKIrMYeocLxdgBo6TqSTQS\npLPIftoBXwC+kkgnHN5rQxbuUbGnbGNVQ8BpZnQP7dbkOOjc8dqjHvojjX4J\nwlXb1Hi+VPIamCGMLDwuDnGcQmoaMUwCWkBE+SEsB5op1RT8I4YHAm1SKgRP\n5JC2u+5u+/pBPqQiNIJO9ZNLyo3nv3NlaxIpIZE1o59Fdu6TR/A4ymKjqG+q\nqgiIuHsrplTRKwEWdyJgA8AsPDZZQP7KppljHYOPckNXtx8OT26oGY7DsBhA\ns2yzfjViR/tKNaLhY/lqUE88snopDN2AEaWaMl+RaFiJtf7n0AjqNGy3YGG/\n469BhwX3XF8zajyfCYeKYrBknUHueG+ZiwcHaVqSglGQXiNFTuNJo10L741P\nEwCh+ckHPWLXm8JVuR07m3vSaXWORLDKuPgsIvzPDzQrp39BNfLbKQ8cfrFZ\nV94aHbG29hj2J3sVsKYiNGdmd4SEBGbyx2OQsP2lSyT9gngSXCW5KURNn1v5\nowtsuNNNNZjJJKfpTB2Wlb1D9Dc7pH9QUlQFh2hjAE2zs294vEPG3rTePAwA\nXL6L\r\n=LunC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHkfj/2xMWE5lK/nIoUby2yQhnYNYnIVXZeYkFyS94LDAiEAzs81vl2K/GIyK4JkMh3YWfOQwXxLszGuQsJKLlQMRXE="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.28_1605670686478_0.8982353345525751"},"_hasShrinkwrap":false},"1.2.29":{"name":"@midwayjs/fcli-command-core","version":"1.2.29","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.29","@midwayjs/serverless-spec-builder":"^1.2.29"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"84cf7c76246f0735e0fe0a9ac82eeab4a0250087","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.29","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-ruXkt3UsjmTcntDxMKKgzmXflYb9SeYhvf58Nbw/Cl8qa6BhTILlhIVhze5MbO9emQHkJcFaMv5/cnR0+dvDJQ==","shasum":"aaa3053e49af7928ed44a391307d7952e429a831","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.29.tgz","fileCount":9,"unpackedSize":61943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftNqoCRA9TVsSAnZWagAAb1MP/1ngw5bCdrkGLvJOQf1w\ndxXQVDrDoNagpiviH2QI8TduYGTE0DZ/AnNp3LMJemfCq9OWbaZpPMzts70d\nGmvlybKDei/27lMdjmwd5Za4SIGttsgmKttdK5EIQhmPNWwlUkeHfWkRr659\nRmBI8xsugpv8BkYn2xwROm8VLlKqcFUsIyi9efKbLWGLpzPZVtK0uOXJfrgt\nBQHscuaixpzbbEIG4SLlLLquDpOjI+6+fVkq7VnnksHslt8AmTB8QqyxmVDY\ntON2c1Pfvfr9h0fSbUmLiCa12ZwVfRXywWySGuoOlPPKUmauF/xEbcBGnxiD\nHnUQ+7Y74RjKiNLm0p86lKG8QqF5y6K8KA/JszIbwVl/tC8xsrSnY4o0cNd9\nkCGDisXpK8pKDayrHqnoXvmDw/Qo7O2DlxoAp2waBtpGA5Nzf9spl7x1b0cj\n/tP65fYRatIeViBy0FB32UQWCLEWtcw03ybMUlENN0zJ2/y+pQN5uM8BjL5M\n4s9s7KITBNpr1UeTshgwSx1PG8/eMzSToPypBvNrb0Bn88ZLAWY8awKN+p1i\n/QD07sJkMAQxw3ByK8V3ahnGw5gUufFPm4Rx/IpV4zNNfSA9bS09BerWFVhJ\nhrqcSzg4n7xwJZtdGi5UqjR87jNhJlj8RiPsc7UsQ+quacGuRGMAX43SDbSt\nnZ5v\r\n=WXEj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBd9NOt26dGTsUNBb/BkYelrHsGXfWDt2onbJwnzli9cAiBg+jsR6IQu2lLqWiqbbPxi38jyoJYv2ybiWGYfy7HbfQ=="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.29_1605687975971_0.42848996708812503"},"_hasShrinkwrap":false},"1.2.30-beta":{"name":"@midwayjs/fcli-command-core","version":"1.2.30-beta","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.30-beta","@midwayjs/serverless-spec-builder":"^1.2.30-beta"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"8f5dba5f06b9e931fea84b6fe82cebba145af8a9","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.30-beta","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-oOjzRk4545X28kxHP7beP4Ke3GOUx4ySr6hABCD9vwaV5ADm+EdP1nsJGUwgbg6OpEpqRUbYPUcBG/XPqQCpMQ==","shasum":"89861d6b8fe8d6abdc6cebec2d0d00cb84ae8016","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.30-beta.tgz","fileCount":9,"unpackedSize":61958,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfxGA+CRA9TVsSAnZWagAAGPUQAJbQ/3bq2pl0dG6g0ZdX\nSEi9OElZBuQk4Ee7qjMs9rcAKg03yNsAQ/o6aojEOrAbW5ilVTAJ2IhdRAld\nVkVVB8M6dRj57t3zv51YkoWqbCmnBij2TSn7i3Kni+DSwj0L7St7V4X4PuH8\n8APU5hTPMNJhz0h2XTYkItFyjvWw2di0lgX0dreLQVD2paDF0nhcrP3HxWf3\nqhd7PDM1OIvqUUqLmBMEx6wHoA4XvgK2332/LUh6iHNiZJbFzGLQlCAZsWoU\nQ22ywhsRvbgtCpUNwD2BCUlwZhwYIVd/nQK3GkujDTic1l6CTYmzZach1ei8\n0sJc/Mr42nH4MIwj/QcJ+7amfeWaIyFvGNtJzqqEwcicnsgreBQJ4l/vWQ8B\nKxNwvoepux5UY+zVsjAP2vHZZYJvELNtTsJfNfohX2ulPxZiVQKCLhwuBLL9\ntt2e4x9uywkQNuY/CVXb0yoT8zQL9AdgfElgpht13B/cGomlz6JI3zzkSlTP\n7wPIrBDj0wiRQZaEdO+d9KJyEhKkJuiKuaJVYpocNwzYLZRDczRDaTM//A1N\nvY4rb3W5zotR6iUVNGfAAOcqW2tpP46uvuVsplJIKUaj1vODWMNxwwqsSQYb\nmwwoZXfiY2vd0WmHONa8b0XTyNxAJROaFFzHBTfROse4cufVfb+wI0mSBrcL\nPG76\r\n=R/WA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA8SumH4lT8hT2R8mycPtTqts4iTjHBnrOs7kF1iWgsKAiAEWS57huszjHjFbsWZ2V3kYNlkHPgQBZsC1C/giiLO7Q=="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.30-beta_1606705213914_0.08883786738845889"},"_hasShrinkwrap":false},"1.2.30":{"name":"@midwayjs/fcli-command-core","version":"1.2.30","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.30","@midwayjs/serverless-spec-builder":"^1.2.30"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"979a5b45eade456a5fc26e177b0dc3de597cdb70","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.30","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-AUe70inQvLCXx5mZhf+RrUxXSfwD2I9b5xQyBULc0ryrmrriDXIds57kUe1aXt8tw3MseB/8Dy4pYLksLnMZvg==","shasum":"9a1a592b4453af6bd998977e1fb26e42c1e946aa","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.30.tgz","fileCount":9,"unpackedSize":62106,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfxHAJCRA9TVsSAnZWagAAtP4P/ArUTJOiZ5MJnl1c0Z8j\nsf1F+VjRhou+zRkXw4HdqK3yMeWBVntkcJzIBRKR66W+LIy9RQL1gauZCwz5\nsokbGOkbMsqQO/F7b6BzCfpfK0mhhTXhHyLMfPvP8IW1onvQvgo6ijSIqrpp\nPA5BfXzbYj4K8wVGLSmkn/yEeQ1rNRlEqQvOPgw2HyzUYH7bSbEcosWH3Rwk\nFEgnh5Hxlo6QeY85GAeHkDx+6vwVlz8U1gg31+DkcGSvYVYxiBbkLT4iaSGe\niXcnZxHxc7TK+XyKDpbxlpKr1ZotLVtKaUvTGb6nxbCoL1XNHsayVHir1Tas\n4q/EJP4fqZPOmmKebdWL1QXY9UcRo5H5sy0ohmVk0QCgPLzQpzBjYRL20hTJ\n+9JpQs0nUG1VrTF2PviQ2KWZV0m4EavAgI97XK8BN/DrLht5VVUpOX0zSqnY\nZtlAKAe5KjikCb27B8HZ8YrkQtNFs9p3Qq2cbnkKf7eXcpHGHWhm7MTp5dhU\nVxGAGN1GWYPVymoWVvmd36PJ4XRbNyB8tifFLQbi2drmeYP0dGITYyTBhMpm\nFJAm3sXGfx0bdvuKg4peIEUgeqRAXM+9rSWkmU9Ysx9Da9dFESzGw5aHPoN3\ndT7cEeTkKpZH3xgauuL/6dWqeIkXghZqTkBO450uoMfezbbGr8vP7q3I6f0M\nUPkP\r\n=o/JU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH0iLivFpjLZTh9CqioWVpXN8zE3NaOq3PYThnNl8CPtAiEAvT0JGsZRFp5Ar+CtIYnSBQcVXhwzii6ATs0muAda0T0="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.30_1606709256629_0.18676286733073066"},"_hasShrinkwrap":false},"1.2.31-beta":{"name":"@midwayjs/fcli-command-core","version":"1.2.31-beta","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.31-beta","@midwayjs/serverless-spec-builder":"^1.2.30"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"2a24d9c312da0ef9f5236751fb47f95a05dc6ebb","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.31-beta","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-advTenHWo5Pe4qcaUleDS2rTbk/TCzC9z6ed5pNspa1wOTSMzxUktVVu1fJTWkJ+I30WJ9QjJxeMmSS3/NejWw==","shasum":"7795360ebb45ebdd91a3e8472dd9f106cc2f3746","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.31-beta.tgz","fileCount":9,"unpackedSize":62116,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfx4o9CRA9TVsSAnZWagAAwdUQAJz8rVO55G/j2pkSgYdc\nU6ZlPTxYo05Brragxw020hBtMWBFQN/sqEaFu5hZ20kQkVtPnDh+aZ3qaw4u\nqL5MPxHx83IpJAXvQ7v8BxnJEegLPamNybOwo5HTSlnmZboied42Ie0PowGd\nDj0Gc6v9KWvbJ1kjBwYhHW4QNkQEhN3FCC438JQ3P/dVcPJiQOzxpzPpdRos\nFny2qexNC1JXbRj1qu/KDzqbwnxy3yhvMFaWRGasbeus9Sv0TAxA4MXFTUtk\nBLJHffDDZjBX5enV/xxKJJR06PTbFm8v3GiNvFC/lAzhcmaATTk7KZ3hgGEO\nX71xWXB0kL6o1Q5avMir04QSH68Pt/V5PGng5XHaiPzi5BmZ6uXHASltj7F+\nJEtdkh0nSv1i+pGIFjdi5NVfwprumd6rwC/8z2Q1kzpvz1RJ4ZBtTR43StVb\nsPGZO/QA/RxbGQaeYntMnEJfU//bC4OWZithYtrNW25eU3JblhqtcMNWZGTw\nEDw80B15wKsrB6OOFx7BliyW+bs+7p3fzOS5KmLfhh1yZWVM5p8RH82417So\nFwLhWq8f5tSH7yDj2CdRT21ySH7I8LiKftNryL4r4Du18w8YF7AVgD/lSHw2\nOBG/LZnU1xT60VYntBG+zhqk7crl9u26G7ZMP9fJOr2RNuH9OPzGY/F+Nh8m\n+Qv/\r\n=54wQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG06rIZRPuMmhNYgo6LabuiyecgTLJvSkXb7mRCUjlpeAiEAlGKWoq58J95pNq/27cgA85ofnqt6EAdkWb7qwZGvmZw="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.31-beta_1606912572900_0.850208043307032"},"_hasShrinkwrap":false},"1.2.31":{"name":"@midwayjs/fcli-command-core","version":"1.2.31","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.31","@midwayjs/serverless-spec-builder":"^1.2.30"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"6cf8bd8ffcca8fd4d5c5428025ab910b79f71654","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.31","_nodeVersion":"12.16.2","_npmVersion":"lerna/3.22.1/node@v12.16.2+x64 (darwin)","dist":{"integrity":"sha512-wZ1nnAz3RIDASIGdxw85kmTbhMeChDumiTcaFLlAPqPaVMHq6P7ZZ0ZUYGJAEPUaxk6as0JhoBx+eBz4Y5w5dw==","shasum":"b46f03ac9f545c23f494ce5553c0372079bdb88c","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.31.tgz","fileCount":9,"unpackedSize":62264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyH6PCRA9TVsSAnZWagAAsmQQAJ40OUcc/QuZW4PHW8zT\nbr400HALrDrKM0yPjRDAPXcIwwc3XpXh1XrSY/y57EYpqu6EWGhrJAwDkQbW\ndxDm3u+6zf4lMnx8ztpndr/Z2xcUnEjZQ9gD4ysMEG/HqsF7Ks39bFehKU0k\nwy3WHX5VOogvjHFFDG2/WXsLJ1Y1t5fZJSzVd8r8hNg21pG1CrB0QM/G5J76\nNFJQrmrhjLhKqfK8eQUOwDoOsDBoNKPGC6zFPavJS7mn97tYFsV9kaeF4fRx\ncdMxrWpBejQLWjjGrc68pG3j0a/5NKHNiOvXYoz7LZZP/K6Jw5pp8cxtmvhl\ncWOTQCCAEof5KnZdZ9scuHwyuT4Rh6fKOcFraOEWWQrhL3UabIgZ/5MBVGzV\neB2CJplpt4ZvLVcDSbdmCCJeNyXg5SJGgg0qNtZdc7c62BDNNzTnyY13zvep\nm43Y7D9fwgVeJ0ukZPsbSvcQnZ3NPtmBm1OKo2wBKdAa6kvBDtiWITXk2CE7\nSfcVUycdgvLHg8TNK7wirkamDHqYPSQT7ndY7GpVL/uOLs7oJ/zLwGyET9CF\npd+6EmlAeh4Rmozfv9mWhQA2K2Zq2NVLQZLqTYfjtJH7g69v2PiHOLgUzHXA\nu9YR4vS5HMHcJA/TkRC3KaIJrlUDdThYURe6217u1Dwc9ALvPEuGOlTarJkV\nC0PX\r\n=9ItV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHOsceQdOicR/T/u41GQsTFrhSvTD0VBm+pIJzUuAkDQIhAN9n1n5mBpLkvHWAPQcBTucyGMPaiO3A/roW2D7dGh0s"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.31_1606975119232_0.45474175310933185"},"_hasShrinkwrap":false},"1.2.32-beta":{"name":"@midwayjs/fcli-command-core","version":"1.2.32-beta","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.32-beta","@midwayjs/serverless-spec-builder":"^1.2.32-beta"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"a4780db0e06235b7043fd56f643133b604cd3b98","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.32-beta","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-Ds9TOTEh7qUJqFC+7kD05VQnVf01ABObb/bv5sLX02pcjzAoBGO5xigCrUn3ygN0zTtJhYcJYjsBS7TMtDUhZA==","shasum":"265281cd85e620ddc3c0545c68f76c71ddd27c33","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.32-beta.tgz","fileCount":9,"unpackedSize":62279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzzdRCRA9TVsSAnZWagAAuGQP/20n7aEv4J5/LNZe757+\nS5+aLvyjuYQkb1SdPpEQNtwA8+hzJwY/QQcVg9iySWUasm+yG0C/+GakHV/m\nqUm70Sm1ntKK7rDl8Qx+M7g47nOqZE2LS9RRvpCheRnO2zSon3a1Vo/CwCiP\nxVPEwu+Gv75wTVlOqQ9tKvWcWZFzzw9ovwhXnhkgdE0OOeEn2f0bUPxxcqLj\nx88oEhDJSBgGG3X9LrKWI0FC5ByhIjvJk1Z7+brJvXhUtTSTTRfB6Gkw7Ju7\n5FFr5md+EPXES6o0B/rUOr+i0rNUQgzI2iwMnz3PPwVjJDRJ/Rf6LcpATg+m\nB54O8hKVxfVumQXkte27cPOuZ7NpSMUMmaFx8DDQHnStppm0jPTfMoyGOMGY\nJILkEhJZ1abihdsIFaEp+QUFrW8S6tJmUDyJunGxv3TOdsiAv/TdHeDH4SeJ\nqDWnW5qGMVKnI3zEHw3iHzsFCwEflYgk4JvaT2NRXNYHsNvcnJBesQUIoqVE\n4c90hHpNFoZGhOAUOk1o1wY9izZ1uYRkTBbwJdLLA4hDoKqozxFGE3Rsn6Yh\n+ajwrg2S/Stu+ONwVbDw/rusDosBlTl61yuM9WkNzxGK2Vgj8WDaj8fRQZO1\nMLjljkFajtr6Chs0w/kReBOoewM+/HPo3/qx34NO9NN+LZM2H5fp4lQ8nEEz\nLc0t\r\n=HgGq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICHuGGxJcrSe2Kb+8NiwkQDRTYbu4GK0Vim1sLgDcLPYAiEAl6kwCUJsLPSNEwYex2UqGuo6ideyHz6cdE/IRameF9Y="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.32-beta_1607415632351_0.8201204367289952"},"_hasShrinkwrap":false},"1.2.32":{"name":"@midwayjs/fcli-command-core","version":"1.2.32","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.32","@midwayjs/serverless-spec-builder":"^1.2.32"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"e357b05230ca308593ebe421c11650c3fcfff08a","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.32","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-E8RpQmFoOJDJ6S8blvdzNA9JteM0qx8ttRLu0oX3MytYFHG9Pj3rW5YTlksMfk+7lNYoJJ9G7Ahgs/rJ4PSV8A==","shasum":"ddb3bd0b4d77d1d3cb62644f34bbad08f6dc45f8","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.32.tgz","fileCount":9,"unpackedSize":62427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzz8TCRA9TVsSAnZWagAAMDYQAKAJ28Udou+Loo7wByyf\nXF2bsJ0tj7E/Td6vMp0eyRZeN6UaAPA51iROQRyPinf/SIwtVmPzn0cYYlFE\n4y4HfxtSz/I+NF+DJ4KDzlzVIQ0HvlQWyqQutrPnUngFH6GHFSozM1HZNKA2\niv42FNA+8pMdTYsRr4v2LFtdf7Q/aYrHw+9GT3NYrGf6udtjiCaPsgrYDvRW\nd9sNFmXm2qkqgXzP5uK/+kYNxY3l8In7O4iHU0F0oxPa+HjaszCBXq4I9uk1\nKS10mLrUW4ACwS+cboel0rDYK8545kJ8OohGl9uRSHjMwYlJ9Xf5lbCDB+rq\nHoY3Mefg4r/dzSTCNAO5dPnyE85aKX0aJZqbqSjoB6LcTtRO6Q9RQWjE5Lcd\nTvRH1dexBh7dkDjYjDokEc6RiWSbv6kOW5H4h3kZfbg6NyqbD+dnMSCpOQ8N\ndJuadQ56oBW3kpXMVoBxmLrdTIMNEWu93VQomVX2aCDvQ6bwMgno2TmeoiTg\nYDgQRHMvflOp6vMDs/dOxFR0FdFqTU2iZJ3W+OpXwBCftPIRZcaSLe1I1BiA\nYoc6qrrRhjmkffvpIQT2mCg2MlUlNspN3DidNQuKQkzcLPwqB6PP8+8Dy12A\nCTrYHT9u4SP4ZAtVQHLz6l+0skGhZUSntL6m1XOGMTAzB/f21+SFnW2Cn1JH\nXjpI\r\n=4ppJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIuOjuJWr2SI/X2/CUkPpy8AYCfOZ4o6+52wLdFPkyuAIgczt12hvsiDF6C9kCHiiRrEkh+VWUiW2vBlifDgIJG+4="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"lxxyx","email":"Lxxyxzj@gmail.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"czy88840616","email":"czy88840616@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.32_1607417618739_0.015258218193183737"},"_hasShrinkwrap":false},"1.2.33-beta.1":{"name":"@midwayjs/fcli-command-core","version":"1.2.33-beta.1","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.32","@midwayjs/serverless-spec-builder":"^1.2.33-beta.1"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"9f1551d84e2e9e7297c7816c371d1952ad167fc7","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.33-beta.1","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-KqgCJg/mFAspbyuJjzexX85+1B9VPmYBBWU5VQLPOZRL1tRxSMR6O2JkKWCMdc8NepoxrfjRqNBsMljwEBvvbA==","shasum":"c925cd7d442e38c009310d6d66277e43854468d6","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.33-beta.1.tgz","fileCount":9,"unpackedSize":62441,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2bCJCRA9TVsSAnZWagAAgosP/1+qZLbKZF50Dejza8aa\nIM43xHDWBPNUyMDroFmnkxO1ceXgxDw33N/RCwB/2YGdB+3Kz3XFQWMmjTmD\nQMVKhzcoGXXLSW7i43DHBHSv1d3JRMeBglpktvzZpKukXJbewcApDoPoI1dA\n/vvRpFgJNCAefPATJgZXq/pyHQGr6h1UMOdb0s6Uto/T0MsXi86XVjESwc7e\n/Wsfa9iVWe5JPyD2Js5G51VRIc52YGbDiF0gO596RtMxRlZb6uedZy59LCJn\nNcGZqRC5Ou4AzpDaxUfnpgd6nEzHz14tymFNR3iSYpJT0fGS0X9CK5+lW3uJ\nHOnOemheDB3s0Gov1hX9KLsZ+yNIeHhBgFIMSSOeIDmFLfRXOXsvNEbdv6Tb\nzWDrBOefjbpslYkciv6jIlIL2VKdHBF0m8rixO/gLaVId4tlnkAolPsLVAql\noTBEcfI/932f2nDiqmvu31rvnixWfKVXEnOLqIjfhm6pfxpgMl7244FgH1hg\nMqEPCdCuAWnCH88V+2vhblpjEMqF4JSm7NwPc72TFafDO/fCKnO+Dp+C6eGP\ngz0n8slNgpFVFsQ1PLHBVFEPpDaD6AiBcZOGcOhOmvln/C0fv7Vvy+HvaCCi\nxphUGiSZMCO3O/VbAzz/sAKflsZOsmzsp0S9ta40uTzB6xROAV7YiQrWynni\nAM9A\r\n=gICm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiMjaLUARPhkQBrY37h5DPJRG0eGEpQBkUYd77Qqp+dAIgZKqSloDaF74CKdc3IwMs3b1w+5UbCiZuRwpswo/eYQs="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.33-beta.1_1608102025450_0.5948747977676134"},"_hasShrinkwrap":false},"1.2.33":{"name":"@midwayjs/fcli-command-core","version":"1.2.33","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.32","@midwayjs/serverless-spec-builder":"^1.2.33"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"df6e6cf2e8029c89b6371e15b92c3477d4accb5f","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.33","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-TQJjSN+JtJ61rEKzFx7U8ITL5idZd7zU3zXujR+ypR7FnRl7BHxClKEIB1yWbrWLkVlXfhic8ISPZmPQ+WCeQQ==","shasum":"414d71d6eee77a273b72042390698df0edb26ede","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.33.tgz","fileCount":9,"unpackedSize":62585,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2x5DCRA9TVsSAnZWagAA06YP/2nmOpJcgbRxXjUsh4+d\nzAo2wp6Yb5pZUaUOvnhEUTAUZKRAF7Q23FiHULxyH+jFaMxN2zKkUMYj/Htd\nloRzKXSrCJzuWs5LC2ted65uE5GMFAbhxwoQA+ZdduRfL8JOFhwEhUbZFNzz\nD1Hd96E03ZQij1QxGLil+FM1Ar+3t2vKKLB+FaFguEGDE2aCEm8STXA2Xe2K\nWoZUCWoMnbNTrIonuRuuHFfaXAaDILq+q61p31KEhmLRscT+Ofy18rCvutRV\n0THtS6apN+wJIqj5TAuYeQeAqSMs801d6VgtoiYWKoBUgXxXuQT49xRjBWJb\nZcQ8LHaFD+3M3EPxBOof9/LbTBL9MqaYCzunLl0vr9+A3byY21SmTQyo5KE5\nsDRBOCtXkVYFJC5I/NvHiEmGoYWxW9ICm8v+Kw6JzdnutxlRVtqigjbTsskR\ndgKBPFh5m+DEnMsL3Wi+IIUK8cXuPtbwqcS27nM42WBbvJAJFDecccSStu8C\nbWcTbK6qxuYBTG40Ab89IBLFzOmK5FCMUMLbP7V63JAePSpj4meRt1/Lfr1b\nc14btqHLVUDyEm8a4SXJreDC1semMfClrGboCxrYf7PDIxXllEX+GQL9Vr8g\nJrBq1jee7i6M0far4+ZcoSMw4UmshLBvBUJWmv8EsLGK8Yc2H9LB1JaTupAC\nUjCT\r\n=9rln\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3bul8Ei7PACGlitm49Pujbr5h8Fa9LPAzeS2a8kkayAIgSEcrNj/z9aSAS8vVrzanH+OkZ0lAG6ikSdQIwHH/5fg="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.33_1608195651427_0.8339914999405791"},"_hasShrinkwrap":false},"1.2.34-beta.1":{"name":"@midwayjs/fcli-command-core","version":"1.2.34-beta.1","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.34-beta.1","@midwayjs/serverless-spec-builder":"^1.2.34-beta.1"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"6c35df5537f4439d72aa447d01fb9ff7b43bd659","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.34-beta.1","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-9VVDgb4Udk7bhvC4aUPyOa+RkJwkmml/uclhnNGCJ6iOH6io2+kUd8zylqLKqRtnoZkiARSyOvtU1O90vyv3ww==","shasum":"a3cfd40707961e00c8351f0e09ea17a3319fb155","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.34-beta.1.tgz","fileCount":9,"unpackedSize":62606,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf3zwbCRA9TVsSAnZWagAAztYQAJ5FGeNaG8isTXISFSju\nPLp8ucljHMaUH/JsJUmFsd2wTkj0Vqb+p2l+fVzoRPYwcfeWT04Wk55dU7kL\nxEllh5WnqjhJJ5SPbEmKv75hCeGvlkdE+dc1St24D2XFJKKBf0wQREid4M/H\nqEsW8cAORLWvHZxfS0mbr8w+1MGXtKNWPwqtnQWpC5CN0XnWw3DhoQTfrO+i\no6XkgD4a0xUSTE/smGdi6+uIjMKjztixvAhWZtho+dbkYu2Sc2OOAMESYhK2\nX8faAa3v8JDCLC/lx04geeyr9QXXz/7JOehqbdBoyKn17+T+rMt8Yh/MNfQJ\nsn3G/HRysDLpB/0PTLGlEIuMUo7E9R2P/MnKbmw4RDn5IMOUZVlUbVUrvHiN\nNz8XzuSwZBmWZWbtAuvmPekkyxnfJ9xBbuaBofEWxT/m/QvihpNyge77iT29\nKWrl6Pk5plbQiD83xJuKXW+yslAinTRqDVBD0aNy0S4X1qMQDzNlM6SaegKu\nQ5WuVc3tOaX62LlCzlmPtXk+QiIzRcD5dC+hfKrI+VsjL1iyNjXKq4N2VIu3\nmxLqI5vklCVQutNknUHxNxb8LIf5KloysMTbCOFDQC6c7/5z4cmMkTlomI3/\n4/+lykpx43dP93EoHH7Xs+MJec5gGVdNv0Vo2GVeZenNdWzIZpQCicg3FXvf\nCEEb\r\n=vZc8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH850FIH18HktwnvMa9SorU0ZcPeXlMxw2eRkldJNHxzAiBFHgQTcEb2c2IHv4hEsCMj35CqVd408lcyl9usJbnKTg=="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.34-beta.1_1608465434766_0.8296915003385972"},"_hasShrinkwrap":false},"1.2.34-beta.2":{"name":"@midwayjs/fcli-command-core","version":"1.2.34-beta.2","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.34-beta.2","@midwayjs/serverless-spec-builder":"^1.2.34-beta.2"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"d347dafc099cc3421c180aa45612d3137049c904","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.34-beta.2","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-Iclw3avLOT3Eh7gR9TntLWY55pTkFf+6CJckwAzaPZGl7Xbke9+X4wlEV6IG8u6Hd+2cfDqNek6p7jnS1WOPLw==","shasum":"081a4d2548fc752b767cb73b66591cbe36965561","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.34-beta.2.tgz","fileCount":9,"unpackedSize":62606,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf30pTCRA9TVsSAnZWagAAMeQP/AyC6zmBv6zRWk8pWuIE\njEVdCQd+S3ObF3YH6zs6rhhFrYVHrpVvgK/N3k4OElWUDLzFCuN9a6G10Sg0\nh7nse3pvKQu6w+YcN2hI7gFF2lDaAN1CmjtL3M/QAE9311osYkeb8PBzRflW\nFYjxAnx3iIRM/4Ss3k+SYQvB1CuFF5IFHQLkGPKOJHIE6VFWipTcugvgOBsa\nE9sEZxwKhrjiiBbUTpOz6AFjKxObExsaykmcmCjIY8E6tTc/v6pl2ySMFdzU\nFzSRgOgijQfqFqk2zJ6H6SenFn2rKsA5nklBymyUJ2hm13oWqAG4ya5IH3lv\nGTXrMQ5/ZN9M7QH+0l/EI6xqe0/LbRz4lWgn2OuhwFnMJZ0f2gV3PAtT7JV9\nXb2ThJfmU6jjXngmGUX9tBapkA5wKX2n9jWNZkMdf6LLrmjR9db4U60+5I3A\nljpZ/ZAlPKqeJWHIVwADOhakduPSZEkuEgRinHw+I1p7bO5J6MBf35lIH14T\nX5frEOYogLkdCb24eRVSCrcHoCrkCCC9QAmRVTBxLExxzxjc11brtwkLAdRJ\nCOZN4hPiY1BU/VUzrWJ1YNZaW4WF7MxS6HFA4kyMNJ9yGV8luWjlfLeTcKSA\ndrntKwcwjDUIrIRn2Spz7v0mrPT99RxgoufiSai2lxL3Dxb4Gx0oB+CZ3/yF\nBzv3\r\n=7D++\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBS8kxcuU2hi0izf4a9W4XOIGEmiySg5uuNVWbJLrK7wIhANLddfusXdsktUjKstJqph9CNKd/7ai91GRkbkEFwDed"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.34-beta.2_1608469075397_0.38334499978012215"},"_hasShrinkwrap":false},"1.2.34":{"name":"@midwayjs/fcli-command-core","version":"1.2.34","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.34","@midwayjs/serverless-spec-builder":"^1.2.34"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"03ec4f65ff511a42beb97d54d17c60f8a77cbea8","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.34","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-d1Rbdq2u46RoNF7TfR/EGd6SxpQwotQ0nd5WPF+y0TCuYqSoQKihz06u45UYEV0WX7XOG2tqpK7l8FGpB69CMg==","shasum":"57adec813c45fd488b8443b6a908a34f020de6b5","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.34.tgz","fileCount":9,"unpackedSize":62750,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf31YVCRA9TVsSAnZWagAAdAgP/1XyuSJFiCTKdWHa5Gfx\nbeouNKaF24B3gpXsnk6eHLoDM2dNcTtlm6sSaWmKWIaQlXKPG1N6lwnC31eU\nao6nIJGCoH7YjQPxo2aGvb0gSc1hPL9q2wAZCUp+wDAs4qgTw4TkYOAfeB+L\n6n3hfbOdjfeCbQ4YvV7zon11EzZ/iziifiGoFq2JC/xYTWqFrXYRE0mxtWaQ\n37nvlS37oQi7EF0Soc+ntX16WxHA4eAxGk0O3RU/JHcF8ntahUVzvdC/Y1BK\nZ0s4nOb6B2UbdmUq3wO30Ye7CeVMrtSUEjj4Es0widzpqoFRJUjRXSbGwA8A\nkJkDThRwOK7ZDOLmmSso4AaB6xrZGe9R5QH+sQjOSk4zhYbMnd/uEEOQfH/G\npAc2UtiJ51ZrxbUf03Agir9kKPs4uKxrFi835cIuOsUilgJ+zsx+0SsvGz1m\n98E0nE/Euh9k+YC+sjnJvR5myXq2jh3J5mdQN2rpH8cdfqvVM+1PkB5HM2Qy\nB4n4OJ23tt0uQ65KcyclE1lpSJCAai+3hzgwaClg4APNhVT0BJ8KhkblL80P\nf6HFBBmlrB+4JEV8Rdzm3auReoSoNqPiwNvKOovgxZD9n4Fk3NsoSS1A/usU\nQAF8d787/EpuJ1zzfO+Y2CeF6T2WLZLPhGLnm3Wu2NKZQynp4h3teMyV6gbL\nklCt\r\n=wXeW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCOLBQRMQEwu08oDDl2/emIA6IuXSBT/YvbFHxJERLIcwIhAIXF1m6hTXzjbIFxi4NU72HYDWCalUS6p3M8dWFpF3e2"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.34_1608472085309_0.4885173557727036"},"_hasShrinkwrap":false},"1.2.35":{"name":"@midwayjs/fcli-command-core","version":"1.2.35","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.35","@midwayjs/serverless-spec-builder":"^1.2.35"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"d71e942747af75beff8171cb3b60f7a4246c5d23","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.35","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-9dEXb7S3TfaY7wA4P/H+xB27QJuSjRSD9jdOJBhU5tJcS2H1l208e+oHu74UpYScDY62OSL18b69orZbGeXMCg==","shasum":"4eb8aa20300aad7739f7a4ab5382d243bc7ce10f","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.35.tgz","fileCount":9,"unpackedSize":62973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf5ARoCRA9TVsSAnZWagAAL7IQAIWgn870ptXnkB5nwZPK\nuESPpQ+R3gf/8Y/0XEkmxB8qdUOpSFF3qwxz1vI2e3Fj/xna0Gc/4Dr9OtfL\noTZv73sTVCQeiKPVZDjGwJkwg+xcFNmLT+8yeYL9ZJLRUsI1z1eLkG94WXov\nL/B/gWbSByBIP1o4fHJYMhaduy1ErQol16MMCfJppCMPc+WAF11OOLZoztq8\nt3xqFvgQOQsMrnk4IROmxBaSij2Nw1EFtuAGMnXGefsJzYx0NQa6wzE3470W\nqSV9ZMVq/+Ba3t21Vn+hI2LKDtpeTtIHRVtBcFcXWWG80YBOOWbaXRFTfFJg\nsjYorwHuopCECTHOxUf+DxCkQ+RwtD416L6xZuwUEmJTo0xHvAVJ10BApIEn\n9JwUONjYOR+rRm/V9UixSkUmFiG5kXh49X0okGWt4gLnlxMtkJZKQS61qSVN\n4j9uh3Xh5scfsGetDcCRRWh3IFWRRxNj32i8T8YgDStr+2GZKpjDN/JoioMj\nYing2WHmhV0XGH7zFxCTHzq5K17cfFsPlcM8nPo/xb8lVgwa/wcrtnN7lPoy\nfeaw60fexMwtgyctxQGB2oB/7T0ZIn2nr/JhBU6CSPe2NPpfyeMVAvXtit1n\nXXMVN4Jr12ue1Q8Falt6ojf0HMWTqmsSbp+tErmGS1e/EAFIDVqFuLfn8yea\no1m+\r\n=uiv4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxAyUeRyw35flZqLRiZhIVXC0eEeKmk4Cf6Cz4eOK6FAIhAIPQoKPAe11JYlwkstxGsT/qiiuzBMSZ8b6Zx3wK/usX"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.35_1608778855590_0.6796622264902925"},"_hasShrinkwrap":false},"1.2.36-beta.1":{"name":"@midwayjs/fcli-command-core","version":"1.2.36-beta.1","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.36-beta.1","@midwayjs/serverless-spec-builder":"^1.2.36-beta.1"},"devDependencies":{"typescript":"^3.9.7"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"31488759e6ab08d5151588eb8b51631bcf2b8fde","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.36-beta.1","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-E8XNEg9KehQtpInfEhThzD5votisXOYlI7N0tglnmTepxiIsu5UVebkWkWrUECx+ge3yKy6/wsrZG8r5AFVu1Q==","shasum":"e0d5db43e396f93e54724ff0076038d71baa3ed4","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.36-beta.1.tgz","fileCount":9,"unpackedSize":62994,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf8s82CRA9TVsSAnZWagAA5IAP/i39usEGZlDclYrmrPL5\nV4b+V1O9Vk3XG69aO2dIefAWTcQqxQ7eiwMROgP8hRq9XA3I9hR8L7OXsU8e\n9fgCTrcR+fWd2YzwuMOyRtc8KAKiZMbNB4Fddy4gdImlrx2748hI1Z07NrsA\nGpkVvFhuItxi+czel274UeSimY3Hogy4e5j4DmibuDJ0ectCJWqn8Pr6AZXk\nhMFw3TmTn5owhoFj/+m/V+vV7CpzNodLjLD9BKzVenudfXrpYp/auu56koaY\neunNtsRagSvAsZQd6Qk0ZFJeUUGfkP6je+KEx+My1ltm9fz5tUphQhNawMos\nY1z+bgGrPuUmQbDnK17X0Qn79JOSro3lj29nS2p0HoA20ZWfyAHwHkTqDxbZ\nerPP6KEMr1tS87Bk73EAny+Cw4FDRlv7PazcsNoxp7V39kVSkZyF8YneRmME\nBoIj5HsFoqLWsJrhv0p/u4/UsmZmxW8MV1GJTgQyebUOrenN8Ir4zhbRcJxh\nBYksjx7bADjNavJ1N9jp+QxUUIbl7ZQoCldQt7lmXBzRnLuiyt6/wqplCe53\nDIj0JZWq+fdc8MR5FYAgrBqOX+MkIqu60WUdd7n0Z4VSDGc9QoKfH+QLenRd\nAJefu0xPLvniks7zbUKJXTQWfXlG/AfJBSgZx0OC3RCC3qLZkRH1+bMx87LY\naukT\r\n=unvV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDdO90qI3owlai6JXbVnE0hSySZPV5KmVjaM0esgw1hZwIgAMBFvydBDagfB7tXLFogD4AaJj0fQOtqW26rY5I55vQ="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.36-beta.1_1609748278181_0.4213930020658907"},"_hasShrinkwrap":false},"1.2.36":{"name":"@midwayjs/fcli-command-core","version":"1.2.36","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.36","@midwayjs/serverless-spec-builder":"^1.2.36"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"4deb3b73a31511aac18d1cc0846a6cab290e4f30","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.36","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-/MlVW2FORuZhlqP1BWJqsgiZXJ1p0+QNbquPGCviQs+4RPbiJHLJEONbvzOinNTXmGRPYbm3lnlqtxyk/Zf5xg==","shasum":"f9e649060143091428a72ced07a1550f938d3c6e","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.36.tgz","fileCount":9,"unpackedSize":62973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf8ttoCRA9TVsSAnZWagAAnL8QAIX5vYXQAADdNgouBMqk\nEvj8sj8yz7Crqf4WS6F2OGGljoQEL7hOyGTMJaLu4hr7Bsr1IzkzdSmGLJa9\nhL4N0DzXCRMhg0r+KZhRBI9hEwEEx/KD6PDEGcEUEbMVSIWTSgPUP00+WnDO\nH2JsIr0nS6KwQb/aZLdPLqpwYsn2nrIdVtzM0RQJ7qDGOQ3J49qrlNJW+R/M\n+2hVq6wTAvo8M5J7k6Meg6fTO2Kz4VHWkWejqjmOQ5ZIq7OvULRRdMJJnT9i\nI2mhOotyMLlclHdWiK2y0o8da0OjNkSwY4ol0f6rfPVs1Khb8lu663KQCybu\nWQspuvE8XK1cHbQR3LDNL7yGK0LPFnFoLlcmb6jfuJX/DQyKzW3hFBXghtwa\nJqg7fI34RrNUb7+SsY7qXOvHfEF8OvKJm3fBxxx8WC2jJluil07ZCAJ5vE2P\ncqR4s3fo1+sWxq1/a97pLtjrCqd4QVL9Ek0pmgBLbodyERQVTKWwI40ALoFO\nN/dYRhjIUHTAjmuc6uLN2IsNo0K/HCa5T4iYIwCnsJsohbAujS9tzg+C7PRS\np5mBhdFD/HdVvOZzifHjFss8xD5+SiDAabgg/lnFzbLd3bN4OIcYf4/Xgnti\nWLGbALM/u9mjyy/TEhXL3oXBz1bMpEjhbXHAGIA4h5Cq9R5BFJUiQ2v6xzlm\nvS/s\r\n=uojx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQ+iE2OmVK8fkn6vK5+1Cl22XaP1gGP0mk8GYv8rkivQIgOb79myuYc6F/Y9bxyPvJLSI3H3lICEJQ01b17rz6Prg="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.36_1609751399788_0.11068768547840202"},"_hasShrinkwrap":false},"1.2.37":{"name":"@midwayjs/fcli-command-core","version":"1.2.37","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.37","@midwayjs/serverless-spec-builder":"^1.2.37"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"fe3e1dd72cc488466cf2cc22064fb63c962be8bd","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.37","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-BM0oDiIqItonOArohcZw+jdLieXXQVuKKWsmicP8A0PONyO7DsD9mRqqizep3V5y2XgJTstDqtwE4kTGoEugRA==","shasum":"0c876e2d067dcae035c7ab07832c3cd259c78fae","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.37.tgz","fileCount":9,"unpackedSize":63271,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf+AUeCRA9TVsSAnZWagAAaLMP/jzFVd0qGyumuA6taAwI\n1sHAkerUFj8oH7coW3BrSY4MRwAix/PpFZITebMNbiPLsuJkAi+mB2uFH+KP\nejTRNbY8+cA7p74554wV7Y1zBwkdRHRWKTo0I0gSHND4pO6MjaxU6DkOP1ll\nVXvOJY6dwAqfNfe+HBHWbaN+l3MmtlT9L0uCDGvCRexrPlfSrvWiJaWq6IOq\nCFG7jspmvlPK8OjPv3BRcB1XMUrZ3cYUqqKCfzgGRCU/OpXgLuMHfVImuO9D\nEYefHnVxLVwBRd5ZysKUZrXUtg0I7hQSzPDC8qCiOhYPVJInYvWc3OJ9zEjR\nDDinYKmemJYa2m5rZnjJZxuiE4LHjWrZlHMqAt8aHaGCT8h9BFOu3bpUZPmT\n3BGvLLDFCpzsjXPPsfSD9u5nasgUpUWhkhZOdOq6oNtLVR/GXC26DgdA5FSx\n21Nru0Akb8kuvI8DdFclQLMWO0mvNmd8YxoG+82hUVDVFpVHpkibZCs8RdIV\naoJ6eaCrDJ7RsJdkE0XjzXz3bhIei70BWaWSUsE9o2Jb7tF1zmxtGrIKs90R\nF+thexjvwM6y7R2lTVj/tLiYlZyKwCaw0+Kyxn6MKKXzxQAQbr+quu2QjQY+\nEa+88LhQHtutIxjeEUkR642Wt7XFgU0J7q2F2d/SK0JykpUSAlQWrCvEjKP8\nb35/\r\n=Eplv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDC8j0PhxXgdo9JhJWTKmsFoi0xycJ6qpH6gWOiUr4eRwIhANQq2Db/H5mvs64o10Fco53JdWpYz94KNsqZnbB12ZWg"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.37_1610089757782_0.41134624102335904"},"_hasShrinkwrap":false},"1.2.39-beta.1":{"name":"@midwayjs/fcli-command-core","version":"1.2.39-beta.1","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.39-beta.1","@midwayjs/serverless-spec-builder":"^1.2.39-beta.1"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"472bd3b325e9837c822ec5209aecda0757c93630","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.39-beta.1","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-w4o84jlIBnPyTR93yKaBT1KoNAu6sIyA9FWo6ZZgYRDY/mSRCWHLOPlipthPHzurlGvNgs/ywllHMWXNFobEgA==","shasum":"93a02e653a2130f31b90a84892f8976ad394c0cc","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.39-beta.1.tgz","fileCount":9,"unpackedSize":63292,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/+IHCRA9TVsSAnZWagAA83IP/1Vpr9AaRTo8qSqzh/to\npEwDI+Jf4hgYDQXgCFlVanug7oJ4WQIJLl4yODiOZ/NK3VqmY7bez0TkU05K\nNwasP7gBHNjx41XNU3aYt9irj5xJ7E2lbWGeCqHns2HpTWiiZkBSDK8Qzcx+\neQ8s8eKoN97qau68M5MQx/loHnbDZr87JJ/JKsFr31sRzc/Tk8j2QdJNz19t\ngSVz0ymkEJ67Cln+WdtVXgLDEt4/IhrOlQWlxxP0tBG5dRaExtvY5Gr6h8Ew\n9h7CT95o3FELlQRIMykwXj3vBc9SskQPnN61XeXyRbhQO/6WlwdNepcijDqE\ntn88G6aUxPa/qQPGYJh7wXKJxY/a5RufxjjYRQ8LibvAQVNUGlMBQuIEfGSg\nDhcPnEEG/gbzaugG904XQncrT5wQFK9xDgOJJr32ELJWSSELKEvdfqRf4nlX\nYLWT3UHd1BUCoKT9uoAoChHbbst27fYAOLDw1JW6k13v/RqRtTWS9FT2nnjj\nEi8F/pJML8lA3Ehzj/ysV8LOM7rw4/gk0e6lTR/G+6MFuEikUTOWr2qfbcVb\nyhp/fzhbdpx7LJKPAy9chdE+8/+iUsqWBA/rSZ93EBtsUJE88LEEQTGmOpeu\nnVBrHTYSPFX7JxDur0wQ8HuaA28qdnvEJ602w899aU+PXEAZbXWujA1xzkfH\n/Gij\r\n=3aLs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRjC6nwANZPvzR5Hda7XTBj/ioMuszbHEhaRS3vNLBdAIgIEuxE5UGtqe0WQ3JFfy8pGG0xQn97KtJVx+A4E+DH1s="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.39-beta.1_1610605063149_0.5397864132848387"},"_hasShrinkwrap":false},"1.2.39-beta.2":{"name":"@midwayjs/fcli-command-core","version":"1.2.39-beta.2","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.39-beta.2","@midwayjs/serverless-spec-builder":"^1.2.39-beta.2"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"49d1c9e5bf408170caa11e595fb6bff0d25f5899","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.39-beta.2","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-9GFiua/d1+TgCon8VNUtfJ4hnEgEv35U2M0KaGiSVt3cH+GobcZL3q6WNW9D7mfqoHMpH3gqwtkXgA5A2+ytLA==","shasum":"35979738109785ebd01d674fbe2562cf11d33524","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.39-beta.2.tgz","fileCount":9,"unpackedSize":63292,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBTtjCRA9TVsSAnZWagAAKOEP/1qAlMGWjXcp53KLF8EQ\ncrrAic2zIViseByD2J5HW49oHArI7ymQPBuro6LqJ6IUC/FUQnykbSLPIt7R\nHoHRK9Ar06M3lX/Z0s8viRVUXOj5wVvuySqsoXs8SGTlopJesTSw5kjk5pMp\ngr4h90KzL+rHmJJJeNB0EBuYjs4mQirKxTSXOHk7qqaw+UFgg6SIDkGsZ8HB\nVt/4Vz6vr3WsZQN7hNQ8me3EU2AnLcnkigw/MEemxP25kSPi06kbuFSgZmVP\n/btfvaFh9VQTD3kFnJNAR/IMIMINkXzp3jptDqZ8+lxWMXYxiDkdF0XkWMDR\nL3CRp66Yb3IkpJpD0Mihx4IJSTdBj6uHc2SJxCfwh2JNUSqtOHultUGnVPfp\n7HTGbW/fRqo0q0yk8CArKDEGxJ8HkvCyO70wh/2tdPOIaaG3c1oinoVC0ip4\ncXd02UKk0tpppUkdViwCjOQCHTMLsRkMU4aVJPhLzKFQSZD5Oru/mySj+VX0\nGrI7tj2w8KTnSBwG3210t4/cdE8Nond+pSpdtTsoUT5ytGmWaehUXBEc2xhJ\n/xfO8KI9iv8Z1MnqtvGcSEATmz8OFGNNihnY1EnNPcJwOVLB+qCZr0vfdcvY\nfSGr5xvoatZC0cXzjwTYr1g5J78/rfdfVmpUY1mLz24EcSK1pwCPSq+iDktL\ntsXW\r\n=8/qY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBWd18gwO0kkChUMgxjoTFaO2MTvBoJZVIjLcgyAGoYZAiEAn2eDg8gYZqBlWRKK55RKNVymZ1K7vDgapSlQ3V01u8g="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.39-beta.2_1610955619464_0.8977515885649923"},"_hasShrinkwrap":false},"1.2.39-beta.3":{"name":"@midwayjs/fcli-command-core","version":"1.2.39-beta.3","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.39-beta.3","@midwayjs/serverless-spec-builder":"^1.2.39-beta.3"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"1ec9d2b837adcf0b8ef06dbae42827b75b80ba01","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.39-beta.3","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-XHR++hSGhilx6jTsXlHERBk1ECuAf1T/3TPoJ/J+Qs/hF0LHzQJqGrT7PE1jU50kE1R9m7rYFknVwPWYxiJnMQ==","shasum":"75936f46f8cceb6bc76861f8ab0f14f91ef798c7","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.39-beta.3.tgz","fileCount":9,"unpackedSize":63292,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBUu4CRA9TVsSAnZWagAAvIkQAItLOm4IS0hy3DWFD5Kl\n0kOF/rpqUCR/2uH1CcmmuoFTf24W7pXRvzEyD6gqNOxgCZzSSz/y6Zg266sl\n3rQfn7JXtZAtufNvL3fgNJex2PvsB3C3AzzReJVRvgQcpc+r92PwkWxAIJbv\nfaR6CM23TIuCEd6lTRcWaT4TgV3Ce3rU2uvY2pcpqH4GGxNc8D8WeP06BeZB\neEbFar+K9uEnOzxLBk9m9BDLTx5PLaekySCm4RfLaC1GNa0Yw9W5yoDheAUs\nJAZYvuuPZ8EDXzkIm6LzbmnZci2wtdX3LUPGxOd3cOkqnUiCUcFlo1EWtZCd\nN58l1Anw3JIsbHzCGgV6A3iwB3KttdnoY+Qxo3PM3c9butCe50JW5E13O9/c\n0mDpaoypquHkvKfFhYWWBfJob/n9DzVbsGnN0q50d8s3DyPCrecat70VmaxN\nzAA2z5E0H/tkzSaBSABEGEiZkvGQXk7jBz+pp8UYj+r5iuy1NFylwqTHEP+o\n/RbgjlWLg/7Uvirez6xBY/xD2jZllM4zhV+86G+OYpiGH+deQ7qAdQNeWoxh\nsv/hZuD7vrQZiOIN1Lag9K2ulmDZBNbAhC/6xXkKLYAUoNbCSbd2m+A5pqOS\nLHhhLSUcP5Gx+VJXMww929sb2mgNLhQstFw5Jqu+AgAddG7ThP0uNYEJ4C96\nLLCg\r\n=h4KD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCU4pfzuiFkgEDTYLpeheylAW1jVFG6q9Arg3kLm0/UoAIgfX3RevxsBKafm4garrYV6ZkjS1Q7FNBbPlwCHQNOBdY="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.39-beta.3_1610959799725_0.8528357335826202"},"_hasShrinkwrap":false},"1.2.39-beta.4":{"name":"@midwayjs/fcli-command-core","version":"1.2.39-beta.4","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.39-beta.4","@midwayjs/serverless-spec-builder":"^1.2.39-beta.4"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"dd895f253f483409e193d00aae4eaf4500792282","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.39-beta.4","_nodeVersion":"14.15.1","_npmVersion":"lerna/3.22.1/node@v14.15.1+x64 (darwin)","dist":{"integrity":"sha512-1p2D1kAXFbMzuIH59wEMMNwKlvHmMKXdqvP9LegBj1+LS+RrIP+FgCrfrjlYgFXF1Sj8DpVn/qyV8h7un2jlUw==","shasum":"9bba2b8028d632b6f8c4c22a47de6b6c68dba093","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.39-beta.4.tgz","fileCount":9,"unpackedSize":63378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBWpACRA9TVsSAnZWagAA1F4P/RBfn1aGQBeWVE+PHNUB\n8ZB7UNDd1SBY7xjDan5gYli6eiz8vB4lhneNpcx7IbULa9aV9nbN57tVYMC4\nF8cr28CIUPYSCFGgUNAAYee0xT5zG+TDaYDVjux7Sxb21nO3WcjyaNhR6ikd\nEGpARzx3++wZ6Z16CxSwytrotbv/FZFxEgqXwC9MGoaPzPFoBlyUp0yPAf5z\nQ3OutmkRwmrRH+xzeilL5g5L8tfm43ty7EQhhiELbxW9yTfXoQO9KHjkzsI6\nd0a15YzbwjDp0VQ19Sh+VQ6xBnVLCZDZf8fP5DG/yHjFdytwFKbrCNqqP0sL\nZKYlSNcxyLCKfeEnYS+eSZBu5scYdjLd7727P39TJ9TGSpnEIUpcOnHVWxkV\nW60P3Dk/l5BonPaNvn/6aX7cljRiV/O5dzeoRUKdTyUzaRtvzCp8l8xqKi6r\n9wodk7IAQBbb0E61jXW9nuoU50Y0lb8JBaWtyEvbUvz52Mljf33UJBYA4VkL\nnqQHWiU4FkGHpGQxmT3Wyl5QSG1QT+vMOJ1rz/9NozsujaEzoLj5rE6L3R48\nV5oxOTAQEVWB5SfgKeaQwrcQd90fSZWsHbNZeBpLS/FNynso4gTD9K1lOcVL\n6HDcvFyZm8yTRv4nhhYiAL0dLK46cKv0eEIrW6r3jgUtWHIkxpUmNYzucA/y\n0ncz\r\n=thqQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDAm3xiCHz7q9P9EAih6sPdnlwLEVSpDkh5IXZrHJ5mZwIhAKzOcs3ANJXI9I1VKpma7x/A9VmjR9Dp/3Tx9qrOQTFX"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.39-beta.4_1610967616232_0.545438334864788"},"_hasShrinkwrap":false},"1.2.39-beta.5":{"name":"@midwayjs/fcli-command-core","version":"1.2.39-beta.5","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.39-beta.5","@midwayjs/serverless-spec-builder":"^1.2.39-beta.5"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"d2f5e483f0c2c92abefeceb67dd2a41b456ea544","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.39-beta.5","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-HxqmFMpiC5Siy0GoVuziUT5eGpPsvfGtHDVINzKsFwI/QIAInHC4SqjZM1PmvgnYFJB9+ZmP6/l/PeVGD5W01Q==","shasum":"cd74978a9275cfafa5db373dc685fe1fe9090449","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.39-beta.5.tgz","fileCount":9,"unpackedSize":63378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGmRQCRA9TVsSAnZWagAABvEP/1BFZHA6HYY9n9UJMCtx\ntoJZA8MAdxduT4jlb8BuFUBnAkPzXbFb7oGgxlQeDpT4vWwDSQIIPSgnV1f9\nlwwVHHDwnrB7aNPUYJ/FmJIYqlcmyXNXDfADvXNs3eSJSDH1PwET7ZQOnjTi\nrvrtSJlqCEpaXsgblpOc2Mg7riWIMoJ94KJCcXVBrrNbQWDG47x/EqFrtLDZ\nG879Mzo1CwyQ+uA83W9EZL7Qo3VOUDkNxfmmxiWk9KrEnxhvQ7n+MkHsJRBF\nNxLS4Q6sxrO09OcYKfa9brkCA07fBrqEtiY2lj/venm7R0jH6ilSHeMkjKmV\nF4Gqf4qXi6B2hT8p47NZZh65YdhiF2SeWFV2yqzQJisrYlEpi3Jl5Ly9FO00\nNsPtjIm44PlyzSDa0n4XKGFV7v2iZrKF7z2fiaLn+RdBjMxKdDa1c0wGuu50\ngJy4XJGiZf4qmVjBrXWvPjdXtfDr2orHNJPKi3cXRSlMEhbO1nCSAroPQYyS\n/gQyWCa8Nh2U8kVWEPot6hdrpF3y+ZJV8bjjLjM/a3WiJqLFma1OcIMS9+SN\nuc1MMcJtg9kFF6yZNkcBLfvmmvVI5LEvuCX/zV18T9T8lNq1F8qYhZXWJiec\nvETIrgcDdkoqF0Qp5I8G5L/KyKPYdqUb2VIBt0OipvsMFWpFLBv3qoQM+xMt\n5hd4\r\n=vNvq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHyZS9GHpsoY4ZBWQJvxEMmbj2qwAHl9jYpkNde8/DmLAiEAlTCeyybHovaOyBeow7mmjUqrNcF6tEDy7F8S+tUa4hg="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.39-beta.5_1612342351993_0.42105035787678435"},"_hasShrinkwrap":false},"1.2.40":{"name":"@midwayjs/fcli-command-core","version":"1.2.40","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.40","@midwayjs/serverless-spec-builder":"^1.2.40"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"d5c0b37752ad71c4e69d0d9e153be460a4f4e605","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.40","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-Q2oA5bx4/Di26ukrPJNAf9TI4OUs/1fIeKy0kNa7qiSV3xHBXpL3uqd5tfmaG6gELkMLDrMk6u12IiUVuH5HvQ==","shasum":"40c92430cd037a565b491a7b03abcd84439e77c6","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.40.tgz","fileCount":9,"unpackedSize":63522,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGmfDCRA9TVsSAnZWagAAfdcP/1QFgVwNGV0APEDItgdi\nTYX7gyHwPUWvXHqlcKLgKMMP7nhp5rVGX8N/HAh4J3kiR+GgoMbKfgwoiCO9\nES3Y2keA8kbAokMKrL/afKJ1oBJ4cyZwvtlvtiwpmMujrUk5yaZ/dCNMWhoH\nmoLp6Kdi48Jzfzhc1DykUWKzfh0GP7jD1C/h54S0ZI6y4D+VDv71WqLHg6ji\ntZaKfD9hPIBGFPQ8OVZrVayx2hFd3l9FbNWI2izwqZawQ1fxekPO5Y5n+qC7\ntGry3cXtOFZ7o3UKPrcjtr/vmEEXQye/+0I+LeVmcJO6Zd5jmVpMPyNmWifI\nXS1POSBBsZ5lbLH3XFR/w9F3c/QqzAnWQSc3DSlkMOMlFjsNoZQttW2PnjEG\nDJ64l1kJ1zwE9+cetdZjXUm07Aby5dnJ8MlKnRX/gekjz0gdRAxe/QpwEfuY\nCmzdEsJN8VlF6AeJW/n7NIcEHQ+vaihph/li0f0QUcEW5L45a9/PWKn79fC8\nQ6TnILZQLURpj4j6JCKKHGDILwbLhR2xWv2bwYTHCOCu8mt9sqoM+cQZLFDe\n0BdTxVTnfK2R1r7bkd7MqPlmXPkN6vq+YZN83pM6w9EBpsCZ9pAZ6ywh4zYs\n59GvWH+NaouvjsiLze5+3o4vEd5lyhjtTMaZbvAHwo9AlYDMNLU0ebzHWBZB\nYdLG\r\n=CbXS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGW+ewjSHy32twpy8iYG1k8mDeitLLxSH99YpaZT+4BwIgWWx20k6IN7cdKtDvIL9eHNcdT6q0nnXdn4Wl6lJglKI="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.40_1612343234794_0.08061966780639818"},"_hasShrinkwrap":false},"1.2.40-beta.1":{"name":"@midwayjs/fcli-command-core","version":"1.2.40-beta.1","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.40-beta.1","@midwayjs/serverless-spec-builder":"^1.2.40-beta.1"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"347bf75be36b07b85814c337bf381f1ac55254b5","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.40-beta.1","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-l08mryxrCiog2csZrn9zC5f1zHJvQ/xag0ljX5NLcqQBWYrrBKHE1Ckf14axk2wmHscmXxdyxjLd4nmB9Yi0Aw==","shasum":"119d1273309e73dd524bb09805e1cfefb916e229","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.40-beta.1.tgz","fileCount":9,"unpackedSize":63543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgH5gMCRA9TVsSAnZWagAAraIP/Rxz5DUNwNobj8zlWGs2\nv0F4qTD+Uw0VwvcpCwuOPwm8jQuJlhIw0vXllFSf4Ezsis7XaOnNO0lOYaKR\nY/myLf0Fo5hpicTj/gVxP5i9eBpim2cpQZxI3ZJoThNTB+RHqKrCTpjGQn4Q\njJOkFqZs0yp3N310ve7kYc4cktGKMUyV2ZLn4aw67QbZrX7Xw3MbIdGH2dTs\nNerEbfI5eglSX2JyXdZC+GjMQ85eZMgMApijxjGc/lHhr95pLU8FzjRjTvSr\nc7MupyHqLL0KxziMtcU37l97+GlxBsiD8wsY3V3ElEmS9QxusHItLnHjWxlU\neHiHCXJvhYKM0bw9MjrMVosb7mayxrDgsTUTHbHRiN8j9L6VytdUZJGoqQjy\nehwm/LkUVvdQTZW7qzGBJKhoeCLmHV0mRHvCC9XI7IwYdu3/0likwrAVSDZa\nQh2Dk5y1RuvhMUVJQQZd+Mz7nUkZ3hzrhNwaJiqbsKUNcV4PJLKzSIsIJrzU\nUoplVjaJvKpiMyofCKTlajGvHyOk5jQSbU9Wcq3l1ktl15G7gXZW469NbA75\nyzqZrlJQ1/WPrv9xIQRn/P4zIWWQFLyiMa+HUqB1JYBbudQ2MSCZViAQjJRy\naNtv0LqD4aklc4q5+SWnJ/7MOagMT9IMbDVMtF/p7VxBPMLR2LIvM+qKO+/0\nW+bQ\r\n=ZIu5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTNNuo9oKgeO1q1scbr3QcBJAnmCigmu71heQYpwPAdwIhAKEMvCBANaFA/AU9tgRQRP2iVYJodOEx7Xk9/U67Brce"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.40-beta.1_1612683275599_0.6040849761596605"},"_hasShrinkwrap":false},"1.2.40-beta.2":{"name":"@midwayjs/fcli-command-core","version":"1.2.40-beta.2","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.40-beta.2","@midwayjs/serverless-spec-builder":"^1.2.40-beta.2"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"effc7ac8b49d65ef84e307e8d2f72e72d8cfb3ac","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.40-beta.2","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-2lYpeV7w9kFAKr3emkr6a4A4An4GkmShxlFBEojJbCEj30/l7VrvuUiZSyENeJ2p5VVWQCww0N1o8wWn0TqPkQ==","shasum":"b2117a13a3ae0feffbc4e0197c4f36bc50dcac3b","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.40-beta.2.tgz","fileCount":9,"unpackedSize":63543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJ7nTCRA9TVsSAnZWagAAeFkP/2QUilTqTqLOBhc15GL/\nHLCuWVQkK6w7gLbgz4EUIcz3/tZ6kUenaT0uDee3MXdTiOssex9SYyrVaUBt\nn4t4+cFv9ULPe5m0tZ9ea7zWW7eYySpDLw48UvCAE54pRUvY85me9vlEIQhm\nhnw1falt1EB+zFMDuhdku3gpgaZmlYcw0MUHIdBGg/UXuFyYowgJ8ZP/D0r7\nkaswUJEizUT2xqSEcQpkbBbarlwnPK3h4Qa4giwP3bLEwsn8JrD9A89Oub16\neryQ95/MiLpLBZjbFlA720xkiRK0w64Rph9R6UvB+pshGoBjmFZrLbRgtrV+\nSvGxKDwSCkYuq3vvpsDPoVXHmQu2bjMgMv+cN0BFpVcrtUI8jr71Q/jT33K6\n7PRicGkuCf6tF2pDGabt5I6vj7th2Ik9SJptGKC9XUAitByiuvB8vZFxudEK\nWzhK2FmUWNg96jNvlrzQ+fcab5jRiyMbmhFZH60YfKuBxb/wZHtJ4isqON1R\n4ND9FUg2Us5xu03QpV+1v3DUd20pnpe2/x5i4Gqi+yOmU20pfCHbDWyAAbZC\nLQeBZtHUqlEWKT6YbbvwkIgLX6gs1U3sfPbtC3QKedGW3ZezxTfmaep/LYQE\nMdCw0QrnrIN4UT23vN1YJwr5ueY3Vrx1KYls69lRN1szRM8zl31Ur/Pby2tt\nMD/W\r\n=GfDF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfXmyQVKUS9bYm0P1NPYLuDFJHqqOVciXY+guUY9BuOQIgQUaZfwQZ+4vipA3ockI+JH14luNeDJSIGcwbFsbL8jg="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.40-beta.2_1613216211553_0.4781460784196301"},"_hasShrinkwrap":false},"1.2.41-beta.1":{"name":"@midwayjs/fcli-command-core","version":"1.2.41-beta.1","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.41-beta.1","@midwayjs/serverless-spec-builder":"^1.2.41-beta.1"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"8ac6d7ef3af60d26681c9aacc5758ddd5bd9bbaa","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.41-beta.1","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-r0UovfMgcgqdQFX6v73UlFQQI0FsZi5vX6GHGKybiNxeosEK5p9XuYjFDZ+LsamZF63hGlORGmYG+nND3WxEJA==","shasum":"1be5ca9050787a781bfc7531736c0fd23110d790","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.41-beta.1.tgz","fileCount":9,"unpackedSize":63543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKIu4CRA9TVsSAnZWagAAKLQP/R+iI7TheGOvv6Ua+nn0\nf2E43iRPKmWuwPEbmPaCqAFUJlzdmmQRUV4O1V6XPDyCyyB4Vak1Iailvm6Z\n6f3rS4WniE4QjAc5trwZl9B1DUfiz65b/eCYfCIVfRCmQrvStAphINJMmtbj\nW52KcO6p9X1Fu3MBIMLHTyb45G1KILi0B3VSHO29PVerjRiBmbicc7X23Tor\nvGBg09myZwHuzF3nCSaiLeh38dzwhTcRd748bYvB9enIoczvcq/zaDadq91D\nh2xtF9FaQju3BgtIkdly2RQ/E9DhpXm/WtA3aOq2Pfor/oegwIWPdKw/39p5\nStQxFouM0YzPDyNjHDepFhwerb6V7HHVMWso2RTXjyES/ZvqZJ8dt7urSs/y\nJPzb9Jvc1vad8eP50oRXe/iIN/anc5uW2UysVcwFA4r2KGqZsMFvrkXeOWMZ\nTHjeedlldVedJ3t13P2v2QAKX7V2ag0BQp71jwZP/B075p2qRtx/94/t9OU6\ns73hd0vyRT+9FFUr+d9r+V6CEktcYLdyCvT7LAtB7IFDfQgpQFFNL2nqDZOO\n57yBliIHsxZVvXm43UXWWKeiwgWx8FJRoSh/qNAY04HA2Tru2gTsRQKwqtAo\ngbJPBw4HX2HE+QJq+3rVjSIoXs2wAyA95oy0BZ1dd6MHypmZRshB8ta1uRTi\nn3ig\r\n=V3Sg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICkibrljFOYn6E3ew7U8iVExyThvn2iYk9Nk2ZRQgpWKAiAonlhynuWq72EE5pwddeIF/HKcczMU7xV3JMWa1iV6cg=="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.41-beta.1_1613269943648_0.6675723228265984"},"_hasShrinkwrap":false},"1.2.41-beta.2":{"name":"@midwayjs/fcli-command-core","version":"1.2.41-beta.2","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.41-beta.2","@midwayjs/serverless-spec-builder":"^1.2.41-beta.2"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"878f32b605017c89c2dd0a9cc735e664e50a42e8","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.41-beta.2","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-u8N8PifHZVbRVQ38BsxLpVFiMg1VkJnT8r5NgOhfJYTyZhcpBFGs/bxfQE0zkyYiLcyVnMkaqT8y33voazgrmg==","shasum":"0a7d98d5245d672da51eeb1b1167417be4b25014","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.41-beta.2.tgz","fileCount":9,"unpackedSize":63543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKJK6CRA9TVsSAnZWagAA1wAP/i7KY4/mQiefL28sEpiR\nFpvw2qBdcNayVsrxCC3RwT+AxD2TBhEeeHsB5wSZk4SXzIK13vQZzBZ+SbUR\n7nV8PemY4u4SmUU++4edbOtYTCYRkKDwzOPfZQjjRtggeFpDArd0a54bT5D/\nzsq3kGMoZTC5maeBMjyfgqxx43dQUC+6IQUy8v5tE+W8tF2JY/rExItopxqm\nAPflYRQDlR6AWTOOy5NNXm9ENpPhI0Ni7/NFJQgnlfrIRB9wtywxjtoGxVmT\naN/BQW5VZlJ5ybiijlvTRWFhbnNo6Vpg77Nt9AoRhR4dCWlhIi9XHgxvYEbS\ngK/BdF/6pYmTrbRTAGbQVkwZekp1ivyYcfTU4EJn8TLBgTQHdK/A8wRBP5Nb\nQ+Wb2vXBHJhjaEzx7hWZD6GybCjqz7ex3mo/7aVjB1JYY3zULY7BVH9mQpmL\nLYLRkg+cFMSd80yTtmAHXol1P9FjTRkv+8bKLPtMLxqshZ3XSe8sPKNYrrvI\nb2JSlMTOCsE87eZKY9XLXLsYkI6Jsum2T86ZvTXlC3EGBmi8EssTP4jypGgh\nDHQce7uFT8Ow11+sX4GKhmE0lPXDtGjx6cGr+nuF14dMYrOrNrd+P3Hm3oto\n7U9dlbUj7MMiXx+KUnwiHtijpxJk6VOTz6xKZmIwslYGX31FUBFsPjvsbrAm\nYrMC\r\n=u/UT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE4H7dt5A4nhXMbx7oK82Fkp5mA+5P8OSgUza+DxsusfAiAlHGaavD+AutGgrBFr16mBqw56yVjEZEvTQUTOt8YMYQ=="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.41-beta.2_1613271738384_0.9590767716790058"},"_hasShrinkwrap":false},"1.2.41-beta.3":{"name":"@midwayjs/fcli-command-core","version":"1.2.41-beta.3","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.41-beta.3","@midwayjs/serverless-spec-builder":"^1.2.41-beta.3"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"effeae67a04f15b9b0edd8a1b5bcfac6a33990f1","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.41-beta.3","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-zlR4iHBk4TjRfOVfVHrPsThtw/vMTFDLKP7tt5w2UZxdj4rmOezWXuI3oZOU7/zGjzfz8xsZVgvebi7u2rp78A==","shasum":"7239c2634deee2f5c05fbf8ce1c2c2d1493edcad","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.41-beta.3.tgz","fileCount":9,"unpackedSize":63543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKJfUCRA9TVsSAnZWagAAgAkP/0vm3zDyWIIKd1GtAaL1\nRfuIFrAhT1IPzSc1iqJ4H3dKgreUIkTLtY9zxyegofkSJtaOHnVm0jBkd49I\n38vcqWonpXkcOSWj2eB+k8ljRup9ZkUffoOT1CA8HUAH5GvjBmSmkgK2IkBd\ntfwfB4QdmS4Gl4JzASyniPfDOY9/p/6rmrX6xr4gcFq5BeWc7CPDbnp0j7Wd\nWHmZaldXhhYe8gDB0Gdr7jgraSjv74XMYhxngyRkIdtcSaea+iRzS1ih9EVp\nGZFjU/wrKCyqvwlOHwjsrguiRV7z6Drw4Yc6PdE/KofHlqJ1f10SrNkzNpfk\n+elD2nVz+EmFq6frsnhY0M+riPzocHt/cBkYASaLiOVIC8aemdcFiG++lShL\nCPdhiAy3exQxDeOjTR4/O9lxsaqMqwmy9j2FTr16kyCk03kM6cRLhH2wnqdY\nLSv3GwYq5nW+rJGPkRCmYebh2M0yqxuHCePe5YNHTBnqcuwsKH4/Bk2QhA6K\nzSr8zaekY1mzKTsZOjcRcXerCrZkKN4cbCCTX86wACuakuqw3XVbbjNBt0bj\nSO04nC9j/tjP7ldBziG5oCCVHnXEkGKKP+7+LQlPFg/6jheHglhAWHWG4ceT\ne5nQXXm9wgv0Zf0ItGk12CO+uTMKPQ8RDaQpQaSHU3bFYhkwfSyYBY+LC0IB\nxaDo\r\n=Y+VG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfrTWwNWH/kSQOk7QiJHrs24ZaEOSo+iqZ7RFr4tUPXQIhAOj7STneotVbBGrPkoTMcXbKMze+RKHyattDxtPbVGnO"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.41-beta.3_1613273043443_0.01759534665287954"},"_hasShrinkwrap":false},"1.2.41-beta.4":{"name":"@midwayjs/fcli-command-core","version":"1.2.41-beta.4","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.41-beta.4","@midwayjs/serverless-spec-builder":"^1.2.41-beta.4"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"25d4a3ddce60c2ceb372d272f9721137adfc7d8b","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.41-beta.4","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-ATFMOXZGAqkDxSEnDRbbTjWUocc7/d4UpqPfn5L+PtSlZqCy84B0FLAq8MYHJIMLMRBdv+2UbJ4i92I7v6eB6A==","shasum":"def6c61a18f13718f08a26d54e7f22b5e5702758","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.41-beta.4.tgz","fileCount":9,"unpackedSize":63543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKJ0GCRA9TVsSAnZWagAAf4kQAIb4PFZr8UffaTnJ/IUr\npfWMaozQuS2btxaV8kEX9NL+hZ3BvA2pUWaT7rDLbe4e7vhypb1tnhZDuR6U\nxlK0Q1C8jSQX5QS88q9Al6piEXe8YYhmMXnv6fki6Vg63oOp7zI/b+3p9tVQ\ne1tYLifQsxhi34AWs4govaLjnLD3qd8prcUqMGiHMUdmexOWyCjZJh8CCcSU\nQTnx4LDlFTC5SVDz/QVzchsP7LFp3/ulM8rJXsfRgM53krBXM9+GZXQc2frt\nr8Gcb4QKmJQQOX2KNewndxV8cosl39Z2RRVMiiQv0nQ7rgFw6FcqsRTpavjp\nB3NYpNAvOeGjGTz72P7Hc8ASAfPxKqwuaxUxV0yrtDWMFScLe/X86gLTDvB5\nC4q+Cb7/MVN2p4J/XblZu5JrJ4AZdfoZlKNfI3IJ7w6rWZnbtMtE0WNc0BLs\nt4KqtucRzkhDT3yswV2eT82RGItnMA08l7TL0/2nHI5gvqoZY38+MT5mofFh\n/sQz3DwjvpMx4lgxBELAjwPQlO/wj0P6tLhyCDnjaRu0OcuYmN+6t6I/13JP\ni54FBcfQCuH7/4m1yqqgcolhrmV1W3rCWFGPy0So4aCqWCKFxOLajTyqPeYk\nIMWCF14PbUQmJOCNzFU6THFNg/RT9Nqv8+YPMnJ94k/iLX5JrO3CaScvIivr\nXbxk\r\n=DmXc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICubH7JBWs4RUrIt+ENTqG44CL17nPZnhGB+9WN4zCJ0AiB2Sz5kx9rFaNgtqlFkt8rOWlAUL7g8SMtCZ77NHMn6jw=="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.41-beta.4_1613274374460_0.04223685367845853"},"_hasShrinkwrap":false},"1.2.41-beta.5":{"name":"@midwayjs/fcli-command-core","version":"1.2.41-beta.5","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.41-beta.5","@midwayjs/serverless-spec-builder":"^1.2.41-beta.5"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"05886d9b9c6443a5235fd80ce6b374976d00ea1b","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.41-beta.5","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-3hpIg4Rv+f+mVSbv4t+P/Gu/WiAkhvw8xJkSPGMOlF+qtD72mohF0VXhXIdPR20RE26SxQk3SzXzypBMzBuTRQ==","shasum":"59f6dc883100fa8b39e4e39a9567a8d2714f2cfa","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.41-beta.5.tgz","fileCount":9,"unpackedSize":63543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKJ4MCRA9TVsSAnZWagAAVUYP+QE18DGy93kL0krnl0kz\nYSAAAmbHWusPb5BhlrG2QacO0WHqvG4HwN51p610zZeoufMgzsIsP7A+GC0c\nfmx8OquwT685iJMKprdaMiK+axlxBN1850YKNDxviylzI9QtCAip4LzVvCn7\nra1P1IO29qYgSeFQS2F6OGoDdz6TgDzsUC7IJYHjjaPmmwJCyl11kw6ePKJL\nVsbbLlygnPOUjHCSqUhwbf+Yh59ByH+ELhhvuJZb2zc2sId0d7H1DnR3BMBi\nEL/Y2wSo+9Y9wf4jCswt4IKYbuoK9EWT6SxGlf0G9mwxn1e9lBwIxqFokhwo\n2O+Jk2gZS14nEv5oVcpW4NuNNnjV+P5hNmDb67SD0VkmTz74nslsazrRiNFu\nrLMjP+ZWF8SwO49RNESNUBwhci3vzI+hRuBVbbVJV4YdCtEXNAzAaDDJm3HI\nk1AiCiyarvWKJp9ubNJ4bK27/qv+bddaTP5L/rbWTJG8oTzw/Kz1Komor3H5\nsXKw/ZZ1KyxAjOAVRTDTbVCGYilZsQNKegbzR+fsbyum5y2vGcH3vn1XSzbt\nfFUkFNH+00iLytxKoL1ZwuziouEaM4QgzVkY9rP60A2gQJhIIstx7Zjx8BTZ\nxJS8JRxOdu3dMf7oZwb+4VnFbBu1U6VMvKRRCuVIpC9M8xGosEIrGnSyHqkM\nkV1b\r\n=V6vK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGBAh4061/eoYMgvxVSLQcrSybPJn3GdZHQF40xICVL+AiAAnj4C7YTulACazw24N0D8Tf0jZEpk7rmCLJNlvDApwQ=="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.41-beta.5_1613274635912_0.22195485713158303"},"_hasShrinkwrap":false},"1.2.41-beta.6":{"name":"@midwayjs/fcli-command-core","version":"1.2.41-beta.6","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.41-beta.6","@midwayjs/serverless-spec-builder":"^1.2.41-beta.6"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"a10304f268e8abebaa9e999d2885794e83913d58","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.41-beta.6","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-fctRmJUJpxrBGQKanKj/lYyCGjUCyz7Qo8w5BwLJRgmWlJDFTuyc7jJMC2FxFSNGmLPQ8xPu0w4eoVDoWvKMsg==","shasum":"e1f62c8534d40820b9c6ca06d409ebc9140f9528","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.41-beta.6.tgz","fileCount":9,"unpackedSize":63543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgK1X6CRA9TVsSAnZWagAAUrAP/26Wd7fLHD0aP1krHPuy\nr5otwWzAxKzEB272BnLZvQgTGbFcZJrb+AEHTK3VBLohYbXt+5TZt4C/wiYV\nvvw6wC7r3TFeWdThwh5769WftvdvcfbxXWILmgUIyftWXVjCpAgMhUKHj/R4\n6JPh0PR8YvImReWaPW88Bx4JXWvwPbb2XsJwEtO9vn7NfyJfFcYblH1pRCd1\nvNMSG/7qFYuVW2BOziNxjMdVxU7CJUtc1qNUmQoKpU/ACdzvl4sFJfCRVDrx\nduD7oqA3cJw2WluiIBlHPHwbBNSpQDlrfNvLUxwHduXqfac9FQsAwXzc8NUD\n10N9Clc02P2PyLcmh2uIdi/VEC1ENAH05t28ZnNf6FUbZFSjmCsZaXbW3pt4\nW+oEVVfHUHPVdEXr+aVhgug8QQo0AcVEf588uCa09TpyxSwD/1AO/wjTLPBl\nis6uQ6Z+pREHD+HrQ8LMUgSpAU7lVo23k95VZJDAUEgVrMs1L3KU4+Ehn3+m\nP8iqw1ut5U//39Fezjz88Yrffn71mGeOsMgKt7jpDtqcQ4fOB1PuYGdIBH2Y\nzGlwgHkb9fJssC5ra2jqOOWivm7q0w4X/zjA19BcYVRyPxghmdArh1KKl3cE\n1ltCyxJDa1hQ4yQ4JBWnQA7bo5iCR2CamPl+XgunWqlnT+DpyRUQVtHacLZ3\nXBCp\r\n=dPQb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFwP8Qt+Q7gk4NvhffOsa1HSiOGDPOuVgaaZo2ejNxRgIhAJukDrxbNjYGnmPIq0hXXxAUDMjYRPu2jPNXAKkWvECw"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.41-beta.6_1613452793853_0.7644795580965258"},"_hasShrinkwrap":false},"1.2.41-beta.7":{"name":"@midwayjs/fcli-command-core","version":"1.2.41-beta.7","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.41-beta.7","@midwayjs/serverless-spec-builder":"^1.2.41-beta.7"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"1227790e6e8fff4fefdd5df8f134d8263f61ff81","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.41-beta.7","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-AM/I2xWUyQ1pH5szfMAUTTYoNMfzctMkE/HEpSfgly6h+vjaKS4L9r4KwUYhdsoNHkWCpymiwAexQ8UGBA3qCg==","shasum":"4a43b3f92e86f3bcd2dd0f162571d11e118a46db","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.41-beta.7.tgz","fileCount":9,"unpackedSize":63543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgK2XFCRA9TVsSAnZWagAApicP/1IEkVbIcdq2PGJinE+0\nGOHvvbO96hsfNVqEUYZ+5Y6pHTxkNJ26wKuJ5Kp6lJwhcpLPaYwh6rUKhJU8\nZKFfzCQ6AXuF179WYEzhS/Tr7TdsLJkBK3vlhomWw1bcAqI2U5ZLOyDQflkH\naBU2XLUMpWP8hKIu5Su8bHul89BUdXVatfh7s1WDsKPFZCnLludyP9zWFWNO\nLXgTPF4GjNB20f75lIiyGDcPU54jmhqUpJeaVIBY9qhVMq58UmOm9wi0ubsY\nHRBZzNk05qZpLsJ+MbP1wjpFgQBSd2cxnp5pzI3KlQLEzdeuqJJ53EWJbQAK\n+yx9U0l5AxDHHBDkxwWQkzBletWYOo7skhPIwnNTdS1OzZrGDGuYy/ibSnYx\nH0wUV8F0DCLVRVSaRKJk8seAowgT2Ew5CJkAS8LVTGBnFDRnTkpTai1BRDbJ\nhTaq6kBLKYU19h0oC84LEGnGSDoVQVGJ66qE2AXGiLf2wsD69tM9XzgHpRCy\n9x+6bJY5jMU39G4QG2D4wk14XVHsTy70hqAVUXArdjL8CGcy1xSVmfjleY4m\nQfEZYoifRwpEGg7Q0jSRofEmHPri59V08G6x4nrHkS+wllOu+m4W8FkgCxQG\nSsDL572Z1FKivMwumiY9jiam/Ho1EKOQ/DA63hYmB8z7TsP8Ypei2yA5iKcT\nVzLw\r\n=fzly\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeAUmXgljQSmavxODeoVOA5OCaQc16ca/GcsJ/qUL1AwIhAKABRk6U9U9BS7rGBxxguHfGpjoN4gbXJfppl+p6rOAr"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.41-beta.7_1613456836485_0.04297311311759722"},"_hasShrinkwrap":false},"1.2.41":{"name":"@midwayjs/fcli-command-core","version":"1.2.41","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.41","@midwayjs/serverless-spec-builder":"^1.2.41"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"2e8e308d6d0b13c9b690405143ff51c5ed7f894e","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.41","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-x6aD3PtL3pxZcbWKZz3TfWDPtjJMoPX77ox0nb29jlvv2uFjW6jO+0iOysRcOEV9/2DP47jqssbkWns3QL5VxQ==","shasum":"5c0f8b475716afcfa85b8cf01d954888b4d7cb5f","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.41.tgz","fileCount":9,"unpackedSize":63680,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLLWeCRA9TVsSAnZWagAAkswP/jeS1IhTJUJ1Zgr4vXV4\nr2qXbYymvo5gPPhgjpY46VukffQZj98bkwjmlkhgyGMAxtoFba6MqaQaQps0\nf1+blmMK9zxoZck7V+VJh+VMT63qdQJvW4R7+CnXoFqLuZPC5YF82WMW1trI\nxwUZdPwNLBj8KufZYI1O23zTxDMfuoewqQoT27Q0hzJ4/31KdhUF8zYDt89y\nWeijeUWvaIgJIs3lQWDrQ8WKEmfjcO57u9xvn3wEeHEcH/UcQ+2I9V0PMBMj\n34LizAmLrQ/teGgT9+MNd7EOEaCz2UrQRu9sxH5MsjhoHCKKDzTMRHvKC0tG\n1xioPMkCnwb5U04mDRo+RlQGCWpWjAtMpPr9fFwlMAVWseEC7D4Hn210l/rg\n1nzM/qGYhHOQZousGitfaZ7igsAD3sEaEK1krB97WAuWTjvkDpOTF/U0i5XB\nyaj7kAvynDvtyX2gcfyt6Tgp7mUinDOVxqPWEmPmGCt2Sf24ua7sRRAUh4gE\n8Kg4gUclPgQynrPPz1TxoRvzGhjedAAfRa7RUqvEANTcKyALCeOa2518Ro7J\n/e3G+FyamEiRPRs2NEv1ZX0pzCdOK2IyIK1rXQ9jC6bPJm4vf6fq3s0tD/mq\nS1JbCd2oVENMkG9nWuine+G8QdfEzfia/Qipsk8ZomocnDHsdeUxhw8MCNDJ\nOaIu\r\n=f0fS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0CJzave0cXJpSXHEaCDhqipCOb1AUXuwKjKfb0Gl6gQIgR83wErjC/wrjeFPzZFC5lRIKIi9inNoXuhyBWesoPxw="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.41_1613542813994_0.15085595170240218"},"_hasShrinkwrap":false},"1.2.42-beta.1":{"name":"@midwayjs/fcli-command-core","version":"1.2.42-beta.1","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.42-beta.1","@midwayjs/serverless-spec-builder":"^1.2.42-beta.1"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"1b8c13e65d4275e504a446330d1befefc716eebb","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.42-beta.1","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-Z/qMYUtf6I24oWe28Anb1qMvmwzQVP1pDL+zftR5/dydHrckFc65LURh7oBZaCnfraKY5xRQRXPCUIV8ii4ybA==","shasum":"a6d5fc491a2fdf7f8dc28c2fc6ac9d4e20cbdefd","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.42-beta.1.tgz","fileCount":9,"unpackedSize":63701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLiZhCRA9TVsSAnZWagAAWPgP/RylQi53/i1/qfH2MzZi\nM/BoErOAUXU6VsiDxTVXKXMAt887jqgEGcU9F/SWVpfzCaRocdowi3Q7GHka\nQaK66SSEbzljETze4MH+QJnw6cotmkKdtcbm27YPA2VXW7ItSJni40DmeJ7j\nwX3vdSJ7Hf5mw9RmSslJ9v81rQr4oxMMftmSQamtXjGxOmLJHWFuNa09uVkJ\nVumexrKFRwyCpV5NLixmCmSEQEgLBJKAvl2lLCJZ9H8wP8ijIpAqceDrj4FM\n3WoeYBmr1jMCP0s8fD8qghJFAAwV4gF4ZywWqzHWjPaGrP+RVA2na/DFQ+vD\n3yH0RFgEBI9HoV+0VS4fDE/d0I6+DENdtoOM0NJuac9GGGhl9HCvE3cSgQRn\nlXMBBWEvpSqVNyeYhh8jYbJIy8KyHRMH0f4910OuPX6Z5jq0/A9VloIXER/O\n7sFTTvQeVOjsyGQUCelZClSc04W2ts3WHIgAfhmRdjm0WhWEATpQxhI4fhW2\nv4AJXxwAiC+P9NyWYK8b77JXKOQXa8AavVbf0xbYADJuOFe6QP/+zPkvjKpJ\nEsMPR9dBkNsRY0AEYhWXrQxavfw/+tv97Jg/bKqpyu2oetH9/qksE1La72Xk\nLD6JgnCN37Fj7Pxm7dWCvQEF7D04uzHSceGVB/gVGr98y3WqhCLte7w1v/pX\nssU1\r\n=MTmv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkJfp52DktKw/dqCY4UmwecZbPyTxxBvlk4+qj0opMAwIgHuvGpfBHuks9TQy3/d+hIuIzBB6geOHyi/TbTe7BZiE="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.42-beta.1_1613637217368_0.27890041841065094"},"_hasShrinkwrap":false},"1.2.42-beta.2":{"name":"@midwayjs/fcli-command-core","version":"1.2.42-beta.2","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.42-beta.2","@midwayjs/serverless-spec-builder":"^1.2.42-beta.2"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"3b0f20ae3260973c19f21208db7653996ce4d46f","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.42-beta.2","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-NplisvZLhTDkrh//XbZl+4aEe/ShEchI3lQtF8zEV8mz5s/cwCSjIa5gvVBWFfmvjnGTk+ML2h47sKgj/U6TYg==","shasum":"fcf960d0ae92d465a24ea71136cec5ece73e58b0","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.42-beta.2.tgz","fileCount":9,"unpackedSize":63701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLzfXCRA9TVsSAnZWagAA7z8P/jZLjmjtd/69ky7VH0d5\n8bAU2EcS1srd7/zOuXuKpEA05zTUsPGBdAOsYIhS8a3LfgKvb94BKiKtpAJm\nEcvznNM98QSW4jDqMq+Q7GR5z78hHe+PaU57G1cPuZyoShyfn7ytjQXuoQ2h\n4ypVclkVSlYIDSAhLQ5cK/V1Usltzoj2m3O9jWSkdiqup5Uiswwr8/465UjQ\nTV4SJibH0q9fb9VOcTl667FmTUK6vQoVoDPBk66rDK1mwm8W/nsJauFITRzZ\nAskF5gklucXXbSFHSgWlTjnZxt65l8W2Oqc+h/2wsasUbxkjzJfcx4q/ng2A\n4P77BKM06p6/dD+MdPs600fecLlseBPUhD/ypkZ2UvJ83uvjpKEWYCLS7sv8\nnBDdG64sNCGmUhSQzqDPbLanjwKHZ14FQ1volTecWLA1vUGqZeqzns3dWsp5\nQ/VRZHv1wrL2eg+KP711+8debVHOgjcQ+4grNWFiRnXbmR6EKNgmM/snSofz\nudtU/eCMipFGs8nxX24kc5iFABKwWhxEwtABdYkhPqNiaj7CCPGRyCFTV/j7\nWoga0vfI8bxe4V/q/f4B68AEO63lhvMsU7iPlS47GEHdTSIuaLgDCcv45/S3\nXs2/91SB9hx4T82SlmVst92MfG84KCGewZvj0XX4xnq2cb9f70ucScVI3ug2\ngxkE\r\n=7d5c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB+qxHmFxkZ+BgyXGc7LBVw6ZO6BttfHn3zBUn1d7BNUAiEAolh4IIJlhSc9KWXODt/AKL/SU/z12X81jmhtyMD0yEM="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.42-beta.2_1613707222811_0.6267933742987752"},"_hasShrinkwrap":false},"1.2.42-beta.3":{"name":"@midwayjs/fcli-command-core","version":"1.2.42-beta.3","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.42-beta.3","@midwayjs/serverless-spec-builder":"^1.2.42-beta.3"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"ffff35724021d93de86817770c28c469ddf54de8","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.42-beta.3","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-ile3/OvdRYKlUs/qWAU/GAJr88dg7UFn8fm7YWrSlox9046fpJqdceeRk4lnIPOVfshV8NQRmguli37pRnD3rg==","shasum":"f9b4fc9c8312a3668a3991a9be12c6dd5837c596","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.42-beta.3.tgz","fileCount":9,"unpackedSize":63701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgL2P0CRA9TVsSAnZWagAACm8P/0y6GIn+/D18OAKXV8rr\ntOk2SFhaN/jEeIV15GSbmpRBe4am9Z0IStySv4uM1hLbnHwLSsStLZ3VOS+a\nxNHD+n2Ee7j71Lfy2lELRXRyDiv/8gtNOKEyppP0lTb+9HSZp+HkUXM6vWdD\nmBnXjA0PzPsiG2tMab4GtQa3hQYXMWF0OksEIYqka4wMuhvRMgSpii13hkUz\ntZP/z0xSM/IirnVBYEEHx8I9y/jIH7tKXSCBxWD3h1lke0vQsJ2J+DU4EIuf\nrzDXKgG13x4JFuLytE8xjycKcIsEtOfpSEPkfEm6IP2RIkxKuU9n31f2h4O3\n/9aLo68fC79ysiUt/VQiiWKgiYMIuIQhVnzfhDbp1nKIzxMhvDz+VvtsLOmu\n3CiDhhz00VJqDkLAOlNOjYi/rCr/8X3191d48HZnG7DlYrHT1rjp54cC6Kkw\nFI3d5N7AGd0KH1NnIogQQR/4tsk+DpAD2vuGrf9JyYQCnWW+iXqnABhxZQJv\nJ8R0EdzAkQWSKnQadAJlm+9cCcA6/lw62vXldn960IjQwLqIo1+JSXlbzyq9\neQkc7nz7FGC1Q47mfFTM4BctWn1HSRqa9F0B/6jA0ks/xgLeXcscaUJQyZ0F\nYrHEzp98KuEgZauogQ98COfIriMqxslkKpzDDV1fTaUoUbN3tr9CXoWFh4uI\nbjVS\r\n=ZzaI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHLpEMUEt6632FmO1shrAmgGfDwviETuvXGb7S9ogRuoAiEAq37Y58LJFPkkUckfcz+eeAbY5Wv5Rg7kYzpmfBwhTtM="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.42-beta.3_1613718516390_0.23589171556584554"},"_hasShrinkwrap":false},"1.2.42-beta.4":{"name":"@midwayjs/fcli-command-core","version":"1.2.42-beta.4","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.42-beta.4","@midwayjs/serverless-spec-builder":"^1.2.42-beta.4"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"a7b3bbe952098fc7fc1de60f9a8886f132e70df8","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.42-beta.4","_nodeVersion":"14.15.4","_npmVersion":"lerna/3.22.1/node@v14.15.4+x64 (darwin)","dist":{"integrity":"sha512-l223RATp70y9gl23Edp3HBvzPHefe++C07rgIu7ZNYPYBmwNSgQ75Kme7Rl08GfRWX9igp+hrTifEQQz34SkJw==","shasum":"3a467652608b938d18688a7f0277a08591ba5397","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.42-beta.4.tgz","fileCount":9,"unpackedSize":63701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNHXgCRA9TVsSAnZWagAArysP/jIwiuX2nZ3KVI/ArYKc\n3SAtDkBq58OU5lvObvo95TzlKJ3VmzlbG/VWfGDv1xdFiXtDFGo1vrhhwbx+\ncGuR1XjrR6pHJ78npRdFPgn5wQuhlitdEoRDncW1O8LyiDLntnTjyIwqalI8\nLTMelJibXTsy9FTM61iURW1ABGQkCsA31UVzDv7+RmgEANah+bpIE26tWam8\nVu7cNVFV6wgSlQzzDg+PjEWv7ech7glFCNVIM16ndN4OSy3W5978uMWJAroA\nG9NDz0rPhqE+AWEWLrL3trm0UnM/N5BZnEKehRQX7krC8jPm73pBssKheen1\nUZK0zH20I7GXDu7xhKsfznzHG5teB9fE0YdkeSX6u5isA87vKA45TfXVImNH\nbrI15jz7LwSH7pU6eqP40u24KcrRooFh72tng65fXBYClQmBPnpC6qPcKq0N\niikVQ0xLuZapsFj3Gk5BeuwGPpgOrOwhWQErlSSguO4EsezyRRgDfwqYjub7\nsgQ/MpKy0WEAxt+8fyoabdMiElplGMgQ1byNKR+tnina7wniCaKCWImBv53X\nb2Oq3rKfdY0mCeUPNY+xIHueOjXzrxaOhLTfCLBeQzjuDoAp4o7Y3z3Ik+QA\nU5Zxw5rGOfyhm/nq2TaQLGslvI8TW+HX4UBq3YtOC7/tu/vYSA9H1cSwR+iR\nw4wv\r\n=8AT5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdszRygxvtNm8hYvQag30usDTsCSooAjnfpLxGsvd3NwIhAIVX7sfYZkUfo7GgLd+NpzIozZYxHmziE9907vtGYylP"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.42-beta.4_1614050784331_0.5365151068813123"},"_hasShrinkwrap":false},"1.2.42-beta.5":{"name":"@midwayjs/fcli-command-core","version":"1.2.42-beta.5","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.42-beta.5","@midwayjs/serverless-spec-builder":"^1.2.42-beta.5"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"59955b5c596fcfce31c7779304a22106941d9c39","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.42-beta.5","_nodeVersion":"14.15.5","_npmVersion":"lerna/3.22.1/node@v14.15.5+x64 (darwin)","dist":{"integrity":"sha512-wuloApQdqU2DdVyuvz98VDMpgAmNKpGXnriOSlUjAhSqnpUMXrufHb3JQuWxtUW05GrIKDGyLFe/X/P7MvAJRA==","shasum":"bd5812c53814931b005698d816f9c595ef2ae909","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.42-beta.5.tgz","fileCount":9,"unpackedSize":63701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNMBKCRA9TVsSAnZWagAAD5UQAJhcX1VAGG6d1kyFwxko\ntk088bIrivWfLm27ToDuw2hlZGU/23ZtfxkoZH8h1vI5ZANI22gojigd5np3\nH4VUClXwxe3IMeMSlIPvwkmaFitaw7Gg7w1v5YtvID0/w9P7/WhtchRSmLZS\nKr4mF9612Islw8cBvte+5FTbedCeb1SWj+92aH4Bxamiu1LUneBBFKG4Q6db\n8laAj0P7ZJNauwGAReXSXcxVRvIvVFCVYasRZ2+8irfqca/9Mkf+AMJ2zkCG\nu4YEIGpYrQmRlN83sqJ9QVq3RHzIr/o31Y4ZL78LGdUXJhl8qfF1opOV/Mu+\nw6w/IEo8CcjKiOgZPDaZxXDCErmd9mut0neZzAb9Mm6K4OCSCMh9f85uS/H6\nzgP3fXuYe4vm4XPBTQgAchBxaAYzjXkbNwAD7pGgeQke4oAloeA+VOikxGjx\n+wVfoRhKV8RPzvzFCrJmVrBv5GpqiPVFvPNQHT/AqlHN1voqn6c46vCmvYzt\nzblq0Eg1LmoI2xbDgAug2iCYK1VKMc6/GojdW49spzJUbVwlC7lWhXD08LJt\nRAXL27gMRI/ypSk2FcMoQRdWO7fg0vsppdbq2aa4FGd6Bvf/fXc2xW3KXz3E\nkNMWkmEQcuYw3MkgKtbWyzVi7TXBwF9rINCjoahHoXEDW20DFoKIIzikiLr/\nCVYy\r\n=/Ybg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEqa7GS0vq0A+ETz9NfGZsYF/RLbAQt2Uifuouj08K5NAiEAo7SW6G+dhtbqxAuiEtqfwwQzIFpXYq4E3UEIyiZ8B1w="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.42-beta.5_1614069834032_0.768447270687624"},"_hasShrinkwrap":false},"1.2.43-beta.2":{"name":"@midwayjs/fcli-command-core","version":"1.2.43-beta.2","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.43-beta.2","@midwayjs/serverless-spec-builder":"^1.2.43-beta.2"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"3a550a2f89be0c5562a35e476030f3d304643412","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.43-beta.2","_nodeVersion":"15.10.0","_npmVersion":"lerna/3.22.1/node@v15.10.0+x64 (darwin)","dist":{"integrity":"sha512-xzN78LoTcpqMZZRQwO+kw08A3tAA3O2p4GaFMht7whn5pQhZAibYV6HgqFOVJpP5vBNiGH9+J1UBQmpA62wnvg==","shasum":"4a456d8d449e4c4b3a1eaf5005a03cb648a1599f","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.43-beta.2.tgz","fileCount":9,"unpackedSize":63701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNhA4CRA9TVsSAnZWagAATkkQAILZZu427MZGJabEFTcf\nvF8Vyj1PAOoia/JG/yFI5B3+Kfctl9zpUoW68fXs12wTprmC6y+6aubQMmjD\n/43kCx0QgrTWCeiatv1Vfoii/thzFaYL7Ow+4wsLAXgluSiYifHZzaRV+IGT\n3B+pS+KOL0J6P5DOmIR6F2KFckoT/z9BANXcIm9+Z2WOOdhTEdHCG4Ctmb2C\nDzmWvA+NbJGuQqzeeKPAYo0apTjyRogorhz81N2nLO31Z2PmFSK6XMtaqSOq\nPu38auHx6M76qRE7Ue7YoTfwWx+yKb8CjUoJmraDeepFqNgKovNdvutoxj+0\n9HAEvMzjX0we3ODxycQ2pPHpRhcBB3gAJdgJIf4cDUeNAkD4vJL+pJ2GICy+\nBEmwfdtFUGIYozCYdg8ou7iwtu/ToOSpwy+KxKUBQMvPwRY7Ml1zWgmzrVoV\nQViccHI0ompwuMHN59O4LE23G+KffHf8uSKQHtg9TBJa1GkudscgQNo/tkhy\nmx6neogKKZlUkWPqmH4AW7olEKaFam1LvMubaU7v6/eoyGmmteXAt7gnzorj\nVaTm8Jkx4UwDDkfeqUGx4o9gxOIzrl6Y5BYYc7ZzzfCqM3oHqWFN4jgSKWuh\nKPwe3KBhgGKYwwfZ3bJWFJI+mJ36yimRt/evQUpgFkjeuETEXmMAzeBXhsU2\nglLR\r\n=24Ln\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUhOWkEpJRqmPMYuisTEb+/DMaxUAfPy/385D/75AvgQIgQkSv2Re9eKOJyfWtNHxS8h4kJFISN7cvL0cMSWOGQsw="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.43-beta.2_1614155832290_0.2687634421669909"},"_hasShrinkwrap":false},"1.2.43-beta.3":{"name":"@midwayjs/fcli-command-core","version":"1.2.43-beta.3","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.43-beta.3","@midwayjs/serverless-spec-builder":"^1.2.43-beta.3"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"2c0efd5ae03d7a1db888fdaa67a5afc88dff72dd","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.43-beta.3","_nodeVersion":"15.10.0","_npmVersion":"lerna/3.22.1/node@v15.10.0+x64 (darwin)","dist":{"integrity":"sha512-MYdpSc3m4JQD16MENJguCGqJH7Ui4/MJOVmU7WXqYAfnkBaz46DL/fTH+JHd0T5t1CbgjLuQXpmxZqyxPnIiUg==","shasum":"375db705c4473276003ef2af1c6489b13a74a023","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.43-beta.3.tgz","fileCount":9,"unpackedSize":63701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgN0thCRA9TVsSAnZWagAAaWwP/37V/QIvy7bY6bit/g5+\nLQ6aZ/e6duR0c/KV1LqGWBmLh58AOV41kkHu7SahGR3Ky5vNCPFseiI6aO8E\ncndzm1eqX82CGTXJxlPGrFVFS/k2dEZhrOquyPJ05qsbGDIceRFhDg3sJM8W\n+tIb58jagPs3juOEA6UI187MmDR2CTzzqpufqcAK2m2LeHcratE1T5VLLDam\n2Ol6zuAZKy6S8fVrZVpe6Aa1jEPdQTuGjCnhHEfccNwCQR30CyZKJ6G7dKDZ\nFhvWmMjHVY0Xm1HhrKFqKWOgF2IwLH5C8jLc9bUbDSRd1+5Bn8uIVRTc7FHp\nwR13fx4f1KNdNDM0cb6J4IeuCnD+luwHrJ18wGh1dAcZ6iSmTvIS49IdmueP\nNoeAPDyKN6iT9aYnlKWzk548yrlla7AJ/eFIqrZruMbmgaLvs9Ysg/Gy8KqY\nN2fEHYU1SLzdiyiMS0fqoIFkTiKyyG75EFm47r9JpavcnaQ//ZXxizwT7pb6\nzT+tMthBXGBqlJfPglXBsPscFlWT3LwgezihJ9DkkoajiK2TXFWlbD30bWTV\nRK3o36MeydIdFI2XZJinkKZefjfb7EvXNrteDWw5a5MSV81VK1M8QNY/crso\nIMuJrHKGIeRD1BZzFF5u6VOInPuLd8FgncN7Vlphf6NJxGqyT1MgToH2g/xG\ncB1W\r\n=wHrH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDaL4LMYv7PdsxCekAtIJoOJOE04LFxdjcDISWEXcT0kAIhANQNeqHYhujF3xNmYOAkDPdpFsJIUzRV73hBtU1rHL2h"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.43-beta.3_1614236513418_0.14139649433942303"},"_hasShrinkwrap":false},"1.2.43-beta.4":{"name":"@midwayjs/fcli-command-core","version":"1.2.43-beta.4","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.43-beta.4","@midwayjs/serverless-spec-builder":"^1.2.43-beta.4"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"b158df6197c56a893413d8727c5eb57b6a5724bc","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.43-beta.4","_nodeVersion":"15.10.0","_npmVersion":"lerna/3.22.1/node@v15.10.0+x64 (darwin)","dist":{"integrity":"sha512-ti0cXKqnP5aL+bmTrpw6LCywcIP0qg65PlyaaQIuvnHMRJmL0jbfgPUE8WM0o/luoRq41G3YJjZmpyP057BXNQ==","shasum":"60cba770d744c179c53710f2d2a7bc17917cb30f","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.43-beta.4.tgz","fileCount":9,"unpackedSize":63701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgN0zECRA9TVsSAnZWagAAyxwQAJ+60+lbVPDwSDq1q5Tc\nhPTPk2Wvb+0b5YtO52UJSE4KMI1RbPzXcphIelzrx7z17nasjXrVBFAnkU0q\nMM2j6og9j4MpQEYPXHxrLc6FTKAWAcM/HibPN1KpfEuR0kZt/pjE2NGdvMfJ\nM1M/VhSbD7mNO7oENTcBxQMOuz+ZqoqMBv4erjRRIMe7IlXaA7seyzUPmJGG\n02UlaTplREjqjwr7wlY0VsPet6kM3y3o+oJroR81NwxwwYMfYWCGIcbIgwtl\n6/JhijM9wriggziI0UxBKVPr+6JiPE49ItpxxwaeamEkaNvIq3WKNLY+F+Qv\nn7KmwjqGUZ5jjEMgsQD3ozuADGdfU13En3n3VPQYQzNEr732GTYeHAgCNE4x\n0qogikAuXo4EY2TVmt2YlsUCpWZMeKEGRZfwV34TkHNdLDkPwo7SA7AKQezJ\nu3/uJeP8oj7/9CSGZ5d0KWD3Qwbncq1RQZ/Obd2KmrA0uPLaYTVid2y1JoJ8\n7tER43dzjLu2tpWl4uynZHYAonX6AJqzfAV7ayWPLY0bga6Wk6htgsaKs8dS\nm55rO4O6uYyrQfFq7iz1lwcxTuwYqrPoD7r1VUdNrxUZbpfjc5aqIlHAjs+R\n8UCbMc8IP5h5FyIE+AGRMbPHpiVIlRZl4CPggcIgLu2PRXXrOU06E61cDBAd\nHWIz\r\n=JRbM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFKu3ePJj/8d9p7yfnDpGm08QUVLOES3QrNI5ZMZhtl3AiEA/CeUqccUEteMLSs7Pk4E9C0vyDp/eeotMtUo3x+QEt0="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.43-beta.4_1614236867492_0.654638631100916"},"_hasShrinkwrap":false},"1.2.43-beta.5":{"name":"@midwayjs/fcli-command-core","version":"1.2.43-beta.5","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.43-beta.5","@midwayjs/serverless-spec-builder":"^1.2.43-beta.5"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"dfab1e3e9eb3fe52d628d8a3c634a58adf288d4a","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.43-beta.5","_nodeVersion":"15.10.0","_npmVersion":"lerna/3.22.1/node@v15.10.0+x64 (darwin)","dist":{"integrity":"sha512-OqzYgkGPklI0/84AbrK1uV55qybAlb0ALtLrwA4xU5cujJjGquyBErNQex9oXg9QfpOr6X2nn+XltxkSJGz8kQ==","shasum":"9b9e96940d2f9e392bfa4eb3fa194be6e51e388a","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.43-beta.5.tgz","fileCount":9,"unpackedSize":63701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgN04WCRA9TVsSAnZWagAAk3sP/A+koJ6eEGZ82Hjl7sxE\nh+V5xyutIIqBsxU8JGf5tDehNqcPV+pu3iMN9l1nbvBzAy2e4mRgx9gkbgVv\nNi9ZbumYL22ocFgVo6FcgLH7FH58waFMGPEj4D7NJtaHO0IYJvwt4XWRXTsi\ndKjyd4Y1+ak6Yh8//gnBmjw2GW4304QTR3F7k7FdEsnhIc1PADwj5Fz4cvoR\nQq82zGImnY4RIqLWlZ6wxPHe+9UQT/sSyYk4rG/Xw8V49BamzI5T6U4Qy61N\nV+Wbi/x50M+rgteO0xg+bqqhiwRbGg7alkm/qHYLnoT9KZ1cTyx+3a4ABXYu\n7q8X1DYezUE+aIneJ95cbtYRDiC8L+ktIum5HxE4cR1uE7t1PM4GxBtqdHt2\ntJAiE0Yu/RrRVxcAxKfnRQeDqQkQlkWWg4Uwafz9DECq7r2EuIrpLZaUZ1iy\ngkJPjfmFwWMHCskYG/Fx5VmoK8fY9BRBny0C48VQoZ7zSajMbmDmWWf67JIH\niMg6g43I98pJBRFcuPMUC9WjyHflrPgQMFxOhidK92KeIvc3+BpCpODnjMxg\nd7NYZFW8hfALjB3N8pDoMNpQTFaoOqkZJh9/1XNfXdUMaqtCixYgf7G8+nYF\nTz6yshFbhw9MoizoeI4wo9JqHojlXiORNg//13QNCBFpL2NDBqcX0wzqKARV\npPes\r\n=Zuxm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPg2p3UKerJJ8tV9XemeaBhSrIJiXP7VsVY+qVrhQD3gIgRRUJVw8prdRsvXitpIzrZblfClRM1ZOXQh4CDw4uvFY="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.43-beta.5_1614237205582_0.044086161409563784"},"_hasShrinkwrap":false},"1.2.43-beta.6":{"name":"@midwayjs/fcli-command-core","version":"1.2.43-beta.6","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.43-beta.6","@midwayjs/serverless-spec-builder":"^1.2.43-beta.6"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"bdea0c207cae5e217985011ec045cfbe4a3f6594","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.43-beta.6","_nodeVersion":"15.10.0","_npmVersion":"lerna/3.22.1/node@v15.10.0+x64 (darwin)","dist":{"integrity":"sha512-G/aw1PTmYgHhSMno8Cqmq8yQiAgcvNslSQZVZUlK1DWXgDUne+zFypXKV/dvQT0FWi/uSnQlyW6sra1jrFDK5A==","shasum":"9ca934b55b7a517cde1baf6a53ac44de5ef458f9","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.43-beta.6.tgz","fileCount":9,"unpackedSize":63701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPK6bCRA9TVsSAnZWagAA+50P/ilc1usnto+W30qF5+a5\nCBFmCdMvLnG6fVShpR4K4DrUuAjUOjfsVbXfyHmHYBaL3BIxOC28TvJ58rJ3\n5CAzQL8Bvc37acKjbHhYouHa64hdn0KoV8uWwjw4ve3Wgn1mZubNkiZYkQl/\nnbB7ygkN2E1s9VRPA9JjwYcNRsFUZvwaWUA0K3mxJw8ObPC1uiwWbgpsB0Hu\nsLt/NZjMA1tWg/EJcJO1EvulIEHBWyhdPHkFAwninxT5pjEBgPDrDn1mE3vc\n9eC/r3g21MREdx2c4o7IGrEJ2D7C5Xh4pnmCKkS2BZrmP7snya1wXwVLLf+c\nhA2J6/HsgxIWwbdlo1e8WVTbpCqonAjDog5lG/NmQp+uXkRw8B8jYkjaJTTF\ntkmaJMd/7/y0+pKFjkG6zqGMhuYJrIscp6Nbsbv/83P5OI6jIatwqvmAMhhX\nZZrnJ0npeg4RBn4u0yHmrhkvfcKYjM50iOFY9+d223SCbhB84h2f7uc7tbJu\nHDcA5mMWZJY8FoHegwADalVDpuf89P07ybXiIEK7sN/EHmh1cZepNI3jspH4\nDogyK5Vm7J4ch4C+fhE/ufwRVuHNanzTIdyvTCa8OU4iWbqexDK/XZ5XqphM\nK1HbhxXGmOU2OMX5+X3nUaVWezJYe71MKZaFBNpFden1HT2nXUC3kbW91l9C\no6gx\r\n=ZlA/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFOtp6WUbU3AYOLKI4g27JDPEeM148Ye8lYQpDmmzp4dAiBL+JLnkw17VCHQY/mZWrO4Gl+pxRVbO9Yyo5hg7E1BXw=="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.43-beta.6_1614589595587_0.23651107621911138"},"_hasShrinkwrap":false},"1.2.43-beta.7":{"name":"@midwayjs/fcli-command-core","version":"1.2.43-beta.7","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.43-beta.7","@midwayjs/serverless-spec-builder":"^1.2.43-beta.7"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"683a0dbe6983c1e26e4a4acc12b2c57eb8bf4f6e","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.43-beta.7","_nodeVersion":"15.10.0","_npmVersion":"lerna/3.22.1/node@v15.10.0+x64 (darwin)","dist":{"integrity":"sha512-eWm7gmmuNkFjsdQ1klAv4GtceV1FMPctJHTugL8Lk3rhcg6yXFvuOopvYgvrWFykKukP8mMSkuctbZqTqC6iIg==","shasum":"1d28718ab05cc2294aa36f0bb349232ad95c8439","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.43-beta.7.tgz","fileCount":9,"unpackedSize":63701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPN7PCRA9TVsSAnZWagAA/XgQAJp+NRNdBQrLTz5RLnK4\nM2/lWaNa+dwDhjIXkE8WDWw8ipGWhk3Vlk+KZcuvNLpisqudjTiyGOFsvyJV\nj/FnGG58+D1NIMvGzQEIixGChKVTpIH/2QDVFi6i642duwNvwyeRyaDw0//u\nvBQPHf+9vZOFBZFfvDGmJOdQXFjRoOE6wRtb5OZZdN48Xy5x0hH+Pl7b+ge1\nn+YtF7Dqp+F/1OgEdBT5HtHs27TScSI3U+BBlXWwoiQfB8vXo2epDvY5avKL\n3fMP8neGJWNvFF0DCXvfCjuwCcsxwmrxrKSrbH6xF6BNN3P3wixHKsVcTWv9\nQudVM5GSQiNaemf15q/IGrwvCYeXLX8kREp8qRFOHKOFHEOciis2EzkzO8vU\nku8HDLTB+pkJFom82Lf7pCquBNBNA0SZCzv5B949++QK4j4iuF/Nj0eZPMca\nslFjytC9xO4hS2p5ufv3SxU3wwui+ndK1RR+YLqYhbMwuRkBkECbURjlNeYc\nc4W3/OOmBYqBH9/D/Vqrl1rOUpxQDQMRJRIZXxIA5PSwhdferONpU+RHd2bP\n17DucH1hTHyzG9765vm1sAXCsxNUHOMGbPy7gpmUDhfA8K72GEflR685baGA\nUmVG9bVshObigIzVzXiYA5ff5syClsAuuEwQOnlJXUkp4xOB0h2FfMstZ7Iz\niszX\r\n=wTov\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB+KJscDlQgDUIIiN77nrzENZBDuyZpKsjQqiBaT4Y1gAiB9wjY4uF41fl5NmkaqMFMTA3Fa2RBco4Cr4XmgkNrE2g=="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.43-beta.7_1614601935200_0.7133477886979118"},"_hasShrinkwrap":false},"1.2.43-beta.8":{"name":"@midwayjs/fcli-command-core","version":"1.2.43-beta.8","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.43-beta.8","@midwayjs/serverless-spec-builder":"^1.2.43-beta.8"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"343729cee2152a162f2148a2c092035d990fefe2","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.43-beta.8","_nodeVersion":"15.10.0","_npmVersion":"lerna/3.22.1/node@v15.10.0+x64 (darwin)","dist":{"integrity":"sha512-Ynd+DnbZycwz5V4rgPMHKfS+cX2ZVecNfJD06p5P9dgr4M29GpTlR5Y7LjAkn0KnSyzT8w1IpZMJqu2+2Mg96Q==","shasum":"5a23bb5767df61608e24cc554c9fae5cfe768bc8","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.43-beta.8.tgz","fileCount":9,"unpackedSize":63701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPOY+CRA9TVsSAnZWagAAN6cP/1x5nNBPVcHo/DKGNh+G\nZKBGnAHkvb0Bhf0FFxfI0ow521FEDutCHgkzl9b7+/DsfKM7UV7Q96DgEtoJ\nNikFsxSETsXkkvhqioefmb7T9BPQhiUjvOuTeXNn6i7OwboIQRwoR5Qk5JHR\nVzKuF/qPgi1+bkcIT/LjF/Z/+x1mSFLjeapuPFkvPyN6Jx0AmGueZcqOUQWp\nDOoKyUjpn7zsdW1HulTNwTNoj2UZr2jH5JIu1HfI/5uDeyMZhQU168KQFM3J\n9Wmn90etHtR8AoNpy1NFvE9afWw88emn0rjXscPPuuCIl9H6aiJ7SeCV9B/n\nHew7e4oNSQHavRTPkPDIfOHHdfo/iY46CfGtHEqhjQ1IdnpPHs+qo89EjcLS\nci977mOSaSPd1Yz9Y2zl4blEoi6EBFc048OmnmJMTILHcT2ScsftqYtUY4Gp\n85nnOG6TDvEC6u0nf/BnQGD0dNYJglXP6P/AM5lIWCmCbjaGYUooUxhwPJiN\njrBROYJ+IIWBg8VPeyQPCR1LgrbR021RC3XRdF/I6y65ObkimVE1j+2drmh3\nItUhWfPzZfimKRvdwSRHSXzZdCTyxaCuXOzwbGTbaEmcoUS5C7rV4KMSH+LB\n0AB1hJ8aZCprWzwPH/9ZjXgN2bq/Ro75qj09ulqCLONBsmmMcc/BGruCCKcV\nQhd5\r\n=vTP+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFCoVAWQVSL4aSTxnlImrSgwZHO/R4FL+lFn2dnJA0kOAiEArcdRQbxIlkD1Qc6JEMQdHydgvexuiETYvQaKaQaSrfY="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.43-beta.8_1614603838385_0.684618717063997"},"_hasShrinkwrap":false},"1.2.43-beta.9":{"name":"@midwayjs/fcli-command-core","version":"1.2.43-beta.9","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.43-beta.9","@midwayjs/serverless-spec-builder":"^1.2.43-beta.9"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"8f40473461412d49d02bcbdaecc2d25e014d28d8","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.43-beta.9","_nodeVersion":"15.10.0","_npmVersion":"lerna/3.22.1/node@v15.10.0+x64 (darwin)","dist":{"integrity":"sha512-g4hvqwdUiO2PrwR41AvxMrC9grNOov5zh6PNn4N24gjqvfABNtud5hpuQWfXHGVyqhtyMUbJN0jwFFjixI085g==","shasum":"c3a57b92f7edbe76d7a6ce15a872d05ca435c721","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.43-beta.9.tgz","fileCount":9,"unpackedSize":63701,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPdHVCRA9TVsSAnZWagAAveEP/Rp3+wxXf4vgjQMLX6Mi\n5OcIx4Dxy6MnryzZRuU8nExt/4lbrzHB3HeIPM8ADGj+jjVfpOHq/I+CFI8f\nL5APUv0yt9dwPqkfph0CmgVdePSUSTPyeewmtXIvRvBgOrYGRnnAdsCzgnwu\nLTq40Ha/A+hAEE5zOHg2wGqm8Tw+3n7c9xR10U99fS+7+B4AGZ61sduAeacR\nXbBPwRp4ihVeSZ9wFF2KAFSLy/zjnMXke4id72EG5R7KypeyGZDmIeB/hcfG\njt40YVbzkq6bUS9SDMs4Utqmpx9PWSPE5TPO89lJ2TFIA/yJqRv3GquAfgPH\nDMyGh85jKt2ngjnAbAcOWQgkJ3MwaRg6tZm0p8nmfJzlQi6hfXU6/WgSsBt4\n6bbm3QxZTRqTQl4elKAGiQMBQvg86AxwJ9bxl1sKNlfhdcD1fYo7pNlvYgou\nSE1YbFFAQBQ7jxYRWKONRBd8RNdXmxR8LH6sEutIHOAUeg7FikW1iflZIgil\nWoE4YLtZVYGFxIdbcZAlRcERTm1rqnoHRbcMYZHfvCK2D5NzSAO/mfcaKHkS\nWomHFlVGJgRfpv1sDvcQDdLSBizOlVDcA5VRWBC8pcrIb5e4A76/+TfmDNaZ\nPQmansQaaf+26JrowjMRcRd3//c+V2fE04DiydH40uQC1w5PbsmqMr78ZjDG\nHXpt\r\n=9JX1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBkxGJarj9AdCuihKRG4EUYfcL8F4AEvhT4jeoU1RMA2AiBADEg5962yKTLPCGNLDVoigEI9pwB2E1OatweI6RxNwQ=="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.43-beta.9_1614664149433_0.6252141412786416"},"_hasShrinkwrap":false},"1.2.43-beta.10":{"name":"@midwayjs/fcli-command-core","version":"1.2.43-beta.10","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.43-beta.10","@midwayjs/serverless-spec-builder":"^1.2.43-beta.10"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"dd610afde7aeeee478438d15bfc6ffc461d05869","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.43-beta.10","_nodeVersion":"15.10.0","_npmVersion":"lerna/3.22.1/node@v15.10.0+x64 (darwin)","dist":{"integrity":"sha512-p+oaTfEBIkmmtnwMPXgpSE2nP96sWMu7pG0/tnI/6mL79XpZY3SClj4ZQ+ICxcRQ2L5g7y7cdYNFv78joUj8rA==","shasum":"d1ba2651e389874799bd787f2e04b5c27d219b25","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.43-beta.10.tgz","fileCount":9,"unpackedSize":63704,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPvniCRA9TVsSAnZWagAAoygP/0ZavggCczSkZ9dSNTSb\nuPZVUPXIQJcBqG5wCBbijKHrhsm38o4veN5u+YZfbYnPSEyQ1v5jbCDgYdd8\noD0Cy7yUDUKfPQbhTcd3v8zx/RTNbxpAfp8ai8F6mRl4OKIBIWSLQXEB1JKE\n8k4h+z9OSWGklwHkf8ua7bCDu0eTG12Z3wJuCFegker8+IS1Gd5y+ZG/6fvr\nKLM9SbJU7y0Er/RTu6wGOQZ+2dkc7rZouNcmLHXqScpWzOigibKyvvwD/dN6\nuQgO7KUy9QhHcPK2c1R8cxB/r4yKkKEwxf8S2QawyZh4hj5hPLxJNP5XgPVL\nQOg8bokMpw3SUUDElKtWNZ4QsGpYdJeLLxZqtkwjBflATckgEMkZdr6iCBlF\nRmlRbQPtdv9TW/SnpkfMRLF3wtItNv1gAAroBCwOKAtp51gruAjMtAkw9gdd\nnSK5/JKr20Ec8tfsFRLeh+iXTG0JtDPsckyL8CDkaklUproPoRpRykWDClzb\nfXF7nhV0YJv7YFFZhLE06m3awtE2ljDlyW/2K59x5FYCLE1GEEMlfza5GYsE\nVpw8zMDKX7qtdQFxTbMRracFW0ahtQIHyFk7bsMq7dgW0cvzePRmXwC8HhZX\nKHlcbaya9falGN6NAlw3Go+VyjznaNmILpSDgBj4m/QQhU6U3v0oCqK/b+BI\nLioc\r\n=I+B5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDxX6UZ/+xLKtghYcsefkCGc97X1WIufUZpYAivfF/gOAiEAr3dU9Z/0LinH40vg6w+dsV/G8wouxd8rSR5ERwRaDsI="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.43-beta.10_1614739937484_0.6498992807872968"},"_hasShrinkwrap":false},"1.2.43-beta.11":{"name":"@midwayjs/fcli-command-core","version":"1.2.43-beta.11","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.43-beta.11","@midwayjs/serverless-spec-builder":"^1.2.43-beta.11"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"60e7c84a41cb7c53257b29e77251c284259e42ce","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.43-beta.11","_nodeVersion":"15.10.0","_npmVersion":"lerna/3.22.1/node@v15.10.0+x64 (darwin)","dist":{"integrity":"sha512-HGzcPdsTmVmKrz9Tkeh1DvMOyiKQFdFzitNmnHV/SiuQpIrcaBQGI/PAu2OGGM5luYHdtc8nkp3O/yVOjnvEWQ==","shasum":"a8ce33d3d4cd5638ea8b50fff030f3ebbbb79efc","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.43-beta.11.tgz","fileCount":9,"unpackedSize":63704,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPxYrCRA9TVsSAnZWagAARjAP/1423QVzbigkwQAuLm/s\nbaAdrJX2QEPz2fktgF+G5RoLW1VRi5z0FY8JxfOgtJItlGFOE6WvH1zpcxQs\ncuM+Nvf0saDvqp6WAv4CtI4tI9rvVldEpNEWStNqtyvXF7C0tcmWQa2ZW8nN\nI8bNUcoL7pTuxImf534VTtpArFp6yiT2Ds0DSjUl7heOUCdd2dniWxj8RQf/\nfmVdDU6IoHeDZo7LqJV4UMQMS/cbrgY0ZFMFbRRRzIiJdJfEdhrG+b8+vjOI\naXoGdp7NiLRAoiEV6h1uI2VpiF/iqwV06KKZKuybL8/68zL4xzi2IW/TWTc5\n4piOoCVETBIKP9hrXWDug5BH6nSHBVlvAV8HM/I3JC2M4A5wPXVK8rpD1DxT\nXYQtUdHZvoEwsRTes/mmZjDudDm4srMKX4KwUdD2lKTThZoTXDD56cDUBJ6b\nFpBXDKDWKhNH4TJU2jSRVXV4Qh5lKSWhRc60EYn7S/jeuAQrqSIgOBzTGI2D\ngmjrdIq7qDJu42VSS+Av6kK30pBVheALhd6L+ZyFd0rngGpyNk71xwoWXQ2P\n11OtsvZJM8Z59ET/8OmaB9I76ZhXi/bx6CCNmvkVMC0F3XvGacdF0ZIhxPM/\n0hOPevXORgMPXmWyi0nLzJrlosv8QrXWZ1kGUpQNOpSphQ9LtiBtKcPn5yBD\nNKDe\r\n=voWT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIClWP7JP0yB7B+tNQCn3z1lOj+HG7uF5sM7ax+M7UavLAiBw8rQ3mbxINu9y1RWVRegO/PFeMOXXx1MqZDxaPvsTtw=="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.43-beta.11_1614747179000_0.5239309417844371"},"_hasShrinkwrap":false},"1.2.43-beta.12":{"name":"@midwayjs/fcli-command-core","version":"1.2.43-beta.12","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.43-beta.12","@midwayjs/serverless-spec-builder":"^1.2.43-beta.12"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"3d6a99a8450560b95ee72abad2891e858687174e","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.43-beta.12","_nodeVersion":"15.10.0","_npmVersion":"lerna/3.22.1/node@v15.10.0+x64 (darwin)","dist":{"integrity":"sha512-9aQ38oX7ntq3rxL6Eo5fd1Xa/Ug/1XJBFXb12FzG/nH6IKhr59fSUweKRH40sooqTj/74KghrRJfkFXVnXg/0A==","shasum":"88f17b50c2bb778910fce5c72ba3e7baa400274f","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.43-beta.12.tgz","fileCount":9,"unpackedSize":63704,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgP0hTCRA9TVsSAnZWagAAoR0P/Ameg/gE6aaXyJ/VCu1c\nShQMvjrCl+a9hn7zMVi7OGWnYAiB4tds1X5aKDMCwGPkhabIWQm4iDsQnh0h\nvy3D7llFwtohSTRas0fCT2KyLmT+jiAdLXh6z77nPu/ZAOVW9nb7Skgtx0Rn\nvxyv1H7SkOB9u/ctXDnAdNjCMHYQaRr0eN5GrPJtbJc/jpdcCyHXsEh2yjwv\nDa/3f50Yqy8tCXNxqx2y2VDuPu4PLQEb0vZPT9ofim+damfcbnhhhP1IqA2+\nL/zSRXDoMDns7T8Zx5M2kgaqo/3ABU7mvyqegP15Fm4oxoYc1SozeSCQ1xUV\nXI4IJ8/PVu3jSAB65I/xEDpyNZCw0Kk6pwIWnybM5cpmYmQXRbGsq9yhfcNb\nvm7IC7x4p+5plD7pqW9HZVyxAtBZU5jsR4C9Ky/3N0FttSok9G+PCO1gM6pO\nuMbDFfqwLWaF/wg3RljEy/xkbR9Imz7b1ZE11dqKAU+JVquvlQ68EzzcUplq\nTjCsWcR1sfJ8tq1iMDRYcX+ltXF5+OiKDUaEnHd3RsqQ4YxwTPKJUkEtjdnd\ntfufNt0SUmiDIzVWU9JGagyNNPB0mx2tuoMEjgJXq8IIPJ6K2aEdCKAS+cNv\n9Zbh5XTSSGaH8VpKUox5TrO0O6hfrJNC2UQmgCvcWgsN65kVn3bGwk6ZI59p\ntyUI\r\n=1rH1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFxcKxCE5ojDAipVicOj/CJ+W/CzOtAVWbOrhNC+DwhWAiAAsurTHniPuCTBCp4zJTwao592AciZubtusxHwdcjlcQ=="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.43-beta.12_1614760018620_0.7819137711042792"},"_hasShrinkwrap":false},"1.2.43-beta.14":{"name":"@midwayjs/fcli-command-core","version":"1.2.43-beta.14","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.43-beta.14","@midwayjs/serverless-spec-builder":"^1.2.43-beta.14"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"bf5254a3170c7e6cb90503e8985ac3fc6bc5621e","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.43-beta.14","_nodeVersion":"15.10.0","_npmVersion":"lerna/3.22.1/node@v15.10.0+x64 (darwin)","dist":{"integrity":"sha512-ggjuX/M/cX/cUegAhEr1pjdESzueSUA4HOw5efPFl+JMpi+9pvOsmT8A4wXz/C2jRX9+Lcy1oqsiGNex/z76Og==","shasum":"5e78d69c433e5780b139c0b9f3489d7ffeea4f38","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.43-beta.14.tgz","fileCount":9,"unpackedSize":63704,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQKOtCRA9TVsSAnZWagAAcNcP/11Q25Tkdc7ribfxMp/V\nV50HmrSllGIH3l1Vvv/N6H/YZBei9srW9rGJOBw0/obbFFCiLPqwNLh3AZhI\nLK7dx5WL9aBEBrqcgUkQR51MvUTmjcQMVKldQzItNIyHJ6wmfQewyJsb6XzV\nxT3wfnHSlti/82XTpR0NzxwSDyQmgdYQA6qMYOqpFpQEYD0+wOzOemZuRUVy\nwinsfmKAfkS62aNuoAh+F5nONUOmxOMIdBwBldzu4E7Bo014Y4XU8YaW7+0X\nF1Aj47g6VujdJCZ6SM7I1cwNM02CWEANxUFAAMfsRMvKJja32Fs+x5FW6DKi\nCA+Gbz9Eu6N845rDJy22xuENuIsFStmArdzhcLVUeWwnewgLR+Mbye+PmHfc\nkdwA2ed9FeDMwyZANGmECtlN0HXzOdlDfh8lkogDqIJfKQm7CVo/p5gDGwwb\nTe6/rWQWvNj/9cjHG0+Giqq9b50hAYgeCB4eOGtQ8mlGJ2L+5duLdliJ5w/t\nFoeYCkpU6xVq8b1mT0lejPx4aXC+FZRrLaNJQcNnhV1U4H6AJNcsvZXYopjs\nFV5qAUbf0MTq3xEGdAtKvpEb8/Bne+yMYUm5kX23mWAkkUs+SBgM/g3V6UST\nQQi0EdZrWZ39IzYwoJtLEtp/Tg4RO8KzqCVmdVgcntlcSq8gPNt0S/i1A74a\nTG/s\r\n=A2QV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXzOto33yc8UaOrFy2j7cM62rzs57mQ5echqoqIT3lugIgfZx8oUHQgm6lMdgacCf2JlcftydL3siXaaUhZK+Hddg="}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.43-beta.14_1614848940806_0.03669476121592585"},"_hasShrinkwrap":false},"1.2.43-beta.15":{"name":"@midwayjs/fcli-command-core","version":"1.2.43-beta.15","main":"dist/index","typings":"dist/index.d.ts","dependencies":{"@midwayjs/command-core":"^1.2.43-beta.15","@midwayjs/serverless-spec-builder":"^1.2.43-beta.15"},"devDependencies":{"typescript":"^4.1.0"},"engines":{"node":">= 10"},"scripts":{"lint":"eslint .","build":"tsc --build","test":"../../node_modules/.bin/jest","cov":"../../node_modules/.bin/jest --coverage","ci-test-only":"TESTS=test/lib/cmd/cov.test.js npm run test-local","ci":"npm run lint && npm run pkgfiles -- --check && npm run ci-test-only && npm run cov"},"repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"license":"MIT","gitHead":"8ec03663f8a14958470e80616802d28cbef652c9","readme":"# Command Hook Core\n\n基于插件生命周期 + hook的内核\n\n## 内核使用文档\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    config: {                   // 会挂载到 core.coreInstance.config 上\n        servicePath: baseDir,\n    },\n    commands: ['invoke'],       // 默认命令，多级命令依次传入数组\n    service: this.spec,         // 会挂载到 core.coreInstance.service 上\n    provider: 'providerName',   // 会比对与插件中的provider是都一致来决定插件是否加载\n    options: this.argv,         // 参数，会作为第二个参数传递给插件构造函数，例如 { function: 'index' }\n    log: console,               // 输出及错误捕获\n    displayUsage: func          // 自定义如何展示帮助 displayUsage(commandsArray, usage, this)\n});\ncore.addPlugin(Plugin);         // 载入插件，插件支持 class / 'npm:provider:packageName' / 'local:provider:path' 三种形式\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行默认命令\n```\n\n**core.coreInstance** 会作为第一个参数传递给插件的构造函数，上面挂载了各种方法及属性，详见 [./src/interface/commandHookCore.ts](./src/interface/commandHookCore.ts#L25) ICoreInstance\n\n**options** 作为第二个参数传递给插件构造函数\n\n\n## 插件开发文档\n\n提供了 `BasePlugin` 插件基类，可以继承此基类编写插件\n\n```js\nimport BasePlugin from 'command-core/lib/plugin';\nclass Plugin extends BasePlugin {\n    provider = 'test'                      // provider，在插件加载时会比对provider，如果存在此属性并且与配置的provider不相同，则不加载\n    commands = {                           // 命令列表\n        invoke: {                          // 命令，例如 f invoke\n            usage: 'test provider invoke', // 使用提示\n            lifecycleEvents: ['one', 'two']// 生命周期，在执行 invoke 命令时 会依次按照 lifecycleEvents 里面声明的hook进行触发\n        }\n    }\n    hooks = { // hook采用 prefix:command:lifesycle 的形式，prefix 包含 before和after，分别代表在之前执行还是之后执行。lifesycle即命令中 lifecycleEvents 指定的，如果hooks中不存在对应的钩子，则会跳过此生命周期\n        'before:invoke:one': () => { this.core.cli.log('before:invoke:one'); }, // 所有的hooks均支持 async\n        'invoke:one': async () => { this.core.cli.log('invoke:one'); },\n        'after:invoke:one': () => { this.core.cli.log('after:invoke:one'); },\n        'before:invoke:two': async () => { this.core.cli.log('before:invoke:two'); },\n        'invoke:two': () => { this.core.cli.log('invoke:two'); },\n        'after:invoke:two': async () => { this.core.cli.log('after:invoke:two'); },\n    }\n\n    async asyncInit() {\n        // 可选择的同步初始化，在插件加载后调用此方法进行初始化\n    }\n}\n\nexport default Plugin;\n```\n\n\n## 插件如何进行测试？\n\n```js\nimport { CommandHookCore } from '@midwayjs/fcli-command-core';\nconst core = new CommandHookCore({\n    provider: 'providerName',\n    options: {},\n    commands: ['invoke'],\n    log: console\n});\ncore.addPlugin(Plugin);         // 载入你的插件\nawait core.ready();             // 等待初始化\nawait core.invoke();            // 执行对应的命令\n```\n","readmeFilename":"README.md","description":"基于插件生命周期 + hook的内核","bugs":{"url":"https://github.com/midwayjs/cli/issues"},"homepage":"https://github.com/midwayjs/cli#readme","_id":"@midwayjs/fcli-command-core@1.2.43-beta.15","_nodeVersion":"15.10.0","_npmVersion":"lerna/3.22.1/node@v15.10.0+x64 (darwin)","dist":{"integrity":"sha512-LMUGAoL6SH+jUvpzzWRURxtOlBp+WOzhpLFjP+/ytEHetnB931djSGMstaWqkrrpuD7On7gt1kl+RDS988FvEg==","shasum":"37c3fb072db678e3eedf1ad31cb5330fdc40bdb2","tarball":"https://registry.npmjs.org/@midwayjs/fcli-command-core/-/fcli-command-core-1.2.43-beta.15.tgz","fileCount":9,"unpackedSize":63704,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQKyiCRA9TVsSAnZWagAAQ54P/jR5NjEMaYPRzJQbT0hL\nieU2MDCQsCezR6PbYNKgF1TGEzOkb5tRJsgmLqkB29/Ga1v+IXOPpzJwlEP8\nT9T+fdu5nCR/q5PCwWpdKHX6Rd8eAY+hiBcHreAWN4vS0Mnn3q0KhJ+Xkbdb\nnf+nEDVlgzoTsF4HvBaKgEPV7yKaJliJ215xFuD7512XGfRqZ2SY7F+9wree\nxzvlJBtUwLRnRWdw4y1c0scz98DRxQPIpplDY4PHCtTkwNKheQXZK0T+Dfun\ns1zQceVOh6ZwDRa1dqwD4aa7HaEcx7ahGqxrgBJUkJI9wvjcLgPxTb8WZCJU\nb2pUHrxLH75x4jy7g+SONkvenW3TxkcRb7Ofb4OH31LY4nwvZy3Y3bexgNju\nVvMqYLE+5JB+2ZcCr/mOE5rvGImw8AKQdfrTCpF/AHbphfde+wTaNSyyZ3RA\nLmomeYJ31efVBhc5uYy7og2R8LeRyHSTdqDeSF8HwR76kXGgEZX4VkTrySqV\nX3fhIRxreqvGBc9iykQeu3uEI73Se6MfI40CG9H3Ymly+p+XzSyPbP9EaeeB\nsw4JlV68tmRCQW8q5t0GeIOKYcDcZH6ajn+zj1CaVIK9hA1KPB/NFZo3jXIt\nFhgvAo7ktJRG3zC7EcJ+AiqnKYtu4Bxp2bk1jqh8zX1YB/fgQEwH+/Xp/9qP\nMiJ1\r\n=pyCs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+Lejvesr10ImSaa27qCq1UfeXWk2z5rlPskAWjhr35wIhAIeApcwT1wEjJIx6HuiXMzp60OsQV/4dhrUk+NpBdU0I"}]},"_npmUser":{"name":"echosoar","email":"82163514@qq.com"},"directories":{},"maintainers":[{"name":"czy88840616","email":"czy88840616@gmail.com"},{"name":"legendecas","email":"legendecas@gmail.com"},{"name":"echosoar","email":"82163514@qq.com"},{"name":"lellansin","email":"lellansin@gmail.com"},{"name":"lxxyx","email":"Lxxyxzj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fcli-command-core_1.2.43-beta.15_1614851233914_0.46584882269762384"},"_hasShrinkwrap":false}},"time":{"created":"2020-01-05T14:34:03.575Z","0.2.0":"2020-01-05T14:34:03.991Z","modified":"2022-04-06T05:30:56.147Z","0.2.2":"2020-01-08T02:47:46.199Z","0.2.10":"2020-01-16T11:28:53.784Z","0.2.14":"2020-02-01T16:11:22.890Z","0.2.20":"2020-02-11T09:57:24.975Z","0.2.22":"2020-02-17T10:31:21.157Z","0.2.27":"2020-02-21T05:19:35.250Z","0.2.29":"2020-02-22T06:50:15.905Z","0.2.33":"2020-02-24T05:41:52.430Z","0.2.34":"2020-02-26T06:53:09.379Z","0.2.40":"2020-03-02T16:38:09.390Z","0.2.41":"2020-03-06T08:02:44.201Z","0.2.49":"2020-03-14T03:24:18.446Z","0.2.50":"2020-03-17T07:36:25.680Z","0.2.51":"2020-03-17T10:48:47.642Z","0.2.54":"2020-03-19T08:34:35.162Z","0.2.55":"2020-03-20T07:47:51.569Z","0.2.57":"2020-03-27T09:58:56.374Z","0.2.58":"2020-03-30T03:04:15.946Z","0.2.59":"2020-03-30T12:40:31.661Z","0.2.61":"2020-03-31T09:47:47.081Z","0.2.62":"2020-04-03T05:56:46.291Z","0.2.63":"2020-04-03T09:36:28.511Z","0.2.64":"2020-04-05T05:36:31.819Z","0.2.65":"2020-04-05T06:33:59.205Z","0.2.66":"2020-04-06T11:07:53.930Z","0.2.67":"2020-04-07T03:15:11.531Z","0.2.69":"2020-04-08T05:34:10.299Z","0.2.70":"2020-04-09T03:10:38.102Z","0.2.71":"2020-04-10T04:52:40.890Z","0.2.72":"2020-04-11T05:32:14.942Z","0.2.73":"2020-04-11T16:45:51.937Z","0.2.74":"2020-04-13T15:23:28.436Z","0.2.75":"2020-04-15T04:03:11.999Z","0.2.76":"2020-04-16T04:47:05.403Z","0.2.77":"2020-04-18T02:52:47.155Z","0.2.78":"2020-04-18T03:00:31.107Z","0.2.79":"2020-04-19T13:04:00.866Z","0.2.82":"2020-04-23T04:23:01.637Z","0.2.84":"2020-04-23T09:04:17.869Z","0.2.88":"2020-04-26T08:37:23.089Z","0.2.89":"2020-04-28T03:46:15.707Z","0.2.91":"2020-04-30T03:20:32.260Z","0.2.92-beta.1":"2020-05-04T03:40:08.903Z","0.2.92":"2020-05-05T05:03:08.629Z","0.2.94":"2020-05-06T07:40:59.074Z","0.2.95":"2020-05-15T13:13:18.780Z","0.2.97":"2020-05-16T16:00:45.107Z","0.3.0":"2020-05-26T06:47:12.860Z","0.3.3":"2020-06-16T14:03:59.380Z","0.3.6":"2020-06-30T11:48:31.570Z","1.0.0":"2020-07-02T10:22:20.155Z","1.0.1":"2020-07-06T08:18:38.005Z","1.0.2":"2020-07-06T12:47:32.202Z","1.0.3":"2020-07-07T11:55:20.323Z","1.0.4":"2020-07-08T12:19:54.997Z","1.0.6-alpha.523":"2020-07-12T20:26:32.672Z","1.0.6":"2020-07-13T13:00:46.114Z","1.0.7":"2020-07-14T09:35:09.627Z","1.0.10":"2020-07-16T03:49:49.702Z","1.1.0":"2020-07-21T11:22:19.464Z","1.1.2":"2020-07-23T12:08:49.454Z","1.1.3":"2020-07-24T09:32:07.521Z","1.1.4":"2020-07-24T12:21:50.432Z","1.1.5":"2020-07-24T15:33:09.388Z","1.1.6":"2020-07-26T08:41:00.643Z","1.1.7":"2020-07-26T12:36:42.806Z","1.1.8":"2020-07-27T02:47:35.078Z","1.1.9":"2020-07-28T03:38:55.205Z","1.1.10":"2020-07-28T04:53:15.898Z","1.1.12":"2020-07-29T09:03:18.895Z","1.1.13":"2020-08-03T13:08:01.576Z","1.1.14":"2020-08-04T13:03:45.220Z","1.1.15":"2020-08-05T01:55:13.265Z","1.1.16":"2020-08-05T08:34:46.019Z","1.1.18":"2020-08-11T06:28:36.984Z","1.1.21":"2020-08-12T13:06:05.848Z","1.2.0":"2020-08-17T03:07:07.074Z","1.2.2":"2020-08-18T08:45:02.316Z","1.2.3":"2020-08-18T14:28:18.513Z","1.2.10":"2020-08-30T04:14:26.371Z","1.2.11":"2020-09-04T05:27:08.929Z","1.2.12":"2020-09-04T08:45:31.168Z","1.2.20-beta.1":"2020-10-19T03:40:42.406Z","1.2.20-beta.2":"2020-10-19T06:59:42.871Z","1.2.20-beta.3":"2020-10-19T08:14:16.990Z","1.2.20-beta.4":"2020-10-19T09:08:59.824Z","1.2.20-beta.5":"2020-10-19T09:28:27.825Z","1.2.20":"2020-10-19T09:43:30.864Z","1.2.21":"2020-10-20T07:22:17.642Z","1.2.22-beta.1":"2020-10-21T08:58:51.933Z","1.2.22":"2020-10-21T09:09:11.447Z","1.2.23-beta.1":"2020-10-26T09:20:22.695Z","1.2.23-beta.2":"2020-10-30T07:41:38.038Z","1.2.23-beta.3":"2020-11-10T03:48:14.945Z","1.2.23":"2020-11-11T07:40:54.341Z","1.2.24-beta.1":"2020-11-12T07:47:17.810Z","1.2.25-beta.1":"2020-11-12T08:11:18.121Z","1.2.25":"2020-11-12T09:30:17.533Z","1.2.26":"2020-11-17T03:03:17.105Z","1.2.27":"2020-11-17T13:12:16.247Z","1.2.28":"2020-11-18T03:38:06.645Z","1.2.29":"2020-11-18T08:26:16.166Z","1.2.30-beta":"2020-11-30T03:00:14.096Z","1.2.30":"2020-11-30T04:07:36.792Z","1.2.31-beta":"2020-12-02T12:36:13.010Z","1.2.31":"2020-12-03T05:58:39.388Z","1.2.32-beta":"2020-12-08T08:20:32.732Z","1.2.32":"2020-12-08T08:53:38.887Z","1.2.33-beta.1":"2020-12-16T07:00:25.639Z","1.2.33":"2020-12-17T09:00:51.601Z","1.2.34-beta.1":"2020-12-20T11:57:14.958Z","1.2.34-beta.2":"2020-12-20T12:57:55.527Z","1.2.34":"2020-12-20T13:48:05.566Z","1.2.35":"2020-12-24T03:00:55.852Z","1.2.36-beta.1":"2021-01-04T08:17:58.342Z","1.2.36":"2021-01-04T09:09:59.935Z","1.2.37":"2021-01-08T07:09:17.960Z","1.2.39-beta.1":"2021-01-14T06:17:43.585Z","1.2.39-beta.2":"2021-01-18T07:40:19.573Z","1.2.39-beta.3":"2021-01-18T08:49:59.832Z","1.2.39-beta.4":"2021-01-18T11:00:16.582Z","1.2.39-beta.5":"2021-02-03T08:52:32.185Z","1.2.40":"2021-02-03T09:07:15.095Z","1.2.40-beta.1":"2021-02-07T07:34:35.916Z","1.2.40-beta.2":"2021-02-13T11:36:51.715Z","1.2.41-beta.1":"2021-02-14T02:32:23.804Z","1.2.41-beta.2":"2021-02-14T03:02:18.500Z","1.2.41-beta.3":"2021-02-14T03:24:03.653Z","1.2.41-beta.4":"2021-02-14T03:46:14.591Z","1.2.41-beta.5":"2021-02-14T03:50:36.209Z","1.2.41-beta.6":"2021-02-16T05:19:53.979Z","1.2.41-beta.7":"2021-02-16T06:27:16.782Z","1.2.41":"2021-02-17T06:20:14.236Z","1.2.42-beta.1":"2021-02-18T08:33:37.621Z","1.2.42-beta.2":"2021-02-19T04:00:23.086Z","1.2.42-beta.3":"2021-02-19T07:08:36.535Z","1.2.42-beta.4":"2021-02-23T03:26:24.493Z","1.2.42-beta.5":"2021-02-23T08:43:54.167Z","1.2.43-beta.2":"2021-02-24T08:37:12.452Z","1.2.43-beta.3":"2021-02-25T07:01:53.614Z","1.2.43-beta.4":"2021-02-25T07:07:47.869Z","1.2.43-beta.5":"2021-02-25T07:13:25.743Z","1.2.43-beta.6":"2021-03-01T09:06:35.706Z","1.2.43-beta.7":"2021-03-01T12:32:15.536Z","1.2.43-beta.8":"2021-03-01T13:03:58.624Z","1.2.43-beta.9":"2021-03-02T05:49:09.633Z","1.2.43-beta.10":"2021-03-03T02:52:17.746Z","1.2.43-beta.11":"2021-03-03T04:52:59.120Z","1.2.43-beta.12":"2021-03-03T08:26:58.868Z","1.2.43-beta.14":"2021-03-04T09:09:00.961Z","1.2.43-beta.15":"2021-03-04T09:47:14.285Z"},"maintainers":[{"email":"dujiakun@gmail.com","name":"mariodu"},{"email":"czy88840616@gmail.com","name":"czy88840616"},{"email":"legendecas@gmail.com","name":"legendecas"},{"email":"82163514@qq.com","name":"echosoar"},{"email":"lellansin@gmail.com","name":"lellansin"},{"email":"Lxxyxzj@gmail.com","name":"lxxyx"},{"email":"1520006273@qq.com","name":"stone-jin"}],"description":"基于插件生命周期 + hook的内核","readme":"","readmeFilename":"","homepage":"https://github.com/midwayjs/cli#readme","repository":{"type":"git","url":"git+ssh://git@github.com/midwayjs/cli.git"},"bugs":{"url":"https://github.com/midwayjs/cli/issues"},"license":"MIT"}