{"_id":"@byted-starry/registry-sync","_rev":"17-dffc658076ae5b40fb9e27114aa0af34","name":"@byted-starry/registry-sync","dist-tags":{"latest":"0.1.9","alpha":"0.1.5-alpha.2"},"versions":{"0.0.1":{"name":"@byted-starry/registry-sync","version":"0.0.1","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"gitHead":"954ecfeccd6ddc202b5bd22aad4f8e40e1ad2ea2","_id":"@byted-starry/registry-sync@0.0.1","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-tHgdEhUfp8o/j7e2o00Yy4ETS8Hmj+/VjF8F23X/kYlliu64rf1ac5nRXhCji4zIZCvXaMJbNCxJJAi3c+Q/LA==","shasum":"95b0d9f82a0b931b55fae89a3c77acbf3b476f97","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.0.1.tgz","fileCount":35,"unpackedSize":884379,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEFQtvWZSki37pfHk0PpOHhGUpLdpJvIviqnN4TOT79oAiBgqyI3mqpUDI8FEf4jkBoyJkkyvsgmzQyrFs1zAabvCg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJihef6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq0fg/9F9NQ+7nBpYUTXmJFF0PMJOZwYS0OW7jcT28mUFRj3qwe3XhM\r\nKwoHb36qsA26AN2WYcZTU6rk4sfGpPdZXSenPsxNtENN+6PFeipfvD3chGge\r\nBUAnTZcXvC1Mq6xH3EntbbFC/EOZJMxnGl6B8c2NZ8QHAz9FADwsaYQr4g60\r\n5PTA1NE3IEeriCjVnUR/XgTlZBhYrscHuVsW/My3l0bBmzb6lQtaAJIexeDy\r\nHPhu2t4dpwWs+2TtY32Qr/Jz1Aoi7/BsDLeu7IXsjKpjH+UVxgppftpN1k5e\r\n524qz383mipnhNZDiEDZDmbpZs6vfwWxm5IEszoDKt8cpjKvvkUIQu2HMYM1\r\n4DONvijUC0RvR8KqEkZ5P3VKETBGnlhu5+B89QGi4QuyyaKqbhZyc+lKk7t5\r\nTUOPESA8a4QaAEySTq1XxEMlAbrQWIGdhOpweYeftBeOrIHm4f3CBw/8C08i\r\nsTEocw53DOgzkfTzMR99S5LQXUBxQuzEpb5yx2jM+zCd1sIEra4GQlnfCUED\r\n7SltchojKDOqMrDTOH/HsD2DqB7kiQzcONBsdx7BPyjLA/OU3C7cFXrBMkp2\r\niayM7jQCzREbZzYMdPquYXLdIJ1q7AX7XddlTjZlVnC/o28XL/d8GP+shM0i\r\n0F4qk8VkCXNhqMhI+3fCcKLMhctbUo8IH3Y=\r\n=Tynu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.0.1_1652942842137_0.10946367888986552"},"_hasShrinkwrap":false},"0.0.2":{"name":"@byted-starry/registry-sync","version":"0.0.2","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"gitHead":"19d9f0f770aa07ccc1b965ddc78e674cd03bda15","_id":"@byted-starry/registry-sync@0.0.2","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-N+Jn1Fy8n2mfDbz+74hcylxAAwtbekvM4xRKbgAAO58j7pvu1jGkryVk3kNz5VHZXy1YDgB2lzvflNm3yceG0Q==","shasum":"100a71380dd36721c92ec733adaf63f0404fb6fb","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.0.2.tgz","fileCount":35,"unpackedSize":885534,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClK8JPaHSDG3Gwe4SIlxl2s2Jc0ly0mzyrttLMr+5fWwIhALSGrGwnBfwn4yu3KB0BJDuIQAwbyfT6obs4OdhVVKzi"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJih1WUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqWRBAAg84mE591GiGaBM8GuKH654buxktPc0btZ3Qwz8pPmgyYj+fg\r\nlzjGDIfcBQg0YifcZL6o3/tkuqiUS+wjyb49DieraUqEBZYBtU4opT7fo6KV\r\n2raPTAh3Rgso99DDu58n4L59NJtY+fJkWurpNfiMG4I2MjvFxm0mqHIrPfLZ\r\nf9rxk0PCtQxqcRjpYnrUVGESiv1GeINwZLaQUIP//cW/fO2cmx6Mq5PWKyW1\r\nVyLb5ozAPj/h2YoO/2/1zI5TgmEDHofkCAoyppS67n6Iyd67dNoEn0mu1W0L\r\npji1GRigLF28a2G/p2Af7L0nZo6iHTdn91PanIsx8UdovKS5O9XiYWIpl1cF\r\nTIv87c6WkyyozE2MaBH3+3FfW+qS7abuBmxvfRil9GZTlmSvB/j8lxf5iiTo\r\nKOVQwFzWETvUe7cYQIx2LOtRxU1dpQRhGRK5vZJGCPYIIUs3kzvI9LoGvn9J\r\n/wZxZHSIUOHs633Y9gPRcW3/TEQuaSNK+TrKXASybBjh+H25YdpHKrWoDYn/\r\ncpCVRuVOhvzB41vke2RNe8oSGINPqOEVY9S6TNMPB7t3LfblRGbKAtAjetLa\r\n4WKRlqrfa1YMYLj7h0aKKq4pm7pt2eWwZUkxNQlSn2XYP8fyrHwHXZF30oFJ\r\nwVEHzHjV0qW9kDly7cPqwqV8yVCqqjct/oo=\r\n=aGqO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.0.2_1653036436298_0.42600313448419946"},"_hasShrinkwrap":false},"0.0.3":{"name":"@byted-starry/registry-sync","version":"0.0.3","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"gitHead":"19d9f0f770aa07ccc1b965ddc78e674cd03bda15","_id":"@byted-starry/registry-sync@0.0.3","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ft3qQGIGt8uPVOWhLfw8HGj1jJCfZKVmqofHrx+gxZk/fiubzOu8S/UxkvyXv0uOeTOpnJqnnb7X+SdSdJ6A4g==","shasum":"5b832d2f1d85ff94a7b5437a1697bf5a6d64a6ed","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.0.3.tgz","fileCount":14,"unpackedSize":45254,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC+0XzCjZl/JAAolIhAqomqjPplgLSo9yFBYeO4EFGetAiEArQySR1MMiANar29kos1IEbftahC1Pe5qXw0lLPTdSVY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJij0BZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+AQ/9FJYaOXWF6JFA+YLNyEhgHgQIJZgbEY10vcHS4ex1hsjNqmR1\r\n/saradpojVEUUyp0AhwwL3HcteMrlCOHy6fTjcwlMOkD7/Z0a1TgUSmPPluN\r\n1MCgQvxI/1jlJ4rjtSsoxCGaJRVQTyfX5BfBDJq1HN3yR+LTlRPj8fDScM7F\r\n6e5bPrRP5ecd7tlQ1ebuCrt4jeNHfeGm9ho3aLyetkdg1RIssmHPD9FSpVrF\r\nve8Rcykd83HM/fSaROBlZwZH/v3qrZSKROykV3Jtkimq+cHJS5TvRES18wBd\r\n59RsFTaj0yZC206LgnUBckB3p6K7khgsekxxDSocgqjqqYI6FlR1S72l63lA\r\n4yQdAmZRJ26VRa8vwakVFeJpXLlDyEc9Ow0M11ePJ4PO16J7y2ozZ/UrPcBq\r\ncdDvC1GIJYRlsplFrmD86IwPMXI1R8braIt8BTnbupZcckCl4SHke6urtDFK\r\nQbl6RUZiQxWEArLaEtY4+VVNszYe2yRT7mmjA35E7LLKl/NzbD4MuYZ4yjLM\r\nKBpLE/TxH6QM1AR3nXPNnffPW5sNqC4RIUNNoBi5j5voleSWQUzNLu5HR9Eq\r\nfek71etRM6tXXPtn/Q9JmQqj2nwC07xs/Yekmjrmxmlf1hSuWq+Mnap4BaIg\r\nU8yb5kxDDL/oV2KiRvyzrg5oRvrKSxtnWBs=\r\n=e2z+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.0.3_1653555289512_0.7425318291240202"},"_hasShrinkwrap":false},"0.1.0":{"name":"@byted-starry/registry-sync","version":"0.1.0","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","minio":"^7.0.28","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"gitHead":"172a7eb5011512f94f77d8380c900fcff1bf0d7b","_id":"@byted-starry/registry-sync@0.1.0","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-TRUu5XDGSZbz8GEUwX4wLz+BSv4mlONtPAaNOvUL1pyGE7WhUt349cpDvwD06tXe9WtOXFM1itFLfWjc0aUszw==","shasum":"76622a0b73d7aa78616aaaab03cd4125b9a04e52","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.1.0.tgz","fileCount":15,"unpackedSize":67097,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDor+0GdBgZmCPILeAUX4pxr7pzm+aU8ctr1Co7DABVGgIgS+KYSa766FXURaTGj7+o0bOBgNHa7BPU7GuTfFSwenM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJingFEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqt2BAAkTfirdL+nVYTXMIKTYW4ZPQ3IBaQzybbLYmLTL4xjugD0SjD\r\nRobUR/14y0fOra+WZJoKxMcQstAjf6Y6XkdzwIdhZRBUW0G/sBgPaTr6R3Ro\r\nuLNHh69dq8ADH2p6+v7HqMKUaaXSPvvtJ+PtiX+Rf1gbcFK8khV0YZLgXFow\r\nJvE1bLhG/IuRvi2XHl3ICmMq096K/cDwacz2fUh7IvHKtkdmj/34VO9G6sv+\r\nFpffIRG/HG/+wG8fmb7OGi7GrQt0QSiTyYr23kXXl1nbE/zea3dr6YSDGAPR\r\nuq/H15HxRAhaYvX5Z/t/p5blsU2JttcvnkcvI6b6aEvcBzAAeIkBY5ZZN32O\r\ncS49ihQwYwbwTPfPnmk4VQtmVWyBoSeJu5/Fqw/Jmwf4BIWe5HNMG2dsCHcb\r\nt1yIgseFwnM80scRO7QJXwdHLBZ89Ou0n6KOAqVA4gBQXEvPO3TCcA9opEcK\r\nOe9NgshWXNcwpwDct0dbq5Or6ZYfEmQk95hru6kwYIPtHyLGoFYf8y0gpjKc\r\ne8MR8a1K57rcCBox3iAn/oveBg8MMLGvcKiIFRw8TTS4STDlRAVL8w8WqQgw\r\naKXmwg9O7pKA35IfB1CDGFrgeEJTBzvkya6Idzg9XzyCXQmZRvchn3Ouk3d5\r\np0AyH/wD9istYFpmtV5sfXli9SP0C8EQiL0=\r\n=pX9w\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.1.0_1654522180716_0.6802764909541743"},"_hasShrinkwrap":false},"0.1.1":{"name":"@byted-starry/registry-sync","version":"0.1.1","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","get-stream":"^6.0.1","minio":"^7.0.28","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"gitHead":"dbc688194cb9cd34dd5d99bf04c071c9d62e211a","_id":"@byted-starry/registry-sync@0.1.1","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-v1a77HPcPXnfVlV2szI/yoYCG4xe9oGIcCVjFy+ZVg+KbuqJhLGutWI0c0iKzVEKfPv50w2hqSmrjRuoV4IfZA==","shasum":"7755a2797b76f9cb41d530cef880a50f2b3b9bb6","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.1.1.tgz","fileCount":15,"unpackedSize":66773,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDr6XYfJgtVGSlJvkziaHJLYfLnhZNmLKJmWcYc1fnBbAIgSyf017MTMrLdgIvt31g/J+vM6kuX86XpyYAR/lR6yBQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinu4xACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo7exAAiHiNe9vLY2OFP5+WAIBkvybAz1lSSOG2IS8ocMZVPkIYy/6/\r\nCBRSCRzLAQRUkKumitRaraKlNOJ6z8rBHuzeN+6tG8HMoQ0io8Y1G2YBunIb\r\nXUnHBN5FxKgr3BzeuCkr3/v06tWOG1Jp7CWfoQa+5/N+nYeQZ1PFydMFpI3z\r\nlV/9grYfPH/wgo1JO2LVrffmAgjGIW9PvY+dn5rLVucLGTRiBYN8a+m5EPLp\r\nYw+E9R4MXljNSvkkSesf/y/Df8mYFmbiqQjZSszwQg9Rfm8AiF7AyMhmIowC\r\ng9sLdLaSNsENlZ+w4Dyg8KRZln9CM3w0e8FIY94Tbh4L1sj8QhC9qVYfDyfP\r\ngEWIX8UbwI7EN7yQebuKXtBrGaRpNYpNRKwmsXEvUaOHA8J9HOZLnYq7knlX\r\nhyC2/46/QK1f8AUPtGRVBQ9cvnfs3rJSZEjVC2KV3M8u/n9aw7j6cNdCDlyO\r\ntjwzNgFFWUZxpsLUfKnCTBWJYzmyEMWbwYAgGuavLhPQtu0v8xZ2+ywckrlJ\r\n1g7qImLTvEjRT6x3IScBkrMWvQMe48T4axwrgwp4RBO2FxLqG0QY0AOkM/8W\r\nI4HFFs/TtwRfaaJJH4g03v3VP868ViBy4TGuSmEIKTYqRLYIRkGlRQEpNAbx\r\nYPRJOtxe+UgPkyhf7rVznpkGnt2kWPfWFrw=\r\n=Gfh0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.1.1_1654582832970_0.6884006384862631"},"_hasShrinkwrap":false},"0.1.2":{"name":"@byted-starry/registry-sync","version":"0.1.2","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","get-stream":"^6.0.1","minio":"^7.0.28","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"gitHead":"77e2dde30ff9ba8f5c907dd39b37023cd92669a2","_id":"@byted-starry/registry-sync@0.1.2","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-hhlaRiqy5OBSXlktdw/yKokm+w44Dhs1Qxihi72uYsgUIL38NaDM/UXrzakG2Lqh1cdesn5ZbLzecbUYAijvPw==","shasum":"dfe4e852636451c876e2472b97b4e05cc299c9f1","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.1.2.tgz","fileCount":15,"unpackedSize":67128,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdTaA+cVfRuZJs3QIsaNwp1cC0iJEAVnyoAdnjB+V/uAIhAIw6D+ajO4tzRqAYl+NDEbqKo2bMpato5Lm6mlSDQ/4e"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinvZiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqNMw/7BIwQkBC35CbmOtiH2cesWwyUrfamj7PnGCVizzsBeV9AqU2q\r\nWJL1mVZP3cQJQG0p7BQzKF2cZzjVp/cB2VSCnDUk8OMjRmmh2nirm5s6WjFQ\r\nu71AiZmEZoMv9Lquj5LujPTZADtBqbINlqcpFnwO/hwN3P6Ds0L7L1Et1LQ1\r\nN39aKR93YKJvhZtI3EhGIZRk15BIV811D7/HhUpoWbm+i7EYU4KmZu1lxT31\r\nrKEOHdT3hrYcE3T6Gmi1XiWf+biaw2Jb8OI1gyGbjEwcCdJ8w7P6lNm5B9ls\r\nmeGHnVDr+yO6KktyebUr/6VYA4X5K/nBn3j93cszkKWVJGXjNmxsqi+GFFD5\r\nm7o6BDF+pbMvwnP+FePZs6IOFCA98pyLEtyN5kwl1nXHeFyYIIyiFuyl6cNx\r\nIE+Pi3rhMFrWMtK3z+Zf404z6bMv6dHZf2zfaxLwnesvL2V3KlQUe890/Ebw\r\n04ugLC294qgIlPkCMJsPNalHY4UMgKoou8r5j9ZnYhyNEifq6P5288eZqFGm\r\ngb3D1fxTvQBTgY5MlFxAL/YYDzzyKEJAcwRulDWCe0tFHKOD1+joSjh7QqOO\r\nrvNOv9GMXJqcCOfP3uJzWT0tBK7J/kX/PwuUEaHBdNqO0zwiQNgUvbPcFvPD\r\nmz78b/rW+t3qyJUmeayhb9oCIgzxzkfHAow=\r\n=KpJg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.1.2_1654584929781_0.4228640733724571"},"_hasShrinkwrap":false},"0.1.3":{"name":"@byted-starry/registry-sync","version":"0.1.3","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","get-stream":"^6.0.1","minio":"^7.0.28","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"gitHead":"77e2dde30ff9ba8f5c907dd39b37023cd92669a2","_id":"@byted-starry/registry-sync@0.1.3","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-SR13Y+/f62wGilif2/QCVJYkTTwh2SZ5aDxenVC+1mNEd9bVp5GabbvT8in4SkBCdM8N+Im5cAlf0yRob6Rmrg==","shasum":"e084c1b50d4f7958b9d005a5f8263eeb1a225017","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.1.3.tgz","fileCount":15,"unpackedSize":67152,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGXZxVJDYBoRG6ZvqYtMoFs7s5houbarIIss2OzL8jsFAiA4dcjf0n8S1HG+EuwZB/+VdI+lwcIRkDGA6CZ4NNPotw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinv82ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoDsA//XtOlpSnfHGWII5FXqh93SS9QWlqYN7Ytr/FXsT5y68U2+NAj\r\nUoMVNFbFNVTl54FEGWlcRo9Y8uR/Dvc6tbzwplUKLIzWoPTahoN3COXp0wPf\r\nSFttBu232qrJ7ARcD7dzJtmL9gzYSQuzp72p1vXovkDJfAutGtp51D67IXP2\r\nysXmcS2C57bTrjkD3BaQwdqb4oYC9OGwDRr6EdG9qzSB3FI4+zaVcF5LbVHF\r\nGPtpL1RwxzOJCYcbcsWfFDRDPriEZ+WZ89V9xg2wlvRanPt0FNNq4oGDp8c+\r\nnACDX8776FZy1Qdkb7l7WMtYCzWztQG4llZ7kZ/7MFBmuSPTJ5INUt43CfFn\r\nmBr5prM7O95DMA3vsaz9c7EGnta0DzyCXEnmTE8i2BmtDP9VPtFkX/eSTodi\r\nwUWg5wy4/Eg0vyIIS4sGv8gbJx2WkKfA1/CrN7FHjdp2Pk1/3xWGMOZxAY6G\r\n9Fs0hXTAiiSLOSHOpFtf+Ir9NQ2j5EU0xeukm9P7dCCN2Skks/U6nGXjPa4q\r\nrEYshFuQrsx3RukO0wxaXMtHaoga5iuTHlTujx/KcL+1SBKiUqV962UBu2gY\r\nhJCe0WzjFu57QKiD1NCOili83G1VK/6JFj27RAc0/53Ln8o/fHx75DMISGlF\r\ndpIjoXygNGkF7rPSGBTAWsUukPl3CDEB35E=\r\n=s1G6\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.1.3_1654587190310_0.22158676930312593"},"_hasShrinkwrap":false},"0.1.4-alpha.0":{"name":"@byted-starry/registry-sync","version":"0.1.4-alpha.0","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","get-stream":"^6.0.1","minio":"^7.0.28","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"readme":"# @byted-starry/registry-sync\n\n> Based on open source project: https://github.com/heikkipora/registry-sync\n\n<div align=\"center\">\n\n[简体中文](./README.md) | English\n\n</div>\n\nSynchronizes selected NPM packages from a remote NPM registry (such as https://registry.npmjs.org) to a local folder.\nThe local copy can then be used as a simple private NPM registry without publishing capabilities. Pre-built native binaries bundled with node-pre-gyp are also included.\n\n## Pre-requisites\n\n- Node.js v14.0.0 or newer\n\n## Installation\n\n    npm install -g @byted-starry/registry-sync\n\n## Usage\n\n### Synchronizing packages from the npmjs.org registry\n\n    registry-sync [options]\n\n    -h, --help               output usage information\n    -V, --version            output the version number\n    --root <path>            Path to save NPM package tarballs and metadata to\n    --manifest <file>        Path to a package-lock.json or yarn.lock file to use as catalog for mirrored NPM packages\n    --localUrl <url>         URL to use as root in stored package metadata (i.e. where folder defined as --root will be exposed at)\n    --binaryAbi <list>       Optional comma-separated list of node C++ ABI numbers to download pre-built binaries for.\n                             See NODE_MODULE_VERSION column in https://nodejs.org/en/download/releases/.\n                             Default value is from the current Node.js process.\n    --binaryArch <list>      Optional comma-separated list of CPU architectures to download pre-built binaries for.\n                             Valid values: arm, ia32, and x64.\n                             Default value is from the current Node.js process.\n    --binaryPlatform <list>  Optional comma-separated list of OS platforms to download pre-built binaries for.\n                             Valid values: linux, darwin, win32, sunos, freebsd, openbsd, and aix.\n                             Default value is from the current Node.js process.\n    --registryUrl [url]      Optional URL to use as NPM registry when fetching packages.\n                             Default value is https://registry.npmjs.org\n    --registryToken [string] Optional Bearer token for the registry.\n                             Not included by default.\n    --dontEnforceHttps       Disable the default behavior of downloading tarballs over HTTPS (will use whichever protocol is defined in the registry metadata)\n    --includeDev             Include also packages found from devDependencies section of the --manifest.\n                             Not included by default.\n    --dryRun                 Print packages that would be downloaded but do not download them\n    --dryRunAndWrite         Like dryRun but will write the packages to target file\n    --syncFromFolder         Synchronize the packages from local folder\n    --packageListPath        Synchronize the packages from packageList file\n    --target                 The registry target, maybe \"verdaccio\"\n\n\nExample:\n\n    registry-sync --root ./local-registry \\\n      --manifest ./package-lock.json \\\n      --localUrl http://localhost:8000 \\\n      --binaryAbi 48,57 \\\n      --binaryArch x64 \\\n      --binaryPlatform darwin,linux\n\nRe-executing `registry-sync` will only download and update files for new package versions.\n\n### Serving the local root folder after synchronization\n\nConfigure a web server to use `index.json` as index file name instead of `index.html`.\nAlso configure `HTTP 404` responses to have an `application/json` body of `{}`.\n\nFor example, for local testing you can run nginx in a container to serve the downloaded packages:\n\n```\n# Create a very simple nginx config\ncat <<EOF >nginx.conf\nserver {\n  listen 8000;\n  server_name localhost;\n\n  location / {\n    root /usr/share/nginx/html;\n    index index.json;\n  }\n\n  error_page 404 @404_empty_json;\n\n  location @404_empty_json {\n    default_type application/json;\n    return 404 '{}';\n  }\n}\nEOF\n\n# Run nginx and serve directory local-registry\ndocker run --rm --name registry -p 8000:8000 \\\n  --volume=\"${PWD}/local-registry:/usr/share/nginx/html:ro\" \\\n  --volume=\"${PWD}/nginx.conf:/etc/nginx/conf.d/default.conf:ro\" nginx:1.19\n```\n\nThen you can install dependencies from the local registry using `npm`\n\n```\nnpm_config_registry='http://localhost:8000' npm install\n```\n\nor using `yarn`\n\n```\nYARN_REGISTRY='http://localhost:8000' yarn install\n```\n\n### Creating a separate lockfile for synchronization\n\nIn some cases `npm` might not include all optional packages that are needed for all platforms to `package-lock.json`, depending on which OS you used to create the lockfile.\n\nIn this case it might be useful to copy the `package.json` that you want to synchronize as a local repository to somewhere else and create a new cross platform `package-lock.json` by running:\n\n```\nnpm install --force --package-lock-only\n```\n\nAfter this you can pass the new lockfile to `registry-sync`.\n\n## Changelog\n\nSee [releases](https://github.com/heikkipora/registry-sync/releases).\n\n## Contributing\n\nPull requests are welcome. Kindly check that your code passes ESLint checks by running `npm run eslint:check` first.\nIntegration tests can be run with `npm test`. Both are anyway run automatically by GitHub Actions.\n","readmeFilename":"README.en.md","gitHead":"77e2dde30ff9ba8f5c907dd39b37023cd92669a2","_id":"@byted-starry/registry-sync@0.1.4-alpha.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-pUdiRnCPNyn53SF316I2DZUq0T4ySmPNazmpQbTL+wBMto3sgLKSMzdUyzMuQHjjA5gi5x5prkVEKu9L2vWJew==","shasum":"0926ee55f5bef926ce3ed9c360f7d185d935607d","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.1.4-alpha.0.tgz","fileCount":15,"unpackedSize":67464,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDcoN9TT5u3Ba4gGCqItlarCjBMOXmekNrGfmW1ar0DwIgHvLn1CsNGO2IfK13XAYCc6XUEhG6CMTfkoYBkrQysrE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinw+QACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrYuQ//YQ1JJWDoEGyKl1v14cvh0yWBJCGzzgiTGcd09fpq2PAwnu/p\r\nMJltTc4t+xLWEsS0UnCtF1Lh1v62sOaLMSdTwfMZqb4xGQXEdHnL0bg1PyIx\r\no1LhJe0wRaBnStwoRLX2Md7aQah1Z33hgYyapgHhMI5KIW+x0EqptdOhDqch\r\n5G+3eyDoVpi52gEE+szNjxE7ISPNMY+g2reYTzPYmAP1/vYL2m0P+mVzUbuQ\r\nUUYQHv44eCdM6LSc1pH2dfB4A5n16hk6i+YeLZ/Ecb0xxSRTEin2pgbaBH5n\r\n0V2/MPWsLUb34pfVGvJeV0XYJcbvHLvu14XAjyUfR43YZs9hvSsWHRy4TPwQ\r\nbSFjFTcZueKhxvWWPUA1HBImFxg3EtHAaBGu+Bcgpt5gInAaikWKjIA04ikf\r\nfa38yEDJ2Cb6S6y5iEj0diUkP8+Rr0dVl9zqLrsz7WaP/xT3FKzPP3+GdWyH\r\nRiJgo8cK5e7qQqEs9YHI8yc+i2QtbTLvG8RTUI1sDEW6EQbNZMCpVbro+/yC\r\n2rY8rP3vQO6/hovAUAMbLevck6zxIBiwLGDYeFKTnRUJnXBSI/scVxXTuH5D\r\np2BBlBjW97LamFXKt0mlW8+PArKspni7ki5FFdc+vq2vn9xg0sCoE2ykzGdw\r\nFoSbY0V0TfI5gpc+uS3w6Oz/OvXjUVWX2+o=\r\n=7gih\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.1.4-alpha.0_1654591376379_0.5904307766728312"},"_hasShrinkwrap":false},"0.1.4":{"name":"@byted-starry/registry-sync","version":"0.1.4","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","get-stream":"^6.0.1","minio":"^7.0.28","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"gitHead":"77e2dde30ff9ba8f5c907dd39b37023cd92669a2","_id":"@byted-starry/registry-sync@0.1.4","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-Dw1sk8PbMf00nGxgIt7JLnEyuTmLx0CK5M2RT11DLekDXZThr/oGPvrhhduCmPGiQ7pgKKA5d1YgfEGxuxbcXg==","shasum":"d014ff2518f5ef424c94c560cd5b0f8ebf1426cb","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.1.4.tgz","fileCount":15,"unpackedSize":67456,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCD6s6bYwAjtqFDLVH6Hw71O7WNgh+h0gT+W1kWB7hCRwIgNa+a/YAFwK2317+iETMHoE8MIGvgiaNld7oZls0PPAU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiny08ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr3zg/+OrHGGg9MWYuqR+9bAtMeWW8oVzs6sTtA/GVFJ+kwO9cBGvEL\r\ntnTsVJbpXpUTMJqXFCdabusMs6wQPsnunsav7jxS3qVTWkIZPYJf8VmK1K+t\r\ndBTqa7BzAV/9BZAwijTOpAgNCURfmwuUvEaOOn7tSCzqHce8zg6FPirpkVqO\r\n+C7Hdcs5tAjUIZ3ZexQp6RpnuWPe1E0dxIxc+Z2hcQMxpSvYJ/oSSWml3fWe\r\n7eyOUqjVzMDBEQnVopHHe9HpIEv2tOopM0d6PWMvZ/GnApLDbprMku78bQzN\r\ni3EEm0Kmpv+N6P0XJSBiKFMFR1/k5I7yc/oAFUZDzyWdLwX9aKSd5rb/v7x+\r\n8dhwELunVPM53m+Qi+46kTZvJfPWm54WcspvYBAzNPVia1rwkcdaXUL11fwC\r\nvXbhTdzTLrNBfZwg7FHWdduFjzXKQjtZyojcQhYFFY0CTfIxq1XZnnaTwuRx\r\nb/4xsEPLy1WOxJYe0tmh6S87MbRDPJZt6QpFslB+v2hoQvLMB3ZPmjt7IE6H\r\n7E3TV5sTNUmBoHlfIeh6Tqd83VZoCKkZzjF4zcWVb6jbuU8liGhTlhqWRa9S\r\nNewVtr92iPhLT/zRZJeINVG8Dl12JnMdhD22Xn1ni+ZbyVkgG06E4flqFq7U\r\n6UVoADqN9/zD8daCb7FfrH7JXOZYZ6V75cI=\r\n=NsXH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.1.4_1654598972550_0.3109775957848"},"_hasShrinkwrap":false},"0.1.5-alpha.0":{"name":"@byted-starry/registry-sync","version":"0.1.5-alpha.0","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","get-stream":"^6.0.1","minio":"^7.0.28","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"readme":"# @byted-starry/registry-sync\n\n> Based on open source project: https://github.com/heikkipora/registry-sync\n\n<div align=\"center\">\n\n[简体中文](./README.md) | English\n\n</div>\n\nSynchronizes selected NPM packages from a remote NPM registry (such as https://registry.npmjs.org) to a local folder.\nThe local copy can then be used as a simple private NPM registry without publishing capabilities. Pre-built native binaries bundled with node-pre-gyp are also included.\n\n## Pre-requisites\n\n- Node.js v14.0.0 or newer\n\n## Installation\n\n    npm install -g @byted-starry/registry-sync\n\n## Usage\n\n### Synchronizing packages from the npmjs.org registry\n\n    registry-sync [options]\n\n    -h, --help               output usage information\n    -V, --version            output the version number\n    --root <path>            Path to save NPM package tarballs and metadata to\n    --manifest <file>        Path to a package-lock.json or yarn.lock file to use as catalog for mirrored NPM packages\n    --localUrl <url>         URL to use as root in stored package metadata (i.e. where folder defined as --root will be exposed at)\n    --binaryAbi <list>       Optional comma-separated list of node C++ ABI numbers to download pre-built binaries for.\n                             See NODE_MODULE_VERSION column in https://nodejs.org/en/download/releases/.\n                             Default value is from the current Node.js process.\n    --binaryArch <list>      Optional comma-separated list of CPU architectures to download pre-built binaries for.\n                             Valid values: arm, ia32, and x64.\n                             Default value is from the current Node.js process.\n    --binaryPlatform <list>  Optional comma-separated list of OS platforms to download pre-built binaries for.\n                             Valid values: linux, darwin, win32, sunos, freebsd, openbsd, and aix.\n                             Default value is from the current Node.js process.\n    --registryUrl [url]      Optional URL to use as NPM registry when fetching packages.\n                             Default value is https://registry.npmjs.org\n    --registryToken [string] Optional Bearer token for the registry.\n                             Not included by default.\n    --dontEnforceHttps       Disable the default behavior of downloading tarballs over HTTPS (will use whichever protocol is defined in the registry metadata)\n    --includeDev             Include also packages found from devDependencies section of the --manifest.\n                             Not included by default.\n    --dryRun                 Print packages that would be downloaded but do not download them\n    --dryRunAndWrite         Like dryRun but will write the packages to target file\n    --syncFromFolder         Synchronize the packages from local folder\n    --packageListPath        Synchronize the packages from packageList file\n    --target                 The registry target, maybe \"verdaccio\"\n\n\nExample:\n\n    registry-sync --root ./local-registry \\\n      --manifest ./package-lock.json \\\n      --localUrl http://localhost:8000 \\\n      --binaryAbi 48,57 \\\n      --binaryArch x64 \\\n      --binaryPlatform darwin,linux\n\nRe-executing `registry-sync` will only download and update files for new package versions.\n\n### Serving the local root folder after synchronization\n\nConfigure a web server to use `index.json` as index file name instead of `index.html`.\nAlso configure `HTTP 404` responses to have an `application/json` body of `{}`.\n\nFor example, for local testing you can run nginx in a container to serve the downloaded packages:\n\n```\n# Create a very simple nginx config\ncat <<EOF >nginx.conf\nserver {\n  listen 8000;\n  server_name localhost;\n\n  location / {\n    root /usr/share/nginx/html;\n    index index.json;\n  }\n\n  error_page 404 @404_empty_json;\n\n  location @404_empty_json {\n    default_type application/json;\n    return 404 '{}';\n  }\n}\nEOF\n\n# Run nginx and serve directory local-registry\ndocker run --rm --name registry -p 8000:8000 \\\n  --volume=\"${PWD}/local-registry:/usr/share/nginx/html:ro\" \\\n  --volume=\"${PWD}/nginx.conf:/etc/nginx/conf.d/default.conf:ro\" nginx:1.19\n```\n\nThen you can install dependencies from the local registry using `npm`\n\n```\nnpm_config_registry='http://localhost:8000' npm install\n```\n\nor using `yarn`\n\n```\nYARN_REGISTRY='http://localhost:8000' yarn install\n```\n\n### Creating a separate lockfile for synchronization\n\nIn some cases `npm` might not include all optional packages that are needed for all platforms to `package-lock.json`, depending on which OS you used to create the lockfile.\n\nIn this case it might be useful to copy the `package.json` that you want to synchronize as a local repository to somewhere else and create a new cross platform `package-lock.json` by running:\n\n```\nnpm install --force --package-lock-only\n```\n\nAfter this you can pass the new lockfile to `registry-sync`.\n\n## Changelog\n\nSee [releases](https://github.com/heikkipora/registry-sync/releases).\n\n## Contributing\n\nPull requests are welcome. Kindly check that your code passes ESLint checks by running `npm run eslint:check` first.\nIntegration tests can be run with `npm test`. Both are anyway run automatically by GitHub Actions.\n","readmeFilename":"README.en.md","gitHead":"7a815dcd0df3b064adf53aa6c315808c7b727b3a","_id":"@byted-starry/registry-sync@0.1.5-alpha.0","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-PCuuAR5PvGdkuyJJlYzkOuhSNHwC0XHNqTsoqOJK6/tO/moE8/RchBQcaMMBZr3//Bk3nBOixpaXo7j/p6Bs2g==","shasum":"b256fdba73b05678a81ea53824275b198a9cb3f0","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.1.5-alpha.0.tgz","fileCount":15,"unpackedSize":68687,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDdlttyAGOBHDvbtiCbzOeZHEMasIlunXCcPzt56McyrAiEA18LKP0OmSaVofDBqLoAkt4EvVmWIZ9C7Dy1U6UdLCpU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjAInYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrEmg//dZBw82ZxGl8mGy8894N/tmN+t6lOLGXPQ5j50hgynyOkmO7W\r\nLMEIp7gQWiinnAOZWa8G1f62xe9j/hMlAR8McG8n+XyY6WW941NugqYYYJTP\r\nPXeOUhppBXVKQSj1DcrYDCHNQQQ24iWdDD8ZDRZKQASm4Cj+rhUJOqojkPMa\r\npSOYI5+mirm76dSpBaC4U98UGICVQ4Al+cfoVMDhwNjuex9gV7oRS1BU5nRF\r\nH91tVlt9JryUgSZSULu5/PJT7QODh/AIJDvJrjYkPS2YbnxZuFalEEPbUDrb\r\nOTnSzwiiKUthfKg4Kzdf7sK+6r3Hvn1ls/LrkX7zi+p2bqCvOGkIfsfJ+tdr\r\n8OBQCvSOBIMj25tdMNY8X6WlH7nNFsaOYp+3rtMdCFp686Xxco+AnXzY+m0m\r\nBh5mBv7SVVdd6oY0nfxxE9X3AtbFTNCHBVldyGWeZuLOFPPeulqOgP0u7uaD\r\n37dnCjvABz8ZNVt5+QjWYY/M0eW+jppErnYRKA/chYVWOzTXULSpZKcqgMuG\r\nkqh/Ny4u3xM1AXzXxTNje/C7dm16rGqQrtNOtaEtWIq4idHaWdOw7aD7AaJI\r\nRi4ohpIvgk2DFubtdGxRBwz5O92oCfTp3QF0d4TIekxaE+l5Pw0R89UdUvYZ\r\nqZOqOZ63gdrQqdpZJ8VV4zRUYzyWNI81me0=\r\n=c8V3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.1.5-alpha.0_1660979672682_0.2352520441903203"},"_hasShrinkwrap":false},"0.1.5-alpha.1":{"name":"@byted-starry/registry-sync","version":"0.1.5-alpha.1","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","get-stream":"^6.0.1","minio":"^7.0.28","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"readme":"# @byted-starry/registry-sync\n\n> Based on open source project: https://github.com/heikkipora/registry-sync\n\n<div align=\"center\">\n\n[简体中文](./README.md) | English\n\n</div>\n\nSynchronizes selected NPM packages from a remote NPM registry (such as https://registry.npmjs.org) to a local folder.\nThe local copy can then be used as a simple private NPM registry without publishing capabilities. Pre-built native binaries bundled with node-pre-gyp are also included.\n\n## Pre-requisites\n\n- Node.js v14.0.0 or newer\n\n## Installation\n\n    npm install -g @byted-starry/registry-sync\n\n## Usage\n\n### Synchronizing packages from the npmjs.org registry\n\n    registry-sync [options]\n\n    -h, --help               output usage information\n    -V, --version            output the version number\n    --root <path>            Path to save NPM package tarballs and metadata to\n    --manifest <file>        Path to a package-lock.json or yarn.lock file to use as catalog for mirrored NPM packages\n    --localUrl <url>         URL to use as root in stored package metadata (i.e. where folder defined as --root will be exposed at)\n    --binaryAbi <list>       Optional comma-separated list of node C++ ABI numbers to download pre-built binaries for.\n                             See NODE_MODULE_VERSION column in https://nodejs.org/en/download/releases/.\n                             Default value is from the current Node.js process.\n    --binaryArch <list>      Optional comma-separated list of CPU architectures to download pre-built binaries for.\n                             Valid values: arm, ia32, and x64.\n                             Default value is from the current Node.js process.\n    --binaryPlatform <list>  Optional comma-separated list of OS platforms to download pre-built binaries for.\n                             Valid values: linux, darwin, win32, sunos, freebsd, openbsd, and aix.\n                             Default value is from the current Node.js process.\n    --registryUrl [url]      Optional URL to use as NPM registry when fetching packages.\n                             Default value is https://registry.npmjs.org\n    --registryToken [string] Optional Bearer token for the registry.\n                             Not included by default.\n    --dontEnforceHttps       Disable the default behavior of downloading tarballs over HTTPS (will use whichever protocol is defined in the registry metadata)\n    --includeDev             Include also packages found from devDependencies section of the --manifest.\n                             Not included by default.\n    --dryRun                 Print packages that would be downloaded but do not download them\n    --dryRunAndWrite         Like dryRun but will write the packages to target file\n    --syncFromFolder         Synchronize the packages from local folder\n    --packageListPath        Synchronize the packages from packageList file\n    --target                 The registry target, maybe \"verdaccio\"\n\n\nExample:\n\n    registry-sync --root ./local-registry \\\n      --manifest ./package-lock.json \\\n      --localUrl http://localhost:8000 \\\n      --binaryAbi 48,57 \\\n      --binaryArch x64 \\\n      --binaryPlatform darwin,linux\n\nRe-executing `registry-sync` will only download and update files for new package versions.\n\n### Serving the local root folder after synchronization\n\nConfigure a web server to use `index.json` as index file name instead of `index.html`.\nAlso configure `HTTP 404` responses to have an `application/json` body of `{}`.\n\nFor example, for local testing you can run nginx in a container to serve the downloaded packages:\n\n```\n# Create a very simple nginx config\ncat <<EOF >nginx.conf\nserver {\n  listen 8000;\n  server_name localhost;\n\n  location / {\n    root /usr/share/nginx/html;\n    index index.json;\n  }\n\n  error_page 404 @404_empty_json;\n\n  location @404_empty_json {\n    default_type application/json;\n    return 404 '{}';\n  }\n}\nEOF\n\n# Run nginx and serve directory local-registry\ndocker run --rm --name registry -p 8000:8000 \\\n  --volume=\"${PWD}/local-registry:/usr/share/nginx/html:ro\" \\\n  --volume=\"${PWD}/nginx.conf:/etc/nginx/conf.d/default.conf:ro\" nginx:1.19\n```\n\nThen you can install dependencies from the local registry using `npm`\n\n```\nnpm_config_registry='http://localhost:8000' npm install\n```\n\nor using `yarn`\n\n```\nYARN_REGISTRY='http://localhost:8000' yarn install\n```\n\n### Creating a separate lockfile for synchronization\n\nIn some cases `npm` might not include all optional packages that are needed for all platforms to `package-lock.json`, depending on which OS you used to create the lockfile.\n\nIn this case it might be useful to copy the `package.json` that you want to synchronize as a local repository to somewhere else and create a new cross platform `package-lock.json` by running:\n\n```\nnpm install --force --package-lock-only\n```\n\nAfter this you can pass the new lockfile to `registry-sync`.\n\n## Changelog\n\nSee [releases](https://github.com/heikkipora/registry-sync/releases).\n\n## Contributing\n\nPull requests are welcome. Kindly check that your code passes ESLint checks by running `npm run eslint:check` first.\nIntegration tests can be run with `npm test`. Both are anyway run automatically by GitHub Actions.\n","readmeFilename":"README.en.md","gitHead":"7a815dcd0df3b064adf53aa6c315808c7b727b3a","_id":"@byted-starry/registry-sync@0.1.5-alpha.1","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-HoqBOZlAl7UxaoydiAoefguJ/pInMRuIiiU6bFj21HPspif7bkLHlgAtIHRK1i2OacaWhiPxowtUbhpa6xKW/Q==","shasum":"8c4f65aeafa22355bca838693b0c1690ff7798bf","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.1.5-alpha.1.tgz","fileCount":15,"unpackedSize":68688,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGyIF49XKo/K8lKnBGgFRb/raQVLlWbk7ToRbwbtVe68AiEAykyH20HiOPhb0hko7P66OiJOd2Gki2JxOClEzVQ3cwY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjAJC5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpj4A//TZ7cQbs1HFb3pAADZVb25XXOfn03wK6JhCR3hB/uiVFD/WTc\r\nhWQe3hcke7/CYIc9gTi+tC1bT3b9l/LUkZoCzgQ42aHWULoRy12OulWMYrov\r\nuhpZUhH8pW+LMOxTEv7hAHmvnnfzRAGxDdfI139BkwqXl5zAp9RYD4prPd44\r\nYB9gYJJV6e7HgHoBmTmX+h92xjV/PxktCJiZ646xTuz8kDUIY7RX+/4+FdNI\r\ngbl1sxHVV2P7r1tiXL+7cBljLmjnaYrDMF61jRoDzM9QGb4dPQzZTK1Qvbqx\r\n07e6FwzF3EOh8mTYpqDwdEekgTQlu1I/2mkSnUC9Jr9QZ+QVgoA1MWkxCle8\r\nemGOzHviNyGt1yhmxlgNoV7/yCIiGl4fpDlBLMTlT9N7w8+c0AjFRA7pijxM\r\nr8x3cWguNtPK47XXxFwvHqi2bAGwICKLmjIul4M0pyl7hJIWb5miThOvCbul\r\ncBuvai1Fs2WqVEtzcYfpwQ67iHggNbDqJs7caoAgYO2/z18shnVKOM68XTAh\r\nYeVIw3GjrVHQrvlAg3F4M8UyH28/E7ELEIIJ+bmlYTadzCoAly+ubKmTLIYi\r\nX29cDZTzklxaNreTkY8je1mE615EHmKwUWF4WHgWfs2rLyBOKc30a/bGvOtu\r\nVxqdpD70II+MRkE/YHQoNqyN+agaPOVdK1o=\r\n=uynl\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.1.5-alpha.1_1660981432862_0.12888357674387718"},"_hasShrinkwrap":false},"0.1.5-alpha.2":{"name":"@byted-starry/registry-sync","version":"0.1.5-alpha.2","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","get-stream":"^6.0.1","minio":"^7.0.28","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"readme":"# @byted-starry/registry-sync\n\n> Based on open source project: https://github.com/heikkipora/registry-sync\n\n<div align=\"center\">\n\n[简体中文](./README.md) | English\n\n</div>\n\nSynchronizes selected NPM packages from a remote NPM registry (such as https://registry.npmjs.org) to a local folder.\nThe local copy can then be used as a simple private NPM registry without publishing capabilities. Pre-built native binaries bundled with node-pre-gyp are also included.\n\n## Pre-requisites\n\n- Node.js v14.0.0 or newer\n\n## Installation\n\n    npm install -g @byted-starry/registry-sync\n\n## Usage\n\n### Synchronizing packages from the npmjs.org registry\n\n    registry-sync [options]\n\n    -h, --help               output usage information\n    -V, --version            output the version number\n    --root <path>            Path to save NPM package tarballs and metadata to\n    --manifest <file>        Path to a package-lock.json or yarn.lock file to use as catalog for mirrored NPM packages\n    --localUrl <url>         URL to use as root in stored package metadata (i.e. where folder defined as --root will be exposed at)\n    --binaryAbi <list>       Optional comma-separated list of node C++ ABI numbers to download pre-built binaries for.\n                             See NODE_MODULE_VERSION column in https://nodejs.org/en/download/releases/.\n                             Default value is from the current Node.js process.\n    --binaryArch <list>      Optional comma-separated list of CPU architectures to download pre-built binaries for.\n                             Valid values: arm, ia32, and x64.\n                             Default value is from the current Node.js process.\n    --binaryPlatform <list>  Optional comma-separated list of OS platforms to download pre-built binaries for.\n                             Valid values: linux, darwin, win32, sunos, freebsd, openbsd, and aix.\n                             Default value is from the current Node.js process.\n    --registryUrl [url]      Optional URL to use as NPM registry when fetching packages.\n                             Default value is https://registry.npmjs.org\n    --registryToken [string] Optional Bearer token for the registry.\n                             Not included by default.\n    --dontEnforceHttps       Disable the default behavior of downloading tarballs over HTTPS (will use whichever protocol is defined in the registry metadata)\n    --includeDev             Include also packages found from devDependencies section of the --manifest.\n                             Not included by default.\n    --dryRun                 Print packages that would be downloaded but do not download them\n    --dryRunAndWrite         Like dryRun but will write the packages to target file\n    --syncFromFolder         Synchronize the packages from local folder\n    --packageListPath        Synchronize the packages from packageList file\n    --target                 The registry target, maybe \"verdaccio\"\n\n\nExample:\n\n    registry-sync --root ./local-registry \\\n      --manifest ./package-lock.json \\\n      --localUrl http://localhost:8000 \\\n      --binaryAbi 48,57 \\\n      --binaryArch x64 \\\n      --binaryPlatform darwin,linux\n\nRe-executing `registry-sync` will only download and update files for new package versions.\n\n### Serving the local root folder after synchronization\n\nConfigure a web server to use `index.json` as index file name instead of `index.html`.\nAlso configure `HTTP 404` responses to have an `application/json` body of `{}`.\n\nFor example, for local testing you can run nginx in a container to serve the downloaded packages:\n\n```\n# Create a very simple nginx config\ncat <<EOF >nginx.conf\nserver {\n  listen 8000;\n  server_name localhost;\n\n  location / {\n    root /usr/share/nginx/html;\n    index index.json;\n  }\n\n  error_page 404 @404_empty_json;\n\n  location @404_empty_json {\n    default_type application/json;\n    return 404 '{}';\n  }\n}\nEOF\n\n# Run nginx and serve directory local-registry\ndocker run --rm --name registry -p 8000:8000 \\\n  --volume=\"${PWD}/local-registry:/usr/share/nginx/html:ro\" \\\n  --volume=\"${PWD}/nginx.conf:/etc/nginx/conf.d/default.conf:ro\" nginx:1.19\n```\n\nThen you can install dependencies from the local registry using `npm`\n\n```\nnpm_config_registry='http://localhost:8000' npm install\n```\n\nor using `yarn`\n\n```\nYARN_REGISTRY='http://localhost:8000' yarn install\n```\n\n### Creating a separate lockfile for synchronization\n\nIn some cases `npm` might not include all optional packages that are needed for all platforms to `package-lock.json`, depending on which OS you used to create the lockfile.\n\nIn this case it might be useful to copy the `package.json` that you want to synchronize as a local repository to somewhere else and create a new cross platform `package-lock.json` by running:\n\n```\nnpm install --force --package-lock-only\n```\n\nAfter this you can pass the new lockfile to `registry-sync`.\n\n## Changelog\n\nSee [releases](https://github.com/heikkipora/registry-sync/releases).\n\n## Contributing\n\nPull requests are welcome. Kindly check that your code passes ESLint checks by running `npm run eslint:check` first.\nIntegration tests can be run with `npm test`. Both are anyway run automatically by GitHub Actions.\n","readmeFilename":"README.en.md","gitHead":"7a815dcd0df3b064adf53aa6c315808c7b727b3a","_id":"@byted-starry/registry-sync@0.1.5-alpha.2","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-95QDyr/YiSYKsdtNF1SJJvDk+Du4fQGgar+UVjmUhzRkwx+mWmT01xn2DninS8b/O8nk1tu/rdBk82bVB1bhDA==","shasum":"6c4601b9f5346cceba1464e891b30caf17b8baa7","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.1.5-alpha.2.tgz","fileCount":15,"unpackedSize":68689,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGXxVE7A/jyQEgE9OrfRAqQ0tPkSx+hDP/DqtBBvwlfrAiBTi+dZjC/m08AT1X3q9aOaSQhcB11VcZNPe0wIHUZ/qQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjAJHFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp16Q/+J8J2180Q700tD/FZ19cSyhvuJoS13BpNjMy7vOQXDSNkCleJ\r\nAA9tuTkVyTNUbhMY3RM/9sJOXtZ/NOqoq+CiDiYGjw+91Qj3LgXKfVMmgnzL\r\nobVVZRbTXmUpGm32I9gtZuXP/hTs9P0cXpKODTmKON9flOVO1nTpvfxLV7/O\r\n7F2yWHVELGHqUavIrD82d8FfxruUwVLiCC97uwhYocMfJRydv0T6fA1IgTI9\r\nDgxVMLH7/kV6d2spwyct8ltDQXTrbx522qjcZFMN7y+CqxAGunP8ciCgZ+6A\r\nTa+XEu2xDVfD0s4VmGOjvTOYsRNfvjlxm3iQXtbNqdkxlRgKN3dXSYRmgnBf\r\nvAD3sjrOOo++eYkBk87qHhCJdCfYO7BKJF4pt2S3Tf0ADB5rNDM3nI37UEOj\r\nI2YoDKPWvf8b4QXLVZUNlOCOyX20OBlTFkdJ4beWlJwtCJvA84rPdxbZnN0C\r\nRpA5zim+WWCgZfkQJYz5b+lIr6pKl/lzO/IBQR/hUDPGCHj6OucSIpBf3LPP\r\nUKlGcL5GGamPzxQGuIpmEfrGZGUYruK5mt+eDeDWIpFHeayOMJEpTEZMEmlK\r\nggk4ZWkvmzZsMi+tW78SK+xpi/wmd3V2ZwI3eDydjXuJj7eSJ31MBVyaD5NJ\r\nsD53S4ka5iicKVJQvojTtBLHRrLdOeIIqHU=\r\n=Q0AS\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.1.5-alpha.2_1660981700827_0.2686384554763743"},"_hasShrinkwrap":false},"0.1.5":{"name":"@byted-starry/registry-sync","version":"0.1.5","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","get-stream":"^6.0.1","minio":"^7.0.28","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"gitHead":"cd09e6eeaffd65159586d5430dbbf7b48f61894d","_id":"@byted-starry/registry-sync@0.1.5","_nodeVersion":"15.1.0","_npmVersion":"7.0.8","dist":{"integrity":"sha512-tZjJACWflOXAA+BSVdseTdqdAtuwpzWsUUI1arAtmcEGlWML1QKfjfaXwXemPO+MXXBxWky63DVgc9cPrSh8mw==","shasum":"ecc38db691c4587c98eee779459b17b211b26725","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.1.5.tgz","fileCount":15,"unpackedSize":68706,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhJYgqGQ/tjsYCn83kRXTZX+3fhE5cPFYaCYqjGbp1egIhAIK8i4ed41MKxuBKb5yfwh8BV6KWUNHHtZuaIaJ+qTSF"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjA10LACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrhRA//WO8EXhbielZtNMukT/OoNaGd/4vt4ILykgSs4fJqRulXHTVm\r\n/E34OewtuGa8VL1Tdwi+T4lZaw6pStIRNhfXCm5HSu+V6YtNS6tnwwpUupo1\r\nDSz1oEpH4ObOHR9L2jCUXyYLYcNxd2HZ0DDpM3LNJFLIdTRWYVOaL2bbKCZp\r\nIpkcDWoPZvkI0hq0MAHuDgFpHxlHaZ1fzfJ+VGjI4TE/lLAlfQaUuRXJJWKO\r\neJHKLP8uDU6GIkgT2rzsjCWTpw0TX8B8o1XfLI2MGqFa/6uVfnEvYXgEq963\r\nlq3d3oeHu5evGhKHmMWyNHprTZcbCofljET3XOP/J5I7jDl67rMJUYz3PsJ8\r\nvFqdhReHCSdc567+c+8PqjylTFl5YofSNWpHz0X5FI8nSjuPMMI6c3MgJ/0I\r\nei7UZrKbvo2fbI9UeI/H7GP7ofW0SP071cH64NtWHpYNsJ+zJ8X+0aayCw58\r\nsePYe3MFMtBf7CGlmxUx6p1bPUaoHPC32zRgkW7z+xYLHtWx70qVQ9y1r3A2\r\n/DP0iZ4rdZDDxoRQv4HQHvyvRg1DdrLuRB7fUizx/3cNfCccG79j6xF1aPZq\r\n/MCha7zPnBVjM76K+4Qh0a+n2WsAm4/hFhRmgguFkgQ5P++Q7OuWqESnu5aj\r\nX96Tq1brC5IJF9xcx/PH9hK74nxYNx7wEoQ=\r\n=cfgP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.1.5_1661164810917_0.7014125328839389"},"_hasShrinkwrap":false},"0.1.6":{"name":"@byted-starry/registry-sync","version":"0.1.6","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","get-stream":"^6.0.1","minio":"^7.0.28","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"gitHead":"0b070620c9a40c5810b4f22827d9072baaf5968c","_id":"@byted-starry/registry-sync@0.1.6","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Eq0jd8OlIjJ7YbNJbAU3ilXNvIhmPymkar5HKVmMNageCjy9tn4lbgWn25KmvHW0YDo96XXdXPp1j7WXODQ7MQ==","shasum":"f38d18488461e80cfe8a2d5ce3e807204dbfff2c","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.1.6.tgz","fileCount":15,"unpackedSize":68706,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCxUFk8GlIgreHqcd6m6JVAFQTm7krkzy03ozRFmRG7AIgWaMvlx/jO1M6aDctVBxTTDTf2Pc5Uhx0LO3Lj+v935w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGfTEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpDPA//cTwUaIoH+AulZ+VCxRXgSSo5khEMyZTW7ppMZuPqSB+yLad/\r\nl3BCtI8HTgsBfyeQCr+OxVnX5KBuTLBYzoMfxCPMP+wPTv2d1qWNTZirp6XD\r\ngRdjOoOESuM6u+6yBNEJbTdSfw3oCrdym3kvfAgJbRdxHaxU2jS4hrDVeNWk\r\njgqD6kJkHZSHdwvkWrRaDWqk8i/TVVqPvnXnatHyGr+GJX/NnpAcjJcymkjm\r\nhgYsMpyEXdutob0Nya1cOxPLsINY0yqZ7CbBQ+b+I9KujoZd0G3RJ4I4aRv4\r\nwWwWXq7w9iHyEm3q7SKrNveVuHPHX+E+REVFJJwUFix/Mowfo3oCY4FaXvIJ\r\nTE3nRXdz3EYAigFpHen3eI56hhq8bbI++xmv5/QVq4/DQ/u3j67NLU33pP8B\r\n4Yo4Bxz9/QTQHBtV15uoXBTH0qh+SaHI2Hr7Ao/E4RAJxVNDELDWnQPWqc+w\r\n6tWjGOwRBlf5CfoB+0i7S4Fk6tIZk0B3Qn3POKZEAobZKmON+bSyWKrNl/fH\r\n5bfeslU9uxVNqRJWqRiy4QNUraLD8lKrRhe2Te4L/49kB2UcDLHXmfCDeGAu\r\n+1oQXPJlMizvEHTz5CaLGCkM8nrI6jNHv5RZtvfT5UYhR1bru+Z50T5M8Ka8\r\noIafXpw5fYyEonvwv/ukLkdKZJ1UCqNZEno=\r\n=6Nq3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.1.6_1662645443967_0.20912631109954294"},"_hasShrinkwrap":false},"0.1.7":{"name":"@byted-starry/registry-sync","version":"0.1.7","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","get-stream":"^6.0.1","minio":"^7.0.28","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"gitHead":"0b070620c9a40c5810b4f22827d9072baaf5968c","_id":"@byted-starry/registry-sync@0.1.7","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-4gmRr8TkmIaqNoaqjBo6nUex3t+prmFDWSWd0Vj3M1vpNQx3mE8hy+nY2UP5ECmSOb59lWbk7IJgZL72fEMbqg==","shasum":"90cab587b5851350223f8135a921cbbac0846772","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.1.7.tgz","fileCount":15,"unpackedSize":68706,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDo7G2Eds8EmQa7oXEvTKMjcXxrBjdAZ1UpsgdN8M6VGAIhAOCxLkjRapWDlIKz/UtILO4XzF0oXYLQA5A679pOLc78"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjMrsmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpLeA/8Dy93fUK+TPoPCHIXYAwcEwEE+q1gOHZaU3+07IcKDbGzzBLX\r\n+FDyJnFu4CgvPQmL1B2BwkRQBB4smN+kLkBGYLR4i69VK18BmnIqJ6UMvNld\r\nJa6+W1Vc0VMy4tZ2/mnXwxo/4DMJvFGQYY04awr5FG+iq6CRJsl5SUOVdqXE\r\n02kjYP+792NKxyAci+vLpe6gnpDuPClYx2PWqrEvxu+42NIH27Nn/qxh0TGR\r\n/w4/3QDDH5mF3AQv53qMElNyUr6fkSs6I+QnWEhlQNWWzh+tVYXKYLGWGbzp\r\nTeH7B8ujOmAzz5uGrJelBNJwJaJclNTTStd+tgbbS6CxAAB2ZbzbMeM0UNIX\r\nfIzRTzuciizHcLnSFMHn2rUgdsEMmaR2KFRBiyB3E88Jtdtd9QXe56vjVUqF\r\n2ubJvtCjpkRN/7MdQDoqeBImgrXfe1d5wQqmAeADIXawInHbn+m0YumpNrbA\r\nm+0fNPL50GmEi8g5X23etW+Jouonk5i3NO7MHf8WOF4awaJy36C208ibIlPB\r\nHbJNzKrRoCoZOTE2CUsD8XxpJXSRXmJBHr8iwMMooUBmDAZjk2e0SDcX+72H\r\no6hz2JhMaJ7j7/mQ0o/GzynVMp33VNc+HkL6Wt9BwQbolBjMm6+HPguv9rRP\r\n3XH89U83CjeDBDya0CCMdbpnlolzq/O0rus=\r\n=Vj99\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.1.7_1664269094258_0.12240398966908805"},"_hasShrinkwrap":false},"0.1.8":{"name":"@byted-starry/registry-sync","version":"0.1.8","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@pnpm/lockfile-file":"^5.3.5","@pnpm/lockfile-utils":"^4.2.5","@pnpm/logger":"^4.0.0","@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","get-stream":"^6.0.1","minio":"^7.0.28","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"gitHead":"ad203a0be6920832a83367acc976624ce555b962","_id":"@byted-starry/registry-sync@0.1.8","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-25cBpVFUpz4dZJmPslxPsNUvFT9cFf+uVKnh0sbVdKunbItxhwbYJrHsDqYoMnS8t/JDv1OhcfiwdqsTluMEQw==","shasum":"29ad946496c64cf68012fce0630bc762856337f1","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.1.8.tgz","fileCount":17,"unpackedSize":74128,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEZm+x4WQDTs7ZDs4Eb0+vB1m4e31snHx5BkThLroQTqAiEA5+n8iDxPEwenQiiJR7oyWlP+F0EwJQ2YMxAvS9FrnDA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNUO/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoodQ/5AaaR2UtznRbKioLiO7n0bzkGWsuwYSzw39+wNPzzyiUdI/Tq\r\nOoypmZc4H06WsX2JeMGqaxc4xDbJ0to06krnCgWVRO7DvF2Y/md5LJJ5uFVh\r\nVHsSt0pE71vd/a17kDj0quZzxy7xsbUK+9Xk7vKO0Iw9v8EaAICHVPUrSDNm\r\nZuwFnj9hAQN0QICGFHjhFq4aowPzzSbGHw2nHQZm8G2RtePqfr6clvmKFPVJ\r\nYgtAfZJ/dxo+EO+LEpw4F2gmOBH6U0bxltm6ccsviZJJTuQR4Mi/57mRPMKQ\r\nEwbJF7rPw5KI71O+wVa7Szdr5PyGKkz2zT2sb6I1I2b1ii2+mRuqfybU65uP\r\noHJqBelJHu8wmTDrTbeVtRUfK6PPX7P3N278ZcGQ3wTSBFnNfY0jWMPyl6Nu\r\nL/pDnYPYGc/V4AjcUdJuv/Ayb12/8+kaQzcrc0kC6l0QFBhlsXH11VjHMtpw\r\nLw50a3XSIohzhc41YwCkegg7jUdwiYo2IWYDdfMk9mCb6Xsx2r6QMW4HsGFe\r\nCDus0LT9sgAu5KObhvTBXmOeB0TmxYpseLzw7IQwxaxtHzfjrmB3p7gxLHQ0\r\nr8puLOz/H7myszWNX7TlIV9LJSpvIklgNaRgs5L2ZGhejsDhWIRQ2dDDEFS6\r\naNeTg4IL4+M7IOWLTh/wmXnnbA+rKsL3XH4=\r\n=PoDz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.1.8_1664435135408_0.8597625629361252"},"_hasShrinkwrap":false},"0.1.9":{"name":"@byted-starry/registry-sync","version":"0.1.9","description":"synchronize a remote npm registry for private use","bin":{"registry-sync":"bin/sync"},"scripts":{"build":"./build-npm","dev":"nodemon --watch src/**/* -e ts --exec npm run build","prettier":"prettier --write .","prettier:check":"prettier --check --loglevel warn .","eslint":"eslint --fix --format=codeframe --ext .ts .","eslint:check":"eslint --max-warnings=0 --format=codeframe --ext .ts .","lint-staged":"lint-staged --verbose","test":"mocha -r ts-node/register --timeout 120000 test/*.ts"},"author":"","license":"MIT","dependencies":{"@pnpm/lockfile-file":"^4","@pnpm/lockfile-utils":"^3","@pnpm/logger":"^4.0.0","@yarnpkg/lockfile":"1.1.0","axios":"0.27.2","commander":"9.2.0","get-stream":"^6.0.1","minio":"^7.0.28","semver":"7.3.7","ssri":"9.0.0","tar-fs":"2.1.1"},"devDependencies":{"@arkweid/lefthook":"0.7.7","@types/chai":"4.3.1","@types/lodash":"4.14.182","@types/mocha":"9.1.1","@types/node":"16.11.28","@types/semver":"7.3.9","@types/ssri":"7.1.1","@types/tar-fs":"2.0.1","@types/yarnpkg__lockfile":"1.1.5","@typescript-eslint/eslint-plugin":"5.21.0","@typescript-eslint/parser":"5.21.0","chai":"4.3.6","eslint":"8.14.0","eslint-config-prettier":"8.5.0","eslint-formatter-codeframe":"7.32.1","eslint-plugin-mocha":"10.0.4","express":"4.18.1","lint-staged":"12.4.1","mocha":"10.0.0","nodemon":"2.0.16","prettier":"2.6.2","ts-node":"10.7.0","typescript":"4.6.4"},"keywords":["registry","synchronize","mirror","private","offline"],"engines":{"node":">=14.0.0"},"gitHead":"ad203a0be6920832a83367acc976624ce555b962","_id":"@byted-starry/registry-sync@0.1.9","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-puPKzyLzMcUlrBMjqEpddo7uYX8DYXLjNgVneCw9vk+gMrueIKs6LEhOKITCBhJ/10Wr02+U6Tc/fvJHeLonzg==","shasum":"b3b12e45c7ce3a7ad69ae4ccda3763ac6b7afb49","tarball":"https://registry.npmjs.org/@byted-starry/registry-sync/-/registry-sync-0.1.9.tgz","fileCount":16,"unpackedSize":70792,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC0ZongX7u72bZJOID8AgT4MdRpZxjBkroiBrH4dmQE1AiEAtbtTmQ6ngIWRlg9UnqZz82tbcJaGB39xLikerTO1/bE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjROa9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+NQ/7BPfYWG821BzsQdAb7UMF0Zvw5x9QGWsQ5zQvb+/k4Q+WGCFx\r\nQN3+X7REBHjt3izGAX8H/J+5U4cufJb05N65sxsqeFv1IfpMN6nSpJItnI4V\r\n6ZFQKIzcr/3fOYtFqWB5sAZHBuWb7/5XJnbRKdxdUZmgHewaQ7F4Hp+yiT4w\r\nVBpu3D1YbTs4C8BLM/IVeaz1uv5KeWoT7CBcBjr89awr0pWj0EIwNsX29bTB\r\n0EHF9GDRc17nS4jdp87GEB1KTyezvVs/ioeW78v5lcskEEvFb+YgSBkHmtuH\r\nVXdUwOHbfJy0yjZJ05S9aK8je7Bfms19chkavRIgsz7p0ueXQFrR+0VvIQRS\r\n70qG/uN9q94pcCRWlAzQvU+SzZrKdiPhLfcnxGUI3ofr9Dq0P4MZ6Md0+bdi\r\n9fVO/bA9CKUueTUPfEtxUxV1soa8JAZczC7NO97V1zeNxqIlYwDqXCey5+ir\r\nTlwXFGZfx9mNs9AHr61rnwqKJ0t9fbN0vXJQYZfwGK095Tn6EDkvaUR8rKPm\r\niMQ2FGk0fU3M45u63kKKbZ5I5ZcUnJXgz7kRMzTrq97IBqWpGCq0zcS1WsGu\r\nYoQVxdsJkp2sx5OObXrnjMJbdEaBGIB9xn2jsRBrpA+mt+GbK0iOeCOwuVw4\r\nkfsDMRIBe6aQAus1Iop0hSv83XaT8UT7m28=\r\n=yzTJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"wfatec","email":"chao125010@163.com"},"directories":{},"maintainers":[{"name":"zhangjiasong","email":"zhangjiasong@bytedance.com"},{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/registry-sync_0.1.9_1665459900908_0.40931736543732544"},"_hasShrinkwrap":false}},"time":{"created":"2022-05-19T06:47:22.079Z","0.0.1":"2022-05-19T06:47:22.391Z","modified":"2022-10-11T03:45:01.220Z","0.0.2":"2022-05-20T08:47:16.512Z","0.0.3":"2022-05-26T08:54:49.684Z","0.1.0":"2022-06-06T13:29:40.908Z","0.1.1":"2022-06-07T06:20:33.151Z","0.1.2":"2022-06-07T06:55:30.005Z","0.1.3":"2022-06-07T07:33:10.568Z","0.1.4-alpha.0":"2022-06-07T08:42:56.558Z","0.1.4":"2022-06-07T10:49:32.730Z","0.1.5-alpha.0":"2022-08-20T07:14:32.852Z","0.1.5-alpha.1":"2022-08-20T07:43:53.046Z","0.1.5-alpha.2":"2022-08-20T07:48:21.046Z","0.1.5":"2022-08-22T10:40:11.019Z","0.1.6":"2022-09-08T13:57:24.164Z","0.1.7":"2022-09-27T08:58:14.393Z","0.1.8":"2022-09-29T07:05:35.605Z","0.1.9":"2022-10-11T03:45:01.102Z"},"maintainers":[{"name":"zhangjiasong","email":"zhangjiasong@bytedance.com"},{"name":"wfatec","email":"chao125010@163.com"},{"name":"sunzy.evan","email":"sunzhiyuan.evan@bytedance.com"}],"description":"synchronize a remote npm registry for private use","keywords":["registry","synchronize","mirror","private","offline"],"license":"MIT","readme":"# @byted-starry/registry-sync\n\n> Based on open source project: https://github.com/heikkipora/registry-sync\n\n<div align=\"center\">\n\n[简体中文](./README.md) | English\n\n</div>\n\nSynchronizes selected NPM packages from a remote NPM registry (such as https://registry.npmjs.org) to a local folder.\nThe local copy can then be used as a simple private NPM registry without publishing capabilities. Pre-built native binaries bundled with node-pre-gyp are also included.\n\n## Pre-requisites\n\n- Node.js v14.0.0 or newer\n\n## Installation\n\n    npm install -g @byted-starry/registry-sync\n\n## Usage\n\n### Synchronizing packages from the npmjs.org registry\n\n    registry-sync [options]\n\n    -h, --help               output usage information\n    -V, --version            output the version number\n    --root <path>            Path to save NPM package tarballs and metadata to\n    --manifest <file>        Path to a package-lock.json or yarn.lock file to use as catalog for mirrored NPM packages\n    --localUrl <url>         URL to use as root in stored package metadata (i.e. where folder defined as --root will be exposed at)\n    --binaryAbi <list>       Optional comma-separated list of node C++ ABI numbers to download pre-built binaries for.\n                             See NODE_MODULE_VERSION column in https://nodejs.org/en/download/releases/.\n                             Default value is from the current Node.js process.\n    --binaryArch <list>      Optional comma-separated list of CPU architectures to download pre-built binaries for.\n                             Valid values: arm, ia32, and x64.\n                             Default value is from the current Node.js process.\n    --binaryPlatform <list>  Optional comma-separated list of OS platforms to download pre-built binaries for.\n                             Valid values: linux, darwin, win32, sunos, freebsd, openbsd, and aix.\n                             Default value is from the current Node.js process.\n    --registryUrl [url]      Optional URL to use as NPM registry when fetching packages.\n                             Default value is https://registry.npmjs.org\n    --registryToken [string] Optional Bearer token for the registry.\n                             Not included by default.\n    --dontEnforceHttps       Disable the default behavior of downloading tarballs over HTTPS (will use whichever protocol is defined in the registry metadata)\n    --includeDev             Include also packages found from devDependencies section of the --manifest.\n                             Not included by default.\n    --dryRun                 Print packages that would be downloaded but do not download them\n    --dryRunAndWrite         Like dryRun but will write the packages to target file\n    --syncFromFolder         Synchronize the packages from local folder\n    --packageListPath        Synchronize the packages from packageList file\n    --target                 The registry target, maybe \"verdaccio\"\n\n\nExample:\n\n    registry-sync --root ./local-registry \\\n      --manifest ./package-lock.json \\\n      --localUrl http://localhost:8000 \\\n      --binaryAbi 48,57 \\\n      --binaryArch x64 \\\n      --binaryPlatform darwin,linux\n\nRe-executing `registry-sync` will only download and update files for new package versions.\n\n### Serving the local root folder after synchronization\n\nConfigure a web server to use `index.json` as index file name instead of `index.html`.\nAlso configure `HTTP 404` responses to have an `application/json` body of `{}`.\n\nFor example, for local testing you can run nginx in a container to serve the downloaded packages:\n\n```\n# Create a very simple nginx config\ncat <<EOF >nginx.conf\nserver {\n  listen 8000;\n  server_name localhost;\n\n  location / {\n    root /usr/share/nginx/html;\n    index index.json;\n  }\n\n  error_page 404 @404_empty_json;\n\n  location @404_empty_json {\n    default_type application/json;\n    return 404 '{}';\n  }\n}\nEOF\n\n# Run nginx and serve directory local-registry\ndocker run --rm --name registry -p 8000:8000 \\\n  --volume=\"${PWD}/local-registry:/usr/share/nginx/html:ro\" \\\n  --volume=\"${PWD}/nginx.conf:/etc/nginx/conf.d/default.conf:ro\" nginx:1.19\n```\n\nThen you can install dependencies from the local registry using `npm`\n\n```\nnpm_config_registry='http://localhost:8000' npm install\n```\n\nor using `yarn`\n\n```\nYARN_REGISTRY='http://localhost:8000' yarn install\n```\n\n### Creating a separate lockfile for synchronization\n\nIn some cases `npm` might not include all optional packages that are needed for all platforms to `package-lock.json`, depending on which OS you used to create the lockfile.\n\nIn this case it might be useful to copy the `package.json` that you want to synchronize as a local repository to somewhere else and create a new cross platform `package-lock.json` by running:\n\n```\nnpm install --force --package-lock-only\n```\n\nAfter this you can pass the new lockfile to `registry-sync`.\n\n## Changelog\n\nSee [releases](https://github.com/heikkipora/registry-sync/releases).\n\n## Contributing\n\nPull requests are welcome. Kindly check that your code passes ESLint checks by running `npm run eslint:check` first.\nIntegration tests can be run with `npm test`. Both are anyway run automatically by GitHub Actions.\n","readmeFilename":"README.en.md"}